5 Data Collection and Processing

library(magrittr)
library(dplyr)
library(kableExtra)
library(readxl)
library(sjmisc)
library(purrr)
library(tidyr)


main_dataset <- read.csv("inputs/UKR2007_MSNA20_HH_dataset_main_rcop.csv", na.strings = "", stringsAsFactors = F)

questions <- read_xlsx("inputs/UKR2007_MSNA20_HH_Questionnaire_24JUL2020.xlsx",sheet="survey")
choices <- read_xlsx("inputs/UKR2007_MSNA20_HH_Questionnaire_24JUL2020.xlsx",sheet="choices")
#** un-comment those if you need them to be installed
# devtools::install_github("https://github.com/impact-initiatives/xlsformfill/")
# devtools::install_github("https://github.com/impact-initiatives/cleaninginspectoR/")
  • Notes on cleaninginspectoR:
  • The function will return a dataframe with indexes not the uuid.
  • cleanninginspectoR uses function from the magrittr and dplyr packages. Don’t forget to load them before using it.

5.1 Testing the tool

5.1.1 Creating dummy data

xlsformfill has a function xlsform_fill that will create dataset based on your KOBO questionnaire. It takes 3 arguments: your questions, your choices and how many rows you want.

Notes: - All questions will be filled. - Skip logic are not implemented. - Constraints are not implemented. - Integers and text will be generated randomly

