Banco de Dados
O CRMed utiliza PostgreSQL como banco de dados relacional primário, gerenciado através do Prisma ORM.
Diagrama ER
Entidades Críticas
Appointment (Agendamento)
Entidade central para a operação da clínica. Armazena o estado do atendimento e o No-Show Risk Score.
riskScore: Valor de 0 a 100 indicando probabilidade de comparecimento.riskLevel: Classificação (LOW, MEDIUM, HIGH).
Lead
Armazena potenciais pacientes. O campo status segue o fluxo NEW → CONTACTED → QUALIFIED → CONVERTED.
AuditLog
Implementa a RN06, registrando cada alteração crítica no sistema, incluindo quem alterou, o valor antigo e o novo valor.
Decisões de Modelagem
- Soft Delete: Utilizado em
LeadePatientpara manter integridade histórica e cumprir requisitos de LGPD (recuperação de dados). - Enums: Todos os estados (Status, Roles, Tipos) são definidos via Enums no Prisma para garantir consistência em nível de banco de dados.
- Indexação: Índices adicionados em campos de busca frequente (
cpf,email,status,scheduledAt) para otimizar performance.