@cornerstonejs/tools 2.0.0-beta.21 → 2.0.0-beta.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/cursors/elementCursor.d.ts +1 -1
- package/dist/esm/cursors/elementCursor.js +1 -1
- package/dist/esm/drawingSvg/getSvgDrawingHelper.js +1 -1
- package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js +2 -2
- package/dist/esm/eventDispatchers/keyboardEventHandlers/keyUp.js +2 -2
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +1 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownActivate.js +1 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +1 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDrag.js +1 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseMove.js +1 -1
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseWheel.js +1 -1
- package/dist/esm/eventDispatchers/shared/customCallbackHandler.js +3 -2
- package/dist/esm/eventDispatchers/shared/getActiveToolForKeyboardEvent.js +2 -2
- package/dist/esm/eventDispatchers/shared/getActiveToolForMouseEvent.js +2 -2
- package/dist/esm/eventDispatchers/shared/getActiveToolForTouchEvent.js +3 -3
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.js +2 -2
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +2 -2
- package/dist/esm/eventDispatchers/shared/getToolsWithModesForMouseEvent.js +2 -2
- package/dist/esm/eventDispatchers/shared/getToolsWithModesForTouchEvent.js +2 -2
- package/dist/esm/eventDispatchers/touchEventHandlers/touchDrag.js +1 -1
- package/dist/esm/eventDispatchers/touchEventHandlers/touchStart.js +1 -1
- package/dist/esm/eventDispatchers/touchEventHandlers/touchStartActivate.js +1 -1
- package/dist/esm/eventListeners/annotations/annotationSelectionListener.js +1 -1
- package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +21 -20
- package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +8 -6
- package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +1 -1
- package/dist/esm/eventListeners/segmentation/segmentationModifiedEventListener.js +1 -1
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js +1 -1
- package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js +1 -1
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +4 -3
- package/dist/esm/init.js +2 -2
- package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +0 -2
- package/dist/esm/stateManagement/annotation/annotationSelection.js +1 -1
- package/dist/esm/stateManagement/annotation/annotationState.d.ts +2 -2
- package/dist/esm/stateManagement/annotation/annotationState.js +4 -6
- package/dist/esm/stateManagement/annotation/annotationVisibility.js +1 -1
- package/dist/esm/stateManagement/annotation/getAnnotation.d.ts +2 -0
- package/dist/esm/stateManagement/annotation/getAnnotation.js +6 -0
- package/dist/esm/stateManagement/index.d.ts +2 -2
- package/dist/esm/stateManagement/index.js +2 -1
- package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.d.ts +3 -1
- package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.js +13 -6
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +17 -1
- package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +46 -4
- package/dist/esm/stateManagement/segmentation/activeSegmentation.js +6 -4
- package/dist/esm/stateManagement/segmentation/addColorLUT.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/addColorLUT.js +5 -0
- package/dist/esm/stateManagement/segmentation/addRepresentationData.js +1 -1
- package/dist/esm/stateManagement/segmentation/addSegmentation.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/addSegmentation.js +11 -0
- package/dist/esm/stateManagement/segmentation/addSegmentationRepresentation.js +29 -8
- package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.js +10 -0
- package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +8 -6
- package/dist/esm/stateManagement/segmentation/config/segmentationConfig.js +14 -9
- package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +8 -5
- package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts +0 -8
- package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.js +3 -33
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationDataModified.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationDataModified.js +11 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.js +18 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRemoved.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRemoved.js +8 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.js +8 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.js +8 -0
- package/dist/esm/stateManagement/segmentation/getActiveSegmentIndex.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/getActiveSegmentIndex.js +7 -0
- package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.js +5 -0
- package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.js +6 -0
- package/dist/esm/stateManagement/segmentation/getColorLUT.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getColorLUT.js +5 -0
- package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.js +5 -0
- package/dist/esm/stateManagement/segmentation/getGlobalConfig.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getGlobalConfig.js +5 -0
- package/dist/esm/stateManagement/segmentation/getNextColorLUTIndex.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/getNextColorLUTIndex.js +5 -0
- package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.js +5 -0
- package/dist/esm/stateManagement/segmentation/getSegmentation.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getSegmentation.js +5 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.js +5 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.js +5 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.d.ts +7 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.js +6 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.js +5 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.js +12 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.js +5 -0
- package/dist/esm/stateManagement/segmentation/getSegmentations.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/getSegmentations.js +6 -0
- package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.js +10 -0
- package/dist/esm/stateManagement/segmentation/helpers/clipAndCacheSurfacesForViewport.js +1 -1
- package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.d.ts +8 -0
- package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.js +31 -0
- package/dist/esm/stateManagement/segmentation/index.d.ts +1 -1
- package/dist/esm/stateManagement/segmentation/index.js +1 -1
- package/dist/esm/stateManagement/segmentation/polySeg/Contour/contourComputationStrategies.js +3 -2
- package/dist/esm/stateManagement/segmentation/polySeg/Contour/utils/createAndAddContourSegmentationsFromClippedSurfaces.js +1 -1
- package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js +1 -1
- package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js +3 -3
- package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.js +2 -3
- package/dist/esm/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js +2 -1
- package/dist/esm/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js +2 -2
- package/dist/esm/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js +2 -3
- package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js +3 -2
- package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js +1 -1
- package/dist/esm/stateManagement/segmentation/removeColorLUT.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/removeColorLUT.js +5 -0
- package/dist/esm/stateManagement/segmentation/removeRepresentation.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/removeRepresentation.js +9 -0
- package/dist/esm/stateManagement/segmentation/removeSegmentation.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/removeSegmentation.js +7 -0
- package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.js +2 -2
- package/dist/esm/stateManagement/segmentation/segmentIndex.d.ts +2 -2
- package/dist/esm/stateManagement/segmentation/segmentIndex.js +5 -9
- package/dist/esm/stateManagement/segmentation/segmentLocking.js +1 -1
- package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +29 -38
- package/dist/esm/stateManagement/segmentation/segmentationState.js +29 -157
- package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.js +9 -0
- package/dist/esm/stateManagement/segmentation/setGlobalConfig.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/setGlobalConfig.js +9 -0
- package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.js +9 -0
- package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.d.ts +2 -0
- package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.js +9 -0
- package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.js +5 -0
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +5 -5
- package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +5 -45
- package/dist/esm/stateManagement/segmentation/updateLabelmapSegmentationImageReferences.d.ts +1 -0
- package/dist/esm/stateManagement/segmentation/updateLabelmapSegmentationImageReferences.js +5 -0
- package/dist/esm/store/SynchronizerManager/createSynchronizer.js +1 -1
- package/dist/esm/store/SynchronizerManager/destroy.js +1 -1
- package/dist/esm/store/SynchronizerManager/destroySynchronizer.js +1 -1
- package/dist/esm/store/SynchronizerManager/getAllSynchronizers.js +1 -1
- package/dist/esm/store/SynchronizerManager/getSynchronizer.js +1 -1
- package/dist/esm/store/SynchronizerManager/getSynchronizersForViewport.js +1 -1
- package/dist/esm/store/ToolGroupManager/ToolGroup.js +7 -6
- package/dist/esm/store/ToolGroupManager/createToolGroup.js +1 -1
- package/dist/esm/store/ToolGroupManager/destroy.js +3 -3
- package/dist/esm/store/ToolGroupManager/destroyToolGroup.js +1 -2
- package/dist/esm/store/ToolGroupManager/getAllToolGroups.js +1 -1
- package/dist/esm/store/ToolGroupManager/getToolGroup.js +1 -1
- package/dist/esm/store/ToolGroupManager/getToolGroupForViewport.js +1 -1
- package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +1 -1
- package/dist/esm/store/addTool.d.ts +1 -0
- package/dist/esm/store/addTool.js +3 -0
- package/dist/esm/store/index.d.ts +1 -2
- package/dist/esm/store/index.js +1 -2
- package/dist/esm/tools/AdvancedMagnifyTool.d.ts +93 -2
- package/dist/esm/tools/AdvancedMagnifyTool.js +506 -4
- package/dist/esm/tools/AnnotationEraserTool.js +2 -2
- package/dist/esm/tools/CrosshairsTool.js +1 -1
- package/dist/esm/tools/MagnifyTool.js +1 -1
- package/dist/esm/tools/SculptorTool.js +3 -3
- package/dist/esm/tools/WindowLevelRegionTool.js +1 -1
- package/dist/esm/tools/annotation/AngleTool.js +4 -3
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js +1 -1
- package/dist/esm/tools/annotation/BidirectionalTool.js +7 -8
- package/dist/esm/tools/annotation/CircleROITool.js +15 -16
- package/dist/esm/tools/annotation/CobbAngleTool.js +1 -1
- package/dist/esm/tools/annotation/DragProbeTool.js +2 -2
- package/dist/esm/tools/annotation/EllipticalROITool.js +12 -13
- package/dist/esm/tools/annotation/HeightTool.js +5 -6
- package/dist/esm/tools/annotation/KeyImageTool.js +1 -1
- package/dist/esm/tools/annotation/LengthTool.js +5 -6
- package/dist/esm/tools/annotation/LivewireContourTool.js +3 -2
- package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +1 -2
- package/dist/esm/tools/annotation/PlanarFreehandROITool.d.ts +4 -4
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +20 -20
- package/dist/esm/tools/annotation/ProbeTool.js +9 -10
- package/dist/esm/tools/annotation/RectangleROITool.js +12 -13
- package/dist/esm/tools/annotation/SplineROITool.js +12 -9
- package/dist/esm/tools/annotation/UltrasoundDirectionalTool.js +6 -7
- package/dist/esm/tools/annotation/VideoRedactionTool.js +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js +2 -2
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js +1 -1
- package/dist/esm/tools/base/ContourBaseTool.js +2 -2
- package/dist/esm/tools/base/ContourSegmentationBaseTool.js +24 -15
- package/dist/esm/tools/displayTools/Contour/contourDisplay.js +9 -8
- package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.js +3 -3
- package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +2 -1
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.d.ts +1 -8
- package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +19 -25
- package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +10 -7
- package/dist/esm/tools/index.d.ts +1 -3
- package/dist/esm/tools/index.js +1 -3
- package/dist/esm/tools/segmentation/BrushTool.js +10 -8
- package/dist/esm/tools/segmentation/CircleROIStartEndThresholdTool.js +8 -9
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +11 -13
- package/dist/esm/tools/segmentation/SegmentSelectTool.js +1 -1
- package/dist/esm/tools/segmentation/strategies/compositions/preview.js +4 -4
- package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +2 -2
- package/dist/esm/utilities/annotationHydration.js +1 -1
- package/dist/esm/utilities/contourSegmentation/addContourSegmentationAnnotation.js +1 -1
- package/dist/esm/utilities/contourSegmentation/removeContourSegmentationAnnotation.js +2 -2
- package/dist/esm/utilities/contours/generateContourSetsFromLabelmap.js +1 -1
- package/dist/esm/utilities/contours/getContourHolesDataWorld.js +1 -1
- package/dist/esm/utilities/contours/index.d.ts +1 -2
- package/dist/esm/utilities/contours/index.js +1 -2
- package/dist/esm/utilities/contours/updateContourPolyline.js +1 -1
- package/dist/esm/utilities/getCalibratedUnits.d.ts +2 -2
- package/dist/esm/utilities/getCalibratedUnits.js +13 -13
- package/dist/esm/utilities/getToolsWithModesForElement.js +2 -2
- package/dist/esm/utilities/index.d.ts +1 -2
- package/dist/esm/utilities/index.js +1 -2
- package/dist/esm/utilities/math/line/distanceToPointSquaredInfo.js +3 -3
- package/dist/esm/utilities/math/polyline/isClosed.js +2 -2
- package/dist/esm/utilities/planarFreehandROITool/smoothAnnotation.js +3 -3
- package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js +1 -1
- package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.js +1 -1
- package/dist/esm/utilities/segmentation/getBrushToolInstances.d.ts +1 -0
- package/dist/esm/utilities/segmentation/getBrushToolInstances.js +17 -0
- package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.d.ts +0 -2
- package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.js +3 -22
- package/dist/esm/utilities/segmentation/index.d.ts +2 -2
- package/dist/esm/utilities/segmentation/index.js +2 -2
- package/dist/esm/utilities/segmentation/invalidateBrushCursor.js +1 -4
- package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +2 -1
- package/dist/esm/utilities/segmentation/segmentContourAction.js +5 -5
- package/dist/esm/utilities/segmentation/utilities.d.ts +4 -1
- package/dist/esm/utilities/segmentation/utilities.js +23 -17
- package/dist/esm/utilities/viewportFilters/filterViewportsWithToolEnabled.js +2 -2
- package/dist/umd/985.index.js.map +1 -1
- package/dist/umd/index.js +2 -1
- package/dist/umd/index.js.LICENSE.txt +6 -0
- package/dist/umd/index.js.map +1 -1
- package/package.json +5 -4
- package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts +0 -17
- package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.js +0 -50
- package/dist/esm/stateManagement/segmentation/helpers/getSegmentationRepresentationRenderingConfig.d.ts +0 -2
- package/dist/esm/stateManagement/segmentation/helpers/getSegmentationRepresentationRenderingConfig.js +0 -11
- package/dist/esm/tools/AdvancedMagnifyViewport.d.ts +0 -76
- package/dist/esm/tools/AdvancedMagnifyViewport.js +0 -351
- package/dist/esm/tools/AdvancedMagnifyViewportManager.d.ts +0 -38
- package/dist/esm/tools/AdvancedMagnifyViewportManager.js +0 -161
- package/dist/esm/tools/StackScrollToolMouseWheelTool.d.ts +0 -16
- package/dist/esm/tools/StackScrollToolMouseWheelTool.js +0 -33
- package/dist/esm/utilities/contours/interpolation/index.d.ts +0 -2
- package/dist/esm/utilities/contours/interpolation/index.js +0 -2
- package/dist/esm/utilities/segmentation/triggerSegmentationRender.d.ts +0 -3
- package/dist/esm/utilities/segmentation/triggerSegmentationRender.js +0 -8
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { defaultFrameOfReferenceSpecificAnnotationManager } from './FrameOfReferenceSpecificAnnotationManager';
|
|
2
|
+
export function getAnnotation(annotationUID) {
|
|
3
|
+
const manager = defaultFrameOfReferenceSpecificAnnotationManager;
|
|
4
|
+
const annotation = manager.getAnnotation(annotationUID);
|
|
5
|
+
return annotation;
|
|
6
|
+
}
|
|
@@ -15,6 +15,6 @@ import { setAnnotationManager } from './annotation/annotationState';
|
|
|
15
15
|
import { getAnnotationManager } from './annotation/annotationState';
|
|
16
16
|
import { resetAnnotationManager } from './annotation/annotationState';
|
|
17
17
|
import { invalidateAnnotation } from './annotation/annotationState';
|
|
18
|
-
import
|
|
19
|
-
import
|
|
18
|
+
import addSegmentationRepresentations from './segmentation/addSegmentationRepresentations';
|
|
19
|
+
import removeSegmentationRepresentations from './segmentation/removeSegmentationRepresentations';
|
|
20
20
|
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, addSegmentationRepresentations, removeSegmentationRepresentations };
|
|
@@ -2,5 +2,6 @@ import FrameOfReferenceSpecificAnnotationManager, { defaultFrameOfReferenceSpeci
|
|
|
2
2
|
import * as annotationLocking from './annotation/annotationLocking';
|
|
3
3
|
import * as annotationSelection from './annotation/annotationSelection';
|
|
4
4
|
import { getAnnotations, addAnnotation, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, getNumberOfAnnotations, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, } from './annotation/annotationState';
|
|
5
|
-
import
|
|
5
|
+
import addSegmentationRepresentations from './segmentation/addSegmentationRepresentations';
|
|
6
|
+
import removeSegmentationRepresentations from './segmentation/removeSegmentationRepresentations';
|
|
6
7
|
export { FrameOfReferenceSpecificAnnotationManager, defaultFrameOfReferenceSpecificAnnotationManager, annotationLocking, annotationSelection, getAnnotations, addAnnotation, getNumberOfAnnotations, removeAnnotation, getAnnotation, getParentAnnotation, getChildAnnotations, clearParentAnnotation, addChildAnnotation, setAnnotationManager, getAnnotationManager, resetAnnotationManager, invalidateAnnotation, addSegmentationRepresentations, removeSegmentationRepresentations, };
|
|
@@ -15,5 +15,7 @@ declare class SegmentationRenderingEngine {
|
|
|
15
15
|
_triggerRender(viewportId?: string): void;
|
|
16
16
|
_addPlanarFreeHandToolIfAbsent(viewport: any): void;
|
|
17
17
|
}
|
|
18
|
+
declare function triggerSegmentationRender(viewportId?: string): void;
|
|
19
|
+
declare function triggerSegmentationRenderBySegmentationId(segmentationId?: string): void;
|
|
18
20
|
declare const segmentationRenderingEngine: SegmentationRenderingEngine;
|
|
19
|
-
export { segmentationRenderingEngine };
|
|
21
|
+
export { triggerSegmentationRender, triggerSegmentationRenderBySegmentationId, segmentationRenderingEngine, };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { triggerEvent, eventTarget, Enums, getRenderingEngines, getEnabledElementByViewportId, } from '@cornerstonejs/core';
|
|
2
2
|
import { SegmentationRepresentations, Events as csToolsEvents, } from '../../enums';
|
|
3
3
|
import Representations from '../../enums/SegmentationRepresentations';
|
|
4
|
-
import { getSegmentationRepresentations } from '
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { addTool
|
|
4
|
+
import { getSegmentationRepresentations } from './getSegmentationRepresentations';
|
|
5
|
+
import surfaceDisplay from '../../tools/displayTools/Surface/surfaceDisplay';
|
|
6
|
+
import contourDisplay from '../../tools/displayTools/Contour/contourDisplay';
|
|
7
|
+
import labelmapDisplay from '../../tools/displayTools/Labelmap/labelmapDisplay';
|
|
8
|
+
import { addTool } from '../../store/addTool';
|
|
9
|
+
import { state } from '../../store/state';
|
|
9
10
|
import PlanarFreehandContourSegmentationTool from '../../tools/annotation/PlanarFreehandContourSegmentationTool';
|
|
10
11
|
import { getToolGroupForViewport } from '../../store/ToolGroupManager';
|
|
11
12
|
const renderers = {
|
|
@@ -129,5 +130,11 @@ class SegmentationRenderingEngine {
|
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
132
|
}
|
|
133
|
+
function triggerSegmentationRender(viewportId) {
|
|
134
|
+
segmentationRenderingEngine.renderSegmentationsForViewport(viewportId);
|
|
135
|
+
}
|
|
136
|
+
function triggerSegmentationRenderBySegmentationId(segmentationId) {
|
|
137
|
+
segmentationRenderingEngine.renderSegmentation(segmentationId);
|
|
138
|
+
}
|
|
132
139
|
const segmentationRenderingEngine = new SegmentationRenderingEngine();
|
|
133
|
-
export { segmentationRenderingEngine };
|
|
140
|
+
export { triggerSegmentationRender, triggerSegmentationRenderBySegmentationId, segmentationRenderingEngine, };
|
|
@@ -38,5 +38,21 @@ export default class SegmentationStateManager {
|
|
|
38
38
|
removeColorLUT(colorLUTIndex: number): void;
|
|
39
39
|
_getStackIdForImageIds(imageIds: string[]): string;
|
|
40
40
|
}
|
|
41
|
+
declare function computeVolumeSegmentationFromStack({ imageIds, options, }: {
|
|
42
|
+
imageIds: string[];
|
|
43
|
+
options?: {
|
|
44
|
+
volumeId?: string;
|
|
45
|
+
};
|
|
46
|
+
}): Promise<{
|
|
47
|
+
volumeId: string;
|
|
48
|
+
}>;
|
|
49
|
+
declare function convertStackToVolumeSegmentation({ segmentationId, options, }: {
|
|
50
|
+
segmentationId: string;
|
|
51
|
+
options?: {
|
|
52
|
+
viewportId: string;
|
|
53
|
+
volumeId?: string;
|
|
54
|
+
removeOriginal?: boolean;
|
|
55
|
+
};
|
|
56
|
+
}): Promise<void>;
|
|
41
57
|
declare const defaultSegmentationStateManager: SegmentationStateManager;
|
|
42
|
-
export { defaultSegmentationStateManager };
|
|
58
|
+
export { convertStackToVolumeSegmentation, computeVolumeSegmentationFromStack, defaultSegmentationStateManager, };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { BaseVolumeViewport, cache, utilities as csUtils, getEnabledElementByViewportId, } from '@cornerstonejs/core';
|
|
2
|
-
import { SegmentationRepresentations } from '../../enums';
|
|
1
|
+
import { BaseVolumeViewport, cache, utilities as csUtils, getEnabledElementByViewportId, volumeLoader, eventTarget, } from '@cornerstonejs/core';
|
|
2
|
+
import { SegmentationRepresentations, Events } from '../../enums';
|
|
3
3
|
import getDefaultContourConfig from '../../tools/displayTools/Contour/contourConfig';
|
|
4
4
|
import getDefaultLabelmapConfig from '../../tools/displayTools/Labelmap/labelmapConfig';
|
|
5
5
|
import getDefaultSurfaceConfig from '../../tools/displayTools/Surface/surfaceConfig';
|
|
6
|
-
import {
|
|
6
|
+
import { triggerSegmentationDataModified } from './events/triggerSegmentationDataModified';
|
|
7
7
|
const newGlobalConfig = {
|
|
8
8
|
renderInactiveRepresentations: true,
|
|
9
9
|
representations: {
|
|
@@ -277,5 +277,47 @@ export default class SegmentationStateManager {
|
|
|
277
277
|
.join('_');
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
|
+
async function computeVolumeSegmentationFromStack({ imageIds, options, }) {
|
|
281
|
+
const segmentationImageIds = imageIds;
|
|
282
|
+
const volumeId = options?.volumeId ?? csUtils.uuidv4();
|
|
283
|
+
await volumeLoader.createAndCacheVolumeFromImages(volumeId, segmentationImageIds);
|
|
284
|
+
return { volumeId };
|
|
285
|
+
}
|
|
286
|
+
async function convertStackToVolumeSegmentation({ segmentationId, options, }) {
|
|
287
|
+
const segmentation = defaultSegmentationStateManager.getSegmentation(segmentationId);
|
|
288
|
+
const data = segmentation.representationData
|
|
289
|
+
.LABELMAP;
|
|
290
|
+
const { volumeId } = await computeVolumeSegmentationFromStack({
|
|
291
|
+
imageIds: data.imageIds,
|
|
292
|
+
options,
|
|
293
|
+
});
|
|
294
|
+
await updateSegmentationState({
|
|
295
|
+
segmentationId,
|
|
296
|
+
viewportId: options.viewportId,
|
|
297
|
+
options,
|
|
298
|
+
volumeId,
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
async function updateSegmentationState({ segmentationId, viewportId, volumeId, options, }) {
|
|
302
|
+
const segmentation = defaultSegmentationStateManager.getSegmentation(segmentationId);
|
|
303
|
+
if (options?.removeOriginal) {
|
|
304
|
+
const data = segmentation.representationData
|
|
305
|
+
.LABELMAP;
|
|
306
|
+
const { imageIds } = data;
|
|
307
|
+
imageIds.forEach((imageId) => {
|
|
308
|
+
cache.removeImageLoadObject(imageId);
|
|
309
|
+
});
|
|
310
|
+
segmentation.representationData.LABELMAP = {
|
|
311
|
+
volumeId,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
segmentation.representationData.LABELMAP = {
|
|
316
|
+
...segmentation.representationData.LABELMAP,
|
|
317
|
+
volumeId,
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
eventTarget.addEventListenerOnce(Events.SEGMENTATION_RENDERED, () => triggerSegmentationDataModified(segmentationId));
|
|
321
|
+
}
|
|
280
322
|
const defaultSegmentationStateManager = new SegmentationStateManager('DEFAULT');
|
|
281
|
-
export { defaultSegmentationStateManager };
|
|
323
|
+
export { convertStackToVolumeSegmentation, computeVolumeSegmentationFromStack, defaultSegmentationStateManager, };
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { getActiveSegmentationRepresentation as _getActiveSegmentationRepresentation } from './getActiveSegmentationRepresentation';
|
|
2
|
+
import { setActiveSegmentationRepresentation as _setActiveSegmentationRepresentation } from './setActiveSegmentationRepresentation';
|
|
3
|
+
import { getSegmentation } from './getSegmentation';
|
|
2
4
|
function getActiveSegmentationRepresentation(viewportId) {
|
|
3
|
-
return
|
|
5
|
+
return _getActiveSegmentationRepresentation(viewportId);
|
|
4
6
|
}
|
|
5
7
|
function getActiveSegmentation(viewportId) {
|
|
6
8
|
const activeRepresentation = getActiveSegmentationRepresentation(viewportId);
|
|
7
9
|
if (!activeRepresentation) {
|
|
8
10
|
return null;
|
|
9
11
|
}
|
|
10
|
-
return
|
|
12
|
+
return getSegmentation(activeRepresentation.segmentationId);
|
|
11
13
|
}
|
|
12
14
|
function setActiveSegmentationRepresentation(viewportId, segmentationRepresentationUID, suppressEvent = false) {
|
|
13
|
-
|
|
15
|
+
_setActiveSegmentationRepresentation(viewportId, segmentationRepresentationUID, suppressEvent);
|
|
14
16
|
}
|
|
15
17
|
export { getActiveSegmentationRepresentation, getActiveSegmentation, setActiveSegmentationRepresentation, };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getSegmentation } from './
|
|
1
|
+
import { getSegmentation } from './getSegmentation';
|
|
2
2
|
import SegmentationRepresentations from '../../enums/SegmentationRepresentations';
|
|
3
3
|
function addRepresentationData({ segmentationId, type, data, }) {
|
|
4
4
|
const segmentation = getSegmentation(segmentationId);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import normalizeSegmentationInput from './helpers/normalizeSegmentationInput';
|
|
2
|
+
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
3
|
+
import { triggerSegmentationModified } from './triggerSegmentationEvents';
|
|
4
|
+
export function addSegmentation(segmentationInput, suppressEvents) {
|
|
5
|
+
const segmentationStateManager = defaultSegmentationStateManager;
|
|
6
|
+
const segmentation = normalizeSegmentationInput(segmentationInput);
|
|
7
|
+
segmentationStateManager.addSegmentation(segmentation);
|
|
8
|
+
if (!suppressEvents) {
|
|
9
|
+
triggerSegmentationModified(segmentation.segmentationId);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,30 +1,51 @@
|
|
|
1
|
+
import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction';
|
|
2
|
+
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
|
|
1
3
|
import { utilities } from '@cornerstonejs/core';
|
|
2
|
-
import * as SegmentationState from './segmentationState';
|
|
3
|
-
import { getSegmentationRepresentationRenderingConfig } from './helpers/getSegmentationRepresentationRenderingConfig';
|
|
4
4
|
import CORNERSTONE_COLOR_LUT from '../../constants/COLOR_LUT';
|
|
5
|
-
import { triggerAnnotationRenderForViewportIds } from '../../utilities';
|
|
5
|
+
import { triggerAnnotationRenderForViewportIds } from '../../utilities/triggerAnnotationRenderForViewportIds';
|
|
6
6
|
import { SegmentationRepresentations } from '../../enums';
|
|
7
7
|
import { triggerSegmentationModified } from './triggerSegmentationEvents';
|
|
8
|
+
import { addColorLUT } from './addColorLUT';
|
|
9
|
+
import { getNextColorLUTIndex } from './getNextColorLUTIndex';
|
|
10
|
+
import { setSegmentationRepresentationConfig } from './setSegmentationRepresentationConfig';
|
|
11
|
+
import { addSegmentationRepresentationState } from './addSegmentationRepresentationState';
|
|
12
|
+
function getLabelmapSegmentationRepresentationRenderingConfig() {
|
|
13
|
+
const cfun = vtkColorTransferFunction.newInstance();
|
|
14
|
+
const ofun = vtkPiecewiseFunction.newInstance();
|
|
15
|
+
ofun.addPoint(0, 0);
|
|
16
|
+
return {
|
|
17
|
+
ofun,
|
|
18
|
+
cfun,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
8
21
|
async function addSegmentationRepresentation(viewportId, representationInput, initialConfig) {
|
|
9
22
|
const { segmentationId, options = {} } = representationInput;
|
|
10
23
|
const segmentationRepresentationUID = representationInput.options?.segmentationRepresentationUID ||
|
|
11
24
|
utilities.uuidv4();
|
|
12
25
|
const colorLUTIndexToUse = getColorLUTIndex(options);
|
|
26
|
+
const { type } = representationInput;
|
|
27
|
+
let renderingConfig;
|
|
28
|
+
if (type === SegmentationRepresentations.Labelmap) {
|
|
29
|
+
renderingConfig = getLabelmapSegmentationRepresentationRenderingConfig();
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
renderingConfig = {};
|
|
33
|
+
}
|
|
13
34
|
const representation = {
|
|
14
35
|
segmentationId,
|
|
15
36
|
segmentationRepresentationUID,
|
|
16
37
|
type: representationInput.type,
|
|
17
38
|
colorLUTIndex: colorLUTIndexToUse,
|
|
18
|
-
rendering:
|
|
39
|
+
rendering: renderingConfig,
|
|
19
40
|
polySeg: options.polySeg,
|
|
20
41
|
config: {
|
|
21
42
|
allSegments: {},
|
|
22
43
|
perSegment: {},
|
|
23
44
|
},
|
|
24
45
|
};
|
|
25
|
-
|
|
46
|
+
addSegmentationRepresentationState(viewportId, representation);
|
|
26
47
|
if (initialConfig) {
|
|
27
|
-
|
|
48
|
+
setSegmentationRepresentationConfig(segmentationRepresentationUID, initialConfig.representations);
|
|
28
49
|
}
|
|
29
50
|
if (representationInput.type === SegmentationRepresentations.Contour) {
|
|
30
51
|
triggerAnnotationRenderForViewportIds([viewportId]);
|
|
@@ -39,11 +60,11 @@ function getColorLUTIndex(options = {}) {
|
|
|
39
60
|
colorLUTIndexToUse = colorLUTOrIndexInput;
|
|
40
61
|
}
|
|
41
62
|
else {
|
|
42
|
-
const nextIndex =
|
|
63
|
+
const nextIndex = getNextColorLUTIndex();
|
|
43
64
|
const colorLUTToAdd = Array.isArray(colorLUTOrIndexInput)
|
|
44
65
|
? colorLUTOrIndexInput
|
|
45
66
|
: CORNERSTONE_COLOR_LUT;
|
|
46
|
-
|
|
67
|
+
addColorLUT(colorLUTToAdd, nextIndex);
|
|
47
68
|
colorLUTIndexToUse = nextIndex;
|
|
48
69
|
}
|
|
49
70
|
return colorLUTIndexToUse;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
2
|
+
import { triggerSegmentationRepresentationModified } from './triggerSegmentationEvents';
|
|
3
|
+
export function addSegmentationRepresentationState(viewportId, segmentationRepresentation, suppressEvents) {
|
|
4
|
+
const segmentationStateManager = defaultSegmentationStateManager;
|
|
5
|
+
segmentationStateManager.addSegmentationRepresentationState(segmentationRepresentation);
|
|
6
|
+
segmentationStateManager.addSegmentationRepresentationToViewport(viewportId, segmentationRepresentation.segmentationRepresentationUID);
|
|
7
|
+
if (!suppressEvents) {
|
|
8
|
+
triggerSegmentationRepresentationModified(segmentationRepresentation.segmentationRepresentationUID);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { utilities } from '@cornerstonejs/core';
|
|
2
|
-
import * as SegmentationState from '../../../stateManagement/segmentation/segmentationState';
|
|
3
2
|
import { triggerSegmentationRepresentationModified } from '../triggerSegmentationEvents';
|
|
3
|
+
import { addColorLUT as _addColorLUT } from '../addColorLUT';
|
|
4
|
+
import { getColorLUT as _getColorLUT } from '../getColorLUT';
|
|
5
|
+
import { getSegmentationRepresentation } from '../getSegmentationRepresentation';
|
|
4
6
|
function addColorLUT(colorLUT, colorLUTIndex) {
|
|
5
7
|
if (!colorLUT) {
|
|
6
8
|
throw new Error('addColorLUT: colorLUT is required');
|
|
@@ -9,26 +11,26 @@ function addColorLUT(colorLUT, colorLUTIndex) {
|
|
|
9
11
|
console.warn('addColorLUT: [0, 0, 0, 0] color is not provided for the background color (segmentIndex =0), automatically adding it');
|
|
10
12
|
colorLUT.unshift([0, 0, 0, 0]);
|
|
11
13
|
}
|
|
12
|
-
|
|
14
|
+
_addColorLUT(colorLUT, colorLUTIndex);
|
|
13
15
|
}
|
|
14
16
|
function setColorLUT(segmentationRepresentationUID, colorLUTIndex) {
|
|
15
|
-
const segRepresentation =
|
|
17
|
+
const segRepresentation = getSegmentationRepresentation(segmentationRepresentationUID);
|
|
16
18
|
if (!segRepresentation) {
|
|
17
19
|
throw new Error(`setColorLUT: could not find segmentation representation with UID ${segmentationRepresentationUID}`);
|
|
18
20
|
}
|
|
19
|
-
if (!
|
|
21
|
+
if (!_getColorLUT(colorLUTIndex)) {
|
|
20
22
|
throw new Error(`setColorLUT: could not find colorLUT with index ${colorLUTIndex}`);
|
|
21
23
|
}
|
|
22
24
|
segRepresentation.colorLUTIndex = colorLUTIndex;
|
|
23
25
|
triggerSegmentationRepresentationModified(segmentationRepresentationUID);
|
|
24
26
|
}
|
|
25
27
|
function getSegmentIndexColor(segmentationRepresentationUID, segmentIndex) {
|
|
26
|
-
const segmentationRepresentation =
|
|
28
|
+
const segmentationRepresentation = getSegmentationRepresentation(segmentationRepresentationUID);
|
|
27
29
|
if (!segmentationRepresentation) {
|
|
28
30
|
throw new Error(`segmentation representation with UID ${segmentationRepresentationUID} does not exist`);
|
|
29
31
|
}
|
|
30
32
|
const { colorLUTIndex } = segmentationRepresentation;
|
|
31
|
-
const colorLUT =
|
|
33
|
+
const colorLUT = _getColorLUT(colorLUTIndex);
|
|
32
34
|
let colorValue = colorLUT[segmentIndex];
|
|
33
35
|
if (!colorValue) {
|
|
34
36
|
if (typeof segmentIndex !== 'number') {
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import * as SegmentationState from '../../../stateManagement/segmentation/segmentationState';
|
|
2
1
|
import { triggerSegmentationRepresentationModified } from '../triggerSegmentationEvents';
|
|
2
|
+
import { getGlobalConfig as _getGlobalConfig } from '../getGlobalConfig';
|
|
3
|
+
import { setGlobalConfig as _setGlobalConfig } from '../setGlobalConfig';
|
|
4
|
+
import { getSegmentationRepresentationConfig as _getSegmentationRepresentationConfig } from '../getSegmentationRepresentationConfig';
|
|
5
|
+
import { setSegmentationRepresentationConfig as _setSegmentationRepresentationConfig } from '../setSegmentationRepresentationConfig';
|
|
6
|
+
import { setPerSegmentConfig as _setPerSegmentConfig } from '../setPerSegmentConfig';
|
|
7
|
+
import { getPerSegmentConfig as _getPerSegmentConfig } from '../getPerSegmentConfig';
|
|
3
8
|
function getGlobalConfig() {
|
|
4
|
-
return
|
|
9
|
+
return _getGlobalConfig();
|
|
5
10
|
}
|
|
6
11
|
function setGlobalConfig(segmentationConfig) {
|
|
7
|
-
|
|
12
|
+
_setGlobalConfig(segmentationConfig);
|
|
8
13
|
}
|
|
9
14
|
function getGlobalRepresentationConfig(representationType) {
|
|
10
15
|
const globalConfig = getGlobalConfig();
|
|
@@ -24,26 +29,26 @@ function setGlobalRepresentationConfig(representationType, config) {
|
|
|
24
29
|
});
|
|
25
30
|
}
|
|
26
31
|
function getSegmentationRepresentationConfig(segmentationRepresentationUID) {
|
|
27
|
-
return
|
|
32
|
+
return _getSegmentationRepresentationConfig(segmentationRepresentationUID);
|
|
28
33
|
}
|
|
29
34
|
function setSegmentationRepresentationConfig(segmentationRepresentationUID, config) {
|
|
30
|
-
|
|
35
|
+
_setSegmentationRepresentationConfig(segmentationRepresentationUID, config);
|
|
31
36
|
}
|
|
32
37
|
function setPerSegmentConfig(segmentationRepresentationUID, config) {
|
|
33
|
-
|
|
38
|
+
_setPerSegmentConfig(segmentationRepresentationUID, config);
|
|
34
39
|
}
|
|
35
40
|
function getPerSegmentConfig(segmentationRepresentationUID) {
|
|
36
|
-
return
|
|
41
|
+
return _getPerSegmentConfig(segmentationRepresentationUID);
|
|
37
42
|
}
|
|
38
43
|
function setSegmentIndexConfig(segmentationRepresentationUID, segmentIndex, config, suppressEvent = false) {
|
|
39
|
-
const perSegment =
|
|
44
|
+
const perSegment = _getPerSegmentConfig(segmentationRepresentationUID);
|
|
40
45
|
perSegment[segmentIndex] = config;
|
|
41
46
|
if (!suppressEvent) {
|
|
42
47
|
triggerSegmentationRepresentationModified(segmentationRepresentationUID);
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
function getSegmentIndexConfig(segmentationRepresentationUID, segmentIndex) {
|
|
46
|
-
const perSegment =
|
|
51
|
+
const perSegment = _getPerSegmentConfig(segmentationRepresentationUID);
|
|
47
52
|
return perSegment?.[segmentIndex];
|
|
48
53
|
}
|
|
49
54
|
export { getGlobalConfig, setGlobalConfig, getGlobalRepresentationConfig, setGlobalRepresentationConfig, getSegmentationRepresentationConfig, setSegmentationRepresentationConfig, setPerSegmentConfig, getPerSegmentConfig, setSegmentIndexConfig, getSegmentIndexConfig, };
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { getSegmentationRepresentation } from '../getSegmentationRepresentation';
|
|
2
2
|
import { triggerSegmentationRepresentationModified } from '../triggerSegmentationEvents';
|
|
3
|
+
import { setSegmentationRepresentationVisibility as _setSegmentationRepresentationVisibility } from '../setSegmentationRepresentationVisibility';
|
|
4
|
+
import { getSegmentationRepresentationVisibility as _getSegmentationRepresentationVisibility } from '../getSegmentationRepresentationVisibility';
|
|
5
|
+
import { getSegmentationRepresentationViewportStates } from '../getSegmentationRepresentationViewportStates';
|
|
3
6
|
function setSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID, visibility) {
|
|
4
|
-
const representation =
|
|
7
|
+
const representation = getSegmentationRepresentation(segmentationRepresentationUID);
|
|
5
8
|
if (!representation) {
|
|
6
9
|
return;
|
|
7
10
|
}
|
|
8
|
-
|
|
11
|
+
_setSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID, visibility);
|
|
9
12
|
triggerSegmentationRepresentationModified(segmentationRepresentationUID);
|
|
10
13
|
}
|
|
11
14
|
function getSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID) {
|
|
12
|
-
return
|
|
15
|
+
return _getSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID);
|
|
13
16
|
}
|
|
14
17
|
function setSegmentIndicesVisibility(viewport, segmentationRepresentationUID, segmentIndices, visibility) {
|
|
15
18
|
const hiddenSegments = getHiddenSegmentIndices(viewport, segmentationRepresentationUID);
|
|
@@ -32,7 +35,7 @@ function getSegmentIndexVisibility(viewportId, segmentationRepresentationUID, se
|
|
|
32
35
|
return !hiddenSegments.has(segmentIndex);
|
|
33
36
|
}
|
|
34
37
|
function getHiddenSegmentIndices(viewportId, segmentationRepresentationUID) {
|
|
35
|
-
const viewportRenderingState =
|
|
38
|
+
const viewportRenderingState = getSegmentationRepresentationViewportStates(viewportId);
|
|
36
39
|
if (!viewportRenderingState) {
|
|
37
40
|
return new Set();
|
|
38
41
|
}
|
|
@@ -11,11 +11,3 @@ export declare function convertVolumeToStackSegmentation({ segmentationId, optio
|
|
|
11
11
|
removeOriginal?: boolean;
|
|
12
12
|
};
|
|
13
13
|
}): Promise<void>;
|
|
14
|
-
export declare function updateStackSegmentationState({ segmentationId, viewportId, imageIds, options, }: {
|
|
15
|
-
segmentationId: string;
|
|
16
|
-
viewportId: string;
|
|
17
|
-
imageIds: string[];
|
|
18
|
-
options?: {
|
|
19
|
-
removeOriginal?: boolean;
|
|
20
|
-
};
|
|
21
|
-
}): Promise<void>;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { cache
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { triggerSegmentationRender } from '../../utilities/segmentation';
|
|
5
|
-
import { getSegmentation } from './segmentationState';
|
|
6
|
-
import { triggerSegmentationDataModified } from './triggerSegmentationEvents';
|
|
1
|
+
import { cache } from '@cornerstonejs/core';
|
|
2
|
+
import { getSegmentation } from './getSegmentation';
|
|
3
|
+
import { updateStackSegmentationState } from './helpers/updateStackSegmentationState';
|
|
7
4
|
export async function computeStackSegmentationFromVolume({ volumeId, }) {
|
|
8
5
|
const segmentationVolume = cache.getVolume(volumeId);
|
|
9
6
|
return { imageIds: segmentationVolume.imageIds };
|
|
@@ -20,30 +17,3 @@ export async function convertVolumeToStackSegmentation({ segmentationId, options
|
|
|
20
17
|
options,
|
|
21
18
|
});
|
|
22
19
|
}
|
|
23
|
-
export async function updateStackSegmentationState({ segmentationId, viewportId, imageIds, options, }) {
|
|
24
|
-
const segmentation = getSegmentation(segmentationId);
|
|
25
|
-
if (options?.removeOriginal) {
|
|
26
|
-
const data = segmentation.representationData
|
|
27
|
-
.LABELMAP;
|
|
28
|
-
if (cache.getVolume(data.volumeId)) {
|
|
29
|
-
cache.removeVolumeLoadObject(data.volumeId);
|
|
30
|
-
}
|
|
31
|
-
segmentation.representationData.LABELMAP = {
|
|
32
|
-
imageIds,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
segmentation.representationData.LABELMAP = {
|
|
37
|
-
...segmentation.representationData.LABELMAP,
|
|
38
|
-
imageIds,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
await addSegmentationRepresentations(viewportId, [
|
|
42
|
-
{
|
|
43
|
-
segmentationId,
|
|
44
|
-
type: SegmentationRepresentations.Labelmap,
|
|
45
|
-
},
|
|
46
|
-
]);
|
|
47
|
-
triggerSegmentationRender(viewportId);
|
|
48
|
-
eventTarget.addEventListenerOnce(Events.SEGMENTATION_RENDERED, () => triggerSegmentationDataModified(segmentationId));
|
|
49
|
-
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function triggerSegmentationDataModified(segmentationId: string, modifiedSlicesToUse?: number[]): void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { triggerEvent, eventTarget } from '@cornerstonejs/core';
|
|
2
|
+
import { Events } from '../../../enums';
|
|
3
|
+
import { setSegmentationDirty } from '../../../utilities/segmentation/utilities';
|
|
4
|
+
export function triggerSegmentationDataModified(segmentationId, modifiedSlicesToUse) {
|
|
5
|
+
const eventDetail = {
|
|
6
|
+
segmentationId,
|
|
7
|
+
modifiedSlicesToUse,
|
|
8
|
+
};
|
|
9
|
+
setSegmentationDirty(segmentationId);
|
|
10
|
+
triggerEvent(eventTarget, Events.SEGMENTATION_DATA_MODIFIED, eventDetail);
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function triggerSegmentationModified(segmentationId?: string): void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { triggerEvent, eventTarget } from '@cornerstonejs/core';
|
|
2
|
+
import { Events } from '../../../enums';
|
|
3
|
+
import { getSegmentations } from '../getSegmentations';
|
|
4
|
+
export function triggerSegmentationModified(segmentationId) {
|
|
5
|
+
let segmentationIds;
|
|
6
|
+
if (segmentationId) {
|
|
7
|
+
segmentationIds = [segmentationId];
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
segmentationIds = getSegmentations().map(({ segmentationId }) => segmentationId);
|
|
11
|
+
}
|
|
12
|
+
segmentationIds.forEach((segmentationId) => {
|
|
13
|
+
const eventDetail = {
|
|
14
|
+
segmentationId,
|
|
15
|
+
};
|
|
16
|
+
triggerEvent(eventTarget, Events.SEGMENTATION_MODIFIED, eventDetail);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function triggerSegmentationRemoved(segmentationId: string): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { triggerEvent, eventTarget } from '@cornerstonejs/core';
|
|
2
|
+
import { Events } from '../../../enums';
|
|
3
|
+
export function triggerSegmentationRemoved(segmentationId) {
|
|
4
|
+
const eventDetail = {
|
|
5
|
+
segmentationId,
|
|
6
|
+
};
|
|
7
|
+
triggerEvent(eventTarget, Events.SEGMENTATION_REMOVED, eventDetail);
|
|
8
|
+
}
|
package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function triggerSegmentationRepresentationModified(segmentationRepresentationUID: string): void;
|
package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { triggerEvent, eventTarget } from '@cornerstonejs/core';
|
|
2
|
+
import { Events } from '../../../enums';
|
|
3
|
+
export function triggerSegmentationRepresentationModified(segmentationRepresentationUID) {
|
|
4
|
+
const eventDetail = {
|
|
5
|
+
segmentationRepresentationUID,
|
|
6
|
+
};
|
|
7
|
+
triggerEvent(eventTarget, Events.SEGMENTATION_REPRESENTATION_MODIFIED, eventDetail);
|
|
8
|
+
}
|
package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function triggerSegmentationRepresentationRemoved(segmentationRepresentationUID: string): void;
|
package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { triggerEvent, eventTarget } from '@cornerstonejs/core';
|
|
2
|
+
import { Events } from '../../../enums';
|
|
3
|
+
export function triggerSegmentationRepresentationRemoved(segmentationRepresentationUID) {
|
|
4
|
+
const eventDetail = {
|
|
5
|
+
segmentationRepresentationUID,
|
|
6
|
+
};
|
|
7
|
+
triggerEvent(eventTarget, Events.SEGMENTATION_REPRESENTATION_REMOVED, eventDetail);
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getActiveSegmentIndex(segmentationId: string): number | undefined;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
2
|
+
export function getActiveSegmentationRepresentation(viewportId) {
|
|
3
|
+
const segmentationStateManager = defaultSegmentationStateManager;
|
|
4
|
+
return segmentationStateManager.getActiveSegmentationRepresentation(viewportId);
|
|
5
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { defaultSegmentationStateManager } from './SegmentationStateManager';
|
|
2
|
+
export function getAllSegmentationRepresentations() {
|
|
3
|
+
const segmentationStateManager = defaultSegmentationStateManager;
|
|
4
|
+
const state = segmentationStateManager.getState();
|
|
5
|
+
return Object.values(state.representations);
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getCurrentLabelmapImageIdForViewport(viewportId: string, segmentationId?: string): string;
|