KHFA / SARA service readiness

Analysis Report

By:

Kelly, Caitrin Maura, Kimaina Allan , Michael Kibiwott , jamilalariik Linner Soy , ORERA BODO , Shadrack Mutai , Cornelius Kiptoo , Turissini, Matthew Louis" David Kiptoo

1 Background

1.1 Primary Analysis Goal

Determine the general service readiness within each of the domains (as defined by the SARA tool) For Bunyala Subcounty as indicated in the KHFA survey from March 2020.

1.2 Secondary Analysis Goal

How does service readiness impact service availability using the UHC framework indexes? Look at the WHO Kenya UHC indices included in community baseline survey, and specific service readniess indicators that may impact them (ex stocks of immunizations, diarrhea and Pneumonia tx, stock of family planning supplies, etc)

1.3 Additional Areas of analysis:

Service specific areas (ex maternal health came up a lot during FGDs, may want to look into SARA measures and KHFA service specific areas for maternal health or other areas).

2 Basic Amenities

power: combine with question 2028 on uninterrupted power; in order to get “credit”for power indicator need to have both Q2025=YES, and Q2035=1 or =2

Improved water source: to count it for improved water source, must have 2050=1,13,4,9,2 AND question 2053=2 (NO)

room with privacy: 2230=3(BOTH AUDITORY AND VISUAL PRIVACY) –> Is there a room with auditory and visual privacy available for patient consultations?

adequate sanitation Require both male and female latrines to be functioning If either male or female are not functioning or do not meet the criteria for improved sanitation, indicator is counted as 0

communication equipment 2000 only count indicator if response is 1, YES FUNCTION

access to computer & internet 2002 only include indicator if 2002=1, AND 2004=1

Emergency transportation to get credit for this indicator, 2133=1 OR 2 AND 2134=YES/1 AND 2135=1/YES

Scoring: Domain score = Mean score of items as percentage: mean*100

2.1 SARA Coding (R)

# define on SARA
aggr_var=c('power', 'improved_water_source', 'room_with_privacy', 'adequate_sanitation_toilet', 'communication_equipment','computer_internet','emergency_transportation')
# define non-SARA
other_var=c()
# define score vars
score_var=c('BA_SARA_score')
# combine both sara and non-sara
all_var=unique(c(aggr_var,other_var))
# indicator calculations
basic_amenities.df = data%>%mutate( 
   
   # Step 0: clean data
   available_functioning_femalet=replace_na(available_functioning_femalet, 9999),
   have_functioning_computer=replace_na(have_functioning_computer, 9999),
   is_there_access_to_email_o=replace_na(is_there_access_to_email_o, 9999),
   
   # Step 1: aggregate SARA components
   power = if_else((does_this_facility_have_po==1 & during_the_past_7_days_was%in%c(1,2)) ,1,0),
   improved_water_source = if_else((water_shortage_past7days==2 & what_is_the_most_commonly%in%c(1,13,4,9,2)) ,1,0),
   room_with_privacy=  if_else(auditory_visual_privacy==3,1,0),
   adequate_sanitation_toilet=  if_else(male_toilet___8!=1 & available_functioning_malet___1==1& female_toilet!=9 & available_functioning_femalet==1,1,0),
   communication_equipment= if_else(formal_means_communicating%in%c(1),1,0),
   computer_internet=if_else(have_functioning_computer==1 & is_there_access_to_email_o==1,1,0),
   emergency_transportation=if_else((driver_available==1 & vehicle_available==1 &  emergency_transport%in%c(1,2)) ,1,0)
   
   # Step 2: aggregate non-SARA components
   # No non-sara for amenities
   
   )%>%select(c(base_var, all_var))%>%mutate( 
       # Step 3: generate scores
      BA_SARA_score=as.numeric( round((select(.,aggr_var) %>% rowMeans(na.rm=T))*100,1) )
   )%>%mutate_at( all_var, to_YesNo)
  • Issue 2: Improved water source –> manual not clear, I have considered PIPED INTO FACILITY SURFACE WATER (RIVER/DAM/LAKE/POND) BOREHOLE RAINWATER PIPED ONTO FACILITY GROUNDS as improved water sources

Improved water sources as defined in the WHO SARA tool are:” Improved water source uses uniform definitions for safe water sources promoted by UNICEF. These include the following: Piped, public tap, standpipe, tubewell/borehole, protected dug well, protected spring, rain water “. So looks like your coding also needs to include protected dug well, protected spring,…..I see there are other options listed on the survey so I guess I would consider them NOT improved

2.2 SARA Indicators Tabulation

facility_name.factor facility_type.factor level power improved_water_source room_with_privacy adequate_sanitation_toilet communication_equipment computer_internet emergency_transportation BA_SARA_score
Budalangi Dispensary Level 2 Yes No No Yes No No No 28.6
Bulwani Dispensary Level 2 No Yes Yes No No No No 28.6
Mukhobola Health Centre Level 3 Yes Yes Yes Yes Yes No No 71.4
Port Victoria Sub County Hospital Level 4 Yes No No Yes Yes Yes Yes 71.4
Rukala Health Centre Level 3 No Yes Yes Yes Yes No No 57.1
Sisenye Dispensary Level 2 No No Yes Yes No No No 28.6
Osieko Dispensary Level 2 No Yes Yes Yes No No No 42.9
Khajula Dispensary Level 2 Yes Yes Yes No No No Yes 57.1
Busagwa Dispensary Level 2 No No Yes Yes No No No 28.6

2.2.1 Disaggregation by facility level

2.3 Non-SARA (Extra) Indicators Tabulation

We do not have

3 Basic Equipments

Aggregating: give credit for item if =1 or 2 (observed or reported) AND part B=1 YES, functioning

Scoring: Domain score = Mean score of items as percentage: N/6*100

3.1 SARA Coding (R)

# define on SARA
aggr_var=c('adult_weighing_scale', 'child_weighing_scale', 'thermometer', 'stethoscope', 'blood_pressure_apparatus','light_source')
# define non-SARA
other_var=c('pulse_oximeter', 'adult_self_inflating_bag_and_mas', 'paed_self_inflating_bag_and_mas', 'neonatal_bag_and_mask',
            'defibrillator', 'ekg_machine', 'electrodes_and_leads_EKG', 'oxygen_currently_in_the_unit', 'oxygen_called_for_from_a_central_location',
            'central_piped_oxygen_supp','oxygen_concentrator','oxygen_tank_cylinder', 'flowmeter_for_oxygen_sourc', 'oxygen_delivery_apparatus')
