Peer Review — Check Peer Review
O Peer Review utiliza um provider de IA para revisar laudos assinados a partir da listagem de exames, apontando inconsistências clínicas e observações relevantes. O fluxo é semelhante ao da RevisIA, porém com diferenças importantes:
- a ação ocorre na listagem de exames, não no laudário;
- não há aplicação do resultado no laudo — a interface é apenas consultiva (botão Entendi);
- o conteúdo analítico que na RevisIA viria em
observationsé retornado diretamente emcheck[].body; - não há reformulação (
POST /reformulate/responsenão entra neste fluxo); - existe modo unitário e em lote (até 10 exames).
Para quem é
| Persona | Quem é | O que faz aqui |
|---|---|---|
| Gestor | perfil administrativo da unidade | solicita peer review de laudos na listagem de exames |
| Proprietário | perfil com acesso ampliado | solicita peer review de laudos na listagem de exames |
Permissão: Médico e residente não utilizam esta funcionalidade.
Pré-requisitos
- Portal legado com listagem de exames acessível.
- Perfil Gestor ou Proprietário.
- Termo de uso de IA aceito (unidade e/ou usuário, conforme escopo da configuração).
- Funcionalidade Peer Review (
peer_review) ativa e configurada:- na unidade — ver Configuração por empresa;
- no usuário — ver Configuração por usuário.
- Provider, modelo e token válidos para a funcionalidade.
- Laudo do exame selecionado com conteúdo preenchido.
- Em lote: exames selecionados concluídos (
is_concluido) e com configuração de Peer Review válida; máximo 10.
Diagrama de sequência
Unitário
Em lote
Diferença em relação à RevisIA: não existe “usar conteúdo no documento” nem reformular — o laudo original não é alterado.
Etapas
1. Acionar o Peer Review
Na listagem de exames do portal legado existem duas formas de acionar o Peer Review com IA:

1.1 Unitário
Expanda as opções do exame e selecione o botão PR correspondente à funcionalidade (seta e marcação à direita na imagem acima).
Dados enviados (exemplo):
| Grupo | Campos |
|---|---|
| Unidade | companyId |
| Laudo | reports[].reportId, body, date |
| Exame | modalidade, descrição do estudo, preparação (marcações) |
| Paciente | sexo, idade |
| Idioma | language (pt-BR, es-ES, en-US) |
1.2 Em lote
Marque as caixas de seleção na primeira coluna da listagem (até 10 exames). Novas ações aparecem acima da tabela, incluindo o botão PR.
Dados enviados: lista reports[] (cada item com companyId próprio) + language.
2. Visualizar anotações no modal
Após resposta bem-sucedida:
2.1 Unitário
O modal exibe as anotações (check[].body, área de observações) e, abaixo, o HTML original do laudo (somente leitura).

2.2 Em lote
O modal lista cada exame (modalidade/estudo); itens com falha aparecem com erro em destaque; se a lista vier vazia, exibe mensagem de lote vazio.