dummy_dataset <- xlsformfill::xlsform_fill(questions = questions, choices = choices, n = 300)
dummy_dataset %>% head(10)
start end deviceid enum_office_city enum_id a1_informed_consent a2_hh_representative_name a3_consent_to_follow_up_calls a3_1_phone a4_are_you_hohh a5_respond_behalf_hh b4_gender b5_age b7_hohh_age b8_hohh_sex b9_hohh_marital_status b10_hohh_vulnerability b10_hohh_vulnerability/no b10_hohh_vulnerability/older_person b10_hohh_vulnerability/disability_not_including_chronic_illness b10_hohh_vulnerability/unemployed b10_hohh_vulnerability/veteran_of_war_ato b10_hohh_vulnerability/single_parent b10_hohh_vulnerability/family_with_3_or_more_children b10_hohh_vulnerability/family_with_foster_children b10_hohh_vulnerability/chronic_illness b10_hohh_vulnerability/other_specify b10_1_hohh_vulnerability_other b11_hohh_chronic_illness b11_hohh_chronic_illness/blood_pressure_diseases b11_hohh_chronic_illness/cardiovascular_disease b11_hohh_chronic_illness/diabetes_need_insulin b11_hohh_chronic_illness/diabetes_does_not_need_insulin b11_hohh_chronic_illness/chronic_respiratory_condition b11_hohh_chronic_illness/musculoskeletal_system_and_joints b11_hohh_chronic_illness/cancer b11_hohh_chronic_illness/neurological b11_hohh_chronic_illness/sensory_disorder b11_hohh_chronic_illness/gastrointestinal_digestive_tract_incl_liver_gallbladder_pancreas_diseases b11_hohh_chronic_illness/genitourinary_system_diseases b11_hohh_chronic_illness/endocrine_system_thyroid_gland_and_other_diseases b11_hohh_chronic_illness/other_specify b11_1_hohh_chronic_illness_other b12_situation_description b12_1_situation_description_other b13_why_hohh_unemployed b13_1_why_hohh_unemployed_other b14_sector_hohh_employed b14_1_sector_hohh_employed_other b15_hohh_income b16_hohh_pension_eligible b17_hohh_pension_receive b18_hohh_benefit_eligible b19_hohh_benefit_receive b20_hohh_level_education hohh_age_18 age_18 b21_num_additional_hh_members c1_hh_memb_age age_5_18 age_5_12 age_13_15 age_16_18 c2_hh_memb_sex c3_hh_member_description c4_hh_member_description_other c5_hh_memb_income age_5_18_number age_5_12_number age_13_15_number age_16_18_number d1_hh_displacement_status d2_year_first_displaced d2_1_year_first_displaced_other e1_shelter_type e1_1_shelter_type_other e2_home_type e2_1_home_type_other e3_shelter_enclosure_issues e3_shelter_enclosure_issues/no_issues e3_shelter_enclosure_issues/lack_of_insulation_from_cold e3_shelter_enclosure_issues/leaks_during_light_rain_snow e3_shelter_enclosure_issues/leaks_during_heavy_rain_snow e3_shelter_enclosure_issues/limited_ventilation_less_than_05m2_ventilation_in_each_room_including_kitchen e3_shelter_enclosure_issues/presence_of_dirt_or_debris_removable e3_shelter_enclosure_issues/presence_of_dirt_or_debris_nonremovable e3_shelter_enclosure_issues/none_of_the_above e3_shelter_enclosure_issues/other_specify e3_shelter_enclosure_issues/dont_know e3_1_shelter_enclosure_issues_other e4_damaged_accomodation e4_damaged_accomodation/none e4_damaged_accomodation/opening_or_cracks_in_roof e4_damaged_accomodation/roof_partially_collapsed e4_damaged_accomodation/broken_or_cracked_windows e4_damaged_accomodation/exterior_doors_broken_unable_to_shut_properly e4_damaged_accomodation/exterior_doors_or_windows_missing e4_damaged_accomodation/large_cracks_openings_in_most_walls e4_damaged_accomodation/some_cracks_in_some_walls e4_damaged_accomodation/some_walls_fully_collapsed e4_damaged_accomodation/damaged_floors e4_damaged_accomodation/severe_structural_damage_and_unsafe_for_living e4_damaged_accomodation/total_structural_collapse e4_damaged_accomodation/foundation_damaged_or_shifted e4_damaged_accomodation/gas_water_or_sewage_system_damaged e4_damaged_accomodation/electricity_supply_line_damaged_and_not_functional e4_damaged_accomodation/other_specify_none_of_the_above e4_damaged_accomodation/dont_know_prefer_not_to_say e4_1_damaged_accomodation_other e5_damaged_accomodation_severity e6_ownership_documents e7_rent_agreement e8_ownership_documents_name e9_cost_of_month_rent e9_1_hh_have_ability_to_pay_rent e10_gpc_eviction_risk e11_items_do_not_have_per_hh e11_items_do_not_have_per_hh/refigerator e11_items_do_not_have_per_hh/functional_stove e11_items_do_not_have_per_hh/functional_heater_movable e11_items_do_not_have_per_hh/hh_has_all_items e12_items_not_every_hh_member e12_items_not_every_hh_member/mattress e12_items_not_every_hh_member/bedsheets e12_items_not_every_hh_member/towel e12_items_not_every_hh_member/blanket e12_items_not_every_hh_member/winter_jacket e12_items_not_every_hh_member/warm_winter_boots e12_items_not_every_hh_member/thick_socks e12_items_not_every_hh_member/warm_gloves e12_items_not_every_hh_member/warm_scarf e12_items_not_every_hh_member/thermal_underwear e12_items_not_every_hh_member/adult_warm_clothing e12_items_not_every_hh_member/child_warm_clothing e12_items_not_every_hh_member/each_member_has_all_items e13_need_but_do_not_have e13_need_but_do_not_have/adult_diapers e13_need_but_do_not_have/child_diapers e13_need_but_do_not_have/sanitary_pads e13_need_but_do_not_have/none_needed f1_utility_services_used f1_utility_services_used/central_heating f1_utility_services_used/centralised_piped_hot_water_supply f1_utility_services_used/centralised_piped_cold_water_supply f1_utility_services_used/electricity f1_utility_services_used/gas f1_utility_services_used/none f2_spend_on_utilities f2_1_why_if_spend_on_utilities_0 f3_spend_on_heating f3_1_if_0_for_heating f4_type_fuel_heating f4_type_fuel_heating/central_heating f4_type_fuel_heating/electricity f4_type_fuel_heating/gas f4_type_fuel_heating/kerosene f4_type_fuel_heating/wood f4_type_fuel_heating/coal f4_type_fuel_heating/briquettes_not_coal f4_type_fuel_heating/briquettes_coal f4_type_fuel_heating/other_specify f4_2_type_fuel_heating_other f5_type_fuel_heating_amount f6_how_many_wood_hh_consumed_last_winter f7_how_many_briquettes_hh_consumed_last_winter f7_1_how_many_briquettes_coal_hh_consumed_last_winter f8_do_you_receive_state_subsidies_for_utilities_gas f9_electricity_shortages f10_gas_shortages f11_dinking_water_source f11_1_dinking_water_source_other f12_drinking_water_treat f12_drinking_water_treat/do_not_process_purify f12_drinking_water_treat/cleaning_with_chemicals_chlorination f12_drinking_water_treat/water_precipitation f12_drinking_water_treat/filtering_the_water_pitcher_filter f12_drinking_water_treat/filtering_the_water_reverse_osmosis_filter f12_drinking_water_treat/boiling f12_drinking_water_treat/percolation f12_drinking_water_treat/other_specify f12_drinking_water_treat/dont_know_ns f12_drinking_water_treat/refuse_to_answer f12_1_drinking_water_treat_other f13_treatment_whynot f13_1_treatment_whynot_other f14_technical_water_source f14_1_technical_water_source_other f15_water_shortages f16_duration_water_shortages f17_store_drinking_water f17_store_drinking_water/do_not_store_water f17_store_drinking_water/plastic_bottles f17_store_drinking_water/glass_bottles f17_store_drinking_water/a_bucket_with_a_lid f17_store_drinking_water/a_bucket_without_a_lid f17_store_drinking_water/a_canister f17_store_drinking_water/a_barrel_tank f17_store_drinking_water/we_fill_in_the_bathtub f17_store_drinking_water/other_specify f17_store_drinking_water/dont_know_ns f17_store_drinking_water/refuse_to_answer f17_1_store_drinking_water_other f18_water_sufficient f18_water_sufficient/drinking f18_water_sufficient/cooking f18_water_sufficient/personal_hygiene f18_water_sufficient/other_domestic_purposes f18_water_sufficient/none_of_the_previous f18_water_sufficient/dont_know_ns f19_type_toilets f19_1_type_toilets_other f20_problms_pump_sewage f21_method_garbage_dispose g1_cereals_consumption g2_roots_consumption g3_vegetables_consumption g4_fruits_consumption g5_meat_consumption g6_eggs_consumption g7_pulses_consumption g8_dairy_consumption g9_oil_consumption g10_sugar_consumption g11_condiments_consumption h1_nofood_noresources h1_1_how_often_nofood_noresources h2_sleep_hungry h2_1_how_often_sleep_hungry h3_day_and_night_hungry h3_1_how_often_day_and_night_hungry i1_coping_strategies i2_spent_savings i3_borrowed_food i4_live_another_family i5_sold_assets i6_removed_children_from_school_kindergarten i7_reduced_health_care i8_reduced_education i9_sold_house i10_hh_migrated i11_moved_for_work i12_risk_job j1_edu_facility_hh_access j1_edu_facility_hh_access/none j1_edu_facility_hh_access/kindergarten j1_edu_facility_hh_access/school j1_edu_facility_hh_access/boarding_school j1_edu_facility_hh_access/specialized_school_for_children_with_disabilities j1_edu_facility_hh_access/vocational_school j1_1_edu_facility_not_access_why j1_1_edu_facility_not_access_why/school_too_far_and_no_transport j1_1_edu_facility_not_access_why/cannot_afford_supplies j1_1_edu_facility_not_access_why/children_at_home_as_carer j1_1_edu_facility_not_access_why/children_working_at_home j1_1_edu_facility_not_access_why/children_in_paid_employment j1_1_edu_facility_not_access_why/children_has_disability_that_school_does_not_have_infrastructure_for j1_1_edu_facility_not_access_why/other_specify j1_2_other_edu_facility_not_access_why j2_precovid_number_children_school j2_1_boys_5_12_precovid_attend j2_2_girls_5_12_precovid_attend j2_3_boys_13_15_precovid_attend j2_4_girls_13_15_precovid_attend j2_5_boys_16_18_precovid_attend j2_6_girls_16_18_precovid_attend j3_precovid_number_children_dropped j3_1_boys_5_12_precovid_dropped j3_2_girls_5_12_precovid_dropped j3_3_boys_13_15_precovid_dropped j3_4_girls_13_15_precovid_dropped j3_5_boys_16_18_precovid_dropped j3_6_girls_16_18_precovid_dropped j4_number_children_follow_curriculum j4_1_boys_5_12_follow_curriculum j4_2_girls_5_12_follow_curriculum j4_3_boys_13_15_follow_curriculum j4_4_girls_13_15_follow_curriculum j4_5_boys_16_18_follow_curriculum j4_6_girls_16_18_follow_curriculum j5_unable_attend_school_more_than_month j5_1_boys_5_12_unable_attend_school_more_than_month j5_2_girls_5_12_unable_attend_school_more_than_month j5_3_boys_13_15_unable_attend_school_more_than_month j5_4_girls_13_15_unable_attend_school_more_than_month j5_5_boys_16_18_unable_attend_school_more_than_month j5_6_girls_16_18_unable_attend_school_more_than_month j6_reason_gap_education j6_reason_gap_education/school_closed_due_to_security j6_reason_gap_education/school_closed_other j6_reason_gap_education/insufficient_teachers j6_reason_gap_education/security_concerns_by_parent j6_reason_gap_education/school_is_damaged j6_reason_gap_education/health_issues j6_reason_gap_education/family_personal_reasons j6_reason_gap_education/too_expensive_school_fees_supplies_transport_etc j6_reason_gap_education/transport_unavavailable j6_reason_gap_education/a_child_contributes_to_hh_income j6_reason_gap_education/other_specify j6_reason_gap_education/refuse_to_answer j6_1_reason_gap_education_other j7_gap_education_length j8_problems_school j8_problems_school/no_problems j8_problems_school/distance_to_school j8_problems_school/quality_of_teaching_staff j8_problems_school/quantity_of_teaching_staff j8_problems_school/lack_of_pss j8_problems_school/price_for_service j8_problems_school/conditions_of_the_venue j8_problems_school/overcrowded_classrooms j8_problems_school/lack_of_medical_support j8_problems_school/school_is_unsafe j8_problems_school/problems_with_distance_learning_due_to_closure_of_school_for_covid_eg_bad_internet_connection j8_problems_school/other_specify j8_1_problems_school_other j9_education_security_concerns_childs_commute_to_school j9_education_security_concerns_childs_commute_to_school/none j9_education_security_concerns_childs_commute_to_school/uxos j9_education_security_concerns_childs_commute_to_school/shelling j9_education_security_concerns_childs_commute_to_school/shooting j9_education_security_concerns_childs_commute_to_school/military_presence j9_education_security_concerns_childs_commute_to_school/danger_at_checkpoints j9_education_security_concerns_childs_commute_to_school/wildanimals_stray_dogs j9_education_security_concerns_childs_commute_to_school/other_specify j9_1_education_security_concerns_childs_commute_to_school_other j10_education_security_concerns_in_the_vicinity_of_facility j10_education_security_concerns_in_the_vicinity_of_facility/none j10_education_security_concerns_in_the_vicinity_of_facility/uxos_on_school_grounds j10_education_security_concerns_in_the_vicinity_of_facility/shelling_in_the_vicinity_of_the_school j10_education_security_concerns_in_the_vicinity_of_facility/shooting_in_the_vicinity_of_the_school j10_education_security_concerns_in_the_vicinity_of_facility/military_presence_inside_of_schools j10_education_security_concerns_in_the_vicinity_of_facility/military_presence_in_the_vicinity_of_schools j10_education_security_concerns_in_the_vicinity_of_facility/other_specify j10_1_education_security_concerns_in_the_vicinity_of_facility_other j11_school_supplies_affordable j12_children_under18_absent j12_1_number_children_under18_absent j12_2_why l1_specialist_care_available l1_specialist_care_available/obstetricgynaecological l1_specialist_care_available/paediatrics l1_specialist_care_available/gastroentrology l1_specialist_care_available/mental_health_care l1_specialist_care_available/ear_nose_throat_ent l1_specialist_care_available/ambulance l1_specialist_care_available/inpatient_facility l1_specialist_care_available/outpatient_care l1_specialist_care_available/laboratory l1_specialist_care_available/x_ray l1_specialist_care_available/ultrasound l1_specialist_care_available/chest_photofluorography l1_specialist_care_available/post_trauma_rehabilitation l1_specialist_care_available/dont_know_ns l1_specialist_care_available/none_of_listed l2_HH_access_healthcare l3_difficult_access_health l4_which_difficult_access_health l4_which_difficult_access_health/lack_of_facilities l4_which_difficult_access_health/cost_of_medicine l4_which_difficult_access_health/distance_to_facility l4_which_difficult_access_health/cost_of_travel_to_facility l4_which_difficult_access_health/lack_of_documents l4_which_difficult_access_health/security_problems_in_travelling_to_facility l4_which_difficult_access_health/cost_of_appointment l4_which_difficult_access_health/lack_of_referral_system l4_which_difficult_access_health/have_to_pass_through_entry_exit_checkpoint_for_medical_facility_in_the_ngca l4_which_difficult_access_health/irregular_presence_of_doctors l4_which_difficult_access_health/required_a_covid_test_prior_to_treatment l4_which_difficult_access_health/unable_to_leave_the_house_due_to_covid19 l4_which_difficult_access_health/other_specify l4_which_difficult_access_health/lack_of_doctors l4_which_difficult_access_health/insufficient_qualifications_of_doctors l4_which_difficult_access_health/long_queues l4_1_which_difficult_access_health_other l5_state_medication_aware l6_state_medication_received l7_pss l8_trauma_rehab l9_time_walk_health_facility m1_probl_food_market_access m2_probl3_food_market_access m2_probl3_food_market_access/no_problems m2_probl3_food_market_access/opening_hours_insufficient m2_probl3_food_market_access/items_not_available m2_probl3_food_market_access/items_too_expensive m2_probl3_food_market_access/items_poor_quality m2_probl3_food_market_access/market_damaged m2_probl3_food_market_access/distance m2_probl3_food_market_access/security m2_probl3_food_market_access/other_specify m2_1_probl3_food_market_access_other m3_items_too_expensive m3_items_too_expensive/cereals_grains_bread_pasta m3_items_too_expensive/roots_and_tubers_potato_onion_beet m3_items_too_expensive/vegetables_and_leaves_tomato_lettuce_spinach_carrot m3_items_too_expensive/fruits_apple_orange_strawberry m3_items_too_expensive/meat_or_fish_chicken_pork_beef_fish m3_items_too_expensive/eggs m3_items_too_expensive/pulses_nuts_seeds_lentils_beans_nuts m3_items_too_expensive/dairy_products m3_items_too_expensive/oil_and_fat_salo_butter_sunflower_oil m3_items_too_expensive/sugar_or_sweets_cakes_chocolate_sugary_cold_drinks m3_items_too_expensive/condiments_and_spices_tea_coffee_spices m3_items_too_expensive/other_specify m3_1_other n1_HH_total_expenditure n2_spend_on_food n3_in_debt n4_spend_debt n4_1_if_0_for_debt n5_current_debt_of_hh n6_hhmember_security_incident_30days n7_gpc_docs_passport n8_HHmembers_ID_missing n9_gpc_docs_passport_obtain n10_gpc_docs_birthcert n11_birth_certificates_issued n12_HHmembers_birth_certificate_missing n13_gpc_docs_birthcert_obtain n14_docs_legal_assistance_needed n15_legal_assistance_needed n16_gpc_access_justice n17_community_affectedby_mines n18_aware_mine_incident n19_extent_mines_affect n20_mines_affect_reason n20_mines_affect_reason/fear_for_physical_safety n20_mines_affect_reason/movement_and_access_constraints n20_mines_affect_reason/psychological_safety n20_mines_affect_reason/has_affected_hh_budget n20_mines_affect_reason/other_specify n20_1_mines_affect_reason_other n21_ewr_report n21_ewr_report/administration_head_of_the_village) n21_ewr_report/state_emergency_services n21_ewr_report/mine_clearance_ngo n21_ewr_report/police n21_ewr_report/army n21_ewr_report/to_relatives n21_ewr_report/other_specify n21_ewr_report/dont_know_ns n21_1_ewr_report_other o1_restrictions_impact_hh o1_restrictions_impact_hh/diminished_lost_source_of_income o1_restrictions_impact_hh/limited_access_to_food o1_restrictions_impact_hh/loss_of_or_severely_diminished_access_to_basic_services o1_restrictions_impact_hh/loss_of_or_diminished_access_to_education o1_restrictions_impact_hh/loss_of_or_diminished_access_to_clean_water_and_sanitation o1_restrictions_impact_hh/sickness_of_household_members o1_restrictions_impact_hh/death_of_household_members o1_restrictions_impact_hh/other_specify o1_restrictions_impact_hh/no_covid19_impacts_on_my_household o1_restrictions_impact_hh/restriction_in_movement o1_restrictions_impact_hh/breaking_up_with_family_or_relatives o1_restrictions_impact_hh/psychological_deterioration o1_1_restrictions_impact_hh_other o2_hh_action_prevent_covid o2_hh_action_prevent_covid/no_no_action_taken_cannot_select_with_any_other_option o2_hh_action_prevent_covid/not_leaving_the_house_at_all o2_hh_action_prevent_covid/reducing_movement_outside_the_house o2_hh_action_prevent_covid/stopping_handshakes_or_physical_contact o2_hh_action_prevent_covid/keeping_distance_from_people o2_hh_action_prevent_covid/avoiding_public_places_and_gatherings o2_hh_action_prevent_covid/avoiding_public_transport o2_hh_action_prevent_covid/wearing_a_face_mask o2_hh_action_prevent_covid/wearing_gloves o2_hh_action_prevent_covid/washing_hands_more_regularly o2_hh_action_prevent_covid/keeping_surfaces_clean o2_hh_action_prevent_covid/praying_to_god o2_hh_action_prevent_covid/staying_away_from_animals o2_hh_action_prevent_covid/other_specify o2_hh_action_prevent_covid/dont_know o2_1_hh_action_prevent_covid_other o3_hh_activity_member_ill_or_deceased o5_treatment_member_of_household_was_ill_or_deceased o6_pay_for_health_care_at_clinic o7_going_into_debt_to_pay_at_clinic o8_seeking_community_support_to_pay_at_clinic o9_free_healthcare_service o10_home_treatment_due_to_lack_of_money o11_home_treatment_due_to_fear_of_contracting_covid o12_home_treatment_due_to_inaccessibility_of_treatment_other_than_covid o13_home_treatment_due_to_fear_if_tested_positive_for_covid o14_home_treatment_for_other_reasons o15_seeking_cheaper_health_care p1_informed_availability p2_informed_rights p3_informed_registration p4_informed_behaviour p5_priority_needs p5_priority_needs/shelter_housing p5_priority_needs/food p5_priority_needs/healthcare p5_priority_needs/seeds_or_other_agricultural_inputs p5_priority_needs/livelihoods_support_employment p5_priority_needs/drinking_water p5_priority_needs/hygiene_nfis_eg_soap_sanitary_pads_and_sanitation_services_eg_latrines p5_priority_needs/need_to_repay_debt p5_priority_needs/education_for_children_under_18 p5_priority_needs/psychosocial_support p5_priority_needs/fuel_for_heating p5_priority_needs/none p5_priority_needs/other_specify p5_priority_needs/house_repairs p5_1_priority_needs_other p6_HH_received_aid_12_months p7_hh_received_aid_30_days p8_satisfaction_sufficiency p9_satisfaction_behaviour p10_complaint_system p11_needs_consulted p12_type_information p12_type_information/dont_want_to_get_information p12_type_information/how_to_register_for_aid p12_type_information/how_to_get_water p12_type_information/how_to_get_food p12_type_information/how_to_get_shelter_accomodation_shelter_materials p12_type_information/how_to_get_healthcare_medical_attention p12_type_information/how_to_get_help_after_attack_or_harassment p12_type_information/how_to_stay_safe_to_prevent_attack_harassment p12_type_information/how_to_access_education p12_type_information/how_to_find_work p12_type_information/how_to_provide_feedback_on_aid_you_are_receiving p12_type_information/other p12_1_type_information_other p13_information_source p13_1_information_source_other p14_preferred_means_information p14_1_preferred_means_information_other p15_delivery_mode_type p15_delivery_mode_type/do_not_want_to_receive_humanitarian_assistance p15_delivery_mode_type/inkind_food p15_delivery_mode_type/inkind_nfis p15_delivery_mode_type/physical_cash p15_delivery_mode_type/cash_via_bank_transfer p15_delivery_mode_type/cash_via_prepaid_cards p15_delivery_mode_type/cash_via_mobile_money p15_delivery_mode_type/vouchers p15_delivery_mode_type/services_eg_healthcare_education_etc p15_delivery_mode_type/other_please_specify p15_delivery_mode_type/dont_know p15_delivery_mode_type/prefer_not_to_answer p15_delivery_mode_type/fuel_for_heating p15_delivery_mode_type/construction_materials p15_1_delivery_mode_type_other p16_soap_household p17_follow_up q1_comments_enumerators r1_current_oblast r2_current_raion r3_current_settlement r4_current_rectangle_id r5_gps_work uuid
2023-08-16T08:42:20+0200 2023-08-16T09:04:34+0200 deviceID00000005 sievero mari_008 yes GcoYukAxNMOXPEFhYtMZPaPvHiCd StkjpjBclpJylyayvCPKAayKvRpFgucDIjzIfLZOfNGHK no fbyMuMnqwYXgNExilgbWJgfDFxYTgzuFNagCNAtqmnCmdMDf KdOwQ no no female 25 17 male widowed veteran_of_war_ato single_parent family_with_3_or_more_children family_with_foster_children FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE CAEaKeMTMcvNfqSqiDVbTqHNhmX blood_pressure_diseases cardiovascular_disease chronic_respiratory_condition musculoskeletal_system_and_joints cancer gastrointestinal_digestive_tract_incl_liver_gallbladder_pancreas_diseases genitourinary_system_diseases other_specify TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE VqlIWcLAkTArtNsWLXRwMmwnqKaHqLgbjBCcGMNhXJcdZDeoOnhXbSs YdrUzpQDeCyCaUmvwMYXEryfprLowVqTnPij paid_work k FaZxEzXwOQMxekEtfCqHRjSVdisafXuMnLthcGjWKdYKRSQKPn UzdzDTrgbjXisqaJUeWdKmzHGQrKqNZFM mhlRRzi personal_family_reasons jXINxBlmYIgAUeTtwBBMZoiCzUKTWgcTVgqLqERoJsMuBQSnZnaqzpYKmogtPjzwQpnrcagcpHxTN state_service NRwnzimeezOzxCMgcTZysCwjNMVwxTbJayxhPWtlfbsyHbFyRBPkhqrQTtNmpJwMBJrZDNjNpcDDq czV 17 no yes dont_know_ns refuse_to_answer vocational 0 0 24 20 0 0 0 0 male retired_but_still_working tIb yqEbszonyZFqtXLbOAFJDOANDaBeecPd 21 0 0 0 0 partially_displaced_and_dont_have_idp_status other_specify BpoHQSXSttVLDgWhfgFUqrZBymHOXXoj other_specify OkjV UUoVow lO hosted_by_someone slWtJSxexZRwaSqaC no_issues leaks_during_heavy_rain_snow limited_ventilation_less_than_05m2_ventilation_in_each_room_including_kitchen none_of_the_above dont_know TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE FALSE TRUE pAGSmVRjSZZluWeTvUetVBk opening_or_cracks_in_roof exterior_doors_broken_unable_to_shut_properly total_structural_collapse gas_water_or_sewage_system_damaged electricity_supply_line_damaged_and_not_functional other_specify_none_of_the_above FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE TRUE FALSE JHgSJWusrcJvQUmEvkcoXRPZcqlVVGYnRrRtv dont_know_ns dont_know_ns dont_know_ns no 18 refuse_to_answer yes_within_the_next_3_months refigerator functional_stove TRUE TRUE FALSE FALSE towel winter_jacket warm_winter_boots thick_socks warm_scarf thermal_underwear adult_warm_clothing child_warm_clothing FALSE FALSE TRUE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE adult_diapers child_diapers TRUE TRUE FALSE FALSE electricity gas FALSE FALSE FALSE TRUE TRUE FALSE 22 J fiHYbPXNLPxhBiEocSgGNGuRydFHqDsOpXABZfUPrViCs EsUYyvbomeLoIOrXqoOXmcpxj 16 BGDenTMLLaBaEbQXWsgnJuhIrzcNRhDU bUnDyPzyGdHOoSNqvfoVSktS PRLLJazkkztONEkeAulrOc electricity gas kerosene wood other_specify FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE DJIAeghtZXqbzAbDpVqquUKEnMuMEGsSZzQmxOSwTsdMpOApOYEPahDXgEnMsFdTqpCdnpXUeLSelGMEhgnSblDXBolZbnB 21.22525 19.38395 20.65138 17.45102 yes no_shortages yes_infrequently_irregularly public_well_or_boreholes_shared_access ysmHaAU sAqJEnReXtQNbpTYFfoZcqGoGIwWiKyYIUqtPbcIuWXItgwaFzJEltraskiQVTpNMBf filtering_the_water_pitcher_filter percolation refuse_to_answer FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE nGIceCbexFyXLqPQgjJffruVgleTWIcJgubLOyVUiBrfjwtNerDqqkwouLWdzVilTCLpmITtYgglDRGewHxnncTaPT refuse_to_answer GoLcZXfCsqdEiICoIGQEYbxZoqMaOpGQnzrAKFOrSCUGi KKjoYj ZbvNrwzgXjEUi trucked_in_water_truck_with_a_tank_etc ASrsunMYBBVtnaRmPDuSTBORRZzbbloyOWtFAVMgcNhutUpipyqomwfyRiDvHGTLxGWWvBJrRpAzySS 1_time_a_week 20 a_bucket_without_a_lid we_fill_in_the_bathtub other_specify FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE nlhHrSIIoWudSS BeWBsXRCMThuPvUwHQFISIYnrEIRSRatVtMZmJrflqKY cOhGIJzSTomqgCEooYtzNhITuqbUfSkApN cooking personal_hygiene none_of_the_previous dont_know_ns FALSE TRUE TRUE FALSE TRUE TRUE none_of_the_above GqSFLADZJtSIvsNeJFlkfCgYecWiCTMHCkjYzrhEvFtpfh not_applicable we_burn_all_the_garbage 6 6 7 2 4 1 0 0 0 5 2 0_no 2_sometimes_3_10 1_yes 1_rarely_1_2 1_yes 3_often_10plus_times no_was_not_needed no_but_needed yes yes yes no_already_done_so_cant_do_it_anymore no_but_needed no_was_not_needed no_was_not_needed no_but_needed yes no_was_not_needed none kindergarten school TRUE TRUE TRUE FALSE FALSE FALSE school_too_far_and_no_transport cannot_afford_supplies children_working_at_home children_in_paid_employment TRUE TRUE FALSE TRUE TRUE FALSE FALSE UdAjxUaAeXIeoJESkoiBCuQiMXrXDNBapR 21 17 18 22 22 18 18 21 20 21 16 23 24 20 21 19 20 19 22 24 17 dont_know_ns 21 24 23 23 22 19 security_concerns_by_parent school_is_damaged family_personal_reasons transport_unavavailable a_child_contributes_to_hh_income refuse_to_answer FALSE FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE iUEqbbwpMhgMTcUSdmLOnkeHFEhK more_4_months no_problems overcrowded_classrooms other_specify TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE hdWsDmgOQDOZTFrAHbbzDryKJvaKyNjnXdEbqIktfoLebURfISarZx shelling shooting danger_at_checkpoints other_specify FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE SaszsWatZNZhVTKjfHyCHZwycjMTfPnRnxwXENqiNEWZdTM uxos_on_school_grounds other_specify FALSE TRUE FALSE FALSE FALSE FALSE TRUE pbeHBQDRru pS BTeyJNsJdoJsbzANYjxiiUdgHaWc msvVLRrKomVsypVHLMPaDDCaLb refuse_to_answer refuse_to_answer 21 jlfNCQXMvYNWMepkptymfPSafqvktiNoswQODNUkWJrNTrgJazwykuhjFYUdEEIlzDJJ paediatrics mental_health_care ear_nose_throat_ent ambulance outpatient_care x_ray ultrasound post_trauma_rehabilitation none_of_listed FALSE TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE no all_of_the_time lack_of_facilities cost_of_medicine distance_to_facility cost_of_travel_to_facility lack_of_documents security_problems_in_travelling_to_facility lack_of_referral_system insufficient_qualifications_of_doctors TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE CKniIqxvvjTiXYzHjKXUZyNDQmVIsVUVpMFTacRsthLpjWWowjY yes yes dont_know_ns no less_than_15_mins no items_not_available distance security other_specify FALSE FALSE TRUE FALSE FALSE FALSE TRUE TRUE TRUE csuktdDzqvGoRhE cereals_grains_bread_pasta vegetables_and_leaves_tomato_lettuce_spinach_carrot pulses_nuts_seeds_lentils_beans_nuts oil_and_fat_salo_butter_sunflower_oil sugar_or_sweets_cakes_chocolate_sugary_cold_drinks TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE hPFKYBgaSTLbnFcm 19 18 no 21 PQmRzltWDhCeUMsuzqInwrPzsWi gpdqBvBIdxMGBPObqozUzrzWAkFjOCvZH 22 dont_know yes_in_our_possession 17 yes dont_know both 23 yes refuse_to_answer refuse_to_answer dont_know no yes 2_i_am_aware_of_mines_but_it_doesnt_affect_my_life movement_and_access_constraints FALSE TRUE FALSE FALSE FALSE pbyMoDJaWvkXbTRJwGsMNEzKiXoQdAQFQo djPkJZzwNRPAOffySlCPejuGncYCXpdRVoTnVQtIWgrZVfHFja vzvLxaiaBnhhw administration_head_of_the_village) mine_clearance_ngo police to_relatives dont_know_ns TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE loss_of_or_diminished_access_to_education loss_of_or_diminished_access_to_clean_water_and_sanitation sickness_of_household_members other_specify no_covid19_impacts_on_my_household restriction_in_movement breaking_up_with_family_or_relatives psychological_deterioration FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE GGqElBvsrWuT Z not_leaving_the_house_at_all stopping_handshakes_or_physical_contact keeping_distance_from_people wearing_a_face_mask washing_hands_more_regularly keeping_surfaces_clean staying_away_from_animals dont_know FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE ZZRAPhFPOKoLJdBKp npt chqEgjAdloWBo PYCqixBb no no refuse_to_answer no yes no yes refuse_to_answer yes yes refuse_to_answer yes dont_know_ns dont_know_ns dont_know_ns dont_know_ns food healthcare drinking_water hygiene_nfis_eg_soap_sanitary_pads_and_sanitation_services_eg_latrines psychosocial_support fuel_for_heating none other_specify house_repairs FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE ETPckfqdfCH XAy QUhVMxCJdHeaHknLpftmeofjIibhFBEAiWzNFtvLpxuMdTLwdcUZmQFdBAyzq kkYCLrEJaF W dont_know_ns dont_know_ns no dont_know_ns dont_know_ns dont_know_ns dont_want_to_get_information how_to_get_water how_to_get_food how_to_get_shelter_accomodation_shelter_materials how_to_get_help_after_attack_or_harassment how_to_access_education how_to_provide_feedback_on_aid_you_are_receiving other TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE XZHfBnGPDCqDAyzenYCEdrWsJqcfuYWPBJpgoIFP other LAwnTTNIQxeFTfZMmdjkWwngJIwqzZRhEetAmMlPwjhWgYgOAQCYkuELbpdpdBUjfHU telegram_viber_or_other_mobile_phone_based_platform BHYjuYSIDxECthMCuHyMsBfmztqOxgRjEKdksNjgUUqNnLmKYP do_not_want_to_receive_humanitarian_assistance inkind_food physical_cash cash_via_bank_transfer vouchers services_eg_healthcare_education_etc other_please_specify dont_know TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE KQKPBZZDvGNJWKXhaSGwAyCKNatVhKApAieBkzsHiQXkLGGc WLAxNPpdFmiG no no mWFKpFzcIy NcNWIZLCdQPNiweswFofqwjDApjjBXK UA44 UA14126 UKR1422485502 BO_1 no c3fd519b-03d8-4d4147-8a8581-2eadb6831059
2023-08-16T10:53:02+0200 2023-08-16T09:48:51+0200 deviceID00000007 sievero siev_006 yes kCsTIOpmDMEZzxxiLqjpqvUOcahvqLuiBZ no IV eHLVwWUEZGJIRFkENMvSLCQHa yes no female 20 21 female widowed no older_person unemployed family_with_3_or_more_children family_with_foster_children other_specify TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE FALSE TRUE IIhEt diabetes_need_insulin diabetes_does_not_need_insulin musculoskeletal_system_and_joints cancer neurological genitourinary_system_diseases FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE JjZeLVFFzLeoOWaNCTWgzKSoASlaTiIJvXHnYNkbFLfUWPKjFMymUpLaRNbLfRoL retired_but_still_working kDD pay_too_low mFvgygPXVkPethjWFlaTvajwOeo health_care OxCElIqq nOkmHihLSemIBFhYibnSDDmTZZXWHHDDPJqzCpQbumlWkltcvsiauVstuoMjLPCuCwWbcnnuzQLtQ sWIk 19 no yes refuse_to_answer refuse_to_answer none 0 0 19 20 0 0 0 0 male in_education_doesnt_work rcP APUixICtDpSDGqPwkuiYDCStZTMWdJHIY 21 0 0 0 0 used_to_be_displaced_but_returned_and_has_no_status_of_idp 2014 VyUUQzYiDBvIoGmwEv TKm tent WFYSbfCRpULuoNdupTsHpzHrZPnsgbYmirEpHuPRquoOnNIqMrOtjzSq s no_collective_centre TiwkEOSEZacduNmIwPiRHjYKJbNgcZTPRYRzJ wUz lAJwFwyjygnYcxGZUkub no_issues lack_of_insulation_from_cold leaks_during_heavy_rain_snow limited_ventilation_less_than_05m2_ventilation_in_each_room_including_kitchen presence_of_dirt_or_debris_removable presence_of_dirt_or_debris_nonremovable dont_know TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE dUZj none broken_or_cracked_windows exterior_doors_broken_unable_to_shut_properly exterior_doors_or_windows_missing large_cracks_openings_in_most_walls damaged_floors severe_structural_damage_and_unsafe_for_living TRUE FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE cKkHqRILDIuddnfLtCtabtrBHMYeJFSqKhxlawo NaTjXKWfI FRponmoFQpzRYlcOOhhQrGNclEXRUScfaRJgksVAzWbPxcOu yes dont_know_ns yes no 17 yes yes_after_3_months refigerator TRUE FALSE FALSE FALSE thick_socks warm_gloves child_warm_clothing FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE child_diapers sanitary_pads FALSE TRUE TRUE FALSE central_heating centralised_piped_cold_water_supply none TRUE FALSE TRUE FALSE FALSE TRUE 18 FMrnmshnbUtYacOjpfdp rpqgkTeCsMZLBsPhWgpdMFDiawmNDbuGUcyGsooyGmbRwzCPWebJVQGWpiDFFJOj acUavLafo 21 tgilhVEZbHYbtDJIahkGMZOmWbuQrSKSYBF central_heating electricity wood briquettes_coal TRUE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE JoYvRUtEdE ZLOnSGnROCKbHkpakxUMubRbFGgdcqaALCnsckyTifLkmvytzzXzcduqmLOp WxNvoWxHIhxHlptxrnsjnBM hk 15.40725 17.15860 17.23396 19.69760 no yes_infrequently_irregularly yes_daily_every_day personal_well CiSmZwTXtjCOZubEUNPNyqwNlHvdVPvfACyxbNeqGLHuSZRRWeRDNsHjjMCWXDIqNCKYUcDLrRhAelePFMFZPO ByXeMYzV cleaning_with_chemicals_chlorination filtering_the_water_reverse_osmosis_filter boiling dont_know_ns FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE FALSE KxGlssIxuLONeFLwwAGVdgDmzHnHRoXsdUhQGSRyoTQa no_need RSQhcftnofYLzaw personal_well CjlNZOHqaQTSasiuc URTUQnNKoKhwqpqX d qwCDgWMCffRHFJjkbkLYEuXQuTVH ZAKBpInwbqoNTYNHXfBiIeWJgTE from_time_to_time_more_rarely_than_once_a_month 19 do_not_store_water glass_bottles a_bucket_with_a_lid a_canister we_fill_in_the_bathtub TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE eKlNQBpsZdOuYtDyngEgiAfpIufTjBuUKyZGDMISuMXoVqsGzUmsmosLBZowbfyK drinking cooking personal_hygiene none_of_the_previous dont_know_ns TRUE TRUE TRUE FALSE TRUE TRUE flush_toilet_central_sewerage YkWYsUVWtqjJcZeAozHjGDxlvTediOiByduAXYMOBKAO mRmrkWFhshcWrCndSrBePZgBDfCZwL dont_know we_burn_a_part_of_the_garbage_and_the_other_part_is_thrown_down_the_pit_latrine 5 6 3 3 6 4 6 1 7 6 0 0_no 2_sometimes_3_10 1_yes 1_rarely_1_2 0_no 1_rarely_12 no_already_done_so_cant_do_it_anymore no_already_done_so_cant_do_it_anymore no_was_not_needed yes no_already_done_so_cant_do_it_anymore no_but_needed no_was_not_needed no_but_needed no_but_needed yes no_already_done_so_cant_do_it_anymore no_was_not_needed none vocational_school TRUE FALSE FALSE FALSE FALSE TRUE school_too_far_and_no_transport children_working_at_home children_in_paid_employment children_has_disability_that_school_does_not_have_infrastructure_for TRUE FALSE FALSE TRUE TRUE TRUE FALSE WTotpnqPsYxeWGgZJBUuKPGDcxVWxIRFPbWSZZrFQTNaPFaphpMlkkGQfbhIoGVASOsBSMQDK 19 17 18 21 21 22 20 18 20 20 21 17 21 24 21 18 20 20 19 19 20 yes 19 17 19 20 17 19 school_closed_due_to_security security_concerns_by_parent school_is_damaged family_personal_reasons refuse_to_answer TRUE FALSE FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE WtDXUCFoFxsyfwGGUPSKSoMdgTdEIaDqQCrB 2_4_months no_problems overcrowded_classrooms other_specify TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE OLDD NxhYBNLrVkuXdToZAWixYozTqbZNAZxbPEzQZitxsyDzS none uxos shelling military_presence TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE VcpXXwTLeRifkteAOxACh shelling_in_the_vicinity_of_the_school shooting_in_the_vicinity_of_the_school military_presence_inside_of_schools military_presence_in_the_vicinity_of_schools FALSE FALSE TRUE TRUE TRUE TRUE FALSE qvRbHJaCfactnUdSLbY yLiifXwijHbWjseoCkrvZtIKnUfDQljYYTFEan GUvJhRgfRNYKpXDYgNboAHyKUQhDAOzkDEEXW yes refuse_to_answer 18 OgJDGRjNmevpHZvrB gastroentrology ambulance outpatient_care chest_photofluorography none_of_listed FALSE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE yes all_of_the_time cost_of_medicine required_a_covid_test_prior_to_treatment other_specify long_queues FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE PYfjLuBOXjSVdEexuGahiUaRS mDKLqsn koukXqSSUqeHlPBTHRweENkfanzoIKDFbXtECdneoAJamp yes dont_know_ns no no less_than_30_mins no no_problems opening_hours_insufficient items_not_available items_poor_quality distance security other_specify TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE TRUE cRmXUFibxqAlAO auEYYZlSpFzTBAUfbxLIjAuJgmdBMTqaGkuhktzzyUFK zkKDNOIQgMWYr eggs pulses_nuts_seeds_lentils_beans_nuts other_specify FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE CdxLUaz kl FzUbbzxNvbCjWeNWz 23 18 no 20 nRfVkEYjUrxYEojIeRZgmjxRBlSxQqWPrkffQCoIuGlYNxtSpzW RHxuuLp osHbWv 20 no dont_know 21 no no_some_hh_members_are_missing_birth_certificates refuse_to_answer 18 yes dont_know_ns no yes dont_know dont_know 3_sometimes_i_need_to_change_my_behaviour_due_to_mines fear_for_physical_safety movement_and_access_constraints psychological_safety TRUE TRUE TRUE FALSE FALSE hMrEewnfNmlwNvV AXBJ administration_head_of_the_village) state_emergency_services mine_clearance_ngo police dont_know_ns TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE dkQpVGtR diminished_lost_source_of_income loss_of_or_diminished_access_to_education sickness_of_household_members other_specify restriction_in_movement TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE LZYdwSZdSEruAcgOCRKGdiDNYCpWlRDeBdQyMeXRJqGPlijbDGLocXUocXLvVdXtVzSJFSdu no_no_action_taken_cannot_select_with_any_other_option not_leaving_the_house_at_all reducing_movement_outside_the_house keeping_distance_from_people avoiding_public_places_and_gatherings avoiding_public_transport wearing_a_face_mask wearing_gloves washing_hands_more_regularly keeping_surfaces_clean other_specify TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE PiSIisZVMykMTwAHwufRx yes_other_non_covid_related_reason no refuse_to_answer no refuse_to_answer no yes no yes yes yes refuse_to_answer yes refuse_to_answer yes no seeds_or_other_agricultural_inputs livelihoods_support_employment need_to_repay_debt education_for_children_under_18 fuel_for_heating none other_specify house_repairs FALSE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE QtIqdthFOVcJRTfeVqApPSKiroFuoisrUYJwSCKmLnfLAaTjHTSmeiormgfX vkWDzPcvSnCcgiJyMbmfEnkBwcwSifA no dont_know_ns yes yes refuse_to_answer dont_know_ns dont_want_to_get_information how_to_get_water how_to_provide_feedback_on_aid_you_are_receiving other TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE zORVNALPYHkuQrgfGufhT friends_family_members GebAZWeLcqcDMJRZgmAUBGPjakLKjNJiKTEaXbMOWNDYh QpVrbkdGqwyFSsWSZYjSfLUgCGOrVJVBhoRmAQgTDV billboards_posters_leaflets Gb jsKB RYlvCAlOaepXrBOEnNqleYlwSnsSIpNGZPPhLqzbHH mKohLRcluuYxuc do_not_want_to_receive_humanitarian_assistance inkind_food inkind_nfis cash_via_prepaid_cards cash_via_mobile_money construction_materials TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE BEhzbVOAmfDiEeNaptlZrFKbGCCMnOyvThpJkeRSl PkcrxXBzkhqZvGyVysUauRLYyBJZUrukRWDFAUzAIwriFETxWsM yes_soap_is_not_shown yes Szi UA14 UA44238 UKR1421588801 GJ_5 no 2abf4e71-97ed-494347-a0ada9-2e165d8ca73b
2023-08-16T10:43:06+0200 2023-08-16T08:14:21+0200 deviceID00000003 sievero slov_002 yes pY OZlxHGgToZ gffjs jNWkXRblqbJ no thLAVIexzlwpyUcetUDYOdGvTDvyvHRVPjEXp AYQogYomVgFlPNSwbuawZuRqTmdXZYeTMVqCaEqoFtupmwp yes no male 19 20 female single no veteran_of_war_ato family_with_3_or_more_children other_specify TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE AVcHbVeBPBYYfWoBpBJbfqVRlDUVUkYHYDbVObhznPCcnHPFHUYkigsWJqJWNxUsrLE rZIplzFcuAkLakXe cardiovascular_disease diabetes_need_insulin chronic_respiratory_condition musculoskeletal_system_and_joints sensory_disorder gastrointestinal_digestive_tract_incl_liver_gallbladder_pancreas_diseases FALSE TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE fhLEsgndMOTlXUuWKBgYYTLraSdnJ trCP retired_not_working NTmwqkHcqFrRfakGHMVIHjSuMEnJjzvBGeqgHVwiEPiINXAGxDdafoYCprfTSGUsXjVXFOzkQIlAmwPXk lack_of_relevant_vacancies_in_the_settlement zVsFaYppxuOfCtAd JvSKGYnniPEgFdONMuxIDtltKXzCQzcMIhgDhggUOgylzIMBnxOZFjtiXKDzTZXxgfZLLqWRjXDLgF education ElxtHUOcLQdZnhNvdiaN 21 refuse_to_answer no yes no preschool 0 0 20 18 1 0 0 1 male doing_housework_looking_after_children_or_other_persons_unpaid MiHwwnACsjwqaKyMJOcUDJTpTGehzabbXDKFLnGCvbVKrCrGZoqHPYbVoJeqBWgyAbz rzT UamfrDihpuE 22 1 0 0 1 partially_displaced_and_dont_have_idp_status 2014 KSUixXNTjDppbAXQSQOoSSivfbvkDDcbA none_sleeping_in_open FmnVQuhsLNtrqtSEGIkqYPcUlvplXcTdqHvPQvAOxjQexhHYFGbCYrMfiyidGfqqleBwa no_but_free_accommodation_paying_utilities UOiGecUGPYtvjpscVa M atptDCOFGLaOPjmaahQmzoHesEDwuGJyW etIwXswVfbqKj leaks_during_light_rain_snow presence_of_dirt_or_debris_removable other_specify FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE lNLQtamciOPdosdxSRyktDGDP nCwyVYttLggOWqnCsPfSIzWp MFBs tdVxpQlrzIspeJy none roof_partially_collapsed exterior_doors_broken_unable_to_shut_properly large_cracks_openings_in_most_walls some_walls_fully_collapsed damaged_floors foundation_damaged_or_shifted gas_water_or_sewage_system_damaged electricity_supply_line_damaged_and_not_functional TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE rYAzUJPTTVmOmElRySqOXdo dont_know_ns dont_know_ns yes dont_know_ns 23 yes no refigerator functional_stove hh_has_all_items TRUE TRUE FALSE TRUE winter_jacket warm_winter_boots thick_socks warm_gloves warm_scarf adult_warm_clothing child_warm_clothing FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE sanitary_pads FALSE FALSE TRUE FALSE central_heating centralised_piped_hot_water_supply electricity none TRUE TRUE FALSE TRUE FALSE TRUE 27 mqtWAbYmYm GcypydVeRDNSwuMgvjVxvLqMsxIyshrRjEwnqozsHqUZpOGIFJDnQBBwft 20 NOl dbQTVGvkkqjkBQgZwYKjVrNQ central_heating gas kerosene coal briquettes_not_coal briquettes_coal TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE WMHOyxAJPWopTcGoFgJUmQhGTGVkVBlIdsTMtMoervazialrXGTkEGyqdqTmnkcCsmnWMeFJHfDQghaUBonEvy 18.83563 16.70274 20.52742 20.83264 no difficult_to_say yes_weekly_min_once_per_week other_specify zZMpFnDBigkNObgPVzzXHRqYJbHuJozplXnevLIpSlEyXNbvdAJxJWyFTtvBxs filtering_the_water_pitcher_filter boiling percolation other_specify refuse_to_answer FALSE FALSE FALSE TRUE FALSE TRUE TRUE TRUE FALSE TRUE OSH cgktPharlVfaduKtxRIdSRqCh other_specify LKpeNZ XYpwkHnOnNNHSeYgjCOtdlqYgoMe LYGBDCB bottled_water_water_purchased_in_bottles qiCLikEHUWSwklnDHRVeoRrIcOQGkqRFmIvUGybxUqqQbIe FkqcTlDZNhBlGBldusmws 1_time_a_week 23 a_bucket_with_a_lid a_barrel_tank we_fill_in_the_bathtub other_specify refuse_to_answer FALSE FALSE FALSE TRUE FALSE FALSE TRUE TRUE TRUE FALSE TRUE UfGcvDDmJWdBKIBLNgOMnOpMMyVvHCuwyqOBSDCDSYSqAdbtnNlrmyoxta drinking cooking other_domestic_purposes none_of_the_previous dont_know_ns TRUE TRUE FALSE TRUE TRUE TRUE dont_know_refuse_to_answer tNrBbQZlTWLpTlOcHYyhmlXgqfkmQdMbyxOZbGtUOpBbCeXkkYv no dont_know_ns 4 1 6 6 2 7 2 7 1 4 0 1_yes 3_often_10plus_times 0_no 2_sometimes_3_10 1_yes 1_rarely_12 no_already_done_so_cant_do_it_anymore no_but_needed no_but_needed no_already_done_so_cant_do_it_anymore no_already_done_so_cant_do_it_anymore no_was_not_needed yes no_but_needed no_was_not_needed no_already_done_so_cant_do_it_anymore no_but_needed no_but_needed none kindergarten boarding_school specialized_school_for_children_with_disabilities vocational_school TRUE TRUE FALSE TRUE TRUE TRUE school_too_far_and_no_transport children_at_home_as_carer children_working_at_home children_in_paid_employment TRUE FALSE TRUE TRUE TRUE FALSE FALSE jyKgXAWQTcQsvvadZnqjxyRR 21 18 20 20 21 21 20 22 23 21 21 19 21 20 18 19 20 17 20 20 17 dont_know_ns 19 20 21 17 19 23 school_closed_due_to_security insufficient_teachers school_is_damaged family_personal_reasons refuse_to_answer TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE ojndsxfYGXudcexSBrQxBFNqJX ZGhFFSAGbEUtwYZnDxxmRmIRwBTtxTZuKEkddn more_4_months no_problems quantity_of_teaching_staff lack_of_medical_support school_is_unsafe other_specify TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE swbJcQde ADXXVbQykmBlPXGqRZrLtuEAgFnIahTkZFopHuTACCZzfgCXnJGqgPVYmhhLaejr uxos shelling shooting danger_at_checkpoints wildanimals_stray_dogs FALSE TRUE TRUE TRUE FALSE TRUE TRUE FALSE xhgrxrlgvdkVRJBFeXDcwjvqloRqVHWua shelling_in_the_vicinity_of_the_school shooting_in_the_vicinity_of_the_school FALSE FALSE TRUE TRUE FALSE FALSE FALSE XbaRpLKZaUgjHNtBfRIAkQTyRMuafJpERbqxR tbfMistPXaBacBxoBSqXSAQnuQXTZSeVCeh yes refuse_to_answer 20 etACZk y hhkDGeSIiXMdGivgjlVVskJMrQmmzERfORwbD cGwVLHOeHzthzHbNyA obstetricgynaecological mental_health_care ambulance inpatient_facility TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE refuse_to_answer rarely lack_of_documents irregular_presence_of_doctors unable_to_leave_the_house_due_to_covid19 other_specify lack_of_doctors long_queues FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE TRUE FALSE TRUE tYjtOzvIeLLNNCbfwmABiZTyWIxSLZjTBRmpTeAc EKvheElytraaLucQUPZ refuse_to_answer no yes no less_than_3h no opening_hours_insufficient items_not_available market_damaged distance FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE GsLtVgrMXAqP cereals_grains_bread_pasta eggs dairy_products condiments_and_spices_tea_coffee_spices TRUE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE cvPjfNWhSrkRvdnywHIlRFpcuDy buxFvLwocUUgbdnbORiupegfdDrlKYhrQ BYiHa aqQXogKEiUSZPnKSTofS 20 19 no 21 bwczniLgVZDUMhqCPHXsBDgKfNBYXdV mcElVQMjSaE Cn 21 dont_know yes_in_our_possession 20 yes yes_we_all_have_birth_certificates_but_they_are_not_in_our_possession refuse_to_answer 20 no refuse_to_answer no no dont_know refuse_to_answer 5_they_severely_affect_my_everyday_life fear_for_physical_safety psychological_safety other_specify TRUE FALSE TRUE FALSE TRUE OBZYMCZjjWVNTLoATexKNHgCqKPDhbNcE administration_head_of_the_village) mine_clearance_ngo to_relatives TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE ncMXfwvqhIiuDalKZjEuopRqXGuuBEMfasWRbGbGeDQwTDAxLhcXF limited_access_to_food loss_of_or_severely_diminished_access_to_basic_services loss_of_or_diminished_access_to_education sickness_of_household_members death_of_household_members breaking_up_with_family_or_relatives psychological_deterioration FALSE TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE MPYQqMco no_no_action_taken_cannot_select_with_any_other_option stopping_handshakes_or_physical_contact avoiding_public_transport keeping_surfaces_clean praying_to_god other_specify TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE FALSE rIOkQtfo QQsCEXQvRIiFoqlnqhZZHxy cDLbVIRPqfyyHFqgushBMFwMUBtpjIhZJiISZVmmRpVAmyvxYCbkAOCmWj yes_covid_related_reason refuse_to_answer yes refuse_to_answer refuse_to_answer no yes yes no yes refuse_to_answer no refuse_to_answer no refuse_to_answer no shelter_housing healthcare seeds_or_other_agricultural_inputs livelihoods_support_employment drinking_water education_for_children_under_18 psychosocial_support none other_specify TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE TRUE FALSE XZtoFCgT yes no no refuse_to_answer yes dont_know_ns dont_want_to_get_information how_to_get_water how_to_get_food how_to_get_shelter_accomodation_shelter_materials how_to_get_healthcare_medical_attention how_to_get_help_after_attack_or_harassment how_to_stay_safe_to_prevent_attack_harassment how_to_find_work TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE cMWeGbHemRfBeVhFI zNCuHXqkYjKxVbeHxCimiNuSlwZUfuwlWVLiRWfqieViMnxjQWpFKoTcrzXQPoMUwDlrqHbyo f aid_workers_from_local_ngos_or_civil_society_organisations USFYFdbzkBBWacSkXVLkuDn newspapers DshZFYeJlIQhDqqtczveuNlZSO qwOmtvvLsBKsZxeoGKCsZpkMvRWjnEknfmBjFleGLQ inkind_food physical_cash cash_via_mobile_money vouchers other_please_specify dont_know prefer_not_to_answer FALSE TRUE FALSE TRUE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE FALSE KFUoXJrrcEZESxaWK BJLFilqBhjR yes_soap_is_not_shown refuse_to_answer NStIKpXYlZfyHSyXPqNWYApEERSFGy lxUgBAXZglHvPqYLPaWEGssuyNCpsJidnbAgmYJaAOZuTW UA44 UA14112 UKR4423857504 KM_1 no 15db32c0-04ab-4d4341-a2a6ac-dcb6f07182a5
2023-08-16T10:53:46+0200 2023-08-16T08:22:19+0200 deviceID00000004 mariupol mari_006 yes IiBtVNQkhLXYAE DIlwwGKbDgmdppUvqbfMbeqVNLCxbApivFGVPvf yes OLdUVTtrnXUOewafcLxRnYLbOcTaBApDwgxGDRDpodhwbLHCay no no female 21 19 female single no unemployed veteran_of_war_ato single_parent chronic_illness TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE TRUE FALSE G diabetes_need_insulin chronic_respiratory_condition musculoskeletal_system_and_joints cancer neurological endocrine_system_thyroid_gland_and_other_diseases other_specify FALSE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE dmrSXsYgCMLfmDSaLIAbAxX other_specify MpsjSmfosSsGPWMKWEJnxbypQLBULJhwsghNsfRlKfHyEWdgFdxHwVAiKIfjzGlMdSgvEjZcvHOy health_reasons YuDyVSwaeJuWIXXdhtULmUdQIispoiGVTFmqvrpmEGcoqdOeKXHHroOVqhXYsDBDItrOVyi other_specify OYgsXzCirzqWUSykpvWDnSICPBBNRLJgcnkgeLJxeMmuzj 20 yes refuse_to_answer dont_know_ns no preschool 0 0 23 20 0 0 0 0 female military_service GtFszZoSrNcoguJc 20 0 0 0 0 refuse_to_answer 2014 ZqoQefmGqXTweJPaOFaAtkwmrqBSTzqgFGAGxSfMfwrwKxHbK VcoYdDjyUukDoKqNkvwuaFgje FShZaQvSHGdNkPSpozAZc makeshift_shelter xnIb other_specify blKQoCYqUDKtwnCZsRLPV no_issues leaks_during_light_rain_snow leaks_during_heavy_rain_snow limited_ventilation_less_than_05m2_ventilation_in_each_room_including_kitchen presence_of_dirt_or_debris_removable presence_of_dirt_or_debris_nonremovable none_of_the_above dont_know TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE eHrDSkrdQPil ejJBcwjWKASotM opening_or_cracks_in_roof roof_partially_collapsed broken_or_cracked_windows some_cracks_in_some_walls damaged_floors severe_structural_damage_and_unsafe_for_living foundation_damaged_or_shifted gas_water_or_sewage_system_damaged electricity_supply_line_damaged_and_not_functional other_specify_none_of_the_above dont_know_prefer_not_to_say FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE HiGOnyW yes yes yes no 21 no no refigerator functional_heater_movable TRUE FALSE TRUE FALSE towel blanket winter_jacket warm_winter_boots thick_socks child_warm_clothing each_member_has_all_items FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE adult_diapers child_diapers none_needed TRUE TRUE FALSE TRUE central_heating centralised_piped_hot_water_supply electricity gas TRUE TRUE FALSE TRUE TRUE FALSE 18 eVLCWPPjWsobSFbMoPLRTDYYGTDohIliedlqjfFSVRWMZctzVoeGoaMhFteCakeXRtoSCcQZCp xVyeQqmVKBvGavDsZEG 19 SGrWkaqwbpDrU electricity coal briquettes_coal other_specify FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE TRUE UchGlwyQe PGhwqjGegNDVuBrwYNdtflikhfuTDfGxZsgfyEUimGVZqn ntcIYoCctXr ghSBocoxXZTjNXwqNzoooGDfdu 21.93732 21.54397 17.25838 19.70407 yes yes_infrequently_irregularly not_connected_to_this_service tap_drinking_water_centralized_water_supply YnaHUe water_precipitation filtering_the_water_pitcher_filter boiling dont_know_ns refuse_to_answer FALSE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE nEyxtIMWvdosvXRYqZvoyZMYQFkUQztNYSLSsvC eAJEKMPQnQzJcURpYBAcvIiYTtJMwQL we_cant_afford_necessary_means_filters_chemicals_for_chlorination BZvIuegWkIPeLBoqaWI yUzhOMoIuPqJZxAIszkgRRCqGipctdQVuUiCPdZOdHmTuBppjmMcgSwkVvXVTAnrRd water_from_water_kiosk_booth_with_water_for_bottling MIyLKIdjJTmCEeHNVGdwzgqAmaDmutnbHxWoLeA A PXpaBpYZyXJfEpVJvoGvqL 2_3_times_a_week 18 do_not_store_water plastic_bottles a_bucket_with_a_lid a_bucket_without_a_lid we_fill_in_the_bathtub other_specify dont_know_ns TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE UTFLBzwFAYOwLTJGXcsdmfjEQPGTAGGPhFJRGbJqEnV VKIURmgKxMFTaXhDXLgzpPbsy cooking FALSE TRUE FALSE FALSE FALSE FALSE bucket_toilet fWXjM NDTAl MMOvzpfvlWVTlNlTiDvaMeerhQniOgDIodEneBtvMQVNvBMjyPRcVHIkFgTJcQiJQCBuAjVMYynYWqtb yes we_will_take_garbage_to_the_garbage_dump_by_ourselves 0 3 7 4 6 4 1 7 0 1 7 1_yes 3_often_10plus_times 0_no 1_rarely_1_2 1_yes 1_rarely_12 no_already_done_so_cant_do_it_anymore yes no_was_not_needed yes no_already_done_so_cant_do_it_anymore no_was_not_needed no_but_needed no_but_needed no_was_not_needed yes no_was_not_needed no_already_done_so_cant_do_it_anymore FALSE FALSE FALSE FALSE FALSE FALSE school_too_far_and_no_transport cannot_afford_supplies children_working_at_home children_has_disability_that_school_does_not_have_infrastructure_for TRUE TRUE FALSE TRUE FALSE TRUE FALSE NAmLkzOLNEZOMkvGXEnngoDPyqNiuQftQOEHbhlulmXmvrwXWXEHhvbOIfFio 17 18 20 19 17 17 23 17 20 21 21 17 18 22 18 21 19 20 20 21 18 dont_know_ns 22 21 21 18 17 19 school_closed_due_to_security health_issues too_expensive_school_fees_supplies_transport_etc transport_unavavailable a_child_contributes_to_hh_income other_specify refuse_to_answer TRUE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE TRUE TRUE TRUE hdykpVFqyPyqpyjEXtnmAOGYTUqAXamGbDl GGwU zjCCMqFDOxIfzXsVpBgoQYAkZvureQuBsiZvKbcbJIgoY refuse_to_answer distance_to_school quantity_of_teaching_staff lack_of_pss price_for_service conditions_of_the_venue school_is_unsafe problems_with_distance_learning_due_to_closure_of_school_for_covid_eg_bad_internet_connection FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE HCbtAENBigTPXPOoDETMCaIA hpoE lZTNDBGWfrfNcVAMfLftTaAXRSCbIloxPttoMtfjjyzYscNEkchtfktdU uxos shelling shooting military_presence wildanimals_stray_dogs other_specify FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE WeMrtNxHtyC fbUdFQACMFBgOHlBJtHG CwQVoNpDUgUysQhHiR uxos_on_school_grounds shelling_in_the_vicinity_of_the_school shooting_in_the_vicinity_of_the_school FALSE TRUE TRUE TRUE FALSE FALSE FALSE fyrWOFUAN FrKWtltCXsDm refuse_to_answer no 18 MJPPpuvdiGHpzvyNMQQOnBKJVgPy fFAVVSpcDPg paediatrics ear_nose_throat_ent ambulance x_ray post_trauma_rehabilitation none_of_listed FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE TRUE yes never distance_to_facility cost_of_travel_to_facility lack_of_referral_system irregular_presence_of_doctors unable_to_leave_the_house_due_to_covid19 lack_of_doctors long_queues FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE jrUv Azqk kw ltGTCSmHcGtlwpJcyJRnCFNMUOJxPhLrJ EnxthfWiVIy SSlYWJwwxhuVZWhgKfSYsIlxA dont_know dont_know_ns dont_know_ns refuse_to_answer less_than_15_mins no items_not_available items_poor_quality market_damaged FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE dKwymITPQwQlJUiArkaVnyVEAwflk BEzRHTRyFZCfcXDIXoSFuoENoFwzQWGQWAKFDriJmqltySHJexVywsyunCseLGWo cereals_grains_bread_pasta vegetables_and_leaves_tomato_lettuce_spinach_carrot meat_or_fish_chicken_pork_beef_fish eggs dairy_products TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE FALSE oFyBIXMIxrVEABBApLgjurvBSAWkTKXdZnUlyHFiekRHEnnrsuWhprS zoi 17 21 no 18 nmwxLFZhTrNHaqBuidwCGsVgmbHleWYgzevgPcEhoMArAlxNEnXsbXzlfFJtOgfgkWVLKWLnJTjHFtFRRWUJxMeHMWuBgc 21 no yes_in_our_possession 17 no yes_we_all_have_birth_certificates_but_they_are_not_in_our_possession refuse_to_answer 21 yes dont_know_ns no yes dont_know no 1_not_at_all has_affected_hh_budget other_specify FALSE FALSE FALSE TRUE TRUE GPM vgppbOxiiXTEiDEOwwpyMkWhYwDKvpmvEcnwIqzRpZPJYQTHKDBVEqrStXWTzHuDurQfNW state_emergency_services army to_relatives FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE UAKTGabmjessiNKNjwRwDnOhHunprrdukRQzAImFqqEjln Cjticn diminished_lost_source_of_income limited_access_to_food loss_of_or_diminished_access_to_clean_water_and_sanitation death_of_household_members other_specify restriction_in_movement breaking_up_with_family_or_relatives TRUE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE QBHrNyTfzuzGcjxqPYpByjLjyi no_no_action_taken_cannot_select_with_any_other_option not_leaving_the_house_at_all reducing_movement_outside_the_house stopping_handshakes_or_physical_contact keeping_distance_from_people avoiding_public_places_and_gatherings avoiding_public_transport wearing_a_face_mask wearing_gloves keeping_surfaces_clean other_specify dont_know TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE zxiDHvjVBqOoPdpSkpIYZxhSHERxanzAxMdaEgBzYyQgLbsxrwYWmplBemhllOKqPnUgCanqKrbsuut no refuse_to_answer no yes refuse_to_answer no no yes yes refuse_to_answer refuse_to_answer yes dont_know_ns yes yes dont_know_ns food healthcare seeds_or_other_agricultural_inputs drinking_water hygiene_nfis_eg_soap_sanitary_pads_and_sanitation_services_eg_latrines need_to_repay_debt education_for_children_under_18 psychosocial_support fuel_for_heating none FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE vTbqlmjjvfEBi yes no dont_know_ns refuse_to_answer refuse_to_answer no how_to_register_for_aid how_to_get_water how_to_get_healthcare_medical_attention how_to_get_help_after_attack_or_harassment how_to_stay_safe_to_prevent_attack_harassment how_to_provide_feedback_on_aid_you_are_receiving FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE TRUE FALSE jSQvuRwkvxfshqFKjfDnxeKYEEzgZXFHGiBshPEthPQZBSlhwvzlJPzAmePcoSMHeJEYIjIco W places_of_worship REQfMdHYxvJ rQPtRnkXbiNC bdNBkPLWTrTfCEWKrUsxHJLOcrBxwrhW television LVZhjldUmsAf qVrlTbNNJUnSmGGazvnvqaHFEorKjjqSkiTBupcAbaRapiArS jedIIpPRalkTRbCcsodWRFPNqCZvkFBY inkind_nfis physical_cash cash_via_bank_transfer cash_via_prepaid_cards cash_via_mobile_money vouchers services_eg_healthcare_education_etc other_please_specify dont_know FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE r fCyVJxDAEYtBqAfxHOcuCAvioigQQgoA yes_soap_is_not_shown refuse_to_answer TJtTnDsWfWlfQsSIUexCsbSMVVOkyJpSSTDHqds UA44 UA44129 UKR1421557200 LB_4 no 170e35f9-856b-4c4948-94989e-3c6abd29f701
2023-08-16T09:45:42+0200 2023-08-16T10:46:07+0200 deviceID00000006 sloviansk siev_001 yes zAAbmbq yes JlHDOYhvgh QUg HyJTfQrorlVMCErLGlgw no yes female 21 20 male married disability_not_including_chronic_illness unemployed single_parent family_with_foster_children FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE mYvFpSzn avSoIvTaMcMIRLjBDsadhLeBwyaIgeHKnosNwvPOkLUxULvK HYZYpiqgJUvvWBR blood_pressure_diseases cardiovascular_disease diabetes_need_insulin chronic_respiratory_condition musculoskeletal_system_and_joints gastrointestinal_digestive_tract_incl_liver_gallbladder_pancreas_diseases genitourinary_system_diseases endocrine_system_thyroid_gland_and_other_diseases TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE qkJPnFqGspDSGfHCrLfLzKacpOtZTbcgsgc nyRJFFsHWVdNNXoZUjuVWFkHjkqDKoNOrndVtLEvPKyoiXOHxTYqxkzIVpjeu unemployed_not_looking KLrzIYdSlppVFAxYCpxvXNVnHMrVhAMmOeEcXfscdHgTdqVlQRocbRq health_reasons cSRkehWUQlGWvioz mines gamhZkQeRHdmooemNVArXqAdfWXrGkxANQpxpBwpSNceGpx aKhmyAyuzCXfSimWCKJqDfKjwcxXzwrDZuGUhBLfeglUgAxWPL 21 no yes yes no complete_higher 0 0 21 17 1 0 0 1 female doing_housework_looking_after_children_or_other_persons_unpaid ciSyoDVJUGOnYdBKRAEsiZBAqKpRUGemTrgoXaRQQLIuOTjHOErxNzyNJeUkpKzLZrusYZJrmsDLJY 24 1 0 0 1 displaced_and_idp_status 2019 nmfHGuCmBeyrPLU QOhEDqNQehtlReVXkHaDjFXowQBqmFsoVjkagUB tent bImcoNdtwQdOZllSFQIoAZClqghZyYDOmeDQyvIRAcoobFMHgRPrmU no_but_free_accommodation_paying_utilities uxxetguigLv PLTLouv qjEysTdsiLPwTT presence_of_dirt_or_debris_removable dont_know FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE TSPURVVihIdmtDpDFsmzUvOkTxMosNLCXzSJvpdaHitTbhjFlavDRuccUnXWpIYOQEeesvX hbEjrB iYMscs opening_or_cracks_in_roof roof_partially_collapsed broken_or_cracked_windows exterior_doors_broken_unable_to_shut_properly large_cracks_openings_in_most_walls some_walls_fully_collapsed severe_structural_damage_and_unsafe_for_living total_structural_collapse foundation_damaged_or_shifted gas_water_or_sewage_system_damaged other_specify_none_of_the_above dont_know_prefer_not_to_say FALSE TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE RgcHwVSFvTgpvQQcgoU syVjXeDB bxYhpHLBbHMNPRnlhjrpjDXLNLvwye yes no dont_know_ns dont_know_ns 20 yes yes_after_3_months functional_stove functional_heater_movable hh_has_all_items FALSE TRUE TRUE TRUE bedsheets towel thermal_underwear FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE central_heating electricity none TRUE FALSE FALSE TRUE FALSE TRUE 20 VMxUHFztzlgpHOBbKKXYNZXCTiLwrxjVrQtit hNPniAmuVmLksYxbJTJqFtlGr 19 NSNVkuyUfmTnhGf fUDVKIjqUWPNtK sdxtdzslLPOybdkAKsmyMMO bKNTBIONxXrTBynBoOOBrT wood briquettes_not_coal other_specify FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE saWRLiROIDIKSzoROkdzpkdKFSemcNOMRhlAnixhjbwfkfiZf 20.32529 19.38777 17.69224 15.47431 no yes_infrequently_irregularly yes_infrequently_irregularly public_well_or_boreholes_shared_access cYWSBBVhRMjLCBovRFOs EHZWYDph do_not_process_purify filtering_the_water_pitcher_filter boiling other_specify TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE PkuWzDBwXIBaLEGJVPxZbHRzXU aSfjcYPHyE JoNv refuse_to_answer wzilYWfNR OOVvNDjybHTDQrmctKzEkRlmGSgzLCguOcvtKHbqEFCfhGemS EYllLRJcGXKPoHqnZlNF CsK DaYsecef tap_water_centralized_water_supply_appropriate_for_drinking YOCQfYcKMDSRiFUkLyysURnMehmcThKgHqhJcjzuhKzMWfmGurNPjlAJSBjXtT dont_know_ns 19 do_not_store_water glass_bottles a_bucket_with_a_lid a_canister a_barrel_tank other_specify refuse_to_answer TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE KncSlhcwjDLduQQYR ATEhRmTUoQA ZQ mvQnNpGdJHHgXRouIHxNPFdWlIAzqTZEn cdzIDscpleKXcVxAbKuVyMY drinking personal_hygiene dont_know_ns TRUE FALSE TRUE FALSE FALSE TRUE pit_latrine_without_a_slab_or_platform MwenG QaTEblMhHXadRIqUW YuIJTpABNULgOytrTCrhxscjsqRxYaQOFZMEFOLKOOygbPqIaDsEvh not_applicable we_use_services_of_a_special_service_which_regularly_takes_out_garbage 6 2 0 6 1 6 1 3 1 7 0 0_no 3_often_10plus_times 0_no 1_rarely_1_2 0_no 1_rarely_12 no_but_needed no_but_needed yes no_already_done_so_cant_do_it_anymore no_already_done_so_cant_do_it_anymore no_but_needed no_was_not_needed no_already_done_so_cant_do_it_anymore no_was_not_needed yes no_was_not_needed no_but_needed kindergarten boarding_school vocational_school FALSE TRUE FALSE TRUE FALSE TRUE school_too_far_and_no_transport cannot_afford_supplies children_at_home_as_carer TRUE TRUE TRUE FALSE FALSE FALSE FALSE tOEYBrtELZdFSiWZxZ RCghhaWnTgJbsbMRYZxuohskXIMwmKUQQIHopwkaTQIrBDgPeSkmTeOKtIUYK 21 19 19 21 18 19 21 17 17 22 18 20 18 22 22 17 22 21 19 20 22 refuse_to_answer 20 19 16 21 18 17 school_closed_due_to_security insufficient_teachers security_concerns_by_parent health_issues family_personal_reasons too_expensive_school_fees_supplies_transport_etc transport_unavavailable TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE RtzQUTDyqIynnrsNQTTukLRVrtrEgvZWTJbCjOvh mucspGhuleSFyVCgYbneUuo fwPHeNJHUO ulko more_4_months no_problems quality_of_teaching_staff quantity_of_teaching_staff lack_of_pss lack_of_medical_support other_specify TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE samAwiEATQQbHNaucPPRwowNGsldMnJuJHnFLtDB uLwMgdzjvuIKQsuwQqctAlCIGtSaODlbqiSgOcbBMEBMd uxos wildanimals_stray_dogs other_specify FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE tSsyokI none uxos_on_school_grounds shooting_in_the_vicinity_of_the_school military_presence_in_the_vicinity_of_schools other_specify TRUE TRUE FALSE TRUE FALSE TRUE TRUE OHIKuNlSvyarXNCxYGwIOuIUJm xUjIpPQyOse YmreuzBcHWjRqaSbjipvzicLvdoyZSk no no 21 hFfKenChvPFxfxyPPJTSVktiCBmBicsGiqpNTwb obstetricgynaecological mental_health_care ear_nose_throat_ent inpatient_facility laboratory x_ray chest_photofluorography post_trauma_rehabilitation dont_know_ns TRUE FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE no dont_know_ns lack_of_facilities distance_to_facility cost_of_travel_to_facility lack_of_documents security_problems_in_travelling_to_facility irregular_presence_of_doctors required_a_covid_test_prior_to_treatment other_specify long_queues TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE QraIX VB xiCCnJxzWtOrqibzruRnzsgJvJwXGxStFrymZqdVPHhVqYQrCEnoRHeTlHaHKcMWGeCTlTgDtfedty no yes refuse_to_answer refuse_to_answer less_than_3h yes items_not_available items_too_expensive distance FALSE FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE gPCjFBoTgBRF cereals_grains_bread_pasta roots_and_tubers_potato_onion_beet fruits_apple_orange_strawberry meat_or_fish_chicken_pork_beef_fish pulses_nuts_seeds_lentils_beans_nuts oil_and_fat_salo_butter_sunflower_oil sugar_or_sweets_cakes_chocolate_sugary_cold_drinks other_specify TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE tULryqwSCYBIubzqBO g 23 20 refuse_to_answer 19 LHkHOAkuDvGRMtaDxn 21 dont_want_to_say dont_know 21 yes yes_we_all_have_birth_certificates_but_they_are_not_in_our_possession dont_know 21 yes refuse_to_answer yes no refuse_to_answer no 3_sometimes_i_need_to_change_my_behaviour_due_to_mines psychological_safety has_affected_hh_budget FALSE FALSE TRUE TRUE FALSE HTEEcDZQKaQzvdtbvWrwzoIeCRhxuwjcDVLbG l state_emergency_services mine_clearance_ngo police army to_relatives FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE jPaxcSUlPePDhVqpb EcLITnvZUOLoMqWgWUhnTQxZDLVqGbaagzyeniPJXPXHPDetsCFyQqMuuUVSTJVZ diminished_lost_source_of_income limited_access_to_food loss_of_or_severely_diminished_access_to_basic_services sickness_of_household_members other_specify no_covid19_impacts_on_my_household psychological_deterioration TRUE TRUE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE GTWGcQYIZdaufPLKgT no_no_action_taken_cannot_select_with_any_other_option stopping_handshakes_or_physical_contact keeping_distance_from_people avoiding_public_places_and_gatherings wearing_gloves washing_hands_more_regularly praying_to_god TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE CnuDkQSAyiLhwFXMqQycUoZibCjroWsmr refuse_to_answer no refuse_to_answer refuse_to_answer refuse_to_answer no no refuse_to_answer refuse_to_answer yes yes yes yes dont_know_ns no no shelter_housing fuel_for_heating other_specify TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE XApYA Ku hylaoVMycDqBBjGie dont_know_ns yes dont_know_ns dont_know_ns refuse_to_answer no dont_want_to_get_information how_to_register_for_aid how_to_get_water how_to_stay_safe_to_prevent_attack_harassment how_to_access_education TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE YoAYvxeyKuCHmi AbEgsCNiUcOnZVhwgWKH qjMM community_leader Bm bwobQdANqMLDWEn social_media_twitter_facebook_etc GSiqrOeqpdHLve PIaRkZtfU physical_cash cash_via_bank_transfer cash_via_mobile_money vouchers services_eg_healthcare_education_etc other_please_specify prefer_not_to_answer fuel_for_heating construction_materials FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE kuoAkYXQbHYkfLHXrSYOzIguaJjgHUvOZNPzLpUeowZIbGiKecHeguUqWnN no yes cNwKjkDKzowzXOkxxwDJnoJEwgSKxtWxgbxa jvShkcmzCO UA14 UA14123 UKR1421588202 EA_1 no 5bd1af64-e731-454a42-9f9798-0dbef257a341
2023-08-16T10:25:37+0200 2023-08-16T09:50:00+0200 deviceID00000006 mariupol mari_003 no RDolWTIdRBL no DnqYRZaUveDhgc yes no female 20 23 male single unemployed family_with_foster_children chronic_illness FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE eVnTXvbtqShySUhRKaaEHKml eREczPKaJkYhhqXtDBENCCRbXPEtEUgQnwoyGJfoK ArMbbyYyiqAsBWFmkKHJamn cardiovascular_disease diabetes_need_insulin diabetes_does_not_need_insulin chronic_respiratory_condition neurological gastrointestinal_digestive_tract_incl_liver_gallbladder_pancreas_diseases endocrine_system_thyroid_gland_and_other_diseases FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE deG hfDzcZWpfseZNkKDkRybsZJYEfUNHSoCxoOgCAUWZRCfjecTrTWHCFcunyQRxIUIXmzi paid_work aYnFcLsMzGdzFBTOSZezOaYzSAJWew lack_of_relevant_vacancies_in_the_settlement DKjQboQYRQzDqDGUXirUTmmUuTpjSxVGiUEvno XFrQAecxTcqAUiVDsyOnpBKYZOeTcOUuFcmrfXkLaOCkbxzWhIZm it JkCfFyKqRl JLEDRMgTbPuizFqups 20 no refuse_to_answer yes refuse_to_answer basic_secondary 0 0 20 19 0 0 0 0 male doing_housework_looking_after_children_or_other_persons_unpaid CWRfXfCKfbk RvsrSQQmk BuvLRgBaGcJooPFGgyIsWncLJqGMpuPRI upctHOilsiZzRZttMxZcpFewYhIvowmF 17 0 0 0 0 displaced_and_idp_status 2014 HRaoKDjKhLsyroNMSMwVpWcCmmgpiRlhYFkrDCWwxIHAKpZgFY collective_shelter HNkScfGzZkVjezNdhCFeoV other_specify VffIKRrAVn BYFzqV GqacNVAcvnfGrprbvBjBpTZgZZG MvTRLfjZER no_issues lack_of_insulation_from_cold presence_of_dirt_or_debris_removable presence_of_dirt_or_debris_nonremovable dont_know TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE TRUE vGzefIKH cAPI opening_or_cracks_in_roof some_walls_fully_collapsed severe_structural_damage_and_unsafe_for_living gas_water_or_sewage_system_damaged electricity_supply_line_damaged_and_not_functional other_specify_none_of_the_above dont_know_prefer_not_to_say FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE DiLDM hzTThtWFdQuViUjmsbpvBCzkAcoSvffpHrshAuSUzKKw JbKDDIqfssK aUZYmRWawSrXQLWrNRkdvzpbny dont_know_ns no dont_know_ns dont_know_ns 18 yes no refigerator TRUE FALSE FALSE FALSE bedsheets towel winter_jacket thermal_underwear adult_warm_clothing each_member_has_all_items FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE adult_diapers none_needed TRUE FALSE FALSE TRUE centralised_piped_hot_water_supply centralised_piped_cold_water_supply gas FALSE TRUE TRUE FALSE TRUE FALSE 20 iVgcqwNffyKQP tysaRDkoK EhNfxZjRSPjnzZprismczniT 22 JpNZwEeARucjXOaDPvbxvquzqdRTfNH central_heating electricity gas kerosene coal briquettes_not_coal TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE bcgynnvTExCOWJTHgNsQAWYANgLkQMknVUQBFsWDNAi Ev 22.67407 21.27733 18.85252 18.88043 no not_connected_to_this_service yes_daily_every_day trucked_in_water_truck_with_a_tank_etc FTzfQbJEAZCFfUcgyvkkqOQkJiNtSpMJqQzHjDQN do_not_process_purify water_precipitation filtering_the_water_reverse_osmosis_filter boiling percolation other_specify TRUE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE HFvHczVqrrKZgCbSJODdHIqQovEyIyLNpfiIXlVrcPlUj vfIlIFwjG yWMSHFhRjNSLFyViGhUdqMXHePITkvTchiQvzxfZ refuse_to_answer AyI personal_well IsiqOWXZWiOqwAIAoeKIfFtMGPwBfdhBwXCHsEZQBEjJkJ no_shortages 22 glass_bottles we_fill_in_the_bathtub other_specify refuse_to_answer FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE qrkHwUzMsRYRkEgvVfIdJpT VqgNHfHKbjtODfuAZUsMUzeNJylCHR cooking personal_hygiene other_domestic_purposes FALSE TRUE TRUE TRUE FALSE FALSE open_defecation EwxNnuyfGxBOhgUsApQVmnyN refuse_to_answer we_sort_garbage_and_submit_it_for_recycling 0 0 7 2 7 7 6 3 3 7 6 1_yes 1_rarely_1_2 0_no 1_rarely_1_2 0_no 1_rarely_12 no_but_needed no_already_done_so_cant_do_it_anymore yes no_but_needed no_already_done_so_cant_do_it_anymore no_was_not_needed no_already_done_so_cant_do_it_anymore no_but_needed no_was_not_needed no_but_needed no_but_needed yes school boarding_school FALSE FALSE TRUE TRUE FALSE FALSE children_at_home_as_carer other_specify FALSE FALSE TRUE FALSE FALSE FALSE TRUE RejtGJwQohDYHbbSXQmcmDwO jQXYoVbcBnuArOdaDAafDtdZCnSMx PRTa 21 18 19 19 20 17 24 23 22 18 19 22 15 21 18 19 19 23 19 20 21 dont_know_ns 21 20 23 25 17 19 insufficient_teachers school_is_damaged transport_unavavailable a_child_contributes_to_hh_income refuse_to_answer FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE wCMQXyEKCWsedBbE sYdoueKHoUJKZBBWaVkIdbtO lTBOPN 2_4_months no_problems lack_of_medical_support other_specify TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE leeZnUZOwJJedaYuynJjYUgsMMQrRZdtfoSnVyBPXIDJHVVDgkzoziQRkfze shooting military_presence FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE cThsjjMEshekLwlgKPxgQjJEZQpDzoVqVqLQSQjvVNZUvVaRzjzImQUyrFxEIrKOmdj none uxos_on_school_grounds shelling_in_the_vicinity_of_the_school military_presence_in_the_vicinity_of_schools TRUE TRUE TRUE FALSE FALSE TRUE FALSE KRgIjDYhlMgxf no refuse_to_answer 17 MEbsdMIdnAbELxhwupfpoYeTBkqZwerEYEJqndLziGuRAoZBLtsoMQuQmksEKYZPJSAOOpbWWMIbhyHcZfWeTYuknjYqV gastroentrology mental_health_care ear_nose_throat_ent ambulance laboratory x_ray ultrasound chest_photofluorography post_trauma_rehabilitation FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE refuse_to_answer never security_problems_in_travelling_to_facility irregular_presence_of_doctors FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE frLMsiwIeCxlVNDzygilqPgfTnWYZvwNFudlDP GNxESNpIfWm nuu dont_know refuse_to_answer no refuse_to_answer less_than_3h yes no_problems items_poor_quality TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE owPWntLiBQqiFvnxYtGCOSIvlIFhNp cereals_grains_bread_pasta roots_and_tubers_potato_onion_beet fruits_apple_orange_strawberry meat_or_fish_chicken_pork_beef_fish oil_and_fat_salo_butter_sunflower_oil sugar_or_sweets_cakes_chocolate_sugary_cold_drinks TRUE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE UoOMTlFexfJVvEtHNsCEoaY crHjYKHoRVXXuuN Qp 22 21 yes 21 juLmUHndFngkmidRVyGXqrZGXkmzkHZwGkXEJKBdLBKTamUoaFSjeIyDAQIfGAlZ 17 dont_want_to_say no_some_hh_members_are_missing_ids 17 no yes_in_our_possession both 20 yes refuse_to_answer refuse_to_answer dont_know yes refuse_to_answer 5_they_severely_affect_my_everyday_life fear_for_physical_safety TRUE FALSE FALSE FALSE FALSE XLDzpwCHCYrH UchIgrDGrmMcxFaewUIVAxED state_emergency_services police other_specify dont_know_ns FALSE TRUE FALSE TRUE FALSE FALSE TRUE TRUE nWTGiJhlVMODBccYCMPmARVFXoSJBvcbu zNllDnhYFvoTtoLmummVpJCeoWVgXKgrbdeZzQQZkVXavRxskUmMgMvjClkdvyXW diminished_lost_source_of_income loss_of_or_severely_diminished_access_to_basic_services loss_of_or_diminished_access_to_clean_water_and_sanitation sickness_of_household_members no_covid19_impacts_on_my_household TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE FALSE gwBlquVTihwxEtuoytEWVlNQobZLhX reducing_movement_outside_the_house stopping_handshakes_or_physical_contact avoiding_public_places_and_gatherings avoiding_public_transport wearing_a_face_mask keeping_surfaces_clean dont_know FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE FALSE TRUE LzvUXzmRkKfDEScHXTXaKeeKItfcUSbQhFxugtqeMlAUZTwgRCawBr V yes_covid_related_reason refuse_to_answer refuse_to_answer refuse_to_answer refuse_to_answer no no no refuse_to_answer no no no no yes no dont_know_ns food livelihoods_support_employment drinking_water psychosocial_support fuel_for_heating none FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE yes refuse_to_answer refuse_to_answer dont_know_ns dont_know_ns refuse_to_answer dont_want_to_get_information how_to_register_for_aid how_to_get_healthcare_medical_attention how_to_access_education how_to_find_work other TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE TRUE FALSE TRUE amTqkwvIJvFC friends_family_members wODuACSTNozz sms bteCSOvZezFKGaWh wLeHXfYCNkAhVklZwXAcCQWcKPTXzCplpFMknbhIbHGa inkind_food cash_via_bank_transfer cash_via_prepaid_cards other_please_specify dont_know fuel_for_heating FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE FALSE WTlBVGlZhC pgvJTVUuFZo wQbQcSdwKOuLLDawRdwffGKXIOIbsTUfudMrJhp yes_soap_is_not_shown dont_know_ns wcgsVTAViBHIAkCyTdKJBCwnBcnnhylsFmRJwOXdSeOAcelqtcypRCWwmEWOtKfsKbSfQsKasBCArfZvBxOUQFtjGjU UA44 UA44129 UKR1425583101 DK_1 no 82dea9f1-719f-4a4d4e-b8beb4-f92450e3da87
2023-08-16T10:00:51+0200 2023-08-16T08:25:39+0200 deviceID00000005 sievero slov_008 yes SsOsgzUmixrPvpmFMYuQustwpzalDBSFaXHGtqBfMEGnQVGJrPlciiXIL BuXWjS nQCbtkHgyeIpvxGIlnDDSt h yes btWyLTGRIfZEqvKSZDvWZgEqmVmwdoWmBRiOSvdI yes yes male 20 20 female single older_person unemployed single_parent family_with_foster_children chronic_illness FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE qcHNEuDYuEWb bYbMgstcwOnlLUhyBcpGWBlSNLtIeNaL cardiovascular_disease musculoskeletal_system_and_joints cancer genitourinary_system_diseases endocrine_system_thyroid_gland_and_other_diseases FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FBESXRhejuoWMwTbXLXrAjlPdrdWVqAeJ bxOdKniJqkcZkYMxMHBcDYwnsMsxyRmQvAHcLzr paid_work CyjPNZCzzTboYLLHVDKYMkVMjwjxavoICYTRbZnOnNwoFHqcfLWCmlu hXPxO personal_family_reasons MsbUWdAgMYZHtGcE education QyJSUYHMXcdAIGijXQObc 19 dont_know_ns refuse_to_answer yes refuse_to_answer vocational 0 0 16 18 1 0 0 1 male military_service xxwEmPyInoQfMAQXriwrPrlMEAVSLWZUaWPCTqyhSElqcDmCvrGlOnCTIAVJJ GvrTNSnqtHyPmjlzYoNpTx 19 1 0 0 1 displaced_but_does_not_have_idp_status other_specify cpxJHPtxFeusGrGdHpwbyx lZFkxpUfV igvHWQlSCdlWIal fpswhQGSCR other_specify wpqEpFLVZDQCfUfmXZKvqFprMKRe no_free_accommodation_free_utilities rIIxIquVQwtHJnSSdiwXTST no_issues lack_of_insulation_from_cold leaks_during_heavy_rain_snow presence_of_dirt_or_debris_removable presence_of_dirt_or_debris_nonremovable TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE CHLOWGtKGd JWiTzbMOrVN ooSOaCegGylnAJzpeqtbAJrUXgUBrdXyfruuEjsYyN Z none roof_partially_collapsed broken_or_cracked_windows exterior_doors_broken_unable_to_shut_properly some_walls_fully_collapsed other_specify_none_of_the_above dont_know_prefer_not_to_say TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE HGeulsrrH dont_know_ns no dont_know_ns no 19 refuse_to_answer yes_after_3_months refigerator functional_stove functional_heater_movable TRUE TRUE TRUE FALSE mattress towel winter_jacket warm_winter_boots warm_scarf thermal_underwear child_warm_clothing each_member_has_all_items TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE TRUE adult_diapers child_diapers none_needed TRUE TRUE FALSE TRUE centralised_piped_hot_water_supply electricity gas FALSE TRUE FALSE TRUE TRUE FALSE 19 mTXcqEfsJOgAFvakoAzAuRJwbXZsSxtSoZwjUaJyAt 19 rszbUSkwiCdRsTuNNpEljuxfgYobKAVmPbEnCYOqYBIPVlD rZ NzNpadqIqwOtQmkmWMkQixcPpcvxWMHWRaO electricity wood coal briquettes_coal other_specify FALSE TRUE FALSE FALSE TRUE TRUE FALSE TRUE TRUE pBBWyndUpZqqEPhjvKuEWMDNMfkUAKFoZhpLBXRcuYwaEXLLGHdenjPbSPGwKlZDktqXRYzkuhStpZuOHfwXuUnsTxhhAavcY 18.06702 18.64185 16.69118 20.96493 yes yes_infrequently_irregularly yes_daily_every_day drinking_water_from_water_kiosk_booth_with_water_for_bottling hGsWEyJgwvWKOYAISUlXPLFqRGdaFwBVfieTEZK do_not_process_purify cleaning_with_chemicals_chlorination water_precipitation filtering_the_water_reverse_osmosis_filter boiling dont_know_ns refuse_to_answer TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE SUhkIbzHkgAIwsNbJOMrfDDAYKxnRGjUIGwRbzoeYQOLuTsauVvpfehUdkumJNmgmHsfVJpvqatYSxqInRzmWvBhRWgRUukcDbG dont_know_ns ADdsj y bZyQvwHZTuILn JCVfCcNL jANegCeSvi personal_well EvpcOKogiJHgPsHVVsWoVaZMrPXEnxZOKScWovKGLpQCIr HOUfKtDlplqKZfJbNxifJYSjDpLvQD no_shortages 19 a_bucket_with_a_lid a_bucket_without_a_lid a_canister we_fill_in_the_bathtub FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE rNRVcziZGYSIbUKFDCdgQceTBExyXrEYPZhFfg drinking personal_hygiene dont_know_ns TRUE FALSE TRUE FALSE FALSE TRUE pit_latrine_with_a_slab_and_platform CooCZUZVX GkgopcVnXIoIrmxrtjgCUdqFNwJczvkFGccR DJywursqIKTLTG yes refuse_to_answer 5 1 0 7 0 2 0 4 3 3 5 0_no 3_often_10plus_times 1_yes 2_sometimes_3_10 1_yes 3_often_10plus_times no_already_done_so_cant_do_it_anymore no_already_done_so_cant_do_it_anymore yes no_but_needed no_was_not_needed no_but_needed no_already_done_so_cant_do_it_anymore no_was_not_needed no_already_done_so_cant_do_it_anymore no_but_needed no_already_done_so_cant_do_it_anymore no_already_done_so_cant_do_it_anymore none kindergarten boarding_school vocational_school TRUE TRUE FALSE TRUE FALSE TRUE school_too_far_and_no_transport children_at_home_as_carer children_in_paid_employment children_has_disability_that_school_does_not_have_infrastructure_for other_specify TRUE FALSE TRUE FALSE TRUE TRUE TRUE AyQCtwNlVHYQIXvMZobAMMSLsZHUb HWkDdppOVZtCJKiGseJnpGbgpuSkBSPcZJdUBkBxvbHml 21 23 21 22 18 18 23 22 18 23 20 17 18 16 20 22 17 20 20 17 19 yes 20 18 23 16 18 17 school_closed_other school_is_damaged transport_unavavailable a_child_contributes_to_hh_income other_specify refuse_to_answer FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE PBlHEhMlLplmTYRVvkeDfAtPSEPdcYVWbKTe cLwQXHZv OwLZfvlc 1_2_months price_for_service school_is_unsafe problems_with_distance_learning_due_to_closure_of_school_for_covid_eg_bad_internet_connection FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE LEuyRRkUQGiNlBKpkBRyNRUakliwPZMeLrLeCdsnYmeYVkLtKHgQEglJGlYpZXDCX MTYFCSaKYyy KddE none shooting military_presence wildanimals_stray_dogs TRUE FALSE FALSE TRUE TRUE FALSE TRUE FALSE sLstkKAlVTdqLTBNKboUZUmEllJwvqlPkfwCKWulsJYdyAayEnHEykMSMWyatxUjyXRLKeRyWCNrYVXtlDNHo none shelling_in_the_vicinity_of_the_school military_presence_in_the_vicinity_of_schools other_specify TRUE FALSE TRUE FALSE FALSE TRUE TRUE cobQBZNnRObWADbxJodFRMhvceiUNLuG yDsXmnzUXQzQ PQWFEqRsacN dhURQ LLicMLMjowtXPeSfGwqbSXDOdsOZFbEP no no 19 WQooQcCUbHwAXr kOjkfwCOTrtBsFumtmUJqslSbEeOePlWcEmUelioyXuvCYvXsGmlTGTqTZZaDwIvZKP obstetricgynaecological ambulance inpatient_facility outpatient_care x_ray ultrasound none_of_listed TRUE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE yes often lack_of_facilities distance_to_facility security_problems_in_travelling_to_facility cost_of_appointment lack_of_referral_system have_to_pass_through_entry_exit_checkpoint_for_medical_facility_in_the_ngca insufficient_qualifications_of_doctors TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE JisybKahRyCPSIgXBqdhetiobeH fvvOnhLEMjyZvaRxsgdj IWVqiixPoWQCuRodVYCPJoYtmxXrAzoXVmSkgmJliiKPUvev yes refuse_to_answer no yes less_than_3h no items_not_available items_too_expensive market_damaged distance FALSE FALSE TRUE TRUE FALSE TRUE TRUE FALSE FALSE pgDFqaXIYyRnSnHHxmeacFxYzOzYTWzdJzplkvEOjg vegetables_and_leaves_tomato_lettuce_spinach_carrot fruits_apple_orange_strawberry eggs pulses_nuts_seeds_lentils_beans_nuts condiments_and_spices_tea_coffee_spices FALSE FALSE TRUE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE wCQGlBTgeKDWKSAUrqoLnNTLQjBjnsYIXThzLwhCnxTTsXSWkksRcSwmAJEvoHDZbGDLJbVGq gRMiWBG 19 22 no 19 nCdiNdawTWYXkkJWWXpUzTGFZB 23 dont_want_to_say yes_we_all_have_ids_but_they_are_not_in_our_possession 19 no no_some_hh_members_are_missing_birth_certificates refuse_to_answer 22 no yes no no no dont_know 1_not_at_all fear_for_physical_safety movement_and_access_constraints TRUE TRUE FALSE FALSE FALSE TjnkukS state_emergency_services army to_relatives dont_know_ns FALSE TRUE FALSE FALSE TRUE TRUE FALSE TRUE xmvAYHOkmfPWENjihmbgrFFBBWcVyvLyJSR I diminished_lost_source_of_income loss_of_or_severely_diminished_access_to_basic_services loss_of_or_diminished_access_to_education loss_of_or_diminished_access_to_clean_water_and_sanitation sickness_of_household_members other_specify restriction_in_movement TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE GOhwPNUNbdiVtZpDxxdcuLyAcdKYWeRI no_no_action_taken_cannot_select_with_any_other_option avoiding_public_places_and_gatherings wearing_a_face_mask washing_hands_more_regularly praying_to_god TRUE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE i no refuse_to_answer yes no refuse_to_answer no refuse_to_answer yes refuse_to_answer no yes no yes refuse_to_answer refuse_to_answer refuse_to_answer food seeds_or_other_agricultural_inputs livelihoods_support_employment drinking_water hygiene_nfis_eg_soap_sanitary_pads_and_sanitation_services_eg_latrines psychosocial_support none house_repairs FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE LXDNuuyGEhK yes refuse_to_answer no refuse_to_answer no refuse_to_answer dont_want_to_get_information how_to_get_water how_to_get_food how_to_stay_safe_to_prevent_attack_harassment how_to_access_education how_to_find_work how_to_provide_feedback_on_aid_you_are_receiving other TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE xLxdoKAkRZqZiURdpcbzEBsTGtUkVkHYNwgAfxQlRopkukl oVFqiRmibTYHCbLBQhOaCbchCltb aid_workers_from_local_ngos_or_civil_society_organisations AL VNsxmhmYWGiDGKZiNgtdSjCSEhsJRjNKYrnpKArSRIUKuRgBCyKmUgfWuodA vrsesBjARJiPlLiCT billboards_posters_leaflets ciYGRDlXndEEILBOTfQqVSlLCQQZjDOEqGNydqoJYmBKLmbfKPCZT do_not_want_to_receive_humanitarian_assistance inkind_food inkind_nfis physical_cash cash_via_prepaid_cards dont_know TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE mecFYfmIIXVZVLPCubCEXZvXdzQQmqTVvnbDNSwVaCLKLlKwWoyEHw kNOmqNLILpoB UGUCTPOjRCwKHgmwLw no refuse_to_answer DWNXjHaxubpcrzfY TtDArBwQjNisrXsXyxzj UA44 UA44238 UKR4423180701 BD_3 no b31c7654-ac65-464148-878681-072cfead9b53
2023-08-16T09:13:38+0200 2023-08-16T09:52:27+0200 deviceID00000003 sievero slov_007 yes CZIRcuDJvzQRzawZBVUGUokxTJ vGXYmwjSqN hxciw GyMAH tNntWnkksJbzlCekurDzvGHaXDsRIFptLpoULlFia no YurkpfICATSaepNuWwGLWEVWLOapAAEcMRhzdcMXoQlINgUWABXus no yes female 16 18 female separated_married_but_not_living_together no family_with_3_or_more_children TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE IZvYbsaNhoMMjximXmkbMgpcyQDjjZEFlzLilIENkvZBtcYuzi diabetes_does_not_need_insulin musculoskeletal_system_and_joints cancer sensory_disorder gastrointestinal_digestive_tract_incl_liver_gallbladder_pancreas_diseases FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE FALSE FALSE ClWlnUTKosVKeOenujYvL permanently_sick_or_disabled_cant_work dUJpEopZElJun gdYUFMLEGqkauqSAZNHUmgJkge no_employment_opportunities_in_settlement yVZeyNLwme construction hVfsqeQIeykJolqUmBBmBOwgXoQt 21 refuse_to_answer no no yes primary_education 1 0 16 18 1 0 0 1 male retired_not_working rFgmZXatqpojSlt VVNJouIQFsXalFPjjjZcFK MXmDx 21 1 0 0 1 refuse_to_answer 2016 piozjmEWvQRPFydTeDFjAWnRHXMKwKwzKhiicxkYEXilMLbKcGGndVhDxOaTU TKlVSsNvsh solid_finished_house icwboI kpPNuGIWRupYDMBTkzIlMmqzlYjZqjmhIMyjYmjCgaOcyGOmttYuTdpgNsctZGrmcvkwDzMNRNmauooPOUHbWMENXpahE other_specify AXcCLtqcrlSkuEYjSuhdTsayf presence_of_dirt_or_debris_nonremovable none_of_the_above other_specify FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE NbKMdAEmnIShPYdFTGycOWNkAzAETzUzazPRVBfxOlEmfCCGuTxkh none roof_partially_collapsed broken_or_cracked_windows large_cracks_openings_in_most_walls some_cracks_in_some_walls damaged_floors gas_water_or_sewage_system_damaged electricity_supply_line_damaged_and_not_functional other_specify_none_of_the_above TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE PvZMJM IWslPKYPsIgVctC no dont_know_ns yes yes 21 yes yes_after_3_months functional_stove functional_heater_movable FALSE TRUE TRUE FALSE bedsheets towel warm_winter_boots warm_gloves adult_warm_clothing child_warm_clothing each_member_has_all_items FALSE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE adult_diapers child_diapers sanitary_pads none_needed TRUE TRUE TRUE TRUE electricity gas none FALSE FALSE FALSE TRUE TRUE TRUE 23 EUeRYTgrHqyIPlsMlEQywFhoJpTfAyFslH 17 uufdtUpQZLz lvmnRlhAYnIEEDepwkbQfhjgmnuDOpuGoYwPTByavcUsFxFXVLQtRXuJHeIsGgaIeVRQhBxQXDO gas kerosene wood coal briquettes_coal FALSE FALSE TRUE TRUE TRUE TRUE FALSE TRUE FALSE IKXrKteqFtIRjzixKvI YtVfxDNLsNQHKCIAgRpg tFOKBsJbufOthwHWXMHXUAORDtw 21.73913 21.28984 16.24886 22.00986 yes yes_infrequently_irregularly not_connected_to_this_service drinking_water_from_water_kiosk_booth_with_water_for_bottling jNnlNBJTJREGFpdSnkacYIQpTVddGokNYdlZyMMNJZlZeyM filtering_the_water_reverse_osmosis_filter boiling other_specify dont_know_ns FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE FALSE yOF wWMqXOXnddNrOFvuDprfJRhBmVbS we_cant_afford_necessary_means_filters_chemicals_for_chlorination GI Durkf SpeLAPNwEFC trucked_in_water_truck_with_a_tank_etc AchjHV 1_time_a_week 17 glass_bottles a_bucket_without_a_lid other_specify dont_know_ns FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE dRxRojGUPNFxDnQHuabPAqpNqhxtCKKqkYMm personal_hygiene none_of_the_previous FALSE FALSE TRUE FALSE TRUE FALSE other_specify PDmvsdeqIfyahITiMZuLkUGMXaEgkqywuxjGAXOJrziIrbZYhIbVwe refuse_to_answer we_sort_garbage_and_submit_it_for_recycling 5 1 2 6 0 5 7 5 1 0 5 0_no 1_rarely_1_2 0_no 1_rarely_1_2 1_yes 3_often_10plus_times no_was_not_needed no_was_not_needed yes yes yes no_already_done_so_cant_do_it_anymore yes no_but_needed no_was_not_needed yes yes no_already_done_so_cant_do_it_anymore kindergarten vocational_school FALSE TRUE FALSE FALSE FALSE TRUE children_at_home_as_carer children_working_at_home children_in_paid_employment other_specify FALSE FALSE TRUE TRUE TRUE FALSE TRUE LAnQJXLayFzILD kvzojXsNuideVdiwDXVABIdrrqpht 18 19 20 23 17 21 19 21 21 20 20 21 23 18 17 14 20 17 20 21 21 refuse_to_answer 16 22 19 18 15 24 school_closed_other security_concerns_by_parent school_is_damaged health_issues too_expensive_school_fees_supplies_transport_etc refuse_to_answer FALSE TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE mLWKRbghOVQPwcgQAujimEpjbqrdLpFyV A hnkhSLCEdRxpJyuYKeuvmjvcCqraPYVWGbiCdXXmVaKZgBdCLiZFxLXgEUHfa 2_4_months quality_of_teaching_staff lack_of_pss conditions_of_the_venue lack_of_medical_support FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE y CYxZi none uxos wildanimals_stray_dogs TRUE TRUE FALSE FALSE FALSE FALSE TRUE FALSE QUAWMjlcEMZgJGMvtPDfbrvFNZxEcxbcKUCV RFmZctRJRoqFwmWmyDpBdlySADk uxos_on_school_grounds shelling_in_the_vicinity_of_the_school other_specify FALSE TRUE TRUE FALSE FALSE FALSE TRUE HFOSPrV no yes 20 OR Xmg ctmcODJMmloMZAiaqUFRxEPaTukVnYisWNGUFIfjtBhGnAoi obstetricgynaecological paediatrics gastroentrology ear_nose_throat_ent ambulance inpatient_facility outpatient_care laboratory chest_photofluorography post_trauma_rehabilitation dont_know_ns TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE yes often lack_of_facilities distance_to_facility lack_of_documents have_to_pass_through_entry_exit_checkpoint_for_medical_facility_in_the_ngca required_a_covid_test_prior_to_treatment unable_to_leave_the_house_due_to_covid19 lack_of_doctors insufficient_qualifications_of_doctors TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE HxoXkKeytAepLXlDHvbudwiaA PXaBo no refuse_to_answer no dont_know_ns less_than_3h no items_too_expensive market_damaged distance FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE fMhICdCEHRjcrjOI zOkdXzrfkzgaJkz qGNLtH dRzzmpeohWhGJInUR poRRUFLW cereals_grains_bread_pasta meat_or_fish_chicken_pork_beef_fish pulses_nuts_seeds_lentils_beans_nuts oil_and_fat_salo_butter_sunflower_oil sugar_or_sweets_cakes_chocolate_sugary_cold_drinks condiments_and_spices_tea_coffee_spices TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE FALSE LfZsWn 18 20 dont_know_ns 22 kWLalcZsziwgGAI BetbVnpZXVULSbegwYWQYKwOYoioVBuyORHMHxHsDKrPDwDWuGDJaFqncKNN 21 dont_know no_some_hh_members_are_missing_ids 22 yes no_some_hh_members_are_missing_birth_certificates government_of_ukraine 21 yes refuse_to_answer no yes dont_know refuse_to_answer 3_sometimes_i_need_to_change_my_behaviour_due_to_mines has_affected_hh_budget other_specify FALSE FALSE FALSE TRUE TRUE NmwqJQXagkkoxe administration_head_of_the_village) state_emergency_services mine_clearance_ngo army TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE PaRwrGrfDHNwUUZUYbdCLfXJKPCkfCVrqzpHTklPivuZcseWfUWmBTKhOSgk DLMhoPgimtYZ diminished_lost_source_of_income limited_access_to_food loss_of_or_diminished_access_to_education loss_of_or_diminished_access_to_clean_water_and_sanitation other_specify no_covid19_impacts_on_my_household TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE FALSE MovoMWPkhnsFcgULupqlVUUIoYWtKoqTperjZalMtrXiXfmffUtzXOAJvjRHWlIucVaBNgQJxqHUbeCyaSwmwNTQYm stopping_handshakes_or_physical_contact keeping_distance_from_people avoiding_public_places_and_gatherings avoiding_public_transport wearing_gloves washing_hands_more_regularly keeping_surfaces_clean praying_to_god staying_away_from_animals FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE BovuuPMnQw JuTdtwrCiBGUwyvwiqBvDiL refuse_to_answer yes refuse_to_answer yes no no refuse_to_answer yes yes refuse_to_answer refuse_to_answer no dont_know_ns refuse_to_answer no no shelter_housing food healthcare seeds_or_other_agricultural_inputs education_for_children_under_18 psychosocial_support TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE UkHHDqBUfnkvEdSYiyEhdCgSxAjOGsZYqq yes dont_know_ns no refuse_to_answer no refuse_to_answer dont_want_to_get_information how_to_register_for_aid how_to_get_help_after_attack_or_harassment how_to_stay_safe_to_prevent_attack_harassment how_to_provide_feedback_on_aid_you_are_receiving other TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE igmUQRhjJgEoFpzvKKNLIWsFfPmJdMKXbSnGbdhiIwcCNcqCcSwzmt places_of_worship auagSVhcxYmWC sms FH RQItZ FGTtJtYTWSzzXLKCjXGPxsHePGDdQI NpEakFvLTwhDtaWiuIYBPhlYwb inkind_nfis vouchers services_eg_healthcare_education_etc dont_know prefer_not_to_answer fuel_for_heating FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE FALSE SrrSgokSggiOndsXRZUQNqxMsUipAz KYGk dont_know_refuse_to_answer dont_know_ns AvMRTRLsEGpxpQVxKOdEprGSAf UA44 UA14138 UKR1421587701 BA_1 yes e10ba53f-fbd9-4f484b-afa5a9-d0c39ba865ef
2023-08-16T10:06:26+0200 2023-08-16T09:25:19+0200 deviceID00000008 sloviansk mari_004 no KyayDKvzMPSaxhmFSnDcMaeZQyXplDUHblotzapkeczCxGY XsunuRSSuozhAOuVbZAreByRpmMbm cVszgCZFOUYhywUMUCEVs no oUSgDLboQGUVBljVbOSnUE yes no male 20 21 female divorced disability_not_including_chronic_illness veteran_of_war_ato single_parent family_with_foster_children other_specify FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE WqZfUJulUXioSucDBCBzPksWgMdiycdbvPUgcSkcqluSCQxJjrioXFVwfGMapAC cardiovascular_disease diabetes_does_not_need_insulin musculoskeletal_system_and_joints sensory_disorder FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE nOwzPdsukbMiikfVUK PAKlEpEztA lGHtCCpIAFt uKvSqrUEcmuzKvdKHjnJrUzDnHaBCPzmgAZzQerBu paid_work cAtigFLFkDwowSvLHNQMXiyBSWA no_employment_opportunities_in_settlement eJkWuXjYtcomvLmtgSXWRsGsXKzHqjnbiT agriculture L 20 dont_know_ns no refuse_to_answer refuse_to_answer postgraduate 0 0 17 22 0 0 0 0 female permanently_sick_or_disabled_cant_work LLBFfbVtBDVioWBmiXNhdmMNcbMJphFbxbKppwTULHTXncPDWpeQEmuKbJYAMfPAD 17 0 0 0 0 used_to_be_displaced_but_returned_and_has_a_status_of_idp 2014 srBoPoHmakwMjnBlsARNzKOUwHMDxVheZVXNdATVZdApyjZerNPHlSijDSAfCcVEegyhKrJlvRE makeshift_shelter csKweBnejqnfdNujzmZ no_but_free_accommodation_paying_utilities bnCJXzriCUqWCrAtFkNOyWfEYoeWsm GdlswiwllwGLNAHTLqAXZCX no_issues leaks_during_light_rain_snow presence_of_dirt_or_debris_removable presence_of_dirt_or_debris_nonremovable dont_know TRUE FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE iqtlmoRViRVbjK wYATFBjYMLcFEeSeZkPNYpphfpHrcTi SecNQwPmPoLnBKBNGVQhMhBqzfpQrIwulwFUBuCdsHWFbaYkEV none roof_partially_collapsed exterior_doors_broken_unable_to_shut_properly total_structural_collapse electricity_supply_line_damaged_and_not_functional TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE nvD IkZJRdDIPufvemezSSErwOtwRovXhxaJWPqJghY yes dont_know_ns no dont_know_ns 17 no yes_within_the_next_3_months functional_stove hh_has_all_items FALSE TRUE FALSE TRUE bedsheets blanket winter_jacket adult_warm_clothing child_warm_clothing each_member_has_all_items FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE sanitary_pads FALSE FALSE TRUE FALSE centralised_piped_cold_water_supply none FALSE FALSE TRUE FALSE FALSE TRUE 20 JnklUrhEhyaQeJxuIoplFnFXnPQjWdwELntPJHNCWyIYJlhnOMr 20 ejzyKpfKoxKGdKmEEAzWATbngNB DMXbbgQGQYZwPoUSHCFXIfVLlfqIMScytlIPm central_heating gas kerosene wood briquettes_coal other_specify TRUE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE UybksebG TcrLGMktwduOVT 16.64820 18.02282 20.38760 22.04191 yes yes_weekly_min_once_per_week not_connected_to_this_service tap_drinking_water_centralized_water_supply iP do_not_process_purify boiling refuse_to_answer TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE EbNHyBfpdIWBluXePUTcWaSNnhYRcMUpSUZNyL vItrn dont_know_ns uzDetwz VhkXbcQsWRqbTOGUtwORhCvbLXLY sqG water_from_water_kiosk_booth_with_water_for_bottling HFdQUFpvGgQ hFPCRZaKSoqsueaCEVEdCHhvMMiIAXIhBRYWgt mnTMuFiVkvdEJgODIiHBz once_a_month 23 plastic_bottles a_bucket_with_a_lid a_canister a_barrel_tank FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE chGezQBqEkGGYPvtVJHhpwFoIulPfWiWBltEWqwNqV rAVFAhvSKcmmwbmtCpwrIPghthFnxdbWWbHezSFJaardyTMZfrJBcAHWV drinking cooking personal_hygiene dont_know_ns TRUE TRUE TRUE FALSE FALSE TRUE bucket_toilet jWLRHeeXZocFMvH no we_burn_a_part_of_the_garbage_and_the_other_part_is_thrown_down_the_pit_latrine 4 5 6 6 4 7 2 5 6 1 7 1_yes 1_rarely_1_2 1_yes 2_sometimes_3_10 0_no 2_sometimes_3_10 no_was_not_needed no_was_not_needed no_was_not_needed no_but_needed yes yes no_already_done_so_cant_do_it_anymore no_was_not_needed no_but_needed no_already_done_so_cant_do_it_anymore no_but_needed no_was_not_needed kindergarten vocational_school FALSE TRUE FALSE FALSE FALSE TRUE children_at_home_as_carer children_in_paid_employment other_specify FALSE FALSE TRUE FALSE TRUE FALSE TRUE TserMkAMdCmbtEPHrtVJPH EpYqCJVYvBSXeVOQhbgNnrKJSxjbsXjUEDjGLrRNvQtDTklyqDOjaiUIWgohKKmcOMOTQGZ 21 20 21 21 20 21 21 18 20 17 16 17 25 21 23 19 18 21 21 19 23 refuse_to_answer 19 17 19 20 20 15 school_closed_due_to_security school_is_damaged health_issues family_personal_reasons too_expensive_school_fees_supplies_transport_etc other_specify TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE IugTguYlFnQBIJRkRzLIrQeWTA lASJpZMeLoIwHLOWAg refuse_to_answer quantity_of_teaching_staff price_for_service conditions_of_the_venue overcrowded_classrooms lack_of_medical_support other_specify FALSE FALSE FALSE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE TRUE KyfgugoCQdQkoe IEiLlRjhzirDekspZAhWlf iBMnTKzyRrNehzOXCyTdGYBtjdoQJNuFK DNhnVxWxouu none shooting danger_at_checkpoints TRUE FALSE FALSE TRUE FALSE TRUE FALSE FALSE zbDjTstsylzNCH bjFNCWXgZYvcNDxUltNKbJRBzztwUKLaRaIQ qiDiDgSXcvulXfkpPunez none uxos_on_school_grounds military_presence_inside_of_schools military_presence_in_the_vicinity_of_schools TRUE TRUE FALSE FALSE TRUE TRUE FALSE jxeiTyIeFCDmLffsUCqdbABvEeSJWzzXhyfzZUoy yes refuse_to_answer 23 sxdsfOWFjuWVnwMPEtvXKHOMFCEspROHGFFWKuAsUzMgzxm mental_health_care inpatient_facility laboratory x_ray FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE FALSE yes sometimes lack_of_facilities distance_to_facility unable_to_leave_the_house_due_to_covid19 other_specify lack_of_doctors long_queues TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE xcUexuzkeLHFywyMVsuHDEyYeUkNmGOSPhdSGesBdzqLqAdqrbvzXKYda no no no no less_than_1h yes no_problems items_too_expensive items_poor_quality distance security TRUE FALSE FALSE TRUE TRUE FALSE TRUE TRUE FALSE PuaTMqawdXbmmakizTLuCOesSyYliIpfmDirFIZxbVWgxrXYPoGGngUkYMEING cKl roots_and_tubers_potato_onion_beet meat_or_fish_chicken_pork_beef_fish eggs oil_and_fat_salo_butter_sunflower_oil sugar_or_sweets_cakes_chocolate_sugary_cold_drinks FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE KWkBpxSFN hflnQaivzswQckKjZVKNzyznsGseCrhOmtDMXZQfD vlWFgtpsydvfblPHxrieAzHCVGWgOBjaIvKrJRVadtykW 20 22 no 20 IziiJCbuEdhkIbIqVMrupHrlZZbxqmlKiWxJqypkhVbZUWkxwLzXhjZOvzi IhxkYkhoxCcGTobBMvlVZoByQXgrrd 21 yes yes_we_all_have_ids_but_they_are_not_in_our_possession 21 no yes_we_all_have_birth_certificates_but_they_are_not_in_our_possession government_of_ukraine 19 yes refuse_to_answer refuse_to_answer yes yes yes 1_not_at_all movement_and_access_constraints psychological_safety FALSE TRUE TRUE FALSE FALSE rAQXmRAmeIGZZSNyRAvelcANZwRFIAlRKHNdfj mine_clearance_ngo army to_relatives other_specify FALSE FALSE TRUE FALSE TRUE TRUE TRUE FALSE hHvfOMIYfVyxviWVFutpdPsolWuslwYZdZqqIfoYVNilidPuIZanJcUnwjuevMkaEsJeSwVcQI diminished_lost_source_of_income limited_access_to_food loss_of_or_severely_diminished_access_to_basic_services loss_of_or_diminished_access_to_education loss_of_or_diminished_access_to_clean_water_and_sanitation sickness_of_household_members death_of_household_members restriction_in_movement TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE ryTgSJopHA not_leaving_the_house_at_all stopping_handshakes_or_physical_contact keeping_distance_from_people avoiding_public_transport wearing_a_face_mask wearing_gloves washing_hands_more_regularly praying_to_god other_specify dont_know FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE NPSfRokBYOBLUTwOnfyfhtxHgaOjGHJXabeokaYWDVHkZujHYwqnXfngHNQDIrIDfqKhdCzKAGrxULd yes_covid_related_reason yes yes yes no yes yes no no yes refuse_to_answer yes refuse_to_answer refuse_to_answer no yes food healthcare seeds_or_other_agricultural_inputs drinking_water hygiene_nfis_eg_soap_sanitary_pads_and_sanitation_services_eg_latrines education_for_children_under_18 other_specify FALSE TRUE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE TVUhROkSEbtymUphYZFsvvmvQknsCKkdzin xneDZaBifTroAK dont_know_ns yes refuse_to_answer no yes dont_know_ns dont_want_to_get_information how_to_get_food how_to_get_healthcare_medical_attention how_to_stay_safe_to_prevent_attack_harassment TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE bQXTPNphm WOYxoTxyDdniXNVzBtkeslrLWLglOLZbWXbnDlmlbNKCYMaSbrMfpKt government_officials newspapers Gd do_not_want_to_receive_humanitarian_assistance inkind_food inkind_nfis physical_cash services_eg_healthcare_education_etc other_please_specify construction_materials TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE RsVlxNaOOFkDjMGhoTWcxQnVJEnicKQlfp KZkCLIFqTjMRvmmVveARGkTmReIznuygMqfmEGHMiIfEoLitYKVrj dont_know_refuse_to_answer yes IxgZDmjqeZYsyxlQEfIXlzNXxZhyxrWnBkfbBvLcvwNxhTSNIwvYYmfOoMVwcFSvQXfUFtSZGwddKHtcaEKURT UA14 UA14217 UKR1421556600 JP_2 no 12738f49-3b9c-4e4449-939d9e-dcb58192764e
2023-08-16T09:29:31+0200 2023-08-16T10:02:19+0200 deviceID00000010 sievero slov_004 no XPYnWZYkbFSGCLHtNmHazWipOBirFnXIoyEAEhgITUWbEEjZguqbBqTAwAqmcZ yes NnTVHB yes no female 17 21 female divorced no older_person family_with_3_or_more_children chronic_illness other_specify TRUE TRUE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE PaiLLqPHJirvQcwvsZD diabetes_need_insulin diabetes_does_not_need_insulin chronic_respiratory_condition cancer sensory_disorder gastrointestinal_digestive_tract_incl_liver_gallbladder_pancreas_diseases endocrine_system_thyroid_gland_and_other_diseases other_specify FALSE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE TRUE amfSwvXazsJTUPhTHFmmMbWYt wElkaGcwiJsGkCR retired_not_working ETMtLrgWCOTG NSZeh LqT closing_the_enterprise DXcYqGtJhGrJHHImPR XnFEkPGqORVbXRUcAVBZnCFMPXtOhLOctmGnyotATDIELUDkgLdbVEYflfLCOyyDaXZdxIEPkdlc agriculture frOm ZDlCGYTcJythUpGtJCrgnTCEKFfPUAPoL 18 no refuse_to_answer refuse_to_answer yes primary_education 0 0 24 19 0 0 0 0 female in_paid_work_employee_self_employed_working_for_family_business zkeaxtNyLBOgmKbTxAAAQZHlR dBaRMRESDBpeZdhTxGtGsHDgYssEKeoNjGgfMqXHUevolDsVYhlaVIgBTdpc 19 0 0 0 0 partially_displaced_and_have_idp_status 2016 LQkDiZKdabKJkL solid_finished_house KjOytAdIWpcFnVYZvUEKwJnbCDBThqrykbBxxubvSvUhOpEsCaIVXHqQJcUSwrQM no_collective_centre becfOabxHqiXWemEdDfjtGCCqwkIoLDpmmEGIpAGVCedyuphLesguuToteCUa leaks_during_light_rain_snow presence_of_dirt_or_debris_removable dont_know FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE TRUE SuUrL nLOwjhDdaEkewcaxRTgIag none roof_partially_collapsed broken_or_cracked_windows exterior_doors_or_windows_missing large_cracks_openings_in_most_walls some_cracks_in_some_walls some_walls_fully_collapsed foundation_damaged_or_shifted electricity_supply_line_damaged_and_not_functional TRUE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE kSavMdsJyTljirScjInkdKfrdQHdBNQqUGncuhmfTvpNkoZpSu KFRSZofIcvTHugojZQIFoHIf kBdpztbLksNLeaTQS yes no dont_know_ns yes 23 refuse_to_answer yes_after_3_months refigerator functional_stove hh_has_all_items TRUE TRUE FALSE TRUE winter_jacket thick_socks warm_gloves adult_warm_clothing child_warm_clothing each_member_has_all_items FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE adult_diapers TRUE FALSE FALSE FALSE central_heating gas TRUE FALSE FALSE FALSE TRUE FALSE 18 VsptVWLOnAlPrQdSozFWqw ZHxHEnQNRBrVMzIbGWHSsYxaILteOwoTm 16 JFStxhkdIuyJFiKBPNRmG central_heating gas kerosene wood briquettes_coal other_specify TRUE FALSE TRUE TRUE TRUE FALSE FALSE TRUE TRUE fcxb OJUMBcn 20.31742 24.42986 21.73002 19.48783 refuse_to_answer yes_daily_every_day dont_know_ns personal_well tTSoNceJcazeGzpQd do_not_process_purify water_precipitation filtering_the_water_pitcher_filter filtering_the_water_reverse_osmosis_filter dont_know_ns TRUE FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE GjYOciNdcHnQaBINSAvMApIsJfIRluKd CGcWTlgsjruUkiJMgodwuRLVBhXhAU dont_know_ns rGJsnlZPTJTxXMybsokbwNJMwChrWFNzrNtORKYLA bottled_water_water_purchased_in_bottles iUlWqidWiAjJidNxZyy UFLCJFnPzWfvauGEmGWsYEbpmZSHNkqREBsXgpynhqybKbcqcZoFyTR oRzwSitOrEDnTFcQKPPTV every_day 20 do_not_store_water glass_bottles a_bucket_with_a_lid a_bucket_without_a_lid a_canister we_fill_in_the_bathtub other_specify TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE TUVWviqFeGmVjTpqskSmedoYUzYxFTJAgIUufgCMbOHMDcouWvWBXEp drinking TRUE FALSE FALSE FALSE FALSE FALSE pit_latrine_without_a_slab_or_platform soNfXiPHrZjYObqqkg OrtGOkHnBWvKMwnkGlKET kyMlbkMiHdSlfdjefcodDufT BTnOWISfqNr yes refuse_to_answer 5 0 6 7 7 0 2 6 1 7 5 0_no 3_often_10plus_times 1_yes 2_sometimes_3_10 0_no 2_sometimes_3_10 no_but_needed no_was_not_needed yes no_already_done_so_cant_do_it_anymore no_but_needed no_already_done_so_cant_do_it_anymore no_was_not_needed no_already_done_so_cant_do_it_anymore no_but_needed no_but_needed no_was_not_needed no_but_needed boarding_school specialized_school_for_children_with_disabilities vocational_school FALSE FALSE FALSE TRUE TRUE TRUE children_at_home_as_carer children_in_paid_employment children_has_disability_that_school_does_not_have_infrastructure_for FALSE FALSE TRUE FALSE TRUE TRUE FALSE mXqRaFFPIPuGPBuOiQWzGmVMLsjEZJCRPqcVqtHnAlrddoh 20 18 17 22 22 18 18 22 18 21 20 21 20 20 16 23 18 21 18 18 19 yes 21 22 15 20 21 17 school_closed_other insufficient_teachers security_concerns_by_parent too_expensive_school_fees_supplies_transport_etc a_child_contributes_to_hh_income refuse_to_answer FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE imhwevZMNzKVH 1_2_months no_problems quantity_of_teaching_staff price_for_service conditions_of_the_venue problems_with_distance_learning_due_to_closure_of_school_for_covid_eg_bad_internet_connection other_specify TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE wMxlkkUdMwVjFGLieUPrYbjhUJPcaBngbwluuozYdwc none shelling military_presence TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE eRhRJmcAthnrxWzbDAEfYshkXtbJTBAEeEShUCmjvFtbuTFslBrsodGmNKsOTgYbjlcupL none uxos_on_school_grounds shooting_in_the_vicinity_of_the_school military_presence_inside_of_schools TRUE TRUE FALSE TRUE TRUE FALSE FALSE IPYVgwcoXwtYJJihGgMyyVQxCgOnwPDFTBRgDZAmDDXes yes no 20 MusJfUwyvBDSLLT gLeXPPbUVKdRMuVireL eHPwpShPS obstetricgynaecological ambulance outpatient_care x_ray post_trauma_rehabilitation dont_know_ns none_of_listed TRUE FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE no rarely cost_of_medicine distance_to_facility cost_of_appointment lack_of_referral_system have_to_pass_through_entry_exit_checkpoint_for_medical_facility_in_the_ngca irregular_presence_of_doctors lack_of_doctors insufficient_qualifications_of_doctors FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE jpCyVDBAFheAVHzfJjNeKRFTCUOwfbLeKi uKhHhkdxrgVmFhQJwsakKFywtUYkVFADyWfuBI no yes refuse_to_answer refuse_to_answer less_than_15_mins yes no_problems items_not_available items_poor_quality distance security other_specify TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE TRUE ShftXFihwRYVTHPryWSkWMAZnNfMMSwmVogLGujgELHZrwjFxGRZvgSjsTGORRGtnoyrtsusQlcbWjUWxP meat_or_fish_chicken_pork_beef_fish pulses_nuts_seeds_lentils_beans_nuts oil_and_fat_salo_butter_sunflower_oil condiments_and_spices_tea_coffee_spices FALSE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE bYmXNNtPDFdIdjQrbDuSC 21 20 dont_know_ns 19 rhimMyps gYk 24 dont_want_to_say no_some_hh_members_are_missing_ids 17 no yes_in_our_possession authorities_in_non_government_controlled_area 19 no refuse_to_answer yes yes refuse_to_answer yes 2_i_am_aware_of_mines_but_it_doesnt_affect_my_life fear_for_physical_safety has_affected_hh_budget other_specify TRUE FALSE FALSE TRUE TRUE jHpWuwZjtgKN PabJmzIUQyuOkMllCfmlQIfKniWZPtubrlLuUn administration_head_of_the_village) army other_specify TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE MhtsSYnkRqtKsmbWKfOMldEgxEimuXzeYoPDXlxbMelXlHbeFHOMBRYuzqMwjJjczIzHRRurzAeTlfYLWQdzVDh limited_access_to_food loss_of_or_severely_diminished_access_to_basic_services loss_of_or_diminished_access_to_clean_water_and_sanitation other_specify no_covid19_impacts_on_my_household restriction_in_movement breaking_up_with_family_or_relatives psychological_deterioration FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE XKKlfSSECfaiXMctGosAwSqfITDFFWvRgaCLzKfwYdzPPL ZXJGIYzLbLzr LCuIKqkHtClxb BHDoTALHWvixgr not_leaving_the_house_at_all stopping_handshakes_or_physical_contact keeping_distance_from_people wearing_gloves keeping_surfaces_clean staying_away_from_animals other_specify FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE KdvIZotMl yes_covid_related_reason refuse_to_answer refuse_to_answer refuse_to_answer refuse_to_answer refuse_to_answer yes refuse_to_answer yes yes no no refuse_to_answer refuse_to_answer no yes food healthcare seeds_or_other_agricultural_inputs livelihoods_support_employment drinking_water hygiene_nfis_eg_soap_sanitary_pads_and_sanitation_services_eg_latrines fuel_for_heating none other_specify house_repairs FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE QzZyfwbrWddxHAwotiYcYSCARMGniPQezrSIy yes refuse_to_answer dont_know_ns refuse_to_answer no yes how_to_stay_safe_to_prevent_attack_harassment how_to_access_education other FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE TRUE mQutfUcmDGGPuaSKEvBGsWYwGtEoEMAHBWCjlvDpYOfqeEsEyFvmpgesNTJFWHzFJHkgQDaFoJlAviXyzfn other CSDAdOGIBBoCYLcVODHudkoaTCcKTlzXKKpAPPfafFUVqxPUkihvMKWCKqqZntvKRNsQccLfZAKdzkZjfJUSHVySu aniZtDXpnn film_or_theatre vmZKtmAyqEiIaWwFpcHH inkind_nfis cash_via_prepaid_cards cash_via_mobile_money vouchers services_eg_healthcare_education_etc other_please_specify dont_know FALSE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE JTmelNcYRRqItfpuqjRZiNqCEFwykyQhL ExLWoXAiQkVDWvslD Ze yes_soap_is_shown refuse_to_answer vtTIBuKnmRzsRTXMvVYlJlocWXujIdlLUDJPpLKRBknyRS UA14 UA14123 UKR1423385404 AK_3 no e93b068c-7069-424c40-808f88-fae429b73cd5

