Exemple #1
0
 def columns(self):
     columns = [
         DatabaseColumn(
             "Total children with with birthweight known",
             CountUniqueColumn('doc_id',
                               alias="total_birthweight_known",
                               filters=self.filters +
                               [NOTEQ('weight_birth', 'empty')])),
     ]
     columns.extend([
         DatabaseColumn(
             "Birthweight < 2.5 kg",
             CountUniqueColumn(
                 'doc_id',
                 alias="total_birthweight_lt_25",
                 filters=self.filters + [
                     AND([
                         LT('weight_birth', 'weight_birth_25'),
                         NOTEQ('weight_birth', 'empty')
                     ])
                 ])),
         DatabaseColumn(
             "Birthweight >= 2.5 kg",
             CountUniqueColumn(
                 'doc_id',
                 alias="total_birthweight_gte_25",
                 filters=self.filters + [
                     AND([
                         GTE('weight_birth', 'weight_birth_25'),
                         NOTEQ('weight_birth', 'empty')
                     ])
                 ]))
     ])
     return columns
Exemple #2
0
 def filters(self):
     filters = [
         EQ("domain", "domain"),
         EQ("ppt_year", "ppt_year"),
         AND([
             NOTEQ("case_status", "duplicate"),
             NOTEQ("case_status", "test")
         ])
     ]
     for k, v in self.geography_config.items():
         if k in self.config and self.config[k]:
             filters.append(
                 IN(k, get_INFilter_bindparams(k, self.config[k])))
     if 'value_chain' in self.config and self.config['value_chain']:
         filters.append(EQ("value_chain", "value_chain"))
     if 'group_leadership' in self.config and self.config[
             'group_leadership']:
         filters.append(EQ('group_leadership', 'group_leadership'))
     if 'cbt_name' in self.config and self.config['cbt_name']:
         filters.append(
             IN(
                 'owner_id',
                 get_INFilter_bindparams('cbt_name',
                                         self.config['cbt_name'])))
     if 'real_or_test' in self.config and self.config['real_or_test']:
         filters.append(IEQ('real_or_test', 'real_or_test'))
     for column_name in ['domains', 'practices', 'schedule']:
         if column_name in self.config and self.config[
                 column_name] and self.config[column_name] != ('0', ):
             filters.append(
                 IN(
                     column_name,
                     get_INFilter_bindparams(column_name,
                                             self.config[column_name])))
     return filters
Exemple #3
0
    def columns(self):
        self.config['mother_ids'] = tuple(
            DeliveryMothersIds(config=self.config).data.keys()) + ('', )
        columns = [
            DatabaseColumn(
                "Total children with with birthweight known",
                CountUniqueColumn('doc_id',
                                  alias="total_birthweight_known",
                                  filters=self.filters +
                                  [NOTEQ('weight_birth', 'empty')])),
            DatabaseColumn(
                "Total births",
                CountUniqueColumn(
                    'doc_id',
                    filters=[
                        AND([
                            IN(
                                'mother_id',
                                get_INFilter_bindparams(
                                    'mother_ids', self.config['mother_ids'])),
                            OR([EQ('gender', 'female'),
                                EQ('gender', 'male')])
                        ])
                    ],
                    alias='total_births'))
        ]

        columns.extend([
            DatabaseColumn(
                "Birthweight < 2.5 kg",
                CountUniqueColumn(
                    'doc_id',
                    alias="total_birthweight_lt_25",
                    filters=self.filters + [
                        AND([
                            LT('weight_birth', 'weight_birth_25'),
                            NOTEQ('weight_birth', 'empty')
                        ])
                    ])),
            DatabaseColumn(
                "Birthweight >= 2.5 kg",
                CountUniqueColumn(
                    'doc_id',
                    alias="total_birthweight_gte_25",
                    filters=self.filters + [
                        AND([
                            GTE('weight_birth', 'weight_birth_25'),
                            NOTEQ('weight_birth', 'empty')
                        ])
                    ]))
        ])
        return columns
