Files
scoreodonto.com/doc/AUDITORIA-FUNCIONAL-SCOREODONTO.md
VPS 4 Builder 5049ce9b8b
build-and-push / build (push) Successful in 1m10s
build-and-push / deploy (push) Has been skipped
docs: unifica documentação em doc/ (fonte única, sem sobreposição)
- Pasta única scoreodonto.com/doc/ com 9 docs que prestam:
  VERDADE-HOJE (estado, principal), DEPLOY-PRODUCAO (runbook), BANCO-DEV-ESTRATEGIA,
  REGISTRY, AUDITORIA-FUNCIONAL, BACKLOG-FINANCEIRO-V1, CRM_Ortodontia, RX_ARQUITETURA, RX_BACKLOG.
- Removidos os docs de infra sobrepostos/desatualizados (estado consolidado em VERDADE-HOJE;
  histórico fica no git): arquitetura.md, deploy.md, CHECKLIST-DEPLOY-PRODUCAO.md,
  PENDENCIAS.md, PENDENCIAS_E_DEPLOY.md.
- Pasta documentação/ eliminada.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 12:04:08 +02:00

11 KiB
Raw Permalink Blame History

Auditoria Funcional — ScoreOdonto (estado atual + roadmap V1/V2/V3)

Documento mestre da auto-auditoria (read-only). Gerado a partir do código em 2026-06-15. Nota de nomenclatura: NÃO existe módulo "Delivery" separado. O antigo "Delivery" foi renomeado e é o marketplace de Profissionais (propostas clínica→profissional). Onde o prompt de benchmark cita "Delivery", leia-se Profissionais.


PARTE I — Arquitetura funcional atual

Papéis (9): superadmin, admin, donoclinica, donoconsultorio, dentista, biomedico, protetico, funcionario, paciente.

Modelo multi-tenant: workspaces = linhas em clinicas (tipo clinica ou pessoal); acesso via vinculos; isolamento por clinica_id (auditado e endurecido em 8 rodadas de segurança). É um diferencial maduro.

Inventário de telas (40+), por domínio

Domínio Telas Acesso
Núcleo clínico Dashboard, Agenda, Pacientes, Ortodontia (OrthoView/PhotoWorkspace/Reports/Annotator), Meus Tratamentos, Lançar GTO dono/admin/funcionário/dentista/bio/protético
Catálogos Dentistas, Especialidades, Procedimentos, Planos/Convênios dono/admin/funcionário
Financeiro/Comercial Financeiro, Relatórios, Orçamentos, Contratos (motor), Gestão de Leads dono/admin/funcionário
Marketplace/Recursos Locação de Salas, Profissionais (marketplace), Diretório Prof., RX/Radiografias, Dispositivos RX quase todos
Tutoria (orto) Ser Tutor, Painel Tutor, Gestão Tutores dentista/admin
Gestão Minhas Clínicas, Equipe/Usuários (RBAC), Plugins, Configurações, Notificações dono/admin
Onboarding/Auth Landing, Login, OnboardingChat, Cadastro Dentista, Criar Clínica, Aguardando Convite, Contato Público público
Superadmin SuperAdminView (stats/usuários/clínicas/logs/financeiro/notificações), UpdateDb, Sync superadmin

Menu (real)

Visão Geral · Agenda · Pacientes · Lançar GTO · Ortodontia · Financeiro · Relatórios · Orçamentos · Contratos · Gestão de Leads · Meus Tratamentos · Minhas Clínicas · Dentistas · Especialidades · Procedimentos · Planos/Convênios · Equipe/Usuários · Diretório Prof. · Tutoria (3) · Notificações · Plugins · Configurações.

Menu base + filtro accessByRole + RBAC por cargo (funcoes.permissoes/nivel; array vazio herda o menu do papel). Paciente vê só Tratamentos/Notificações/Config. Não há: menus contextuais (botão direito), menus dentro de tabelas, breadcrumbs. Navegação é hash-route + cards/modais.

Backend

≈150 endpoints. Guards: authGuard / tenantGuard / superadminGuard / adminGuard. Auditoria via audit_log. Tempo real em /api/ws.


PARTE II — Gap analysis

