# DAK Portal — Feature Roadmap

## Hohe Priorität

- [x] **Gutachten-Statistik Seite** — ✅ Implementiert: 4 KPIs, Stacked-Bar (Typ pro KW), Donut (Typ-Verteilung), Grouped-Bar (Therapieänderungen pro KW), Horizontal-Bars (Gründe). Backend-Endpoint + Frontend komplett.
- [x] **Fallliste als Excel exportieren** — ✅ Implementiert: Download-Button auf der Cases-Seite. Backend `GET /cases/export` generiert XLSX mit openpyxl. Rollenbasierte Spalten (Admin sieht Namen, DAK-Mitarbeiter nicht). Alle aktiven Filter werden berücksichtigt.
- [x] **E-Mail-Benachrichtigungen bei Freigabe-Entscheidung** — ✅ Implementiert: disclosure_service nutzt nun notification_service für In-App + E-Mail. Admins erhalten E-Mail bei neuer Anfrage, Mitarbeiter bei Genehmigung/Ablehnung.

## Mittlere Priorität

- [x] **Benachrichtigungs-Center (Bell-Icon)** — ✅ Bereits implementiert: Bell-Icon im Header mit Badge-Counter, Popover-Dropdown, Mark-as-read, 60s-Polling. War schon in Header.tsx vorhanden.
- [x] **Dashboard: Vorjahresvergleich bei KPIs** — ✅ Implementiert: prev_kpis im Dashboard-Endpoint, KpiCards zeigen farbige Trend-Indikatoren (+X% grün, -X% rot) mit Vorjahresvergleich.
- [x] **Batch-ICD-Eingabe** — ✅ Implementiert: Switch-Toggle für Batch-Modus auf ICD-Seite. Inline-Eingabefelder mit Enter/Tab/Escape-Bedienung, visuelles Feedback (Spinner, Häkchen, Fehler-Tooltip).
- [x] **Dark Mode Toggle** — ✅ Bereits implementiert: Sun/Moon-Toggle im Header, useTheme Hook aktiv.

## Niedrige Priorität

- [x] **Erweiterte Suche mit Filterspeicherung** — ✅ Implementiert: Filter-Presets pro User in DB gespeichert (max 10). Popover-Dropdown mit Stern-Icon auf CasesPage. Klick lädt Filter, X löscht Preset, "+" speichert aktuellen Filter.
- [ ] **Dashboard: Durchlaufzeiten** — Durchschnittliche Dauer von Fallerfassung bis Gutachten visualisieren.
- [x] **Passwort-Reset per E-Mail** — ✅ Implementiert: "Passwort vergessen?" auf Login-Seite, Reset-Link per E-Mail (1h gültig), ResetPasswordPage mit Passwort-Formular. Rate-Limiting (3/h), Audit-Log, Token als SHA-256 Hash gespeichert.
