UDENTIVA Plataforma Inteligente de Gestão Odontológica
QUALIDADE DE SOFTWARE E MATURIDADE DE PROCESSO

Nosso Processo de Desenvolvimento de Software e Conformidade com SPICE

A UDENTIVA embute na própria arquitetura a maturidade de processo exigida para software de saúde. Esta página apresenta, com evidências, nosso ciclo de vida de desenvolvimento, os níveis de capacidade SPICE / ISO-IEC 15504, nossos mecanismos contínuos de registro e controle de erros, nossos critérios de versão e segurança e nosso histórico de desenvolvimento.

Fundamento: Regulamento sobre Sistemas de Gestão de Informação em Saúde (MevzuatNo 39682), art. 6 e art. 20 — exigência de certificação de qualidade de software (CMMI/SPICE).

A arquitetura de processos da UDENTIVA é uma abordagem de qualidade de software e gestão de processos pronta para auditoria, alinhada aos princípios de SPICE / ISO/IEC 15504.

A definição de processos, a implementação e os produtos de trabalho rastreáveis estão estruturados; mecanismos de medição quantitativa, prevenção de defeitos e melhoria contínua operam em produção. A declaração oficial de nível de capacidade está sujeita a avaliação (appraisal) independente.

Níveis de Capacidade SPICE

O SPICE avalia os processos por nível de capacidade, de 0 a 5. A UDENTIVA está estruturada para atender às expectativas dos Níveis 1-3 no nível de definição de processo/implementação/produtos de trabalho rastreáveis; para os Níveis 4-5, mecanismos de medição quantitativa e melhoria contínua estão em operação. A declaração oficial de nível está sujeita a avaliação independente.

0
Eksik (Incomplete)
O processo não é aplicado/não atinge o objetivo.
1
Realizado (Performed)
O processo existe e produz suas saídas.
2
Gerenciado (Managed)
O processo é planejado, monitorado; os produtos de trabalho são gerenciados.
3
Estabelecido (Established)
O processo-padrão definido é aplicado de forma consistente em todo o projeto.
4
Previsível (Predictable)
O processo é controlado quantitativamente (por medição).
5
Optimize Eden (Optimizing)
Melhoria contínua + prevenção de defeitos + inovação de processos.

Os mecanismos de controle quantitativo e melhoria contínua dos Níveis 4-5 operam abaixo com suas evidências (medição ao vivo, registro de erros/CAPA, logs de implantação).

Áreas de Processo SPICE → Aplicação → Evidência

Cada área de processo corresponde a uma implementação concreta na UDENTIVA e a uma evidência auditável. O processo não é um documento, é código em execução.

