{t('labShipmentBlockedBody')}
-{t('walkIn')}
{t('walkInPickerHint')}
+ {currentPatient && onSelectCurrentPatient ? ( +{currentPatient.displayName}
++ {contactLine(currentPatient, t('newTreatmentUseCurrentHint'))} +
+{t('labShipmentBlockedBody')}
+ ) : null} + {showFields && activeDetail ? ({t('labShipmentBlockedBody')}
- )} -{t('noDetails')}
) : null} ); diff --git a/frontend/src/components/ui/treatment/TreatmentWorkspace.tsx b/frontend/src/components/ui/treatment/TreatmentWorkspace.tsx index 4d60d18..0d22bba 100644 --- a/frontend/src/components/ui/treatment/TreatmentWorkspace.tsx +++ b/frontend/src/components/ui/treatment/TreatmentWorkspace.tsx @@ -15,7 +15,6 @@ import { AppointmentsStrip } from '@/components/ui/treatment/AppointmentsStrip'; import { NewTreatmentPatientPicker } from '@/components/ui/treatment/NewTreatmentPatientPicker'; import { FdiToothChart } from '@/components/ui/treatment/FdiToothChart'; import { LabCasesDispatchPanel } from '@/components/ui/treatment/LabCasesDispatchPanel'; -import { LabShipmentBlockedNotice } from '@/components/ui/treatment/LabShipmentBlockedNotice'; import { LabDispatchAttentionPanel } from '@/components/ui/treatment/LabDispatchAttentionPanel'; import { PastTreatmentsPanel } from '@/components/ui/treatment/PastTreatmentsPanel'; import { TreatmentDetailsEditor } from '@/components/ui/treatment/TreatmentDetailsEditor'; @@ -33,7 +32,7 @@ import { prosthesisCatalogApi } from '@/lib/api/prosthesis-catalog'; import { treatmentsApi } from '@/lib/api/treatments'; import { notificationsApi } from '@/lib/api/notifications'; import { pickAutoAppointment } from '@/components/shared/treatmentSelection'; -import type { DayStripItem } from '@/components/treatment/dayStrip'; +import { unscheduledStripColorCode, type DayStripItem } from '@/components/treatment/dayStrip'; import { areDetailsPersistable, defaultTreatmentTypeForAppointment, @@ -57,7 +56,11 @@ import { } from '@/components/treatment/toothSelectionGroups'; import type { LabDispatchAttentionItem } from '@/components/treatment/labDispatchAttention'; import { collectLabDispatchAttention } from '@/components/treatment/labDispatchAttention'; -import { loadLabDispatchDefaults, rememberLastLab } from '@/components/treatment/labDispatchDefaults'; +import { + loadRecentLabIds, + MAX_RECENT_LABS, + rememberRecentLab, +} from '@/components/treatment/labDispatchDefaults'; import { canEditTreatment, canViewTreatment, canAccessDashboardRoute } from '@/components/shared/permissions'; import { scrollWithinMainScrollContainer } from '@/components/shared/scrollWithinMain'; import { useMarkTabReadOnVisit, useTabBadgeCounts } from '@/lib/hooks/useTabBadgeCounts'; @@ -203,6 +206,7 @@ function mapAppointment(record: AppointmentRecord): TreatmentAppointment { patientId: record.patientId, patientFirstName: record.patient.firstName, patientLastName: record.patient.lastName, + patientMobile: record.patient.mobile, providerUserId: record.providerUserId, startAt: record.startAt, endAt: record.endAt, @@ -383,10 +387,12 @@ export function TreatmentWorkspace({ const [unreadLabCasesLoading, setUnreadLabCasesLoading] = useState(false); const [labCasesScope, setLabCasesScope] = useState{t('subtitleReadOnly')}
- ) : null} +{t('subtitleReadOnly')}
+ ) : null} +{t('selectedPatient')}
++ {t('selectedPatient')} +
{activePatientName}
{activePatient.purpose ? (@@ -2230,7 +2300,11 @@ export function TreatmentWorkspace({ ) : null}
+
{apptsLoading ? t('loadingAppointments') : t('selectDayWithAppointment')}
)} @@ -2333,6 +2407,24 @@ export function TreatmentWorkspace({{t('loading')}
++ {t('noTreatmentFoundBody', { + name: activePatientName ?? '', + action: t('newTreatment'), + })} +
+{t('entryStepLabUnavailable')}
)}