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(() => {