def get_columns_by_loc_level(self): selected_month = self.config['month'] def test_fucntion(x): return format_decimal(x) if x else DATA_NOT_ENTERED columns = [ DatabaseColumn( 'AWC Name', SimpleColumn('awc_name'), slug='awc_name' ), DatabaseColumn( 'AWC Site Code', SimpleColumn('awc_site_code'), slug='awc_site_code' ), DatabaseColumn( 'Supervisor Name', SimpleColumn('supervisor_name'), slug='supervisor_name' ), DatabaseColumn( 'Block Name', SimpleColumn('block_name'), slug='block_name' ), DatabaseColumn( 'AWW Phone Number', SimpleColumn('aww_phone_number'), format_fn=phone_number_function, slug='aww_phone_number' ), DatabaseColumn( 'Mother Phone Number', SimpleColumn('mother_phone_number'), format_fn=phone_number_function, slug='mother_phone_number' ), DatabaseColumn( 'Child Name', SimpleColumn('person_name'), slug='person_name' ), DatabaseColumn( 'Date of Birth', SimpleColumn('dob'), slug='dob' ), DatabaseColumn( 'Current Age (as of {})'.format(selected_month.isoformat()), AliasColumn('dob'), format_fn=lambda x: calculate_date_for_age(x, self.config['month']), slug='current_age' ), DatabaseColumn( 'Sex ', SimpleColumn('sex'), slug='sex' ), ICDSDatabaseColumn( '1 Year Immunizations Complete', SimpleColumn('fully_immunized'), format_fn=lambda x: 'Yes' if x else 'No' ), DatabaseColumn( 'Month for data shown', SimpleColumn('month'), slug='month' ), DatabaseColumn( 'Weight Recorded (in Month)', SimpleColumn('recorded_weight'), format_fn=test_fucntion, slug='recorded_weight' ), DatabaseColumn( 'Height Recorded (in Month)', SimpleColumn('recorded_height'), format_fn=test_fucntion, slug='recorded_height' ), DatabaseColumn( 'Weight-for-Age Status (in Month)', SimpleColumn('current_month_nutrition_status'), format_fn=lambda x: get_status( x, 'underweight', 'Normal weight for age', True ), slug='current_month_nutrition_status' ), DatabaseColumn( 'Weight-for-Height Status (in Month)', SimpleColumn(current_month_wasting_column(self.beta)), format_fn=lambda x: get_status( x, 'wasted', 'Normal weight for height', True ), slug="current_month_wasting_v2" ), DatabaseColumn( 'Height-for-Age status (in Month)', SimpleColumn(current_month_stunting_column(self.beta)), format_fn=lambda x: get_status( x, 'stunted', 'Normal height for age', True ), slug="current_month_stunting_v2" ), DatabaseColumn( 'Days attended PSE (as of {})'.format(selected_month.isoformat()), SimpleColumn('pse_days_attended'), slug="pse_days_attended" ), ] return columns
def columns(self): return [ DatabaseColumn( _("Total number of ASHAs under the Facilitator"), CountUniqueColumn( "case_id", filters=[ EQ('owner_id', 'af'), OR([ISNULL('closed_on'), GTE('closed_on', 'enddate')]), LTE('registration_date', 'enddate') ], alias="total_ashas" ) ), DatabaseColumn( _("Total number of ASHAs for whom functionality checklist was filled"), CountUniqueColumn( "case_id", filters=[ EQ('owner_id', 'af'), EQ('is_checklist', 'is_checklist'), BETWEEN('completed_on', 'startdate', 'enddate') ], alias="total_ashas_checklist" ) ), DatabaseColumn( _("Newborn visits within first day of birth in case of home deliveries"), FunctionalityChecklistColumn('hv_fx_home_birth_visits', whens={1: 1}), ), DatabaseColumn( _("Set of home visits for newborn care as specified in the HBNC guidelines<br/>" "(six visits in case of Institutional delivery and seven in case of a home delivery)"), FunctionalityChecklistColumn('hv_fx_newborns_visited', whens={1: 1}), ), DatabaseColumn( _("Attending VHNDs/Promoting immunization"), FunctionalityChecklistColumn('hv_fx_vhnd', whens={1: 1}), ), DatabaseColumn( _("Supporting institutional delivery"), FunctionalityChecklistColumn('hv_fx_support_inst_delivery', whens={1: 1}), ), DatabaseColumn( _("Management of childhood illness - especially diarrhea and pneumonia"), FunctionalityChecklistColumn('hv_fx_child_illness_mgmt', whens={1: 1}), ), DatabaseColumn( _("Household visits with nutrition counseling"), FunctionalityChecklistColumn('hv_fx_nut_counseling', whens={1: 1}), ), DatabaseColumn( _("Fever cases seen/malaria slides made in malaria endemic area"), FunctionalityChecklistColumn('hv_fx_malaria', whens={1: 1}), ), DatabaseColumn( _("Acting as DOTS provider"), FunctionalityChecklistColumn('hv_fx_dots', whens={1: 1}), ), DatabaseColumn( _("Holding or attending village/VHSNC meeting"), FunctionalityChecklistColumn('hv_fx_vhsnc', whens={1: 1}), ), DatabaseColumn( _("Successful referral of the IUD, " "female sterilization or male sterilization cases and/or providing OCPs/Condoms"), FunctionalityChecklistColumn('hv_fx_fp', whens={1: 1}), ), AggregateColumn( _("<b>Total number of ASHAs who are functional on at least %s of the tasks</b>") % "60%", aggregate_fn=lambda x, y: { 'sort_key': ((x or 0) * 100 / (y or 1)), 'html': '{0}/{1} ({2}%)'.format((x or 0), y, ((x or 0) * 100 // (y or 1))) }, columns=[ FunctionalityChecklistColumn( whens={'hv_percent_functionality >= 60': 1}, alias='percent_functionality'), AliasColumn('total_ashas_checklist') ], format_fn=lambda x: x ), ]
def columns(self): return [ self.first_column, DatabaseColumn(_('home_visits_newborn'), CountColumn('doc_id', alias="home_visits_newborn", filters=self.filters + [OR([EQ('newborn_reg', 'one'), EQ('newborn_followup', 'one')])])), DatabaseColumn(_('home_visits_children'), CountColumn('doc_id', alias="home_visits_children", filters=self.filters + [OR([EQ('child_reg', 'one'), EQ('child_followup', 'one')])])), DatabaseColumn(_('home_visits_adult'), CountColumn('doc_id', alias="home_visits_adult", filters=self.filters + [NOTEQ('home_visit', 'not')])), AggregateColumn(_("home_visits_total"), add_all, [ AliasColumn("home_visits_newborn"), AliasColumn("home_visits_children"), AliasColumn("home_visits_adult"), ], slug='home_visits_total'), DatabaseColumn(_('cases_transferred'), CountColumn('doc_id', alias='cases_transferred', filters=self.filters + [OR([ EQ('referral_reported_newborn', 'one'), EQ('referral_given_child', 'one'), EQ('referral_given_adult', 'one'), ])])), DatabaseColumn(_('home_visits_followup'), CountColumn('doc_id', alias="home_visits_followup", filters=self.filters + [OR([ EQ('newborn_followup', 'one'), EQ('child_followup', 'one'), EQ('adult_followup', 'one') ])])), DatabaseColumn(_('patients_given_pneumonia_meds_num'), CountColumn( 'doc_id', alias='patients_given_pneumonia_meds_num', filters=self.filters + [OR([ AND([EQ('has_pneumonia', 'one'), EQ('it_ari_child', 'one')]), AND([EQ('pneumonia_ds', 'one'), EQ('it_ari_child', 'one')]), AND([EQ('ari_adult', 'one'), EQ('it_ari_adult', 'one')])])])), DatabaseColumn(_('patients_given_pneumonia_meds_denom'), CountColumn( 'doc_id', alias='patients_given_pneumonia_meds_denom', filters=self.filters + [OR([ EQ('has_pneumonia', 'one'), EQ('pneumonia_ds', 'one'), EQ('ari_adult', 'one')])])), AggregateColumn(_('patients_given_pneumonia_meds'), percent_format, [ AliasColumn('patients_given_pneumonia_meds_num'), AliasColumn('patients_given_pneumonia_meds_denom') ], slug='patients_given_pneumonia_meds'), DatabaseColumn(_('patients_given_diarrhoea_meds_num'), CountColumn( 'doc_id', alias='patients_given_diarrhoea_meds_num', filters=self.filters + [OR([ AND([OR([EQ('diarrhoea_ds', 'one'), EQ('diarrhoea', 'one')]), EQ('it_diarrhea_child', 'one')]), AND([EQ('diarrhea_adult', 'one'), EQ('it_diarrhea_adult', 'one')])])])), DatabaseColumn(_('patients_given_diarrhoea_meds_denum'), CountColumn( 'doc_id', alias='patients_given_diarrhoea_meds_denum', filters=self.filters + [OR([ EQ('diarrhoea_ds', 'one'), EQ('diarrhoea', 'one'), EQ('diarrhea_adult', 'one')])])), AggregateColumn(_('patients_given_diarrhoea_meds'), percent_format, [ AliasColumn('patients_given_diarrhoea_meds_num'), AliasColumn('patients_given_diarrhoea_meds_denum') ], slug='patients_given_diarrhoea_meds'), DatabaseColumn(_('patients_given_malaria_meds'), CountColumn( 'doc_id', alias='patients_given_malaria_meds_num', filters=self.filters + [OR([ AND([EQ('malaria_child', 'one'), EQ('it_malaria_child', 'one')]), AND([EQ('malaria_adult', 'one'), EQ('it_malaria_adult', 'one')])])])), DatabaseColumn(_('patients_given_malaria_meds_denum'), CountColumn( 'doc_id', alias='patients_given_malaria_meds_demum', filters=self.filters + [OR([ EQ('has_malaria', 'one'), EQ('malaria_adult', 'one')])])), AggregateColumn(_('patients_given_malaria_meds'), percent_format, [ AliasColumn('patients_given_malaria_meds_num'), AliasColumn('patients_given_malaria_meds_denum') ], slug='patients_given_malaria_meds'), DatabaseColumn(_('patients_correctly_referred_num'), CountColumn( 'doc_id', alias='patients_correctly_referred_num', filters=self.filters + [OR([ AND([EQ('referral_needed_newborn', 'one'), EQ('referral_given_newborn', 'one')]), AND([EQ('referral_needed_child', 'one'), EQ('referral_given_child', 'one')]), AND([EQ('treatment_preg_ds', 'one'), EQ('referral_given_adult', 'one')])])])), DatabaseColumn(_('patients_correctly_referred_denum'), CountColumn( 'doc_id', alias='patients_correctly_referred_denum', filters=self.filters + [OR([ EQ('referral_needed_newborn', 'one'), EQ('referral_needed_child', 'one'), EQ('treatment_preg_ds', 'one')])])), AggregateColumn(_('patients_correctly_referred'), percent_format, [ AliasColumn('patients_correctly_referred_num'), AliasColumn('patients_correctly_referred_denum') ], slug='patients_correctly_referred'), DatabaseColumn(_('cases_rdt_not_done'), CountColumn('cases_rdt_not_done', filters=self.filters + [EQ('cases_rdt_not_done', 'one')])), ]
def columns(self): return [ self.first_column, DatabaseColumn(_('home_visits_pregnant'), CountColumn('home_visit', alias="home_visits_pregnant", filters=self.filters + [EQ('home_visit', 'one')])), DatabaseColumn(_('home_visits_postpartem'), CountColumn('post_partem', alias="home_visits_postpartem", filters=self.filters + [EQ('post_partem', 'one')])), DatabaseColumn(_('home_visits_newborn'), CountColumn('doc_id', alias="home_visits_newborn", filters=self.filters + [OR([EQ('newborn_reg', 'one'), EQ('newborn_followup', 'one')])])), DatabaseColumn(_('home_visits_children'), CountColumn('doc_id', alias="home_visits_children", filters=self.filters + [OR([EQ('child_reg', 'one'), EQ('child_followup', 'one')])])), DatabaseColumn(_('home_visits_other'), CountColumn('doc_id', alias="home_visits_other", filters=self.filters + [OR([ AND([EQ('home_visit', 'zero'), EQ('post_partem', 'zero')]), EQ('sex', 'one'), EQ('adult_followup', 'one')])])), AggregateColumn(_("home_visits_total"), add_all, [ AliasColumn("home_visits_pregnant"), AliasColumn("home_visits_postpartem"), AliasColumn("home_visits_newborn"), AliasColumn("home_visits_children"), AliasColumn("home_visits_other"), ], slug='home_visits_total'), DatabaseColumn(_('rdt_positive_children'), CountColumn('doc_id', alias='rdt_positive_children', filters=self.filters + [EQ('rdt_children', 'one')])), DatabaseColumn(_('rdt_positive_adults'), CountColumn('doc_id', alias='rdt_positive_adults', filters=self.filters + [EQ('rdt_adult', 'one')])), DatabaseColumn(_('rdt_others'), CountColumn('doc_id', alias='rdt_others', filters=self.filters + [OR([EQ('rdt_adult', 'zero'), EQ('rdt_children', 'zero')])])), AggregateColumn(_('rdt_total'), add_all, [ AliasColumn('rdt_positive_children'), AliasColumn('rdt_positive_adults'), AliasColumn('rdt_others') ], slug='rdt_total'), DatabaseColumn(_('diagnosed_malaria_child'), CountColumn('malaria_child', alias='diagnosed_malaria_child', filters=self.filters + [EQ('malaria_child', 'one')])), DatabaseColumn(_('diagnosed_malaria_adult'), CountColumn('malaria_adult', alias='diagnosed_malaria_adult', filters=self.filters + [EQ('malaria_adult', 'one')])), DatabaseColumn(_('diagnosed_diarrhea'), CountColumn('doc_id', alias='diagnosed_diarrhea', filters=self.filters + [OR([ EQ('diarrhea_child', 'one'), EQ('diarrhea_adult', 'one') ])])), DatabaseColumn(_('diagnosed_ari'), CountColumn('doc_id', alias='diagnosed_ari', filters=self.filters + [OR([ EQ('ari_child', 'one'), EQ('ari_adult', 'one') ])])), AggregateColumn(_('diagnosed_total'), add_all, [ AliasColumn('diagnosed_malaria_child'), AliasColumn('diagnosed_malaria_adult'), AliasColumn('diagnosed_diarrhea'), AliasColumn('diagnosed_ari') ], slug='diagnosed_total'), DatabaseColumn(_('treated_malaria'), CountColumn('doc_id', alias='treated_malaria', filters=self.filters + [OR([ AND([EQ('it_malaria_child', 'one'), EQ('malaria_child', 'one')]), AND([EQ('it_malaria_adult', 'one'), EQ('malaria_adult', 'one')]) ])])), DatabaseColumn(_('treated_diarrhea'), CountColumn('doc_id', alias='treated_diarrhea', filters=self.filters + [OR([ AND([EQ('diarrhea_child', 'one'), EQ('it_diarrhea_child', 'one')]), AND([EQ('diarrhea_adult', 'one'), EQ('it_diarrhea_adult', 'one')]) ])])), DatabaseColumn(_('treated_ari'), CountColumn('doc_id', alias='treated_ari', filters=self.filters + [OR([ AND([EQ('ari_child', 'one'), EQ('it_ari_child', 'one')]), AND([EQ('ari_adult', 'one'), EQ('it_ari_adult', 'one')]) ])])), AggregateColumn(_('treated_total'), add_all, [ AliasColumn('treated_malaria'), AliasColumn('treated_diarrhea'), AliasColumn('treated_ari') ], slug='treated_total'), DatabaseColumn(_('transfer_malnutrition'), CountColumn('doc_id', alias='transfer_malnutrition', filters=self.filters + [OR([ EQ('malnutrition_child', 'one'), EQ('malnutrition_adult', 'one') ])])), DatabaseColumn(_('transfer_incomplete_vaccination'), CountColumn('doc_id', alias='transfer_incomplete_vaccination', filters=self.filters + [OR([ EQ('vaccination_child', 'one'), EQ('vaccination_adult', 'one'), EQ('vaccination_newborn', 'one') ])])), DatabaseColumn(_('transfer_danger_signs'), CountColumn('doc_id', alias='transfer_danger_signs', filters=self.filters + [OR([ EQ('danger_sign_child', 'one'), EQ('danger_sign_adult', 'one'), EQ('danger_sign_newborn', 'one') ])])), DatabaseColumn(_('transfer_prenatal_consult'), CountColumn('doc_id', alias='transfer_prenatal_consult', filters=self.filters + [EQ('prenatal_consult', 'one')])), DatabaseColumn(_('transfer_missing_malaria_meds'), CountColumn('doc_id', alias='transfer_missing_malaria_meds', filters=self.filters + [OR([ EQ('missing_malaria_meds_child', 'one'), EQ('missing_malaria_meds_adult', 'one') ])])), DatabaseColumn(_('transfer_other'), CountColumn('doc_id', alias='transfer_other', filters=self.filters + [OR([ EQ('other_child', 'one'), EQ('other_adult', 'one'), EQ('other_newborn', 'one') ])])), AggregateColumn(_('transfer_total'), add_all, [ AliasColumn('transfer_malnutrition'), AliasColumn('transfer_incomplete_vaccination'), AliasColumn('transfer_danger_signs'), AliasColumn('transfer_prenatal_consult'), AliasColumn('transfer_missing_malaria_meds'), AliasColumn('transfer_other'), ], slug='transfer_total'), DatabaseColumn(_('deaths_newborn'), CountColumn('doc_id', alias='deaths_newborn', filters=self.filters + [EQ('deaths_newborn', 'one')])), DatabaseColumn(_('deaths_children'), CountColumn('doc_id', alias='deaths_children', filters=self.filters + [EQ('deaths_children', 'one')])), DatabaseColumn(_('deaths_mothers'), CountColumn('doc_id', alias='deaths_mothers', filters=self.filters + [EQ('deaths_mothers', 'one')])), DatabaseColumn(_('deaths_others'), SumColumn('deaths_others', alias='deaths_other', filters=self.filters + [NOTEQ('deaths_others', 'zero')])), AggregateColumn(_('deaths_total'), add_all, [ AliasColumn('deaths_newborn'), AliasColumn('deaths_children'), AliasColumn('deaths_mothers'), AliasColumn('deaths_other'), ], slug='deaths_total'), DatabaseColumn(_('heath_ed_talks'), SumColumn('heath_ed_talks', alias='heath_ed_talks', filters=self.filters + [NOTEQ('heath_ed_talks', 'zero')])), DatabaseColumn(_('heath_ed_participants'), SumColumn('heath_ed_participants', alias='heath_ed_participants', filters=self.filters + [NOTEQ('heath_ed_participants', 'zero')])) ]
def columns(self): columns = self.get_columns_by_loc_level agg_columns = [ AggregateColumn('Weighing efficiency (in month)', percent, [ SumColumn('nutrition_status_weighed', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]), SumColumn('wer_eligible', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]) ], slug='percent_weight_efficiency'), AggregateColumn( 'Height measurement efficiency (in month)', percent, [ SumColumn('height_measured_in_month', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))], alias='height_measured_in_month_all'), SumColumn('height_eligible', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]) ], slug='height_measurement'), DatabaseColumn('Total number of unweighed children (0-5 Years)', SumColumn('nutrition_status_unweighed', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]), slug='total_number_unweighed'), AggregateColumn( 'Percentage of severely underweight children', percent, [ SumColumn('nutrition_status_severely_underweight', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]), SumColumn('nutrition_status_weighed', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]), ], slug='percent_severe_underweight'), AggregateColumn( 'Percentage of moderately underweight children', percent, [ SumColumn('nutrition_status_moderately_underweight', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]), SumColumn('nutrition_status_weighed', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]), ], slug='percent_moderate_underweight'), AggregateColumn('Percentage of normal weight-for-age children', percent, [ SumColumn('nutrition_status_normal', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]), SumColumn('nutrition_status_weighed', filters=self.filters + [NOT(EQ('age_tranche', 'age_72'))]), ], slug='percent_normal_weight'), AggregateColumn( 'Percentage of children with severe wasting', percent, [ SumColumn( wasting_severe_column(self.beta), filters=self.filters + get_age_filters(self.beta)), SumColumn( wfh_recorded_in_month_column(self.beta), alias='weighed_and_height_measured_in_month', filters=self.filters + get_age_filters(self.beta)) ], slug='percent_severe_wasting'), AggregateColumn( 'Percentage of children with moderate wasting', percent, [ SumColumn( wasting_moderate_column(self.beta), filters=self.filters + get_age_filters(self.beta)), AliasColumn('weighed_and_height_measured_in_month') ], slug='percent_moderate_wasting'), AggregateColumn( 'Percentage of children with normal weight-for-height', percent, [ SumColumn( wasting_normal_column(self.beta), filters=self.filters + get_age_filters(self.beta)), AliasColumn('weighed_and_height_measured_in_month') ], slug='percent_normal_wasting'), AggregateColumn( 'Percentage of children with severe stunting', percent, [ SumColumn( stunting_severe_column(self.beta), filters=self.filters + get_age_filters(self.beta)), SumColumn( hfa_recorded_in_month_column(self.beta), alias='height_measured_in_month', filters=self.filters + get_age_filters(self.beta)) ], slug='percent_severe_stunting'), AggregateColumn('Percentage of children with moderate stunting', percent, [ SumColumn(stunting_moderate_column(self.beta), filters=self.filters + get_age_filters(self.beta)), AliasColumn('height_measured_in_month') ], slug='percent_moderate_stunting'), AggregateColumn( 'Percentage of children with normal height-for-age', percent, [ SumColumn( stunting_normal_column(self.beta), filters=self.filters + get_age_filters(self.beta)), AliasColumn('height_measured_in_month') ], slug='percent_normal_stunting'), AggregateColumn('Percent of newborns with low birth weight', percent, [ SumColumn('low_birth_weight_in_month'), SumColumn('weighed_and_born_in_month') ], slug='newborn_low_birth_weight'), AggregateColumn( 'Percentage of children with completed 1 year immunizations', lambda x, y, z: '%.2f%%' % (( (x or 0) + (y or 0)) * 100 / float(z or 1)), [ SumColumn('fully_immunized_on_time'), SumColumn('fully_immunized_late'), SumColumn('fully_immunized_eligible') ], slug='percent_completed_1year_immunizations'), AggregateColumn( 'Percentage of children breastfed at birth', percent, [SumColumn('bf_at_birth'), SumColumn('born_in_month')], slug='percent_breastfed_at_birth'), AggregateColumn( 'Percentage of children exclusively breastfeeding', percent, [SumColumn('ebf_in_month'), SumColumn('ebf_eligible')], slug='percent_ebf'), AggregateColumn( 'Percentage of children initiated complementary feeding (in the past 30 days)', percent, [ SumColumn('cf_initiation_in_month'), SumColumn('cf_initiation_eligible') ], slug='percent_initiated_on_cf'), AggregateColumn( 'Percentage of children initiated appropriate complementary feeding', percent, [SumColumn('cf_in_month'), SumColumn('cf_eligible')], slug='percent_appropriate_cf'), AggregateColumn( 'Percentage of children receiving complementary feeding with adequate diet diversity', percent, [SumColumn('cf_diet_diversity'), AliasColumn('cf_eligible')], slug='percent_cf_diet_diversity'), AggregateColumn( 'Percentage of children receiving complementary feeding with adequate diet quanity', percent, [SumColumn('cf_diet_quantity'), AliasColumn('cf_eligible')], slug='percent_cf_diet_quanity'), AggregateColumn( "Percentage of children receiving complementary feeding " "with appropriate handwashing before feeding", percent, [SumColumn('cf_handwashing'), AliasColumn('cf_eligible')], slug='percent_cf_handwashing_before_feeding'), ] return columns + agg_columns
def get_columns(self, filters): return [ DatabaseColumn('month', SimpleColumn('month')), AggregateColumn( '% Weighing efficiency (Children <5 weighed)', percent_num, [ SumWhen(whens=[[ "age_tranche != :age_72", 'nutrition_status_weighed' ]], alias='nutrition_status_weighed'), SumWhen(whens=[["age_tranche != :age_72", 'wer_eligible']], alias='wer_eligible') ], slug='status_weighed'), AggregateColumn( '% Height measurement efficiency (Children <5 measured)', percent_num, [ SumWhen(whens=[[ "age_tranche != :age_72", 'height_measured_in_month' ]], alias='height_measured_in_month_less_5'), SumWhen( whens=[["age_tranche != :age_72", 'height_eligible']], alias='height_eligible') ], slug='status_height_efficiency'), DatabaseColumn( 'Total number Unweighed', SumWhen(whens=[[ "age_tranche != :age_72", 'nutrition_status_unweighed' ]], alias='nutrition_status_unweighed')), AggregateColumn( 'Percent Children severely underweight (weight for age)', percent_num, [ SumWhen(whens=[[ "age_tranche != :age_72", 'nutrition_status_severely_underweight' ]], alias='nutrition_status_severely_underweight'), AliasColumn('nutrition_status_weighed') ], slug='severely_underweight'), AggregateColumn( 'Percent Children moderately underweight (weight for age)', percent_num, [ SumWhen(whens=[[ "age_tranche != :age_72", 'nutrition_status_moderately_underweight' ]], alias='nutrition_status_moderately_underweight'), AliasColumn('nutrition_status_weighed') ], slug='moderately_underweight'), AggregateColumn( 'Percent Children normal (weight for age)', percent_num, [ SumWhen(whens=[[ "age_tranche != :age_72", 'nutrition_status_normal' ]], alias='nutrition_status_normal'), AliasColumn('nutrition_status_weighed') ], slug='status_normal'), AggregateColumn( 'Percent children with severe acute malnutrition (weight-for-height)', percent_num, [ SumWhen(whens=[[ get_age_condition(self.beta), wasting_severe_column(self.beta) ]], alias='wasting_severe'), SumWhen(whens=[[ get_age_condition(self.beta), wfh_recorded_in_month_column(self.beta) ]], alias='weighed_and_height_measured_in_month') ], slug='wasting_severe'), AggregateColumn( 'Percent children with moderate acute malnutrition (weight-for-height)', percent_num, [ SumWhen(whens=[[ get_age_condition(self.beta), wasting_moderate_column(self.beta) ]], alias='wasting_moderate'), AliasColumn('weighed_and_height_measured_in_month') ], slug='wasting_moderate'), AggregateColumn( 'Percent children normal (weight-for-height)', percent_num, [ SumWhen(whens=[[ get_age_condition(self.beta), wasting_normal_column(self.beta) ]], alias='wasting_normal'), AliasColumn('weighed_and_height_measured_in_month') ], slug='wasting_normal'), AggregateColumn( 'Percent children with severe stunting (height for age)', percent_num, [ SumWhen(whens=[[ get_age_condition(self.beta), stunting_severe_column(self.beta) ]], alias='zscore_grading_hfa_severe'), SumWhen(whens=[[ get_age_condition(self.beta), hfa_recorded_in_month_column(self.beta) ]], alias='height_measured_in_month') ], slug='stunting_severe'), AggregateColumn( 'Percent children with moderate stunting (height for age)', percent_num, [ SumWhen(whens=[[ get_age_condition(self.beta), stunting_moderate_column(self.beta) ]], alias='zscore_grading_hfa_moderate'), AliasColumn('height_measured_in_month') ], slug='stunting_moderate'), AggregateColumn('Percent children with normal (height for age)', percent_num, [ SumWhen(whens=[[ get_age_condition(self.beta), stunting_normal_column(self.beta) ]], alias='zscore_grading_hfa_normal'), AliasColumn('height_measured_in_month') ], slug='stunting_normal'), AggregateColumn( 'Percent children between 1-2 years who got immunized with 1st year immunizations', lambda x, y, z: ((x or 0) + (y or 0)) * 100 / float(z or 1), [ SumWhen(whens=[[ "age_tranche <= :age_24", 'fully_immunized_on_time' ]], alias='fully_immunized_on_time'), SumWhen(whens=[[ "age_tranche <= :age_24", 'fully_immunized_late' ]], alias='fully_immunized_late'), SumWhen(whens=[[ "age_tranche <= :age_24", 'fully_immunized_eligible' ]], alias='fully_immunized_eligible') ], slug='fully_immunized'), AggregateColumn( 'Percent Children breastfed at birth', percent_num, [SumColumn('bf_at_birth'), SumColumn('born_in_month')], slug='breastfed_at_birth'), AggregateColumn( 'Percent Children exclusively breastfed', percent_num, [SumColumn('ebf_in_month'), SumColumn('ebf_eligible')], slug='exclusively_breastfed'), AggregateColumn( 'Percent Children initiated appropriate complementary feeding', percent_num, [ SumColumn('cf_initiation_in_month'), SumColumn('cf_initiation_eligible') ], slug='cf_initiation'), AggregateColumn( 'Perecent children complementary feeding', percent_num, [SumColumn('cf_in_month'), SumColumn('cf_eligible')], slug='complementary_feeding'), AggregateColumn( 'Percentage of children consuming atleast 4 food groups', percent_num, [SumColumn('cf_diet_diversity'), AliasColumn('cf_eligible')], slug='diet_diversity'), AggregateColumn( 'Percentage of children consuming adequate food', percent_num, [SumColumn('cf_diet_quantity'), AliasColumn('cf_eligible')], slug='diet_quantity'), AggregateColumn( 'Percentage of children whose mothers handwash before feeding', percent_num, [SumColumn('cf_handwashing'), AliasColumn('cf_eligible')], slug='handwashing'), DatabaseColumn( 'Children (0 - 28 Days) Seeking Services', SumWhen(whens=[['age_tranche = :age_0', 'valid_in_month']], alias='zero'), slug='zero'), DatabaseColumn( 'Children (28 Days - 6 mo) Seeking Services', SumWhen(whens=[['age_tranche = :age_6', 'valid_in_month']], alias='one'), slug='one'), DatabaseColumn( 'Children (6 mo - 1 year) Seeking Services', SumWhen(whens=[['age_tranche = :age_12', 'valid_in_month']], alias='two'), slug='two'), DatabaseColumn( 'Children (1 year - 3 years) Seeking Services', SumWhen(whens=[[ 'age_tranche = :age_24 OR age_tranche = :age_36', 'valid_in_month' ]], alias='three'), slug='three'), DatabaseColumn( 'Children (3 years - 6 years) Seeking Services', SumWhen(whens=[[ 'age_tranche = :age_48 OR age_tranche = :age_60 OR age_tranche = :age_72', 'valid_in_month' ]], alias='four'), slug='four'), AggregateColumn( 'Percent of children born in month with low birth weight', percent_num, [ SumColumn('low_birth_weight_in_month'), SumColumn('weighed_and_born_in_month') ], slug='low_birth_weight') ]
def get_columns(self, filters): return [ DatabaseColumn('month', SimpleColumn('month')), DatabaseColumn( 'Number of Households', SumColumn('cases_household'), ), DatabaseColumn('Total Number of Household Members', SumColumn('cases_person_all')), DatabaseColumn( 'Total Number of Members Enrolled for Services for services at AWC ', SumColumn(self.person_is_beneficiary_column, alias=self.person_is_beneficiary_column)), AggregateColumn('Percentage of Beneficiaries with Aadhar', lambda x, y: (x or 0) * 100 / float(y or 1), [ SumColumn(self.person_has_aadhaar_column), AliasColumn(self.person_is_beneficiary_column) ], slug='aadhar'), DatabaseColumn('Total Pregnant women', SumColumn('cases_ccs_pregnant_all')), DatabaseColumn('Total Pregnant Women Enrolled for services at AWC', SumColumn('cases_ccs_pregnant')), DatabaseColumn('Total Lactating women', SumColumn('cases_ccs_lactating_all')), DatabaseColumn( 'Total Lactating women registered for services at AWC', SumColumn('cases_ccs_lactating')), DatabaseColumn('Total Children (0-6 years)', SumColumn('cases_child_health_all')), DatabaseColumn( 'Total Chldren (0-6 years) registered for service at AWC', SumColumn('cases_child_health')), DatabaseColumn( 'Adolescent girls (11-14 years)', SumColumn('cases_person_adolescent_girls_11_14_all')), DatabaseColumn( 'Adolescent girls (15-18 years)', SumColumn('cases_person_adolescent_girls_15_18_all')), DatabaseColumn('Adolescent girls (11-14 years) Seeking Services', SumColumn('cases_person_adolescent_girls_11_14')), DatabaseColumn('Adolescent girls (15-18 years) Seeking Services', SumColumn('cases_person_adolescent_girls_15_18')), AggregateColumn('% AWCs reported clean drinking water', aggregate_fn=percent_num, columns=[ SumColumn('infra_clean_water'), SumColumn('num_awc_infra_last_update', alias='awcs') ], slug='clean_water'), AggregateColumn( '% AWCs reported functional toilet', percent_num, [SumColumn('infra_functional_toilet'), AliasColumn('awcs')], slug='functional_toilet'), AggregateColumn( '% AWCs reported medicine kit', percent_num, [SumColumn('infra_medicine_kits'), AliasColumn('awcs')], slug='medicine_kits'), AggregateColumn( '% AWCs reported weighing scale for mother and child', percent_num, [SumColumn('infra_adult_weighing_scale'), AliasColumn('awcs')], slug='adult_weighing_scale'), AggregateColumn('% AWCs reported weighing scale for infants', percent_num, [ SumColumn('infra_infant_weighing_scale'), AliasColumn('awcs') ], slug='baby_weighing_scale'), ]