{% extends "layouts/base.html" %} {% load i18n %} {% block title %}Complaints Yearly Report - PX360{% endblock %} {% block content %}
{% trans "Step 2/Yearly — KPI tables, source breakdowns, escalated analysis, response rates" %}
{% trans "No complaint records for the selected hospital." %}
{% trans "Total Complaints" %}
{{ kpi_data.totals.total }}
{% trans "Resolution Rate" %}
{{ kpi_data.totals.resolution_rate|floatformat:1 }}%
{% trans "Target: 95%" %}
{% trans "72h Resolution Rate" %}
{{ kpi_data.totals.resolved_72h_rate|floatformat:1 }}%
{% trans "Satisfaction Rate" %}
{{ satisfaction_data.totals.rate|floatformat:1 }}%
{{ satisfaction_data.totals.surveyed }} {% trans "surveyed" %}
{% trans "Escalated" %}
{{ escalated.total_escalated }}
{{ escalated.escalation_rate|floatformat:1 }}% {% trans "rate" %}
{% trans "Total:" %} {{ response_rates.internal.total }}
{% trans "Total:" %} {{ response_rates.moh.total }}
{% trans "Total:" %} {{ response_rates.chi.total }}
| {{ block.numerator_label }} | {% for m in month_labels %}{{ m }} | {% endfor %}Total |
|---|---|---|
| {{ block.numerator_label }} | {% for m in block.numerator_values %}{{ m }} | {% endfor %}{{ block.total_num }} |
| {{ block.denominator_label }} | {% for m in block.denominator_values %}{{ m }} | {% endfor %}{{ block.total_den }} |
| {{ block.result_label }} | {% for m in block.result_values %}{{ m|floatformat:1 }}% | {% endfor %}{{ block.total_res|floatformat:1 }}% |
| % | Number | Type | Total | {% for m in month_labels %}{{ m }} | {% endfor %}
|---|---|---|---|---|
| {{ source_totals.external.pct|floatformat:1 }}% | {{ source_totals.external.count }} | External | {{ source_totals.external.count }} | {% for m in month_labels %}{{ source_breakdown.forloop.counter0|default:'' }} | {% endfor %}
| {{ sub.total }} | {{ sub.label }} | {{ sub.total }} | {% for v in sub.monthly %}{{ v.count }} | {% endfor %}|
| {{ source_totals.internal.pct|floatformat:1 }}% | {{ source_totals.internal.count }} | Internal | {{ source_totals.internal.count }} | {% for v in source_internal_monthly %}{{ v }} | {% endfor %}
| {{ sub.total }} | {{ sub.label }} | {{ sub.total }} | {% for v in sub.monthly %}{{ v.count }} | {% endfor %}|
| {{ source_totals.total }} | Total | {{ source_totals.total }} | {% for v in source_total_monthly %}{{ v }} | {% endfor %}
| % | Number | Location | {% for m in month_labels %}{{ m }} | {% endfor %}
|---|---|---|---|
| {{ row.pct|floatformat:1 }}% | {{ row.total }} | {{ row.label }} | {% for v in row.monthly %}{{ v }} | {% endfor %}
| % | Number | Department | {% for m in month_labels %}{{ m }} | {% endfor %}
|---|---|---|---|
| {{ row.pct|floatformat:1 }}% | {{ row.total }} | {{ row.label }} | {% for v in row.monthly %}{{ v }} | {% endfor %}
| Month | MOH | CHI | Insurance | Internal | Total | MOH % | CHI % |
|---|---|---|---|---|---|---|---|
| {{ ms.month }} | {{ ms.moh }} | {{ ms.chi }} | {{ ms.insurance }} | {{ ms.internal }} | {{ ms.total }} | {{ ms.moh_pct|floatformat:1 }}% | {{ ms.chi_pct|floatformat:1 }}% |
| Source | Count | Percentage | |
|---|---|---|---|
| {{ row.label }} | {{ row.count }} | {{ row.pct_label }} | {{ row.pct|floatformat:1 }}% |
| Month | {{ lr.complaint_col }} | {{ lr.patient_col }} | Percentage |
|---|---|---|---|
| {{ row.month }} | {{ row.complaints }} | {{ row.patients }} | {{ row.ratio|floatformat:4 }}% |
| Month | Medical | Admin | Nursing | Support Services | Total |
|---|---|---|---|---|---|
| {{ row.month }} | {{ row.medical }} | {{ row.admin }} | {{ row.nursing }} | {{ row.support }} | {{ row.total }} |
| {{ cat.label }} | Escalated |
|---|---|
| {{ sub.name }} | {{ sub.count }} |
| Total | {{ cat.total_escalated }} |
| Total Complaints | {{ cat.total_complaints }} |
| % Escalated | {{ cat.escalation_rate|floatformat:1 }}% |
| {% trans "Total Number of Escalated Complaints" %} | {{ escalated.total_escalated }} |
| {% trans "Internal Complaints" %} | {{ escalated.by_source.internal|default:0 }} |
| {% trans "MOH" %} | {{ escalated.by_source.moh|default:0 }} |
| {% trans "CHI" %} | {{ escalated.by_source.chi|default:0 }} |
| {% trans "Total" %} | {{ escalated.total_escalated }} |
| {{ cat.label }} | MOH | CHI | Ins. | Int. | Total | Esc. | Days |
|---|---|---|---|---|---|---|---|
| {{ d.name }} | {{ d.moh }} | {{ d.chi }} | {{ d.insurance }} | {{ d.internal }} | {{ d.total }} | {{ d.escalated }} | {{ d.avg_response_days|floatformat:1 }} |
| Total | {{ cat.totals.moh }} | {{ cat.totals.chi }} | {{ cat.totals.insurance }} | {{ cat.totals.internal }} | {{ cat.totals.total }} | {{ cat.totals.escalated }} |
| {% trans "Source" %} | {% trans "Count" %} |
|---|---|
| {{ row.label }} | {{ row.count }} |
{% trans "Total:" %} {{ response_rates.internal.total }}
{% trans "Total:" %} {{ response_rates.moh.total }}
{% trans "Total:" %} {{ response_rates.chi.total }}
| {% trans "Reference" %} | {% trans "Department" %} | {% trans "Hours" %} | {% trans "Bucket" %} | {% trans "Status" %} |
|---|---|---|---|---|
| {{ item.ref }} | {{ item.dept }} | {{ item.hours|floatformat:1 }} | {{ item.bucket }} | {{ item.status }} |