App criado para listagem de exames médicos.
Laboratório disponibilizado pela Rebase em parceria com a Campus Code.
No seu terminal, clone o projeto:
git clone https://github.com/Izabellyrb/rebase-labs.git
Já dentro do projeto, inicie a aplicação:
docker compose up
Instale as gems necessárias:
bin/bundle
Caso vá rodar os testes, é necessário rodar o comando abaixo antes seguir para o próximo passo:
docker compose exec app rspec
Crie a tabela que será populada rodando o script no terminal:
docker compose exec app ruby create_table.rb
A importação de dados para popular a app pode ser feita de duas formas. Via script:
docker compose exec app ruby import_from_csv.rb
Ou via requisição HTTP no endpoint:
curl -d POST http://localhost:3000/import?file=./data.csv
A importação dos mesmos dados de forma assíncrona pode ser feita via requisição HTTP no endpoint:
curl -d POST http://localhost:3000/import_async?file=./data.csv
Após subir o solicitado, na pagína inicial é possível ver a listagem de exames e fazer busca dos exames por Token (http://localhost:3000/).
Exibe a api com os dados dos pacientes (100 primeiros).
[{
"id": "1",
"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": "hemácias",
"limites_tipo_exame": "45-52",
"resultado_tipo_exame": "97"
}]
Filtra os resultados de acordo com o token indicado.
Ex: Busca pelo token 0W9I67
, /api/mdata/0W9I67
[{
"id": "14",
"cpf": "048.108.026-04",
"nome_paciente": "Juliana dos Reis Filho",
"email_paciente": "mariana_crist@kutch-torp.com",
"data_nascimento_paciente": "1995-07-03",
"endereço_rua_paciente": "527 Rodovia Júlio",
"cidade_paciente": "Lagoa da Canoa",
"estado_patiente": "Paraíba",
"crm_médico": "B0002IQM66",
"crm_médico_estado": "SC",
"nome_médico": "Maria Helena Ramalho",
"email_médico": "rayford@kemmer-kunze.info",
"token_resultado_exame": "0W9I67",
"data_exame": "2021-07-09",
"tipo_exame": "hemácias",
"limites_tipo_exame": "45-52",
"resultado_tipo_exame": "28"
}]
Faz a importação de dados para popular a app
Resposta:
'Arquivo importado!'
Faz a importação de dados para popular a app de forma assíncrona
Resposta:
'Arquivo importado com sucesso!'
- Importação dos dados do CSV para o banco de dados SQL (lab 1);
- Exibição da listagem de exames de forma mais amigavel ao usuário no localhost (lab 2);
- Criar endpoint para importar os dados do CSV de forma assíncrona (lab 4)
- Filtrar exames a partir de um token de resultado (lab 3);
- Maior cobertura de testes;
- Otimização dos resultados de buscas;
❗ Para mais detalhes sobre a premissa e as fases do projeto, acesse project_instructions