Documentation
API: Triage
Triage

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.

ℹ️

Trial access to Infermedica API limits calls to the /triage endpoint. Contact us for more plan options.

Triage Tuples

Triage Tuples enhance the safety and accuracy of the Infermedica triage system, particularly in complex cases.

Triage Tuples consist of pairs of symptoms or risk factors that, when presented together during an interview, trigger a higher triage level. For instance, while Hypertension and Pregnancy, III trimester may not individually necessitate a medical evaluation, their combination calls for emergency care.

This functionality allows the medical team to align Infermedica's triage recommendations more closely with the golden standards of telehealth. Each Tuple is backed by a source, providing the evidence basis for the recommendations given to users, clients, and patients.

Request

The /triage endpoint responds to POST requests and accepts the same JSON object as the /diagnosis endpoint.

cURL
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"}
    ]
  }'

Response

The response contains the following attributes:

  • triage_level – a classification of the case provided,
  • serious – a list of serious observations,
  • root_cause – a root cause that explains the internal rationale of the underlying triage algorithm,
  • teleconsultation_applicable – 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).
⚠️

The teleconsultation_applicable attribute has been deprecated and you should not use it anymore. This functionality has been improved and extended upon and is now available via the /recommend_specialist endpoint. For more information, see Specialist & Channel Recommender.

JSON
{
  "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
    }
  ],
  "root_cause": "serious_evidence_present",
  "teleconsultation_applicable": false
}

Triage level

Unless modified with an extra option, there are 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:

  • 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.

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, oremergency_ambulance.

Observations with emergency or emergency_ambulance seriousness are particularly urgent and may require immediate attention.

⚠️

The is_emergency attribute is redundant due to the seriousness attribute and should be considered deprecated.

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

Since the /triage endpoint accepts the same request object as the /diagnosis endpoint, it also supports various extra options. For a detailed description of these options, please refer to the Extras section on the /diagnosis page.

The now-deprecated enable_triage_3 option allows for the restoration of the legacy 3-level triage system. When enabled, the three available triage levels are:

  • emergency – the reported evidence may suggest a serious or life-threatening condition, necessitating immediate medical attention.
  • consultation – the patient should seek a medical consultation when possible.
  • self_care – the reported symptoms might not require medical evaluation and often resolve independently. Self-care methods may be applicable. However, patients are advised to monitor their symptoms and seek medical advice if symptoms worsen or new ones develop.
⚠️

Note that some newer API features are incompatible with the 3-level triage. Therefore, the default 5-level triage is recommended for all new implementations.