New GET /cases/export endpoint generates .xlsx with openpyxl using the
same filters as the case list (year, fallgruppe, ICD status, search).
Role-aware columns: admins see patient names, DAK staff does not.
Frontend adds a Download button next to the filter bar with loading
state. Refactors shared query logic into _build_case_query helper.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a Switch toggle for "Batch-Modus" on the ICD page that enables
inline ICD code entry directly in the table. Features: Enter to save,
Escape to cancel, Tab to navigate, visual feedback (green/red border,
spinner, checkmark/error icon with tooltip).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dashboard endpoint now returns prev_kpis (previous year's KPIs) alongside
current KPIs. KpiCard component shows percentage change with colored trend
indicators (green up, red down, grey neutral). Also marks completed items
in todo.md (notification center, dark mode toggle were already implemented).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace direct Notification inserts with notification_service functions
that send both in-app and email notifications. Admins receive an email
when a DAK-Mitarbeiter submits a new disclosure request. The requesting
Mitarbeiter receives an email when their request is approved (with
expiration date) or rejected. SMTP was already configured.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add full statistics page replacing placeholder: 4 KPI cards (total, Bestätigung,
Alternative, Uncodiert), stacked bar chart for gutachten types per KW, donut chart
for type distribution, grouped bar chart for therapy changes per KW, and horizontal
bar chart for therapy change reasons. Includes new backend endpoint and service
function combining sheet3/sheet4 data with KPI aggregation. Also adds feature
roadmap todo.md.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>