AFI Dashboard - Design & Development
This data dashboard was set up for the Chikitsa Sahayta Kendra project in Odisha, India.
The Chikitsa Sahayta Kendra project (Health Outreach Center) in tribal villages of Odisha is using a comprehensive care delivery model to identify, treat and manage patients with high-quality care for primary health conditions through technology. The project, implemented by Arogya Foundation of India, aims at improving geographic and financial access to health care services to the patients in low-resource setting. The intervention is implemented in 44 remote villages in Pallahara block, in Angul District, Odisha. A total of 3 community health workers called Arogya Sanyojikas are provided with mobiles and telemedicine kits to facilitate teleconsults, counselling and referrals with 3 remote doctors. These CHWs are supported by 44 community volunteers, called Arogya Sevikas, who support them in screening, follow-up and tracking patient health improvement. Learn more about the project here.
AFI dashboard consists of 3 tabs:
Output Indicators
Process Indicators
Clinical Indicators
The entire data on the dashboard can sliced & diced on the basis of:
Year
Month
The details about the various charts incorporated in the dashboard are hereby given:
Sr. No. | Tab | Chart Name | Visualization Type | Datasource | Filter Conditions | Grouping | Metrices | Additional Settings |
1 | Output Indicators | Dashboard Filters | Filter Box | person_attribute | voided = 0 |
| count(person_attribute_id) | Filter Control - Year, Month |
2 | Output Indicators | Total Visits | Big Number | visit | voided = 0 |
| count(visit_id) | Number format = 0.4r |
3 | Output Indicators | Followup Visits | Big Number | obs | voided = 0 |
| count(*) | Number format = 0.3s |
4 | Output Indicators | Hypertension screening & Followup | Big Number | obs | voided = 0 |
| count(*) | Number format = 0.3s |
5 | Output Indicators | Visit Trend | Time Pivot | visit | voided = 0 |
| count(visit_id) | Time Column - date_created |
6 | Output Indicators | Patient Registration | Time Pivot | patient_identifier | voided = 0 |
| count(*) | Time Column - date_created |
7 | Output Indicators | Gender wise Patient Distribution | Partition | Patient_Personal |
| Gender | count_distinct(patient_id) | Number format = 0.4r |
8 | Output Indicators | Age Wise Patient Distribution | Distributed Bar | Patient_Personal |
| AGEGRP | count_distinct(patient_id) | Time Column - date_created |
9 | Output Indicators | Patient - Social Status | Pie | Patient_Personal | person_attribute_type_id = 11 | Value | count_distinct(patient_id) | Donut - Y |
10 | Output Indicators | Patient - Economic Status | Pie | Patient_Personal | person_attribute_type_id = 12 | Value | count_distinct(patient_id) | Donut - Y |
11 | Output Indicators | Patient - Education Level | Pie | Patient_Personal | person_attribute_type_id = 13 | Value | count_distinct(patient_id) | Donut - Y |
12 | Output Indicators | Average Patient Experience | Time Pivot | PatientExperience |
|
| SUM(Weight)/SUM(PAT_WT) | Time Column - LASTDATE |
13 | Output Indicators | Patient Experience Comments | Pivot Table | obs | voided = 0 | Value | count_distinct(person_id) |
|
14 | Output Indicators | Top 10 Symptoms | Distributed Bar | obs | voided = 0 | symptoms | count(symptoms) | Bar Values = Y |
15 | Output Indicators | Diagnosis Provided by Doctor | Table | obs | voided = 0 | Value | count(obs_id) |
|
16 | Output Indicators | Doctor Average TAT | Time Pivot | DoctorAvgTAT |
|
| SUM(TotalMin)+SUM(HRS) | Time Column - LastDay |
17 | Process Indicators | Patient Registration Trend | Big Number with trendline | patient_identifier | voided = 0 |
| count_distinct(patient_id) | Time Column - date_created |
18 | Process Indicators | Clinis Wise Distribution | Time Stacked Area | Patient_Personal | name <> Remote | name | count_distinct(patient_id) | X axis label - Clinic wise Patient Distribution |
19 | Process Indicators | Patient Distribution - Villagewise | Treemap | AFI_Village_Data |
| village | sum(patients) | Number Format - 0.4r |
20 | Process Indicators | Consultation Time (in Mins) by Health Worker | Distributed Bar | ConsultationTimeByHW |
| MonYear | count(Time_Group) | Breakdown - Time_Group |
21 | Process Indicators | Patient Experience | Distributed Bar | PatientExperience |
| MonYear | sum(patients) | Breakdown - Value_Text |
22 | Process Indicators | Hour Wise Distribution | Distributed Bar | encounter | voided = 0 | Hour | count(patient_id) | X axis label - Hour of the Day |
23 | Process Indicators | Patient Registered Per Day | Calendar Heat | patient_identifier | voided = 0 |
| count(patient_id) | Domain - month, Subdomain - day |
24 | Clinical Indicators | Doctor Wise Distribution | Time Stacked Area | Doctorwisedistribution | username is not null | Doctor | count_distinct(patients) | Time Column - Last_Date |
25 | Clinical Indicators | Doctor Patient Interaction | Distributed Bar | visit_attribute | voided = 0 | MonYear | count(*) | Breakdown - value_reference |
26 | Clinical Indicators | Percentage Patients Seen By Doctor | Pie | PercentagePatientsSeenByDoctor |
| Diagnosis | sum(patients) | Legend - Y, Show Labels - Y |
27 | Clinical Indicators | All Symptoms Distribution | Treemap | obs | voided =0 | symptoms | count_distinct(person_id) | Ratio - 1.1, Number format - 0.4r |
28 | Clinical Indicators | TAT Per Doctor | Table | TATPerDoctor |
| Year | max(TAT) | Doctor not in (Dr.Smith, Dr. User) |