VSO Dashboard - Design & Development
This data dashboard was set up for the MNCHN (Maternal, Neonatal, Child Health and Nutrition) project in Philippines.
VSO (Voluntary Services Overseas) is an international NGO that works on fighting poverty through volunteering. VSO Philippines is working on improving access to reproductive health services for local women and adolescents in rural areas of the Philippines, particularly in Geographically Isolated and Depressed Areas (GIDA). The communities are conflict-affected which has caused the populations to be displaced in the past and leaving them vulnerable to future displacement. VSO Philippines is improving access to women’s health and reproductive health services in these communities. The ongoing conflict in this region has resulted in a severe access gap in health services, particularly in the availability of doctors, primarily due to security concerns. In addition, health services in the Philippines are decentralized and are provided by local governments resulting in a disparity in health service delivery to the poor. Access to doctors and nurses in such conflict-prone areas does not exist, and patients may have to travel upto 2 hours to get to the nearest city where they are able to see a doctor. Midwives or local community health volunteers provide majority of the care but they are limited in the scope of services they can provide due to inadequate training. This causes patients to live with easily preventable or manageable illnesses and result in adverse health events. These patients may live below the poverty line with a zero income or as little as $2-3 per day or which is why there is a critical need for wider support systems to treat patients. Learn more here.
The VSO 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. | Chart Name | Visualization Type | Datasource | Filter Conditions | Grouping | Metrices | Additional Settings |
1 | VSO Data Filter | Filter Box | VSO_PatientVisit |
|
| count(patient_id) | Filter Control - Year, Month |
2 | Total Beneficiaries Registration | Big Number | VSO_PatientVisit |
|
| count_distinct(patient_id) | Number format = 0.3s |
3 | Total Visits (BHW + Midwife) | Big Number | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote' |
| count_distinct(visit_id) | Number format = 0.3s |
4 | Active Barangays Health Stations | Big Number | VSO_PatientVisit | Location <> Remote |
| count_distinct(Visit_locationid) | Number format = 0.1s |
5 | BHW Visits | Big Number | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, strcmp(substr(value_text,5,3), 'BHW') = '0' |
| count_distinct(visit_id) | Number format = 0.3s |
6 | Midwife Visits | Big Number | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, strcmp(substr(value_text,5,7), 'BHW') = '0' |
| count_distinct(visit_id) | Number format = 0.3s |
7 | Visits without data | Big Number | VSO_Visitswithoutforms | CurrCom = 0 |
| count_distinct(visit_id) | Number format = 0.3s |
8 | Emergency Visits | Big Number | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', encounter_type = 14 |
| count_distinct(visit_id) | Number format = 0.3s |
9 | Total Teleconsultations | Big Number | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, strcmp(substr(value_text,5,7), 'BHW') = '0', (locate("teleconsultation", value_text) > 0) |
| count_distinct(visit_id) | Number format = 0.3s |
10 | Total Referrals to RHU | Big Number | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, strcmp(substr(value_text,5,7), 'BHW') = '0', (locate("Rhu", value_text) > 0) |
| count_distinct(visit_id) | Number format = 0.3s |
11 | Patient Registration Trendline (Removed from Dashboard) | Time Pivot | VSO_PatientVisit |
|
| count_distinct(patient_id) | Time Column - date_started |
12 | Visits Trendline | Time Pivot | VSO_PatientVisit | Location <> Remote |
| count_distinct(visit_id) | Time Column - date_started |
13 | Patient Distribution (BHS wise) (Removed from Dashboard) | Time Bar Series | VSO_PatientVisit | Location <> Remote | Location | count_distinct(patient_id) | Time Column - date_started |
14 | Total visits (BHW + Midwife ) across BHS | Distributed Bar | VSO_PatientVisit | Location <> Remote | Location | count_distinct(visit_id) | Time Column - date_started |
15 | Total visits (BHW + Midwife )across BHS | Pie | VSO_PatientVisit | Location <> Remote | Location | count_distinct(visit_id) | Label Tyoe - Category & Percentage |
16 | BHW visits across BHS | Pie | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, strcmp(substr(value_text,5,3), 'BHW') = '0' | Location | count_distinct(visit_id) | Label Tyoe - Category & Percentage |
17 | Midwife visits across BHS | VSO_EncObs | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, strcmp(substr(value_text,5,7), 'Midwife') = '0' | Location | count_distinct(visit_id) | Label Tyoe - Category & Percentage |
18 | BHW - Beneficiaries seen across BHS | Distributed Stacked Bar Chart | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, strcmp(substr(value_text,5,3), 'BHW') = '0' | BHW Form Type | count_distinct(visit_id) | Breakdown - Location |
19 | Midwife - Beneficiaries seen across BHS | Distributed Stacked Bar Chart | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, strcmp(substr(value_text,5,7), 'Midwife') = '0' | Midwife Form Type
| count_distinct(visit_id) | Breakdown - Location |
20 | Total number of visits ended | Distributed stacked Bar | VSO_PatientVisit | Location <> Remote | Location | count_distinct(visit_id) | Breakdown - EHRComplete |
21 | Visit Completion Ratio (Removed from Dashboard) | Sunburst | VSO_PatientVisit | Location <> Remote |
| count(*) | Hierarchy - Location, EHRComplete |
22 | Visits with Vitals data | Pie | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', encounter_type = 6 | Location | count_distinct(visit_id) | Label Type - Category & Percentage, Show Labels - Y, Legend - Y, Put Labels outside - Y |
23 | Visits with Health risk assesment data | Pie | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, (locate("Health Risk Assessment", value_text) > 0) | Location | count_distinct(visit_id) | Label Type - Category & Percentage, Show Labels - Y, Legend - Y, Put Labels outside - Y |
24 | Visits with Health plans data | Pie | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163212, (locate("Health Plan", value_text) > 0) | Location | count_distinct(visit_id) | Label Type - Category & Percentage, Show Labels - Y, Legend - Y, Put Labels outside - Y |
25 | Visits with medical history data | Pie | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163210, NOT strcmp(substr(value_text, 3,5), '<br/>') = '0' | Location | count_distinct(visit_id) | Label Type - Category & Percentage, Show Labels - Y, Legend - Y, Put Labels outside - Y |
26 | Visits with family history data | Pie | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163211, NOT strcmp(substr(value_text, 80,4), 'null') = '0' | Location | count_distinct(visit_id) | Label Type - Category & Percentage, Show Labels - Y, Legend - Y, Put Labels outside - Y |
27 | Visit with consent data | Pie | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163213, (locate("Not Applicable", value_text) =0) | Location | count_distinct(visit_id) | Label Type - Category & Percentage, Show Labels - Y, Legend - Y, Put Labels outside - Y |
28 | Visits with Patient Feedback | Pie | VSO_EncObs | visit_voided = 0, Obs_voided = 0, encounter_voided = 0, Location <> 'Remote', concept_id = 163343, value_text <> null | Location | count_distinct(visit_id) | Label Type - Category & Percentage, Show Labels - Y, Legend - Y, Put Labels outside - Y |
29 | Visits with patient feedback data | Pie | VSO_Patient_Visit_Experience |
| Value_Text | sum(visits) | Label Type - Category & Percentage, Show Labels - Y, Legend - Y, Put Labels outside - Y |
30 | Average Patient Visit Satisfaction | Time Series - Periodicity Pivot | VSO_Patient_Visit_Experience |
| Year | SUM(Weight)/SUM(PAT_WT) | Time Column - Date_Started, Time Grain - Month, Frequency - Year, x-axis label - Months, Y-axis label - Satisfaction score |