Área de ProcessoAplicativo UDENTIVAEvidência
ENG.1 Elicitação de RequisitosDefinição de requisitos por mapa de fases + fatia vertical (vertical slice); o contrato de projeto UDENTIVA.md fixa os requisitos.UDENTIVA.md (REGRAS DE OURO), especificação técnica 02_tech_spec/, mapa de fases/módulos
ENG.4 Design de SoftwareMonólito modular; os pacotes de contexto não compartilham as tabelas uns dos outros; comunicação por interface; serviço externo = adapter.regra de fronteira internal/{identity,patient,billing,export,...}; ADR-001..008
ENG.5 Construção de SoftwareSQL explícito (sqlc, sem ORM); context como primeiro parâmetro em cada função; encapsulamento de erros %w; dinheiro = numeric.override de tipo em sqlc.yaml (numeric→string), db/queries/*.sql, gofmt/golangci-lint
ENG.6 Integração de SoftwareCadeia loopback PHP(BFF) ↔ Go ↔ PostgreSQL ↔ Redis; única superfície pública.web/core/ApiClient, saúde de componentes /healthz (db+redis)
ENG.7 Teste de SoftwareTeste de isolamento cross-tenant (o mais crítico), idempotência, conflito de agendamento, precisão monetária, 2FA/OTP, vetor TOTP RFC6238, QR (verificação OpenCV+ISO).internal/integration/*_test.go, platform/totp/totp_test.go, go test ./...
SUP.1 Garantia de QualidadeCada PR deve cumprir as REGRAS DE OURO; lint limpo; se o teste de isolamento estiver vermelho na CI, não há merge.golangci-lint, Definition of Done kontrol listesi
SUP.8 Gestão de ConfiguraçãoControle de versão Git (branch core); versionamento sequencial de esquema com goose; artefatos de build são copiados como backup.git, goose_db_version tablosu, .tools/deploy yedekleri
SUP.9 Resolução de ProblemasRegistro de auditoria append-only + outbox de e-mail/SMS (registro de cada envio) + disciplina de backup/rollback de deploy.audit_log, email_outbox/sms_outbox, bin/server.exe.bak-* rollback
SUP.10 Gestão de Solicitações de MudançaCada mudança de esquema é uma nova migração numerada; reversível (goose Down); aprovação do classificador de deploy.db/migrations/0001..0027, +goose Up/Down
MAN.3 Gestão de ProjetoEntrega por fatia vertical (cada fatia funciona de ponta a ponta); notas de handover de sessão.super-devam.md, faz tablosu (DoD per dilim)
MAN.6 MediçãoVerificação de saúde, medição de capacidade, métricas de envio de e-mail/SMS, volume de auditoria, telemetria de eventos ao vivo./healthz, painel de Monitoramento de Processos & Qualidade (evento/erro/deploy/KPI)

Arquitetura em Camadas e Segurança de Dados

As responsabilidades são divididas em camadas; a autoridade do domínio está em um único ponto e é isolada por loopback. O navegador vê apenas o BFF fino e nunca consegue acessar diretamente as camadas de domínio e dados.

CamadaResponsabilidade e SegurançaLocalização
Sunum (BFF)PHP 8.4 — BFF fino: sessão, render, CSRF, roteamento. SEM regra de negócio/DB. Única superfície pública (IIS:443).web/
Uygulama / DomainMonólito modular em Go — a ÚNICA autoridade do domínio. RBAC, regras de negócio, transações. Escuta apenas 127.0.0.1.api/internal/
VeriPostgreSQL — cada tabela com tenant_id + RLS FORCE; SQL explícito (sqlc), parametrizado. Dinheiro em numeric.api/db/
Cache / FilaRedis — sessão, idempotência, bloqueio distribuído, fila asynq (SMS/e-Fatura).platform/redisx
Nesne DepolamaCompatível com S3 — arquivos grandes (radiografias) via presigned/stream; blob nunca no DB.platform/storage
Serviço Externo (adapter)e-Fatura, SMS (NetGSM), e-mail (SMTP), (futuramente e-Nabız/MEDULA/DICOM) — abstraídos por trás de uma interface.internal/notify

Medição Quantitativa e KPI — Telemetria de Processo ao Vivo

A medição não é uma declaração, é um sistema em funcionamento. Todas as operações são contadas ao vivo (sucesso/falha), os erros de produção são capturados em um registro permanente e o framework de KPI abaixo é vinculado a ações periódicas. As fontes de dados são tabelas reais: event_counter (contador de operações ao vivo), error_log (registro permanente de erros), deploy_log (registro de implantações).

Área de MediçãoKPIMetaFonte de DadosPeríodoAção
Segurança de isolamento de tenantcross-tenant test fail0CI / izolasyon testiher PRBloqueio de merge
Erro de produçãoerro explícito (5xx/panic)0error_log (persistente)contínuo/ao vivoRCA + CAPA zorunlu
Taxa de sucesso das operaçõessuccess / toplam event≥ 99%event_counter (ao vivo)contínuo/ao vivoCausa-raiz em caso de queda
Tempo de resoluçãoMTTR (resolução média)↓ tendência decrescenteerror_log (resolved)mensalTrend incelemesi
Confiabilidade de implantaçãotaxa de rollback< %5deploy_log30 diasRollback review
Segurança de identidade2FA/OTP kritik olay0audit + event_countermensalHardening
Confiabilidade de mensageriaSMS/e-posta failure↓ baixo*_outboxdiárioRevisão de provedor
Prontidão de restauraçãosucesso do teste de restore%100DR test (hedef)trimestralAtualizar runbook
Esses KPIs são monitorados em tempo real a partir do painel ao vivo "Monitoramento de Processos & Qualidade", acessível ao operador da plataforma: taxa de sucesso das operações, número de erros em aberto, MTTR (tempo médio de resolução), número de implantações e taxa de rollback.

Ciclo de Prevenção de Defeitos e Melhoria Contínua (RCA/CAPA)

Todo erro de produção passa por um ciclo padrão de análise de causa-raiz (RCA) e ação corretiva/preventiva (CAPA); a recorrência do mesmo erro é impedida por controle de regressão e monitoramento de tendências.

1
Registro de incidente / erro

O erro de produção (5xx/panic) é capturado automaticamente → error_log persistente (em repetição da mesma assinatura, count++, tendência de defeitos).

2
Classificação

Determina-se o nível (error/panic), o impacto e o número de repetições; a prevalência é medida pelos contadores de eventos com falha.

3
Causa-raiz (RCA)

A análise de causa-raiz é realizada e registrada no painel de Monitoramento de Processos.

4
Ação corretiva/preventiva (CAPA)

A ação corretiva + ação preventiva (código, teste, regra de migração, controle de segurança) é definida e registrada.

5
Controle de regressão

Adiciona-se um teste/regra que impede a repetição do mesmo erro; é monitorado por telemetria contínua.

6
Trend incelemesi

As tendências de KPI (MTTR, taxa de erros, rollback) são avaliadas periodicamente; para erros recorrentes, abre-se uma ação em nível de processo.

Mecanismos em Operação — Registro Contínuo de Erros, Controle e Melhoria

A essência do SPICE Nível 5: registro contínuo de erros, mantê-los sob controle, prevenção de defeitos e melhoria contínua. A UDENTIVA opera esses mecanismos em produção.

Registro Contínuo de Erros

O audit_log imutável (append-only) registra permanentemente cada operação crítica; email_outbox/sms_outbox registram cada envio (status, attempts, error). Nenhum evento se perde silenciosamente.

audit_log, *_outbox (status/error/attempts)
Controle de Erros & Reversão

Envelope de erro consistente {error:{code,message}}; erro interno/stack nunca é vazado. Antes de cada deploy, backup do binary + web; em caso de outage, rollback em segundos com bin/server.exe.bak-*.

httpx.Error, deploy yedek/rollback runbook
Prevenção de Defeitos (Defect Prevention)

Arquitetura fail-closed: sem contexto RLS, 0 linhas; a idempotência impede operações duplicadas; dinheiro em numeric torna impossível o erro de float; a whitelist (dataset de exportação) previne injeção de SQL. Os erros são impedidos desde o design.

RLS FORCE, Idempotency-Key SETNX, numeric, view whitelist
Verificação Independente

Componentes críticos são verificados por dois métodos independentes: vetor de teste TOTP RFC6238, decode OpenCV cv2 + codeword de referência ISO/IEC 18004 para QR, teste de isolamento cross-tenant.

testes de integração + verificação por decoder externo
Ciclo de Melhoria Contínua

Em cada sessão, auditoria de segurança → achados → hardening (ex.: RBAC de fase2/fase3 adicionado, 2FA, Export API). A memória institucional é preservada com notas de processo (super-devam.md).

ciclo auditoria de segurança → hardening
Inovação de Processos

Uma nova exigência regulatória (Visão VEM) é convertida diretamente em funcionalidade de produto e em evidência; as mudanças na legislação são monitoradas continuamente e registradas no mapa de conformidade.

Export API/views VEM, mapa de conformidade /mevzuat

Controle de Edition (Versão)

Uma única base de código, restrição por flag — sem fork.

  • A flag EDITION=base define o MVP de clínica única; a visibilidade do menu (app.php) e o acesso às rotas (index.php) são lidos da allowlist de Edition::allows().
  • O RBAC do Go é a AUTORIDADE; Edition é apenas restrição de UI/superfície — a autorização real é imposta na camada da API (visibilidade ≠ segurança).
  • na versão full, todos os módulos ficam abertos; na versão base, os módulos de crescimento da Fase 2/Fase 3 ficam ocultos. SEM fork — uma única base de código, restrição por flag.
  • As capacidades são medidas por plano/pacote de tenant (modelo de assinatura da plataforma); em caso de excesso, aviso suave (não bloqueia).

Mecanismos de Versionamento

Versão rastreável nas camadas de esquema, fonte, implantação e API.

Versionamento de Esquema
Migração sequencial com goose (0001 → 0027); cada mudança numerada + reversível (Up/Down). A versão aplicada é rastreada na tabela goose_db_version. A migração de produção é validada em DB limpo.
Versionamento de Código-fonte
Controle de versão Git (branch: core); repositório bare central isolado. Cada trabalho significativo é commitado; segredos (connection.md, .tools) em gitignore — a senha nunca é commitada.
Versionamento de Implantação
O binary Go é compilado (-ldflags "-s -w"), APENAS o swap de bin/server.exe (nunca o wrapper WinSW). Antes de cada deploy, backup do binary + web (com timestamp). Cache-bust de asset estático ?v=N.
Versionamento de API
Endpoints públicos com prefixo /v1; Export API em /export/v1. A compatibilidade retroativa é mantida; mudança que quebra vira nova versão.

Uso do Git, Rewind e Rollback

Todo o processo de desenvolvimento está sob controle de versão; cada implantação é reversível (rewind/rollback).

Controle de Versão
Git (branch: core); repositório bare central isolado. Cada trabalho significativo é commitado; o histórico é rastreável.
Gestão de Segredos
Senhas/chaves/dados de conexão em gitignore — NUNCA são commitados (connection.md, .tools, *.zip).
Isolamento
Apenas o diretório deste projeto é versionado; o código-fonte de outros projetos não é tocado.
Rastreabilidade
Os commits são baseados em fatia-vertical/funcionalidade; o registro de deploy (deploy_log) conecta a cadeia commit→release→prod.
Rewind / Rollback: Antes de cada implantação, é feito um backup do binário + web + banco de dados (com timestamp). O esquema é revertido por migration reversível (goose Down); o binário em execução retorna à versão anterior em segundos (bin/server.exe.bak-*); a web é restaurada a partir do arquivo anterior. No momento do incidente, a produção pode ser revertida ao último estado bom conhecido.

Critérios de Segurança (Regras de Ouro)

Segurança não é um recurso, é a própria arquitetura. Regras inegociáveis, cuja violação implica rejeição do PR:

Isolamento em nível de linha (RLS FORCE, fail-closed)
Cada tabela com tenant_id; sem contexto, a policy retorna 0 linhas. O teste de isolamento cross-tenant é um gate da CI.
Atomik & idempotent yazma
Operação multientidade em uma única transação (tudo ou nada); cada mutação impede operações duplicadas com Idempotency-Key.
Para = numeric
Float PROIBIDO; arredondamento em um único lugar, 2 casas. Erro financeiro impossível por design.
Identidade e sessão
senha argon2id; session_key opaca no Redis (TTL deslizante); verificação em duas etapas (TOTP); a session_key não é exposta ao navegador.
Topoloji izolasyonu
O Go escuta apenas 127.0.0.1; a única superfície pública é o PHP/BFF. As portas de backend (DB/Redis) ficam fechadas ao exterior.
Auditoria imutável
audit_log append-only; PII/segredos não são logados/são mascarados; TCKN/dados de saúde são de categoria especial.
Consulta parametrizada
Todo SQL é parametrizado (sqlc/pgx) — injeção de SQL impossível; nomes de dataset em whitelist.
Localização de dados
Dados de saúde apenas na Turquia; sem transferência ao exterior (KVKK art. 9, Reg. KSV art. 16).

Development History (Histórico de Desenvolvimento)

O sistema foi construído com fatias verticais, cada uma funcionando de ponta a ponta. Abaixo estão as fases e a cronologia dos trabalhos recentes de segurança/regulação.

Faz 0 Esqueleto

pgx+sqlc, goose, teste de RLS fail-closed, WithTenantTx, middleware de sessão, login+RBAC, auditoria, loopback PHP↔Go, base asynq, health.

Faz 1 Núcleo Clínico (9 fatias verticais)

CRUD de Paciente + teste de isolamento cross-tenant → Agendamento (exclusion constraint + Redis lock) → Odontograma/Plano de tratamento (FDI, append-only) → Cobrança/Conta corrente/Caixa (derive, idempotente) → adapter e-Fatura (fast-follow) → Estoque → Radiografia (S3) → Lembrete por SMS (asynq backoff).

Platform Console de gestão da plataforma

Tier de operador de plataforma (super-admin) (X-Platform-Key, plano de identidade separado); gestão de tenants, modelo de assinatura/faturamento, medição de capacidade, editor de versão legal, reCAPTCHA, configurações NetGSM.

Crescimento Multilíngue & site da clínica

i18n (20 dil, key-based, RTL); 20 tema + klinik public site (/s/{slug}) + lead-booking; demo klinik siteleri.

2026-06 Segurança de Identidade & Comunicação

Primitivo OTP compartilhado; redefinição de senha + magic-link + ativação de conta (SMTP real); núcleo de SMS NetGSM; auth público multi-tenant; gestão de usuários da clínica.

2026-06 Verificação em duas etapas (2FA)

TOTP (RFC6238) + códigos de reserva; QR OBRIGATÓRIO (independente de externos, qr.js sem violar CSP; verificado de forma independente com OpenCV+ISO); verificação de telefone por SMS (consentimento KVKK).

2026-06 Conformidade Regulatória

Visão VEM (Modelo de Dados Mínimo) com 12 export views + Export API (definida por SuperUser, travada por tenant, fail-closed); mapa de Legislação & Conformidade; revisão de contratos legais 100% orientada à legislação.

2026-06 Suporte & Processo

Central de Suporte com acompanhamento de tickets; documentação de processos SPICE (esta página); auditoria de segurança contínua + hardening.

Mais sobre maturidade de processos e conformidade

Para informações detalhadas sobre arquitetura, segurança e conformidade regulatória, entre em contato com nossa equipe.

Regulamentação e conformidade Entre em Contato