reports.releaseLiberar Laudo
Evento WebSocket para notificar em tempo real sobre a liberação de um laudo médico. Após salvar um laudo com sucesso via POST /api/auth/reports, o cliente emite este evento. O servidor recebe a mensagem e propaga para todos os clientes conectados da mesma conta (isolamento por accountId), permitindo sincronização automática entre componentes. Componentes que escutam este evento (ex: LaudoModal.tsx) atualizam automaticamente a lista de procedimentos laudados. Quando todos os procedimentos de um pedido são laudados, o modal é fechado automaticamente.
Access Token
Para realizar requisições GET, POST, PUT, DELETE e PATCH nos endpoints da API você precisa de uma chave de autorização. Chamamos essa chave de accessToken.
Para ter acesso ao accessToken, é necessário que o usuário master da licença efetue a liberação deste pela interface do ImageMais Clinic. O accessToken tem validade de 1 hora.
Headers
| Nome | Tipo | Obrig. | Descrição |
|---|---|---|---|
Authorization | string | Sim | Token de autenticação no formato Bearer {accessToken}. O token deve ser enviado durante o handshake de conexão WebSocket. |
AuthorizationOBRIGATÓRIOParâmetros
| Nome | Tipo | Obrig. | Descrição |
|---|---|---|---|
orderUlid | string | Sim | ULID (Identificador Único Universalmente Ordenável Lexicograficamente) do pedido/ordem |
ULID (Identificador Único Universalmente Ordenável Lexicograficamente) do pedido/ordem. É um identificador único que identifica um pedido específico no sistema. Para encontrar o ULID do pedido, para acessar a página de buscar todos os relatórios de pedidos. | |||
procedureId | string | Sim | ID do procedimento relacionado ao laudo |
orderUlidOBRIGATÓRIOULID (Identificador Único Universalmente Ordenável Lexicograficamente) do pedido/ordem. É um identificador único que identifica um pedido específico no sistema.
Para encontrar o ULID do pedido, para acessar a página de buscar todos os relatórios de pedidos.
procedureIdOBRIGATÓRIOFluxo passo a passo: reports.release
REST salva o laudo
O cliente envia o laudo via POST /api/auth/reports. Se a API retornar sucesso (response.ok), o fluxo segue para a notificação em tempo real.
Cliente emite o evento via WebSocket
Após o POST dar certo, o frontend emite:
socket.emit('reports.release', {
orderUlid: ulid,
procedureId: procedureId,
});Servidor recebe e valida o contexto do socket
No backend (NestJS + Gateway), o servidor captura o evento:
@SubscribeMessage('reports.release')
async handleGetReports(
@ConnectedSocket() client: Socket,
@MessageBody() data: { orderUlid: string; procedureId: string },
) {
const payload = client.data.payload as PayloadTokenDto;
this.notifyOnEvent('reports.release', data, payload);
}Servidor propaga para todos da mesma conta
O método `notifyOnEvent(...)` envia o evento para todos os sockets da mesma `accountId` (multi-tenant).
Clientes que escutam atualizam a UI
No frontend, componentes como `LaudoModal.tsx` escutam:
socket.on('reports.release', ({ orderUlid, procedureId }) => {
// Atualiza lista de procedimentos laudados
// Fecha o modal se todos forem laudados
});Request URL
ws://api-dev.imagemais.com{
"orderUlid": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"procedureId": "123"
...{
"orderUlid": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"procedureId": "123"
}Respostas
{
"status": "success",
"message": "Laudo salvo com sucesso!"
...{
"status": "success",
"message": "Laudo salvo com sucesso!"
}{
"status": "refused",
"message": "Erro ao adicionar o laudo"
...{
"status": "refused",
"message": "Erro ao adicionar o laudo"
}