@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.
Files changed (258) hide show
  1. package/dist/esm/cursors/elementCursor.d.ts +1 -1
  2. package/dist/esm/cursors/elementCursor.js +1 -1
  3. package/dist/esm/drawingSvg/getSvgDrawingHelper.js +1 -1
  4. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyDown.js +2 -2
  5. package/dist/esm/eventDispatchers/keyboardEventHandlers/keyUp.js +2 -2
  6. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +1 -1
  7. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownActivate.js +1 -1
  8. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDownAnnotationAction.js +1 -1
  9. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDrag.js +1 -1
  10. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseMove.js +1 -1
  11. package/dist/esm/eventDispatchers/mouseEventHandlers/mouseWheel.js +1 -1
  12. package/dist/esm/eventDispatchers/shared/customCallbackHandler.js +3 -2
  13. package/dist/esm/eventDispatchers/shared/getActiveToolForKeyboardEvent.js +2 -2
  14. package/dist/esm/eventDispatchers/shared/getActiveToolForMouseEvent.js +2 -2
  15. package/dist/esm/eventDispatchers/shared/getActiveToolForTouchEvent.js +3 -3
  16. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForKeyboardEvents.js +2 -2
  17. package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +2 -2
  18. package/dist/esm/eventDispatchers/shared/getToolsWithModesForMouseEvent.js +2 -2
  19. package/dist/esm/eventDispatchers/shared/getToolsWithModesForTouchEvent.js +2 -2
  20. package/dist/esm/eventDispatchers/touchEventHandlers/touchDrag.js +1 -1
  21. package/dist/esm/eventDispatchers/touchEventHandlers/touchStart.js +1 -1
  22. package/dist/esm/eventDispatchers/touchEventHandlers/touchStartActivate.js +1 -1
  23. package/dist/esm/eventListeners/annotations/annotationSelectionListener.js +1 -1
  24. package/dist/esm/eventListeners/annotations/contourSegmentation/contourSegmentationCompleted.js +21 -20
  25. package/dist/esm/eventListeners/segmentation/imageChangeEventListener.js +8 -6
  26. package/dist/esm/eventListeners/segmentation/segmentationDataModifiedEventListener.js +1 -1
  27. package/dist/esm/eventListeners/segmentation/segmentationModifiedEventListener.js +1 -1
  28. package/dist/esm/eventListeners/segmentation/segmentationRepresentationModifiedEventListener.js +1 -1
  29. package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js +1 -1
  30. package/dist/esm/index.d.ts +4 -3
  31. package/dist/esm/index.js +4 -3
  32. package/dist/esm/init.js +2 -2
  33. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +0 -2
  34. package/dist/esm/stateManagement/annotation/annotationSelection.js +1 -1
  35. package/dist/esm/stateManagement/annotation/annotationState.d.ts +2 -2
  36. package/dist/esm/stateManagement/annotation/annotationState.js +4 -6
  37. package/dist/esm/stateManagement/annotation/annotationVisibility.js +1 -1
  38. package/dist/esm/stateManagement/annotation/getAnnotation.d.ts +2 -0
  39. package/dist/esm/stateManagement/annotation/getAnnotation.js +6 -0
  40. package/dist/esm/stateManagement/index.d.ts +2 -2
  41. package/dist/esm/stateManagement/index.js +2 -1
  42. package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.d.ts +3 -1
  43. package/dist/esm/stateManagement/segmentation/SegmentationRenderingEngine.js +13 -6
  44. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +17 -1
  45. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +46 -4
  46. package/dist/esm/stateManagement/segmentation/activeSegmentation.js +6 -4
  47. package/dist/esm/stateManagement/segmentation/addColorLUT.d.ts +2 -0
  48. package/dist/esm/stateManagement/segmentation/addColorLUT.js +5 -0
  49. package/dist/esm/stateManagement/segmentation/addRepresentationData.js +1 -1
  50. package/dist/esm/stateManagement/segmentation/addSegmentation.d.ts +2 -0
  51. package/dist/esm/stateManagement/segmentation/addSegmentation.js +11 -0
  52. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentation.js +29 -8
  53. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.d.ts +2 -0
  54. package/dist/esm/stateManagement/segmentation/addSegmentationRepresentationState.js +10 -0
  55. package/dist/esm/stateManagement/segmentation/config/segmentationColor.js +8 -6
  56. package/dist/esm/stateManagement/segmentation/config/segmentationConfig.js +14 -9
  57. package/dist/esm/stateManagement/segmentation/config/segmentationVisibility.js +8 -5
  58. package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.d.ts +0 -8
  59. package/dist/esm/stateManagement/segmentation/convertVolumeToStackSegmentation.js +3 -33
  60. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationDataModified.d.ts +1 -0
  61. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationDataModified.js +11 -0
  62. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.d.ts +1 -0
  63. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationModified.js +18 -0
  64. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRemoved.d.ts +1 -0
  65. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRemoved.js +8 -0
  66. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.d.ts +1 -0
  67. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationModified.js +8 -0
  68. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.d.ts +1 -0
  69. package/dist/esm/stateManagement/segmentation/events/triggerSegmentationRepresentationRemoved.js +8 -0
  70. package/dist/esm/stateManagement/segmentation/getActiveSegmentIndex.d.ts +1 -0
  71. package/dist/esm/stateManagement/segmentation/getActiveSegmentIndex.js +7 -0
  72. package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.d.ts +2 -0
  73. package/dist/esm/stateManagement/segmentation/getActiveSegmentationRepresentation.js +5 -0
  74. package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.d.ts +2 -0
  75. package/dist/esm/stateManagement/segmentation/getAllSegmentationRepresentations.js +6 -0
  76. package/dist/esm/stateManagement/segmentation/getColorLUT.d.ts +2 -0
  77. package/dist/esm/stateManagement/segmentation/getColorLUT.js +5 -0
  78. package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.d.ts +1 -0
  79. package/dist/esm/stateManagement/segmentation/getCurrentLabelmapImageIdForViewport.js +5 -0
  80. package/dist/esm/stateManagement/segmentation/getGlobalConfig.d.ts +2 -0
  81. package/dist/esm/stateManagement/segmentation/getGlobalConfig.js +5 -0
  82. package/dist/esm/stateManagement/segmentation/getNextColorLUTIndex.d.ts +1 -0
  83. package/dist/esm/stateManagement/segmentation/getNextColorLUTIndex.js +5 -0
  84. package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.d.ts +2 -0
  85. package/dist/esm/stateManagement/segmentation/getPerSegmentConfig.js +5 -0
  86. package/dist/esm/stateManagement/segmentation/getSegmentation.d.ts +2 -0
  87. package/dist/esm/stateManagement/segmentation/getSegmentation.js +5 -0
  88. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.d.ts +2 -0
  89. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentation.js +5 -0
  90. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.d.ts +2 -0
  91. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationConfig.js +5 -0
  92. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.d.ts +7 -0
  93. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationViewportStates.js +6 -0
  94. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.d.ts +1 -0
  95. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationVisibility.js +5 -0
  96. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.d.ts +2 -0
  97. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentations.js +12 -0
  98. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.d.ts +2 -0
  99. package/dist/esm/stateManagement/segmentation/getSegmentationRepresentationsForSegmentation.js +5 -0
  100. package/dist/esm/stateManagement/segmentation/getSegmentations.d.ts +2 -0
  101. package/dist/esm/stateManagement/segmentation/getSegmentations.js +6 -0
  102. package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.d.ts +1 -0
  103. package/dist/esm/stateManagement/segmentation/getViewportIdsWithSegmentation.js +10 -0
  104. package/dist/esm/stateManagement/segmentation/helpers/clipAndCacheSurfacesForViewport.js +1 -1
  105. package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.d.ts +8 -0
  106. package/dist/esm/stateManagement/segmentation/helpers/updateStackSegmentationState.js +31 -0
  107. package/dist/esm/stateManagement/segmentation/index.d.ts +1 -1
  108. package/dist/esm/stateManagement/segmentation/index.js +1 -1
  109. package/dist/esm/stateManagement/segmentation/polySeg/Contour/contourComputationStrategies.js +3 -2
  110. package/dist/esm/stateManagement/segmentation/polySeg/Contour/utils/createAndAddContourSegmentationsFromClippedSurfaces.js +1 -1
  111. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/convertContourToLabelmap.js +1 -1
  112. package/dist/esm/stateManagement/segmentation/polySeg/Labelmap/labelmapComputationStrategies.js +3 -3
  113. package/dist/esm/stateManagement/segmentation/polySeg/Surface/convertLabelmapToSurface.js +2 -3
  114. package/dist/esm/stateManagement/segmentation/polySeg/Surface/createAndCacheSurfacesFromRaw.js +2 -1
  115. package/dist/esm/stateManagement/segmentation/polySeg/Surface/surfaceComputationStrategies.js +2 -2
  116. package/dist/esm/stateManagement/segmentation/polySeg/Surface/updateSurfaceData.js +2 -3
  117. package/dist/esm/stateManagement/segmentation/polySeg/canComputeRequestedRepresentation.js +3 -2
  118. package/dist/esm/stateManagement/segmentation/polySeg/computeAndAddRepresentation.js +1 -1
  119. package/dist/esm/stateManagement/segmentation/removeColorLUT.d.ts +1 -0
  120. package/dist/esm/stateManagement/segmentation/removeColorLUT.js +5 -0
  121. package/dist/esm/stateManagement/segmentation/removeRepresentation.d.ts +1 -0
  122. package/dist/esm/stateManagement/segmentation/removeRepresentation.js +9 -0
  123. package/dist/esm/stateManagement/segmentation/removeSegmentation.d.ts +1 -0
  124. package/dist/esm/stateManagement/segmentation/removeSegmentation.js +7 -0
  125. package/dist/esm/stateManagement/segmentation/removeSegmentationRepresentations.js +2 -2
  126. package/dist/esm/stateManagement/segmentation/segmentIndex.d.ts +2 -2
  127. package/dist/esm/stateManagement/segmentation/segmentIndex.js +5 -9
  128. package/dist/esm/stateManagement/segmentation/segmentLocking.js +1 -1
  129. package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +29 -38
  130. package/dist/esm/stateManagement/segmentation/segmentationState.js +29 -157
  131. package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.d.ts +1 -0
  132. package/dist/esm/stateManagement/segmentation/setActiveSegmentationRepresentation.js +9 -0
  133. package/dist/esm/stateManagement/segmentation/setGlobalConfig.d.ts +2 -0
  134. package/dist/esm/stateManagement/segmentation/setGlobalConfig.js +9 -0
  135. package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.d.ts +2 -0
  136. package/dist/esm/stateManagement/segmentation/setPerSegmentConfig.js +9 -0
  137. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.d.ts +2 -0
  138. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationConfig.js +9 -0
  139. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.d.ts +1 -0
  140. package/dist/esm/stateManagement/segmentation/setSegmentationRepresentationVisibility.js +5 -0
  141. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +5 -5
  142. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +5 -45
  143. package/dist/esm/stateManagement/segmentation/updateLabelmapSegmentationImageReferences.d.ts +1 -0
  144. package/dist/esm/stateManagement/segmentation/updateLabelmapSegmentationImageReferences.js +5 -0
  145. package/dist/esm/store/SynchronizerManager/createSynchronizer.js +1 -1
  146. package/dist/esm/store/SynchronizerManager/destroy.js +1 -1
  147. package/dist/esm/store/SynchronizerManager/destroySynchronizer.js +1 -1
  148. package/dist/esm/store/SynchronizerManager/getAllSynchronizers.js +1 -1
  149. package/dist/esm/store/SynchronizerManager/getSynchronizer.js +1 -1
  150. package/dist/esm/store/SynchronizerManager/getSynchronizersForViewport.js +1 -1
  151. package/dist/esm/store/ToolGroupManager/ToolGroup.js +7 -6
  152. package/dist/esm/store/ToolGroupManager/createToolGroup.js +1 -1
  153. package/dist/esm/store/ToolGroupManager/destroy.js +3 -3
  154. package/dist/esm/store/ToolGroupManager/destroyToolGroup.js +1 -2
  155. package/dist/esm/store/ToolGroupManager/getAllToolGroups.js +1 -1
  156. package/dist/esm/store/ToolGroupManager/getToolGroup.js +1 -1
  157. package/dist/esm/store/ToolGroupManager/getToolGroupForViewport.js +1 -1
  158. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +1 -1
  159. package/dist/esm/store/addTool.d.ts +1 -0
  160. package/dist/esm/store/addTool.js +3 -0
  161. package/dist/esm/store/index.d.ts +1 -2
  162. package/dist/esm/store/index.js +1 -2
  163. package/dist/esm/tools/AdvancedMagnifyTool.d.ts +93 -2
  164. package/dist/esm/tools/AdvancedMagnifyTool.js +506 -4
  165. package/dist/esm/tools/AnnotationEraserTool.js +2 -2
  166. package/dist/esm/tools/CrosshairsTool.js +1 -1
  167. package/dist/esm/tools/MagnifyTool.js +1 -1
  168. package/dist/esm/tools/SculptorTool.js +3 -3
  169. package/dist/esm/tools/WindowLevelRegionTool.js +1 -1
  170. package/dist/esm/tools/annotation/AngleTool.js +4 -3
  171. package/dist/esm/tools/annotation/ArrowAnnotateTool.js +1 -1
  172. package/dist/esm/tools/annotation/BidirectionalTool.js +7 -8
  173. package/dist/esm/tools/annotation/CircleROITool.js +15 -16
  174. package/dist/esm/tools/annotation/CobbAngleTool.js +1 -1
  175. package/dist/esm/tools/annotation/DragProbeTool.js +2 -2
  176. package/dist/esm/tools/annotation/EllipticalROITool.js +12 -13
  177. package/dist/esm/tools/annotation/HeightTool.js +5 -6
  178. package/dist/esm/tools/annotation/KeyImageTool.js +1 -1
  179. package/dist/esm/tools/annotation/LengthTool.js +5 -6
  180. package/dist/esm/tools/annotation/LivewireContourTool.js +3 -2
  181. package/dist/esm/tools/annotation/PlanarFreehandContourSegmentationTool.d.ts +1 -2
  182. package/dist/esm/tools/annotation/PlanarFreehandROITool.d.ts +4 -4
  183. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +20 -20
  184. package/dist/esm/tools/annotation/ProbeTool.js +9 -10
  185. package/dist/esm/tools/annotation/RectangleROITool.js +12 -13
  186. package/dist/esm/tools/annotation/SplineROITool.js +12 -9
  187. package/dist/esm/tools/annotation/UltrasoundDirectionalTool.js +6 -7
  188. package/dist/esm/tools/annotation/VideoRedactionTool.js +1 -1
  189. package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +1 -1
  190. package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +1 -1
  191. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js +2 -2
  192. package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js +1 -1
  193. package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js +1 -1
  194. package/dist/esm/tools/base/ContourBaseTool.js +2 -2
  195. package/dist/esm/tools/base/ContourSegmentationBaseTool.js +24 -15
  196. package/dist/esm/tools/displayTools/Contour/contourDisplay.js +9 -8
  197. package/dist/esm/tools/displayTools/Contour/contourHandler/handleContourSegmentation.js +3 -3
  198. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +2 -1
  199. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.d.ts +1 -8
  200. package/dist/esm/tools/displayTools/Labelmap/labelmapDisplay.js +19 -25
  201. package/dist/esm/tools/displayTools/Surface/surfaceDisplay.js +10 -7
  202. package/dist/esm/tools/index.d.ts +1 -3
  203. package/dist/esm/tools/index.js +1 -3
  204. package/dist/esm/tools/segmentation/BrushTool.js +10 -8
  205. package/dist/esm/tools/segmentation/CircleROIStartEndThresholdTool.js +8 -9
  206. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +11 -13
  207. package/dist/esm/tools/segmentation/SegmentSelectTool.js +1 -1
  208. package/dist/esm/tools/segmentation/strategies/compositions/preview.js +4 -4
  209. package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +2 -2
  210. package/dist/esm/utilities/annotationHydration.js +1 -1
  211. package/dist/esm/utilities/contourSegmentation/addContourSegmentationAnnotation.js +1 -1
  212. package/dist/esm/utilities/contourSegmentation/removeContourSegmentationAnnotation.js +2 -2
  213. package/dist/esm/utilities/contours/generateContourSetsFromLabelmap.js +1 -1
  214. package/dist/esm/utilities/contours/getContourHolesDataWorld.js +1 -1
  215. package/dist/esm/utilities/contours/index.d.ts +1 -2
  216. package/dist/esm/utilities/contours/index.js +1 -2
  217. package/dist/esm/utilities/contours/updateContourPolyline.js +1 -1
  218. package/dist/esm/utilities/getCalibratedUnits.d.ts +2 -2
  219. package/dist/esm/utilities/getCalibratedUnits.js +13 -13
  220. package/dist/esm/utilities/getToolsWithModesForElement.js +2 -2
  221. package/dist/esm/utilities/index.d.ts +1 -2
  222. package/dist/esm/utilities/index.js +1 -2
  223. package/dist/esm/utilities/math/line/distanceToPointSquaredInfo.js +3 -3
  224. package/dist/esm/utilities/math/polyline/isClosed.js +2 -2
  225. package/dist/esm/utilities/planarFreehandROITool/smoothAnnotation.js +3 -3
  226. package/dist/esm/utilities/segmentation/brushSizeForToolGroup.js +1 -1
  227. package/dist/esm/utilities/segmentation/brushThresholdForToolGroup.js +1 -1
  228. package/dist/esm/utilities/segmentation/getBrushToolInstances.d.ts +1 -0
  229. package/dist/esm/utilities/segmentation/getBrushToolInstances.js +17 -0
  230. package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.d.ts +0 -2
  231. package/dist/esm/utilities/segmentation/getUniqueSegmentIndices.js +3 -22
  232. package/dist/esm/utilities/segmentation/index.d.ts +2 -2
  233. package/dist/esm/utilities/segmentation/index.js +2 -2
  234. package/dist/esm/utilities/segmentation/invalidateBrushCursor.js +1 -4
  235. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +2 -1
  236. package/dist/esm/utilities/segmentation/segmentContourAction.js +5 -5
  237. package/dist/esm/utilities/segmentation/utilities.d.ts +4 -1
  238. package/dist/esm/utilities/segmentation/utilities.js +23 -17
  239. package/dist/esm/utilities/viewportFilters/filterViewportsWithToolEnabled.js +2 -2
  240. package/dist/umd/985.index.js.map +1 -1
  241. package/dist/umd/index.js +2 -1
  242. package/dist/umd/index.js.LICENSE.txt +6 -0
  243. package/dist/umd/index.js.map +1 -1
  244. package/package.json +5 -4
  245. package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.d.ts +0 -17
  246. package/dist/esm/stateManagement/segmentation/convertStackToVolumeSegmentation.js +0 -50
  247. package/dist/esm/stateManagement/segmentation/helpers/getSegmentationRepresentationRenderingConfig.d.ts +0 -2
  248. package/dist/esm/stateManagement/segmentation/helpers/getSegmentationRepresentationRenderingConfig.js +0 -11
  249. package/dist/esm/tools/AdvancedMagnifyViewport.d.ts +0 -76
  250. package/dist/esm/tools/AdvancedMagnifyViewport.js +0 -351
  251. package/dist/esm/tools/AdvancedMagnifyViewportManager.d.ts +0 -38
  252. package/dist/esm/tools/AdvancedMagnifyViewportManager.js +0 -161
  253. package/dist/esm/tools/StackScrollToolMouseWheelTool.d.ts +0 -16
  254. package/dist/esm/tools/StackScrollToolMouseWheelTool.js +0 -33
  255. package/dist/esm/utilities/contours/interpolation/index.d.ts +0 -2
  256. package/dist/esm/utilities/contours/interpolation/index.js +0 -2
  257. package/dist/esm/utilities/segmentation/triggerSegmentationRender.d.ts +0 -3
  258. package/dist/esm/utilities/segmentation/triggerSegmentationRender.js +0 -8
@@ -0,0 +1,2 @@
1
+ import type { Annotation } from '../../types';
2
+ export declare function getAnnotation(annotationUID: string): Annotation;
@@ -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 { addSegmentationRepresentations } from './segmentation';
19
- import { removeSegmentationRepresentations } from './segmentation';
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 { addSegmentationRepresentations, removeSegmentationRepresentations, } from './segmentation';
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 '../../stateManagement/segmentation/segmentationState';
5
- import { surfaceDisplay } from '../../tools/displayTools/Surface';
6
- import { contourDisplay } from '../../tools/displayTools/Contour';
7
- import { labelmapDisplay } from '../../tools/displayTools/Labelmap';
8
- import { addTool, state } from '../../store';
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 { convertStackToVolumeSegmentation } from './convertStackToVolumeSegmentation';
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 * as SegmentationState from './segmentationState';
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 SegmentationState.getActiveSegmentationRepresentation(viewportId);
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 SegmentationState.getSegmentation(activeRepresentation.segmentationId);
12
+ return getSegmentation(activeRepresentation.segmentationId);
11
13
  }
12
14
  function setActiveSegmentationRepresentation(viewportId, segmentationRepresentationUID, suppressEvent = false) {
13
- SegmentationState.setActiveSegmentationRepresentation(viewportId, segmentationRepresentationUID, suppressEvent);
15
+ _setActiveSegmentationRepresentation(viewportId, segmentationRepresentationUID, suppressEvent);
14
16
  }
15
17
  export { getActiveSegmentationRepresentation, getActiveSegmentation, setActiveSegmentationRepresentation, };
@@ -0,0 +1,2 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ export declare function addColorLUT(colorLUT: Types.ColorLUT, index: number): void;
@@ -0,0 +1,5 @@
1
+ import { defaultSegmentationStateManager } from './SegmentationStateManager';
2
+ export function addColorLUT(colorLUT, index) {
3
+ const segmentationStateManager = defaultSegmentationStateManager;
4
+ segmentationStateManager.addColorLUT(colorLUT, index);
5
+ }
@@ -1,4 +1,4 @@
1
- import { getSegmentation } from './segmentationState';
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,2 @@
1
+ import type { SegmentationPublicInput } from '../../types/SegmentationStateTypes';
2
+ export declare function addSegmentation(segmentationInput: SegmentationPublicInput, suppressEvents?: boolean): void;
@@ -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: getSegmentationRepresentationRenderingConfig(representationInput),
39
+ rendering: renderingConfig,
19
40
  polySeg: options.polySeg,
20
41
  config: {
21
42
  allSegments: {},
22
43
  perSegment: {},
23
44
  },
24
45
  };
25
- SegmentationState.addSegmentationRepresentation(viewportId, representation);
46
+ addSegmentationRepresentationState(viewportId, representation);
26
47
  if (initialConfig) {
27
- SegmentationState.setSegmentationRepresentationConfig(segmentationRepresentationUID, initialConfig.representations);
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 = SegmentationState.getNextColorLUTIndex();
63
+ const nextIndex = getNextColorLUTIndex();
43
64
  const colorLUTToAdd = Array.isArray(colorLUTOrIndexInput)
44
65
  ? colorLUTOrIndexInput
45
66
  : CORNERSTONE_COLOR_LUT;
46
- SegmentationState.addColorLUT(colorLUTToAdd, nextIndex);
67
+ addColorLUT(colorLUTToAdd, nextIndex);
47
68
  colorLUTIndexToUse = nextIndex;
48
69
  }