# define score vars
score_var=c('BE_SARA_score','BE_SARAExtra_score')
# combine both sara and non-sara
all_var=unique(c(aggr_var,other_var))
# indicator calculations
basic_equipment.df = data%>%mutate( 
   # Step 0: clean daata
   neonatal_bag_and_mask_been_unavailable=replace_na(neonatal_bag_and_mask_been_unavailable, 0),
   
   # Step 1: aggregate SARA components
   adult_weighing_scale = if_else((adult_weighing_scale_digit___1==1 | adult_weighing_scale_digit___2==1) & adult_weighing_scale_digit___4==1,1,0),
   child_weighing_scale = if_else((child_weighing_scale_250_g___1==1 | child_weighing_scale_250_g___2==1) & child_weighing_scale_250_g___4==1,1,0),
   thermometer = if_else((thermometer___1==1 | thermometer___2==1) & thermometer___4==1,1,0),
   stethoscope = if_else((stethoscope___1==1 | stethoscope___2==1) & stethoscope___4==1,1,0),
   blood_pressure_apparatus = if_else((blood_pressure_apparatus___1==1 | blood_pressure_apparatus___2==1) & blood_pressure_apparatus___4==1,1,0),
   light_source  = if_else((light_source_that_can_be_p___1==1 | light_source_that_can_be_p___2==1) & light_source_that_can_be_p___4==1,1,0),
   
   # Step 2: aggregate non-SARA components
   pulse_oximeter  = if_else((emergency_pulse_oximeter___1==1 | emergency_pulse_oximeter___2==1) & emergency_pulse_oximeter___4==1,1,0),
   adult_self_inflating_bag_and_mas  = if_else((adult_self_inflating_bag_and_mas___1==1 | adult_self_inflating_bag_and_mas___2==1) & adult_self_inflating_bag_and_mas___4==1,1,0),
   paed_self_inflating_bag_and_mas  = if_else((paed_self_inflating_bag_and_mas___1==1 | paed_self_inflating_bag_and_mas___2==1) & paed_self_inflating_bag_and_mas___4==1,1,0),
   neonatal_bag_and_mask  = neonatal_bag_and_mask_been_unavailable,
   defibrillator  = if_else((defibrillator___1==1 | defibrillator___2==1) & defibrillator___4==1,1,0),
   ekg_machine  = if_else((ekg_machine___1==1 | ekg_machine___2==1) & ekg_machine___4==1,1,0),
   electrodes_and_leads_EKG  = if_else((electrodes_and_leads_for_e___1==1 | electrodes_and_leads_for_e___2==1) & electrodes_and_leads_for_e___4==1,1,0),
   oxygen_currently_in_the_unit  = oxygen_currently_in_the_unit,
   oxygen_called_for_from_a_central_location=oxygen_called_for_from_a_central_location,
   central_piped_oxygen_supp  = if_else((central_piped_oxygen_suppl___1==1 | central_piped_oxygen_suppl___2==1) & central_piped_oxygen_suppl___4==1,1,0),
   oxygen_concentrator  = if_else((oxygen_concentrator___1==1 | oxygen_concentrator___2==1) & oxygen_concentrator___4==1,1,0),
   oxygen_tank_cylinder  = if_else((oxygen_tank_cylinder_with___1==1 | oxygen_tank_cylinder_with___2==1) & oxygen_tank_cylinder_with___4==1,1,0),
   flowmeter_for_oxygen_sourc  = if_else((flowmeter_for_oxygen_sourc___1==1 | flowmeter_for_oxygen_sourc___2==1) & flowmeter_for_oxygen_sourc___4==1,1,0),
   oxygen_delivery_apparatus  = if_else((oxygen_delivery_apparatus___1==1 | oxygen_delivery_apparatus___2==1) & oxygen_delivery_apparatus___4==1,1,0),
   
   )%>%select(c(base_var, all_var))%>%mutate( 
       # Step 3: generate scores
      BE_SARA_score=as.numeric( round((select(.,aggr_var) %>% rowMeans(na.rm=T))*100,1) ),
      BE_SARAExtra_score=as.numeric( round((select(.,all_var) %>% rowMeans(na.rm=T))*100,1))
   )%>%mutate_at( all_var, to_YesNo)
  • Issue 1: Over 50% of SARA question codes not in the dataset –> Had to fallback to using typed out questions.

3.2 SARA Indicators Tabulation

facility_name.factor facility_type.factor level adult_weighing_scale child_weighing_scale thermometer stethoscope blood_pressure_apparatus light_source BE_SARA_score
Budalangi Dispensary Level 2 Yes Yes Yes Yes No No 66.7
Bulwani Dispensary Level 2 No No No No Yes No 16.7
Mukhobola Health Centre Level 3 Yes Yes Yes Yes Yes Yes 100.0
Port Victoria Sub County Hospital Level 4 Yes Yes No Yes Yes No 66.7
Rukala Health Centre Level 3 Yes Yes Yes Yes Yes No 83.3
Sisenye Dispensary Level 2 Yes No Yes Yes Yes No 66.7
Osieko Dispensary Level 2 Yes Yes Yes Yes Yes Yes 100.0
Khajula Dispensary Level 2 No No No No No No 0.0
Busagwa Dispensary Level 2 Yes Yes Yes No Yes No 66.7
  • Issue 2: Khajula has 0 scores across all because of part B, i,e., part B=1 YES, functioning

3.2.1 Disaggregation by facility level

3.3 Non-SARA (Extra) Indicators Tabulation

facility_name.factor facility_type.factor level adult_weighing_scale child_weighing_scale thermometer stethoscope blood_pressure_apparatus light_source pulse_oximeter adult_self_inflating_bag_and_mas paed_self_inflating_bag_and_mas neonatal_bag_and_mask defibrillator ekg_machine electrodes_and_leads_EKG oxygen_currently_in_the_unit oxygen_called_for_from_a_central_location central_piped_oxygen_supp oxygen_concentrator oxygen_tank_cylinder flowmeter_for_oxygen_sourc oxygen_delivery_apparatus BE_SARA_score
Budalangi Dispensary Level 2 Yes Yes Yes Yes No No No No No No No No No NA NA No No No No No 66.7
Bulwani Dispensary Level 2 No No No No Yes No No No No No No No No NA NA No No No No No 16.7
Mukhobola Health Centre Level 3 Yes Yes Yes Yes Yes Yes No No No No No No No No No No No No No No 100.0
Port Victoria Sub County Hospital Level 4 Yes Yes No Yes Yes No No No No No No No No No Yes No No Yes Yes Yes 66.7
Rukala Health Centre Level 3 Yes Yes Yes Yes Yes No No No No No No No No No No No No No No No 83.3
Sisenye Dispensary Level 2 Yes No Yes Yes Yes No No No No No No No No NA NA No No No No No 66.7
Osieko Dispensary Level 2 Yes Yes Yes Yes Yes Yes No No No No No No No NA NA No No No No No 100.0
Khajula Dispensary Level 2 No No No No No No No No No Yes No No No No No No No No No No 0.0
Busagwa Dispensary Level 2 Yes Yes Yes No Yes No No No No No No No No NA NA No No No No No 66.7

3.3.1 Disaggregation by facility level

4 Diagnostic Capacity

Aggregating: count the indicator as present (1) if observed and function, or reported avialable and functional (Responses 1, 2) do not count the indicator (0)if not functional, not available today, or never available (3, 4, 5)

Scoring: Domain score = Mean score of items as percentage: N/8*100

4.1 SARA Coding (R)

