Ir para o conteúdo

Como verificar a prontidão do ambiente antes do primeiro uso clínico

Tipo: How-to — orientado a tarefa
Audiência: responsável técnico ou profissional que vai usar o Anotae pela primeira vez em contexto clínico real (com dados de pacientes)
Pré-condição: Anotae instalado e vault criado; ambiente de produção configurado (não é para uso em testes)


Por que fazer esta verificação?

O Anotae armazena dados clínicos em vault cifrado local. Antes de usá-lo com dados reais de pacientes, convém confirmar que os controles de segurança estão ativos e configurados corretamente.

O script preflight-check.py valida automaticamente os seis controles P0 ("must-have pré-clínico") sem modificar nenhum dado:

Controle O que verifica
P0.1 Field-level encryption Campos clínicos cifrados com ChaCha20-Poly1305
P0.2 Audit log Log de auditoria append-only com hash chain verificável
P0.3 Backup automático Pelo menos um backup íntegro presente
P0.4 LGPD consent Registro de consentimento LGPD no vault
P0.5 Supply chain Hashes SHA-256 dos modelos de IA configurados (se IA ativa)
P0.6 Ruff/mypy clean Integridade do código Python (apenas em modo dev)

Passo 1: Localizar o script

O script está no repositório do Anotae, em scripts/preflight-check.py.

Se você instalou o binário (.msi, .dmg), o script está disponível como:

# Windows (PowerShell)
& "C:\Program Files\Anotae\scripts\preflight-check.py"

# macOS / Linux
/Applications/Anotae.app/Contents/Resources/scripts/preflight-check.py
# ou, se instalado via pip:
python -m anotae.scripts.preflight_check

Se você usa o código-fonte diretamente (modo desenvolvedor):

cd /caminho/para/anotae
python scripts/preflight-check.py /caminho/para/vault.db

Passo 2: Executar a verificação

python scripts/preflight-check.py /caminho/para/vault.db

O script abre o vault em modo somente-leitura. Ele nunca modifica dados.

Saída esperada (tudo OK)

Anotae Preflight Check — v0.12
Vault: /home/usuario/.anotae/vault.db
───────────────────────────────────────────
✓  P0.1  Field-level encryption    — ChaCha20-Poly1305 ativo em 5 colunas
✓  P0.2  Audit log                 — 47 entradas, hash chain válido
✓  P0.3  Backup                    — 3 backups presentes, último íntegro
✓  P0.4  LGPD consent              — 1 registro de consentimento
✓  P0.5  Supply chain              — 3 hashes SHA-256 configurados
✓  P0.6  Ruff/mypy clean           — ignorado fora de modo dev
───────────────────────────────────────────
6/6 controles OK — ambiente pronto para uso clínico.
Exit code: 0

Saída com falha

Anotae Preflight Check — v0.12
Vault: /home/usuario/.anotae/vault.db
───────────────────────────────────────────
✓  P0.1  Field-level encryption    — ChaCha20-Poly1305 ativo em 5 colunas
✓  P0.2  Audit log                 — 47 entradas, hash chain válido
✗  P0.3  Backup                    — nenhum backup encontrado em ~/.anotae/backups/
✓  P0.4  LGPD consent              — 1 registro de consentimento
✗  P0.5  Supply chain              — WHISPER_SMALL_SHA256 vazio (cerimônia pendente)
✓  P0.6  Ruff/mypy clean           — ignorado fora de modo dev
───────────────────────────────────────────
2/6 controles falharam — ambiente NÃO está pronto para uso clínico.
Exit code: 1

Passo 3: Corrigir falhas

P0.3 — Sem backup

Configure o backup automático antes de usar em produção:

  1. Abra o Anotae → Ferramentas → Gerenciar backups
  2. Ative "Backup automático a cada X atendimentos"
  3. Ou crie um backup imediato: anotae backup create /caminho/para/vault.db

P0.5 — SHA-256 dos modelos não configurado

Os hashes SHA-256 dos modelos de IA precisam ser verificados offline ("cerimônia SHA-256") antes de serem hardcodados. Esta etapa protege contra adulteração no download.

Se você usa a IA local e ainda não fez a cerimônia:

# Com os modelos já baixados:
python scripts/sha256-ceremony.py all

# Depois, hard-code os hashes retornados em:
# - anotae/rag/model_downloader.py   (modelo e5-small)
# - anotae/asr/model_downloader.py   (modelo whisper-small)
# Ver scripts/sha256-ceremony.py para instruções completas.

Se você não usa IA local, desabilite os módulos em Configurações → IA Local → desmarcar "Ativar assistente" e "Ativar transcrição de voz". O P0.5 passará automaticamente.

P0.4 — Sem registro LGPD

O consentimento LGPD é registrado na primeira vez que um novo paciente é adicionado ao vault. Se o vault está vazio (ambiente de teste), configure ao menos um paciente de teste antes de rodar o preflight em produção.


Automatizar a verificação (opcional)

Para rodar o preflight automaticamente toda manhã antes do primeiro atendimento:

Linux/macOS (crontab):

0 7 * * 1-5 python /caminho/para/anotae/scripts/preflight-check.py \
    /home/$USER/.anotae/vault.db \
    >> /var/log/anotae-preflight.log 2>&1

Windows (Tarefas Agendadas — PowerShell):

$action = New-ScheduledTaskAction -Execute "python" `
    -Argument "C:\Program Files\Anotae\scripts\preflight-check.py C:\Users\$env:USERNAME\.anotae\vault.db"
$trigger = New-ScheduledTaskTrigger -Daily -At "07:00"
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "Anotae-Preflight"

O script sai com código 0 (tudo OK) ou 1 (falha). Configure um alerta no seu sistema de monitoramento para o código 1.


O que o script NÃO faz

  • ❌ Não abre, descriptografa ou exibe dados clínicos
  • ❌ Não modifica nenhum arquivo do vault
  • ❌ Não envia dados para a internet
  • ❌ Não substitui a auditoria de segurança formal
  • ❌ Não verifica se a senha-mestra é forte (use o anotae kdf benchmark)

Ver também