def filters(self): filters = None if 'enddate' not in self.config: self.config['enddate'] = self.config['today'] self.config['stred'] = self.config['today'] if 'startdate' in self.config: filters = [ AND([ LTE("date", "enddate"), OR([ GTE('closed_on', "startdate"), EQ('closed_on', 'empty') ]) ]) ] else: self.config['strsd'] = '0001-01-01' filters = [LTE("date", "enddate")] for k, v in six.iteritems(LOCATION_HIERARCHY): if v['prop'] in self.config and self.config[v['prop']]: filters.append( IN(k, get_INFilter_bindparams(k, self.config[v['prop']]))) return filters
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')])])) ]
def columns(self): return [ DatabaseColumn( "Trimester 1", CountUniqueColumn('doc_id', alias="trimester_1", filters=self.filters + [GT('edd', "today_plus_196")])), DatabaseColumn( "Trimester 2", CountUniqueColumn('doc_id', alias="trimester_2", filters=self.filters + [ AND([ LTE('edd', "today_plus_196"), GT('edd', "today_plus_84") ]) ])), DatabaseColumn( "Trimester 3", CountUniqueColumn('doc_id', alias="trimester_3", filters=self.filters + [LTE('edd', 'today_plus_84')])) ]
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
def columns(self): return [ DatabaseColumn( "VitA1", CountUniqueColumn('doc_id', alias="vita1", filters=self.filters + [EQ('vita1', 'yes')])), DatabaseColumn( "VitA2", CountUniqueColumn('doc_id', alias="vita2", filters=self.filters + [EQ('vita2', 'yes')])), DatabaseColumn( "DPT-OPT Booster", CountUniqueColumn('doc_id', alias="dpt_opv_booster", filters=self.filters + [EQ('dpt_opv_booster', 'yes')])), DatabaseColumn( "VitA3", CountUniqueColumn('doc_id', alias="vita3", filters=self.filters + [EQ('vita3', 'yes')])), DatabaseColumn( "VitA1 Total Eligible", CountUniqueColumn('doc_id', alias="vita1_eligible", filters=self.filters + [LTE('dob', 'days_273')])), DatabaseColumn( "VitA2 Total Eligible", CountUniqueColumn('doc_id', alias="vita2_eligible", filters=self.filters + [LTE('dob', 'days_547')])), DatabaseColumn( "DPT-OPT Booster Total Eligible", CountUniqueColumn('doc_id', alias="dpt_opv_booster_eligible", filters=self.filters + [LTE('dob', 'days_548')])), DatabaseColumn( "VitA3 Total Eligible", CountUniqueColumn('doc_id', alias="vita3_eligible", filters=self.filters + [LTE('dob', 'days_700')])) ]
def filters(self): filters = [GTE('recall_date', 'startdate'), LTE('recall_date', 'enddate')] for slug in ['food_code', 'food_type', 'recall_status']: if self.config[slug]: filters.append(EQ(slug, slug)) return filters
def filters(self): filter = super(ClosedMotherCasesBreakdown, 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')) return filter
def filters(self): filter = super(PostnatalCareOverview, self).filters[1:] if 'strsd' in self.config: filter.append(GTE('delivery_date', 'strsd')) if 'stred' in self.config: filter.append(LTE('delivery_date', 'stred')) return filter
def filters(self): filter = super(DeliveryPlaceDetails, self).filters[1:] if 'strsd' in self.config: filter.append(GTE('delivery_date', 'strsd')) if 'stred' in self.config: filter.append(LTE('delivery_date', 'stred')) return filter
def filters(self): #We have to filter data by real_date_repeat not date(first position in filters list). #Filtering is done directly in columns method(CountUniqueColumn). filters = super(ConventureData, self).filters filters.append(AND([GTE('real_date_repeat', "strsd"), LTE('real_date_repeat', "stred")])) if 'archived_locations' in self.config: filters.append(_locations_filter(self.config['archived_locations'])) return filters[1:]
def filters(self): filters = super(PPSAvecDonnees, self).filters filters.append( AND([ GTE('real_date_repeat', "strsd"), LTE('real_date_repeat', "stred") ])) return filters[1:]
def filters(self): filters = super(NumberOfPNCVisits, self).filters[1:] filters.append( AND([ NOTEQ('delivery_date', 'empty'), LTE('delivery_date', 'today_minus_42') ])) return filters
def filters(self): filter = super(CauseOfMaternalDeaths, self).filters[1:] filter.append(EQ('reason_for_mother_closure', 'death')) if 'strsd' in self.config: filter.append(GTE('date_of_mother_death', 'strsd')) if 'stred' in self.config: filter.append(LTE('date_of_mother_death', 'stred')) return filter
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
def filters(self): filter = [] if 'start_date' in self.config: filter.extend([ AND([ GTE('date_of_death', 'startdate'), LTE('date_of_death', 'enddate') ]) ]) return filter
def filters(self): filters = super(PPSAvecDonnees, self).filters filters.append( AND([ GTE('real_date_repeat', "strsd"), LTE('real_date_repeat', "stred") ])) if 'archived_locations' in self.config: filters.append(NOT(IN('location_id', 'archived_locations'))) return filters[1:]
def filters(self): filters = [LTE('age_in_months', '5_years')] for key, value in six.iteritems(self.config): if key == 'domain' or key == '5_years': continue elif key == 'filters': filters.append(self._build_additional_filters(value)) continue filters.append(EQ(key, key)) return filters
def columns(self): return [ DatabaseColumn('location_id', SimpleColumn('site_id')), DatabaseColumn('Completude', CountColumn('doc_id', alias='completude')), DatabaseColumn('Promptitude', CountColumn( 'doc_id', alias='promptitude', filters=self.filters + [LTE('opened_on', 'monday')] )), ]
def filters(self): filters = [ GTE('recalled_date', 'startdate'), LTE('recalled_date', 'enddate') ] if self.config['case_owners']: filters.append(EQ('owner_name', 'case_owners')) if self.config['recall_status']: filters.append(EQ('recall_status', 'recall_status')) return filters
def filters(self): filter = [] if 'start_date' in self.config: filter.extend([ AND([ GTE('date_of_death', 'startdate'), LTE('date_of_death', 'enddate') ]) ]) filter.extend([EQ('reason_for_child_closure', 'death')]) return filter
def filters(self): filters = [ GTE('recalled_date', 'startdate'), LTE('recalled_date', 'enddate') ] for column in self.FILTERABLE_COLUMNS: if self.config.get(column): if column == 'age_range': filters.append(self._age_range_filter) else: filters.append(EQ(column, column)) return filters
def columns(self): return [ DatabaseColumn( "EBF stopped between 0-1 month", CountUniqueColumn('doc_id', alias="stopped_0_1", filters=self.filters + [LTE('ebf_stop_age_month', '1')])), DatabaseColumn( "EBF stopped between 1-3 month", CountUniqueColumn('doc_id', alias="stopped_1_3", filters=self.filters + [ AND([ GT('ebf_stop_age_month', '1'), LTE('ebf_stop_age_month', '3') ]) ])), DatabaseColumn( "EBF stopped between 3-5 month", CountUniqueColumn('doc_id', alias="stopped_3_5", filters=self.filters + [ AND([ GT('ebf_stop_age_month', '3'), LTE('ebf_stop_age_month', '5') ]) ])), DatabaseColumn( "EBF stopped between 5-6 month", CountUniqueColumn('doc_id', alias="stopped_5_6", filters=self.filters + [ AND([ GT('ebf_stop_age_month', '5'), LTE('ebf_stop_age_month', '6') ]) ])) ]
def filters(self): filters = [ LTE('age_in_months', '5_years'), EQ('valid_in_month', 'true') ] for key, value in self.config.items(): if key in ['domain', '5_years', 'true']: continue elif key == 'filters': filters.append(self._build_additional_filters(value)) continue filters.append(EQ(key, key)) return filters
def columns(self): registered_column = "registered_total_for_region" if 'district_id' in self.config: registered_column = 'registered_total_for_district' return [ DatabaseColumn( "No de PPS (number of PPS registered in that region)", MaxColumn(registered_column, alias='registered')), DatabaseColumn("No de PPS planifie (number of PPS planned)", MaxColumn('planned_total')), DatabaseColumn( "No de PPS avec livrasion cet mois (number of PPS visited this month)", CountUniqueColumn('location_id', alias="visited", filters=self.filters + [ AND([ GTE('real_date_repeat', "strsd"), LTE('real_date_repeat', "stred") ]) ])), AggregateColumn( "Taux de couverture (coverage ratio)", self.percent_fn, [AliasColumn('registered'), AliasColumn("visited")]), DatabaseColumn( "No de PPS avec donnees soumises (number of PPS which submitted data)", CountUniqueColumn('location_id', alias="submitted", filters=self.filters + [ AND([ GTE('real_date_repeat', "strsd"), LTE('real_date_repeat', "stred") ]) ])), AggregateColumn("Exhaustivite des donnees", self.percent_fn, [AliasColumn('visited'), AliasColumn('submitted')]), ]
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') ]) ])) ]
def filters(self): filters = None if 'enddate' not in self.config: self.config['enddate'] = self.config['today'] self.config['stred'] = self.config['today'] if 'startdate' in self.config: filters = [BETWEEN("date", "startdate", "enddate")] elif 'startdate' not in self.config: filters = [LTE("date", 'enddate')] for k, v in LOCATION_HIERARCHY.iteritems(): if v['prop'] in self.config and self.config[v['prop']]: filters.append(IN(k, v['prop'])) return filters
def columns(self): return [ DatabaseColumn( "Deworming dose in last 6 months", CountUniqueColumn('doc_id', alias="deworming", filters=self.filters + [EQ('deworm', 'yes')])), DatabaseColumn( "Deworming Total Eligible", CountUniqueColumn('doc_id', alias="deworming_total_eligible", filters=self.filters + [LTE('dob', 'today_minus_365')])), ]
def filters(self): filters = [ GTE('visit_date', 'startdate'), LTE('visit_date', 'enddate') ] for column in self.FILTERABLE_COLUMNS: if self.config.get(column): if column == 'age_range': filters.append(self._age_range_filter) elif column == 'owner_id': infilter_bindparams = get_INFilter_bindparams( 'owner_id', self.config['owner_id']) filters.append(IN('owner_id', infilter_bindparams)) else: filters.append(EQ(column, column)) return filters
def filters(self): filters = [ GTE('visit_date', 'startdate'), LTE('visit_date', 'enddate') ] if self._age_ranges: filters.append(self._get_age_range_filter()) for col in self.MULTI_SELECT_COLS: if self.config.get(col): infilter_bindparams = get_INFilter_bindparams( col, self.config[col]) filters.append(IN(col, infilter_bindparams)) for col in self.SINGLE_SELECT_COLS: if self.config.get(col): filters.append(EQ(col, col)) return filters
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')])]), ) ]