Consultation Report

This section includes instructions on how to parse a report response and what information to extract from it.

❗️

The consultation report will undergo considerabile changes in the future. This section is only meant to provide instructions for POCs and MVPs.

Summary

The summary property can be used to display as a confirmation what symptoms and factors the user selected during the consultation.

Here's an example, a JSON mapping to UI structure:

    "summary": {
        "age": 31,
        "gender": "male",
        "factors_present": [
            {
                "cui": "C0020538",
                "type": "if_bool",
                "rank": 3,
                "name": "High BP",
                "long_name": "High blood pressure",
                "value": "negative"
            },
            {
                "cui": "C0011849",
                "type": "if_bool",
                "rank": 4,
                "name": "Diabetes",
                "long_name": "Diabetes",
                "value": "negative"
            },
            {
                "cui": "C0004096",
                "type": "if_bool",
                "rank": 5,
                "name": "Asthma",
                "long_name": "Asthma",
                "value": "negative"
            },
            {
                "cui": "C0010054",
                "type": "if_bool",
                "rank": 6,
                "name": "CHD",
                "long_name": "Coronary Heart Disease",
                "value": "negative"
            },
            {
                "cui": "C0403447",
                "type": "if_bool",
                "rank": 7,
                "name": "CKD",
                "long_name": "Chronic kidney disease",
                "value": "negative"
            },
            {
                "cui": "C0024117",
                "type": "if_bool",
                "rank": 8,
                "name": "COPD",
                "long_name": "Chronic obstructive lung disease",
                "value": "negative"
            },
            {
                "cui": "C0038454",
                "type": "if_bool",
                "rank": 9,
                "name": "Stroke",
                "long_name": "Previous stroke(s)",
                "value": "negative"
            },
            {
                "cui": "C0337664",
                "type": "if_bool",
                "rank": 2,
                "name": "Smoker",
                "long_name": "Smoker",
                "value": "negative"
            }
        ],
        "duration": "year",
        "initial_symptoms": [
            {
                "severity": "normal",
                "cui": "C0013456",
                "name": "Ear pain or pressure"
            },
            {
                "severity": "normal",
                "cui": "C2986574",
                "name": "Clicking noises from jaw"
            }
        ],
        "additional_symptoms": [
            {
                "severity": "normal",
                "cui": "C0041105",
                "name": "Difficulty opening mouth"
            },
            {
                "severity": "normal",
                "cui": "C0239206",
                "name": "Popping or crackling sensation in the ear"
            },
            {
                "severity": "normal",
                "cui": "C2316035",
                "name": "Pain behind ear"
            }
        ],
        "excluded_symptoms": [
            {
                "cui": "C0015468",
                "name": "Face pain"
            },
            {
                "cui": "C0018681",
                "name": "Headache"
            }
        ],
        "unsure_symptoms": []
    }

Conditions

Condition outcomes are split between 3 categories under the subdomain object. They should be rendered in this order, if more than one is present:

  • to_rule_out - conditions the system is unsure about, but reported due to red flags combination of symptoms in user input, a matter of medical safety.
  • likely - conditions the system deemed likely given the user input.
  • also_considered - conditions the system deemed less likely given the user input.

We can have multiple subdomain objects populated for each of the 3 categories.


To Rule Out subdomains UI

Text describing the category of subdomains in general - not in the API response.

Each subdomain rendered as a card.

Include the triggers so that the user knows what factors contributed to this outcome.

Include the recommendation based on level and primary service

Clicking on a card can open the subdomain in a more detailed view.








Likely subdomains UI

Text describing the category of subdomains in general - not in the API response.

Each subdomain rendered as a card.

Include the triggers so that the user knows what factors contributed to this outcome.

Include the recommendation based on level and primary service

Clicking on a card can open the subdomain in a more detailed view.




Also considered subdomains UI

Text describing the category of subdomains in general - not in the API response.


Each subdomain rendered as a card.

Include the recommendation based on level and primary service


Clicking on a card can open the subdomain in a more detailed view.





Subdomain detailed view

When clicking on a card, we recommend showing the conditions for that subdomain in more detail.

Condition name

Condition article.content.snippet

Link to the article. This example uses article.content.name, article.metadata.image and article.metadata.reading_time_minutes.

Use the property article.yourmd_id to fetch the full article from our Content API endpoint.

In addition, the article.content.triage object is returned, which contains short form information in markdown format about the condition. The object will contain one, two or three of the following properties: triage_diagnostic, triage_treatment and triage_worries.








📘

Multiple conditions can be present for each subdomain so choose a UI solution to accommodate that.


Report articles

In some cases, you can receive an article list on the report response. You can ignore them if you have non empty subdomains. Otherwise, present them as useful reading.



What’s Next