Pular para o conteúdo
FarmanipulaçãoFarmanipulação

Glossário · técnico

Audit log

Registro imutável de todas ações relevantes em um sistema. Cada evento gravado com timestamp, autor, dado, hash. Base para auditoria retroativa.

Glossáriotécnico

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:

  1. Append-only: estrutura não permite UPDATE, apenas INSERT
  2. Hash-chain: cada evento inclui hash do anterior (alteração retroativa quebra a cadeia)
  3. Backup replicado: cópia em múltiplos locais
  4. 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.

Termos relacionados