Padrões de Desenvolvimento EMR para Saúde
Padrões para a construção de sistemas de Prontuário Eletrônico do Paciente (EMR) e Registro Eletrônico de Saúde (EHR). Prioriza a segurança do paciente, a precisão clínica e a eficiência do profissional de saúde.
Quando Usar
- Construindo fluxos de atendimento ao paciente (queixa, exame, diagnóstico, prescrição)
- Implementando anotações clínicas (estruturadas + texto livre + voz-para-texto)
- Projetando módulos de prescrição/medicação com verificação de interações medicamentosas
- Integrando Sistemas de Suporte à Decisão Clínica (CDSS)
- Construindo exibições de resultados laboratoriais com destaque de faixas de referência
- Implementando trilhas de auditoria para dados clínicos
- Projetando UIs acessíveis para entrada de dados clínicos
Como Funciona
Segurança do Paciente em Primeiro Lugar
Cada decisão de design deve ser avaliada contra: "Isso pode prejudicar um paciente?"
- Interações medicamentosas DEVEM alertar, não passar silenciosamente
- Valores laboratoriais anormais DEVEM ser sinalizados visualmente
- Sinais vitais críticos DEVEM acionar fluxos de escalonamento
- Nenhuma modificação de dados clínicos sem trilha de auditoria
Fluxo de Atendimento em Página Única
Os atendimentos clínicos devem fluir verticalmente em uma única página — sem alternância de abas:
Cabeçalho do Paciente (fixo — sempre visível)
├── Dados demográficos, alergias, medicações ativas
│
Fluxo do Atendimento (rolagem vertical)
├── 1. Queixa Principal (modelos estruturados + texto livre)
├── 2. História da Doença Atual
├── 3. Exame Físico (por sistema)
├── 4. Sinais Vitais (acionamento automático de pontuação clínica)
├── 5. Diagnóstico (busca CID-10/SNOMED)
├── 6. Medicações (base de dados + verificação de interações)
├── 7. Investigações (pedidos de exames laboratoriais/radiologia)
├── 8. Plano e Acompanhamento
└── 9. Assinar / Bloquear / Imprimir
Sistema Inteligente de Templates
interface ClinicalTemplate {
id: string;
name: string; // ex., "Dor no Peito"
chips: string[]; // chips de sintomas clicáveis
requiredFields: string[]; // pontos de dados obrigatórios
redFlags: string[]; // aciona alerta não dispensável
icdSuggestions: string[]; // códigos de diagnóstico pré-mapeados
}
Alertas vermelhos em qualquer template devem acionar um alerta visível e não dispensável — NÃO uma notificação toast.
Padrão de Segurança de Medicação
Usuário seleciona medicamento
→ Verificar medicações atuais por interações
→ Verificar medicações do atendimento por interações
→ Verificar alergias do paciente
→ Validar dose com base em peso/idade/função renal
→ Se interação CRÍTICA: BLOQUEAR a prescrição completamente
→ Clínico deve documentar motivo de exceção para prosseguir além do bloqueio
→ Se interação GRAVE: exibir aviso, exigir reconhecimento
→ Registrar todos os alertas e motivos de exceção na trilha de auditoria
Interações críticas bloqueiam a prescrição por padrão. O clínico deve explicitamente anular com um motivo documentado armazenado na trilha de auditoria. O sistema nunca permite silenciosamente uma interação crítica.
Padrão de Atendimento Bloqueado
Uma vez que um atendimento clínico é assinado:
- Nenhuma edição permitida — apenas um adendo (um registro vinculado separado)
- Tanto o original quanto o adendo aparecem na linha do tempo do paciente
- A trilha de auditoria captura quem assinou, quando e quaisquer registros de adendo
Padrões de UI para Dados Clínicos
Exibição de Sinais Vitais: Valores atuais com destaque de faixa normal (verde/amarelo/vermelho), setas de tendência vs. anteriores, pontuação clínica calculada automaticamente (NEWS2, qSOFA), orientação de escalonamento inline.
Exibição de Resultados Laboratoriais: Destaque de faixa normal, comparação com valor anterior, valores críticos com alerta não dispensável, timestamps de coleta/análise, pedidos pendentes com prazo de retorno esperado.
PDF de Prescrição: Geração com um clique com dados demográficos do paciente, alergias, diagnóstico, detalhes do medicamento (genérico + marca, dose, via, frequência, duração), bloco de assinatura do clínico.
Acessibilidade para Saúde
As UIs de saúde têm requisitos mais rigorosos do que aplicações web típicas:
- Contraste mínimo de 4,5:1 (WCAG AA) — clínicos trabalham em iluminação variada
- Alvos de toque grandes (mínimo 44x44px) — para interação com luvas ou apressada
- Navegação por teclado — para usuários avançados inserindo dados rapidamente
- Nenhum indicador apenas com cor — sempre parear cor com texto/ícone (clínicos daltônicos)
- Rótulos para leitores de tela em todos os campos de formulário
- Nenhum toast com auto-dispensa para alertas clínicos — clínico deve reconhecer ativamente
Anti-Padrões
- Armazenar dados clínicos no localStorage do navegador
- Falhas silenciosas na verificação de interações medicamentosas
- Toasts dispensáveis para alertas clínicos críticos
- UIs de atendimento baseadas em abas que fragmentam o fluxo de trabalho clínico
- Permitir edições em atendimentos assinados/bloqueados
- Exibir dados clínicos sem trilha de auditoria
- Usar tipo
anypara estruturas de dados clínicos
Exemplos
Exemplo 1: Fluxo de Atendimento do Paciente
Médico abre atendimento para Paciente #4521
→ Cabeçalho fixo mostra: "Rafael M, 58A, Alergias: Penicilina, Medicações Ativas: Metformina 500mg"
→ Queixa Principal: seleciona template "Dor no Peito"
→ Clica chips: "subesternal", "irradiando para braço esquerdo", "em aperto"
→ Bandeira vermelha "dor torácica subesternal em aperto" aciona alerta não dispensável
→ Exame: sistema CV — "B1 B2 normal, sem sopro"
→ Sinais Vitais: FC 110, PA 90/60, SpO2 94%
→ NEWS2 calcula automaticamente: pontuação 8, risco ALTO, alerta de escalonamento exibido
→ Diagnóstico: pesquisa "IAM" → seleciona CID-10 I21.9
→ Medicações: seleciona AAS 300mg
→ CDSS verifica contra Metformina: sem interação
→ Assina atendimento → bloqueado, apenas adendo a partir deste ponto
Exemplo 2: Fluxo de Segurança de Medicação
Médico prescreve Varfarina para Paciente #4521
→ CDSS detecta: Varfarina + AAS = interação CRÍTICA
→ UI: modal vermelho não dispensável bloqueia a prescrição
→ Médico clica "Anular com motivo"
→ Digita: "Benefícios superam riscos — protocolo de RNI monitorado"
→ Motivo de anulação + alerta armazenados na trilha de auditoria
→ Prescrição prossegue com anulação documentada
Exemplo 3: Atendimento Bloqueado + Adendo
Atendimento #E-2024-0891 assinado pelo Dr. Silva às 14:30
→ Todos os campos bloqueados — nenhum botão de edição visível
→ Botão "Adicionar Adendo" disponível
→ Dr. Silva clica em adendo, adiciona: "Resultados laboratoriais recebidos — Troponina elevada"
→ Novo registro E-2024-0891-A1 vinculado ao original
→ Linha do tempo mostra ambos: atendimento original + adendo com timestamps