From c3a736d79b3f86ecc861ea672cc3ad525f2964db Mon Sep 17 00:00:00 2001 From: Pius Kariuki <39379012+PiusKariuki@users.noreply.github.com> Date: Wed, 10 Jul 2024 09:31:35 +0300 Subject: [PATCH] (fix) O3-3547: Handle possibly undefined encounter.obs in LabResultsForm (#1903) Handle possibly undefined encounter.obs in LabResultsForm Co-authored-by: Dennis Kigen --- .../lab-results-form.component.tsx | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) 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);