def get_report_data(cls, config):
        validate_report_parameters(["domain", "location_id", "datespan"],
                                   config)

        domain = config["domain"]
        location_id = config["location_id"]
        datespan = config["datespan"]
        sql_data = [
            AncHmisCaseSqlData(domain=domain, datespan=datespan).data,
            LdHmisCaseSqlData(domain=domain, datespan=datespan).data,
            ImmunizationHmisCaseSqlData(domain=domain, datespan=datespan).data,
            AllHmisCaseSqlData(domain=domain, datespan=datespan).data
        ]
        locations = get_location_hierarchy_by_id(location_id, domain)
        row_data = AllHmisReport.get_initial_row_data()

        for data in sql_data:
            for location_id in locations:
                key = (domain, location_id)
                if key in data:
                    report_rows = _get_rows(row_data, data, key)
                    for key in report_rows:
                        row_data.get(key)["value"] += report_rows.get(key)
        return sorted([(key, row_data[key]) for key in row_data],
                      key=lambda t: t[1].get("hmis_code"))
    def get_report_data(cls, config):
        validate_report_parameters(["domain", "location_id", "datespan"],
                                   config)

        domain = config["domain"]
        location_id = config["location_id"]
        user = config["user"]

        sql_data = ProjectIndicatorsCaseSqlData(
            domain=domain, datespan=config["datespan"]).data
        locations = get_location_hierarchy_by_id(location_id,
                                                 domain,
                                                 user,
                                                 CCT_only=True)
        row_data = ProjectIndicatorsReport.get_initial_row_data()

        for key in sql_data:
            if key[2] not in locations:
                continue
            data = sql_data.get(key, {})
            for row_key in row_data:
                value = data.get(row_key, 0)
                if value is None:
                    value = 0
                if row_key == "women_delivering_within_6_weeks_attending_pnc_total" and value > 1:
                    value = 1
                row_data.get(row_key, {})["value"] += value
        return sorted([(key, row_data[key]) for key in row_data],
                      key=lambda t: t[1].get("s/n"))
    def get_report_data(cls, config):
        validate_report_parameters(["domain", "location_id", "datespan"],
                                   config)

        domain = config["domain"]
        location_id = config["location_id"]
        datespan = config["datespan"]
        user = config["user"]

        sql_data = McctMonthlyAggregateFormSqlData(domain=domain,
                                                   datespan=datespan).data
        locations = get_location_hierarchy_by_id(location_id,
                                                 domain,
                                                 user,
                                                 CCT_only=True)
        row_data = McctMonthlyAggregateReport.get_initial_row_data()

        for location_id in locations:
            key = (domain, location_id)
            if key in sql_data:
                report_rows = _get_rows(row_data, sql_data, key)
                for key in report_rows:
                    row_data.get(key)["value"] += report_rows.get(key)

        _add_eligible_9months(row_data, datespan.startdate_utc,
                              datespan.enddate_utc, domain)
        return sorted([(key, row_data[key]) for key in row_data],
                      key=lambda t: t[1].get("s/n"))
    def get_report_data(cls, config):
        validate_report_parameters(["domain", "location_id", "datespan"], config)

        domain = config["domain"]
        location_id = config["location_id"]
        sql_data = ImmunizationHmisCaseSqlData(domain=domain, datespan=config["datespan"]).data
        locations = get_location_hierarchy_by_id(location_id, domain)
        row_data = ImmunizationHmisReport.get_initial_row_data()

        for location_id in locations:
            key = (domain, location_id)
            if key in sql_data:
                report_rows = _get_row(row_data, sql_data, key)
                for key in report_rows:
                    row_data.get(key)["value"] += report_rows.get(key)
        return sorted([(key, row_data[key]) for key in row_data], key=lambda t: t[1].get("hmis_code"))
Example #5
0
    def get_report_data(cls, config):
        validate_report_parameters(["domain", "location_id", "datespan"], config)

        domain = config["domain"]
        location_id = config["location_id"]
        sql_data = LdHmisCaseSqlData(domain=domain, datespan=config["datespan"]).data
        top_location = Location.get(location_id)
        locations = [location_id] + [descendant.get_id for descendant in top_location.descendants]
        row_data = LdHmisReport.get_initial_row_data()

        for location_id in locations:
            key = (domain, location_id)
            if key in sql_data:
                report_rows = _get_row(row_data, sql_data, key)
                for key in report_rows:
                    row_data.get(key)["value"] += report_rows.get(key)
        return row_data
    def get_report_data(cls, config):
        validate_report_parameters(["domain", "location_id", "datespan"], config)

        domain = config["domain"]
        location_id = config["location_id"]
        datespan = config["datespan"]
        sql_data = McctMonthlyAggregateFormSqlData(domain=domain, datespan=datespan).data
        locations = get_location_hierarchy_by_id(location_id, domain, CCT_only=True)
        row_data = McctMonthlyAggregateReport.get_initial_row_data()

        for location_id in locations:
            key = (domain, location_id)
            if key in sql_data:
                report_rows = _get_rows(row_data, sql_data, key)
                for key in report_rows:
                    row_data.get(key)["value"] += report_rows.get(key)

        _add_eligible_9months(row_data, datespan.startdate_utc, datespan.enddate_utc, domain)
        return sorted([(key, row_data[key]) for key in row_data], key=lambda t: t[1].get("s/n"))
    def get_report_data(cls, config):
        validate_report_parameters(["domain", "location_id", "datespan"], config)

        domain = config["domain"]
        location_id = config["location_id"]
        sql_data = ProjectIndicatorsCaseSqlData(domain=domain, datespan=config["datespan"]).data
        locations = get_location_hierarchy_by_id(location_id, domain, CCT_only=True)
        row_data = ProjectIndicatorsReport.get_initial_row_data()

        for key in sql_data:
            if key[2] not in locations:
                continue
            data = sql_data.get(key, {})
            for row_key in row_data:
                value = data.get(row_key, 0)
                if value is None:
                    value = 0
                if row_key == "women_delivering_within_6_weeks_attending_pnc_total" and value > 1:
                    value = 1
                row_data.get(row_key, {})["value"] += value
        return sorted([(key, row_data[key]) for key in row_data], key=lambda t: t[1].get("s/n"))
    def get_report_data(cls, config):
        validate_report_parameters(["domain", "location_id", "datespan"], config)

        domain = config["domain"]
        location_id = config["location_id"]
        sql_data = ProjectIndicatorsCaseSqlData(domain=domain, datespan=config["datespan"]).data
        top_location = Location.get(location_id)
        locations = [location_id] + [descendant.get_id for descendant in top_location.descendants]
        row_data = ProjectIndicatorsReport.get_initial_row_data()

        for key in sql_data:
            if key[2] not in locations:
                continue
            data = sql_data.get(key, {})
            for row_key in row_data:
                value = data.get(row_key, 0)
                if value is None:
                    value = 0
                if row_key == "women_delivering_within_6_weeks_attending_pnc_total" and value > 1:
                    value = 1
                row_data.get(row_key, {})["value"] += value
        return row_data