# define on SARA
aggr_var=c('haemoglobin', 'blood_glucose', 'malaria_diagnostic_capacity', 'urine_dipstick_protein', 'urine_dipstick_glucose','HIV_diagnostic_capacity','syphilis_rapid_test','urine_test_for_preg')
# define non-SARA
other_var=c('UEC', 'hemoglobin_a1c', 'geneXpert', 'x_ray', 'ultrasound', 'ECG')
# define score vars
score_var=c('DC_SARA_score','DC_SARAExtra_score')
# combine both sara and non-sara
all_var=unique(c(aggr_var,other_var))
# indicator calculations
diagnostic_capacity.df = data%>%mutate( 
   # Step 0: clean daata
   #neonatal_bag_and_mask_been_unavailable=replace_na(neonatal_bag_and_mask_been_unavailable, 0),
   
   # Step 1: aggregate SARA components
   haemoglobin = if_else((colorimeter_or_haemoglobin___1==1 | colorimeter_or_haemoglobin___2==1) | 
                                    (hemocue___1==1 | hemocue___2==1) |
                                     ( haematology_analyser___4==1 | haematology_analyser___5==1) |
                                     (any_tests_of_blood_white_a___4==1 | any_tests_of_blood_white_a___5==1) |
                                    ( other_tests_for_full_blood___4==1 | other_tests_for_full_blood___5==1) |
                                    ( other_tests_for_anemia___4==1 | other_tests_for_anemia___5==1)  ,1,0),
   blood_glucose = if_else((glucometer___1==1 | glucometer___2==1 | glucometer_test_strips_dis___1==1 | glucometer_test_strips_dis___2==1),1,0),
   malaria_diagnostic_capacity = if_else((malaria_rapid_diagnostic_t___1==1 | malaria_rapid_d_kits%in%(c(1,2))),1,0),
   urine_dipstick_protein = if_else( urine_dipstick%in%(c(1,3)) | (urine_dipstick_3___1==1 | urine_dipstick_3___3==1) | (urine_dipstick_9___1==1 | urine_dipstick_9___3==1),1,0),
   urine_dipstick_glucose = if_else( urine_dipstick%in%(c(1,3)) | (urine_dipstick_3___1==1 | urine_dipstick_3___3==1) | (urine_dipstick_9___1==1 | urine_dipstick_9___3==1),1,0),
   HIV_diagnostic_capacity = if_else( rapid_hiv_testing%in%(c(1,3)) | (hiv_rapid_test___1==1 | hiv_rapid_test___3==1),1,0),
   syphilis_rapid_test = if_else( (syphilis_rapid_test___1==1 | syphilis_rapid_test___3==1),1,0),
   urine_test_for_preg = if_else( (urine_rapid_tests_for_preg___1==1 | urine_rapid_tests_for_preg___3==1),1,0), 
  
   
   # Step 2: aggregate non-SARA components
   UEC  = if_else((assay_kit_s_renal_funct___4==1 | assay_kit_s_renal_funct___5==1),1,0), # check if this is same as UEC
   hemoglobin_a1c  = if_else((hemoglobin_a1c_rapid_test___1==1 | hemoglobin_a1c_rapid_test___3==1),1,0), # check if a1c means hemoglobin_a1c?
   geneXpert  = if_else((genexpert_4_module_unit_wi___4==1 | genexpert_4_module_unit_wi___5==1),1,0), # must catridge be available?
   x_ray  = if_else((x_ray___1==1 & x_ray___3==1),1,0), 
   ultrasound  = if_else((ultrasound___1==1 & ultrasound___3==1),1,0), 
   ECG  = if_else((electrocardiogram_ecg___1==1 & electrocardiogram_ecg___3==1),1,0), 

   # TODO: ***Jamil to add
   
   )%>%select(c(base_var, all_var))%>%mutate( 
       # Step 3: generate scores
      DC_SARA_score=as.numeric( round((select(.,aggr_var) %>% rowMeans(na.rm=T))*100,1) ),
      DC_SARAExtra_score=as.numeric( round((select(.,all_var) %>% rowMeans(na.rm=T))*100,1))
   )%>%mutate_at( all_var, to_YesNo)
  • Issue 1: UEC - Urea Electrolytes and Creatinine ? using assay_kit_s_renal_func variable

4.2 SARA Indicators Tabulation

facility_name.factor facility_type.factor level haemoglobin blood_glucose malaria_diagnostic_capacity urine_dipstick_protein urine_dipstick_glucose HIV_diagnostic_capacity syphilis_rapid_test urine_test_for_preg DC_SARA_score
Budalangi Dispensary Level 2 No Yes Yes No No Yes No No 37.5
Bulwani Dispensary Level 2 No No Yes Yes Yes Yes Yes Yes 75.0
Mukhobola Health Centre Level 3 Yes Yes Yes Yes Yes Yes Yes Yes 100.0
Port Victoria Sub County Hospital Level 4 Yes Yes Yes Yes Yes Yes Yes Yes 100.0
Rukala Health Centre Level 3 No Yes Yes No No Yes Yes No 50.0
Sisenye Dispensary Level 2 No Yes Yes No No Yes Yes No 50.0
Osieko Dispensary Level 2 No No Yes No No Yes No No 25.0
Khajula Dispensary Level 2 No No Yes No No Yes Yes Yes 50.0
Busagwa Dispensary Level 2 No Yes Yes No No Yes Yes No 50.0

4.2.1 Disaggregation by facility level

4.3 Non-SARA (Extra) Indicators Tabulation

facility_name.factor facility_type.factor level haemoglobin blood_glucose malaria_diagnostic_capacity urine_dipstick_protein urine_dipstick_glucose HIV_diagnostic_capacity syphilis_rapid_test urine_test_for_preg UEC hemoglobin_a1c geneXpert x_ray ultrasound ECG DC_SARA_score
Budalangi Dispensary Level 2 No Yes Yes No No Yes No No No No No No No No 37.5
Bulwani Dispensary Level 2 No No Yes Yes Yes Yes Yes Yes No No No No No No 75.0
Mukhobola Health Centre Level 3 Yes Yes Yes Yes Yes Yes Yes Yes No Yes No No No No 100.0
Port Victoria Sub County Hospital Level 4 Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No 100.0
Rukala Health Centre Level 3 No Yes Yes No No Yes Yes No No No No No No No 50.0
Sisenye Dispensary Level 2 No Yes Yes No No Yes Yes No No No No No No No 50.0
Osieko Dispensary Level 2 No No Yes No No Yes No No No No No No No No 25.0
Khajula Dispensary Level 2 No No Yes No No Yes Yes Yes No No No No No No 50.0
Busagwa Dispensary Level 2 No Yes Yes No No Yes Yes No No No No No No No 50.0

4.3.1 Disaggregation by facility level

5 Precautions for infection prevention (PIP)

PIP1 PIP2

5.1 SARA Coding (R)

# define on SARA
aggr_var=c('sharp_waste_final_disposal', 'infectious_waste_disposal', 'sharps_safety_box', 'waste_receptacle_bin', 'disinfectant','single_use_syringe','soap_water_alcohol','latex_glove')
# define non-SARA
other_var=c(   'covid_surgical_masks', 'covid_n95_face_masks', 'covid_protective_gow', 'covid_aprons', 
   'covid_eye_protection', 'covid_gumboots_or_clogs', 'covid_hair_cover')
