Indicator Dashboard

Local Indicator Dashboard

The local dashboard provides the interface for sophisticated reporting with drill down ability to access related demographics and actions including bulk tickler and bulk disease registry entry. This page documents the setup and the use of the report system.
The DEB enables the Dashboard by default.  Doctors should be able to see the link from the schedule page

Installing Indicators

Indicators are special XML files that can be sourced and uploaded in a number of different ways. An indicator can be uploaded manually from Administration > Reports > Dashboard Manager > ↑ Import

Indicators are available here on the worldoscar.org site!

Loading Indicators into Dashboard Groups

The indicators now need to be assigned into Dashboard groups.

    1. Administration > Reports > Dashboard Manager > *Create Dashboard
    2. Create a “group” of indicators under a given category eg “Cancer Screening”.
    3. Using the dropdown next to each indicator to assign each indicator to a given dashboard group.

The assignment occurs on close, but without confirmation

Now you can pick the Dashboard group you want from the Dashboard menu on the schedule screen to view your dashboard’s indicators.
If you click on Panel then the indicators assigned to the Panel Group category open as charts and tables in set Categories with drill down options
The Dashboard will open with the logged in provider, but that can be changed from the pick list

The “Panel” example dashboard contains three indicators.  The first displays a bar graph of active patients.  The second shows patient how complete the patients contact information in.  The third shows percentages of active patients seen within certain intervals.

Drill down

Each indicator will have Drill Down as an option to review the demographics relating to the information shown in the graph.

Here in the Patient Contact Information drilldown the first row shows that Ms Abracadabra is missing email data.    Click on the link (14) to go to the master demographic in question to update.

Use the Action dropdown for one of a number of Actions for checked demographic(s).

Most templates will allow you to set ticklers to checked patients

Other possible actions include bulk updates to the disease registry.

The code selected by the indicator and its common language equivalent are shown.  If you confirm then each checked demographics disease registry entry will be updated with the diagnosis (if not already present) and a list of the demographics involved will be sent to your inbox.

Are the Numbers Wrong? Measurement Routing

The Dashboard indicator queries use standard LOINC codes for mapping patient measurements. It may be necessary to adjust the current Measurement Mappings in OSCAR in order to ensure that the various Measurements Types are picked up by the queries. It is only necessary to map each of the LOINC codes in a 1:1 relationship.  The following LOINC codes are used for the following tests

Fecal Occult Blood Test (FOBT) 58453‐2, 14563‐1, 14564‐9, 14565‐6Colorectal Cancer Screening   FOBT, FOB, FIT

Hemoglobin A1c (HbA1c) 4548‐4

To keep the Dashboard standard its not recommended to alter the queries embedded in the XML files from OSCAR normal to account for how data is stored in your OSCAR instance.  If you need to do so please rename the indicator to show that its not stock but a custom indicator.

Roll your own

Some of the functionality described above is specific to OSCAR 19 and involves additional indicator XML settings than mentioned below.  You can create your own template based on the following blank which is generally compatible with OSCAR 19 as well as recent forks.  See the video tutorial at https://youtu.be/ADj6Bz_gTfg

<?xml version="1.0" encoding="UTF-8"?>
<indicatorTemplateXML>
    <author>PHC</author>
    <uid></uid>
    <heading>
        <category>This is the broad category of related indicators that shows up in the blue bar eg Vulnerable Population</category>
        <subCategory>this is grey bar entry eg Chronic Kidney Disease</subCategory>
        <name>this is the specific indicators name eg eGFR</name>
        <metricSetName>can be left blank</metricSetName>
        <metricLabel>can be left blank</metricLabel>
        <definition>Something useful to show up on clicking info eg Providers Population age 18 and older who have eGFR measurements by CKD Stage.</definition>
        <framework>Based on whatever you like</framework>
        <frameworkVersion>01-30-2018</frameworkVersion>
        <notes>Shows up when you click on info</notes>
    </heading>
    <indicatorQuery>
        <version>03-30-2021</version>
        <params>
            <!-- constants, the example shows what you would use for reports on adults.  You need to use ${provider} for the placeholder in your SQL -->
            <parameter id="provider" name="provider_no" value="loggedInProvider" />
            <parameter id="pstatus" name="Patient Status" value="'AC'" />
        </params>
        <range>
            <!-- numerical constraints, the example shows what you would use for reports on adults.  use ${lowerLimit.age} for the placeholder in the SQL -->
            <lowerLimit id="age" label="Min Age" name="Age" value="18" />
        </range>
        <query>
            <!-- Indicator SQL Query here.  Craft your query to result counts which will then be graphed -->
        </query>
    </indicatorQuery>
    <drillDownQuery>
        <version>03-30-2021</version>
        <params>
            <!-- constants, the example shows what you would use for reports on adults.  You need to use ${provider} for the placeholder in your SQL -->
            <parameter id="provider" name="provider_no" value="loggedInProvider" />
            <parameter id="pstatus" name="Patient Status" value="'AC'" />
        </params>
        <range>
            <!-- numerical constraints, the example shows what you would use for reports on adults.  use ${lowerLimit.age} for the placeholder in the SQL -->
            <lowerLimit id="age" label="Min Age" name="Age" value="18" />
        </range>
        <displayColumns>
             <!-- which columns will you display in the drill down.  Usually they start with the first three below -->
            <column id="demographic" name="d.demographic_no" title="Patient Id" primary="true" />
            <column id="name" name="CONCAT( d.last_name, ', ', d.first_name )" title="Patient Name" primary="false" />
            <column id="dob" name="DATE_FORMAT( CONCAT(d.year_of_birth,'-',d.month_of_birth,'-',d.date_of_birth), '%m-%d-%Y' )" title="Patient DOB (mm-dd-yyyy)" primary="false" />
        </displayColumns>
        <exportColumns>
            <!-- which columns will you allow for downloading, usually duplicate of the ones you display but can be different -->
        </exportColumns>
        <drillDownActions>
            <action id="tickler" name="Tickler"/> <!-- this allows ticklers to be set for the relevant demographics -->
            <action id="dxUpdate" name="Disease Registry Update" value="585"/> <!-- the value is the disease registry code to add -->
            <action id="patientStatusUpdate" name="Set Patient Inactive"/>
        </drillDownActions>
        <query>
            <!-- Drilldown SQL Query here Craft your query to provide values for the display and export columns-->
        </query>
    </drillDownQuery>   
</indicatorTemplateXML>