Campos / entradas
| Campo / origem | Descrição |
|---|---|
companyId | ID da unidade (unitário no root; no lote, por reports[]) |
reports[].reportId | ID do exame/laudo |
reports[].body | Conteúdo HTML do laudo |
reports[].date | Data do laudo |
reports[].context.modality | Modalidade do exame |
reports[].context.studyDescription | Descrição do estudo |
reports[].context.studyPreparation | Marcações clínicas |
reports[].context.patient.sex | Sexo do paciente (M / F) |
reports[].context.patient.age | Idade do paciente |
language | Idioma da resposta (pt-BR, es-ES, en-US) |
Saída esperada
| Campo | Descrição |
|---|---|
check[].body | Anotações da revisão (inconsistências / observações) |
check[].reportId | ID do laudo revisado |
check[].success | Indica se o item foi processado com sucesso |
check[].errorMessage / errorCode | Detalhe do erro quando success: false |
Na RevisIA,
bodytraz o laudo corrigido eobservationsas anotações. No Peer Review, as anotações vêm embody.
Endpoints utilizados
| Endpoint | Descrição |
|---|---|
AI_API POST /check/peer-review | Peer Review unitário; retorna anotações em check[].body. |
AI_API POST /check/peer-review/batch | Peer Review em lote (até 10 exames). |
→ Detalhe técnico: Check Peer Review — OpenAPI · Batch
Regras de negócio
| ID | Regra | Comportamento esperado |
|---|---|---|
| RN-01 | Permissão | Apenas Gestor e Proprietário. |
| RN-02 | Laudo vazio (unitário) | Toast de atenção; a IA não é chamada. |
| RN-03 | Somente leitura | Resultado não é aplicado ao laudo; botão Entendi. |
| RN-04 | Sem reformular | Não há POST /reformulate/response neste fluxo. |
| RN-05 | Formato da resposta | Anotações em check[].body. |
| RN-06 | Lote — seleção vazia | Toast: nenhum exame selecionado. |
| RN-07 | Lote — mais de 10 | Toast: só é possível analisar até dez exames. |
| RN-08 | Lote — laudo inválido | Toast com paciente e descrição do estudo; a IA não é chamada. |
| RN-09 | Sucesso parcial (lote) | Modal abre; itens com falha em destaque. |
| RN-10 | Escopo | Portal legado; listagem de exames. |
Mapeamento de erros
| Situação | Resposta da API | Comportamento |
|---|---|---|
| Laudo do exame vazio / não preenchido (unitário) | Toast de atenção: o laudo desse exame não foi preenchido. A IA não é chamada. | |
| API de Peer Review falha (erro HTTP / integração) | AI_API POST /check/peer-review | Toast via resolvedor de erros da IA (ou mensagem padrão de falha na verificação). O modal não abre. |
| Falha genérica no fluxo unitário (catch) | Toast de erro: não foi possível verificar o laudo. | |
| Configuração da funcionalidade não encontrada (unidade) | AI_API POST /check/peer-review | Toast de atenção indicando ausência de configuração na unidade. |
| Configuração da funcionalidade não encontrada (usuário) | AI_API POST /check/peer-review | Toast de atenção indicando ausência de configuração do usuário. |
| Configuração de IA não encontrada (genérico / companyId) | AI_API POST /check/peer-review | Toast de atenção dizendo que a configuração não foi encontrada. |
| Provider/modelo inválido ou descontinuado | AI_API POST /check/peer-review | Toast de erro específico de modelo inválido/descontinuado (pode citar o modelo). |
| Token / chave de API inválida ou rejeitada pelo provider | AI_API POST /check/peer-review | Toast de erro da integração IA (título pode incluir o provider). |
| Erro genérico do provider / BadRequest | AI_API POST /check/peer-review | Toast com a mensagem tratada pelo resolvedor (ou a mensagem bruta do provider). |
| Timeout / job da IA estoura (pooling) | AI_API POST /check/peer-review | Toast de erro de operação / timeout do processamento. |
Item com success: false (unitário ou lote) | AI_API POST /check/peer-review ou /batch | Modal abre; anotações/área do item exibem o erro tratado (prefixo de erro da IA quando houver código). |
| Nenhum exame selecionado (lote) | Toast de atenção: nenhum exame selecionado para análise. | |
| Mais de 10 exames selecionados (lote) | Toast de atenção: só é possível analisar até dez exames por vez. | |
| Laudo inválido/vazio em algum exame do lote | Toast de atenção com nome do paciente e descrição do estudo. A IA não é chamada. | |
| API de Peer Review em lote falha | AI_API POST /check/peer-review/batch | Toast via resolvedor de erros da IA (ou mensagem padrão de falha na verificação). |
| Lote retorna lista vazia no modal | AI_API POST /check/peer-review/batch | Modal abre com mensagem: nenhuma revisão por par pôde ser gerada para os exames selecionados. |
Relacionado
- 📄 RevisIA — Check My Reports (revisão no laudário, com laudo corrigido + observações)
- ⚙️ Configurar funcionalidade de IA — Empresa
- ⚙️ Configurar funcionalidade de IA — Usuário
- 📄 API: Check Peer Review · Batch