'use client' import { format } from 'date-fns' import { FileText } from 'lucide-react' import { Card } from '@/components/ui' import { MarkerRow } from './MarkerRow' interface MarkerData { marker: string value: number unit: string refMin: number | null refMax: number | null flag: string | null } interface LabResultData { id: string testDate: string panelName: string labName: string | null results: MarkerData[] notes: string | null createdBy?: { id: string; name: string } } interface LabResultCardProps { result: LabResultData onEdit?: (result: LabResultData) => void } export function LabResultCard({ result, onEdit }: LabResultCardProps) { const markers = result.results || [] const flaggedCount = markers.filter((m) => m.flag).length const criticalCount = markers.filter((m) => m.flag?.startsWith('CRITICAL')).length return ( onEdit?.(result)} >
{/* Header */}

{result.panelName}

{format(new Date(result.testDate), 'MMM d, yyyy')} {result.labName && ` ยท ${result.labName}`}

{/* Flag summary */}
{criticalCount > 0 && ( {criticalCount} critical )} {flaggedCount > 0 && flaggedCount !== criticalCount && ( {flaggedCount - criticalCount} flagged )} {flaggedCount === 0 && markers.length > 0 && ( All normal )}
{/* Marker rows */}
{markers.map((m, i) => ( ))}
{/* Notes */} {result.notes && (

{result.notes}

)}
) }