5.2 Download data

5.2.1 Downloading Audit files using audit_URL

Required Libraries: httr


“download_audit_files” will download audit files using the endpoint that is included in your data set, it’s available in column called “audit_URL”. The function will create a folder named by the uuid of each form/interview, and write the audit.csv inside it. The advantage of using the API over downloading manually from server is that you can download the audit files of each form that has recently been submitted to the server separately, rather than downloading cumulatively the whole audit files each time. One the top of that, you can benefit from the advantage of automation.

download_audit_files <- function(df, uuid_column = "_uuid", audit_dir, usr, pass){
  if (!"httr" %in% installed.packages()) 
    stop("The package is httr is required!")
  
  if (is.na(audit_dir) || audit_dir == "") 
    stop("The path for storing audit files can't be empty!")
  
  if (is.na(usr) || usr == "") 
    stop("Username can't be empty!")
  
  if (is.na(pass) || pass == "") 
    stop("Password can't be empty!")
  
  # checking if the output directory is already available
  if (!dir.exists(audit_dir)) {
    dir.create(audit_dir)
    if (dir.exists(audit_dir)) {
      cat("Attention: The audit file directory was created in", audit_dir,"\n")
    }
  }
  
  # checking if creating output directory was successful
  if (!dir.exists(audit_dir))
    stop("download_audit_fils was not able to create the output directory!")
  # checking if uuid column exists in data set
  if (!uuid_column %in% names(df))
    stop("The column ", uuid_column, " is not available in data set.")
  # checking if column audit_URL exists in data set
  if (!uuid_column %in% names(df))
    stop("The column ", uuid_column, " is not available in data set.")
  if (!"audit_URL" %in% names(df))
    stop("Error: the column audit_URL is not available in data set.")
  
  # getting the list of uuids that are already downloaded
  available_audits <- dir(audit_dir)
  
  # excluding uuids that their audit files are already downloaded
  df <- df[!df[[uuid_column]] %in% available_audits,]
  
  audits_endpoint_link <- df[["audit_URL"]]
  names(audits_endpoint_link) <- df[[uuid_column]]
  audits_endpoint_link <- na.omit(audits_endpoint_link)
  
  if (length(audits_endpoint_link) > 0) {
    # iterating over each audit endpoint from data
    for (i in 1:length(audits_endpoint_link)) {
      uuid = names(audits_endpoint_link[i])
      endpoint_link_i <- audits_endpoint_link[i]
      cat("Downloading audit file for", uuid, "\n")
      
      # requesting data
      audit_file <- content(GET(endpoint_link_i,
                                authenticate(usr, pass),
                                timeout(1000),
                                progress()), "text", encoding = "UTF-8")
      
      if (!is.na(audit_file)) {
        if (length(audit_file) > 2) {
          dir.create(paste0(audit_dir, "/", uuid), showWarnings = F)
          write.csv(audit_file, paste0(audit_dir, "/", uuid, "/audit.csv"), row.names = F)
        }else if(!audit_file == "Attachment not found"){
          if (grepl("[eventnodestartend]", audit_file)) {
            dir.create(paste0(audit_dir, "/", uuid), showWarnings = F)
            write.table(audit_file, paste0(audit_dir, "/", uuid, "/audit.csv"), row.names = F, col.names = FALSE, quote = F)
          } else{
            cat("Error: Downloading audit was unsucessful!\n")
          }
        }
      } else{
        cat("Error: Downloading audit was unsucessful!\n")
      }
    }
  } else{
    cat("Attention: All audit files for given data set is downloaded!")
  }
}

