API para automação registro de atendimentos.
A 365 Medical Inc, empresa líder no segmento tecnológico para gestão hospitalar e está tomando algumas ações para automatizar determinados processos nos atendimentos de pacientes em âmbito hospitalar.
O objetivo deste MVP (Produto Mínimo Viável) é a criação de uma API Rest que:
- Faça registros e manutenção dos cadastros de médicos, enfermeiros e pacientes.
- Faça os registros de atendimentos médicos realizados.
Linguagens: Javascript
Banco de Dados: Postgree
Framework: Node JS (v16)
Tecnologias: Express JS, Sequelize, Postgree, Yup, DotEnv, Pg e Pg-hstore e Nodemon.
Para rodar esse projeto, você deve renomear o arquivo ".env.example" para ".env" e alterar as variáveis antes de rodar localmente.
Com o node.js(v16) instalado. Siga os passos abaixo:
Clone o projeto
git clone https://github.com/rodrigopieritz/M-dulo-1---Projeto-Avaliativo
Entre no diretório do projeto
cd my-project
Instale as dependências
npm init - y
npm install express
npm install sequelizepg
npm install pg
npm install pg-hstore
npm install dotenv
npm install yup
Inicie o servidor
npm run start
Para o desenvolvimento deste projeto e realização de testes de API foi utilizado o Insomnia.
POST path/api/pacientes
Body Param (json) | Type | Description |
---|---|---|
full_name |
string |
Obrigatório. |
gender |
ENUM |
Obrigatório. ENUM ('MASCULINO' ou 'FEMININO') |
birth_date |
Date |
Obrigatório. |
cpf |
string |
Obrigatório. |
contact |
string |
|
emergency_contact |
string |
Obrigatório. |
alergies_list |
string |
|
specific_cares |
string |
|
health_insurance |
string |
|
service_status |
ENUM |
Obrigatório. ENUM('GUARDANDO ATENDIMENTO', 'EM ATENDIMENTO', 'ATENDIDO' OU 'NÃO ATENDIDO' |
total_attendances |
Integer |
PUT path/api/pacientes/{identificador}
Body Param (json) | Type | Description |
---|---|---|
full_name |
string |
Obrigatório. |
gender |
ENUM |
Obrigatório. ENUM ('MASCULINO' ou 'FEMININO') |
birth_date |
Date |
Obrigatório. |
cpf |
string |
Obrigatório. |
contact |
string |
|
emergency_contact |
string |
Obrigatório. |
alergies_list |
string |
|
specific_cares |
string |
|
health_insurance |
string |
|
service_status |
ENUM |
Obrigatório. ENUM('GUARDANDO ATENDIMENTO', 'EM ATENDIMENTO', 'ATENDIDO' OU 'NÃO ATENDIDO' |
total_attendances |
Integer |
PUT path/api/pacientes/{identificador}/status
Body Param (json) | Type | Description |
---|---|---|
service_status |
ENUM |
Obrigatório. ENUM('GUARDANDO ATENDIMENTO', 'EM ATENDIMENTO', 'ATENDIDO' OU 'NÃO ATENDIDO' |
GET path/api/pacientes
Query params | Type | Description |
---|---|---|
status |
ENUM |
Opcional. ENUM('GUARDANDO ATENDIMENTO', 'EM ATENDIMENTO', 'ATENDIDO' OU 'NÃO ATENDIDO' |
exemplo: /api/pacientes?status=ATENDIDO
GET path/api/pacientes/{identificador}
DELETE path/api/pacientes/{identificador}
POST path/api/medicos
Body Param (json) | Type | Description |
---|---|---|
full_name |
string |
Obrigatório. |
gender |
ENUM |
Obrigatório. ENUM ('MASCULINO' ou 'FEMININO') |
birth_date |
Date |
Obrigatório. |
cpf |
string |
Obrigatório. |
contact |
string |
|
education_institution |
string |
Obrigatório. |
crm |
string |
Obrigatório. |
specialization |
ENUM |
Obrigatório. ENUM('CLINICO GERAL', 'ANESTESISTA', 'DERMATOLOGIA', 'NEUROLOGIA', 'PEDIATRIA', 'PSIQUIATRIA' OU 'ORTOPEDIA') |
status |
ENUM |
ENUM('ATIVO' OU 'INATIVO') |
POST path/api/medicos/{identificador}
Body Param (json) | Type | Description |
---|---|---|
full_name |
string |
Obrigatório. |
gender |
ENUM |
Obrigatório. ENUM ('MASCULINO' ou 'FEMININO') |
birth_date |
Date |
Obrigatório. |
cpf |
string |
Obrigatório. |
contact |
string |
|
education_institution |
string |
Obrigatório. |
crm |
string |
Obrigatório. |
specialization |
ENUM |
Obrigatório. ENUM('CLINICO GERAL', 'ANESTESISTA', 'DERMATOLOGIA', 'NEUROLOGIA', 'PEDIATRIA', 'PSIQUIATRIA' OU 'ORTOPEDIA') |
status |
ENUM |
ENUM('ATIVO' OU 'INATIVO') |
PUT path/api/medicos/{identificador}
Body Param (json) | Type | Description |
---|---|---|
status |
ENUM |
ENUM('ATIVO' OU 'INATIVO') |
GET path/api/medicos
Query params | Type | Description |
---|---|---|
status |
ENUM |
Opcional. ENUM('ATIVO', 'INATIVO' |
exemplo: /api/medicos?status=ATIVO
GET path/api/medicos/{identificador}
DELETE path/api/medicos/{identificador}
POST path/api/enfermeiros
Body Param (json) | Type | Description |
---|---|---|
full_name |
string |
Obrigatório. |
gender |
ENUM |
Obrigatório. ENUM ('MASCULINO' ou 'FEMININO') |
birth_date |
Date |
Obrigatório. |
cpf |
string |
Obrigatório. |
contact |
string |
|
education_institution |
string |
Obrigatório. |
cofen |
string |
Obrigatório. |
PUT path/api/enfermeiros
Body Param (json) | Type | Description |
---|---|---|
full_name |
string |
Obrigatório. |
gender |
ENUM |
Obrigatório. ENUM ('MASCULINO' ou 'FEMININO') |
birth_date |
Date |
Obrigatório. |
cpf |
string |
Obrigatório. |
contact |
string |
|
education_institution |
string |
Obrigatório. |
cofen |
string |
Obrigatório. |
GET path/api/enfermeiros
GET path/api/enfermeiros/{identificador}
DELETE path/api/enfermeiros/{identificador}
POST path/api/atendimentos
Body Param (json) | Type | Description |
---|---|---|
patient_id |
INTEGER |
Obrigatório. |
doctor_id |
INTEGER |
Obrigatório. |
- Criação de API Rest utilizando Express.JS;
- Interação com Banco de Dados Relacional Postgree, utilizando Sequelize;
1 - Aprimorar regras para validação dos dados recebidos, como:
- Validação de contatos: Não aceitar contato de emergência igual ao contato do paciente. Validação dos números informados (quantidade de caracteres, type number, sequencias inexistentes como 99 99999 9999, outros).
- Validação de CPF, CRM, COFEN e dados do plano de saúde: Podem ser integrados a uma API conferindo uma maior confiabilidade nos dados cadastrados;
- Validação de Idade: Qualquer valor pode ser incluído como 200 anos, por exemplo.
2- Melhorar lógica de deleção de Pacientes e Médicos, pois seus cadastros estão vinculados aos atendimentos:
- Atualmente os registros de pacientes e médicos deletados deixam os ID's de atendimento como Null.
3- Médicos Inativos estão habilitados para realizar atendimentos: Apesar de não estar na especificação, possivelmente não devem ser permitidos.
4 - Manutenção dos cadastros de atendimento: Parecem ser necessários para consultas dos atendimentos realizados, correções de dados incorretos por parte do usuário.
Se você tiver algum feedback ou algo não estiver funcionando, por favor nos deixe saber por meio de rodrigo_o_pieritz@estudante.sesisenai.org.br