Exemple #4
0
    def columns(self):
        return [
            DatabaseColumn("Early initiation of breastfeeding",
                           CountUniqueColumn('doc_id', alias="colostrum_feeding",
                                             filters=self.filters + [EQ('breastfeed_1_hour', 'yes')])),
            DatabaseColumn("Early initiation of breastfeeding Total Eligible",
                           CountUniqueColumn('doc_id', alias="colostrum_feeding_total_eligible",
                                             filters=self.filters + [NOTEQ('breastfeed_1_hour', 'empty')])),
            DatabaseColumn("Exclusive breastfeeding",
                           CountUniqueColumn('doc_id', alias="exclusive_breastfeeding",
                                             filters=self.filters + [AND([EQ('exclusive_breastfeeding', "yes"),
                                                                          GTE('dob', "today_minus_183")])])),
            DatabaseColumn("Exclusive Breastfeeding (EBF) Total Eligible",
                           CountUniqueColumn('doc_id', alias="exclusive_breastfeeding_total_eligible",
                                             filters=self.filters + [GTE('dob', 'today_minus_183')])),
            DatabaseColumn("Supplementary feeding",
                           CountUniqueColumn('doc_id', alias="supplementary_feeding",
                                             filters=self.filters + [AND([EQ('supplementary_feeding_baby', 'yes'),
                                                                          GTE('dob', 'today_minus_182')])])),
            DatabaseColumn("Supplementary feeding Total Eligible",
                           CountUniqueColumn('doc_id', alias="supplementary_feeding_total_eligible",
                                             filters=self.filters + [GTE('dob', 'today_minus_182')])),

            DatabaseColumn("Complementary feeding",
                           CountUniqueColumn('doc_id', alias="complementary_feeding",
                                             filters=self.filters + [AND([EQ('comp_breastfeeding', 'yes'),
                                                                          LTE('dob', 'today_minus_183'),
                                                                          GTE('dob', 'today_minus_730')])])),
            DatabaseColumn("Complementary feeding Total Eligible",
                           CountUniqueColumn('doc_id', alias="complementary_feeding_total_eligible",
                                             filters=self.filters + [AND([LTE('dob', 'today_minus_183'),
                                                                          GTE('dob', 'today_minus_730')])]))
        ]
Exemple #5
0
 def filters(self):
     filter = super(ChildrenDeathDetails, self).filters
     filter.extend([
         EQ('reason_for_child_closure', 'death'),
         NOTEQ('cause_of_death_child', 'empty')
     ])
     return filter
Exemple #6
0
 def filters(self):
     filters = [BETWEEN('date', 'startdate', 'enddate'), NOTEQ('hf', 'empty')]
     if 'district' in self.config and self.config['district']:
         filters.append(EQ('district', 'district'))
     elif 'hf' in self.config and self.config['hf']:
         filters.append(EQ('hf', 'hf'))
     return filters
Exemple #7
0
 def filters(self):
     filter = super(ClosedChildCasesBreakdown, self).filters[1:]
     if 'strsd' in self.config:
         filter.append(GTE('closed_on', 'strsd'))
     if 'stred' in self.config:
         filter.append(LTE('closed_on', 'stred'))
     filter.append(NOTEQ('reason_for_child_closure', 'empty'))
     return filter
Exemple #8
0
 def filters(self):
     filters = super(NumberOfPNCVisits, self).filters[1:]
     filters.append(
         AND([
             NOTEQ('delivery_date', 'empty'),
             LTE('delivery_date', 'today_minus_42')
         ]))
     return filters
