'use client'; /** * Patient List Component (FHIR-based) * Displays patients from FHIR API */ import { useState } from 'react'; import Link from 'next/link'; import { User, Calendar, Phone, Mail } from 'lucide-react'; import type { FHIRPatient } from '@/lib/fhir'; interface PatientListProps { initialPatients: FHIRPatient[]; } export function PatientList({ initialPatients }: PatientListProps) { const [patients] = useState(initialPatients); if (patients.length === 0) { return (

Geen patiënten gevonden

Begin met het toevoegen van een nieuwe patiënt.

); } return (
{patients.map((patient) => { const name = patient.name?.[0]; const fullName = [ ...(name?.prefix || []), ...(name?.given || []), name?.family, ] .filter(Boolean) .join(' '); const bsn = patient.identifier?.find( (id) => id.system === 'http://fhir.nl/fhir/NamingSystem/bsn' )?.value; const phone = patient.telecom?.find((t) => t.system === 'phone')?.value; const email = patient.telecom?.find((t) => t.system === 'email')?.value; return ( ); })}
Patiënt BSN Geboortedatum Contact Geslacht
{name?.given?.[0]?.[0]} {name?.family?.[0]}
{fullName}
ID: {patient.id}
{bsn || '-'}
{patient.birthDate || '-'}
{phone && (
{phone}
)} {email && (
{email}
)} {!phone && !email && ( - )}
{patient.gender === 'male' && 'Man'} {patient.gender === 'female' && 'Vrouw'} {patient.gender === 'other' && 'Anders'} {patient.gender === 'unknown' && 'Onbekend'} {!patient.gender && '-'}
); }