Skip to main content

POST Notificar Paciente

Gera um token de acesso para o paciente e o notifica (via WebSocket) que a sala está pronta para entrar.

Autenticação necessária

Esta rota requer o header Authorization: Bearer {accessToken}

Sem permissão específica

Não exige @CheckPermissions — qualquer usuário autenticado pode chamar.

A sala precisa já existir

Diferente de Criar Sala, esta rota não cria a sala — chame POST /telemedicine/room antes. Se a sala ainda não existe, retorna 404.

Sucesso HTTP não garante que o paciente foi avisado

Se o paciente não tiver uma conexão WebSocket ativa no momento, o evento simplesmente não é entregue (só um warn no log do servidor) — a resposta continua { "success": true } normalmente. Não há como, por esta rota, confirmar que o paciente recebeu a notificação.


Endpoint

POST https://api-dev.imagemais.com.br/api/telemedicine/notify

Corpo da Requisição

CampoTipoObrigatórioDescrição
consultationIdnumber (inteiro positivo)ID da consulta

O que acontece

  1. Busca a consulta (OPENED + ONLINE + mesma conta) e o paciente vinculado.
  2. Busca a sala já criada no LiveKit (404 se não existir).
  3. Gera um token para o paciente (identity = patient-{patientId}, TTL 3 min).
  4. Atualiza o metadata da sala no LiveKit para {"status":"OPENED"}.
  5. Emite o evento WebSocket telemedicine.room.ready com { token, timestamp } para o paciente.

Requisição

curl -X 'POST' \
'https://api-dev.imagemais.com.br/api/telemedicine/notify' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {accessToken}' \
-d '{
"consultationId": 123
}'

Respostas

201 Sucesso

{
"success": true
}

400 Validação

{
"statusCode": 400,
"message": ["ID da consulta deve ser um número", "ID da consulta deve ser um número positivo"],
"error": "Bad Request"
}

404 Consulta não encontrada

{
"statusCode": 404,
"message": "Consulta não encontrada"
}

404 Sala de telemedicina não encontrada

Retornado quando POST /telemedicine/room ainda não foi chamado para essa consulta.

{
"statusCode": 404,
"message": "Sala de telemedicina não encontrada"
}