Exemple #9
0
 def columns(self):
     columns = [
         DatabaseColumn("Total child registered ever", CountUniqueColumn('doc_id', alias="total"))
     ]
     if 'startdate' not in self.config and 'enddate' not in self.config or 'startdate' not in self.config \
             and 'enddate' in self.config:
         columns.extend([
             DatabaseColumn(
                 "Total open children cases", CountUniqueColumn(
                     'doc_id', alias="no_date_opened",
                     filters=self.filters + [EQ('closed_on', 'empty')]
                 )
             ),
             DatabaseColumn(
                 "Total closed children cases", CountUniqueColumn(
                     'doc_id', alias="no_date_closed",
                     filters=self.filters + [NOTEQ('closed_on', 'empty')]
                 )
             ),
             DatabaseColumn(
                 "New registrations during last 30 days", CountUniqueColumn(
                     'doc_id', alias="no_date_new_registrations",
                     filters=self.filters + [AND([GTE('opened_on', "last_month"), LTE('opened_on', "today")])]
                 )
             )
         ])
     else:
         columns.extend([
             DatabaseColumn(
                 "Children cases open at end period", CountUniqueColumn(
                     'doc_id', alias="opened",
                     filters=self.filters + [AND([LTE('opened_on', "stred"), OR([EQ('closed_on', 'empty'),
                                                                                 GT('closed_on', "stred")])])]
                 )
             ),
             DatabaseColumn(
                 "Children cases closed during period", CountUniqueColumn(
                     'doc_id', alias="closed",
                     filters=self.filters + [AND([GTE('closed_on', "strsd"), LTE('closed_on', "stred")])]
                 )
             ),
             DatabaseColumn(
                 "Total children followed during period", CountUniqueColumn(
                     'doc_id', alias="followed",
                     filters=self.filters + [AND([LTE('opened_on', "stred"), OR([EQ('closed_on', 'empty'),
                                                                                 GTE('closed_on', "strsd")])])]
                 )
             ),
             DatabaseColumn(
                 "New registrations during period", CountUniqueColumn(
                     'doc_id', alias="new_registrations",
                     filters=self.filters + [AND([LTE('opened_on', "stred"), GTE('opened_on', "strsd")])]
                 )
             )
         ])
     return columns
Exemple #10
0
 def columns(self):
     return [
         DatabaseColumn(
             "Trimester 1",
             CountUniqueColumn(
                 'doc_id',
                 alias="trimester_1",
                 filters=self.filters + [
                     AND([
                         LTE('lmp', "today"),
                         GT('lmp', "first_trimester_start_date"),
                         NOTEQ('lmp', 'empty')
                     ])
                 ])),
         DatabaseColumn(
             "Trimester 2",
             CountUniqueColumn(
                 'doc_id',
                 alias="trimester_2",
                 filters=self.filters + [
                     AND([
                         LTE('lmp', "second_trimester_start_date"),
                         GT('lmp', "second_trimester_end_date"),
                         NOTEQ('lmp', 'empty')
                     ])
                 ])),
         DatabaseColumn(
             "Trimester 3",
             CountUniqueColumn(
                 'doc_id',
                 alias="trimester_3",
                 filters=self.filters + [
                     AND([
                         LTE('lmp', 'third_trimester_start_date'),
                         NOTEQ('lmp', 'empty')
                     ])
                 ]))
     ]
Exemple #11
0
 def columns(self):
     return [
         DatabaseColumn(
             "PNC in 48 hours",
             CountUniqueColumn('doc_id', alias="pnc_1", filters=self.filters + [EQ('pp_1_done', 'yes')]),
         ),
         DatabaseColumn(
             "PNC in 2-4 days",
             CountUniqueColumn('doc_id', alias="pnc_2", filters=self.filters + [EQ('pp_2_done', 'yes')]),
         ),
         DatabaseColumn(
             "PNC in 5-7",
             CountUniqueColumn('doc_id', alias="pnc_3", filters=self.filters + [EQ('pp_3_done', 'yes')]),
         ),
         DatabaseColumn(
             "PNC in 21-42 days",
             CountUniqueColumn('doc_id', alias="pnc_4", filters=self.filters + [EQ('pp_4_done', 'yes')]),
         ),
         DatabaseColumn(
             "PNC 1 visits Total Eligible",
             CountUniqueColumn('doc_id', alias="pnc_1_eligible",
                               filters=self.filters + [AND([NOTEQ('delivery_date', 'empty'),
                                                            LTE('delivery_date', 'today')])]),
         ),
         DatabaseColumn("PNC 2 visits Total Eligible",
             CountUniqueColumn('doc_id', alias="pnc_2_eligible",
                               filters=self.filters + [AND([NOTEQ('delivery_date', 'empty'), LTE('delivery_date', 'today_minus_2')])]),
         ),
         DatabaseColumn("PNC 3 visits Total Eligible",
             CountUniqueColumn('doc_id', alias="pnc_3_eligible",
                               filters=self.filters + [AND([NOTEQ('delivery_date', 'empty'), LTE('delivery_date', 'today_minus_25')])]),
         ),
         DatabaseColumn("PNC 4 visits Total Eligible",
             CountUniqueColumn('doc_id', alias="pnc_4_eligible",
                               filters=self.filters + [AND([NOTEQ('delivery_date', 'empty'), LTE('delivery_date', 'today_minus_21')])]),
         )
     ]