# define score vars
score_var=c('PIP_SARA_score','PIP_SARAExtra_score')
# combine both sara and non-sara
all_var=unique(c(aggr_var,other_var))
# indicator calculations
pip.df = data%>%mutate( 
   # Step 0: clean daata
   #neonatal_bag_and_mask_been_unavailable=replace_na(neonatal_bag_and_mask_been_unavailable, 0),
   
   # Step 1: aggregate SARA components
  
  sharp_waste_final_disposal = if_else( sharp_waste_disposal%in%(c(  5, 7, 9, 10, 11)) | 
                                    (iincinerator_used%in%(c( 2,3) ) & incinerator_functioning==1 & fuel_for_the_incinerator==1), 1,0),
  
    
  infectious_waste_disposal = if_else( (medical_waste_disposal==1 & sharp_waste_final_disposal==1 ) | medical_waste_disposal%in%(c(  5, 7, 9, 10, 11)) | 
                                    (medical_waste_disposal%in%(c( 2,3) ) & incinerator_functioning==1 & fuel_for_the_incinerator==1), 1,0),
  
  # We will use OPD as a proxy for storage of sharps, indicative of other departmens and areas
  sharps_safety_box= if_else( safety_box_for_sharps%in%(c(1,2)),1,0), # WHY NOT NON_OPD
  
  # Count if available in all
  waste_receptacle_bin = if_else( does_the_waste_receptacle%in%(c(1,2)) & waste_receptacle_bin_with%in%(c(1,2)) # OPD
                                  & oes_the_waste_receptacle%in%(c(1,2)) & waste_receptacle_bin_wit%in%(c(1,2)) # INFECTIOUS AND COMMUNICABLE DISEASES
                                  #& infectious_waste%in%(c(1,2)) & plastic_bin%in%(c(1,2)) #DELIVERY AND NEWBORN CARE SERVICES
                                  #& biological_waste%in%(c(1,2))& receptacle_bin_with%in%(c(1,2))#DELIVERY AND NEWBORN CARE SERVICES
                                  #& s_doe_receptacl%in%(c(1,2)) & s_wacle_bin_wit%in%(c(1,2)) #23. EMERGENCY (AMBULANCE OR WALK-IN) SERVICES
                                  #& dreceptacle%in%(c(1,2)) & wastbin_with%in%(c(1,2)) #23. EMERGENCY (AMBULANCE OR WALK-IN) SERVICES
                                  & r_bin%in%(c(1,2)) & eeceptacle_bin_with%in%(c(1,2)) #25 SURGICAL SERVICES
                                  & the_waste_receptacle%in%(c(1,2))  & e_waste_receptacle%in%(c(1,2)) #25 SURGICAL SERVICES
      
                                  ,1,0),
  # Count if available in any: TODO: Confirm
  disinfectant =  if_else( environmental_disinfectant%in%(c(1,2)) | envronmental_disinfectant%in%(c(1,2)) | 
                            disinfectants%in%(c(1,2))
                            ,1,0),
  
  #  Count  If it is available in any department/section TODO: I'm including also Emergency, e.t.c
  single_use_syringe =  if_else( disposable_syringes%in%(c(1,2)) | disposable_syringes_with_d%in%(c(1,2)) | 
                               diposable_syringes_with_d%in%(c(1,2)) | disposable_syringes_needle%in%(c(1,2)) |
                               disp_syringes_with_d%in%(c(1,2)) | diringes_with_d%in%(c(1,2)) | 
                               
                              auto_disable_syring%in%(c(1,2)) | auto_disable_syringes%in%(c(1,2)) | aut_disable_syringes%in%(c(1,2)) |
                              s_auto_disable_syringes_an%in%(c(1,2)) | auto_syringes%in%(c(1,2)) | ausyringes%in%(c(1,2)) 
                             
                            ,1,0),
  
  # Must be available in all the 4 departments (OPD, HIV, Obs and Newborn, Surgery area) TODO: I'm including also Emergency, e.t.c
  soap_water_alcohol =  if_else( (clean_running_water%in%(c(1,2)) & (soap_bar_or_liquid%in%(c(1,2)) | alcohol_based_hand%in%(c(1,2)) ) ) &
                                  (clean_running_water_piped%in%(c(1,2)) & (soap_bar_or_liquid_for_han%in%(c(1,2)) | alcohol_based_hand_rub_han%in%(c(1,2)) ) ) & 
                                   (lean_running_water_piped%in%(c(1,2)) & (sap_bar_or_liquid_for_han%in%(c(1,2)) | acohol_based_handrub_hand%in%(c(1,2)) ) ) & 
                                    (running_water%in%(c(1,2)) & (soap%in%(c(1,2)) | hand_sanitizer%in%(c(1,2)) ) ) &
                                   (er_piped%in%(c(1,2)) & (p_or_liqui%in%(c(1,2)) | alcndrub%in%(c(1,2)) ) ) &
                                   (c_running_water_piped%in%(c(1,2)) & (s_or_liquid_for_han%in%(c(1,2)) | abased_handrub%in%(c(1,2)) ) )
     
                            ,1,0),
  
  # Must be available in all the 4 departments (OPD, HIV, Obs and Newborn, Surgery area) TODO: I'm including also Emergency, e.t.c
  latex_glove =  if_else( (disposable_latex_gloves_no%in%(c(1,2)) |disposable_latex_gloves_st%in%(c(1,2))) &
                            (s_isposable_latex_gloves%in%(c(1,2))| isposable_latex_gloves_st%in%(c(1,2))) & 
                            (gloves_nonsterile%in%(c(1,2))| latex_gloves_steril%in%(c(1,2))) &
                            (s_diatex_gloves%in%(c(1,2))| dispo_gloves_st%in%(c(1,2))) & 
                            (d_latex_gloves_no%in%(c(1,2))| d_latex_gloves_st%in%(c(1,2))) & 
                            (disposable_latex_glove%in%(c(1,2)) |disposable_latex_gloves%in%(c(1,2))) 
                            ,1,0),

  #guidelines_precautions = NA, # Missing TODO --> Need 
   # Step 2: aggregate non-SARA components
   # We do not hava NON SARA
   # TODO : We should consider COvid PPE here
  
   covid_surgical_masks= if_else( surgical_respiratory_masks%in%(c(1,2)) | surratory_masks%in%(c(1,2)) | 
                               respiratory_masks%in%(c(1,2)) | surgical_respiratory%in%(c(1,2)) |
                               surgical_masks_pharm%in%(c(1,2))
                               
                            ,1,0),
  
   covid_n95_face_masks= if_else( n95_face_masks%in%(c(1,2)) | n95%in%(c(1,2)) | 
                               n95_masks%in%(c(1,2)) | n95_face_mask%in%(c(1,2)) |
                               n95_face_masks_pharm%in%(c(1,2))
                               
                            ,1,0),
  
   covid_protective_gow= if_else( non_sterile_protective_gow%in%(c(1,2)) | non_tective_gow%in%(c(1,2)) | 
                             ste%in%(c(1,2)) | sterile_gowns%in%(c(1,2)) |
                               
                             non_s_protective_gow%in%(c(1,2)) | gowns%in%(c(1,2)) |
                                non_sterile_protective%in%(c(1,2)) | sterile_gown%in%(c(1,2)) |
                                non_sterile_protect_pharm%in%(c(1,2)) | sterile_gowns_pharm%in%(c(1,2))
                             
                          ,1,0),
  
     covid_aprons= if_else( aprons%in%(c(1,2)) | as%in%(c(1,2)) | 
                               apron%in%(c(1,2)) | overolls%in%(c(1,2)) |
                               aprons_pharm%in%(c(1,2)) 
                               
                            ,1,0),
  
     covid_eye_protection= if_else( eye_protection_goggles_fac%in%(c(1,2)) | tion_goggles_fac%in%(c(1,2)) | 
                               eye_protect%in%(c(1,2)) | eye_protection_goggles%in%(c(1,2)) |
                               eye_protect_goggle_pharm%in%(c(1,2)) 
                               
                            ,1,0),
  
     covid_gumboots_or_clogs= if_else( gumboots_or_clogs%in%(c(1,2)) | gr_clogs%in%(c(1,2)) | 
                               clogs%in%(c(1,2)) | gumboots_or_clog%in%(c(1,2)) |
                               gumboots_pharm%in%(c(1,2)) 
                               
                            ,1,0),
  
     covid_hair_cover= if_else( hair_cover%in%(c(1,2)) | har%in%(c(1,2)) | 
                               hair_covr%in%(c(1,2)) | hair_cover_protective%in%(c(1,2)) |
                               hair_cover_pharm%in%(c(1,2)) 
                               
                            ,1,0)
  

   )%>%select(c(base_var, all_var))%>%mutate( 
       # Step 3: generate scores
      PIP_SARA_score=as.numeric( round((select(.,aggr_var) %>% rowMeans(na.rm=T))*100,1) ),
      PIP_SARAExtra_score=as.numeric( round((select(.,all_var) %>% rowMeans(na.rm=T))*100,1))
   )%>%mutate_at( all_var, to_YesNo)
  • Issue 1: We will use OPD as a proxy for storage of sharps, indicative of other departmens and areas, why not others
  • Issue 1: waste_receptacle_bin: >?
  • Issue 1: single_use_syringe and the rest: Count If it is available in any department/section TODO: I’m including also Emergency, e.t.c

