Audit log (ou log de auditoria) é a estrutura de dados que registra todas as ações relevantes em um sistema de forma imutável e rastreável.
Em farmácia magistral, ações que precisam audit log:
- Recebimento de IFA + COA cadastrado
- Aprovação de fórmula pelo RT
- Pesagem (cada gramatura medida + balança + operador + timestamp)
- Identificação NIR + NFC do material
- Sensores ambientais (excursões fora da faixa)
- Geração de Ordem de Produção
- Liberação pós-CQ
- Dispensação ao paciente
- SNGPC transmissão
- Solicitação LGPD recebida e atendida
Estrutura típica de evento:
{
"id": "evt-2026-04-30-1432-007",
"timestamp": "2026-04-30T14:32:15.123-03:00",
"actor": {
"type": "user",
"id": "rt-fulana",
"name": "Dra. Fulana",
"crf": "CRF/PI 12345"
},
"action": "weighing.confirmed",
"subject": {
"type": "production-order",
"id": "po-2026-04-30-A29F"
},
"payload": {
"ifa": "minoxidil",
"ifa_lot": "M-2026-Q1-457",
"expected_weight": 0.05,
"measured_weight": 0.0508,
"balance_id": "balance-1",
"tolerance_passed": true
},
"previous_hash": "6b9d8a7c5e4f...",
"current_hash": "7a8f9b2c3d4e..."
}
Imutabilidade — como garantir:
- Append-only: estrutura não permite UPDATE, apenas INSERT
- Hash-chain: cada evento inclui hash do anterior (alteração retroativa quebra a cadeia)
- Backup replicado: cópia em múltiplos locais
- Assinatura digital opcional: cada evento assinado por chave privada
Tecnologia recomendada:
- PostgreSQL com RLS (Row Level Security) bloqueando UPDATE/DELETE da tabela de eventos
- TimescaleDB hypertable com compressão automática
- XState v5 para representar transições de estado (cada transição é um evento de log)
- Cliente HMAC-SHA256 para assinar eventos críticos
Auditoria retroativa:
Em fiscalização Anvisa ou auditoria interna:
-- Recuperar todos os eventos de uma OP
SELECT * FROM audit_events
WHERE subject_id = 'po-2026-04-30-A29F'
ORDER BY timestamp ASC;
-- Verificar integridade da chain
SELECT verify_hash_chain('po-2026-04-30-A29F');
Acesso:
- Operador rotineiro: somente leitura, escopo limitado às suas próprias ações
- RT: leitura completa, sem alteração possível
- DPO: acesso a logs com PII (LGPD)
- Auditor externo Anvisa: acesso completo sob NDA
Retenção:
- Geral: 5 anos (recomendação Anvisa para farmácia magistral)
- Controlados (Portaria 344): mínimo 5 anos
- LGPD: até resolução do propósito + 5 anos
A Farmanipulação prevê audit log como espinha dorsal de transparência — pacientes terão QR-code no rótulo apontando para audit log público (filtrado, sem PII) do lote dispensado. Pesquisador pode baixar JSON, recomputar hash-chain, validar matematicamente que nada foi alterado.