This project aims to run an analysis to Water, Sanitation, Hygiene, Healthcare Waste Management and Environmental Cleaning (WASH) assessment in healthcare facilities. The analysis follows the World Health Organization (WHO) and the United Nations Children’s Fund (UNICEF) Joint Monitoring Programme for Water Supply, Sanitation and Hygiene (JMP) methodology to produce basic, limited and no service estimates. The sample is nationally representative according to the JMP methodology.
Methods
The dataset contains the results of a WASH assessment in healthcare facilities carried out in one of the Member States. The WASH indicators are:
Each stratifier includes more than 50 facilities. According to the JMP methodology, estimates can be produced for each stratifier.
Code
total_sample <- data |>count()total_urban <- data |>filter(`urban/rural`=="Urban") |>count()total_rural <- data |>filter(`urban/rural`=="Rural") |>count()total_hospital <- data |>filter(`hospital/non-hospital`=="Hospital") |>count()total_nonhospital <- data |>filter(`hospital/non-hospital`=="Non-Hospital") |>count()total_public <- data |>filter(`public/private`=="Public") |>count()total_private <- data |>filter(`public/private`=="Private") |>count()
Water Data
Improved sources
Calculating improved water source for each stratifier
#calculate cleaning protocolsGC2 <- data |>select(GC2, `urban/rural`, `hospital/non-hospital`, `public/private`)total_gc2 <- GC2 |>count(GC2) |>mutate(Total = (n /sum(n))*100) |>select(GC2, Total) |>filter(GC2 =="Yes, all have been trained")urban_gc2 <- GC2 |>filter(`urban/rural`=="Urban") |>count(GC2) |>mutate(Urban = (n /sum(n))*100)|>select(GC2, Urban) |>filter(GC2 =="Yes, all have been trained")rural_gc2 <- GC2 |>filter(`urban/rural`=="Rural") |>count(GC2) |>mutate(Rural = (n /sum(n))*100)|>select(GC2, Rural)|>filter(GC2 =="Yes, all have been trained")hospital_gc2 <- GC2 |>filter(`hospital/non-hospital`=="Hospital") |>count(GC2) |>mutate(Hospital = (n /sum(n))*100)|>select(GC2, Hospital)|>filter(GC2 =="Yes, all have been trained")nonhospital_gc2 <- GC2 |>filter(`hospital/non-hospital`=="Non-Hospital") |>count(GC2) |>mutate(Nonhospital = (n /sum(n))*100)|>select(GC2, Nonhospital)|>filter(GC2 =="Yes, all have been trained")public_gc2 <- GC2 |>filter(`public/private`=="Public") |>count(GC2) |>mutate(Public = (n /sum(n))*100)|>select(GC2, Public)|>filter(GC2 =="Yes, all have been trained")private_gc2 <- GC2 |>filter(`public/private`=="Private") |>count(GC2) |>mutate(Private = (n /sum(n))*100)|>select(GC2, Private)|>filter(GC2 =="Yes, all have been trained")# joiningtraining <- total_gc2 |>left_join(urban_gc2) |>left_join(rural_gc2) |>left_join(hospital_gc2) |>left_join(nonhospital_gc2) |>left_join(public_gc2) |>left_join(private_gc2) |>mutate(Indicator ="Training",GC2 =NULL) |>relocate(Indicator, .before = Total)
Basic and limited services
Calculating basic and limited service for each stratifier
Code
# calculating basicGC12 <- data |>select(GC1, GC2, `urban/rural`, `hospital/non-hospital`, `public/private`)basic_total <- GC12 |>filter(GC1 =="Yes") |>filter(GC2 =="Yes, all have been trained") |>count(GC1) |>mutate(Total = (n / total_sample)*100) |>select(GC1, Total)basic_urban <- GC12 |>filter(`urban/rural`=="Urban") |>filter(GC1 =="Yes") |>filter(GC2 =="Yes, all have been trained") |>count(GC1) |>mutate(Urban = (n / total_urban)*100) |>select(GC1, Urban)basic_rural <- GC12 |>filter(`urban/rural`=="Rural") |>filter(GC1 =="Yes") |>filter(GC2 =="Yes, all have been trained") |>count(GC1) |>mutate(Rural = (n / total_rural)*100) |>select(GC1, Rural)basic_hospital <- GC12 |>filter(`hospital/non-hospital`=="Hospital") |>filter(GC1 =="Yes") |>filter(GC2 =="Yes, all have been trained") |>count(GC1) |>mutate(Hospital = (n / total_hospital)*100) |>select(GC1, Hospital)basic_nonhospital <- GC12 |>filter(`hospital/non-hospital`=="Non-Hospital") |>filter(GC1 =="Yes") |>filter(GC2 =="Yes, all have been trained") |>count(GC1) |>mutate(Nonhospital = (n / total_nonhospital)*100) |>select(GC1, Nonhospital)basic_public <- GC12 |>filter(`public/private`=="Public") |>filter(GC1 =="Yes") |>filter(GC2 =="Yes, all have been trained") |>count(GC1) |>mutate(Public = (n / total_public)*100) |>select(GC1, Public)basic_private <- GC12 |>filter(`public/private`=="Private") |>filter(GC1 =="Yes") |>filter(GC2 =="Yes, all have been trained") |>count(GC1) |>mutate(Private = (n / total_private)*100) |>select(GC1, Private)# joiningbasic_cleaning <- basic_total |>left_join(basic_urban) |>left_join(basic_rural) |>left_join(basic_hospital) |>left_join(basic_nonhospital) |>left_join(basic_public) |>left_join(basic_private) |>mutate(Indicator ="Basic",GC1 =NULL,Total = Total$n,Urban = Urban$n,Rural = Rural$n,Hospital = Hospital$n,Nonhospital = Nonhospital$n,Public = Public$n,Private = Private$n) |>relocate(Indicator, .before = Total)# calculating no serviceno_service_total <- GC12 |>filter(GC1 =="No") |>filter(GC2 !="Yes, all have been trained") |>count(GC1) |>mutate(Total = (n / total_sample)*100,GC1 =NULL,n =NULL,Indicator ="No service") |>relocate(Indicator, .before = Total)no_service_urban <- GC12 |>filter(`urban/rural`=="Urban") |>filter(GC1 =="No") |>filter(GC2 !="Yes, all have been trained") |>count(GC1) |>mutate(Urban = (n / total_urban)*100,GC1 =NULL,n =NULL,Indicator ="No service") |>relocate(Indicator, .before = Urban)no_service_rural <- GC12 |>filter(`urban/rural`=="Rural") |>filter(GC1 =="No") |>filter(GC2 !="Yes, all have been trained") |>count(GC1) |>mutate(Rural = (n / total_rural)*100,GC1 =NULL,n =NULL,Indicator ="No service") |>relocate(Indicator, .before = Rural)no_service_hospital <- GC12 |>filter(`hospital/non-hospital`=="Hospital") |>filter(GC1 =="No") |>filter(GC2 !="Yes, all have been trained") |>count(GC1) |>mutate(Hospital = (n / total_hospital)*100,GC1 =NULL,n =NULL,Indicator ="No service") |>relocate(Indicator, .before = Hospital)no_service_nonhospital <- GC12 |>filter(`hospital/non-hospital`=="Non-Hospital") |>filter(GC1 =="No") |>filter(GC2 !="Yes, all have been trained") |>count(GC1) |>mutate(Nonhospital = (n / total_nonhospital)*100,GC1 =NULL,n =NULL,Indicator ="No service") |>relocate(Indicator, .before = Nonhospital)no_service_public <- GC12 |>filter(`public/private`=="Public") |>filter(GC1 =="No") |>filter(GC2 !="Yes, all have been trained") |>count(GC1) |>mutate(Public = (n / total_public)*100,GC1 =NULL,n =NULL,Indicator ="No service") |>relocate(Indicator, .before = Public)no_service_private <- GC12 |>filter(`public/private`=="Private") |>filter(GC1 =="No") |>filter(GC2 !="Yes, all have been trained") |>count(GC1) |>mutate(Private = (n / total_private)*100,GC1 =NULL,n =NULL,Indicator ="No service") |>relocate(Indicator, .before = Private)# joiningno_service_cleaning <- no_service_total |>left_join(no_service_urban) |>left_join(no_service_rural) |>left_join(no_service_hospital) |>left_join(no_service_nonhospital) |>left_join(no_service_public) |>left_join(no_service_private) |>mutate(Total = Total$n,Urban = Urban$n,Rural = Rural$n,Hospital = Hospital$n,Nonhospital = Nonhospital$n,Public = Public$n,Private = Private$n)# calculating limitedlimited_cleaning <-tibble(Total =100- (basic_cleaning[2] + no_service_cleaning[2]),Urban =100- (basic_cleaning[3] + no_service_cleaning[3]),Rural =100- (basic_cleaning[4] + no_service_cleaning[4]),Hospital =100- (basic_cleaning[5] + no_service_cleaning[5]),Nonhospital =100- (basic_cleaning[6] + no_service_cleaning[6]),Public =100- (basic_cleaning[7] + no_service_cleaning[7]),Private =100- (basic_cleaning[8] + no_service_cleaning[8])) |>mutate(Indicator ="Limited",Total = Total$Total,Urban = Urban$Urban,Rural = Rural$Rural,Hospital = Hospital$Hospital,Nonhospital = Nonhospital$Nonhospital,Public = Public$Public,Private = Private$Private) |>relocate(Indicator, .before = Total)
Results
Water indicators
See Table 1 summarizes all water indicators resulted from the analysis.
Significant disparities in water indicators exist in terms of the types of facilities; facilities located in urban areas as well as hospitals are more likely to meet the criteria for basic water service than facilities located in rural areas and smaller health care facilities, respectively.
See Table 2 summarizes all sanitation indicators resulted from the analysis.
Significant disparities in sanitation indicators exist in terms of the types of facilities; facilities located in urban areas as well as hospitals are more likely to meet the criteria for basic sanitation service than facilities located in rural areas and smaller health care facilities, respectively.
See Table 3 summarizes all hygiene indicators resulted from the analysis.
Significant disparities in hygiene indicators exist in terms of the types of facilities; facilities located in urban areas as well as hospitals are more likely to meet the criteria for basic hygiene service than facilities located in rural areas and smaller health care facilities, respectively.
Handwashing facilities with water and soap at points of care
48.9
59.3
28.2
62.1
42.9
47.3
51.3
Handwashing facilities within 5 metres of toilets
74.6
74.5
74.8
78.9
72.6
78.7
68.1
Handwashing facilities within 5 metres of toilets with water and soap
46.3
57.8
23.3
62.1
39.2
47.3
44.5
Basic
42.0
52.0
22.3
56.8
35.4
41.5
42.9
Limited
11.1
13.2
6.8
10.5
11.3
11.7
10.1
No service
46.9
34.8
70.9
32.6
53.3
46.8
47.1
Healthcare waste management indicators
See Table 4 summarizes all healthcare waste indicators resulted from the analysis.
Minor disparities in waste indicators exist in terms of the types of facilities; however, facilities located in urban areas as well as hospitals are more likely to meet the criteria for basic healthcare waste service than facilities located in rural areas and smaller health care facilities, respectively.
See Table 5 summarizes environmental cleaning indicators resulted from the analysis.
Minor disparities in environmental cleaning indicators exist in terms of the types of facilities; however, facilities located in urban areas as well as hospitals are more likely to meet the criteria for basic environmental cleaning service than facilities located in rural areas and smaller health care facilities, respectively.
See Figure 1 illustrates basic water ladder resulted from the analysis. Significant disparities are depicted in the basic water ladders across all settings.
See Figure 3 illustrates basic hygiene ladder resulted from the analysis. Significant disparities are depicted in the basic hygiene ladders across all settings.