5.2 SARA Indicators Tabulation

facility_name.factor facility_type.factor level sharp_waste_final_disposal infectious_waste_disposal sharps_safety_box waste_receptacle_bin disinfectant single_use_syringe soap_water_alcohol latex_glove PIP_SARA_score
Budalangi Dispensary Level 2 Yes Yes Yes No Yes Yes No No 62.5
Bulwani Dispensary Level 2 Yes No Yes No Yes Yes No No 50.0
Mukhobola Health Centre Level 3 No Yes Yes No Yes Yes No No 50.0
Port Victoria Sub County Hospital Level 4 Yes Yes Yes No Yes Yes No Yes 75.0
Rukala Health Centre Level 3 Yes No Yes No Yes Yes No No 50.0
Sisenye Dispensary Level 2 Yes Yes Yes No Yes Yes No No 62.5
Osieko Dispensary Level 2 Yes Yes Yes No Yes Yes No No 62.5
Khajula Dispensary Level 2 Yes No Yes No Yes Yes No No 50.0
Busagwa Dispensary Level 2 Yes No No No Yes Yes No No 37.5

5.2.1 Disaggregation by facility level

5.3 Non-SARA (Extra) Indicators Tabulation

facility_name.factor facility_type.factor level sharp_waste_final_disposal infectious_waste_disposal sharps_safety_box waste_receptacle_bin disinfectant single_use_syringe soap_water_alcohol latex_glove covid_surgical_masks covid_n95_face_masks covid_protective_gow covid_aprons covid_eye_protection covid_gumboots_or_clogs covid_hair_cover PIP_SARAExtra_score
Budalangi Dispensary Level 2 Yes Yes Yes No Yes Yes No No No No No Yes No Yes No 46.7
Bulwani Dispensary Level 2 Yes No Yes No Yes Yes No No No No Yes Yes No Yes No 46.7
Mukhobola Health Centre Level 3 No Yes Yes No Yes Yes No No Yes No Yes Yes No Yes Yes 60.0
Port Victoria Sub County Hospital Level 4 Yes Yes Yes No Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes 86.7
Rukala Health Centre Level 3 Yes No Yes No Yes Yes No No Yes No Yes Yes No Yes No 53.3
Sisenye Dispensary Level 2 Yes Yes Yes No Yes Yes No No No No No Yes No Yes No 46.7
Osieko Dispensary Level 2 Yes Yes Yes No Yes Yes No No Yes Yes No Yes No Yes No 60.0
Khajula Dispensary Level 2 Yes No Yes No Yes Yes No No No No Yes Yes No No No 40.0
Busagwa Dispensary Level 2 Yes No No No Yes Yes No No No No No Yes No Yes No 33.3

5.3.1 Disaggregation by facility level

6 Essential Medicines

Challenges

"1.) the KHFA survey does not take into account the level of facility and does not correspond with the Kenya Essential Medication list by level of facility

2.) The Kenya UHC tracer drugs which are of interst to the MOH were not all included in the KHFA survey

3.)The KHFA response categories for each drug are many (5 options) making summary and interpretation complex –> how do we dichotomize the responses? What do we care about for measurement? indictor/drug present: response options 1, 3, drug out of stock/not available: 2, 4, 5,

4.) Unclear if part b. of the question (was there a stock out in the last 3 months data was collected.) - in the form only a few have these boxes empty…. was this intentional or an error in survey design?

  1. Some drugs have multiple formulations asked about - how to handle coding of missing/out of stock if one formulation is"

Way forward

"1. Create coding that incorporates level of facility and if drug is supposed to be in that level (and higher facilities) based on KEML, so that when out of stock drugs are indicated, it is appropriate for that level fo facility. Note KEML lists the lowest level of facility a drug should be available at, but also indicates that drug should be available at all higher level facilities as well

  1. create a secondary analysis of stock levels based on UHC tracer drugs (of the ones that were included in KHFA), also incorporating level of facility into if it is out of stock or not
  1. combine response categories as follows: 0= not available or expired (responses 2, 4, 5) 1= available (reported OR observed) (responses 1, 3) what to do with response category 5 "“never available”"? guessing this means it is not stocked due to level of facility?
  1. Lots of missing data on stock out question - this seems like a data collection problem and we should omit this from analysis
  1. Would include drug as being in stock if any formulation is in stock (ie liquid or tablet should count as that drug being in stock)
  1. excluding the drugs that are not on KEML (ie not procured) from the drug drug score indicator (crossed off ones)"

6.1 SARA Coding (R)

# define on SARA
aggr_var=c('calcium_channel_blocker', 'amoxicillin', 'ampicillin_powder', 'aspirin', 'beta_blocker','carbamazepine_tablet','ceftriaxone_injection','diazepam_injection',
'enalapril_tablet','fluoxetine_capsule','gentamycin_injection','haloperidol_tablet',
'insulin_injection_regular','magnesium_sulphate_inj','metformin_tab_cap','omeprazole_tablet'  ,
'oral_rehydration','oxytocin_injection','salbutamol_inhaler','simvastatin',
'thiazide','zinc_sulphate'
           )
# define non-SARA (UHC tracer)
other_var=c('calcium_channel_blocker', 'amoxicillin', 'gentamycin_injection', 'oral_rehydration',
            'oxytocin_injection','zinc_sulphate', 'hydrocortisone_injection', 'tetracycline','chlorhexidine', 
            "benzylpenicillin", "paracetamol", "artemether_lumefrantrine",
            "infusion_normal_saline","adrenaline","cotrimoxazole","metronidazole"
            )
