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:

  1. Output Indicators

  2. Process Indicators

  3. 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
Time Grain - Month
Frequency - Year
Y axis format - 0.3s
Y axis label - Number of Patients Registered
X axis label - Months

12

Visits Trendline

Time Pivot

VSO_PatientVisit

Location <> Remote

 

count_distinct(visit_id)

Time Column - date_started
Time Grain - Month
Frequency - Year
Y axis format - 0.3s
Y axis label - Number of Visits
X axis label - Months

13

Patient Distribution (BHS wise)

(Removed from Dashboard)

Time Bar Series

VSO_PatientVisit

Location <> Remote

Location

count_distinct(patient_id)

Time Column - date_started
Time Grain - Month
Y axis format - 0.3s
Y axis label - Number of Patients
X axis label - Months

14

Total visits (BHW + Midwife ) across BHS

Distributed Bar

VSO_PatientVisit

Location <> Remote

Location

count_distinct(visit_id)

Time Column - date_started
Time Grain - Month
Y axis format - 0.3s
Y axis label - Number of Visits
X axis label - Months

15

Total visits (BHW + Midwife )across BHS

Pie

VSO_PatientVisit

Location <> Remote

Location

count_distinct(visit_id)

Label Tyoe - Category & Percentage
Show Labels - Y
Put Labels Outside - Y

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
Show Labels - Y
Legend - Y

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
Show Labels - Y
Legend - Y

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
X axis label - Form Type
Y axis label - Count
Legend - Y, Stacked Bars - Y, Y axis format - 0.3s, Bar Values - Y

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
X axis label - Form Type
Y axis label - Count
Legend - Y, Stacked Bars - Y, Y axis format - 0.3s, Bar Values - Y

20

Total number of visits ended

Distributed stacked Bar

VSO_PatientVisit

Location <> Remote

Location

count_distinct(visit_id)

Breakdown - EHRComplete
X axis label - Location
Y axis label - Number of Patient Visits
Legend - Y, Stacked Bars - Y, Y axis format - 0.3s, Bar Values - Y

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
Month
Doctor

SUM(Weight)/SUM(PAT_WT)

Time Column - Date_Started, Time Grain - Month, Frequency - Year, x-axis label - Months, Y-axis label - Satisfaction score