def malnut(request, object_id=None, per_page="0", rformat="pdf"): '''List @Risk Malnutrition Cases per clinic ''' pdfrpt = PDFReport() fourteen_days = timedelta(days=30) today = datetime.now() duration_start = day_start(today - fourteen_days) duration_end = today pdfrpt.setTitle(_("%(app_name)s: @Risk Malnutrition Cases from"\ " %(start_date)s to %(end_date)s"\ % {'start_date': duration_start.date(), 'end_date': duration_end.date(), 'app_name': Cfg.get("app_name")})) #pdfrpt.setRowsPerPage(66) pdfrpt.setNumOfColumns(2) pdfrpt.setLandscape(True) if object_id is None and not request.POST: clinics = Location.objects.filter(type__name="Clinic") for clinic in clinics: queryset, fields = \ ReportAllPatients.malnutrition_at_risk(duration_start, \ duration_end, clinic) c = clinic subtitle = _("%(clinic)s: @Risk Malnutrition Cases from "\ "%(start_date)s to %(end_date)s" % \ {'clinic': c.name, 'start_date': duration_start.date(), \ 'end_date': duration_end.date()}) pdfrpt.setTableData(queryset, fields, subtitle, \ [0.2 * inch, 0.4 * inch, 1 * inch, 0.3 * inch, \ .3 * inch, .8 * inch, .5 * inch, .2 * inch, \ 0.5 * inch, 0.8 * inch, 1 * inch]) if (int(per_page) == 1) is True: pdfrpt.setPageBreak() pdfrpt.setFilename("/tmp/malnutrition_at_risk") else: if request.POST['clinic']: object_id = request.POST['clinic'] object_id = Location.objects.get(id=object_id) queryset, fields = \ ReportAllPatients.malnutrition_at_risk(duration_start, \ duration_end, object_id) subtitle = _("%(clinic)s: @Risk Malnutrition Cases from "\ "%(start_date)s to %(end_date)s" % \ {'clinic': object_id.name, \ 'start_date': duration_start.date(), \ 'end_date': duration_end.date()}) pdfrpt.setTableData(queryset, fields, subtitle, \ [0.2 * inch, 0.4 * inch, 1 * inch, 0.3 * inch, \ .3 * inch, .8 * inch, .5 * inch, .2 * inch, \ 0.5 * inch, 0.8 * inch, 1 * inch]) pdfrpt.setFilename("/tmp/malnutrition_at_risk") return pdfrpt.render()
def malnutrition_screening(request, object_id=None, per_page="0", \ rformat="pdf"): ''' Malnutrition Screening Form Originally for SN CC ''' pdfrpt = [] pdfrpt = PDFReport() #fourteen_days = timedelta(days=30) today = datetime.now() #duration_start = day_start(today - fourteen_days) #duration_end = today pdfrpt.setTitle("%(app_name)s: Formulaire de Depistage" % \ {'app_name': Cfg.get("app_name")}) #pdfrpt.setRowsPerPage(66) pdfrpt.setNumOfColumns(1) pdfrpt.setLandscape(True) pdfrpt.setFontSize(10) if object_id is None and not request.POST: sites = Location.objects.filter(type__name="Site") for site in sites: queryset, fields = \ ReportAllPatients.malnutrition_screening_info(site) subtitle = _("%(site_name)s: Registre des Enfants pour: " % \ {'site_name': site.name}) pdfrpt.setTableData(queryset, fields, subtitle, \ [0.4 * inch, 1.5 * inch, 0.4 * inch, 0.5 * inch, \ 0.5 * inch, 1.0 * inch, 0.9 * inch, 1.0 * inch, \ 0.7 * inch, 0.7 * inch, 0.7 * inch, 0.7 * inch, \ 0.8 * inch, 1.0 * inch]) if (int(per_page) == 1) is True: pdfrpt.setPageBreak() pdfrpt.setFilename("/tmp/malnutrition_at_risk") else: if request.POST['zone']: site_id = request.POST['zone'] site = Location.objects.get(id=site_id) queryset, fields = \ ReportAllPatients.malnutrition_screening_info(site) subtitle = _("Registre des Enfants pour: %(site_name)s" % \ {'site_name': site.name}) # no nom sex dob age mere sms numero pb poids oedems # ddepistage consulter pdfrpt.setTableData(queryset, fields, subtitle, \ [0.4 * inch, 1.5 * inch, 0.4 * inch, 0.5 * inch, \ 0.5 * inch, 1.0 * inch, 0.9 * inch, 1.0 * inch, \ 0.7 * inch, 0.7 * inch, 0.7 * inch, 0.7 * inch, \ 0.8 * inch, 1.0 * inch]) filename = "/tmp/formulaire_de_depistage" + \ datetime.today().strftime("%Y_%m_%d_%H_%M_%S") pdfrpt.setFilename(filename) return pdfrpt.render()
def vitamines(request, object_id=None, per_page="0", rformat="pdf"): '''List of Cases/Children Eligible for vitamines not yet vaccinated''' has_data=0 pdfrpt = PDFReport() pdfrpt.setLandscape(False) #pdfrpt.setTitle("RapidResponse MVP Kenya: Cases Reports by CHW") pdfrpt.setTitle(_("Vitamines A Campaign")) if object_id is None: if request.POST and request.POST['site']: id_loc=request.POST['site'] loc=Location.objects.get(id=id_loc) #reporters = Case.objects.filter(location=loc).\ # values('reporter', 'location').distinct() reporters = Reporter.objects.filter(location=loc) per_page = "1" else: reporters = Reporter.objects.all() for reporter in reporters: queryset, fields = ReportAllPatients.vitamines_by_provider(reporter) if queryset: title = reporter.location.name + ": " + \ reporter.full_name() + \ " (sms format: `VITA +PID +PID +PID`)" pdfrpt.setTableData(queryset, fields, title) if (int(per_page) == 1) is True: pdfrpt.setPageBreak() pdfrpt.setFilename("/tmp/report_per_page") else: if request.POST and request.POST['provider']: object_id = request.POST['provider'] reporter = Reporter.objects.get(id=object_id) queryset, fields = ReportAllPatients.vitamines_by_provider(reporter) if queryset: title = reporter.full_name() + \ " (sms format: `VITA +PID +PID +PID`)" if rformat == "csv" or (request.POST \ and request.POST["format"].lower() == "csv"): file_name = reporter.full_name() + ".csv" file_name =file_name.replace(" ", "_").replace("'", "") return handle_csv(request, queryset, fields, file_name) pdfrpt.setTableData(queryset, fields, title) if (int(per_page) == 1) is True: pdfrpt.setPageBreak() pdfrpt.setFilename("/tmp/report_per_page") return pdfrpt.render()
def patients_by_age(request, object_id=None, per_page="0", rformat="pdf"): ''' Children Screening per age for SN CC ''' pdfrpt = PDFReport() #pdfrpt.setTitle(_("ChildCount Senegal: Listing Enfant par Age")) pdfrpt.setTitle(_(Cfg.get("app_name") + \ ": Listing Enfant par Age" )) #pdfrpt.setRowsPerPage(66) pdfrpt.setNumOfColumns(1) pdfrpt.setLandscape(True) pdfrpt.setFontSize(10) if object_id is None and not request.POST: age_mois = 0 cases = Case.objects.order_by("location").distinct() queryset, fields = ReportAllPatients.by_age(age_mois, cases) subtitle = _("Registre des Enfants pour: ") #%(site.name) pdfrpt.setTableData(queryset, fields, subtitle, \ [0.2 * inch, 1.5 * inch, 0.5 * inch, 0.7 * inch, \ 0.5 * inch, 1.5 * inch,1.0 * inch, 0.5 * inch, 0.7 * inch, \ 0.5 * inch, 0.5 * inch, 0.7 * inch, 1.5 * inch, \ 1 * inch]) if (int(per_page) == 1) is True: pdfrpt.setPageBreak() pdfrpt.setFilename("/tmp/Listing_Enfant") else: cases = Case.objects.order_by("location").distinct() if request.POST['age']: age_mois = int(request.POST['age']) str_age = request.POST['age'] queryset, fields = ReportAllPatients.by_age(age_mois, cases) subtitle = _("Registre des Enfants de : %(age)s mois" % \ {'age': str_age}) # no nom sex dob age mere sms numero pb poids oedems #depistage consulter pdfrpt.setTableData(queryset, fields, subtitle, \ [0.2 * inch, 1.5 * inch, 0.5 * inch, 0.7 * inch, \ 0.5 * inch, 1.5 * inch,1.0 * inch, 0.5 * inch, 0.7 * inch, \ 0.5 * inch, 0.5 * inch, 0.7 * inch, 1.5 * inch, \ 1 * inch]) filename = "/tmp/Listing_Enfant_" + \ datetime.today().strftime("%Y_%m_%d_%H_%M_%S") pdfrpt.setFilename(filename) return pdfrpt.render()
def dead_cases_report(request, rformat="pdf"): '''List of Cases/Patient per CHW''' today = datetime.now().strftime("%d %B,%Y") pdfrpt = PDFReport() pdfrpt.setLandscape(True) title = _("%(app_name)s: Dead Cases report as of %(date)s" % \ {'app_name': Cfg.get("app_name"), 'date': today}) pdfrpt.setTitle(title) pdfrpt.setNumOfColumns(1) queryset, fields = \ ReportAllPatients.death_report_by_provider() if queryset: pdfrpt.setTableData(queryset, fields, title, \ [0.3 * inch, 0.4 * inch, 1 * inch, 0.4 * inch, \ 0.5 * inch, 0.8 * inch, 0.5 * inch, 1 * inch, \ 0.6 * inch, 1.4 * inch, 1.5 * inch, 1 * inch, \ 1.3 * inch, 1.2 * inch]) pdfrpt.setFilename("/tmp/deathreport_") return pdfrpt.render()
def patients_by_chw(request, object_id=None, per_page="0", rformat="pdf"): '''List of Cases/Patient per CHW''' today = datetime.now().strftime("%d %B,%Y") pdfrpt = PDFReport() pdfrpt.setLandscape(True) pdfrpt.setPrintOnBothSides(True) pdfrpt.setTitle(_("%(app_name)s: Cases Reports by CHW as of %(date)s") % {'date': today,'app_name':Cfg.get("app_name")}) pdfrpt.setNumOfColumns(2) #pdfrpt.setRowsPerPage(88) if object_id is None: if request.POST and request.POST['zone']: # providers = Case.objects.filter(location=request.POST['zone']).\ # values('reporter', 'location').distinct() providers = Reporter.objects.filter(location=request.POST['zone']) #per_page = "1" else: providers = Reporter.objects.all() # providers = Case.objects.order_by("location").\ # values('reporter', 'location').distinct() for reporter in providers: queryset, fields = ReportAllPatients.by_provider(reporter) if queryset: cinfo = {'loc': reporter.location, 'lname': reporter.last_name, 'fname': reporter.first_name, 'date': today} c = _("%(loc)s: %(lname)s %(fname)s: %(date)s" % cinfo) pdfrpt.setTableData(queryset, fields, c, \ [0.3 * inch, 0.4 * inch, 1 * inch, 0.4 * inch, \ 0.3 * inch, 0.8 * inch, 0.5 * inch, 1 * inch, \ 0.8 * inch]) if (int(per_page) == 1) is True: pdfrpt.setPageBreak() pdfrpt.setFilename("/tmp/report_per_page") else: if request.POST and request.POST['provider']: object_id = request.POST['provider'] reporter = Reporter.objects.get(id=object_id) queryset, fields = ReportAllPatients.by_provider(reporter) if queryset: cinfo = {'loc': reporter.location, 'lname': reporter.last_name, 'fname': reporter.first_name, 'date': today} c = _("%(loc)s: %(lname)s %(fname)s: %(date)s" % cinfo) if rformat == "csv" or (request.POST \ and request.POST["format"].lower() == "csv"): file_name = reporter.last_name + ".csv" file_name = file_name.replace(" ", "_").replace("'", "") return handle_csv(request, queryset, fields, file_name) pdfrpt.setTableData(queryset, fields, c, \ [0.3 * inch, 0.4 * inch, 1 * inch, 0.4 * inch, \ 0.3 * inch, 0.4 * inch, 0.5 * inch, 1 * inch, \ 1 * inch]) if (int(per_page) == 1) is True: pdfrpt.setPageBreak() pdfrpt.setFilename("/tmp/report_per_page") return pdfrpt.render()