Compare commits

..
Author SHA1 Message Date
ohif-bot 460fdeb534 chore(release): publish [skip ci]
- @ohif/extension-dicom-segmentation@0.7.4
 - @ohif/viewer@4.12.5
2021-10-27 13:10:24 +00:00
Igor Octaviano f4b7091ae4 Merge pull request #2596 from OHIF/fix/ohif-2590
Re #2590: Fix segments visibility handler
2021-10-27 10:06:35 -03:00
Davide Punzo 1e72684455 Re #2590: Fix segments visibility handler 2021-10-26 13:00:01 +02:00
7 changed files with 74 additions and 21 deletions

No files matched your search

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.7.4](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.3...@ohif/extension-dicom-segmentation@0.7.4) (2021-10-27)
**Note:** Version bump only for package @ohif/extension-dicom-segmentation
## [0.7.3](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.2...@ohif/extension-dicom-segmentation@0.7.3) (2021-10-26)
**Note:** Version bump only for package @ohif/extension-dicom-segmentation
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/extension-dicom-segmentation",
"version": "0.7.3",
"version": "0.7.4",
"description": "OHIF extension for viewing segmentations in the 2D MPR view",
"author": "OHIF",
"license": "MIT",
@@ -24,6 +24,7 @@ const SegmentItem = ({
onClick,
itemClass,
color,
labelmap3D,
visible,
onVisibilityChange,
}) => {
@@ -39,7 +40,7 @@ const SegmentItem = ({
event.stopPropagation();
const newVisibility = !isVisible;
setIsVisible(newVisibility);
onVisibilityChange(newVisibility, index);
onVisibilityChange(newVisibility, index, labelmap3D);
};
return (
@@ -431,23 +431,43 @@ const SegmentationPanel = ({
return enabledElements[activeIndex].element;
};
const onSegmentVisibilityChangeHandler = (isVisible, segmentNumber) => {
/** Get all labelmaps with this segmentNumber (overlapping segments) */
const { labelmaps3D } = getBrushStackState();
const possibleLabelMaps3D = labelmaps3D.filter(({ labelmaps2D }) => {
return labelmaps2D.some(({ segmentsOnLabelmap }) =>
segmentsOnLabelmap.includes(segmentNumber)
);
});
const onSegmentVisibilityChangeHandler = (
isVisible,
segmentNumber,
labelmap3D
) => {
let segmentsHidden = [];
possibleLabelMaps3D.forEach(labelmap3D => {
labelmap3D.segmentsHidden[segmentNumber] = !isVisible;
if (labelmap3D.metadata.hasOverlapping) {
/** Get all labelmaps with this segmentNumber and that
* are from the same series (overlapping segments) */
const { labelmaps3D } = getBrushStackState();
segmentsHidden = [
...new Set([...segmentsHidden, ...labelmap3D.segmentsHidden]),
];
});
const sameSeriesLabelMaps3D = labelmaps3D.filter(({ metadata }) => {
return (
labelmap3D.metadata.segmentationSeriesInstanceUID ===
metadata.segmentationSeriesInstanceUID
);
});
const possibleLabelMaps3D = sameSeriesLabelMaps3D.filter(
({ labelmaps2D }) => {
return labelmaps2D.some(({ segmentsOnLabelmap }) =>
segmentsOnLabelmap.includes(segmentNumber)
);
}
);
possibleLabelMaps3D.forEach(labelmap3D => {
labelmap3D.segmentsHidden[segmentNumber] = !isVisible;
segmentsHidden = [
...new Set([...segmentsHidden, ...labelmap3D.segmentsHidden]),
];
});
} else {
labelmap3D.segmentsHidden[segmentNumber] = !isVisible;
segmentsHidden = [...labelmap3D.segmentsHidden];
}
setState(state => ({ ...state, segmentsHidden }));
@@ -514,6 +534,7 @@ const SegmentationPanel = ({
label={segmentLabel}
index={segmentNumber}
color={color}
labelmap3D={labelmap3D}
visible={!labelmap3D.segmentsHidden[segmentIndex]}
onVisibilityChange={onSegmentVisibilityChangeHandler}
/>
@@ -64,8 +64,17 @@ export default function getSopClassHandlerModule({ servicesManager }) {
metadata,
};
segDisplaySet.getSourceDisplaySet = function(studies, activateLabelMap = true, onDisplaySetLoadFailureHandler) {
return getSourceDisplaySet(studies, segDisplaySet, activateLabelMap, onDisplaySetLoadFailureHandler);
segDisplaySet.getSourceDisplaySet = function(
studies,
activateLabelMap = true,
onDisplaySetLoadFailureHandler
) {
return getSourceDisplaySet(
studies,
segDisplaySet,
activateLabelMap,
onDisplaySetLoadFailureHandler
);
};
segDisplaySet.load = async function(referencedDisplaySet, studies) {
@@ -98,6 +107,9 @@ export default function getSopClassHandlerModule({ servicesManager }) {
if (labelmapBufferArray.length > 1) {
let labelmapIndexes = [];
for (let i = 0; i < labelmapBufferArray.length; ++i) {
segMetadata.segmentationSeriesInstanceUID =
segDisplaySet.SeriesInstanceUID;
segMetadata.hasOverlapping = true;
labelmapIndexes.push(
await loadSegmentation(
imageIds,
@@ -118,6 +130,9 @@ export default function getSopClassHandlerModule({ servicesManager }) {
labelmapIndex = labelmapIndexes[0];
console.warn('Overlapping segments!');
} else {
segMetadata.segmentationSeriesInstanceUID =
segDisplaySet.SeriesInstanceUID;
segMetadata.hasOverlapping = false;
labelmapIndex = await loadSegmentation(
imageIds,
segDisplaySet,
+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [4.12.5](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.4...@ohif/viewer@4.12.5) (2021-10-27)
**Note:** Version bump only for package @ohif/viewer
## [4.12.4](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.3...@ohif/viewer@4.12.4) (2021-10-26)
**Note:** Version bump only for package @ohif/viewer
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/viewer",
"version": "4.12.4",
"version": "4.12.5",
"description": "OHIF Viewer",
"author": "OHIF Contributors",
"license": "MIT",
@@ -54,7 +54,7 @@
"@ohif/extension-dicom-microscopy": "^0.52.0",
"@ohif/extension-dicom-pdf": "^1.1.0",
"@ohif/extension-dicom-rt": "^0.7.3",
"@ohif/extension-dicom-segmentation": "^0.7.3",
"@ohif/extension-dicom-segmentation": "^0.7.4",
"@ohif/extension-lesion-tracker": "^0.2.1",
"@ohif/extension-vtk": "^1.12.5",
"@ohif/i18n": "^0.53.0",