Skip to content

Repository files navigation

Clinical Integration Platform

Python RabbitMQ FastAPI PostgreSQL Docker

RabbitMQ+FastAPI

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.


Arquitetura

Sistema Hospitalar
        │
        ▼
 PostgreSQL (PEP)
        │
        ▼
   Views SQL
        │
        ▼
Clinical Integration API
      (FastAPI)
        │
        ▼
     RabbitMQ
        │
        ▼
     Consumer

Estrutura do projeto

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

Componentes

PEP Integration

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


Clinical Microservice

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


Clinical Consumer

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


Tecnologias

  • Python 3.12
  • FastAPI
  • RabbitMQ
  • PostgreSQL
  • Docker
  • Pydantic
  • Pytest
  • SQL

Como executar

Pré-requisitos

  • Docker Desktop
  • Docker Compose

Executando

docker compose up --build

Após iniciar os containers:

API

http://localhost:8000

Swagger

http://localhost:8000/docs

Health Check

http://localhost:8000/health

RabbitMQ

http://localhost:15672

Usuário: guest

Senha: guest


Serviços

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

Fluxo da integração

  1. O sistema envia um evento clínico para a API.
  2. O FastAPI valida o payload utilizando Pydantic.
  3. O payload validado é serializado em JSON.
  4. A mensagem é publicada no RabbitMQ.
  5. O RabbitMQ armazena a mensagem para processamento.
  6. Um consumidor poderá processar a fila posteriormente.

Exemplo de Payload

{
  "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."
}

Objetivos do projeto

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

Próximas evoluções

  • Persistência de eventos processados
  • Dead Letter Queue (DLQ)
  • Logs estruturados
  • Retry automático
  • Observabilidade

Autor

Renan Borba

Analista de Sistemas | Saúde Digital | Interoperabilidade | APIs REST

About

🆙 Clinical Integration Platform - FastAPI & RabbitMQ

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages