import type { FamilyMemberHistory } from 'fhir/r4'; import { formatDate } from './dateUtils'; /** The birth or age part of a family member row title; empty when neither is recorded. */ export const getBirthSuffix = (familyMemberHistory: FamilyMemberHistory): string => { if (!familyMemberHistory) return ''; if (familyMemberHistory.bornDate) { return ` [Born: ${formatDate(familyMemberHistory.bornDate)}]`; } if (familyMemberHistory.ageAge) { return ` [Age: ${familyMemberHistory.ageAge.value} ${familyMemberHistory.ageAge.unit}]`; } if (familyMemberHistory.ageRange) { const low = familyMemberHistory.ageRange?.low?.value; const high = familyMemberHistory.ageRange?.high?.value; const unit = familyMemberHistory.ageRange?.low?.unit || familyMemberHistory.ageRange?.high?.unit || 'years'; if (low && high) { return ` [Age between ${low}-${high} ${unit}]`; } else if (low) { return ` [Age at least ${low} ${unit}]`; } else if (high) { return ` [Age up to ${high} ${unit}]`; } } return ''; };