Commit graph

23 commits

Author SHA1 Message Date
bbcb0c489a fix: replace Unicode escape sequences with UTF-8 characters in ReportViewer
Unicode escapes like \u00e4 render as literal text in JSX content
instead of the intended German umlauts (ä, ü, Ü).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 20:19:37 +00:00
61f95483d6 feat: add Anleitung page with step-by-step guides for all portal features
New guide page accessible via sidebar with accordion-based instructions
covering Dashboard, Cases, ICD input, Disclosures, Reports, Weekly
Overview, and Account management. Includes a glossary of key terms.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 11:48:52 +00:00
4dae529520 feat: add Impressum and Datenschutz links in sidebar
Legal links at sidebar footer open content in an iframe dialog,
keeping users within the portal instead of navigating away.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 16:59:06 +00:00
efeb619b06 feat: persist Wochenübersicht exports, DAK-Mitarbeiter access + ICD upload
- Wochenübersicht exports now persisted in DB (WeeklyReport) + disk
- POST /reports/wochenuebersicht/generate replaces GET (admin-only)
- POST /reports/wochenuebersicht/upload-icd for ICD upload (all roles)
- GET /reports/list supports report_type_prefix filter
- WochenuebersichtPage: report table + ICD drag-drop upload for all roles
- Route + sidebar open to all authenticated users
- ReportsPage filters out wochenuebersicht report types

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 13:51:14 +00:00
6f6a721973 feat: add Wochenübersicht export + ICD import auto-detect
- New Excel export service for weekly DAK summary sheets (c2s / c2s_g_s variants)
- New API endpoint GET /reports/wochenuebersicht (admin-only)
- ICD import auto-detects format (coding template vs. Wochenübersicht KVNR-based)
- New admin frontend page with download form
- Route + sidebar navigation entry

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 13:28:17 +00:00
48939f01dd feat: add Onko-Intensiv and Galle-Schild report types
Adds report_type support across the full stack:
- Backend: REPORT_TYPES mapping, fallgruppen filter in all 5 sheet
  calculations, dynamic Excel columns, report_type DB column with
  Alembic migration 007
- Frontend: report type dropdown in generation form, type column in
  reports table, dynamic fallgruppen in ReportViewer

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 12:47:59 +00:00
dbb5afaeb9 feat: add inline report viewer with 5-tab sheet display
- 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>
2026-02-26 22:57:35 +00:00
32cee4d30d feat: add KPI links, My Disclosures page, and extend Admin Disclosures
- Dashboard KPI cards are now clickable with role-based links
- New GutachtenStatistikPage placeholder at /gutachten-statistik
- New "Meine Freigaben" page for DAK-Mitarbeiter to view/revoke own disclosures
- Backend: GET /cases/my-disclosure-requests, PUT /cases/disclosure-requests/{id}/revoke
- Admin Disclosures page: full history with status tabs and revoke capability
- Backend: PUT /admin/disclosure-requests/{id}/revoke, default shows all statuses
- Sidebar: "Meine Freigaben" entry for dak_mitarbeiter role

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 22:19:46 +00:00
edf30c02ec test: add ProtectedRoute tests and remaining page tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 21:40:25 +00:00
8038c6e50d feat: make DAK logo clickable, links to dashboard
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 19:08:24 +00:00
061811ce17 fix: increase DAK logo to h-18 in sidebar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 18:56:40 +00:00
ddeddeb083 fix: enlarge logo in sidebar, move DAK Portal title to header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 18:55:02 +00:00
31c1d63ed7 fix: increase DAK logo size in sidebar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 18:50:27 +00:00
617e5c2ae7 fix: move DAK logo from header to sidebar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 18:47:34 +00:00
2c1b064373 feat: add DAK logo to header
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 18:40:07 +00:00
31a2d5a355 feat: add disclosure admin route and sidebar entry
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 16:14:14 +00:00
5f7b4c6e1d feat: add /account route, sidebar entry and header link
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 09:48:43 +00:00
ab0ed453fa fix: rename Faelle to Fälle in sidebar, add KVNR column to cases table
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 10:50:42 +00:00
1edf5835be feat: add dark mode toggle in header and login page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 10:02:41 +00:00
006ffd5254 feat: coding queue, reports, notifications, and admin pages
- CodingPage: card-based queue with Fallgruppe filter, coding form per case
- ReportsPage: report generation (admin), download, report history table
- Notifications: real-time bell dropdown in Header with polling, mark-read
- AdminUsersPage: user list, create/edit dialogs with role & active toggle
- AdminInvitationsPage: create invitations, copy token, status badges
- AdminAuditPage: filterable log with expandable old/new values

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 08:39:56 +00:00
5cbef969fb feat: dashboard, cases, import, and ICD pages with full functionality
Implement the four core frontend pages for the DAK Zweitmeinungs-Portal:
- DashboardPage: KPI cards, weekly stacked bar chart, fallgruppen donut chart, year selector
- CasesPage: filterable/searchable paginated table with detail slide-out and inline ICD editing
- ImportPage: CSV upload with preview/confirm, ICD Excel upload, import history log
- IcdPage: reuses CasesPage with pending-icd-only filter

Also adds shadcn/ui components (table, select, tabs, skeleton, scroll-area) and
new TypeScript types for import log and ICD import responses.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 08:32:18 +00:00
0767e1ed18 feat: auth context, login/register pages, app layout with routing
- Task 19: TypeScript types for all API entities, axios client with JWT
  refresh interceptor, auth service, AuthContext provider, ProtectedRoute
- Task 20: Login page with MFA support, Register page with invitation
  token support, German labels, zod validation
- Task 21: Responsive sidebar with role-aware navigation, header with
  user dropdown, AppLayout with Sheet for mobile, full React Router setup
  with placeholder pages for all routes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 08:21:00 +00:00
aea967acf8 feat: frontend setup — React, Vite, TypeScript, Tailwind CSS v4, shadcn/ui
Scaffold the DAK Zweitmeinungs-Portal frontend with:
- Vite 7.3 + React 19 + TypeScript 5.9
- Tailwind CSS v4 with @tailwindcss/vite plugin
- shadcn/ui (new-york style, neutral base color) with button, input, label, card components
- Path alias @/* -> src/* configured in tsconfig and vite
- API proxy: /api/* -> http://localhost:8000
- Core deps: react-router-dom, axios, recharts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 08:14:36 +00:00