diff --git a/extensions/dicom-rt/src/components/RTPanel/RTPanel.js b/extensions/dicom-rt/src/components/RTPanel/RTPanel.js
index 94e80b177..e6399bb02 100644
--- a/extensions/dicom-rt/src/components/RTPanel/RTPanel.js
+++ b/extensions/dicom-rt/src/components/RTPanel/RTPanel.js
@@ -190,7 +190,7 @@ const RTPanel = ({ studies, viewports, activeIndex, isOpen, onContourItemClick }
/>
{!state.referencedDisplaysets.length && }
- {state.referencedDisplaysets.map(displaySet => {
+ {state.sets && state.referencedDisplaysets.map(displaySet => {
const { SeriesInstanceUID, metadata, isLoaded } = displaySet;
const module = cornerstoneTools.getModule('rtstruct');
@@ -205,9 +205,14 @@ const RTPanel = ({ studies, viewports, activeIndex, isOpen, onContourItemClick }
visible={isLoaded && loadedSet.visible}
hideVisibleButton={!isLoaded}
expanded={isLoaded && loadedSet.SeriesInstanceUID === state.selectedSet.SeriesInstanceUID}
- onVisibilityChange={() => {
+ onVisibilityChange={newVisibility => {
const module = cornerstoneTools.getModule('rtstruct');
- module.setters.toggleStructureSet(SeriesInstanceUID);
+ loadedSet.ROIContours.forEach(({ ROINumber }) => {
+ module.setters.toggleROIContour(loadedSet.SeriesInstanceUID, ROINumber);
+ });
+ const sets = module.getters.structuresSetsWhichReferenceSeriesInstanceUid(viewports[activeIndex].SeriesInstanceUID);
+ setState(state => ({ ...state, sets }));
+ refreshViewport();
}}
onExpandChange={async () => {
if (!isLoaded) {
diff --git a/extensions/dicom-rt/src/components/StructureSetItem/StructureSetItem.js b/extensions/dicom-rt/src/components/StructureSetItem/StructureSetItem.js
index 1c28cb764..ba3066462 100644
--- a/extensions/dicom-rt/src/components/StructureSetItem/StructureSetItem.js
+++ b/extensions/dicom-rt/src/components/StructureSetItem/StructureSetItem.js
@@ -1,4 +1,4 @@
-import React, { useState } from 'react';
+import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
import { TableListItem, Icon } from '@ohif/ui';
@@ -28,6 +28,11 @@ const StructureSetItem = ({
selected = false,
}) => {
const [isVisible, setIsVisible] = useState(visible);
+
+ useEffect(() => {
+ setIsVisible(visible);
+ }, [visible])
+
return (
{
// find most recent and load it.
let recentDateTime = 0;
- let recentDisplaySet;
+ let recentDisplaySet = displaySets[0];
displaySets.forEach(displaySet => {
const dateTime = Number(
diff --git a/platform/viewer/cypress/integration/common/OHIFStudyList.spec.js b/platform/viewer/cypress/integration/common/OHIFStudyList.spec.js
index 0e40c8688..bdb3092ec 100644
--- a/platform/viewer/cypress/integration/common/OHIFStudyList.spec.js
+++ b/platform/viewer/cypress/integration/common/OHIFStudyList.spec.js
@@ -22,7 +22,7 @@ describe('OHIF Study List', function() {
//Wait result list to be displayed
cy.waitStudyList();
cy.get('@searchResult').should($list => {
- expect($list.length).to.be.eq(2);
+ expect($list.length).to.be.eq(3);
expect($list).to.contain('Juno');
});
});
@@ -127,7 +127,7 @@ describe('OHIF Study List', function() {
//Wait result list to be displayed
cy.waitStudyList();
cy.get('@searchResult').should($list => {
- expect($list.length).to.be.eq(2);
+ expect($list.length).to.be.eq(3);
expect($list).to.contain('Juno');
});
});
@@ -137,7 +137,7 @@ describe('OHIF Study List', function() {
//Wait result list to be displayed
cy.waitStudyList();
cy.get('@searchResult').should($list => {
- expect($list.length).to.be.eq(2);
+ expect($list.length).to.be.eq(6);
expect($list).to.contain('ProstateX-0000');
});
});