você já tem
tem parcialmente
faltando
diferencial de mercado
1 · Identificação & dados pessoais
Dados básicos de identificação
núcleo do cadastro
completo
Nome, email, telefone, data de nascimento, CPF, RG, gênero, naturalidade, estado civil, escolaridade e profissão.
nome_completoemail_principaltelefonedata_nascimentocpfrggeneroestado_civilescolaridadeprofissao
Gênero & pronomes
campo genero existe, pronomes não
parcial
Você tem o campo genero como texto livre. Faltam pronomes preferidos (ele/ela/eles) — padrão nos sistemas modernos de saúde mental, especialmente para público LGBTQIA+.
genero pronomes nome_social
Endereço completo
CEP, cidade, estado, complemento
completo
CEP, endereço, número, bairro, complemento, cidade, estado e país. Estrutura adequada.
cependereconumerobairrocidadeestadopais
Dados socioeconômicos
renda e contexto social
faltando
Faixa de renda, religião/espiritualidade, etnia. Campos opcionais mas relevantes clinicamente e para política de precificação solidária. SimplePractice e Psicologia Viva coletam isso.
faixa_renda etnia religiao
2 · Contatos & rede de suporte
Contato de emergência
só um contato, sem estrutura
parcial
Você tem nome_parente, grau_parentesco e telefone_parente como campos soltos na tabela. Falta suporte a múltiplos contatos e campo de email do contato.
nome_parentegrau_parentescotelefone_parente email_contatomultiplos_contatoscontato_primario
Ideal: tabela separada patient_contacts com N contatos por paciente.
Responsável legal
para menores de idade
completo
Nome, CPF, telefone do responsável e flag de cobrança no responsável. Cobre bem o caso de pacientes menores.
nome_responsaveltelefone_responsavelcpf_responsavelcobranca_no_responsavel
Outros profissionais de saúde
psiquiatra, médico, nutricionista
faltando
Nome e contato do psiquiatra, médico ou outros profissionais que acompanham o paciente. Essencial para coordenação de cuidados. Presente no SimplePractice e TheraNest.
nome_profissionalespecialidadetelefone_profissionalemail_profissional
Preferências de comunicação
como o paciente quer ser contatado
diferencial
Canal preferido (WhatsApp, email, SMS), horário preferido para contato, idioma preferido. Alimenta diretamente os lembretes automáticos com as preferências do paciente.
canal_preferidohorario_contatoidioma
3 · Origem & encaminhamento
Como chegou ao terapeuta
campos existem mas são texto livre
parcial
Você tem onde_nos_conheceu e encaminhado_por como texto livre. Ideal ser enum + texto opcional para permitir filtros e relatórios de origem.
onde_nos_conheceuencaminhado_por origem_enumagendador_publico_ref
Motivo de inatividade ou alta
por que o paciente saiu
faltando
Quando paciente vai para "Alta", "Inativo" ou "Encaminhado" — qual o motivo? Alta terapêutica, abandono, encaminhamento, mudança de cidade. Essencial para relatórios e qualidade clínica.
motivo_saidadata_saidaencaminhado_para
4 · Status & ciclo de vida do paciente
Status do paciente
Ativo, Inativo, Alta, Encaminhado, Arquivado
completo
Enum bem definido com os 5 status mais relevantes. Constraint no banco garante integridade.
AtivoInativoAltaEncaminhadoArquivado
Histórico de mudanças de status
trilha de auditoria do ciclo de vida
faltando
Quando o status mudou, quem mudou e por quê. Permite ver o histórico completo: "Ativo → Inativo (01/03) → Ativo (15/04)". Exigência de auditoria clínica.
status_anteriorstatus_novomotivoalterado_poralterado_em
Escopo do paciente (clínica vs. terapeuta)
patient_scope bem modelado
completo
Distinção entre paciente da clínica (qualquer terapeuta pode atender) e paciente particular do terapeuta. Com constraint de consistência.
patient_scopetherapist_member_idresponsible_member_id
Alerta & flag de risco
sinalização visível no topo do cadastro
diferencial
Flag booleano de risco elevado com nota associada. Exibe alerta vermelho no topo do cadastro e do prontuário. Terapeuta sinaliza pacientes que precisam de atenção especial (ideação, crise recente).
risco_elevadonota_riscosinalizado_emsinalizado_por
5 · Organização & segmentação
Tags de paciente
patient_tags + patient_patient_tag
completo
Tags com nome e cor, por tenant, com many-to-many. Bem estruturado.
patient_tagspatient_patient_tagcoris_padrao
Grupos de pacientes
patient_groups com many-to-many
completo
Grupos com nome, cor, descrição, status ativo e flag de sistema. Relação many-to-many com patient_group_patient.
patient_groupspatient_group_patientis_system
Cor de identificação
identification_color na agenda
completo
Cor atribuída ao paciente para visualização rápida na agenda. Diferencial visual que poucos sistemas brasileiros têm.
identification_color
Score de engajamento
calculado automaticamente
diferencial
Score calculado por view/função baseado em: frequência de sessões, taxa de comparecimento, dias desde última sessão, pagamentos em dia. Exibido como indicador no card do paciente. Ajuda a identificar quem precisa de atenção.
engajamento_scoretaxa_comparecimentodias_sem_sessao
6 · Financeiro vinculado ao paciente
Descontos individuais
patient_discounts bem modelado
completo
Desconto percentual ou fixo por paciente, com período de validade e motivo. Bem estruturado com active_from e active_to.
discount_pctdiscount_flatactive_fromactive_toreason
Limite de sessões por período
controle de plano ou convênio
faltando
Pacientes de convênio frequentemente têm limite de sessões autorizadas por mês. Campo para registrar o limite e controlar o consumo — alerta quando está próximo do teto.
limite_sessoes_messessoes_usadasperiodo_referencia
Método de pagamento preferido
como esse paciente costuma pagar
faltando
PIX, cartão, dinheiro, convênio. Aparece como sugestão padrão ao registrar cobrança. Evita perguntar toda vez como o paciente paga.
metodo_pagamento_preferidodados_pagamento_obs
LTV & métricas financeiras do paciente
calculado por view
diferencial
Total pago desde o início, ticket médio por sessão, total de sessões realizadas. Calculado por view em cima de financial_records — sem armazenar, sem inconsistência.
v_patient_ltvtotal_pagoticket_mediototal_sessoes
7 · Observações & notas internas
Observações gerais
dois campos de texto soltos
parcial
Você tem observacoes e notas_internas como campos de texto livre. Funciona, mas sem distinção clara de propósito ou histórico de edições.
observacoesnotas_internas historico_edicoeseditado_por
Linha do tempo do paciente
feed cronológico de tudo que aconteceu
diferencial
Feed automático com eventos relevantes: "Primeira sessão", "Mudança de status", "Documento assinado", "Escala respondida", "Pagamento em atraso". Visível no topo do cadastro como timeline. SimplePractice tem isso.
patient_timelineevento_tipodescricaoocorrido_em