Triage
Apart from the /diagnosis
endpoint, the Infermedica API also provides a complementary /triage
endpoint that can categorize patient cases based on the seriousness of reported observations and the severity of the likely conditions. This is similar to a telephone triage (opens in a new tab), hence the name.
Under the hood, the /triage
endpoint uses the same inference engine that powers the /diagnosis
endpoint to compute the rankings of possible conditions. The triage classification algorithm considers the severity of the most likely conditions, as identified by the inference engine, as well as the occurrence of any alarming symptoms or risk factors.
Please note that Infermedica API's trial access allows only a limited number of calls to the /triage
endpoint. Please contact us for other plan options.
Request
The /triage
endpoint responds to POST requests and accepts the same JSON object as the /diagnosis
endpoint.
curl "https://api.infermedica.com/v3/triage" \
-X "POST" \
-H "App-Id: XXXXXXXX" -H "App-Key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-H "Interview-Id:d083e76f-3c29-44aa-8893-587f3691c0c5" \
-d '{
"sex": "male",
"age": {
"value": 30
},
"evidence": [
{"id": "s_1193", "choice_id": "present"},
{"id": "s_488", "choice_id": "present"},
{"id": "s_418", "choice_id": "present"}
]
}'
Please note that the /triage
endpoint supports both 5-level and 3-level triage. The first option is default and strongly recommended. If you want to use 3-level triage, please apply an extra "enable_triage_3": true
curl "https://api.infermedica.com/v3/triage" \
-X "POST" \
-H "App-Id: XXXXXXXX" -H "App-Key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-H "Interview-Id:d083e76f-3c29-44aa-8893-587f3691c0c5" \
-d '{
"sex": "male",
"age": {
"value": 30
},
"evidence": [
{"id": "s_1193", "choice_id": "present"},
{"id": "s_488", "choice_id": "present"},
{"id": "s_418", "choice_id": "present"}
],
"extras": {"enable_triage_3" : true}
}'
Response
The teleconsultation_applicable
flag has been deprecated and will stop being supported in the near future. This functionality has been improved and extended upon and is now available via the /recommend_specialist
endpoint. For more information, see Specialist & Channel Recommender.
The response contains the following elements:
- a classification of the case provided,
- a list of serious observations,
- a root cause that explains the internal rationale of the underlying triage algorithm,
- a flag indicating whether a teleconsultation with a doctor may be applied in place of a traditional office visit (please note this information will only be provided if 5-level triage is enabled).
{
"triage_level": "consultation_24",
"serious": [
{
"id": "s_1193",
"name": "Headache, severe",
"common_name": "Severe headache",
"seriousness": "serious",
"is_emergency": false
},
{
"id": "s_418",
"name": "Stiff neck",
"common_name": "Stiff neck",
"seriousness": "serious",
"is_emergency": false
}
],
"teleconsultation_applicable" : false
"root_cause": "serious_evidence_present"
}
Triage level
Depending on the version used, there are either three or five possible categories that can be assigned to a case reported in a request to the /triage
endpoint. The category is returned as a triage_level
attribute with one of the following values:
5 level triage (default)
emergency_ambulance
– the reported symptoms are very serious and the patient may require emergency care. The patient should call an ambulance right now,emergency
– the reported evidence appears serious and the patient should go to an emergency department. If the patient can't get to the nearest emergency department, they should call an ambulance,consultation_24
– the patient should see a doctor within 24 hours. If the symptoms suddenly get worse, the patient should go to the nearest emergency department,consultation
– the patient may require medical evaluation and may need to schedule an appointment with a doctor. If the symptoms get worse, the patient should see a doctor immediately,self_care
– the declared symptoms may not require a medical evaluation and they usually resolve on their own. Sometimes they can be treated through self-care methods. Patients should observe their symptoms and consult a doctor if the symptoms get worse or new ones appear.
3 level triage (optional)
emergency
– the reported evidence may indicate a serious or life-threatening condition and thus the patient may require immediate medical attention,consultation
– the patient may require a medical consultation when possible,self_care
– the declared symptoms may not require a medical evaluation and they usually resolve on their own. Sometimes they can be treated through self-care methods. Patients should observe their symptoms and consult a doctor if the symptoms get worse or new ones appear.
Serious observations
Each listed observation has an unique id
and name
. These values are consistent with those in the database of medical concepts used by the Infermedica API.
All observations returned in the serious
list are alarming and require consultation with a medical professional. Each serious observation has a seriousness value, one of:
serious
emergency
emergency_ambulance
Observations with emergency
or emergency_ambulance
seriousness are particularly urgent and may require immediate attention.
Flag is_emergency
is redundant with seriousness
field and should be treated as deprecated.
Triage Tuples
Triage Tuples is a feature that refines the Infermedica triage system, making it even safer, while increasing accuracy in more complicated cases.
Triage Tuples are pairs of symptoms or risk factors which trigger a higher triage recommendation when they occur together in an interview. For example: Hypertension and Pregnancy, III trimester separately do not yield a medical evaluation. Combined in one interview, however, they call for emergency care.
The medical team can use this functionality to harmonize Infermedica's triage with the golden standards used in telehealth. Each Tuple has a source that provides evidence for the recommendation we give to our users, clients, and patients.
Root cause levels
The root_cause
explains the major reason behind the triage level recommended by the inference engine. Possible triage rationales:
emergency_evidence_present
– emergency evidence was reported as present,serious_evidence_present
– serious evidence was reported as present,emergency_condition_likely
– life-threatening condition is likely enough to recommend emergency triage,emergency_condition_possible
– life-threatening condition is possible,consultation_condition_likely
– at least one condition which requires medical consultation is likely,self_care_sufficient
– no identified reason for medical evaluation,diagnosis_unknown
– assessment not possible.
Extras
The extras
attribute may contain additional or experimental options that control the behavior of the inference engine. Some are only valid with custom models or selected partners.
enable_symptom_duration
"extras": {
"enable_symptom_duration": true
}
A duration object is composed of two fields:
value
- numeric value, this attribute is requiredunit
- text value, this attribute is required and the allowed values are:week
day
hour
minute
{
...
"evidence": [
{
"id": "s_13",
"choice_id": "present",
"source": "initial",
"duration": {
"value": 2,
"unit": "day"
}
}
],
...
}