# Laborbericht-Erstellung — Pivot-Tabellen aus XLSX

## Problemstellung
Die `laborwerte`-Tabelle in `health_data.db` speichert alle Werte mit `ermittlung_datum` = OCR-Verarbeitungsdatum (z.B. 2026-05-10 12:15:58). Das ist NICHT das tatsächliche Blutabnahmedatum.

## Lösung
XLSX-Referenzdateien (vom User bereitgestellt) als primäre Datenquelle verwenden. Diese enthalten die korrekten Abnahmedaten.

## Workflow

1. **XLSX laden** mit `openpyxl`
2. **Parameter extrahieren** — Zeilen mit Wert in Spalte A und Referenzbereich in Spalte B
3. **Daten extrahieren** — Spalten C–M enthalten Abnahmedaten (Header Zeile 1)
4. **Abgleich mit DB** — `SELECT DISTINCT parameter_name FROM laborwerte` vs. XLSX-Parameter
5. **Report erstellen** — Pivot-Tabelle: Zeilen = Parameter, Spalten = Datum

## Kategorien-Struktur (aus XLSX)
- Blutabnahmen (Überschrift)
- Entzündung (CRP, BSR)
- Hämatologie (Hb, Hk, Ery, Leuko, Thrombo, MCV, MCH, MCHC, RDW)
- Blutfette & Stoffwechsel (Cholesterin, LDL, HDL, Triglyceride, Glukose, HbA1c)
- Leber & Niere (ALAT, ASAT, GGT, AP, Kreatinin, eGFR)
- Schilddrüse (TSH, fT3, fT4)
- Hormone (Testosteron)
- Immunologie / Infektion (HBV, HCV, HIV, EBV, Auto-AK)
- Gerinnung (INR, Quick, aPTT, D-Dimer, AT III, Protein C/S)
- Urin (pH, Spez. Gewicht, Protein, Blut, Nitrit, Zylinder)

## Skript
`scripts/generate_labor_report.py` — generiert `aktuelle_blutwerte.xlsx` mit:
- 5 aktuellsten Blutabnahmen als Spalten
- Parameter sortiert nach Kategorien
- Out-of-Range-Highlighting
- Einheit in Spalte B

## Pitfalls
- `ermittlung_datum` in DB ist OCR-Datum, nicht Abnahmedatum
- Alle 241 Werte haben dasselbe `ermittlung_datum` (OCR-Verarbeitungstag)
- XLSX als Truth für tatsächliche Abnahmedaten verwenden
- `openpyxl` statt `pandas` (nicht installiert)
- Parameter-Namen in DB und XLSX können leicht variieren → Abgleich notwendig
