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