5.2.2 Download audit files using form name

Required Libraries: httr, jsonlite, dplyr, stringr


“download_audit_files_2” is a different version of “download_audit_files” module that will help you to download audit files using the form id directly from KOBO API. The rest of it’s specifications best matches the download_audit_files.

download_audit_files_2 <- function(form_id, output_dir, user, pass) {
  if (!"stringr" %in% installed.packages()) 
    stop("Could not find the package stringr!")
  
  if (!"dplyr" %in% installed.packages()) 
    stop("Could not find the package dplyr!")
  
  if (!"httr" %in% installed.packages()) 
    stop("Could not find the package httr!")
  
  if (!"jsonlite" %in% installed.packages()) 
    stop("Could not find the package jsonlite!")
  
  if (is.na(output_dir) || output_dir == "") 
    stop("The path for storing audit files can't be empty!")
  
  if (is.na(user) || user == "") 
    stop("Username can't be empty!")
  
  if (is.na(pass) || pass == "") 
    stop("Password can't be empty!")
  
  require(httr)
  require(dplyr)
  require(jsonlite)
  require(stringr)
  
  # checking if the output directory is already available
  if (!dir.exists(output_dir)) {
    dir.create(output_dir)
    if (dir.exists(output_dir)) {
      cat("Attention: The audit file directory was created in", output_dir,"\n")
    }
  }
  
  # checking if creating output directory was successful
  if (!dir.exists(output_dir))
    stop("download_audit_fils was not able to create the output directory!")
  
  # listing audit files that are already available
  available_audits <- dir(output_dir)
  
  # getting form url
  form_url <- GET("https://kc.humanitarianresponse.info/api/v1/data", authenticate(user, pass), timeout(1000)) %>% 
    content(., "text", encoding = "UTF-8") %>%
    fromJSON(., flatten = T) %>% 
    filter(id_string == form_id) %>% 
    select(url) %>% 
    unlist()
  
  if (length(form_url) > 0) {
    
    # getting attachment links of uuids that their audit is already downloaded
    form_data <- GET(form_url, authenticate(user, pass), timeout(1000)) %>% 
      content(., "text", encoding = "UTF-8") %>%
      fromJSON(., flatten = T) %>% 
      as.data.frame() %>% 
      filter(!`_uuid` %in% available_audits)
    
    attachment_url <- form_data[["_attachments"]]
    audit_file_links <- unlist(attachment_url)[names(unlist(attachment_url)) == "download_large_url"] %>% unname()
    
    # uuids <- form_data[["_uuid"]][lapply(attachment_url, length) %>% unlist() != 0]
    # uuids <- str_extract(audit_file_links, "(?<=%2F)[a-z-0-9]*(?=%2Faudit.csv$)")
    # names(audit_file_links) <- uuids
    
    download_audit <- function(audit_link, user, pass, output_dir, uuid) {
      uuid <- str_extract(audit_link, "(?<=%2F)[a-z-0-9]*(?=%2Faudit.csv$)")
      audit_file <- GET(audit_link, authenticate(user, pass), timeout(1000), progress()) %>% 
        content(., "text", encoding = "UTF-8")
      
      cat("Downloading audit file for", uuid, "\n")
      dir.create(paste0(output_dir, "/", uuid))
      output_file_name <- paste0(output_dir, "/", uuid,"/audit.csv")
      # write.csv(audit_file, output_file_name)
      
      if (!is.na(audit_file)) {
        if (length(audit_file) > 2) {
          write.csv(audit_file, output_file_name, row.names = F)
        }else if(!audit_file == "Attachment not found"){
          if (grepl("[eventnodestartend]", audit_file)) {
            write.table(audit_file, output_file_name, row.names = F, col.names = FALSE, quote = F)
          }
        }
      }
    }
    
    downloaded_uuids <- sapply(audit_file_links, download_audit, user = user, pass = pass, output_dir = output_dir)
  } else{
    cat("Attention: All audit files for given form is downloaded!")
  }
}

