Fix caching issues with related studies. (#1970)

This commit is contained in:
James Petts 2020-08-06 16:25:42 +01:00 committed by GitHub
parent fe52037fc2
commit 58c2c00663
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 21 deletions

View File

@ -187,7 +187,6 @@ PanelStudyBrowser.propTypes = {
EVENTS: PropTypes.object.isRequired, EVENTS: PropTypes.object.isRequired,
activeDisplaySets: PropTypes.arrayOf(PropTypes.object).isRequired, activeDisplaySets: PropTypes.arrayOf(PropTypes.object).isRequired,
getDisplaySetByUID: PropTypes.func.isRequired, getDisplaySetByUID: PropTypes.func.isRequired,
hasDisplaySetsForStudy: PropTypes.func.isRequired,
subscribe: PropTypes.func.isRequired, subscribe: PropTypes.func.isRequired,
}).isRequired, }).isRequired,
dataSource: PropTypes.shape({ dataSource: PropTypes.shape({

View File

@ -4,7 +4,11 @@ function requestDisplaySetCreationForStudy(
StudyInstanceUID StudyInstanceUID
) { ) {
// TODO: is this already short-circuited by the map of Retrieve promises? // TODO: is this already short-circuited by the map of Retrieve promises?
if (DisplaySetService.hasDisplaySetsForStudy(StudyInstanceUID)) { if (
DisplaySetService.activeDisplaySets.some(
displaySet => displaySet.StudyInstanceUID === StudyInstanceUID
)
) {
return; return;
} }

View File

@ -227,10 +227,10 @@ function PanelStudyBrowserTracking({
); );
const updatedExpandedStudyInstanceUIDs = shouldCollapseStudy const updatedExpandedStudyInstanceUIDs = shouldCollapseStudy
? [ ? [
...expandedStudyInstanceUIDs.filter( ...expandedStudyInstanceUIDs.filter(
stdyUid => stdyUid !== StudyInstanceUID stdyUid => stdyUid !== StudyInstanceUID
), ),
] ]
: [...expandedStudyInstanceUIDs, StudyInstanceUID]; : [...expandedStudyInstanceUIDs, StudyInstanceUID];
setExpandedStudyInstanceUIDs(updatedExpandedStudyInstanceUIDs); setExpandedStudyInstanceUIDs(updatedExpandedStudyInstanceUIDs);
@ -304,7 +304,7 @@ function PanelStudyBrowserTracking({
SeriesInstanceUID: displaySet.SeriesInstanceUID, SeriesInstanceUID: displaySet.SeriesInstanceUID,
}); });
}} }}
onClickThumbnail={() => { }} onClickThumbnail={() => {}}
onDoubleClickThumbnail={onDoubleClickThumbnailHandler} onDoubleClickThumbnail={onDoubleClickThumbnailHandler}
activeDisplaySetInstanceUID={activeDisplaySetInstanceUID} activeDisplaySetInstanceUID={activeDisplaySetInstanceUID}
/> />
@ -320,7 +320,6 @@ PanelStudyBrowserTracking.propTypes = {
EVENTS: PropTypes.object.isRequired, EVENTS: PropTypes.object.isRequired,
activeDisplaySets: PropTypes.arrayOf(PropTypes.object).isRequired, activeDisplaySets: PropTypes.arrayOf(PropTypes.object).isRequired,
getDisplaySetByUID: PropTypes.func.isRequired, getDisplaySetByUID: PropTypes.func.isRequired,
hasDisplaySetsForStudy: PropTypes.func.isRequired,
subscribe: PropTypes.func.isRequired, subscribe: PropTypes.func.isRequired,
}).isRequired, }).isRequired,
dataSource: PropTypes.shape({ dataSource: PropTypes.shape({
@ -370,11 +369,11 @@ function _mapDisplaySets(
const viewportIdentificator = isSingleViewport const viewportIdentificator = isSingleViewport
? [] ? []
: viewports.reduce((acc, viewportData, index) => { : viewports.reduce((acc, viewportData, index) => {
if (viewportData.displaySetInstanceUID === ds.displaySetInstanceUID) { if (viewportData.displaySetInstanceUID === ds.displaySetInstanceUID) {
acc.push(_viewportLabels[index]); acc.push(_viewportLabels[index]);
} }
return acc; return acc;
}, []); }, []);
const array = const array =
componentType === 'thumbnailTracked' componentType === 'thumbnailTracked'

View File

@ -3,8 +3,11 @@ function requestDisplaySetCreationForStudy(
DisplaySetService, DisplaySetService,
StudyInstanceUID StudyInstanceUID
) { ) {
// TODO: is this already short-circuited by the map of Retrieve promises? if (
if (DisplaySetService.hasDisplaySetsForStudy(StudyInstanceUID)) { DisplaySetService.activeDisplaySets.some(
displaySet => displaySet.StudyInstanceUID === StudyInstanceUID
)
) {
return; return;
} }

View File

@ -125,12 +125,6 @@ export default class DisplaySetService {
} }
}; };
hasDisplaySetsForStudy(StudyInstanceUID) {
return displaySetCache.some(
displaySet => displaySet.StudyInstanceUID === StudyInstanceUID
);
}
makeDisplaySetForInstances(instances) { makeDisplaySetForInstances(instances) {
const instance = instances[0]; const instance = instances[0];