From b9a66d44241f2896ef184511287fb4984671e16d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Andr=C3=A9=20Lelis?= Date: Wed, 15 Jan 2020 11:15:10 -0300 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Metadata=20is=20being=20m?= =?UTF-8?q?istakenly=20purged=20(#1360)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes: #1326 --- .../ViewerRetrieveStudyData.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/platform/viewer/src/connectedComponents/ViewerRetrieveStudyData.js b/platform/viewer/src/connectedComponents/ViewerRetrieveStudyData.js index b18ca1fa8..066357192 100644 --- a/platform/viewer/src/connectedComponents/ViewerRetrieveStudyData.js +++ b/platform/viewer/src/connectedComponents/ViewerRetrieveStudyData.js @@ -1,5 +1,6 @@ import React, { useState, useEffect, useContext } from 'react'; import { metadata, studies, utils, log } from '@ohif/core'; +import usePrevious from '../customHooks/usePrevious'; import ConnectedViewer from './ConnectedViewer.js'; import PropTypes from 'prop-types'; @@ -128,9 +129,9 @@ const _addSeriesToStudy = (studyMetadata, series) => { const _updateMetaDataManager = (study, studyMetadata, series) => { updateMetaDataManager(study, series); - const { studyInstanceUID } = study; + const { studyInstanceUid } = study; - if (!studyMetadataManager.get(studyInstanceUID)) { + if (!studyMetadataManager.get(studyInstanceUid)) { studyMetadataManager.add(studyMetadata); } }; @@ -314,9 +315,15 @@ function ViewerRetrieveStudyData({ } }; + const prevStudyInstanceUids = usePrevious(studyInstanceUids); + useEffect(() => { - studyMetadataManager.purge(); - purgeCancellablePromises(); + const hasStudyInstanceUidsChanged = !(prevStudyInstanceUids && prevStudyInstanceUids.every(e => studyInstanceUids.includes(e))); + + if (hasStudyInstanceUidsChanged) { + studyMetadataManager.purge(); + purgeCancellablePromises(); + } }, [studyInstanceUids]); useEffect(() => {