5.3 Data collection follow-up

5.3.1 checking surveys against the sampling frame

It is important to ensure that number of interviews that have been collected in each sampling unit corresponds with the initial sampling frame. The best choice will be to check it on daily basis during the data collection and follow-up with the Field Team in case there were not enough interviews (or some extra surveys) in certain locations. But it is also a good practice to make a final check to understand the overall difference between the sampling frame and collected data.

First let’s open initial sampling frame generated by the Probability sampling tool

sampling_frame <- read.csv("inputs/sampling_frame20200701-132150.csv")

Now we should create summary table that will show number of interviews actually collected for each primary sampling unit (in our case it was settlement). Keep in mind that you should use correct settlement codes that were verified during the data collection. In case you are not sure that settlement codes in the dataset are correct you should cross-check them with GPS-coordinates using Spatial verification checks

samples_collected <- main_dataset %>%
                    group_by(r3_current_settlement)%>%
                    count()

The next step will be left join of samples collected dataset to the sampling frame and finding the difference in collected surveys for each settlement.

sampling_frame <- sampling_frame %>%
  select(Survey, strata_id, adm4Pcode, adm4NameLat) %>%
  left_join(samples_collected, by = c("adm4Pcode" = "r3_current_settlement"))%>%
  tidyr::replace_na(list(n = 0))%>%
  mutate(sample_difference = n - Survey)%>%
  arrange(sample_difference)

