Pular para o conteúdo principal

Processando uma Consulta

Para enviar o áudio de uma consulta, você deve fazer uma requisição POST para o endpoint https://apim.doctorassistant.ai/api/sandbox/consultations. Essa operação permitirá que você processe um arquivo de áudio associado a uma consulta específica.

Estrutura da Requisição

  1. Endpoint:
    POST https://apim.doctorassistant.ai/api/sandbox/consultations
  2. Cabeçalhos: Certifique-se de incluir os cabeçalhos de autenticação necessários:
    • x-daai-api-key: sua_api_key
  3. Formato do Body: Utilize o formato multipart/form-data para enviar a requisição. Você deverá incluir três campos:
  • recording: Obrigatório.
    • Aceitamos os formatos .mp3, .webm, .weba, .mp4 e .m4a.
  • specialty: Opcional.
    • Aceitamos as seguintes especialidades generic, psychiatry, oncology, cardiology, dermatology, pediatry, pre_natal, case_discussion, geriatry, gynecology, neurology, rheumatology, family, emergency, endocrinology, ophthalmology, occupational, psychology, general_surgery, plastic_surgery, nephrology, orthopedic, otorhinolaryngology, nursing, geriatric_evaluation, anesthesiology, allergy, angiology, cardio_surgery, hand_surgery, head_surgery, digestive_surgery, pediatric_surgery, thoracic_surgery, vascular_surgery, intern_medicine, coloproctology, gastroenterology, medical_genetics, hematology, infectology, traffic_medicine, sports_medicine, rehab_medicine, intensive_medicine, preventive_medicine, pulmonology, toxicology, nutrology, urology, palliative_care, neuropediatry.
    • Caso não seja informado, atribuiremos o valor generic.
  • notes: Opcional.
  • reason: Opcional.
  • metadata: Opcional.
    • Recebemos um objeto

Detalhamento do body

  • recording: O arquivo de áudio da consulta. Use o caminho completo para o arquivo.
  • specialty: A especialidade médica relacionada à consulta (por exemplo, "cardiology").
  • notes: Notas adicionais sobre a consulta.
  • reason: O motivo da consulta.
  • metadata: Metadados adicionais sobre a consulta.

Exemplo de Requisição HTTP

Aqui está um exemplo de como a requisição HTTP pode ser estruturada:

POST /api/sandbox/consultations HTTP/1.1
Host: https://apim.doctorassistant.ai/api/sandbox/consultations
x-daai-api-key: sua_api_key
Content-Type: multipart/form-data

--boundary
Content-Disposition: form-data; name="recording"; filename="audio_consulta.mp3"
Content-Type: audio/mpeg

[conteúdo do arquivo de áudio]
--boundary
Content-Disposition: form-data; name="specialty"

generic
--boundary
Content-Disposition: form-data; name="notes"

notes
--boundary
Content-Disposition: form-data; name="reason"

reason
--boundary--

metadata
--boundary--

Resposta da Requisição

Sucesso

Se a consulta for registrada corretamente, você receberá uma resposta com o status 201 Created e um corpo contento informações sobre a consulta entre eles um id que você pode usar para identificar a consulta posteriormente:

{
"id": "consultation-id",
"notes": "notes",
"reason": "reason",
"transcription": "",
"recording": {
"id": "recording-id"
},
"report": {
"specialty": "generic",
"content": {}
},
"metadata": {}
}

Erro

Se houver algum problema com a requisição, como um erro no formato do arquivo ou campos faltando, você receberá uma resposta com um status de erro, como 400 Bad Request, e um corpo que explica o erro:

{
"message": "Recording file is required",
"error": "Bad Request",
"statusCode": 400,
"metadata": {}
}

Eventos Gerados pelo Webhook