49
70
  return colorLUTIndexToUse;
@@ -0,0 +1,2 @@
1
+ import type { SegmentationRepresentation } from '../../types/SegmentationStateTypes';
2
+ export declare function addSegmentationRepresentationState(viewportId: string, segmentationRepresentation: SegmentationRepresentation, suppressEvents?: boolean): void;
@@ -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
- SegmentationState.addColorLUT(colorLUT, colorLUTIndex);
14
+ _addColorLUT(colorLUT, colorLUTIndex);
13
15
  }
14
16
  function setColorLUT(segmentationRepresentationUID, colorLUTIndex) {
15
- const segRepresentation = SegmentationState.getSegmentationRepresentation(segmentationRepresentationUID);
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 (!SegmentationState.getColorLUT(colorLUTIndex)) {
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 = SegmentationState.getSegmentationRepresentation(segmentationRepresentationUID);
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 = SegmentationState.getColorLUT(colorLUTIndex);
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 SegmentationState.getGlobalConfig();
9
+ return _getGlobalConfig();
5
10
  }
6
11
  function setGlobalConfig(segmentationConfig) {
7
- SegmentationState.setGlobalConfig(segmentationConfig);
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 SegmentationState.getSegmentationRepresentationConfig(segmentationRepresentationUID);
32
+ return _getSegmentationRepresentationConfig(segmentationRepresentationUID);
28
33
  }
29
34
  function setSegmentationRepresentationConfig(segmentationRepresentationUID, config) {
30
- SegmentationState.setSegmentationRepresentationConfig(segmentationRepresentationUID, config);
35
+ _setSegmentationRepresentationConfig(segmentationRepresentationUID, config);
31
36
  }
32
37
  function setPerSegmentConfig(segmentationRepresentationUID, config) {
33
- SegmentationState.setPerSegmentConfig(segmentationRepresentationUID, config);
38
+ _setPerSegmentConfig(segmentationRepresentationUID, config);
34
39
  }
35
40
  function getPerSegmentConfig(segmentationRepresentationUID) {
36
- return SegmentationState.getPerSegmentConfig(segmentationRepresentationUID);
41
+ return _getPerSegmentConfig(segmentationRepresentationUID);
37
42
  }
38
43
  function setSegmentIndexConfig(segmentationRepresentationUID, segmentIndex, config, suppressEvent = false) {
39
- const perSegment = SegmentationState.getPerSegmentConfig(segmentationRepresentationUID);
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 = SegmentationState.getPerSegmentConfig(segmentationRepresentationUID);
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 * as SegmentationState from '../../../stateManagement/segmentation/segmentationState';
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 = SegmentationState.getSegmentationRepresentation(segmentationRepresentationUID);
7
+ const representation = getSegmentationRepresentation(segmentationRepresentationUID);
5
8
  if (!representation) {
6
9
  return;
7
10
  }
8
- SegmentationState.setSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID, visibility);
11
+ _setSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID, visibility);
9
12
  triggerSegmentationRepresentationModified(segmentationRepresentationUID);
