Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
 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
         ),
     ]
Ejemplo n.º 3
0
 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')])),
     ]
Ejemplo n.º 4
0
 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')]))
     ]
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
 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')
     ]
Ejemplo n.º 7
0
 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'),
     ]