diff --git a/packages/esm-patient-orders-app/src/lab-results/lab-results-form.component.tsx b/packages/esm-patient-orders-app/src/lab-results/lab-results-form.component.tsx index 1590b8f120..d49c95f34a 100644 --- a/packages/esm-patient-orders-app/src/lab-results/lab-results-form.component.tsx +++ b/packages/esm-patient-orders-app/src/lab-results/lab-results-form.component.tsx @@ -39,20 +39,27 @@ const LabResultsForm: React.FC = ({ defaultValues: {}, }); - if (!isLoadingEncounter && encounter?.obs.length > 0 && !isEditing) { - setObsUuid(encounter.obs.find((obs) => obs.order?.uuid === order.uuid).uuid); - setIsEditing(true); - } - - if (isEditing && !obsUuid) { - setIsLoadingInitialValues(true); - fetchObservation(obsUuid).then((data) => { - if (data) { - setInitialValues(data); + useEffect(() => { + if (!isLoadingEncounter && encounter?.obs && encounter.obs.length > 0 && !isEditing) { + const matchingObs = encounter.obs.find((obs) => obs.order?.uuid === order.uuid); + if (matchingObs) { + setObsUuid(matchingObs.uuid); + setIsEditing(true); } - setIsLoadingInitialValues(false); - }); - } + } + }, [isLoadingEncounter, encounter, order.uuid, isEditing]); + + useEffect(() => { + if (isEditing && obsUuid) { + setIsLoadingInitialValues(true); + fetchObservation(obsUuid).then((data) => { + if (data) { + setInitialValues(data); + } + setIsLoadingInitialValues(false); + }); + } + }, [isEditing, obsUuid]); useEffect(() => { promptBeforeClosing(() => isDirty);