mirror of
https://github.com/complexcaresolutions/dak.c2s.git
synced 2026-03-17 19:33:41 +00:00
fix: align excel_export keys with report_service output
report_service uses 'summary'/'weekly'/'keine_rm'/'gutachten' but excel_export expected 'totals'/'weeks'/'keine_rueckmeldung'/ 'gutachten_gesamt'. Also fix nested gesamt dict access in sheet3 and icd_codes path from sheet5. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
590125073c
commit
db963a8e12
1 changed files with 17 additions and 13 deletions
|
|
@ -68,7 +68,10 @@ def generate_berichtswesen_xlsx(
|
||||||
_write_sheet1_kw_gesamt(wb, report_data.get("sheet1", {}), jahr, vorjahr_data)
|
_write_sheet1_kw_gesamt(wb, report_data.get("sheet1", {}), jahr, vorjahr_data)
|
||||||
_write_sheet2_fachgebiete(wb, report_data.get("sheet2", {}), jahr)
|
_write_sheet2_fachgebiete(wb, report_data.get("sheet2", {}), jahr)
|
||||||
_write_sheet3_gutachten(wb, report_data.get("sheet3", {}), jahr)
|
_write_sheet3_gutachten(wb, report_data.get("sheet3", {}), jahr)
|
||||||
_write_sheet4_icd_onko(wb, report_data.get("icd_codes", []), jahr)
|
# ICD codes live inside sheet5
|
||||||
|
sheet5 = report_data.get("sheet5", {})
|
||||||
|
icd_codes = sheet5.get("icd_codes", []) if isinstance(sheet5, dict) else []
|
||||||
|
_write_sheet4_icd_onko(wb, icd_codes, jahr)
|
||||||
|
|
||||||
# Remove the default empty sheet created by Workbook()
|
# Remove the default empty sheet created by Workbook()
|
||||||
if "Sheet" in wb.sheetnames:
|
if "Sheet" in wb.sheetnames:
|
||||||
|
|
@ -157,23 +160,23 @@ def _write_sheet1_kw_gesamt(
|
||||||
"""
|
"""
|
||||||
ws = wb.create_sheet(title="Auswertung KW gesamt")
|
ws = wb.create_sheet(title="Auswertung KW gesamt")
|
||||||
|
|
||||||
totals = data.get("totals", {})
|
totals = data.get("summary", {})
|
||||||
weeks = _weeks_lookup(data.get("weeks", []))
|
weeks = _weeks_lookup(data.get("weekly", []))
|
||||||
|
|
||||||
erst = _safe(totals.get("erstberatungen"))
|
erst = _safe(totals.get("erstberatungen"))
|
||||||
abl = _safe(totals.get("ablehnungen"))
|
abl = _safe(totals.get("ablehnungen"))
|
||||||
unt = _safe(totals.get("unterlagen"))
|
unt = _safe(totals.get("unterlagen"))
|
||||||
keine_rm = _safe(totals.get("keine_rueckmeldung"))
|
keine_rm = _safe(totals.get("keine_rueckmeldung"))
|
||||||
gutachten = _safe(totals.get("gutachten_gesamt"))
|
gutachten = _safe(totals.get("gutachten"))
|
||||||
|
|
||||||
# Vorjahr totals
|
# Vorjahr totals
|
||||||
vj = vorjahr_data or {}
|
vj = vorjahr_data or {}
|
||||||
vj_totals = vj.get("totals", {}) if isinstance(vj, dict) else {}
|
vj_totals = vj.get("summary", {}) if isinstance(vj, dict) else {}
|
||||||
vj_erst = _safe(vj_totals.get("erstberatungen"))
|
vj_erst = _safe(vj_totals.get("erstberatungen"))
|
||||||
vj_abl = _safe(vj_totals.get("ablehnungen"))
|
vj_abl = _safe(vj_totals.get("ablehnungen"))
|
||||||
vj_unt = _safe(vj_totals.get("unterlagen"))
|
vj_unt = _safe(vj_totals.get("unterlagen"))
|
||||||
vj_keine = _safe(vj_totals.get("keine_rueckmeldung"))
|
vj_keine = _safe(vj_totals.get("keine_rueckmeldung"))
|
||||||
vj_ga = _safe(vj_totals.get("gutachten_gesamt"))
|
vj_ga = _safe(vj_totals.get("gutachten"))
|
||||||
|
|
||||||
# --- Title ---
|
# --- Title ---
|
||||||
ws["A1"] = "Gesamt\u00fcbersicht"
|
ws["A1"] = "Gesamt\u00fcbersicht"
|
||||||
|
|
@ -218,8 +221,8 @@ def _write_sheet1_kw_gesamt(
|
||||||
ws.cell(row=row, column=2, value=_safe(w.get("erstberatungen")))
|
ws.cell(row=row, column=2, value=_safe(w.get("erstberatungen")))
|
||||||
ws.cell(row=row, column=3, value=_safe(w.get("unterlagen")))
|
ws.cell(row=row, column=3, value=_safe(w.get("unterlagen")))
|
||||||
ws.cell(row=row, column=4, value=_safe(w.get("ablehnungen")))
|
ws.cell(row=row, column=4, value=_safe(w.get("ablehnungen")))
|
||||||
ws.cell(row=row, column=5, value=_safe(w.get("keine_rueckmeldung")))
|
ws.cell(row=row, column=5, value=_safe(w.get("keine_rm")))
|
||||||
ws.cell(row=row, column=6, value=_safe(w.get("gutachten_gesamt")))
|
ws.cell(row=row, column=6, value=_safe(w.get("gutachten")))
|
||||||
|
|
||||||
# --- Summe row (row 63) ---
|
# --- Summe row (row 63) ---
|
||||||
summe_row = 10 + MAX_KW + 1 # 63
|
summe_row = 10 + MAX_KW + 1 # 63
|
||||||
|
|
@ -260,7 +263,7 @@ def _write_sheet2_fachgebiete(
|
||||||
"""
|
"""
|
||||||
ws = wb.create_sheet(title="Auswertung nach Fachgebieten")
|
ws = wb.create_sheet(title="Auswertung nach Fachgebieten")
|
||||||
|
|
||||||
weeks = _weeks_lookup(data.get("weeks", []))
|
weeks = _weeks_lookup(data.get("weekly", []))
|
||||||
|
|
||||||
# --- Title ---
|
# --- Title ---
|
||||||
ws["A1"] = "\u00dcbersicht nach Fallgruppen"
|
ws["A1"] = "\u00dcbersicht nach Fallgruppen"
|
||||||
|
|
@ -350,7 +353,7 @@ def _write_sheet3_gutachten(
|
||||||
"""
|
"""
|
||||||
ws = wb.create_sheet(title="Auswertung Gutachten")
|
ws = wb.create_sheet(title="Auswertung Gutachten")
|
||||||
|
|
||||||
weeks = _weeks_lookup(data.get("weeks", []))
|
weeks = _weeks_lookup(data.get("weekly", []))
|
||||||
|
|
||||||
# --- Title ---
|
# --- Title ---
|
||||||
ws["A1"] = "\u00dcbersicht nach Fallgruppen"
|
ws["A1"] = "\u00dcbersicht nach Fallgruppen"
|
||||||
|
|
@ -405,9 +408,10 @@ def _write_sheet3_gutachten(
|
||||||
ws.cell(row=row, column=1, value=kw)
|
ws.cell(row=row, column=1, value=kw)
|
||||||
|
|
||||||
# Gesamt
|
# Gesamt
|
||||||
g_ges = _safe(w.get("gutachten_gesamt"))
|
gesamt = w.get("gesamt", {})
|
||||||
g_alt = _safe(w.get("gutachten_alternative"))
|
g_ges = _safe(gesamt.get("gutachten"))
|
||||||
g_best = _safe(w.get("gutachten_bestaetigung"))
|
g_alt = _safe(gesamt.get("alternative"))
|
||||||
|
g_best = _safe(gesamt.get("bestaetigung"))
|
||||||
ws.cell(row=row, column=2, value=g_ges)
|
ws.cell(row=row, column=2, value=g_ges)
|
||||||
ws.cell(row=row, column=3, value=g_alt)
|
ws.cell(row=row, column=3, value=g_alt)
|
||||||
ws.cell(row=row, column=4, value=g_best)
|
ws.cell(row=row, column=4, value=g_best)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue