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
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
consultationId | number (inteiro positivo) | ✅ | ID da consulta |
O que acontece
- Busca a consulta (
OPENED+ONLINE+ mesma conta) e o paciente vinculado. - Busca a sala já criada no LiveKit (
404se não existir). - Gera um token para o paciente (
identity = patient-{patientId}, TTL 3 min). - Atualiza o metadata da sala no LiveKit para
{"status":"OPENED"}. - Emite o evento WebSocket
telemedicine.room.readycom{ 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"
}