Forte (vantagem competitiva)

  • Multitenant/multiempresa (workspaces universais; isolamento por clínica auditado).
  • Agenda — anti-overbooking GLOBAL (mesma pessoa não dobra entre clínicas), faltas/reagendar/confirmar/reencaminhar, pendências "a reagendar", presença em tempo real, importar Google.
  • Prontuário clínico — odontograma FDI + fotos (avaliação); Ortodontia completa (tratamento/evoluções/documentação fotográfica com anotador/escala + PDFs de tutoria); RX (plugin + laudos); GTO/guias.
  • Contratos — motor universal (modelos+variáveis, gerador, assinatura interna com IP/hash, vigência/alertas, 28 modelos de catálogo). Acima da média de mercado.
  • Marketplace (salas anti-conflito triplo + Profissionais com propostas/diretório).
  • RBAC por cargo/nível + realtime.

Parcial

  • Financeiro — só lançamentos receita/despesa + dashboard. Falta contas a pagar/receber estruturado, vencimentos, baixa.
  • CRM — só Leads + conversão→paciente. Sem funil/oportunidades/campanhas.
  • Convênios — "Planos/Convênios" é catálogo simples; sem regras de cobertura/repasse/glosa.
  • Comunicação — notificações in-app/realtime + webhooks WhatsApp na infra; sem disparo de WhatsApp/SMS/e-mail pelo app; sem lembretes automáticos de consulta.
  • Relatórios — só productivity.
  • RH — dentistas/horários/equipe/funções; sem escalas/ponto/folha; repasse só na tutoria (manual).
  • Mobile — web responsivo; sem PWA/app.

Ausente

  • Estoque (produtos, lotes, validade, inventário, compras, fornecedores).
  • Financeiro avançado: fluxo de caixa, DRE, centros de custo, conciliação bancária, comissões/rateios/repasse estruturados, gateways PIX/cartão/boleto, carnês/parcelamento.
  • Prontuário: anamnese estruturada, periodontograma, assinatura do paciente no prontuário, consentimento (TCLE).
  • Agenda: lista de espera, recorrência, bloqueios, recursos/equipamentos como agendáveis.
  • CRM: funil, campanhas, automações (WhatsApp), pipeline de orçamento.
  • Profissionais: atendimento geolocalizado/geodistância (gap já mapeado), avaliações/reputação. (Não confundir com "Delivery" — é a evolução do módulo Profissionais.)

Obsoleto / dívida técnica

  • UpdateDbView/Sync (legado de planilha) — manter só superadmin.
  • /fotos/:id/raw públicas por id (mitigado com URL assinada; ideal evoluir).
  • Orçamento gera um "Contrato" (documento) — convém unificar o fluxo orçamento→contrato no motor.

PARTE III — Roadmap (V1 / V2 / V3)

Matriz: Impacto (I) · Retorno financeiro (R) · Esforço (E) — escala 15.

V1 — Quick wins (alto I, baixo E)

Item I R E
Anamnese + TCLE estruturados no prontuário 5 3 2
Lembretes automáticos de consulta (WhatsApp/e-mail via webhook existente) 5 4 2
Agenda: bloqueios + lista de espera (reaproveitar "interesses"/anti-overbooking) 4 3 2
Contas a pagar/receber sobre o financeiro atual (status/vencimento/baixa) 5 4 3
Orçamento → Contrato → Financeiro (ligar os 3 que já existem) 5 5 3
Pacote de relatórios essenciais (produção, faltas, financeiro por período, conversão de leads) 4 3 2

V2 — Diferenciação e receita (alto R)

Item I R E
Comissões/Repasse profissional (agenda→procedimento→financeiro→profissional) 5 5 4
Gateways de pagamento (PIX/cartão/boleto) + carnês/parcelamento 4 5 4
CRM com funil + WhatsApp + automações (sobre Leads) 5 5 4
Fluxo de caixa + centros de custo 4 4 3
Periodontograma + evolução clínica padronizada 4 2 3
Contratos: partes externas por link + PDF server-side + Clicksign 4 3 4

V3 — Plataforma

Item I R E
Estoque completo (lotes/validade/inventário/compras/fornecedores) + integração financeira 4 3 5
DRE + conciliação bancária 3 4 5
RH: escalas/ponto/produção/folha 3 3 5
App/PWA mobile 4 3 4
Profissionais: atendimento/geodistância + avaliações/reputação 3 3 4
BI/Dashboards configuráveis + alertas automatizados 3 3 4

Mapa de conexões entre telas

