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
- Endpoint:
POST https://apim.doctorassistant.ai/api/sandbox/consultations
- Cabeçalhos: Certifique-se de incluir os cabeçalhos de autenticação necessários:
x-daai-api-key
: sua_api_key
- 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
.
- Aceitamos os formatos
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
.
- Aceitamos as seguintes especialidades
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:
- 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": {}
}
- 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."
}
}