/** * Diagnose Overzicht Pagina * * Toont alle diagnoses van een patiënt (uit alle intakes). * Diagnoses kunnen worden bewerkt via de gekoppelde intake. */ import { Stethoscope, Plus } from 'lucide-react'; import Link from 'next/link'; import { Button } from '@/components/ui/button'; import { getPatientDiagnoses } from './actions'; import { DiagnosisOverviewCard } from './components/diagnosis-overview-card'; import { createClient } from '@/lib/auth/server'; export default async function DiagnosePage({ params, }: { params: Promise<{ id: string }>; }) { const { id: patientId } = await params; // Haal alle diagnoses op const diagnoses = await getPatientDiagnoses(patientId); // Sorteer: hoofddiagnoses eerst, dan actieve, dan op datum const sortedDiagnoses = [...diagnoses].sort((a, b) => { // Hoofddiagnoses eerst const aIsPrimary = a.category === 'primary-diagnosis'; const bIsPrimary = b.category === 'primary-diagnosis'; if (aIsPrimary && !bIsPrimary) return -1; if (!aIsPrimary && bIsPrimary) return 1; // Actieve diagnoses eerst const aIsActive = a.clinical_status === 'active'; const bIsActive = b.clinical_status === 'active'; if (aIsActive && !bIsActive) return -1; if (!aIsActive && bIsActive) return 1; // Dan op datum (nieuwste eerst) const aDate = a.recorded_date ? new Date(a.recorded_date).getTime() : 0; const bDate = b.recorded_date ? new Date(b.recorded_date).getTime() : 0; return bDate - aDate; }); // Tel actieve diagnoses const activeDiagnoses = diagnoses.filter((d) => d.clinical_status === 'active'); const primaryDiagnosis = diagnoses.find((d) => d.category === 'primary-diagnosis'); // Haal meest recente intake op voor "Nieuwe diagnose" link const supabase = await createClient(); const { data: recentIntake } = await supabase .from('intakes') .select('id') .eq('patient_id', patientId) .order('start_date', { ascending: false }) .limit(1) .maybeSingle(); const newDiagnosisUrl = recentIntake ? `/epd/patients/${patientId}/intakes/${recentIntake.id}/diagnosis` : null; return (
Overzicht van alle diagnoses (ICD-10) voor deze patiënt.
Er zijn nog geen diagnoses geregistreerd voor deze patiënt. Diagnoses worden vastgelegd tijdens een intake.
{newDiagnosisUrl && ( )}