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.

ℹ️

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
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
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).
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
        }
    ],
    "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

JSON
"extras": {
    "enable_symptom_duration": true
}

A duration object is composed of two fields:

  • value - numeric value, this attribute is required
  • unit - text value, this attribute is required and the allowed values are:
    • week
    • day
    • hour
    • minute
JSON
{
...
    "evidence": [
        {
            "id": "s_13",
            "choice_id": "present",
            "source": "initial",
            "duration": {
                "value": 2,
                "unit": "day"
            }
        }
    ],
...
}