sampling_frame %>% 
      head(10) %>%
      kable() %>% 
      kable_styling(font_size=12)
Survey strata_id adm4Pcode adm4NameLat n sample_difference
1 5km_rural UKR1421586403 Tarasivka 0 -1
56 20km_urban UKR1410200000 Avdiivka 56 0
9 20km_urban UKR1420955200 Zaitseve 9 0
5 5km_rural UKR1423384001 Kostiantynivka 5 0
3 5km_rural UKR1422783201 Mykhailivka 3 0
7 5km_rural UKR1421581401 Dmytrivka 7 0
6 5km_rural UKR4423180701 Bakhmutivka 6 0
4 5km_rural UKR4424881001 Velyka Chernihivka 4 0
8 5km_rural UKR1420980501 Berestove 8 0
1 5km_rural UKR1420982001 Volodymyrivka 1 0

As we can see from the table above, there was only one settlement where the target number of the interviews was not collected. And considering that it’s only one survey it will not affect our results and we can proceed with other checks. After checking how a number of collected surveys corresponds with the sampling frame for each primary sampling unit it will be also good to make the same check on strata level. To do that we can use summarise function from dplyr library

strata_level_check <- sampling_frame %>%
                      group_by(strata_id)%>%
                      summarise(Survey_Planned = sum(Survey),
                                Survey_Collected = sum(n))%>%
                      mutate(Difference = Survey_Collected - Survey_Planned)%>%
                      arrange(desc(Difference))

