Bem-vindo ao repositório do backend do Sistema Hospitalar, uma API RESTful completa projetada para gerenciar operações em clínicas, hospitais e unidades de saúde. O sistema suporta autenticação segura, gerenciamento de pacientes, profissionais, consultas, prescrições, prontuários, triagens, unidades de saúde e uma camada avançada de Inteligência Artificial para suporte à decisão clínica e epidemiológica.
-
Autenticação e Autorização: JWT com papéis granulares (
ADMINISTRADOR_PRINCIPAL,MEDICO,ENFERMEIRO). -
Gestão de Pacientes: Cadastro, atualização, exclusão lógica (soft delete), histórico clínico e consentimento LGPD explícito.
-
Consultas Médicas: Criação, edição, listagem por paciente, médico ou unidade, com suporte a CID-10.
-
Prescrições e Prontuários: Registro, edição, geração de PDFs e anonimização automática de dados sensíveis.
-
Triagens: Avaliação inicial por enfermeiros com sinais vitais, classificação de gravidade e priorização.
-
Unidades de Saúde: Cadastro e gerenciamento de hospitais/UPAs com CNES, serviços essenciais e ampliados.
-
Inteligência Artificial (novo em 3.2.0):
- Relatório de Surto Respiratório: Análise de risco epidemiológico global ou por unidade, com resumo executivo, indicadores, recomendações e análise completa em Markdown.
- Análise de Paciente Recorrente: Identificação de padrões de atendimentos frequentes com sugestões clínicas personalizadas.
- Análise Operacional de Triagens: Avaliação de risco de sobrecarga por unidade, distribuição por gravidade e recomendações operacionais.
- Histórico de Relatórios: Armazenamento e consulta de todos os relatórios gerados, com acesso por tipo e data.
-
Segurança: Criptografia de dados sensíveis, rate limiting, validação rigorosa, conformidade total com LGPD e logs de auditoria.
-
Desempenho: Cache (Redis), índices otimizados, processamento assíncrono (BullMQ), paginação e respostas compactas.
- Backend: Node.js + Express.js
- Banco de Dados: PostgreSQL (via Supabase)
- Autenticação: Supabase Auth + JWT
- Cache: Redis
- Fila Assíncrona: BullMQ
- Geração de PDF: pdfkit
- Inteligência Artificial: Groq SDK (modelo Compound)
- Segurança: express-rate-limit, helmet, express-validator, bcrypt
- Hospedagem: Render.com (autoescalamento)
- Logging: Winston
- Node.js v18 ou superior
- Conta no Supabase (projeto PostgreSQL)
- Redis (local ou cloud)
- Chave API do Groq (para funcionalidades de IA)
- Conta no Render.com (para deploy)
-
Clonar o repositório:
git clone https://github.com/seu-usuario/sistema-hospitalar.git cd sistema-hospitalar/backend -
Instalar dependências:
npm install
-
Configurar variáveis de ambiente:
Crie um arquivo
.envbaseado no.env.example:SUPABASE_URL=sua-url-supabase SUPABASE_KEY=sua-chave-supabase JWT_SECRET=sua-chave-secreta-jwt ADMIN_SECRET=seu-secret-para-criar-admin GROQ_API_KEY=sua-chave-groq
-
Build e execução:
-
Desenvolvimento:
npm run dev
-
Produção:
npm run build npm start
-
-
Acessar a API:
- Local:
http://localhost:3000 - Produção:
https://SUA-URL.com
- Local:
Todos os endpoints estão organizados por recurso. Base URL: /api
POST /auth/register-admin– Cria administrador principal (exigeadminSecret)POST /auth/login– Autenticação e emissão de JWTPOST /auth/forgot-password– Inicia recuperação de senha
POST /consultas– Cria consulta (médicos)GET /consultas/:idGET /consultas/pacientes/:pacienteIdGET /consultas/profissional/:medicoIdGET /consultas/unidade/:unidadeId/*PUT /consultas/:idDELETE /consultas/:id
POST,GET(lista e individual),PUT,DELETE(soft delete) – Restritos a administradores
POST /pacientes(enfermeiros/admin)GET /pacientesPUT /pacientes/:idDELETE /pacientes/:idGET /pacientes/:id/historico
POST,GET,PUT,DELETEGET /prescricoes/:id/pdf– Geração de PDF
POST,GET,PUT,DELETEGET /prontuarios/:id/pdf
POST(enfermeiros)GET,PUT,DELETEGET /triagens/gravidade/:cor/unidade/:unidadeId
POST,GET,PUT,DELETEGET /unidades-saude/:id/funcionarios
GET /ia/surto– Relatório de risco de surto respiratório (admin/médico, opcional?unidade_saude_id=)GET /ia/paciente/:pacienteId/recorrente– Análise de recorrência (apenas médicos)GET /ia/triagens/:unidadeSaudeId– Análise operacional de triagens (admin/médico)GET /ia/relatorios– Lista últimos relatórios gerados (todos os profissionais, opcional?limit=)GET /ia/relatorios/:id– Detalhes de relatório específico (todos os profissionais)
Todos os relatórios de IA utilizam dados agregados e anonimizados, são salvos na tabela relatorios_ia e gerados com o modelo Groq Compound.
- Consentimento explícito obrigatório no cadastro de pacientes
- Anonimização automática em prontuários, PDFs e dados enviados à IA
- Logs de auditoria completos
- Criptografia de dados sensíveis (CPF, CNS)
- Soft delete com retenção para auditoria
- IA: Nenhum dado pessoal é enviado ao modelo — apenas agregados
Contribuições são super bem-vindas!
- Fork o repositório
- Crie uma branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças
- Push e abra um Pull Request
- E-mail: queirozdouglas466@gmail.com
- Issues: Abra uma issue no repositório
Apache License 2.0
Versão: 3.2.0
Data: 05 de Janeiro de 2026