Já existe

  • Agenda → Novo Agendamento → busca Paciente → cria agendamento.
  • Lead → Converter → Paciente (+ 1º agendamento).
  • Agendamento → Solicitar Avaliação → novo slot vinculado.
  • Paciente → tile Orçamentos → gera contrato/print.
  • Sala → Reserva → anti-conflito.
  • Profissional (marketplace) → Proposta → notificação.

Falta ligar (o "tecido conjuntivo" — maior ganho de V1/V2)

  • Procedimento realizado (agenda) → lançamento Financeiro → Comissão → Repasse profissional.
  • Orçamento aprovado → Contrato (motor) → Financeiro (parcelas).
  • Contrato assinado → vigência → cobrança recorrente.
  • Estoque ← consumo por procedimento.

Diagnóstico central: módulos fortes, pouco conectados. O maior retorno não é criar módulos novos, e sim LIGAR agenda↔financeiro↔contrato↔profissional.


Síntese por cenário

  • Clínica/Consultório: prontos; faltam financeiro avançado + comissões.
  • Dentista autônomo: workspace "pessoal" já funciona; falta repasse/produção.
  • Biomédico: áreas/especialidades ok; harmonização (contrato já criado); falta agenda estética dedicada.
  • Locação de salas: maduro; falta integrar reserva→financeiro/contrato de locação (o motor já tem o modelo).
  • Profissionais (marketplace, ex-"Delivery"): maduro; falta avaliações/reputação, fechamento via contrato e geodistância.
  • Multiempresa/Multitenant: o ponto mais forte — base sólida para escalar.

DEEP-DIVE 1 — Financeiro + Comissões/Repasse (2026-06-15)

A) Checklist da tela Financeiro

  • Objetivo: registrar/acompanhar lançamentos (receita/despesa) por status.
  • Acesso: Menu → Financeiro; dono/admin/funcionário (escopo por clínica, tenantGuard).
  • Dados: lista (paciente, descrição, valor, vencimento, status) + KPIs Recebido/Pendente/Atrasado.
  • Tabela financeiro: id, clinica_id, pacientenome(texto), descricao, valor, datavencimento, status(Pago/Pendente/Atrasado), formapagamento, tipo(RECEITA/DESPESA). 0 linhas.
  • Botões: Filtrar(status) · Novo lançamento · linha: Confirmar pagamento, Gerar recibo (download), Excluir.
  • Integrações: PARCIAL — LancarProcedimentoModal → saveFinanceiro (procedimento gera 1 lançamento). Nenhuma outra.
  • Limitações: soma por status; "Atrasado" manual.

B) Diagnóstico — Financeiro é uma "ilha"

A financeiro não tem chaves de ligação: pacientenome é texto (não FK); não há profissional_id, agendamento_id, procedimento_id, orcamento_id, contrato_id. Despesa = só tipo=DESPESA (sem fornecedor/centro de custo/recorrência). Comissão/Repasse inexistente (procedimentos.valorparticular sem %; dentistas sem repasse). A maior alavanca é a FK profissional_id — sem ela, não há comissão, repasse nem relatório de produção.

C) Fluxo conectado proposto

Agenda (paciente+dentista+procedimento) → concluído → LANÇAMENTO (com FKs) → regra de COMISSÃO → REPASSE por período. Orçamento aprovado → Contrato (motor) → parcelas (contas a receber). Despesa → fornecedor/centro de custo → fluxo de caixa/DRE.

D) Evolução do modelo

  • V1: FKs em financeiro (paciente_id, profissional_id, procedimento_id, agendamento_id, contrato_id, origem); pago_em; job de "Atrasado"; contas a pagar (fornecedor/centro de custo/recorrente); relatórios essenciais.
  • V2: comissao_regras (por procedimento/profissional/convênio; %/fixo/produção; base bruta/líquida); comissao_valor no lançamento; repasses (consolida por profissional/período) formalizado pelos modelos "Contrato por Comissão/Produção/Percentual" do motor.

E) Regras de comissão por cenário

Dentista da clínica (% líquido por especialidade/convênio); autônomo (100%, ou taxa de sala); sala alugada (receita aluguel, liga sala_reservas); biomédico/harmonização (% + material parametrizável); Profissionais/marketplace (contrato de comissão define %); multiempresa (repasse consolidado por unidade).

Backlog acionável do V1 Financeiro: ver BACKLOG-FINANCEIRO-V1.md.