Пример #1
0
def malaria(request, object_id=None, per_page="0", rformat="pdf"):
    ''' List Positive RDT Test Cases per clinic  '''
    pdfrpt = PDFReport()

    fourteen_days = timedelta(days=14)
    today = datetime.now()

    duration_start = day_start(today - fourteen_days)
    duration_end = today

    pdfrpt.setTitle(_("%(app_name)s: Positive RDT 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)

    if object_id is None and not request.POST:
        clinics = Location.objects.filter(type__name="Clinic")
        for clinic in clinics:
            queryset, fields = \
                ReportAllPatients.malaria_at_risk(duration_start, \
                                                  duration_end, clinic)
            c = clinic
            subtitle = _("%(clinic)s: Positive RDT 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.3 * inch, 0.4 * inch, 1 * inch, 0.4 * inch, \
                         .4 * inch, .4 * inch, 0.5 * inch, .8 * inch, \
                         .4 * inch, 1 * inch, 1 * inch, 1.4 * inch])
            if (int(per_page) == 1) is True:
                pdfrpt.setPageBreak()
                pdfrpt.setFilename("/tmp/malaria_cases")
    else:
        if request.POST['clinic']:
            object_id = request.POST['clinic']
            object_id = Location.objects.get(id=object_id)
        queryset, fields = \
            ReportAllPatients.malaria_at_risk(duration_start, \
                                              duration_end, object_id)

        subtitle = _("%(clinic)s: Positive RDT 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.3 * inch, 0.4 * inch, 1 * inch, 0.4 * inch, \
                     .4 * inch, .4 * inch, 0.5 * inch, .8 * inch, \
                     .4 * inch, 1 * inch, 1 * inch, 1.4 * inch])
        pdfrpt.setFilename("/tmp/malaria_cases")

    return pdfrpt.render()