# define score vars
score_var=c('EM_SARA_score','EM_SARAExtra_score','EM_UHC_Tracer_score')
# combine both sara and non-sara (UHC tracer)
all_var=unique(c(aggr_var,other_var))

# indicator calculations
essential_medicines.df = data%>%mutate( 
   # Step 0: clean daata
   #neonatal_bag_and_mask_been_unavailable=replace_na(neonatal_bag_and_mask_been_unavailable, 0),
   
   # Step 1: aggregate SARA components
   calcium_channel_blocker = if_else(level_num>=3, # validate level
                         if_else( calcium_channel_blocker1_e%in%(c(1,3)),1,0),
                         NA_real_),
   
   amoxicillin = if_else(level_num>=2,  # validate level
                         if_else( (amoxicillin_suspension_or___1==1 | amoxicillin_suspension_or___3==1 |
                                        amoxicillin_capsule_500_mg___1 | amoxicillin_capsule_500_mg___3 |
                                        amoxicillin_capsule_250_mg___1 | amoxicillin_capsule_250_mg___3
                                        ),1,0),
                         NA_real_),
   
   ampicillin_powder = if_else(level_num>=4,  # validate level
                         if_else( (ampicillin_powder_for_inje___1==1 | ampicillin_powder_for_inje___3==1 
                                        ),1,0),
                         NA_real_),
   
    aspirin = if_else(level_num>=2,  # validate level
                         if_else( (acetylsalicylic_acid1_aspi==1  ),1,0),
                         NA_real_),
   
   beta_blocker = if_else(level_num>=4,  # validate level
                         if_else( beta_blocker1_e_g_bisoprol%in%(c(1,3)),1,0),
                         NA_real_),
   
   carbamazepine_tablet= if_else(level_num>=4,  # validate level
                         if_else( carbamazepine_tablet1%in%(c(1,3)),1,0),
                         NA_real_),
   
   ceftriaxone_injection = if_else(level_num>=2,  # validate level
                         if_else( (ceftriaxone_injection1_2_3___1==1 | ceftriaxone_injection1_2_3___3==1 
                                        ),1,0),
                         NA_real_),
   
   diazepam_injection = if_else(level_num>=4,  # validate level
                         if_else( diazepam_injection1%in%(c(1,3)),1,0),
                         NA_real_),
   
   enalapril_tablet= if_else(level_num>=3,  # validate level
                         if_else( enalapril_tablet%in%(c(1,3)),1,0),
                         NA_real_),
   
   fluoxetine_capsule = if_else(level_num>=3,  # validate level
                         if_else( fluoxetine_capsule1%in%(c(1,3)),1,0),
                         NA_real_),
   
   gentamycin_injection = if_else(level_num>=2,  # validate level
                         if_else( (gentamycin_injection1_2_3___1==1 | gentamycin_injection1_2_3___3==1 
                                        ),1,0),
                         NA_real_),
   
   haloperidol_tablet = if_else(level_num>=3,  # validate level
                         if_else( haloperidol_tablet1%in%(c(1,3)),1,0),
                         NA_real_),
   
   insulin_injection_regular = if_else(level_num>=3,  # validate level
                         if_else( insulin_injection_regular1%in%(c(1,3)),1,0),
                         NA_real_),
   
   insulin_injection_other_th= if_else(level_num>=4,  # validate level
                         if_else( insulin_injection_other_th%in%(c(1,3)),1,0),
                         NA_real_),
   
   magnesium_sulphate_inj= if_else(level_num>=2,  # validate level
                         if_else( (magnesium_sulphate_inj_mch___1==1 | magnesium_sulphate_inj_mch___3==1 
                                        ),1,0),
                         NA_real_),
   
   metformin_tab_cap= if_else(level_num>=3,  # validate level
                         if_else( metformin_tab_cap1%in%(c(1,3)),1,0),
                         NA_real_),
   
   omeprazole_tablet= if_else(level_num>=3,  # validate level
                         if_else( omeprazole_tablet1%in%(c(1,3)),1,0),
                         NA_real_),
   
   oral_rehydration= if_else(level_num>=1,  # validate level
                         if_else( oral_rehydration_salts1_2%in%(c(1,3)),1,0),
                         NA_real_),
   
   oxytocin_injection= if_else(level_num>=2,  # validate level
                         if_else( (oxytocin_injection1_2_3___1==1 | oxytocin_injection1_2_3___3==1 
                                        ),1,0),
                         NA_real_),
   
   salbutamol_inhaler= if_else(level_num>=4,  # validate level
                         if_else( salbutamol_inhaler1%in%(c(1,3)),1,0),
                         NA_real_),
   
   simvastatin= if_else(level_num>=4,  # validate level
                         if_else( statin1_e_g_simvastatin_ta%in%(c(1,3)),1,0),
                         NA_real_),
   
   thiazide= if_else(level_num>=3,  # validate level
                         if_else( thiazide_diurtetic%in%(c(1,3)),1,0),
                         NA_real_),  
   
   zinc_sulphate = if_else(level_num>=2,  # validate level
                         if_else( zinc_sulphate_tablet2_3%in%(c(1,3)) | zinc_sulphate_syrup_or_dis%in%(c(1,3)) ,1,0),
                         NA_real_),
   
   
   
   
   # Step 2: aggregate non-SARA components
   hydrocortisone_injection= if_else(level_num>=2,  # validate level
                         if_else( hydrocortisone_injection%in%(c(1,3))  ,1,0),
                         NA_real_),
   
   tetracycline= if_else(level_num>=4,  # validate level
                         if_else( (eye_cream_for_newborn_or_f___1==1 | eye_cream_for_newborn_or_f___3==1 
                                        ),1,0),
                         NA_real_),
   
   chlorhexidine= if_else(level_num>=2,  # validate level
                         if_else( (chlorhexidine_solution_for___1==1 | chlorhexidine_solution_for___3==1 
                                        ),1,0),
                         NA_real_),
   
   benzylpenicillin= if_else(level_num>=2,  # validate level
                         if_else( (procaine_benzylpenicillin___1==1 | procaine_benzylpenicillin___3==1 
                                        ),1,0),
                         NA_real_),
   
   paracetamol= if_else(level_num>=2,  # validate level
                         if_else( acetaminophen_paracetamol%in%(c(1,3))  ,1,0),
                         NA_real_),
   
   artemether_lumefrantrine= if_else(level_num>=1,  # validate level
                         if_else( (lufrantrine6___1==1 | lufrantrine6___3==1 |
                                     mether_lumefrantrine12___1==1 | mether_lumefrantrine12___3==1 |
                                     artelumefrantrine18___1==1 | artelumefrantrine18___3==1 |
                                     artefrantrine24___1==1 | artefrantrine24___3==1 
                                        ),1,0),
                         NA_real_),
   
   infusion_normal_saline= if_else(level_num>=1,  # validate level
                         if_else( (sodium_chloride_normal_sal___1==1 | sodium_chloride_normal_sal___3==1 |
                                     dextrose_5_and_normal_sali___1==1 | dextrose_5_and_normal_sali___3==1 
                                    
                                        ),1,0),
                         NA_real_),
   
   adrenaline= if_else(level_num>=2,  # validate level
                         if_else( adrenaline_or_epinephrine%in%(c(1,3))  ,1,0),
                         NA_real_),
   
   cotrimoxazole= if_else(level_num>=2,  # validate level
                         if_else( (cotrimoxazole_cap_tab___1==1 | cotrimoxazole_cap_tab___3==1 
                                        ),1,0),
                         NA_real_),
   
   metronidazole= if_else(level_num>=2,  # validate level
                         if_else( (metronidazole_cap_tab___1==1 | metronidazole_cap_tab___3==1 
                                        ),1,0),
                         NA_real_)

   
   )%>%select(c(base_var, all_var))%>%mutate( 
       # Step 3: generate scores
      EM_SARA_score=as.numeric( round((select(.,aggr_var) %>% rowMeans(na.rm=T))*100,1) ),
      EM_UHC_Tracer_score=as.numeric( round((select(.,other_var) %>% rowMeans(na.rm=T))*100,1) ),
      EM_SARAExtra_score=as.numeric( round((select(.,all_var) %>% rowMeans(na.rm=T))*100,1))
   )%>%mutate_at( all_var, to_YesNo)