strata_level_check %>% 
      kable() %>% 
      kable_styling(font_size=12)
strata_id Survey_Planned Survey_Collected Difference
5km_rural 403 407 4
20km_rural 399 402 3
20km_urban 404 404 0
5km_urban 404 404 0

After this check, we can see that for two strata we collected the exact number of interviews that were initially planned. And for two strata there is slight overachievement in 4 and 3 surveys.

5.4 Data falsification

5.4.1 Check for time (in the dataset)

Required Libraries: “dplyr” and “lubridate”


“time_check” will return the elapsed time for each interview based on it’s start and end columns also classifies if it’s “too short”, “too long”, or “okay”. As an example, we will use a dummy data set to apply the function to it. The function also needs a time_min (the minimum time in minutes that an interview should take to be completed) and a time_max (the maximum time in minutes that an interview should take to be completed) parameters.

library(dplyr)
library(lubridate)

# Creating a dummy data set
start <- c("2020-12-01T09:40:05.750+04:30","2020-12-01T09:40:18.709+04:30","2020-12-01T09:45:40.879+04:30","2020-12-01T09:46:28.328+05:00")
end <- c("2020-12-01T09:44:44.438+04:30","2020-12-01T10:01:27.890+04:30","2020-12-01T10:17:44.021+04:30","2020-12-01T10:18:32.717+05:00")

my_df <- data.frame(start, end)

# Initializing variables
time_min <- 8
time_max <- 30

# declaring the function
time_check <- function(df, time_min, time_max){
  df <- df %>% mutate(interview_duration = difftime(as.POSIXct(ymd_hms(end)), as.POSIXct(ymd_hms(start)), units = "mins"),
                      CHECK_interview_duration = case_when(
                        interview_duration < time_min ~ "Too short",
                        interview_duration > time_max ~ "Too long",
                        TRUE ~ "Okay"
                      )
  )
  return(df)
}

# Applying the function to data frame
processed_df <- time_check(my_df, time_min, time_max)
processed_df
start end interview_duration CHECK_interview_duration
2020-12-01T09:40:05.750+04:30 2020-12-01T09:44:44.438+04:30 4.64480 mins Too short
2020-12-01T09:40:18.709+04:30 2020-12-01T10:01:27.890+04:30 21.15302 mins Okay
2020-12-01T09:45:40.879+04:30 2020-12-01T10:17:44.021+04:30 32.05237 mins Too long
2020-12-01T09:46:28.328+05:00 2020-12-01T10:18:32.717+05:00 32.07315 mins Too long

5.4.2 Check for time (audit files)

Required Libraries: “dplyr”, “lubridate”, and “expss”


“time_check_audit” will calculate the interview duration using the audit files. And, if the audit file for that particular uuid is not found in the audit directory (where you paste the audit files), it will calculate it using start and end time columns in the data set. Audit files should be stored inside a folder (to avoid redefining its name while calling the function, call it “audit_files”) in the project folder.

library(dplyr)
library(lubridate)
library(expss)

# reading files.
main_dataset <- read.csv("inputs/UKR2007_MSNA20_HH_dataset_main_rcop.csv", na.strings = "")

# Initializing variables
time_min <- 8
time_max <- 30


# declaring the function
time_check_audit <- function(df_raw, x_uuid="_uuid", time_min, time_max, audit_dir_path = "./audit_files/", today = "today"){
  if (!any(duplicated(df_raw[[x_uuid]]))) {
    # Audit Checks
    # audit_dir_path < -audit_dir_path
    uuids <- dir(audit_dir_path)
    dfl <- list()
    all_uuids <- length(uuids)

    for(i in 1: length(uuids)){
      df <- read.csv(paste0(audit_dir_path, uuids[i], "/audit.csv"))
      df <- df %>% filter(node != "")
      duration_ms <- sum(df$end - df$start)
      duration_secs <-duration_ms/1000
      duration_minutes <- round(duration_secs/60,1)
      dfl[[i]] <- data.frame(uuid = uuids[i], duration_ms=duration_ms, 
                             durations_secs=duration_secs, duration_minutes = duration_minutes)
      cat("\014","Running audit: ", round((i/all_uuids) * 100,0),"%\n", sep = "")
    }
    duration_df <- do.call("rbind", dfl)
    duration_df <- dplyr::rename(duration_df, `_uuid` = uuid)
    
    #time check based on start end time
    df_str_audit_all <- df_raw %>% 
      mutate(start_end = difftime(as.POSIXct(ymd_hms(end)), as.POSIXct(ymd_hms(start)), units = "mins")) 
    
    #creating a binding column with same name.
    df_str_audit_all$`_uuid` <- df_str_audit_all[[x_uuid]]

    # Join Audit checks and main data set
    df_str_audit_all <- df_str_audit_all %>%
      left_join(select(duration_df, `_uuid`, duration_minutes), by =  "_uuid")
    
    # Checking time duration with audit file, if not available, from dataset start/end.
    df_str_audit_all <- df_str_audit_all %>%
      mutate(interview_duration = if_na(duration_minutes, start_end),
             CHECK_interview_duration = case_when(
               interview_duration < time_min ~ "Too short",
               interview_duration > time_max ~ "Too long",
               TRUE ~ "Okay")
      ) %>% select( -c(duration_minutes,start_end))
    
    return(df_str_audit_all)
  }else{
    stop("Error: df_raw has duplicate in uuid column, resolve the duplication to proceed!")
  }
}

# Applying the function to data frame
processed_df <- time_check_audit(main_dataset, 
                                 x_uuid = "X_uuid",
                                 time_min, time_max, 
                                 audit_dir_path = "inputs/reach_global/attachments/dc4b0f40bf934293aedd3f31ff43f6d1/")
processed_df %>%
  select(`_uuid`, interview_duration, CHECK_interview_duration) %>% 
  head(10)
_uuid interview_duration CHECK_interview_duration
e88800ab-c514-4074-b938-b618ec874255 14.3 Okay
15aa02bd-ce32-4cd3-afcb-6d590db3baa4 14.8 Okay
1a8f5939-fc1e-43f8-ac75-86fb6de3ae4c 14.4 Okay
ed87c6df-d78d-47bc-92dc-27d478073a53 18.2 Okay
df76de17-ffda-4f11-9cb7-6342f3d49940 15.6 Okay
e6f50033-ec7a-4016-850d-8be2c0302324 24.3 Okay
c9f30357-05bc-4228-8223-e1143b5293c8 48.4 Too long
2d5b8a48-52fa-45a6-b776-fa32242abf0d 19.5 Okay
022a6393-6d31-4958-926c-b5955aa4e215 18.5 Okay
98bb4c67-2bda-4848-9b19-b960a8506157 22.9 Okay

5.4.3 Check for time - calculating the elapsed time between each interview

Required Libraries: lubridate


“time_btwn_ints” will calculate the elapsed time between the ending time of the first interview of an enumerator and the start time of its second interview, and the process applies for all interviews of each enumerator. It needs a location identifier as a parameter to check if the elapsed time is matching with the threshold (given as a parameter) in the same location or not. Also it will be checked if the elapsed time matches the given threshold for interviews in different locations by the same enumerator.

library(lubridate)

# Creating a dummy data set
start <-  c("2020-12-01T09:40:05.750+04:30",
            "2020-12-01T09:45:18.709+04:30",
            "2020-12-01T09:45:40.879+04:30",
            "2020-12-01T10:02:40.879+04:30",
            "2020-12-01T10:25:28.32+04:30")
end <-  c("2020-12-01T09:44:44.438+04:30",
          "2020-12-01T10:01:27.890+04:30",
          "2020-12-01T10:17:44.021+04:30",
          "2020-12-01T10:05:40.879+04:30",
          "2020-12-01T10:38:32.717+04:30")
device_id <- c("000215",
               "000215",
               "000216",
               "000215",
               "000216")
village <- c("Village A",
             "Village A",
             "Village B",
             "Village A",
             "Village C")

my_df <- data.frame(start, end, device_id, village)

# declaring the function
time_btwn_ints <- function(df, device_id, start_col = "start", end_col = "end", 
                           village_col, same_village_threshold = 3, diff_village_threshold = 5){
  checked_df <- df
  
  # sort by device_id and start_col
  checked_df <- checked_df[order(checked_df[[start_col]]), ]
  checked_df <- checked_df[order(checked_df[[device_id]]), ]
  
  # For each row starting from the second row:
  # 1) calculate the time between the end of the (r-1) survey and the start of the (r) survey
  # 2) insert the eight check-message based on the calculated time and the village
  issue.same.village <- paste0("The elapsed time between two interviews in the same village is less than ",same_village_threshold, " minutes")
  issue.diff.village <- paste0("The elapsed time between two interviews in different villages is less than ", diff_village_threshold, " minutes")
  checked_df$check <- "OK"
  checked_df$gap_between_ints <- NA
  for (r in 2:nrow(checked_df)){
    if (as.character(checked_df[r, device_id])==as.character(checked_df[r-1, device_id])){
      checked_df$gap_between_ints[r] <- difftime(as.POSIXct(ymd_hms(checked_df[r, start_col])),
                                                 as.POSIXct(ymd_hms(checked_df[r-1, end_col])),
                                                 units = "mins")
      
      if (as.character(checked_df[r, village_col])==as.character(checked_df[r-1, village_col])){
        if (checked_df$gap_between_ints[r] < same_village_threshold) checked_df[r, "check"] <- issue.same.village
      } else{
        if (checked_df$gap_between_ints[r] < diff_village_threshold) checked_df[r, "check"] <- issue.diff.village
      }
    }
  }
  
  return(checked_df)
}

# Applying the function to data frame
processed_df <- time_btwn_ints(df = my_df, device_id = "device_id",village_col = "village", same_village_threshold = 2,diff_village_threshold = 10)
processed_df
start end device_id village check gap_between_ints
1 2020-12-01T09:40:05.750+04:30 2020-12-01T09:44:44.438+04:30 000215 Village A OK NA
2 2020-12-01T09:45:18.709+04:30 2020-12-01T10:01:27.890+04:30 000215 Village A The elapsed time between two interviews in the same village is less than 2 minutes 0.5711833
4 2020-12-01T10:02:40.879+04:30 2020-12-01T10:05:40.879+04:30 000215 Village A The elapsed time between two interviews in the same village is less than 2 minutes 1.2164833
3 2020-12-01T09:45:40.879+04:30 2020-12-01T10:17:44.021+04:30 000216 Village B OK NA
5 2020-12-01T10:25:28.32+04:30 2020-12-01T10:38:32.717+04:30 000216 Village C The elapsed time between two interviews in different villages is less than 10 minutes 7.7383167

5.4.4 Silouhette analysis

Custom script (using ???)

5.4.5 Check for duplicates

5.4.5.1 cleaninginspectoR - find_duplicates

find_duplicates will take the dataset and a column name to look for duplicates as arguments.

cleaninginspectoR::find_duplicates(main_dataset, duplicate.column.name = "X_uuid")
## [1] index      value      variable   has_issue  issue_type
## <0 rows> (or 0-length row.names)
dummy_dataset[301, ] <- dummy_dataset[300, ]
cleaninginspectoR::find_duplicates(dummy_dataset, duplicate.column.name = "uuid")
##   index                                    value variable has_issue
## 1   301 91e2b6c3-3124-4f4341-afa7a5-78dcaebf6139     uuid      TRUE
##          issue_type
## 1 duplicate in uuid
cleaninginspectoR::find_duplicates(dummy_dataset, duplicate.column.name = "start")
##   index                    value variable has_issue         issue_type
## 1   202 2023-08-16T08:19:48+0200    start      TRUE duplicate in start
## 2   204 2023-08-16T10:00:50+0200    start      TRUE duplicate in start
## 3   235 2023-08-16T08:29:20+0200    start      TRUE duplicate in start
## 4   247 2023-08-16T09:46:06+0200    start      TRUE duplicate in start
## 5   265 2023-08-16T08:56:56+0200    start      TRUE duplicate in start
## 6   293 2023-08-16T10:38:17+0200    start      TRUE duplicate in start
## 7   301 2023-08-16T10:12:09+0200    start      TRUE duplicate in start

5.4.5.2 base - duplicated

If you are looking in duplicates value in several columns (first and second name, names and ID number,etc.), you can use the duplicated.

dummy_test <- data.frame(col_a = c("a", "a", "c"), col_b = c("b", "b", "f"))
dummy_test
##   col_a col_b
## 1     a     b
## 2     a     b
## 3     c     f

Rows 1 and 2 are duplications.

duplicated(dummy_test)
## [1] FALSE  TRUE FALSE

find_duplicates() and duplicated() functions will return position or value only of one duplicated record. But after identification of the duplicate, it will be good to check how many of such duplicated records in the dataset and check if they have any other duplicated columns. Based on your investigation, you will need to delete one or several records. e.g. Enumerator submitted the first survey by mistake and after some time submitted a corrected survey with the same id (in case we allow for the enumerator to select the id of the enterprise or sample). In such a way, find_duplicates() will identify the second survey but we will need to delete the first one.

5.4.5.3 Find most similar surveys

The function find_similar_surveys() compares each survey with each other survey in the dataset and finds the most similar one, i.e., the one with the lowest number of different answers. The function uses the gower matrix to make the comparison more efficient. The function returns a dataframe with the same number of rows (all surveys) and a few additional columns indicating the ID of the most similar survey and how many columns are different.

Depending on the size of the questionnaire and on the data collection methodology, we can set a maximum threshold on the number of differences and follow up on all the surveys that have a matching survey with a lower number of differences than the threshold. For example, in the MSNA in Syria, we used a maximum threshold of 7 differences.

In the version below, the function uses only the data from the main sheet of the survey. If the tools includes loop(s), it makes sense to add a few relevant columns from the loops to the main dataframe so that they are also used in the search of the most similar survey. For example, for an HH survey with a loop for the HH composition, one can add to the main dataframe one column with the concatenation of the genders of the HH components and one column with the concatenation of the ages of the HH components (from the loop).

find_similar_surveys <- function(raw.data, tool.survey, uuid="_uuid"){
  # 1) store UUIDs
  uuids <- raw.data[[uuid]]
  
  # 2) convert all columns to character and tolower
  raw.data <- mutate_all(raw.data, as.character)
  raw.data <- mutate_all(raw.data, tolower)
  
  # 3) remove columns that are naturally different in each survey:
  # - columns of type = "start", "end", "text" (for the other responses), etc.
  # - columns starting with "_"
  # - option columns for the select multiple -> keeping only the concatenation column
  types_to_remove <- c("start", "end", "today", "deviceid", "date", "geopoint", "audit", 
                       "note", "calculate", "text")
  cols_to_keep <- data.frame(column=colnames(raw.data)) %>% 
    left_join(select(tool.survey, name, type), by=c("column"="name")) %>% 
    filter(!(type %in% types_to_remove) & !str_starts(column, "_") & !str_detect(column, "/"))
  raw.data <- raw.data[, all_of(cols$column)]
  
  # 4) remove columns with all NA; convert remaining NA to "NA"; convert all columns to factor
  raw.data <- raw.data[, colSums(is.na(raw.data))<nrow(raw.data)]
  raw.data[is.na(raw.data)] <- "NA"
  raw.data <- raw.data %>% mutate_if(is.character, factor)
  error.message <- "NAs detected, remove them before proceeding (it can happen when converting to factor)"
  if (sum(is.na(raw.data))>0) stop(error.message)
  
  # 5) calculate gower distance
  gower_dist <- daisy(raw.data, metric="gower", warnBin=F, warnAsym=F, warnConst=F)
  gower_mat <- as.matrix(gower_dist)
  
  # 6) convert distance to number of differences and determine closest matching survey
  r <- unlist(lapply(1:nrow(raw.data), function(i) sort(gower_mat[i,]*ncol(raw.data))[2]))
  
  # 7) add relevant columns
  raw.data[["num_cols_not_NA"]] <- rowSums(raw.data!="NA")
  raw.data[[uuid]] <- uuids
  raw.data[["_id_most_similar_survey"]] <- uuids[as.numeric(names(r))]
  raw.data[["number_different_columns"]] <- as.numeric(r)
  raw.data <- raw.data %>% arrange(number_different_columns, uuid)
  
  return(raw.data)
}

5.5 Data checks

5.5.1 Check for outliers

There are 2 commons ways to detect outliers :

  • Using the range of 3 standards deviations from the mean.
  • Using the range of 1.5 inter quartile from the 1st and 3rd quartile.

Outliers can exist but it is important to check them.

5.5.1.1 cleaninginspectoR - find_outliers

The function find_outliers will use the rule of the 3 standards deviations from the mean for normal values and log values.

cleaning_log <- cleaninginspectoR::find_outliers(main_dataset)
cleaning_log %>% head(20)
index value variable has_issue issue_type
26 30000.0 b15_hohh_income TRUE log normal distribution outlier
117 210.0 b15_hohh_income TRUE log normal distribution outlier
225 400.0 b15_hohh_income TRUE log normal distribution outlier
384 300.0 b15_hohh_income TRUE log normal distribution outlier
517 300.0 b15_hohh_income TRUE log normal distribution outlier
710 24000.0 b15_hohh_income TRUE log normal distribution outlier
742 400.0 b15_hohh_income TRUE log normal distribution outlier
1126 50000.0 b15_hohh_income TRUE log normal distribution outlier
1384 400.0 b15_hohh_income TRUE log normal distribution outlier
1399 200.0 b15_hohh_income TRUE log normal distribution outlier
1417 400.0 b15_hohh_income TRUE log normal distribution outlier
5 20.0 f2_spend_on_utilities TRUE log normal distribution outlier
89 5000.0 f2_spend_on_utilities TRUE log normal distribution outlier
272 20.0 f2_spend_on_utilities TRUE log normal distribution outlier
918 20.0 f2_spend_on_utilities TRUE log normal distribution outlier
141 4800.0 f3_spend_on_heating TRUE normal distribution outlier
48 0.5 f5_type_fuel_heating_amount TRUE log normal distribution outlier
357 0.5 f5_type_fuel_heating_amount TRUE log normal distribution outlier
161 90.0 f16_duration_water_shortages TRUE log normal distribution outlier
1392 90.0 f16_duration_water_shortages TRUE log normal distribution outlier

5.5.2 Check others

5.5.2.1 cleaninginspectoR - find_other_responses

find_other_responses will look for all columns with “other”, “Other”, “autre”, “Autre”, and return their values.

Notes: - If your other* questions do not have those 4 strings in their names, the function will not pick it. *

cleaning_log <- cleaninginspectoR::find_other_responses(main_dataset)
cleaning_log %>% head(10)
index value variable has_issue issue_type
NA “Child of war” status /// instances: 1 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.
NA “Child of war” status, “Veteran of labour” status /// instances: 1 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.
NA A carer for a disabled child /// instances: 1 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.
NA A carer for a disabled person /// instances: 1 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.
NA Chernobyl liquidator /// instances: 3 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.
NA Child custody /// instances: 1 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.
NA Deprived orphan /// instances: 1 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.
NA Family with a child with disability /// instances: 1 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.
NA Has a status of the victim of human trafficing /// instances: 1 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.
NA Husband has disability group 3 /// instances: 1 b10_1_hohh_vulnerability_other TRUE ‘other’ response. may need recoding.

5.5.2.2 base + dplyr

This example will take all the text type from the questionnaire, filter for the ones that are in the dataset and return all the values.

oth <- questions$name[questions$type == "text"]
oth <- oth[oth %in% names(main_dataset)]
oth_log <- oth %>% 
  lapply(function(x) {
    main_dataset %>% 
      select("X_uuid", !!sym(x)) %>% 
      filter(!is.na(!!sym(x))) %>%
      as.data.frame() %>% 
      mutate(col_names = x) %>%
      rename(other_text = !!sym(x)) %>%
      arrange(other_text)}) %>% 
  do.call(rbind,.)
oth_log %>% head(20)
X_uuid other_text col_names
54e2b9b9-f3c4-477c-bd49-778183cae303 “Child of war” status b10_1_hohh_vulnerability_other
7b8e753b-1aa6-493a-81c8-9c7caee74613 “Child of war” status, “Veteran of labour” status b10_1_hohh_vulnerability_other
8e2a77cc-a81a-4319-8595-02dae93f0bd3 A carer for a disabled child b10_1_hohh_vulnerability_other
2c08b929-63f0-42bc-80d1-ce87a0373787 A carer for a disabled person b10_1_hohh_vulnerability_other
b8e0bb37-b2eb-439e-bc5b-03c12c87c7f6 Chernobyl liquidator b10_1_hohh_vulnerability_other
0250339d-7a9c-4cd1-a72d-2fb5f9ec8439 Chernobyl liquidator b10_1_hohh_vulnerability_other
83f40ea5-6882-4e46-824e-fcc7f734cc78 Chernobyl liquidator b10_1_hohh_vulnerability_other
1113ae1b-80a3-41ce-951f-74ea18719bde Child custody b10_1_hohh_vulnerability_other
64285d7a-51fc-4256-b089-1a13d4521e97 Deprived orphan b10_1_hohh_vulnerability_other
5ddae31b-90d1-4c96-a991-1958ff14719c Family with a child with disability b10_1_hohh_vulnerability_other
69615c4d-8fac-404e-bb45-fafccd498d92 Has a status of the victim of human trafficing b10_1_hohh_vulnerability_other
2d5b8a48-52fa-45a6-b776-fa32242abf0d Husband has disability group 3 b10_1_hohh_vulnerability_other
aad51ad7-7ea6-4589-bf06-ee8b53781303 Low-income family b10_1_hohh_vulnerability_other
1d21d712-f98d-4cbc-af52-710f535ef2bd Low-income family b10_1_hohh_vulnerability_other
acbb66b9-31c5-44f7-84d4-53553aaa2f8c Low-income family b10_1_hohh_vulnerability_other
075ec034-4681-4d59-bce7-403dffb3c03c Low-income family b10_1_hohh_vulnerability_other
a4e91a4d-c176-43b2-ab2f-1953a1780bec Own apartment destroyed, rented housing b10_1_hohh_vulnerability_other
b98ef6c0-39df-4383-96e7-5f569f6fdc33 Pensioner because takes care of the sun, who has born disability (currently 33 y.o., 2 level of disability, lives in another HH) b10_1_hohh_vulnerability_other
2b275831-e4d6-4b9b-8192-c58bcc13bcba Raises a nephew b10_1_hohh_vulnerability_other
956f170d-2bf0-40bf-848e-f8129aecd0fd Was injured during the conflict b10_1_hohh_vulnerability_other

Please note that it takes the values as they are. You may want to trim and remove caps or any other regex work if you want better summary

This other example looks at the frequency of a given other option, it could be used to see if some should be recoded as options directly.

