Projeto desenvolvido para simular uma arquitetura de integração entre um Prontuário Eletrônico do Paciente (PEP) e aplicações externas, utilizando tecnologias amplamente empregadas em ambientes hospitalares, como FastAPI, RabbitMQ, PostgreSQL e Docker.
O fluxo contempla a disponibilização de dados clínicos por meio de views SQL, o recebimento de eventos via API REST e sua publicação em uma fila RabbitMQ para processamento assíncrono.
O projeto foi inspirado em cenários de integração encontrados em soluções de Saúde Digital, como Bionexo Tasy e MV Soul.
Sistema Hospitalar
│
▼
PostgreSQL (PEP)
│
▼
Views SQL
│
▼
Clinical Integration API
(FastAPI)
│
▼
RabbitMQ
│
▼
Consumer
case-levelai/
├── clinical-microservice/
│ ├── app/
│ ├── tests/
│ ├── Dockerfile
│ ├── requirements.txt
│ └── README.md
│
├── pep-integration/
│ ├── sql/
│ │ ├── 01_create_tables.sql
│ │ ├── 02_insert_data.sql
│ │ ├── 03_create_views.sql
│ │ └── 04_validations.sql
│ └── README.md
│
├── docker-compose.yml
├── .env
└── README.md
Responsável pela camada de dados do prontuário eletrônico.
Inclui:
- Modelagem das tabelas clínicas
- Dados de exemplo
- Views para integração
- Scripts de validação
- Garantia de integridade referencial
Mais detalhes:
📁 pep-integration/README.md
Microserviço responsável por:
- Receber eventos clínicos via REST
- Validar payload utilizando Pydantic
- Publicar mensagens na fila RabbitMQ
- Disponibilizar documentação Swagger
- Executar testes automatizados com Pytest
Mais detalhes:
📁 clinical-microservice/README.md
Serviço responsável pela camada de interoperabilidade baseada em eventos.
Inclui:
- Consumo assíncrono de mensagens RabbitMQ
- Consulta ao Prontuário Eletrônico (PostgreSQL)
- Conversão de dados clínicos para recursos HL7 FHIR R4
- Publicação de Patients, Observations, Conditions e MedicationRequests no HAPI FHIR
- Garantia de desacoplamento entre sistemas clínicos e plataformas FHIR
Mais detalhes:
📁 clinical-consumer/README.md
- Python 3.12
- FastAPI
- RabbitMQ
- PostgreSQL
- Docker
- Pydantic
- Pytest
- SQL
- Docker Desktop
- Docker Compose
docker compose up --buildApós iniciar os containers:
API
Swagger
Health Check
RabbitMQ
Usuário: guest
Senha: guest
| Serviço | Endereço |
|---|---|
| API | http://localhost:8000 |
| Swagger | http://localhost:8000/docs |
| Health Check | http://localhost:8000/health |
| RabbitMQ | http://localhost:15672 |
| PostgreSQL | localhost:5432 |
- O sistema envia um evento clínico para a API.
- O FastAPI valida o payload utilizando Pydantic.
- O payload validado é serializado em JSON.
- A mensagem é publicada no RabbitMQ.
- O RabbitMQ armazena a mensagem para processamento.
- Um consumidor poderá processar a fila posteriormente.
{
"event_type": "medical_evolution",
"patient_id": 1,
"professional_id": 101,
"date": "2026-07-02T17:30:00",
"description": "Paciente apresenta melhora clínica.",
"observations": "Sem intercorrências."
}Este projeto demonstra conhecimentos em:
- Arquitetura de Integração
- APIs REST
- Mensageria
- Modelagem de Banco de Dados
- Docker
- FastAPI
- RabbitMQ
- PostgreSQL
- Validação de dados
- Testes automatizados
- Boas práticas de organização de projetos
- Persistência de eventos processados
- Dead Letter Queue (DLQ)
- Logs estruturados
- Retry automático
- Observabilidade
Renan Borba
Analista de Sistemas | Saúde Digital | Interoperabilidade | APIs REST