6.2 SARA Essential Medicines Indicators Tabulation

facility_name.factor facility_type.factor level calcium_channel_blocker amoxicillin ampicillin_powder aspirin beta_blocker carbamazepine_tablet ceftriaxone_injection diazepam_injection enalapril_tablet fluoxetine_capsule gentamycin_injection haloperidol_tablet insulin_injection_regular magnesium_sulphate_inj metformin_tab_cap omeprazole_tablet oral_rehydration oxytocin_injection salbutamol_inhaler simvastatin thiazide zinc_sulphate EM_SARA_score
Budalangi Dispensary Level 2 NA No NA No NA NA No NA NA NA Yes NA NA No NA NA Yes Yes NA NA NA Yes 50.0
Bulwani Dispensary Level 2 NA Yes NA No NA NA No NA NA NA Yes NA NA Yes NA NA Yes Yes NA NA NA Yes 75.0
Mukhobola Health Centre Level 3 Yes Yes NA Yes NA NA Yes NA Yes No Yes No Yes Yes No No Yes Yes NA NA Yes Yes 75.0
Port Victoria Sub County Hospital Level 4 Yes Yes No No No Yes Yes No Yes No No Yes No Yes Yes No Yes No Yes No Yes Yes 54.5
Rukala Health Centre Level 3 Yes No NA No NA NA No NA Yes No No No No Yes Yes No Yes Yes NA NA Yes Yes 50.0
Sisenye Dispensary Level 2 NA Yes NA No NA NA No NA NA NA No NA NA No NA NA Yes Yes NA NA NA Yes 50.0
Osieko Dispensary Level 2 NA Yes NA No NA NA No NA NA NA Yes NA NA No NA NA Yes Yes NA NA NA Yes 62.5
Khajula Dispensary Level 2 NA Yes NA NA NA NA Yes NA NA NA No NA NA No NA NA Yes No NA NA NA Yes 57.1
Busagwa Dispensary Level 2 NA Yes NA Yes NA NA No NA NA NA Yes NA NA No NA NA Yes Yes NA NA NA Yes 75.0

6.2.1 Disaggregation by facility level

6.3 Kenya UHC Tracer Drugs Indicators Tabulation

facility_name.factor facility_type.factor level calcium_channel_blocker amoxicillin ampicillin_powder aspirin beta_blocker carbamazepine_tablet ceftriaxone_injection diazepam_injection enalapril_tablet fluoxetine_capsule gentamycin_injection haloperidol_tablet insulin_injection_regular magnesium_sulphate_inj metformin_tab_cap omeprazole_tablet oral_rehydration oxytocin_injection salbutamol_inhaler simvastatin thiazide zinc_sulphate hydrocortisone_injection tetracycline chlorhexidine benzylpenicillin paracetamol artemether_lumefrantrine infusion_normal_saline adrenaline cotrimoxazole metronidazole EM_UHC_Tracer_score
Budalangi Dispensary Level 2 NA No NA No NA NA No NA NA NA Yes NA NA No NA NA Yes Yes NA NA NA Yes No NA No No No No Yes No No No 35.7
Bulwani Dispensary Level 2 NA Yes NA No NA NA No NA NA NA Yes NA NA Yes NA NA Yes Yes NA NA NA Yes Yes NA Yes No Yes Yes Yes Yes Yes Yes 92.9
Mukhobola Health Centre Level 3 Yes Yes NA Yes NA NA Yes NA Yes No Yes No Yes Yes No No Yes Yes NA NA Yes Yes No NA Yes No Yes Yes Yes No Yes No 73.3
Port Victoria Sub County Hospital Level 4 Yes Yes No No No Yes Yes No Yes No No Yes No Yes Yes No Yes No Yes No Yes Yes Yes Yes Yes No Yes Yes Yes No Yes Yes 75.0
Rukala Health Centre Level 3 Yes No NA No NA NA No NA Yes No No No No Yes Yes No Yes Yes NA NA Yes Yes No NA No No Yes Yes Yes Yes No Yes 60.0
Sisenye Dispensary Level 2 NA Yes NA No NA NA No NA NA NA No NA NA No NA NA Yes Yes NA NA NA Yes No NA Yes No Yes No Yes Yes No Yes 64.3
Osieko Dispensary Level 2 NA Yes NA No NA NA No NA NA NA Yes NA NA No NA NA Yes Yes NA NA NA Yes Yes NA Yes No Yes Yes Yes No Yes Yes 85.7
Khajula Dispensary Level 2 NA Yes NA NA NA NA Yes NA NA NA No NA NA No NA NA Yes No NA NA NA Yes No NA No No No No Yes No Yes Yes 42.9
Busagwa Dispensary Level 2 NA Yes NA Yes NA NA No NA NA NA Yes NA NA No NA NA Yes Yes NA NA NA Yes Yes NA Yes No Yes Yes Yes No No Yes 78.6

6.3.1 Disaggregation by facility level

6.4 Non-SARA (Extra: SARA + KE UHC) Indicators Tabulation

