diff --git a/frontend/src/pages/DashboardPage.tsx b/frontend/src/pages/DashboardPage.tsx
index 91d3910..8ab4f4d 100644
--- a/frontend/src/pages/DashboardPage.tsx
+++ b/frontend/src/pages/DashboardPage.tsx
@@ -4,7 +4,7 @@ import {
BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend,
PieChart, Pie, Cell, ResponsiveContainer,
} from 'recharts'
-import { FileText, Clock, Code, Stethoscope } from 'lucide-react'
+import { FileText, Clock, Code, Stethoscope, Info } from 'lucide-react'
import { useAuth } from '@/context/AuthContext'
import { useDashboard } from '@/hooks/useDashboard'
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
@@ -12,6 +12,9 @@ import {
Select, SelectContent, SelectItem, SelectTrigger, SelectValue,
} from '@/components/ui/select'
import { Skeleton } from '@/components/ui/skeleton'
+import {
+ Tooltip as UiTooltip, TooltipContent, TooltipTrigger,
+} from '@/components/ui/tooltip'
const FALLGRUPPEN_LABELS: Record = {
onko: 'Onkologie',
@@ -81,24 +84,28 @@ export function DashboardPage() {
}
href="/cases"
/>
}
href="/icd"
/>
}
href={isAdmin ? '/coding' : undefined}
/>
}
href="/gutachten-statistik"
@@ -115,6 +122,7 @@ export function DashboardPage() {
Wöchentliche Übersicht
+ Ablehnungen, fehlende Rückmeldungen und Gutachten pro Kalenderwoche
@@ -165,6 +173,7 @@ export function DashboardPage() {
Fallgruppen
+ Verteilung der Fälle nach medizinischer Fachgruppe
@@ -212,11 +221,23 @@ export function DashboardPage() {
)
}
-function KpiCard({ title, value, icon, href }: { title: string; value: number; icon: React.ReactNode; href?: string }) {
+function KpiCard({ title, tooltip, value, icon, href }: { title: string; tooltip?: string; value: number; icon: React.ReactNode; href?: string }) {
const card = (
- {title}
+
+ {tooltip ? (
+
+
+
+ {title}
+
+
+
+ {tooltip}
+
+ ) : title}
+
{icon}
diff --git a/frontend/src/pages/MyDisclosuresPage.tsx b/frontend/src/pages/MyDisclosuresPage.tsx
index 3569ed4..38ebd6c 100644
--- a/frontend/src/pages/MyDisclosuresPage.tsx
+++ b/frontend/src/pages/MyDisclosuresPage.tsx
@@ -14,21 +14,52 @@ import {
useMyDisclosures, useRevokeDisclosure,
useDeleteDisclosure, useRequestDisclosure,
} from '@/hooks/useDisclosures'
+import {
+ Tooltip, TooltipContent, TooltipTrigger,
+} from '@/components/ui/tooltip'
import type { DisclosureRequest } from '@/types'
function statusBadge(dr: DisclosureRequest) {
const now = new Date()
if (dr.status === 'pending') {
- return Ausstehend
+ return (
+
+
+ Ausstehend
+
+ Ihre Anfrage wird vom Administrator geprüft
+
+ )
}
if (dr.status === 'rejected') {
- return Abgelehnt
+ return (
+
+
+ Abgelehnt
+
+ Der Administrator hat Ihre Anfrage abgelehnt
+
+ )
}
// approved
if (dr.expires_at && new Date(dr.expires_at) <= now) {
- return Abgelaufen
+ return (
+
+
+ Abgelaufen
+
+ Die Freigabe ist nicht mehr gültig
+
+ )
}
- return Genehmigt
+ return (
+
+
+ Genehmigt
+
+ Personendaten sind bis zum Ablaufdatum sichtbar
+
+ )
}
function isActive(dr: DisclosureRequest): boolean {
@@ -67,7 +98,12 @@ export function MyDisclosuresPage() {
return (
-
Meine Freigaben
+
+
Meine Freigaben
+
+ Übersicht Ihrer Freigabe-Anfragen für Personendaten. Genehmigte Freigaben sind 24 Stunden gültig.
+
+
{isLoading ? (
@@ -105,36 +141,51 @@ export function MyDisclosuresPage() {
{isActive(dr) && (
-
+
+
+
+
+ Freigabe vorzeitig beenden — Personendaten werden wieder ausgeblendet
+
)}
{isInactive(dr) && (
<>
-
-
+
+
+
+
+ Neue Freigabe mit gleicher oder geänderter Begründung beantragen
+
+
+
+
+
+ Diese Freigabe-Anfrage aus Ihrer Liste entfernen
+
>
)}
diff --git a/frontend/src/pages/ReportsPage.tsx b/frontend/src/pages/ReportsPage.tsx
index 3c76a8e..3f1af40 100644
--- a/frontend/src/pages/ReportsPage.tsx
+++ b/frontend/src/pages/ReportsPage.tsx
@@ -1,5 +1,5 @@
import { Fragment, useState } from 'react'
-import { ChevronDown, ChevronRight, Download, FileSpreadsheet, Loader2, Plus, Trash2 } from 'lucide-react'
+import { ChevronDown, ChevronRight, Download, FileSpreadsheet, Info, Loader2, Plus, Trash2 } from 'lucide-react'
import api from '@/services/api'
import { useAuth } from '@/context/AuthContext'
import { useReports, useGenerateReport, useDeleteReports, useReportData } from '@/hooks/useReports'
@@ -17,6 +17,9 @@ import {
} from '@/components/ui/select'
import { Skeleton } from '@/components/ui/skeleton'
import { Alert, AlertDescription } from '@/components/ui/alert'
+import {
+ Tooltip, TooltipContent, TooltipTrigger,
+} from '@/components/ui/tooltip'
const REPORT_TYPES = [
{ value: 'gesamt', label: 'Gesamt' },
@@ -253,10 +256,40 @@ export function ReportsPage() {
/>
)}
- Berichtsdatum
+
+
+
+
+ Berichtsdatum
+
+
+
+ Stichtag des Berichts
+
+
Jahr
- KW
- Typ
+
+
+
+
+ KW
+
+
+
+ Kalenderwoche des Berichtszeitraums
+
+
+
+
+
+
+ Typ
+
+
+
+ Berichtstyp: Gesamt, Onko-Intensiv oder Galle-Schild
+
+
Erstellt am
Aktion
diff --git a/frontend/src/pages/WochenuebersichtPage.tsx b/frontend/src/pages/WochenuebersichtPage.tsx
index b9f9501..e3f0132 100644
--- a/frontend/src/pages/WochenuebersichtPage.tsx
+++ b/frontend/src/pages/WochenuebersichtPage.tsx
@@ -1,5 +1,5 @@
import { Fragment, useCallback, useState } from 'react'
-import { ChevronDown, ChevronRight, Download, FileSpreadsheet, Loader2, Plus, Upload } from 'lucide-react'
+import { ChevronDown, ChevronRight, Download, FileSpreadsheet, Info, Loader2, Plus, Upload } from 'lucide-react'
import api from '@/services/api'
import { useAuth } from '@/context/AuthContext'
import {
@@ -21,6 +21,9 @@ import {
} from '@/components/ui/table'
import { Skeleton } from '@/components/ui/skeleton'
import { Alert, AlertDescription } from '@/components/ui/alert'
+import {
+ Tooltip, TooltipContent, TooltipTrigger,
+} from '@/components/ui/tooltip'
const EXPORT_TYPES = [
{ value: 'c2s', label: 'Onko-Intensiv (c2s)' },
@@ -390,6 +393,9 @@ export function WochenuebersichtPage() {
Laden Sie die ausgefüllte Wochenübersicht mit den ergänzten ICD-Codes hoch.
Die ICD-Codes werden automatisch den Fällen anhand der KVNR zugeordnet.
+
+ Unterstützte Formate: .xlsx, .xls — Die KVNR wird zum Abgleich der Fälle verwendet.
+
}) {
- KVNR
+
+
+
+
+ KVNR
+
+
+
+ Krankenversichertennummer
+
+
Datum
- Erstgespräch
- Abbruch
- Unterlagen
- Gutachten
+
+
+
+
+ Erstgespräch
+
+
+
+ Initialkontakt mit dem Versicherten erfolgt
+
+
+
+
+
+
+ Abbruch
+
+
+
+ Zweitmeinung/Vorbereitung bei Ablehnung oder Abbruch
+
+
+
+
+
+
+ Unterlagen
+
+
+
+ Zweitmeinung/Vorbereitung mit Erteilung
+
+
+
+
+
+
+ Gutachten
+
+
+
+ Schriftliche Dokumentation (Gutachten) erstellt
+
+
{fg1Label}
{fg2Label}
- ICD-10
+
+
+
+
+ ICD-10
+
+
+
+ Internationale Klassifikation der Krankheiten
+
+