Sistema para centralizar e compartilhar dados de pacientes (carteirinhas de vacinação e prontuários médicos) entre postos de saúde e hospitais do SUS. O sistema assegura segurança, acessibilidade e eficiência no gerenciamento das informações, com foco em consultas otimizadas e modelagem de dados eficiente.
- Banco de Dados: PostgreSQL
- Backend: Python com FastAPI
- Frontend: React com Material-UI
- Deployment: Docker e Docker Compose
- Cadastro e gerenciamento de pacientes
- Consulta de estabelecimentos de saúde (Hospitais, UBS, UPA)
- Gerenciamento de vacinas e carteiras de vacinação
- Prontuários médicos compartilhados entre estabelecimentos
- Docker
- Docker Compose
- Git
# Clone o repositório
git clone https://github.com/JowDaniel/BD2-EP1-SUS.git
# Entre no diretório do projeto
cd BD2-EP1-SUSVocê pode executar o sistema completo de duas maneiras:
# Dar permissão de execução ao script (necessário apenas na primeira vez)
chmod +x start.sh
# Executar o script
./start.sh# Parar qualquer instância anterior
docker compose down
# Remover volumes antigos (opcional)
docker volume rm ep1_postgres_data
# Reconstruir as imagens (se necessário)
docker compose build
# Iniciar o sistema
docker compose upApós a inicialização, o sistema estará disponível nos seguintes endereços:
- Frontend: http://localhost:3000
- API Backend: http://localhost:8000
- Documentação da API: http://localhost:8000/docs
/
├── docs/ # Documentação
│ ├── diagrama-er.png # Diagrama Entidade-Relacionamento
│ └── modelo-logico.png # Modelo Lógico
├── sql/ # Scripts SQL
│ ├── ddl/ # Criação de tabelas e estruturas
│ ├── dml/ # Inserção de dados de teste
│ └── queries/ # Consultas otimizadas
├── backend/ # API Python FastAPI
│ ├── app/ # Código da aplicação
│ │ ├── api/ # Endpoints da API
│ │ ├── core/ # Configurações centrais
│ │ ├── db/ # Modelos e conexão com banco
│ │ ├── schemas/ # Schemas Pydantic
│ │ └── services/ # Lógica de negócio
│ ├── requirements.txt # Dependências Python
│ └── main.py # Ponto de entrada da aplicação
├── frontend/ # Aplicação React
└── docker/ # Configurações Docker
- Pacientes
- Carteirinhas de Vacinação
- Prontuários Médicos
- Postos de Saúde
- Hospitais
- Funcionários
- Modelagem da Base de Dados (Diagrama ER e Modelo Lógico)
- Implementação do Schema SQL (DDL)
- Inserção de dados de teste (DML)
- Implementação das consultas críticas com otimização
- Desenvolvimento do aplicativo funcional
Se encontrar algum problema ao executar o sistema, tente os seguintes passos:
-
Problemas com o banco de dados:
docker compose down docker volume rm ep1_postgres_data docker compose up
-
Problemas com as dependências:
docker compose build --no-cache docker compose up
-
Ver logs de um serviço específico:
docker compose logs [serviço]
Onde [serviço] pode ser: postgres, backend ou frontend
Para desenvolver novas funcionalidades:
- Faça as alterações nos arquivos correspondentes
- Reconstrua a imagem Docker afetada:
docker compose build [serviço] - Reinicie os serviços:
docker compose up
O código-fonte está montado como volumes nos containers, então muitas alterações são refletidas automaticamente sem necessidade de reconstruir as imagens.
Para contribuir com o projeto:
- Crie um fork do repositório
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade) - Faça commit das suas alterações (
git commit -am 'Adiciona nova funcionalidade') - Faça push para a branch (
git push origin feature/nova-funcionalidade) - Crie um novo Pull Request