10
13
  }
11
14
  function getSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID) {
12
- return SegmentationState.getSegmentationRepresentationVisibility(viewportId, segmentationRepresentationUID);
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 = SegmentationState.getSegmentationRepresentationViewportStates(viewportId);
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, eventTarget } from '@cornerstonejs/core';
2
- import { Events, SegmentationRepresentations } from '../../enums';
3
- import addSegmentationRepresentations from './addSegmentationRepresentations';
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
+ }
@@ -0,0 +1 @@
1
+ export declare function triggerSegmentationRepresentationModified(segmentationRepresentationUID: string): void;
@@ -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
+ }
@@ -0,0 +1 @@
1
+ export declare function triggerSegmentationRepresentationRemoved(segmentationRepresentationUID: string): void;
@@ -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,7 @@
1
+ import { getSegmentation } from './getSegmentation';
2
+ export function getActiveSegmentIndex(segmentationId) {
3
+ const segmentation = getSegmentation(segmentationId);
4
+ if (segmentation) {
5
+ return segmentation.activeSegmentIndex;
6
+ }
7
+ }
@@ -0,0 +1,2 @@
1
+ import type { SegmentationRepresentation } from '../../types/SegmentationStateTypes';
2
+ export declare function getActiveSegmentationRepresentation(viewportId: string): SegmentationRepresentation | 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,2 @@
1
+ import type { SegmentationRepresentation } from '../../types/SegmentationStateTypes';
2
+ export declare function getAllSegmentationRepresentations(): SegmentationRepresentation[];
@@ -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,2 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ export declare function getColorLUT(index: number): Types.ColorLUT | undefined;
@@ -0,0 +1,5 @@
1
+ import { defaultSegmentationStateManager } from './SegmentationStateManager';
2
+ export function getColorLUT(index) {
3
+ const segmentationStateManager = defaultSegmentationStateManager;
4
+ return segmentationStateManager.getColorLUT(index);
5
+ }
@@ -0,0 +1 @@
1
+ export declare function getCurrentLabelmapImageIdForViewport(viewportId: string, segmentationId?: string): string;