Após o envio do áudio, você receberá notificações em seu endpoint configurado através do webhook, que poderão incluir os seguintes eventos:

  1. CONSULTATION_SUCCESS: Indica que o áudio da consulta foi processado com sucesso. O corpo da mensagem incluirá informações relevantes sobre a consulta.
{
"event": "CONSULTATION_SUCCESSFUL",
"data": {
"id": "consultation-id",
"notes": "my notes",
"reason": "my reason",
"transcription": "O paciente veio a mim na primeira consulta no dia ...",
"metadata": {},
"recording": {
"duration": 120,
},
"report": {
"specialty": "generic",
"content": {
"icd_json": {
"assessment": {
"content": {
"description": {
"title": "Avaliação",
"content": [
{
"icd": ["M79.7 - Fibromialgia"],
"content": "Fibromialgia."
},
{
"icd": [
"M53.3 - Distúrbios sacrococcígeos, não classificados em outra parte"
],
"content": "Dor sacroilíaca."
},
]
}
}
}
},
"summary_json_pt": {
"plans": {
"title": "Planos",
"content": {
"followUp": { "title": "Acompanhamento", "content": [] },
"forwarding": { "title": "Encaminhamento", "content": [] },
"examRequest": {
"title": "Exames solicitados",
"content": ["Densitometria óssea."]
},
"orientations": { "title": "Orientações", "content": [] },
"medicationRequest": {
"title": "Medicações prescritas",
"content": [
"Pregabalina 150mg ao deitar (1 comprimido de 75mg pela manhã e 1 comprimido de 75mg à noite).",
"Vitamina D 5.000 UI por dia."
]
}
}
},
"objective": {
"title": "Objetivo",
"content": {
"exams": {
"title": "Exames",
"content": [
"Ultrassonografia: Osteoartrose dos joelhos com pequeno derrame bilateral.",
"B27: Negativo.",
]
},
"signs": {
"title": "Sinais vitais e dados antropométricos",
"content": []
}
}
},
"assessment": {
"title": "Avaliação",
"content": {
"description": {
"title": "Avaliação",
"content": [
"Fibromialgia.",
"Dor sacroilíaca.",
]
}
}
},
"subjective": {
"title": "Subjetivo",
"content": {
"chiefComplaint": {
"title": "Principal queixa",
"content": ["my reason"]
},
"historyOfPresentIllness": {
"title": "História da doença atual",
"content": [
"Dor sacroilíaca.",
"Falhas nos joelhos ao andar.",
]
}
}
},
"historyOfPatient": {
"title": "Histórico do paciente",
"content": {
"habits": { "title": "Hábitos", "content": [] },
"allergies": { "title": "Alergias", "content": [] },
"medications": {
"title": "Medicações",
"content": [
"Pregabalina 75mg por dia (1 comprimido).",
"Ético 20mg (10mg pela manhã e 10mg à noite).",
]
},
"medicalConditions": {
"title": "Condições médicas",
"content": [
"Fibromialgia (parcialmente controlada com medicação).",
"Dislipidemia.",
"Obstrução das carótidas (60%).",
"Hipertensão arterial.",
]
}
}
},
"patientInformation": {
"title": "Informações do paciente",
"content": {
"age": { "title": "Idade", "content": [] },
"name": { "title": "Nome", "content": [] },
"occupation": { "title": "Profissão", "content": [] },
"additionalInformation": {
"title": "Outras informações relevantes",
"content": [
"História patológica pré - greve sexual de fibromialgia.",
"Dislipidemia com 60% de obstrução das carótidas.",
]
}
}
}
}
}
}
},
"error": {}
}
  1. CONSULTATION_FAILED: Indica que ocorreu um erro durante o processamento da consulta. A mensagem incluirá detalhes sobre o erro.
{
"event": "CONSULTATION_FAIL",
"data": {
"id": "consultation-id",
"notes": "my notes",
"reason": "my reason",
"transcription": "",
"metadata": {},
"recording": {},
"report": { "specialty": "generic", "content": {} }
},
"error": {
"message": "Media optimization failed: The recording has no speech."
}
}