diff --git a/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.resource.ts b/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.resource.ts index 628162c478..49828129c6 100644 --- a/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.resource.ts +++ b/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.resource.ts @@ -115,7 +115,7 @@ export function deleteVisitAttribute(visitUuid: string, visitAttributeUuid: stri }); } -export function useVisitFormSchemaAndDefaultValues(visitToEdit: Visit) { +export function useVisitFormSchemaAndDefaultValues(visitToEdit: Visit, options: { isDeceased: boolean }) { const { t } = useTranslation(); const { visitAttributeTypes, restrictByVisitLocationTag } = useConfig(); const isEmrApiModuleInstalled = useFeatureFlag('emrapi-module'); @@ -140,8 +140,13 @@ export function useVisitFormSchemaAndDefaultValues(visitToEdit: Visit) { const startDateTime = convertToDateTimeFields(visitToEdit?.startDatetime ?? now); const stopDateTime = convertToDateTimeFields(visitToEdit?.stopDatetime ?? now); - const visitStatus: VisitStatus = - visitToEdit == null ? 'new' : visitToEdit.stopDatetime === null ? 'ongoing' : 'past'; + const visitStatus: VisitStatus = options.isDeceased + ? 'past' + : visitToEdit == null + ? 'new' + : visitToEdit.stopDatetime === null + ? 'ongoing' + : 'past'; const defaultValues: Partial = { visitStatus, @@ -275,7 +280,7 @@ export function useVisitFormSchemaAndDefaultValues(visitToEdit: Visit) { }); return { visitFormSchema, defaultValues, firstEncounterDateTime, lastEncounterDateTime }; - }, [t, visitAttributeTypes, visitToEdit, defaultVisitLocation, emrConfiguration]); + }, [t, visitAttributeTypes, visitToEdit, defaultVisitLocation, emrConfiguration, options.isDeceased]); } // Returns a Date object based on date, time and am/pm inputs from user. diff --git a/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.test.tsx b/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.test.tsx index a1b5a88112..32a633aa3c 100644 --- a/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.test.tsx +++ b/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.test.tsx @@ -780,7 +780,11 @@ describe('useVisitFormSchemaAndDefaultValues', () => { result: { current: { visitFormSchema, defaultValues }, }, - } = renderHook(() => useVisitFormSchemaAndDefaultValues(mockPastVisitWithEncounters)); + } = renderHook(() => + useVisitFormSchemaAndDefaultValues(mockPastVisitWithEncounters, { + isDeceased: false, + }), + ); // verify start time set to past end time const stopDateTime = dayjs(mockPastVisitWithEncounters.stopDatetime); diff --git a/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.workspace.tsx b/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.workspace.tsx index a6b504cf3f..f9f2058d58 100644 --- a/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.workspace.tsx +++ b/packages/esm-patient-chart-app/src/visit/visit-form/visit-form.workspace.tsx @@ -109,8 +109,9 @@ const VisitForm: React.FC = ({ const [visitFormCallbacks, setVisitFormCallbacks] = useVisitFormCallbacks(); const [extraVisitInfo, setExtraVisitInfo] = useState(null); + const isDeceased = patient?.deceasedBoolean === true || !!patient?.deceasedDateTime; const { visitFormSchema, defaultValues, firstEncounterDateTime, lastEncounterDateTime } = - useVisitFormSchemaAndDefaultValues(visitToEdit); + useVisitFormSchemaAndDefaultValues(visitToEdit, { isDeceased }); const methods = useForm({ mode: 'all', @@ -448,8 +449,18 @@ const VisitForm: React.FC = ({ ) : ( onChange(name)} size="md"> - - + + );