O Saúde na Sua Casa é um sistema de gestão de atendimento médico domiciliar, focado em facilitar o trabalho dos Agentes Comunitários de Saúde (ACS) e médicos no atendimento à população. Permite agendamento e gestão de consultas, monitoramento de sinais vitais, notificações para pacientes e profissionais de saúde e gerenciamento de recursos do sistema.
A API segue o padrão RESTful, utiliza JSON e autenticação JWT (exceto login). Todas as funcionalidades são acessadas via endpoints protegidos.
O projeto segue uma arquitetura limpa (Clean Architecture) com Next.js, utilizando TypeScript. A estrutura de diretórios é organizada da seguinte forma:
/src
/app # Rotas da API (Next.js App Router)
/config # Configurações do sistema
/controllers # Controladores das APIs
/interfaces # Interfaces TypeScript
/lib # Bibliotecas e utilitários
/middlewares # Middlewares da aplicação
/models # Modelos de dados
/pages # Páginas Next.js (incluindo API routes)
/routes # Definições de rotas
/services # Camada de serviços
/types # Tipos TypeScript
/utils # Funções utilitárias
O sistema segue uma arquitetura em camadas:
Request → Middleware → Controller → Service → Model → Database
Response ← Controller ← Service ← Model ← Database
O sistema utiliza MySQL com Prisma ORM. As principais entidades são:
/api/auth/login: Login de usuário/api/patients: Lista todos os pacientes/api/patients/{id}: Busca paciente por ID/api/patients: Cadastra novo paciente/api/patients/{id}: Atualiza dados do paciente/api/patients/{id}: Remove paciente/api/consultations: Lista todas as consultas/api/consultations: Agenda nova consulta/api/consultations/{id}: Busca consulta por ID/api/consultations/{id}: Atualiza consulta/api/consultations/{id}: Cancela consulta/api/vital-signs: Lista registros de sinais vitais/api/vital-signs: Registra novos sinais vitais/api/vital-signs/{id}: Busca registro por ID/api/users: Lista todos os usuários/api/users: Cadastra novo usuário/api/users/{id}: Busca usuário por ID/api/users/{id}: Atualiza usuário/api/users/{id}: Desativa usuárioO sistema utiliza JWT (JSON Web Tokens) para autenticação. O fluxo é:
Authorization: Bearer {token}npm install
DATABASE_URL="mysql://user:password@localhost:3306/database"
JWT_SECRET="seu-secret-aqui"
npx prisma migrate dev
npm run dev
TypeScript
anyAPI
Banco de Dados
Segurança
Para dúvidas ou suporte, entre em contato com a equipe de desenvolvimento ou abra uma issue no repositório.