Bem-vindo ao repositório da API responsável pela administração do módulo de atendimento em uma aplicação de clínica médica. Esta API simula o registro de atendimentos realizados pelos médicos, mantendo históricos detalhados dos pacientes em prontuários.
API desemvolvida em Spring utilizando as principais tecnologias do ecossistema além de conteinerização e utilização de serviços Cloud como AWS RDS.
Elencamos abaixo com maior detalhe as seguintes funcionalidades do sistema de atendimento médico:
-
Criar um prontuário: permitirá criar prontuário com os seguintes dados/campos: registro de agenda ou data da consulta, histórico do paciente e prontuário detalhado da consulta, receituário ou receita definida pelo médico na consulta para o paciente e exames recomendados para o paciente realizar. Todos os campos são de preenchimento obrigatório;
-
Editar um prontuário existente: funcionalidade de editar um prontuário que já está no banco de dados. Assim, o médico poderá editar informações como agenda, histórico, receita ou exame que estão em algum prontuário salvo;
-
Listar prontuários: fazer uma lista com todos os prontuários que estão salvos no sistema;
-
Ver um prontuário: olhar um prontuário específico. Essa função só permite a visualização, não é possível editar um prontuário;
-
Excluir um prontuário: deletar do sistema um prontuário salvo.
-
Listar as consultas: permite ao médico listar as consultas cadastradas no sistema.
-
Lombok: Utilizado no desenvolvimento para reduzir a verbosidade do código.
-
Spring Web: framework escolhido que permite a criação de APIs REST de forma eficiente.
-
Spring Data JPA: Utilizado para simplificar o acesso a dados em bancos de dados relacionais, proporcionando uma implementação fácil e consistente das operações de persistência.
-
MySQL Driver:Fornece a conectividade entre a aplicação e o banco de dados MySQL, permitindo a execução de consultas e atualizações.
-
Model Mapper: Facilita a conversão de objetos entre diferentes camadas da aplicação, simplificando a transferência de dados.
-
JUnit: Framework de teste unitário que foi utilizado e garantiu a confiabilidade e robustez do código.
-
Swagger: Ferramenta escolhida para gerar a documentação da API, facilitando a compreensão dos endpoints disponíveis e seus parâmetros.
-
SLF4J: API de logging que permite a flexibilidade na escolha da implementação de logging, facilitando a integração com diferentes sistemas de log.
-
Feign: Cliente HTTP declarativo para simplificar a comunicação entre serviços, facilitando a integração com outros sistemas.
-
Flyway: Gerenciador de migração de banco de dados, automatizando o versionamento e aplicação de alterações no esquema do banco de dados.
-
Docker: Utilizado para criar a imagem da aplicação em um contêiner, assegurando isolamento e portabilidade da aplicação.
-
AWS RDS (Amazon Relational Database Service): Serviço de nuvem da AWS de banco de dados relacional gerenciado, escolhido para armazenar o banco de dados da aplicação, oferecendo vantagens como escalabilidade automática, backups automatizados, alta disponibilidade e fácil manutenção.
-
My JSON Server: serviço online que permitiu criar uma API REST simulada a partir de um arquivo JSON.
-
Clonar o Repositório:
git clone https://github.com/MarcosPauloMacedo/api_rest_spring
-
Executar o Projeto: Existe duas formas de executar o projeto: através do executável da aplicação: (
atendimentoApplication
) ou utilizando Docker.-
2.1 Através do Executável da aplicação
OBS:Certifique-se de ter o ambiente Java configurado. (Java 11 ou superior e maven)
Navegue até o diretório do projeto e execute.
-
2.2 Utilizando docker:
Certifique-se de ter o Docker instalado e em execução. Navegue até a raiz do projeto e execute:
docker-compose up
Isso criará o build do projeto e a imagem da aplicação, além de iniciar o contêiner.
Após a execução do projeto, pode utilizar tanto a porta da aplicação quanto a documentação do swagger.
-
-
Porta do projeto:
localhost:8081/atendimento/prontuarios
-
Documentação do projeto:
http://localhost:8081/atendimento/swagger-ui/index.html#/