oth_prop <- oth %>% 
  lapply(function(x) {
    main_dataset %>% 
      group_by(!!sym(x)) %>% 
      tally(sort = T) %>% 
      rename(other_text = !!sym(x)) %>% 
      filter(!is.na(other_text)) %>%
      mutate(col_names = x, 
             prop = n/nrow(main_dataset))
    }) %>% 
  do.call(rbind,.)
oth_prop %>% head(20)
other_text n col_names prop
Low-income family 4 b10_1_hohh_vulnerability_other 0.0024737
Chernobyl liquidator 3 b10_1_hohh_vulnerability_other 0.0018553
“Child of war” status 1 b10_1_hohh_vulnerability_other 0.0006184
“Child of war” status, “Veteran of labour” status 1 b10_1_hohh_vulnerability_other 0.0006184
A carer for a disabled child 1 b10_1_hohh_vulnerability_other 0.0006184
A carer for a disabled person 1 b10_1_hohh_vulnerability_other 0.0006184
Child custody 1 b10_1_hohh_vulnerability_other 0.0006184
Deprived orphan 1 b10_1_hohh_vulnerability_other 0.0006184
Family with a child with disability 1 b10_1_hohh_vulnerability_other 0.0006184
Has a status of the victim of human trafficing 1 b10_1_hohh_vulnerability_other 0.0006184
Husband has disability group 3 1 b10_1_hohh_vulnerability_other 0.0006184
Own apartment destroyed, rented housing 1 b10_1_hohh_vulnerability_other 0.0006184
Pensioner because takes care of the sun, who has born disability (currently 33 y.o., 2 level of disability, lives in another HH) 1 b10_1_hohh_vulnerability_other 0.0006184
Raises a nephew 1 b10_1_hohh_vulnerability_other 0.0006184
Was injured during the conflict 1 b10_1_hohh_vulnerability_other 0.0006184
Psoriasis 3 b11_1_hohh_chronic_illness_other 0.0018553
Blood pressure 2 b11_1_hohh_chronic_illness_other 0.0012369
Allergy 1 b11_1_hohh_chronic_illness_other 0.0006184
Aseptic necrosis, deforming arthritus 1 b11_1_hohh_chronic_illness_other 0.0006184
Asthma 1 b11_1_hohh_chronic_illness_other 0.0006184

5.5.3 Issue log Function

this function will help the generation of standard cleaning log file that holds issues that need clarification. first we need to subset or filter data based on the check list, then that is the log_sheet function will help us to transform that subsetted data into standard cleaning log format.

log_sheet <- function(data, question.name, issue, action){
  cleaning_logbook <- data.frame("uuid" = as.character(),
                                 "question.name" = as.character(),
                                 "issue" = as.character(),
                                 "feedback" = as.character(),
                                 "action" = as.character(),
                                 "old.value" = as.character(),
                                 "new.value" = as.character(),
                                 stringsAsFactors = F)
  if(nrow(data) > 0){
    for(a in 1:nrow(data)) {
      cleaning_logbook <- cleaning_logbook %>% 
        add_row(
          tibble_row(
            uuid = as.character(data[a, "X_uuid"]),
            question.name = as.character(question.name),
            issue = as.character(issue),
            feedback = as.character(""),
            action = as.character(action),
            old.value = as.character(data[a, question.name]),
            new.value = as.character("")
            
          )
        )
    }
  }
  return(cleaning_logbook)
}

Now, lets use the function to log an issue where consent to calls follow-up is no and log them into standard cleaning log format

issue_file <- main_dataset %>% 
  filter(a3_consent_to_follow_up_calls == "no") %>% 
  log_sheet(question.name = "a3_consent_to_follow_up_calls", 
            issue = "flagging consent followup calls with no response as an example",
            action = "flag")

5.5.4 Check for logical check

hum hum hum ?? Custom script (using dplyr?)

  • Any value that is arbitrary set (from an informed source e.g. an informal setttlement cannot be lower than 15 households). This type of outliers could also be considered as logical checks.

5.6 cleaninginspectoR - inspect_all

cleanninginspectoR has a function inspect inspect_all that will look for outliers, others responses that may need recoding, duplicated uuid and possible sensitive columns. It takes as arguments the dataset and the uuid column name.

cleaning_log <- cleaninginspectoR::inspect_all(main_dataset, "X_uuid")
cleaning_log %>% head(20)
index value variable has_issue issue_type
NA NA a3_1_phone TRUE Potentially sensitive information. Please ensure all PII is removed
NA NA r5_gps_work TRUE Potentially sensitive information. Please ensure all PII is removed
NA NA r6_gpslocation TRUE Potentially sensitive information. Please ensure all PII is removed
NA NA X_r6_gpslocation_latitude TRUE Potentially sensitive information. Please ensure all PII is removed
NA NA X_r6_gpslocation_longitude TRUE Potentially sensitive information. Please ensure all PII is removed
NA NA X_r6_gpslocation_altitude TRUE Potentially sensitive information. Please ensure all PII is removed
NA NA X_r6_gpslocation_precision TRUE Potentially sensitive information. Please ensure all PII is removed
26 30000 b15_hohh_income TRUE log normal distribution outlier
117 210 b15_hohh_income TRUE log normal distribution outlier
225 400 b15_hohh_income TRUE log normal distribution outlier
384 300 b15_hohh_income TRUE log normal distribution outlier
517 300 b15_hohh_income TRUE log normal distribution outlier
710 24000 b15_hohh_income TRUE log normal distribution outlier
742 400 b15_hohh_income TRUE log normal distribution outlier
1126 50000 b15_hohh_income TRUE log normal distribution outlier
1384 400 b15_hohh_income TRUE log normal distribution outlier
1399 200 b15_hohh_income TRUE log normal distribution outlier
1417 400 b15_hohh_income TRUE log normal distribution outlier
5 20 f2_spend_on_utilities TRUE log normal distribution outlier
89 5000 f2_spend_on_utilities TRUE log normal distribution outlier

5.7 Data cleaning

5.7.1 Re-generate text column for select multiple questions

Description: During data cleaning (when recoding the other options for example), there is a high chance that the dummies and text columns become inconsistent. That can cause issues when analyzing the data if both the dummies and text columns are used. To avoid that, the following function can be used to regenerate and update the text columns based on the dummies columns.

Usage: 1- Create a list of the questions to regenerate:

select_multiple_questions = c("b10_hohh_vulnerability","f17_store_drinking_water","b11_hohh_chronic_illness")

2- Define the function

generate_from_binaries <- function(data,select_multiple_questions) {
  
  do.call("cbind",map(select_multiple_questions,function(question_name,data) {
    
    df <- data %>% select(grep(paste0("^",question_name,"\\."), names(data))) ## Subseting the dataset to include only dummies related to one question
    df <- mutate_all(df,as.numeric) ## Making sure the dummies columns are numerical
    colnames(df) <- gsub(paste0(question_name,"\\."),"",colnames(df)) ## Keeping only the options names in the colnames
    df <- map2_df(df, names(df), ~  replace(.x, .x==1, .y) %>% replace(. == 0, NA)) ## Replacing a cell with a value of '1' with its respective column name and '0' with NA
    df %>%
      unite(!!sym(question_name),names(df),remove=TRUE,na.rm=TRUE,sep=" ") %>% ## concatenate the columns using " " as a seperator 
      as.data.frame() %>% ## Convert to dataframe
      mutate_all(list(~na_if(.,""))) ## replace empty string with NA
  },data)) 
  
}

3- Call the function the generate the columns and replace directely in the data set using replace_columns

main_dataset <- replace_columns(main_dataset, generate_from_binaries(main_dataset,select_multiple_questions)) 

5.7.2 Clean data base on cleaning log

Required Libraries: Base R Packages


The function “incorporate_logs” applies cleaning log on raw data. It gets cleaning log in a format that must contain 5 mandatory columns including uuid, question.name, old.value, new.value, and changed. as result it would return the cleaned data frame, master cleaning log (logs that are both applied and not applied on data), the version of cleaning log that was applied on raw data, a report of duplicate logs, and logs that their question name or uuid is not available in raw data frame.


# Creating a dummy data set
city_name <- c("kabul", "new dlehi", "peshawar","new york")
population <- c(4430000, 21750000, 1970000, 8419000)
uuid <- c("eae001", "eae002", "eae003","eae004")

my_df <- data.frame(city_name, population, uuid)

# Creating a dummy cleaning log
old.value <- c("kabul", 4430000, "europe","kabul")
question.name <- c("city_name", "population", "continent","city_name")
new.value <- c("moscow",11920000,"asia","moscow")
uuid <- c("eae001","eae001","eae001","eae001")
changed <- c("yes","yes","yes","yes")

cleaning_log <- data.frame(uuid,question.name, old.value, new.value, changed)

### declaring the function
incorporate_logs = function(raw_df, cleaning_log, df_group_seprator = "/", uuid_col = "_uuid"){
  error <- "Error!
Execution was haulted due to one of the following issues:
  - Cleaning log is empty
  - There is no changes in data (in cleaning log changed property for all logs is set to 'NO')
  - One/morethan one of the (uuid, question.name, old.value, new.value, and changed) columns are missing or column names are misspelled
"
  if (sum(grepl("uuid|question.name|old.value|new.value|changed", names(cleaning_log)))==5) {
    `%nin%` = Negate(`%in%`)
    # changing the group seprator (operator) from "/" to "."
    names(raw_df) <- gsub(df_group_seprator,".",names(raw_df))
    cleaning_log$question.name <- gsub(df_group_seprator,".", cleaning_log$question.name)
    
    # subsetting logs that their question is not (available) in dataset
    logs_not_in_rawdf <- cleaning_log[cleaning_log$question.name %nin% names(raw_df) | cleaning_log$uuid %nin% raw_df[[uuid_col]], ]
    logs_not_in_rawdf <- logs_not_in_rawdf[logs_not_in_rawdf$changed %in% c("yes","Yes"),]
    
    # subsetting logs that their question exist in raw data frame and its new value is changed
    cleaning_log.changed <- cleaning_log[cleaning_log$question.name %in% names(raw_df) & cleaning_log$uuid %in% raw_df[[uuid_col]], ]
    cleaning_log.changed <- cleaning_log.changed[cleaning_log.changed$changed %in% c("yes","Yes"),]
    
    # capturing duplicate logs
    cleaning_log$unique_key <- paste(cleaning_log$uuid, cleaning_log$question.name, sep = "_")
    duplicate_logs <- cleaning_log[(duplicated(cleaning_log$unique_key) | duplicated(cleaning_log$unique_key, fromLast = T)),]
    
    # cleaning master cleaning log
    cleaning_log <- cleaning_log[cleaning_log$uuid %nin% logs_not_in_rawdf$uuid | cleaning_log$question.name %nin% logs_not_in_rawdf$question.name,]
    cleaning_log <- cleaning_log[!is.na(cleaning_log$question.name), ]
    cleaning_log <- cleaning_log[!is.na(cleaning_log$uuid), ]
    
    raw_df_valid <- raw_df
    if (nrow(cleaning_log.changed)>0) {
      # Apply cleaning log on raw data
      for (rowi in 1:nrow(cleaning_log.changed)){
        uuid_i <- cleaning_log.changed$uuid[rowi]
        var_i <- cleaning_log.changed$question.name[rowi]
        old_i <- cleaning_log.changed$old.value[rowi]
        new_i <- cleaning_log.changed$new.value[rowi]
        if(class(raw_df_valid[[var_i]]) == "character"){
          new_i <- as.character(new_i)
        }else if(class(raw_df_valid[[var_i]]) == "numeric"){
          new_i <- as.numeric(new_i)
        }else if(class(raw_df_valid[[var_i]]) == "logical"){
          new_i <- as.integer(new_i)
        }else if(class(raw_df_valid[[var_i]]) == "integer"){
          new_i <- as.integer(new_i)
        }
        # Find the variable according to the row of the cleaning log
        raw_df_valid[raw_df_valid[[uuid_col]] == uuid_i, var_i] <- new_i
        print(paste(rowi,"uuid:", uuid_i, "Old value:", old_i, "changed to", new_i, "for", var_i))
      }
      return(list(cleaned_df = raw_df_valid, cleaning_log.applied = cleaning_log.changed, logs_not_in_rawDF = logs_not_in_rawdf, duplicate_logs = duplicate_logs, master_cleaning_log = cleaning_log))
    }else{
      cat(error)
      return(list(cleaned_df = raw_df_valid, cleaning_log.applied = cleaning_log.changed,logs_not_in_rawdf = logs_not_in_rawdf))
    }
  }else{
    cat(error)
  }
}

### Applying the function to data frame
incorprated_logs <- incorporate_logs(my_df, cleaning_log, uuid_col = "uuid")
## [1] "1 uuid: eae001 Old value: kabul changed to moscow for city_name"
## [1] "2 uuid: eae001 Old value: 4430000 changed to 11920000 for population"
## [1] "3 uuid: eae001 Old value: kabul changed to moscow for city_name"
cleaned_data <- incorprated_logs$cleaned_df
master_cleaning_log <- incorprated_logs$master_cleaning_log
logs_not_in_rawDf <- incorprated_logs$logs_not_in_rawDF
cleaning_log.applied <- incorprated_logs$cleaning_log.applied
duplicate_log <- incorprated_logs$duplicate_logs
cleaned_data
city_name population uuid
moscow 11920000 eae001
new dlehi 21750000 eae002
peshawar 1970000 eae003
new york 8419000 eae004
master_cleaning_log
uuid question.name old.value new.value changed unique_key
1 eae001 city_name kabul moscow yes eae001_city_name
2 eae001 population 4430000 11920000 yes eae001_population
4 eae001 city_name kabul moscow yes eae001_city_name
logs_not_in_rawDf
uuid question.name old.value new.value changed
3 eae001 continent europe asia yes
cleaning_log.applied
uuid question.name old.value new.value changed
1 eae001 city_name kabul moscow yes
2 eae001 population 4430000 11920000 yes
4 eae001 city_name kabul moscow yes
duplicate_log
uuid question.name old.value new.value changed unique_key
1 eae001 city_name kabul moscow yes eae001_city_name
4 eae001 city_name kabul moscow yes eae001_city_name

5.7.3 Check cleaning log, raw dataset and clean dataset

dplyr waldo arsenal

5.8 Data cleaning - miscellaneous

5.8.1 Check for data sanity check if the data follow ODK format (select_one, select_multiple, xxx, choices)

To be created

5.8.2 Turns label to xml

Custom script (using ???)

5.9 Translation using Microsoft API

These functions will allow you to find specific vectors that needs to be translated in your data and automatically translate them using the Microsoft Azure Translator API.

API instances are setup at mission request and a normal procurement process applies. Once purchased, HQ hands over the API to the mission to configure and manage.

  1. Find Responses

This function takes raw dataframe and find all the responses for a given set of questions.

find.responses <- function(data, questions, values_to="response.uk"){
  #' Look up a raw Kobo dataframe to find all responses to a given set of questions.
  #'
  #' The set of  `questions` needs to contain all columns for translation which will be used to look up `data`.
  #' The input `data` needs to contain a column "uuid"
  #' The vector containing found responses is stored in column specified by parameter `values_to`.
  #'
  #' Be warned: all responses will be converted to character.sou
  #' @param values_to Name of the column in which found responses will be stored.
  #' @returns A dataframe containing columns "uuid", "question.name", and the column specified by `values_to`. Additionally, "loop_index" if `is.loop` is TRUE.
  #' @example
  #' q.db <- data.frame(name = c("age", "occupation"))
  #' raw.data <- data.frame(age = c(21,32), occupation = c("cook", "train conductor"), uuid = c("abc","def"))
  #' find.responses(raw.data, q.db, "responses")
  
  # list of choices for each list_name (from TOOL_CHOICES)
  list.choices <- tool.choices %>% filter(!is.na(list_name)) %>% group_by(list_name) %>%
    mutate(choices=paste(name, collapse=";\n"),
           choices.label=paste(!!sym(label_colname), collapse=";\n")) %>%
    summarise(choices=choices[1], choices.label=choices.label[1])
  
  # list of choices for each question
  select.questions <- tool.survey %>%
    rename(q.label=label_colname) %>%
    select(type, name, q.label) %>%
    mutate(q.type=as.character(lapply(type, function(x) return(str_split(x, " ")[[1]][1]))),
           list_name=as.character(lapply(type, function(q_type){
  #' finds the choice list for a question basing on its type
  q_type.1 <- str_split(q_type, " ")[[1]]
  if (length(q_type.1)==1) return(NA)
  else return(q_type.1[2])
}))) %>%
    filter(list_name!="NA" & list_name!="group" & list_name!="repeat") %>%
    left_join(list.choices, by="list_name") %>%
    filter(!is.na(choices))
  # create a data frame with the questions selected
  question.db <- tool.survey %>% filter(name %in% questions) %>%
    rename(label=label_colname) %>%
    select("name", "label", "relevant") %>%
    mutate(ref.name=as.character(lapply(relevant, function(x) {
      x.1 <- str_split(x, "\\{")[[1]][2]
      return(str_split(x.1,"\\}")[[1]][1])
    }))) %>%
    left_join(select(select.questions, "name", "q.type", "q.label", "list_name", "choices", "choices.label"),
              by=c("ref.name"="name")) %>%
    rename(ref.label=q.label, ref.type=q.type) %>%
    mutate(full.label=paste0(ref.label, " - ", label)) %>%
    select(name, ref.name, full.label, ref.type, choices, choices.label)
  if(nrow(question.db) == 0){
      warning("questions is empty - returning an empty dataframe.")
      return(data.frame())
  }

  if(nrow(data) == 0){
      warning("data is empty - returning an empty dataframe.")
      return(data.frame())
  }

  responses <- data %>%
      select(c("uuid", any_of(question.db$name))) %>%
      pivot_longer(cols = any_of(question.db$name),
                   names_to="question.name", values_to=values_to,
                   values_transform = as.character) %>%
      filter(!is.na(!!sym(values_to))) %>%
      select(uuid, question.name, !!sym(values_to))

  responses.j <- responses %>%
      left_join(question.db, by=c("question.name"="name")) %>% dplyr::rename(name="question.name") %>%
      left_join(select(data, uuid), by="uuid") 
  return(responses.j)
}
  1. Translate Responses

This function translate a vector from a given dataframe.

It will return the same dataframe as the find.responses function above but with a new column containing the translation. Also, it will return a logframe csv file in the same directory of the running script.

This function will require the remote package translateREACH. This package can be installed by:

install.packages(“devtools”) devtools::install_github(“REACH-WoU-Regional/translateR”)

translate.responses <- function(responses, values_from = "response.uk", language_codes = 'uk', target_lang = "en", microsoft.api.key = NULL, threshold = 200000){

  #' Translate a vector from a given dataframe.
  #'
  #' The provided dataframe `responses` must contain the column `values_from` which will be used as input vector for the translation.
  #' Also outputs informative logs to file named "translate_info.csv". Specify the target language using `target_lang` parameter
  #'
  #' Warning: If more than one source language code is provided, the entire translation WILL BE REPEATED. You are advised against that,
  #' because we do not want to hit our monthly limits for the API.
  #'
  #' @param respones Dataframe containing a column which shall be translated.
  #' @param values_from Name of the column from `responses` which shall be translated.
  #' @param language_codes Character vector of two-letter language codes. The input vector will be translated from both of these languages.
  #' @param target_lang Input vector will be translated into this language.
  #' @param microsoft.api.key Character input of the microsoft.api.key.
  #' @param threshold Input threshold to interrupt the user if the number of characters is exceeding 200,000 by default. 
  #' @returns The same dataframe as `responses`, but with a new column, containing the translation.
  #' The column will be named according to the given source and target languages. By default, the output will be stored in column named 'response.en.from.uk'
  
  if(is.null(microsoft.api.key)) stop("Please provide a microsoft.api.key while calling the function.")
  info_df <- data.frame()
  responses_batch <- data.frame()
  temp_resp_whole <- data.frame()
  start_time <- Sys.time()

  # extract unique responses from the source dataframe
  responses <- responses %>% mutate(resp_lower = str_to_lower(!!sym(values_from)))
   
  input_vec <- responses %>% distinct(resp_lower) %>% pull(resp_lower)
  # cleaning up html leftovers:
  input_vec <- gsub("&#39;", "'", input_vec)
  # counts characters which will be translated
  char_counter <- sum(str_length(input_vec))
  # TODO: pause here, print the char_counter, and ask the user if the translation should go ahead
  if (char_counter > threshold){
    yes_no <- svDialogs::dlgInput(paste0("The number of characters exceeds ", threshold, ". Please enter [YES] if you would like to proceed or [NO] to kill:"), "YES or NO")$res
  } else{
    yes_no <- "YES"
  }
  batching <- svDialogs::dlgInput(paste0("How many batches would you like to split your translation (",char_counter," characters)? (please only integer)"), 0)$res
  batching <- as.numeric(batching)
  if(yes_no == "YES"){
    if(length(input_vec) > 0){
      for (code in language_codes) {
        col_name <- paste0("response.",target_lang, ".from.",code)
        temp_resp <- tibble(input_vec)
        temp_resp[[col_name]] <- NA
        temp_resp <-  temp_resp[sample(1:nrow(temp_resp)),]
        ## create batches
        temp_resp_batches <- split(temp_resp, factor(sort(rank(row.names(temp_resp))%%batching)))
        progress.bar.title <- as.character(Sys.time())
        pb <- tcltk::tkProgressBar(progress.bar.title, "Number of batches executed", 0, batching, 0, width = 600)
        prog <- 1
        for (temp_resp_batch in temp_resp_batches){
          tcltk::setTkProgressBar(pb, prog, progress.bar.title, paste0("Number of batches executed: ", prog, " of ", batching,"\n",length(temp_resp_batch$input_vec)," responses will be translated from ",code," to ",target_lang, "\nThis means ",sum(str_length(temp_resp_batch$input_vec))," utf-8 characters."))
          prog <- prog + 1
          # actual translation:
          result_vec <- NULL
          result_vec <- try(translateR::translate(content.vec = temp_resp_batch$input_vec,
                              microsoft.api.key = microsoft.api.key,
                              microsoft.api.region = "switzerlandnorth",
                              source.lang = code, target.lang = target_lang))
          if(inherits(result_vec,"try-error")) break
          # checking the results
          info_df <- rbind(info_df, data.frame(## DEBUGG IT HERE
            "input_responses_num" = length(temp_resp_batch$input_vec),
            "translated_characters_num" = sum(str_length(temp_resp_batch$input_vec)),
            "language_from" = code,
            "result_num" = length(result_vec),
            "time_elapsed" = as.numeric(Sys.time() - start_time),
            "date"=Sys.Date(),
            "status"=NA))
          if(is.null(result_vec)){
            warning("Error while translating responses: result_vec is NULL\n")
            info_df$status <- "error"
          }else{
            temp_resp_batch[[col_name]] <- gsub("&#39;", "'", result_vec)
            if(length(result_vec) == length(temp_resp_batch$input_vec)){ 
              info_df$status <- "success"
              # bind the translated and source dfs
              temp_resp_whole <- rbind(temp_resp_whole,temp_resp_batch)
            }else{
              info_df$status <- "partial success"
            }
          }
        }
        close(pb)
        if("partial success" %in% info_df$status){
          svDialogs::msgBox("translate.responses: finished - PARTIAL SUCCESS?")
        } else{
          svDialogs::msgBox("translate.responses: finished - SUCCESS")
        }
        responses <- responses %>% left_join(temp_resp_whole, by = c("resp_lower" = "input_vec")) 
      }
    }else{
      warning("Nothing to be translated")
    }
  }
  # dump info about the results of translation
  log_filename <- "translate_info.csv"
  if(file.exists(log_filename)) write.table(info_df, file = log_filename, append = T, row.names = F, col.names = F, sep = ',')
  else write.table(info_df, file = log_filename, row.names = F, col.names = T, sep = ',')

  responses <- responses %>% select(-resp_lower)
  return(responses)
}
  1. Example:
other_columns <- c("b12_1_situation_description_other")

responses <- find.responses(main_dataset,other_columns,values_to = "response.en")
responses.j <- translate.responses(responses, language_codes = "fr")