Implementação
1. Recebendo eventos no Prontuário Eletrônico
Configuração
O PEP deve fornecer um endpoint HTTPS para receber as notificações da Voa. Este endpoint deve ser configurado na plataforma Voa para cada integração.
Exemplo:
https://prontuario-eletronico.com/api/webhook/voa
Payload
Quando uma consulta é finalizada e um documento é gerado, a Voa enviará um POST request para o endpoint configurado com o seguinte payload:
{
"event_type": "document_generated",
"consultation_id": "cons_123456",
"patient_id": "pat_789012",
"doctor_id": "doc_345678",
"document": {
"id": "doc_901234",
"type": "clinical_note",
"content": "Base64 encoded content",
"generated_at": "2023-06-15T14:30:00Z"
},
"metadata": {
"consultation_date": "2023-06-15T14:00:00Z",
"consultation_duration": 1800
}
}
Segurança
A Voa incluirá um cabeçalho de autenticação em cada request:
X-Voa-Signature: HMAC-SHA256 assinatura gerada e compartilhada com o PEP
O PEP deve validar esta assinatura usando uma chave secreta compartilhada.
Tratamento de Erros
Se o endpoint do PEP estiver indisponível, a Voa tentará reenviar o webhook até 3 vezes com intervalos exponenciais.
O PEP deve retornar um status 200 OK para confirmar o recebimento bem-sucedido.
2. Enviando eventos para a Voa
Endpoint
A Voa disponibilizará um endpoint para receber notificações de atualizações do PEP:
https://integration.voa.health/v1/webhook/ehr-update
Payload
O PEP deve enviar um POST request com o seguinte formato de payload:
{
"event_type": "consultation_updated",
"consultation_id": "cons_123456",
"patient_id": "pat_789012",
"doctor_id": "doc_345678",
"update_type": "notes_added",
"update_timestamp": "2023-06-15T15:00:00Z",
"metadata": {
"notes_summary": "Paciente relatou melhora nos sintomas"
}
}
Autenticação
O PEP deve incluir um token de autenticação no cabeçalho da requisição:
Authorization: Bearer <token_fornecido_pela_voa>
Resposta
A Voa retornará um status 200 OK para confirmar o recebimento bem-sucedido.
Em caso de erro, será retornado um status apropriado (400, 401, 500, etc.) com detalhes do erro no corpo da resposta.
Last updated