Exemple #12
0
 def filters(self):
     filters = super(NutritionMeanMedianBirthWeightDetails, self).filters
     filters.append(NOTEQ('weight_birth', 'empty'))
     return filters
Exemple #13
0
 def filters(self):
     filters = super(ChildrenDeathsByMonth, self).filters
     filters.extend([NOTEQ('month_of_death', 'empty')])
     return filters
Exemple #14
0
 def filters(self):
     filters = super(EBFStoppingDetails, self).filters
     filters.append(EQ('exclusive_breastfeeding', 'no'))
     filters.append(LTE('dob', 'today_minus_183'))
     filters.append(NOTEQ('ebf_stop_age_month', 'empty'))
     return filters
Exemple #15
0
 def filters(self):
     return super(DeliveryPlaceDetails,
                  self).filters + [NOTEQ('delivery_date', 'empty')]
Exemple #16
0
 def filters(self):
     return [EQ('domain', 'domain'), NOTEQ('lvl_1', 'empty')]
Exemple #17
0
 def columns(self):
     return [
         DatabaseColumn("Total pregnant",
                        CountUniqueColumn('doc_id',
                                          alias="total_pregnant")),
         DatabaseColumn(
             "No ANC",
             CountUniqueColumn('doc_id',
                               alias="no_anc",
                               filters=self.filters +
                               [NOTEQ('anc_1', 'yes')])),
         DatabaseColumn(
             "ANC1",
             CountUniqueColumn('doc_id',
                               alias="anc_1",
                               filters=self.filters +
                               [EQ('anc_1', 'yes')])),
         DatabaseColumn(
             "ANC2",
             CountUniqueColumn('doc_id',
                               alias="anc_2",
                               filters=self.filters +
                               [EQ('anc_2', 'yes')])),
         DatabaseColumn(
             "ANC3",
             CountUniqueColumn('doc_id',
                               alias="anc_3",
                               filters=self.filters +
                               [EQ('anc_3', 'yes')])),
         DatabaseColumn(
             "ANC4",
             CountUniqueColumn('doc_id',
                               alias="anc_4",
                               filters=self.filters +
                               [EQ('anc_4', 'yes')])),
         DatabaseColumn(
             "TT1",
             CountUniqueColumn('doc_id',
                               alias="tt_1",
                               filters=self.filters + [EQ('tt_1', 'yes')])),
         DatabaseColumn(
             "TT2",
             CountUniqueColumn('doc_id',
                               alias="tt_2",
                               filters=self.filters + [EQ('tt_2', 'yes')])),
         DatabaseColumn(
             "TT Booster",
             CountUniqueColumn('doc_id',
                               alias="tt_booster",
                               filters=self.filters +
                               [EQ('tt_booster', 'yes')])),
         DatabaseColumn(
             "TT Complete",
             CountUniqueColumn(
                 'doc_id',
                 alias="tt_completed",
                 filters=self.filters +
                 [OR([EQ('tt_2', 'yes'),
                      EQ('tt_booster', 'yes')])])),
         DatabaseColumn(
             "IFA received",
             CountUniqueColumn('doc_id',
                               alias="ifa_tablets",
                               filters=self.filters +
                               [EQ('iron_folic', 'yes')])),
         DatabaseColumn(
             "100 IFA consumed",
             CountUniqueColumn('doc_id',
                               alias="100_tablets",
                               filters=self.filters[1:-1] + [
                                   AND([
                                       EQ('completed_100_ifa', 'yes'),
                                       GTE('delivery_date', 'strsd'),
                                       LTE('delivery_date', 'stred')
                                   ])
                               ])),
         DatabaseColumn(
             "Clinically anemic mothers",
             CountUniqueColumn('doc_id',
                               alias="clinically_anemic",
                               filters=self.filters +
                               [EQ('anemia_signs', 'yes')])),
         DatabaseColumn(
             "Number of pregnant mother referrals due to danger signs",
             CountUniqueColumn('doc_id',
                               alias="danger_signs",
                               filters=self.filters +
                               [EQ('currently_referred', 'yes')])),
         DatabaseColumn(
             "Knows closest health facility",
             CountUniqueColumn('doc_id',
                               alias="knows_closest_facility",
                               filters=self.filters +
                               [EQ('knows_closest_facility', 'yes')])),
         DatabaseColumn(
             "No ANC Total Eligible",
             CountUniqueColumn('doc_id',
                               alias="no_anc_eligible",
                               filters=self.filters +
                               [LTE('edd', 'today_plus_196')])),
         DatabaseColumn(
             "ANC1 Total Eligible",
             CountUniqueColumn('doc_id',
                               alias="anc_1_eligible",
                               filters=self.filters +
                               [LTE('edd', 'today_plus_196')])),
         DatabaseColumn(
             "ANC2 Total Eligible",
             CountUniqueColumn(
                 'doc_id',
                 alias="anc_2_eligible",
                 filters=self.filters +
                 [AND([EQ('anc_1', 'yes'),
                       LTE('edd', 'today_plus_112')])])),
         DatabaseColumn(
             "ANC3 Total Eligible",
             CountUniqueColumn(
                 'doc_id',
                 alias="anc_3_eligible",
                 filters=self.filters +
                 [AND([EQ('anc_2', 'yes'),
                       LTE('edd', 'today_plus_56')])])),
         DatabaseColumn(
             "ANC4 Total Eligible",
             CountUniqueColumn(
                 'doc_id',
                 alias="anc_4_eligible",
                 filters=self.filters +
                 [AND([EQ('anc_3', 'yes'),
                       LTE('edd', 'today_plus_35')])])),
         DatabaseColumn(
             "TT1 Total Eligible",
             CountUniqueColumn('doc_id',
                               alias="tt_1_eligible",
                               filters=self.filters +
                               [NOTEQ('previous_tetanus', 'yes')])),
         DatabaseColumn(
             "TT2 Total Eligible",
             CountUniqueColumn('doc_id',
                               alias="tt_2_eligible",
                               filters=self.filters + [EQ('tt_1', 'yes')])),
         DatabaseColumn(
             "TT Booster Total Eligible",
             CountUniqueColumn('doc_id',
                               alias="tt_booster_eligible",
                               filters=self.filters +
                               [EQ('previous_tetanus', 'yes')])),
         DatabaseColumn(
             "TT Completed (TT2 or Booster) Total Eligible",
             CountUniqueColumn(
                 'doc_id',
                 alias="tt_completed_eligible",
                 filters=self.filters +
                 [OR([EQ('tt_1', 'yes'),
                      EQ('previous_tetanus', 'yes')])])),
         DatabaseColumn(
             "Taking IFA tablets Total Eligible",
             CountUniqueColumn('doc_id', alias="ifa_tablets_eligible")),
         DatabaseColumn(
             "Completed 100 IFA tablets Total Eligible",
             CountUniqueColumn('doc_id',
                               alias="100_tablets_eligible",
                               filters=self.filters[1:-1] + [
                                   AND([
                                       GTE('delivery_date', 'strsd'),
                                       LTE('delivery_date', 'stred')
                                   ])
                               ])),
         DatabaseColumn(
             "Clinically anemic mothers Total Eligible",
             CountUniqueColumn('doc_id',
                               alias="clinically_anemic_eligible")),
         DatabaseColumn(
             "Number of mother referrals due to danger signs Total Eligible",
             CountUniqueColumn('doc_id', alias="danger_signs_eligible")),
         DatabaseColumn(
             "Know closest health facility Total Eligible",
             CountUniqueColumn('doc_id',
                               alias="knows_closest_facility_eligible"))
     ]
Exemple #18
0
 def filters(self):
     filter = super(ClosedMotherCasesBreakdown, self).filters
     filter.append(NOTEQ('reason_for_mother_closure', 'empty'))
     return filter
Exemple #19
0
 def filters(self):
     filter = super(PregnantMotherBreakdownByTrimester, self).filters
     filter.append(EQ('mother_state', 'pregnant_mother_type'))
     filter.append(NOTEQ('edd', 'empty'))
     return filter
Exemple #20
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')]))
     ]
Exemple #21
0
 def filters(self):
     filter = super(FamilyPlanningMethods, self).filters
     filter.append(NOTEQ('fp_method', 'empty'))
     return filter
Exemple #22
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')])),
     ]