Documentation
Engine API
Build your solution
Specialist & Channel Recommender

Specialist and channel recommender

The /recommend_specialist endpoint is an optional feature that extends the /triage recommendation by providing the most appropriate specialist and channel as a part of next step advice. Similar to the /triage endpoint, the /recommend_specialist takes into account not only the severity of the most likely conditions but also the presence of alarming symptoms or risk factors. This allows the inference engine to guide patients to a specialist who can help handle potentially serious symptoms and states.

Specialist and channel recommendations are not available in cases with emergency or emergency_ambulance triage levels.

Request

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

cURL
curl "https://api.infermedica.com/v3/recommend_specialist" \
  -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"}
    ]
  }'

Specialty mapping

The /recommend_specialist endpoint allows for the remapping of specified specialties in a many-to-one fashion. This is useful when some specialties are not appropriate for the regional, regulatory, or clinical setting (or unwanted for any other reason).

ℹ️

The specialty mapping functionality does more than just replacing specialties with other specialties: the mapping is also taken into account in the specialist recommender algorithm to provide the best possible experience.

⚠️

Please note that adding new specialties or changing the names of existing ones is not supported.

Below is an example of how to map two categories onto another single one:

cURL
curl "https://api.infermedica.com/v3/recommend_specialist" \
  -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": {
      "specialist_mapping": {
        "sp_17": "sp_1",
        "sp_14": "sp_1"
      }
    }
  }'
JSON
{
  "recommended_specialist": {
    "id": "sp_1",
    "name": "General Practitioner"
  },
  "recommended_channel": "personal_visit"
}

Response

The response contains the following attributes:

  • recommended_specialist – ID and name of the recommended specialist, one of:
    • sp_23 – Allergologist
    • sp_21 – Angiologist
    • sp_12 – Cardiologist
    • sp_18 – Dentist
    • sp_9 – Dermatologist
    • sp_22 – Diabetologist
    • sp_10 – Endocrinologist
    • sp_14 – ENT doctor
    • sp_5 – Gastroenterologist
    • sp_1 – General Practitioner
    • sp_15 – Gynecologist
    • sp_25 – Hematologist
    • sp_19 – Infectologist
    • sp_2 – Internal Medicine Specialist
    • sp_29 – Maxillofacial surgeon
    • sp_26 – Neonatologist
    • sp_24 – Nephrologist
    • sp_17 – Neurologist
    • sp_13 – Oncologist
    • sp_7 – Ophthalmologist
    • sp_6 – Orthopedist
    • sp_3 – Pediatrician
    • sp_16 – Psychiatrist
    • sp_27 – Pulmonologist
    • sp_20 – Rheumatologist
    • sp_4 – Surgeon
    • sp_8 – Toxicologist
    • sp_11 – Urologist
  • recommended_channel – a channel recommendation, one of:
    • personal_visit – In-person visit
    • video_teleconsultation – Video consultation
    • audio_teleconsultation – Telephone or any other consultation with audio only
    • text_teleconsultation – Chat
JSON
{
  "recommended_specialist": {
    "id": "sp_17",
    "name": "Neurologist"
  },
  "recommended_channel": "personal_visit"
}

Specialty list for conditions

The /conditions endpoint allows an additional query parameter of include_specialists=true which expands the response for that endpoint to include a specialists list. This expansion is helpful for identifying the default mapping of specialties to available conditions.

cURL
curl "https://api.infermedica.com/v3/conditions?age.value=20&include_specialists=true" \
  -X "GET" \
  -H "App-Id: XXXXXXXX" \
  -H "App-Key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -H "Interview-Id: d083e76f-3c29-44aa-8893-587f3691c0c5"
JSON
[
  ...
  {
    "id": "c_926",
    "name": "ACE inhibitor-induced cough",
    "common_name": "ACE inhibitor-induced cough",
    "sex_filter": "both",
    "categories": [
      "Cardiology"
    ],
    "specialists": [
      {
        "id": "sp_1",
        "name": "General Practitioner"
      }
    ],
    "prevalence": "very_rare",
    "acuteness": "chronic",
    "severity": "mild",
    "extras": {
      "icd10_code": "R05, T88.7, Y52.4",
      "hint": "Your symptoms may be due to medications you have used. Please report this symptom to your GP."
    },
    "triage_level": "consultation",
    "recommended_channel": "audio_teleconsultation"
  },
  ...
]