mirror of
https://github.com/complexcaresolutions/dak.c2s.git
synced 2026-03-17 20:43:41 +00:00
- Backend: GET /reports/{id}/data endpoint returns stored report JSON
- Frontend: ReportViewer component renders all 5 Excel sheets as tabs
(KW gesamt, Fachgebiete, Gutachten, Therapieänderungen, ICD onko)
- ReportsPage: clickable rows with inline expansion to view reports
- Empty KW rows filtered, summary row at bottom, German labels
- Download button still available alongside inline view
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
# Berichts-Webansicht (Inline-Expansion)
|
|
|
|
## Kontext
|
|
|
|
Berichte werden aktuell als Excel-Dateien generiert und können nur heruntergeladen werden. Ziel: Berichte direkt auf der Webseite anzeigen, ohne Excel öffnen zu müssen.
|
|
|
|
## Entscheidungen
|
|
|
|
- **Inline-Expansion**: Klick auf eine Tabellenzeile klappt den Bericht darunter auf
|
|
- **5 Tabs**: Alle 5 Excel-Sheets als separate Tabs (KW gesamt, Fachgebiete, Gutachten, Therapieänderungen, ICD onko)
|
|
- **Backend-Endpoint**: `GET /reports/{id}/data` liefert gespeichertes `report_data`-JSON
|
|
- **Leere KWs ausblenden**: Nur Zeilen mit Daten anzeigen
|
|
|
|
## Architektur
|
|
|
|
### Backend
|
|
|
|
Neuer Endpoint in `backend/app/api/reports.py`:
|
|
|
|
```
|
|
GET /reports/{id}/data → WeeklyReport.report_data (JSON)
|
|
```
|
|
|
|
Authentifiziert (get_current_user), gibt das gespeicherte JSON zurück. Kein Neuberechnen.
|
|
|
|
### Frontend
|
|
|
|
| Datei | Änderung |
|
|
|-------|----------|
|
|
| `hooks/useReports.ts` | Neuer Hook `useReportData(id)` |
|
|
| `pages/ReportsPage.tsx` | Zeile klickbar, Inline-Expansion mit expandiertem Report |
|
|
| `components/ReportViewer.tsx` (NEU) | 5-Tab-Viewer-Komponente |
|
|
|
|
### Sheet-Darstellung
|
|
|
|
| Tab | Spalten |
|
|
|-----|---------|
|
|
| KW gesamt | KW, Erstberatungen, Unterlagen, Ablehnungen, Keine RM, Gutachten |
|
|
| Fachgebiete | KW, pro Fallgruppe: Anzahl, Gutachten, Keine RM |
|
|
| Gutachten | KW, Gesamt + pro Fallgruppe: Gutachten, Alternative, Bestätigung |
|
|
| Therapieänderungen | KW, Gutachten, TA Ja, TA Nein, Diagnosekorrektur, Unterversorgung, Übertherapie |
|
|
| ICD onko | ICD-Code, Anzahl (sortiert nach Häufigkeit) |
|
|
|
|
Jede Tabelle: Summenzeile am Ende, leere KWs ausgeblendet.
|
|
|
|
## Datenfluss
|
|
|
|
1. User klickt auf Tabellenzeile → `expandedId` State wird gesetzt
|
|
2. `useReportData(expandedId)` fetcht `GET /reports/{id}/data`
|
|
3. `ReportViewer` rendert die 5 Tabs mit den Tabellendaten
|
|
4. Erneuter Klick auf die Zeile → `expandedId = null` → Expansion wird geschlossen
|