facility_name.factor facility_type.factor level calcium_channel_blocker amoxicillin ampicillin_powder aspirin beta_blocker carbamazepine_tablet ceftriaxone_injection diazepam_injection enalapril_tablet fluoxetine_capsule gentamycin_injection haloperidol_tablet insulin_injection_regular magnesium_sulphate_inj metformin_tab_cap omeprazole_tablet oral_rehydration oxytocin_injection salbutamol_inhaler simvastatin thiazide zinc_sulphate hydrocortisone_injection tetracycline chlorhexidine benzylpenicillin paracetamol artemether_lumefrantrine infusion_normal_saline adrenaline cotrimoxazole metronidazole EM_SARA_score
Budalangi Dispensary Level 2 NA No NA No NA NA No NA NA NA Yes NA NA No NA NA Yes Yes NA NA NA Yes No NA No No No No Yes No No No 50.0
Bulwani Dispensary Level 2 NA Yes NA No NA NA No NA NA NA Yes NA NA Yes NA NA Yes Yes NA NA NA Yes Yes NA Yes No Yes Yes Yes Yes Yes Yes 75.0
Mukhobola Health Centre Level 3 Yes Yes NA Yes NA NA Yes NA Yes No Yes No Yes Yes No No Yes Yes NA NA Yes Yes No NA Yes No Yes Yes Yes No Yes No 75.0
Port Victoria Sub County Hospital Level 4 Yes Yes No No No Yes Yes No Yes No No Yes No Yes Yes No Yes No Yes No Yes Yes Yes Yes Yes No Yes Yes Yes No Yes Yes 54.5
Rukala Health Centre Level 3 Yes No NA No NA NA No NA Yes No No No No Yes Yes No Yes Yes NA NA Yes Yes No NA No No Yes Yes Yes Yes No Yes 50.0
Sisenye Dispensary Level 2 NA Yes NA No NA NA No NA NA NA No NA NA No NA NA Yes Yes NA NA NA Yes No NA Yes No Yes No Yes Yes No Yes 50.0
Osieko Dispensary Level 2 NA Yes NA No NA NA No NA NA NA Yes NA NA No NA NA Yes Yes NA NA NA Yes Yes NA Yes No Yes Yes Yes No Yes Yes 62.5
Khajula Dispensary Level 2 NA Yes NA NA NA NA Yes NA NA NA No NA NA No NA NA Yes No NA NA NA Yes No NA No No No No Yes No Yes Yes 57.1
Busagwa Dispensary Level 2 NA Yes NA Yes NA NA No NA NA NA Yes NA NA No NA NA Yes Yes NA NA NA Yes Yes NA Yes No Yes Yes Yes No No Yes 75.0

6.4.1 Disaggregation by facility level

7 Maternal health readiness

maternity servies: resposes of Yes (1) to any 4500 OR 4501 OR 4502 OR 4504 OR KEN4504

routine delivery practice: resposes of Yes (1) to 4510-01 AND A4510-02 AND 4510-03

blood transfusions: resposes of Yes (1) to 6000 AND 6003!=1

cesarian section services resposes of Yes (1) t 5030 AND 5031 AND 5032 AND 5033

drugs and commoditiies for maternal care to count for this indicator, must have in stock IV infusion set(4571-16 AND eitehr dextrose (17), OR Sodum Choride (18) OR other plasma expander (19(

Scoring: Domain score = Mean score of items as percentage: mean*100

7.1 SARA Coding (R)

# define on SARA
aggr_var=c('maternity_servies', 'routine_delivery', 'blood_transfusions', 'cesarian_section', 'maternal_care_drugs')
# define non-SARA
other_var=c()
# define score vars
score_var=c('MH_SARA_score')
# combine both sara and non-sara
all_var=unique(c(aggr_var,other_var))
# indicator calculations
marternal_health.df = data%>%mutate( 
   
   # Step 0: clean data
   offer_blood_transfusion=replace_na(offer_blood_transfusion, 9999),
   have_there_been_any_interr=replace_na(have_there_been_any_interr, 9999),
   facility_conduct_cs=replace_na(facility_conduct_cs, 9999),
   professional_for_cs=replace_na(professional_for_cs, 9999),
   profesional_cs_in_today=replace_na(profesional_cs_in_today, 9999),
   have_anaesthetist=replace_na(have_anaesthetist, 9999),
   
   # Step 1: aggregate SARA components
   maternity_servies = if_else((offer_delivery_services==1 | bemoc==1 | cemoc==1 | wholeday_delivery_service==1 | basic_maternity_care%in%c(1,2)) ,1,0),
   routine_delivery = if_else((active_management_of_third==1 & administration_of_oxytocin==1 & monitor_and_manage_labour==1 ) ,1,0),
   blood_transfusions = if_else((offer_blood_transfusion==1 & have_there_been_any_interr!=1 ) ,1,0),
   cesarian_section= if_else((facility_conduct_cs==1 & professional_for_cs==1 & profesional_cs_in_today==1 & have_anaesthetist==1) ,1,0),
   maternal_care_drugs =  if_else(((antic_eye_ointment_fo___1==1 | antic_eye_ointment_fo___3==1) & ( maium_sulphate_injecti___1==1 |  maium_sulphate_injecti___3==1) &
                                   (skinsinfectant___1==1 | skinsinfectant___3==1 ) &  (intra_infusion_set___1==1 |  intra_infusion_set___3==1) &
                                      (dse_and_water_5_d5w_i___1==1 |  dse_and_water_5_d5w_i___3==1 |  sochloride_09ns_intra___1==1|  sochloride_09ns_intra___3==1
                                       |  other_a_expander_such___1==1|  other_a_expander_such___3==1)
                                   ) ,1,0)
   
   # Step 2: aggregate non-SARA components
   # No non-sara for amenities
   
   )%>%select(c(base_var, all_var))%>%mutate( 
       # Step 3: generate scores
      MH_SARA_score=as.numeric( round((select(.,aggr_var) %>% rowMeans(na.rm=T))*100,1) )
   )%>%mutate_at( all_var, to_YesNo)
  • Issue 2: routine delivery practice –> is it OR / AND : admn of oxytocin after birth, use of a partograph * Issue 3: what did we say about =REPORTED AVAILABLE BUT NOT SEEN

  • Issue 5: have there bee ninterruptions on availability of blood during past 3 months –> fails for all

  • Issue 5: professional to doc C-section avaialble 24 hrs? –> fails for all

7.2 SARA Indicators Tabulation

facility_name.factor facility_type.factor level maternity_servies routine_delivery blood_transfusions cesarian_section maternal_care_drugs MH_SARA_score
Budalangi Dispensary Level 2 Yes Yes No No No 40
Bulwani Dispensary Level 2 Yes Yes No No Yes 60
Mukhobola Health Centre Level 3 Yes Yes No No No 40
Port Victoria Sub County Hospital Level 4 Yes Yes No No No 40
Rukala Health Centre Level 3 Yes Yes No No Yes 60
Sisenye Dispensary Level 2 Yes Yes No No No 40
Osieko Dispensary Level 2 Yes Yes No No No 40
Khajula Dispensary Level 2 Yes Yes No No No 40
Busagwa Dispensary Level 2 Yes Yes No No No 40

7.2.1 Disaggregation by facility level

7.3 Non-SARA (Extra) Indicators Tabulation

We do not have

8 Overall Service Readiness

facility_name.factor facility_type.factor level BE_SARA_score BA_SARA_score MH_SARA_score DC_SARA_score EM_SARA_score Overall_SARA_score
Budalangi Dispensary Level 2 66.7 28.6 40 37.5 50.0 44.6
Bulwani Dispensary Level 2 16.7 28.6 60 75.0 75.0 51.1
Mukhobola Health Centre Level 3 100.0 71.4 40 100.0 75.0 77.3
Port Victoria Sub County Hospital Level 4 66.7 71.4 40 100.0 54.5 66.5
Rukala Health Centre Level 3 83.3 57.1 60 50.0 50.0 60.1
Sisenye Dispensary Level 2 66.7 28.6 40 50.0 50.0 47.1
Osieko Dispensary Level 2 100.0 42.9 40 25.0 62.5 54.1
Khajula Dispensary Level 2 0.0 57.1 40 50.0 57.1 40.8
Busagwa Dispensary Level 2 66.7 28.6 40 50.0 75.0 52.1

8.1 Disaggregation by facility level

9 Appendix