Skip to content

Wpaif/Diagnostics-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Diagnostics

API em Ruby para listagem de exames médicos.

Tech Stack

Stack Versão
Docker 20.10.17
Ruby latest

Executando a aplicação localmente

  • Execute o seguinte comando no emulador de terminal:

    docker compose up
  • Caso não deseje ver os logs use:

    docker compose up -d

    Atenção: o container ficará em execução em segundo plano dessa maneira.

Executando testes

A aplicação só poderá ser testada se ela estiver em execução.

  • Execute o seguinte comando no emulador de terminal:

    bash test

Importando os dados do arquivo CSV de forma assíncrona

Usando o comando abaixo um script será executado importando todos os dados do arquivo data.csv de forma assíncrona para o banco de dados.

    bash import

Endpoints

GET /diagnostics

Ao realizar uma requisição em localhost:3000/diagnostics, será retornado todos os diagnósticos disponíveis no momento, como:

[
    {
    "cpf":"048.973.170-88",
    "nome paciente":"Emilly Batista Neto",
    "email paciente":"gerald.crona@ebert-quigley.com",
    "data nascimento paciente":"2001-03-11",
    "endereço/rua paciente":"165 Rua Rafaela",
    "cidade paciente":"Ituverava",
    "estado patiente":"Alagoas",
    "crm médico":"B000BJ20J4",
    "crm médico estado":"PI",
    "nome médico":"Maria Luiza Pires",
    "email médico":"denna@wisozk.biz",
    "token resultado exame":"IQCZ17",
    "data exame":"2021-08-05",
    "tipo exame":"tgp",
    "limites tipo exame":"38-63",
    "resultado tipo exame":"9"
    },
    {
        "cpf":"048.973.170-88",
        "nome paciente":"Emilly Batista Neto",
        "email paciente":"gerald.crona@ebert-quigley.com",
        "data nascimento paciente":"2001-03-11",
        "endereço/rua paciente":"165 Rua Rafaela",
        "cidade paciente":"Ituverava",
        "estado patiente":"Alagoas",
        "crm médico":"B000BJ20J4",
        "crm médico estado":"PI",
        "nome médico":"Maria Luiza Pires",
        "email médico":"denna@wisozk.biz",
        "token resultado exame":"IQCZ17",
        "data exame":"2021-08-05",
        "tipo exame":"t4-livre",
        "limites tipo exame":"34-60",
        "resultado tipo exame":"94"
    }
]

GET /diagnostics/:token

Ao relizar uma requisição válida, será possível efetuar uma consulta. Caso haja algum token conrrespondente nos registros do banco de dados, uma busca será efetuada e terá como retorno os dados referentes a tal, como:

{
    "cpf":"048.108.026-04",
    "nome paciente":"Juliana dos Reis Filho",
    "email paciente":"mariana_crist@kutch-torp.com",
    "data nascimento paciente":"1995-07-03",
    "token resultado exame":"0W9I67",
    "data exame":"2021-07-09",
    "médico": {
            "crm médico":"B0002IQM66",
            "crm médico estado":"SC",
            "nome médico":"Maria Helena Ramalho"
    },
    "diagnósticos": 
        [
            {
                "tipo exame":"hdl",
                "limites tipo exame":"19-75",
                "resultado tipo exame":"74"
            },
            {
                "tipo exame":"leucócitos",
                "limites tipo exame":"9-61",
                "resultado tipo exame":"91"
            }
        ]
}

POST /insert

Ao realizar uma requisição em localhost:3000/insert, será possível adicionar novos diagnósticos ao banco de dados por meio de um arquivo CSV válido.

O CSV será válido quando for análogo a:

cpf;nome paciente;email paciente;data nascimento paciente;endereço/rua paciente;cidade paciente;estado patiente;crm médico;crm médico estado;nome médico;email médico;token resultado exame;data exame;tipo exame;limites tipo exame;resultado tipo exame
089.034.562-70;Patricia Gentil;herta_wehner@krajcik.name;1998-02-25;5334 Rodovia Thiago Bittencourt;Jequitibá;Paraná;B0000DHDOF;MT;Luiz Felipe Raia Jr.;marshall@brekke-funk.name;K7EG7Z;2021-10-23;t4-livre;34-60;45
050.039.641-88;João Macieira;jefferey.wehner@lockman.name;2000-10-04;452 Rua Raul Rodrigues;São João da Paraúna;Alagoas;B0000DHDOF;MT;Luiz Felipe Raia Jr.;marshall@brekke-funk.name;2I9EBC;2022-01-10;t4-livre;34-60;5

Apagando os dados gerados

Ao executar a aplicação dados serão armazenados para não serem perdidos após o container ser derrubado. Caso queira efetuar o descarte desses dados use:

Atenção: será necessário parar todos os containers relacionados em execução antes de usar o comando abaixo.

  • Apagando volumes:

    docker volume rm rebase-challenge_db-data rebase-challenge_redis-cache rebase-challenge_test-db-data

About

API em Ruby para a listagem de exames médicos

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •