import React from "react"; import { DeviceRequest } from "fhir/r4"; import { SheetBody, SheetHeader } from "../ui/sheet"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs"; import { formatDateForDisplay } from "../../lib/utils"; import { FhirCodeableConceptDisplay } from "../../utils/fhirCodeableConcept"; import { FhirReferenceDisplay } from "../../utils/fhirReference"; import { FhirPeriodDisplay } from "../../utils/fhirPeriod"; import { FhirAnnotationDisplay } from "../../utils/fhirAnnotation"; import { FhirTimingDisplay } from "../../utils/fhirTiming"; import { FieldHistoryProvider, FieldHistoryScope, } from "../FieldHistory/FieldHistoryProvider"; import { ShowFieldHistoryToggle } from "../FieldHistory/ShowFieldHistoryToggle"; import { PrintRecord } from "../ui/print-record"; import { RecordEditedMarker } from "../FieldHistory/RecordEditedMarker"; import { Field } from "../FieldHistory/Field"; import { FieldGroup } from "../FieldHistory/FieldLayout"; import { StatusBadge } from "../ui/status"; interface FhirDeviceRequestDisplayProps { deviceRequest: DeviceRequest; isOpen: boolean; onClose: () => void; title?: string; } export const FhirDeviceRequestDisplay: React.FC< FhirDeviceRequestDisplayProps > = ({ deviceRequest, isOpen, title }) => { if (!isOpen) return null; // / D5 - was a hand-rolled pill: a local STATUS_STYLES record of hardcoded hex pairs // applied as an INLINE STYLE, with the raw FHIR code as the text. Colour-only, non-token, and one // of twelve near-identical copies. carries the shared word plus D5's colour AND shape. const renderStatusPill = (status: string | undefined): React.ReactNode => ( ); // occurrence[x] is polymorphic: a plain dateTime, a Period, or a Timing. const renderOccurrenceValue = (): React.ReactNode => { if (deviceRequest.occurrenceDateTime) { return formatDateForDisplay(deviceRequest.occurrenceDateTime); } if (deviceRequest.occurrencePeriod) { return ; } if (deviceRequest.occurrenceTiming) { return ; } return undefined; }; // code[x] is polymorphic: a CodeableConcept or a Reference to the device. const renderDeviceRequestedName = (): string => { const codeableConcept = deviceRequest.codeCodeableConcept; if (codeableConcept) { const text = codeableConcept.text || codeableConcept.coding?.[0]?.display; return text ? text.split("[")[0].trim() : "Device name not available"; } if (deviceRequest.codeReference?.display) { return deviceRequest.codeReference.display.split("[")[0].trim(); } return "Device name not available"; }; return (
{title || "Device Request Details"}

{renderDeviceRequestedName()}

Overview Clinical & Administrative Details {deviceRequest.intent} ) : undefined } path="intent" /> {deviceRequest.priority} ) : undefined } path="priority" /> } />

Clinical Context

} /> } /> } /> } /> } />

Fulfillment & Performer

} path="performerType.coding[0].display" /> } /> } /> } /> } />

Notes

} />
); }; export default FhirDeviceRequestDisplay;