Portal 2.0 API
A API do Portal 2.0 documenta os serviços e módulos de backend que sustentam a plataforma.
Módulos
A API é organizada em módulos independentes, cada um responsável por um domínio:
- Authentication — servidor de autorização OAuth2/OIDC, autenticação do usuário, gestão de sessão, MFA/TOTP e endpoints de descoberta OIDC.
- Audit — trilha de auditoria cross-domain: consumo assíncrono de eventos via fila, cadeia de hash apensável (append-only) por tenant, verificação de integridade e consulta com mascaramento de campos sensíveis na leitura.
- Authorization — catálogo de permissões e papéis (RBAC), papéis customizados por tenant, atribuição de papéis a usuários, políticas de negação adicionais (ABAC), consulta das próprias permissões efetivas e rotas de inspeção/diagnóstico.
- Usuário — cadastro e ciclo de vida do usuário, perfil próprio e de terceiros, diretório e exportação, código interno, identidade visual, ativos versionados, vínculo com serviço externo, snippets pessoais e convites.
- Tenant / Organização — hierarquia tenant → unidade, branding e domínio customizado, configuração tipada com override por nível, módulos (feature flags) e vínculo com PACS.
- Anexos (Attachment) — upload, listagem, reclassificação e exclusão de anexos de exame por usuário autenticado, e convite de upload de curta duração para terceiro sem login no portal.
- SLA — prazo de laudo por prioridade e modalidade com herança tenant → unidade, cap de SLA por protocolo clínico (AVC/Trauma) e o motor de cálculo do prazo consumido pelo domínio de Exames.
- Notification (e-mail) — infraestrutura compartilhada de envio de e-mail (SMTP/SES), sem fila própria, consumida pelo identity (convite, senha, verificação) e pelo diagnóstico (envio de laudo/imagens por e-mail).
- Áudio — gravação, listagem e exclusão lógica de áudios de ditado anexados a um exame, com validação de formato pela assinatura binária do arquivo e link de download pré-assinado de curta duração.
- Comentários e achado crítico — comentário de texto livre em um exame (sem efeito clínico) e sinalização independente de achado crítico e suspeita técnica (flags com motivo, sem criar comentário).
- Busca — pesquisa avançada da worklist de exames, contagem por categoria, exportação em CSV, favoritos de busca e busca padrão pessoal.
- API Pública (Integrações) — borda pública para aplicações externas (RIS/PACS/parceiros): autenticação por token de máquina, plataforma de integração (adapters, instâncias, segredos cifrados, concessão de rotas com de-para de resposta) e leitura de exames/tenants/unidades; inclui o inventário de compatibilidade com a API legada do Portal 1.0.
- Exame — ciclo de vida do exame (ingestão assíncrona, CRUD, transição de status com motivo, prioridade/modalidade/SLA/unidade, atribuição de equipe, duplicação, relacionamentos entre exames, compartilhamento entre unidades), catálogo médico (especialidade/subespecialidade/DICOM alias), motivos de status e política de workflow/preparo por tenant e unidade.
- Laudo (Report) — digitação e edição do laudo, assinatura (padrão, complementar, por residente) e correção pós-assinatura, transição de status/reatribuição/reavaliação, controle de concorrência de edição, máscaras de laudo e compartilhamento, modelos de cabeçalho/rodapé, geração e reprocessamento do PDF, revisão por pares e entrega do laudo assinado para integração externa.
Esta lista cresce conforme os demais módulos são documentados (ver
tasks/docs-fila.md).