@cornerstonejs/tools 0.17.2 → 0.18.0

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 (151) hide show
  1. package/dist/cjs/enums/Events.d.ts +1 -0
  2. package/dist/cjs/enums/Events.js +1 -0
  3. package/dist/cjs/enums/Events.js.map +1 -1
  4. package/dist/cjs/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
  5. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -0
  6. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js +3 -0
  7. package/dist/cjs/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
  8. package/dist/cjs/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +1 -1
  9. package/dist/cjs/stateManagement/segmentation/helpers/normalizeSegmentationInput.js.map +1 -1
  10. package/dist/cjs/stateManagement/segmentation/segmentationState.d.ts +2 -1
  11. package/dist/cjs/stateManagement/segmentation/segmentationState.js +7 -1
  12. package/dist/cjs/stateManagement/segmentation/segmentationState.js.map +1 -1
  13. package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.d.ts +2 -1
  14. package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.js +8 -1
  15. package/dist/cjs/stateManagement/segmentation/triggerSegmentationEvents.js.map +1 -1
  16. package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js +16 -6
  17. package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
  18. package/dist/cjs/tools/CrosshairsTool.js +6 -5
  19. package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
  20. package/dist/cjs/tools/ZoomTool.js +1 -1
  21. package/dist/cjs/tools/ZoomTool.js.map +1 -1
  22. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +4 -0
  23. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  24. package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js +20 -1
  25. package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -1
  26. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js +5 -2
  27. package/dist/cjs/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  28. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js +2 -2
  29. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  30. package/dist/cjs/tools/segmentation/strategies/fillCircle.js +2 -2
  31. package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
  32. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +2 -2
  33. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  34. package/dist/cjs/tools/segmentation/strategies/fillSphere.js +1 -1
  35. package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
  36. package/dist/cjs/types/BoundsIJK.d.ts +3 -0
  37. package/dist/cjs/types/BoundsIJK.js +3 -0
  38. package/dist/cjs/types/BoundsIJK.js.map +1 -0
  39. package/dist/cjs/types/EventTypes.d.ts +5 -1
  40. package/dist/cjs/types/index.d.ts +2 -1
  41. package/dist/cjs/utilities/{segmentation/getBoundingBoxUtils.d.ts → boundingBox/extend2DBoundingBoxInViewAxis.d.ts} +1 -2
  42. package/dist/cjs/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js +13 -0
  43. package/dist/cjs/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js.map +1 -0
  44. package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +3 -0
  45. package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js +40 -0
  46. package/dist/cjs/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -0
  47. package/dist/cjs/utilities/boundingBox/index.d.ts +3 -0
  48. package/dist/cjs/utilities/boundingBox/index.js +11 -0
  49. package/dist/cjs/utilities/boundingBox/index.js.map +1 -0
  50. package/dist/cjs/utilities/index.d.ts +3 -1
  51. package/dist/cjs/utilities/index.js +5 -1
  52. package/dist/cjs/utilities/index.js.map +1 -1
  53. package/dist/cjs/utilities/pointInShapeCallback.d.ts +1 -2
  54. package/dist/cjs/utilities/pointInShapeCallback.js.map +1 -1
  55. package/dist/cjs/utilities/pointInSurroundingSphereCallback.d.ts +1 -1
  56. package/dist/cjs/utilities/pointInSurroundingSphereCallback.js +42 -12
  57. package/dist/cjs/utilities/pointInSurroundingSphereCallback.js.map +1 -1
  58. package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts +5 -0
  59. package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +51 -0
  60. package/dist/cjs/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -0
  61. package/dist/cjs/utilities/rectangleROITool/index.d.ts +2 -0
  62. package/dist/cjs/utilities/rectangleROITool/index.js +9 -0
  63. package/dist/cjs/utilities/rectangleROITool/index.js.map +1 -0
  64. package/dist/cjs/utilities/segmentation/index.d.ts +2 -2
  65. package/dist/cjs/utilities/segmentation/index.js +3 -4
  66. package/dist/cjs/utilities/segmentation/index.js.map +1 -1
  67. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.d.ts +19 -0
  68. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +42 -0
  69. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -0
  70. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.d.ts +5 -19
  71. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +13 -69
  72. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  73. package/dist/esm/enums/Events.d.ts +1 -0
  74. package/dist/esm/enums/Events.js +1 -0
  75. package/dist/esm/enums/Events.js.map +1 -1
  76. package/dist/esm/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.js.map +1 -1
  77. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.d.ts +1 -0
  78. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js +3 -0
  79. package/dist/esm/stateManagement/segmentation/SegmentationStateManager.js.map +1 -1
  80. package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js +1 -1
  81. package/dist/esm/stateManagement/segmentation/helpers/normalizeSegmentationInput.js.map +1 -1
  82. package/dist/esm/stateManagement/segmentation/segmentationState.d.ts +2 -1
  83. package/dist/esm/stateManagement/segmentation/segmentationState.js +7 -2
  84. package/dist/esm/stateManagement/segmentation/segmentationState.js.map +1 -1
  85. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.d.ts +2 -1
  86. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js +7 -1
  87. package/dist/esm/stateManagement/segmentation/triggerSegmentationEvents.js.map +1 -1
  88. package/dist/esm/synchronizers/callbacks/voiSyncCallback.js +17 -7
  89. package/dist/esm/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
  90. package/dist/esm/tools/CrosshairsTool.js +6 -5
  91. package/dist/esm/tools/CrosshairsTool.js.map +1 -1
  92. package/dist/esm/tools/ZoomTool.js +1 -1
  93. package/dist/esm/tools/ZoomTool.js.map +1 -1
  94. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +4 -0
  95. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  96. package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js +19 -1
  97. package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -1
  98. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js +5 -2
  99. package/dist/esm/tools/displayTools/Labelmap/addLabelmapToElement.js.map +1 -1
  100. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js +1 -1
  101. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  102. package/dist/esm/tools/segmentation/strategies/fillCircle.js +1 -1
  103. package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
  104. package/dist/esm/tools/segmentation/strategies/fillRectangle.js +1 -1
  105. package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  106. package/dist/esm/tools/segmentation/strategies/fillSphere.js +1 -1
  107. package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
  108. package/dist/esm/types/BoundsIJK.d.ts +3 -0
  109. package/dist/esm/types/BoundsIJK.js +2 -0
  110. package/dist/esm/types/BoundsIJK.js.map +1 -0
  111. package/dist/esm/types/EventTypes.d.ts +5 -1
  112. package/dist/esm/types/index.d.ts +2 -1
  113. package/dist/esm/utilities/{segmentation/getBoundingBoxUtils.d.ts → boundingBox/extend2DBoundingBoxInViewAxis.d.ts} +1 -2
  114. package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js +11 -0
  115. package/dist/esm/utilities/boundingBox/extend2DBoundingBoxInViewAxis.js.map +1 -0
  116. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.d.ts +3 -0
  117. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js +38 -0
  118. package/dist/esm/utilities/boundingBox/getBoundingBoxAroundShape.js.map +1 -0
  119. package/dist/esm/utilities/boundingBox/index.d.ts +3 -0
  120. package/dist/esm/utilities/boundingBox/index.js +4 -0
  121. package/dist/esm/utilities/boundingBox/index.js.map +1 -0
  122. package/dist/esm/utilities/index.d.ts +3 -1
  123. package/dist/esm/utilities/index.js +3 -1
  124. package/dist/esm/utilities/index.js.map +1 -1
  125. package/dist/esm/utilities/pointInShapeCallback.d.ts +1 -2
  126. package/dist/esm/utilities/pointInShapeCallback.js.map +1 -1
  127. package/dist/esm/utilities/pointInSurroundingSphereCallback.d.ts +1 -1
  128. package/dist/esm/utilities/pointInSurroundingSphereCallback.js +40 -10
  129. package/dist/esm/utilities/pointInSurroundingSphereCallback.js.map +1 -1
  130. package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.d.ts +5 -0
  131. package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js +45 -0
  132. package/dist/esm/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.js.map +1 -0
  133. package/dist/esm/utilities/rectangleROITool/index.d.ts +2 -0
  134. package/dist/esm/utilities/rectangleROITool/index.js +3 -0
  135. package/dist/esm/utilities/rectangleROITool/index.js.map +1 -0
  136. package/dist/esm/utilities/segmentation/index.d.ts +2 -2
  137. package/dist/esm/utilities/segmentation/index.js +2 -2
  138. package/dist/esm/utilities/segmentation/index.js.map +1 -1
  139. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.d.ts +19 -0
  140. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +37 -0
  141. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -0
  142. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.d.ts +5 -19
  143. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +13 -47
  144. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  145. package/dist/umd/index.js +1 -1
  146. package/dist/umd/index.js.map +1 -1
  147. package/package.json +4 -4
  148. package/dist/cjs/utilities/segmentation/getBoundingBoxUtils.js +0 -51
  149. package/dist/cjs/utilities/segmentation/getBoundingBoxUtils.js.map +0 -1
  150. package/dist/esm/utilities/segmentation/getBoundingBoxUtils.js +0 -47
  151. package/dist/esm/utilities/segmentation/getBoundingBoxUtils.js.map +0 -1
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const core_1 = require("@cornerstonejs/core");
7
+ const getBoundingBoxAroundShape_1 = __importDefault(require("../boundingBox/getBoundingBoxAroundShape"));
8
+ const extend2DBoundingBoxInViewAxis_1 = __importDefault(require("../boundingBox/extend2DBoundingBoxInViewAxis"));
9
+ function getBoundsIJKFromRectangleAnnotations(annotations, referenceVolume, options = {}) {
10
+ const AllBoundsIJK = [];
11
+ annotations.forEach((annotation) => {
12
+ var _a, _b;
13
+ const { data } = annotation;
14
+ const { points } = data.handles;
15
+ const { imageData, dimensions } = referenceVolume;
16
+ let pointsToUse = points;
17
+ if ((_a = data.cachedStats) === null || _a === void 0 ? void 0 : _a.projectionPoints) {
18
+ const { projectionPoints } = data.cachedStats;
19
+ pointsToUse = [].concat(...projectionPoints);
20
+ }
21
+ const rectangleCornersIJK = pointsToUse.map((world) => core_1.utilities.transformWorldToIndex(imageData, world));
22
+ let boundsIJK = (0, getBoundingBoxAroundShape_1.default)(rectangleCornersIJK, dimensions);
23
+ if (options.numSlicesToProject && !((_b = data.cachedStats) === null || _b === void 0 ? void 0 : _b.projectionPoints)) {
24
+ boundsIJK = (0, extend2DBoundingBoxInViewAxis_1.default)(boundsIJK, options.numSlicesToProject);
25
+ }
26
+ AllBoundsIJK.push(boundsIJK);
27
+ });
28
+ if (AllBoundsIJK.length === 1) {
29
+ return AllBoundsIJK[0];
30
+ }
31
+ const boundsIJK = AllBoundsIJK.reduce((accumulator, currentValue) => {
32
+ return {
33
+ iMin: Math.min(accumulator.iMin, currentValue.iMin),
34
+ jMin: Math.min(accumulator.jMin, currentValue.jMin),
35
+ kMin: Math.min(accumulator.kMin, currentValue.kMin),
36
+ iMax: Math.max(accumulator.iMax, currentValue.iMax),
37
+ jMax: Math.max(accumulator.jMax, currentValue.jMax),
38
+ kMax: Math.max(accumulator.kMax, currentValue.kMax),
39
+ };
40
+ }, {
41
+ iMin: Infinity,
42
+ jMin: Infinity,
43
+ kMin: Infinity,
44
+ iMax: -Infinity,
45
+ jMax: -Infinity,
46
+ kMax: -Infinity,
47
+ });
48
+ return boundsIJK;
49
+ }
50
+ exports.default = getBoundsIJKFromRectangleAnnotations;
51
+ //# sourceMappingURL=getBoundsIJKFromRectangleAnnotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBoundsIJKFromRectangleAnnotations.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/getBoundsIJKFromRectangleAnnotations.ts"],"names":[],"mappings":";;;;;AAAA,8CAA2D;AAE3D,yGAAiF;AACjF,iHAAyF;AAMzF,SAAS,oCAAoC,CAC3C,WAAW,EACX,eAAe,EACf,UAAU,EAAa;IAEvB,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEhC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC;QAElD,IAAI,WAAW,GAAG,MAAM,CAAC;QAEzB,IAAI,MAAA,IAAI,CAAC,WAAW,0CAAE,gBAAgB,EAAE;YACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9C,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC;SAC9C;QAED,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAiB,CAC3E,CAAC;QACF,IAAI,SAAS,GAAG,IAAA,mCAAyB,EAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAI3E,IAAI,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,gBAAgB,CAAA,EAAE;YACrE,SAAS,GAAG,IAAA,uCAA6B,EACvC,SAAS,EACT,OAAO,CAAC,kBAAkB,CAC3B,CAAC;SACH;QAED,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;KACxB;IAID,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CACnC,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE;QAC5B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;SACpD,CAAC;IACJ,CAAC,EACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,CAAC,QAAQ;KAChB,CACF,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kBAAe,oCAAoC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import getBoundsIJKFromRectangleAnnotations from './getBoundsIJKFromRectangleAnnotations';
2
+ export { getBoundsIJKFromRectangleAnnotations };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getBoundsIJKFromRectangleAnnotations = void 0;
7
+ const getBoundsIJKFromRectangleAnnotations_1 = __importDefault(require("./getBoundsIJKFromRectangleAnnotations"));
8
+ exports.getBoundsIJKFromRectangleAnnotations = getBoundsIJKFromRectangleAnnotations_1.default;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/rectangleROITool/index.ts"],"names":[],"mappings":";;;;;;AAAA,kHAA0F;AAEjF,+CAFF,8CAAoC,CAEE"}
@@ -1,7 +1,7 @@
1
- import { getBoundingBoxAroundShape, extend2DBoundingBoxInViewAxis } from './getBoundingBoxUtils';
2
1
  import thresholdVolumeByRange from './thresholdVolumeByRange';
2
+ import rectangleROIThresholdVolumeByRange from './rectangleROIThresholdVolumeByRange';
3
3
  import createMergedLabelmapForIndex from './createMergedLabelmapForIndex';
4
4
  import isValidRepresentationConfig from './isValidRepresentationConfig';
5
5
  import getDefaultRepresentationConfig from './getDefaultRepresentationConfig';
6
6
  import createLabelmapVolumeForViewport from './createLabelmapVolumeForViewport';
7
- export { getBoundingBoxAroundShape, extend2DBoundingBoxInViewAxis, thresholdVolumeByRange, createMergedLabelmapForIndex, isValidRepresentationConfig, getDefaultRepresentationConfig, createLabelmapVolumeForViewport, };
7
+ export { thresholdVolumeByRange, createMergedLabelmapForIndex, isValidRepresentationConfig, getDefaultRepresentationConfig, createLabelmapVolumeForViewport, rectangleROIThresholdVolumeByRange, };
@@ -3,12 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createLabelmapVolumeForViewport = exports.getDefaultRepresentationConfig = exports.isValidRepresentationConfig = exports.createMergedLabelmapForIndex = exports.thresholdVolumeByRange = exports.extend2DBoundingBoxInViewAxis = exports.getBoundingBoxAroundShape = void 0;
7
- const getBoundingBoxUtils_1 = require("./getBoundingBoxUtils");
8
- Object.defineProperty(exports, "getBoundingBoxAroundShape", { enumerable: true, get: function () { return getBoundingBoxUtils_1.getBoundingBoxAroundShape; } });
9
- Object.defineProperty(exports, "extend2DBoundingBoxInViewAxis", { enumerable: true, get: function () { return getBoundingBoxUtils_1.extend2DBoundingBoxInViewAxis; } });
6
+ exports.rectangleROIThresholdVolumeByRange = exports.createLabelmapVolumeForViewport = exports.getDefaultRepresentationConfig = exports.isValidRepresentationConfig = exports.createMergedLabelmapForIndex = exports.thresholdVolumeByRange = void 0;
10
7
  const thresholdVolumeByRange_1 = __importDefault(require("./thresholdVolumeByRange"));
11
8
  exports.thresholdVolumeByRange = thresholdVolumeByRange_1.default;
9
+ const rectangleROIThresholdVolumeByRange_1 = __importDefault(require("./rectangleROIThresholdVolumeByRange"));
10
+ exports.rectangleROIThresholdVolumeByRange = rectangleROIThresholdVolumeByRange_1.default;
12
11
  const createMergedLabelmapForIndex_1 = __importDefault(require("./createMergedLabelmapForIndex"));
13
12
  exports.createMergedLabelmapForIndex = createMergedLabelmapForIndex_1.default;
14
13
  const isValidRepresentationConfig_1 = __importDefault(require("./isValidRepresentationConfig"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAG+B;AAQ7B,0GAVA,+CAAyB,OAUA;AACzB,8GAVA,mDAA6B,OAUA;AAR/B,sFAA8D;AAS5D,iCATK,gCAAsB,CASL;AARxB,kGAA0E;AASxE,uCATK,sCAA4B,CASL;AAR9B,gGAAwE;AAStE,sCATK,qCAA2B,CASL;AAR7B,sGAA8E;AAS5E,yCATK,wCAA8B,CASL;AARhC,wGAAgF;AAS9E,0CATK,yCAA+B,CASL"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/index.ts"],"names":[],"mappings":";;;;;;AAAA,sFAA8D;AAQ5D,iCARK,gCAAsB,CAQL;AAPxB,8GAAsF;AAYpF,6CAZK,4CAAkC,CAYL;AAXpC,kGAA0E;AAOxE,uCAPK,sCAA4B,CAOL;AAN9B,gGAAwE;AAOtE,sCAPK,qCAA2B,CAOL;AAN7B,sGAA8E;AAO5E,yCAPK,wCAA8B,CAOL;AANhC,wGAAgF;AAO9E,0CAPK,yCAA+B,CAOL"}
@@ -0,0 +1,19 @@
1
+ import type { Types } from '@cornerstonejs/core';
2
+ export declare type ThresholdRangeOptions = {
3
+ lower: number;
4
+ upper: number;
5
+ numSlicesToProject?: number;
6
+ overwrite: boolean;
7
+ };
8
+ export declare type AnnotationForThresholding = {
9
+ data: {
10
+ handles: {
11
+ points: Types.Point3[];
12
+ };
13
+ cachedStats?: {
14
+ projectionPoints?: Types.Point3[][];
15
+ };
16
+ };
17
+ };
18
+ declare function rectangleROIThresholdVolumeByRange(annotationUIDs: string[], segmentationVolume: Types.IImageVolume, referenceVolumes: Types.IImageVolume[], options: ThresholdRangeOptions): Types.IImageVolume;
19
+ export default rectangleROIThresholdVolumeByRange;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const annotation_1 = require("../../stateManagement/annotation");
7
+ const tools_1 = require("../../tools");
8
+ const thresholdVolumeByRange_1 = __importDefault(require("./thresholdVolumeByRange"));
9
+ const getBoundsIJKFromRectangleAnnotations_1 = __importDefault(require("../rectangleROITool/getBoundsIJKFromRectangleAnnotations"));
10
+ function rectangleROIThresholdVolumeByRange(annotationUIDs, segmentationVolume, referenceVolumes, options) {
11
+ if (referenceVolumes.length > 1) {
12
+ throw new Error('thresholding based on more than one reference volumes data is not supported yet');
13
+ }
14
+ const referenceVolume = referenceVolumes[0];
15
+ const annotations = annotationUIDs.map((annotationUID) => {
16
+ return annotation_1.state.getAnnotation(annotationUID);
17
+ });
18
+ _validateAnnotations(annotations);
19
+ const boundsIJK = (0, getBoundsIJKFromRectangleAnnotations_1.default)(annotations, referenceVolume, options);
20
+ const optionsToUse = {
21
+ lower: options.lower,
22
+ upper: options.upper,
23
+ overwrite: options.overwrite,
24
+ boundsIJK,
25
+ };
26
+ const outputSegmentationVolume = (0, thresholdVolumeByRange_1.default)(segmentationVolume, referenceVolume, optionsToUse);
27
+ return outputSegmentationVolume;
28
+ }
29
+ function _validateAnnotations(annotations) {
30
+ const validToolNames = [
31
+ tools_1.RectangleROIThresholdTool.toolName,
32
+ tools_1.RectangleROIStartEndThresholdTool.toolName,
33
+ ];
34
+ for (const annotation of annotations) {
35
+ const name = annotation.metadata.toolName;
36
+ if (!validToolNames.includes(name)) {
37
+ throw new Error('rectangleROIThresholdVolumeByRange only supports RectangleROIThreshold and RectangleROIStartEndThreshold annotations');
38
+ }
39
+ }
40
+ }
41
+ exports.default = rectangleROIThresholdVolumeByRange;
42
+ //# sourceMappingURL=rectangleROIThresholdVolumeByRange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rectangleROIThresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/rectangleROIThresholdVolumeByRange.ts"],"names":[],"mappings":";;;;;AACA,iEAAyD;AACzD,uCAGqB;AAErB,sFAA8D;AAC9D,oIAA4G;AA+B5G,SAAS,kCAAkC,CACzC,cAAwB,EACxB,kBAAsC,EACtC,gBAAsC,EACtC,OAA8B;IAE9B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;KACH;IAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;QACvD,OAAO,kBAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,IAAA,8CAAoC,EACpD,WAAW,EACX,eAAe,EACf,OAAO,CACR,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS;KACV,CAAC;IAEF,MAAM,wBAAwB,GAAG,IAAA,gCAAsB,EACrD,kBAAkB,EAClB,eAAe,EACf,YAAY,CACb,CAAC;IAEF,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAW;IACvC,MAAM,cAAc,GAAG;QACrB,iCAAyB,CAAC,QAAQ;QAClC,yCAAiC,CAAC,QAAQ;KAC3C,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAC;SACH;KACF;AACH,CAAC;AAED,kBAAe,kCAAkC,CAAC"}
@@ -1,24 +1,10 @@
1
1
  import type { Types } from '@cornerstonejs/core';
2
- import { ToolGroupSpecificRepresentation } from '../../types/SegmentationStateTypes';
2
+ import { BoundsIJK } from '../../types';
3
3
  export declare type ThresholdRangeOptions = {
4
- higherThreshold: number;
5
- lowerThreshold: number;
6
- numSlicesToProject?: number;
4
+ upper: number;
5
+ lower: number;
6
+ boundsIJK: BoundsIJK;
7
7
  overwrite: boolean;
8
8
  };
9
- export declare type AnnotationForThresholding = {
10
- metadata: {
11
- enabledElement: Types.IEnabledElement;
12
- };
13
- data: {
14
- handles: {
15
- points: Types.Point3[];
16
- };
17
- cachedStats?: {
18
- projectionPoints?: Types.Point3[][];
19
- };
20
- };
21
- };
22
- declare function thresholdVolumeByRange(annotations: AnnotationForThresholding[], referenceVolumes: Types.IImageVolume[], segmentationRepresentation: ToolGroupSpecificRepresentation, options: ThresholdRangeOptions): Types.IImageVolume;
23
- export declare function extendBoundingBoxInSliceAxisIfNecessary(boundsIJK: [Types.Point2, Types.Point2, Types.Point2], numSlicesToProject: number): [Types.Point2, Types.Point2, Types.Point2];
9
+ declare function thresholdVolumeByRange(segmentationVolume: Types.IImageVolume, referenceVolume: Types.IImageVolume, options: ThresholdRangeOptions): Types.IImageVolume;
24
10
  export default thresholdVolumeByRange;
@@ -1,84 +1,28 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.extendBoundingBoxInSliceAxisIfNecessary = void 0;
23
- const core_1 = require("@cornerstonejs/core");
24
- const segmentation_1 = require("../segmentation");
25
3
  const utilities_1 = require("../../utilities");
26
4
  const triggerSegmentationEvents_1 = require("../../stateManagement/segmentation/triggerSegmentationEvents");
27
- const SegmentationState = __importStar(require("../../stateManagement/segmentation/segmentationState"));
28
- const { transformWorldToIndex } = core_1.utilities;
29
- function thresholdVolumeByRange(annotations, referenceVolumes, segmentationRepresentation, options) {
30
- if (referenceVolumes.length > 1) {
31
- throw new Error('thresholding more than one volumes is not supported yet');
32
- }
33
- const segmentation = SegmentationState.getSegmentation(segmentationRepresentation.segmentationId);
34
- const { segmentationId } = segmentationRepresentation;
35
- if (!segmentation) {
36
- throw new Error('No Segmentation Found');
37
- }
38
- const { type, representationData } = segmentation;
39
- const { volumeId } = representationData[type];
40
- const segmentationVolume = core_1.cache.getVolume(volumeId);
5
+ function thresholdVolumeByRange(segmentationVolume, referenceVolume, options) {
41
6
  const { scalarData, imageData: segmentationImageData } = segmentationVolume;
42
- const { lowerThreshold, higherThreshold, numSlicesToProject, overwrite } = options;
7
+ const { overwrite, boundsIJK, upper, lower } = options;
8
+ const { imageData } = referenceVolume;
9
+ const referenceValues = imageData.getPointData().getScalars().getData();
43
10
  if (overwrite) {
44
11
  for (let i = 0; i < scalarData.length; i++) {
45
12
  scalarData[i] = 0;
46
13
  }
47
14
  }
48
- annotations.forEach((annotation) => {
49
- var _a, _b;
50
- const { data } = annotation;
51
- const { points } = data.handles;
52
- const referenceVolume = referenceVolumes[0];
53
- const { imageData, dimensions } = referenceVolume;
54
- const values = imageData.getPointData().getScalars().getData();
55
- let pointsToUse = points;
56
- if ((_a = data.cachedStats) === null || _a === void 0 ? void 0 : _a.projectionPoints) {
57
- const { projectionPoints } = data.cachedStats;
58
- pointsToUse = [].concat(...projectionPoints);
15
+ const callback = ({ index, pointIJK }) => {
16
+ const offset = imageData.computeOffsetIndex(pointIJK);
17
+ const value = referenceValues[offset];
18
+ if (value <= lower || value >= upper) {
19
+ return;
59
20
  }
60
- const rectangleCornersIJK = pointsToUse.map((world) => transformWorldToIndex(imageData, world));
61
- let boundsIJK = (0, segmentation_1.getBoundingBoxAroundShape)(rectangleCornersIJK, dimensions);
62
- if (numSlicesToProject && !((_b = data.cachedStats) === null || _b === void 0 ? void 0 : _b.projectionPoints)) {
63
- boundsIJK = extendBoundingBoxInSliceAxisIfNecessary(boundsIJK, numSlicesToProject);
64
- }
65
- const callback = ({ index, pointIJK }) => {
66
- const offset = imageData.computeOffsetIndex(pointIJK);
67
- const value = values[offset];
68
- if (value <= lowerThreshold || value >= higherThreshold) {
69
- return;
70
- }
71
- scalarData[index] = 1;
72
- };
73
- (0, utilities_1.pointInShapeCallback)(segmentationImageData, () => true, callback, boundsIJK);
74
- });
75
- (0, triggerSegmentationEvents_1.triggerSegmentationDataModified)(segmentationId);
21
+ scalarData[index] = 1;
22
+ };
23
+ (0, utilities_1.pointInShapeCallback)(segmentationImageData, () => true, callback, boundsIJK);
24
+ (0, triggerSegmentationEvents_1.triggerSegmentationDataModified)(segmentationVolume.volumeId);
76
25
  return segmentationVolume;
77
26
  }
78
- function extendBoundingBoxInSliceAxisIfNecessary(boundsIJK, numSlicesToProject) {
79
- const extendedBoundsIJK = (0, segmentation_1.extend2DBoundingBoxInViewAxis)(boundsIJK, numSlicesToProject);
80
- return extendedBoundsIJK;
81
- }
82
- exports.extendBoundingBoxInSliceAxisIfNecessary = extendBoundingBoxInSliceAxisIfNecessary;
83
27
  exports.default = thresholdVolumeByRange;
84
28
  //# sourceMappingURL=thresholdVolumeByRange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/thresholdVolumeByRange.ts"],"names":[],"mappings":";;AAEA,+CAAuD;AACvD,4GAA+G;AAkB/G,SAAS,sBAAsB,CAC7B,kBAAsC,EACtC,eAAmC,EACnC,OAA8B;IAE9B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,kBAAkB,CAAC;IAC5E,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEvD,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IACtC,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC;IAGxE,IAAI,SAAS,EAAE;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACnB;KACF;IAED,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE;YACpC,OAAO;SACR;QAGD,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,IAAA,gCAAoB,EAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE7E,IAAA,2DAA+B,EAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAE7D,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,kBAAe,sBAAsB,CAAC"}
@@ -10,6 +10,7 @@ declare enum Events {
10
10
  SEGMENTATION_MODIFIED = "CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED",
11
11
  SEGMENTATION_RENDERED = "CORNERSTONE_TOOLS_SEGMENTATION_RENDERED",
12
12
  SEGMENTATION_REPRESENTATION_MODIFIED = "CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED",
13
+ SEGMENTATION_REMOVED = "CORNERSTONE_TOOLS_SEGMENTATION_REMOVED",
13
14
  SEGMENTATION_REPRESENTATION_REMOVED = "CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED",
14
15
  SEGMENTATION_DATA_MODIFIED = "CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED",
15
16
  KEY_DOWN = "CORNERSTONE_TOOLS_KEY_DOWN",
@@ -11,6 +11,7 @@ var Events;
11
11
  Events["SEGMENTATION_MODIFIED"] = "CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED";
12
12
  Events["SEGMENTATION_RENDERED"] = "CORNERSTONE_TOOLS_SEGMENTATION_RENDERED";
13
13
  Events["SEGMENTATION_REPRESENTATION_MODIFIED"] = "CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED";
14
+ Events["SEGMENTATION_REMOVED"] = "CORNERSTONE_TOOLS_SEGMENTATION_REMOVED";
14
15
  Events["SEGMENTATION_REPRESENTATION_REMOVED"] = "CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED";
15
16
  Events["SEGMENTATION_DATA_MODIFIED"] = "CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED";
16
17
  Events["KEY_DOWN"] = "CORNERSTONE_TOOLS_KEY_DOWN";
@@ -1 +1 @@
1
- {"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":"AAMA,IAAK,MAwOJ;AAxOD,WAAK,MAAM;IAYT,iEAAuD,CAAA;IAQvD,yEAA+D,CAAA;IAQ/D,uEAA6D,CAAA;IAQ7D,qEAA2D,CAAA;IAQ3D,uFAA6E,CAAA;IAQ7E,6EAAmE,CAAA;IAQnE,yFAA+E,CAAA;IAQ/E,uEAA6D,CAAA;IAY7D,2EAAiE,CAAA;IAQjE,2EAAiE,CAAA;IAQjE,yGAA+F,CAAA;IAQ/F,uGAA6F,CAAA;IAQ7F,qFAA2E,CAAA;IAY3E,iDAAuC,CAAA;IAQvC,6CAAmC,CAAA;IAYnC,qDAA2C,CAAA;IAQ3C,iDAAuC,CAAA;IASvC,uEAA6D,CAAA;IAQ7D,qDAA2C,CAAA;IAU3C,qDAA2C,CAAA;IAQ3C,uDAA6C,CAAA;IAQ7C,qEAA2D,CAAA;IAQ3D,uDAA6C,CAAA;AA6B/C,CAAC,EAxOI,MAAM,KAAN,MAAM,QAwOV;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../../../src/enums/Events.ts"],"names":[],"mappings":"AAMA,IAAK,MAgPJ;AAhPD,WAAK,MAAM;IAYT,iEAAuD,CAAA;IAQvD,yEAA+D,CAAA;IAQ/D,uEAA6D,CAAA;IAQ7D,qEAA2D,CAAA;IAQ3D,uFAA6E,CAAA;IAQ7E,6EAAmE,CAAA;IAQnE,yFAA+E,CAAA;IAQ/E,uEAA6D,CAAA;IAY7D,2EAAiE,CAAA;IAQjE,2EAAiE,CAAA;IAQjE,yGAA+F,CAAA;IAQ/F,yEAA+D,CAAA;IAQ/D,uGAA6F,CAAA;IAQ7F,qFAA2E,CAAA;IAY3E,iDAAuC,CAAA;IAQvC,6CAAmC,CAAA;IAYnC,qDAA2C,CAAA;IAQ3C,iDAAuC,CAAA;IASvC,uEAA6D,CAAA;IAQ7D,qDAA2C,CAAA;IAU3C,qDAA2C,CAAA;IAQ3C,uDAA6C,CAAA;IAQ7C,qEAA2D,CAAA;IAQ3D,uDAA6C,CAAA;AA6B/C,CAAC,EAhPI,MAAM,KAAN,MAAM,QAgPV;AAED,eAAe,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"segmentationRepresentationRemovedEventListener.js","sourceRoot":"","sources":["../../../../src/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,2CAA2C,CAAC;AAOlF,MAAM,8CAA8C,GAAG,UACrD,GAA+C;IAE/C,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAClE,yBAAyB,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,eAAe,8CAA8C,CAAC"}
1
+ {"version":3,"file":"segmentationRepresentationRemovedEventListener.js","sourceRoot":"","sources":["../../../../src/eventListeners/segmentation/segmentationRepresentationRemovedEventListener.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,2CAA2C,CAAC;AAOlF,MAAM,8CAA8C,GAAG,UACrD,GAA+C;IAE/C,MAAM,EAAE,WAAW,EAAE,6BAA6B,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAElE,yBAAyB,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,eAAe,8CAA8C,CAAC"}
@@ -14,6 +14,7 @@ export default class SegmentationStateManager {
14
14
  getGlobalConfig(): SegmentationRepresentationConfig;
15
15
  setGlobalConfig(config: SegmentationRepresentationConfig): void;
16
16
  getSegmentationRepresentationByUID(toolGroupId: string, segmentationRepresentationUID: string): ToolGroupSpecificRepresentation | undefined;
17
+ removeSegmentation(segmentationId: string): void;
17
18
  removeSegmentationRepresentation(toolGroupId: string, segmentationRepresentationUID: string): void;
18
19
  setActiveSegmentationRepresentation(toolGroupId: string, segmentationRepresentationUID: string): void;
19
20
  getToolGroupSpecificConfig(toolGroupId: string): SegmentationRepresentationConfig | undefined;
@@ -69,6 +69,9 @@ export default class SegmentationStateManager {
69
69
  segmentationRepresentationUID);
70
70
  return segmentationData;
71
71
  }
72
+ removeSegmentation(segmentationId) {
73
+ this.state.segmentations = this.state.segmentations.filter((segmentation) => segmentation.segmentationId !== segmentationId);
74
+ }
72
75
  removeSegmentationRepresentation(toolGroupId, segmentationRepresentationUID) {
73
76
  const toolGroupSegmentationRepresentations = this.getSegmentationRepresentations(toolGroupId);
74
77
  if (!toolGroupSegmentationRepresentations ||
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentationStateManager.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/SegmentationStateManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SegmentationStateManager.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/SegmentationStateManager.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ function normalizeSegmentationInput(segmentationInput) {
3
3
  return {
4
4
  segmentationId,
5
5
  cachedStats: {},
6
- label: segmentationId,
6
+ label: null,
7
7
  segmentsLocked: new Set(),
8
8
  type: representation.type,
9
9
  activeSegmentIndex: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeSegmentationInput.js","sourceRoot":"","sources":["../../../../../src/stateManagement/segmentation/helpers/normalizeSegmentationInput.ts"],"names":[],"mappings":"AAWA,SAAS,0BAA0B,CACjC,iBAA0C;IAE1C,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC;IAI7D,OAAO;QACL,cAAc;QACd,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,cAAc;QACrB,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,kBAAkB,EAAE,CAAC;QACrB,kBAAkB,EAAE;YAClB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBACrB,GAAG,cAAc,CAAC,IAAI;aACvB;SACF;KACF,CAAC;AACJ,CAAC;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"normalizeSegmentationInput.js","sourceRoot":"","sources":["../../../../../src/stateManagement/segmentation/helpers/normalizeSegmentationInput.ts"],"names":[],"mappings":"AAWA,SAAS,0BAA0B,CACjC,iBAA0C;IAE1C,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC;IAI7D,OAAO;QACL,cAAc;QACd,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,kBAAkB,EAAE,CAAC;QACrB,kBAAkB,EAAE;YAClB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBACrB,GAAG,cAAc,CAAC,IAAI;aACvB;SACF;KACF,CAAC;AACJ,CAAC;AAED,eAAe,0BAA0B,CAAC"}
@@ -11,7 +11,8 @@ declare function addSegmentationRepresentation(toolGroupId: string, segmentation
11
11
  declare function getGlobalConfig(): SegmentationRepresentationConfig;
12
12
  declare function setGlobalConfig(config: SegmentationRepresentationConfig, suppressEvents?: boolean): void;
13
13
  declare function getSegmentationRepresentationByUID(toolGroupId: string, segmentationRepresentationUID: string): ToolGroupSpecificRepresentation | undefined;
14
+ declare function removeSegmentation(segmentationId: string): void;
14
15
  declare function removeSegmentationRepresentation(toolGroupId: string, segmentationRepresentationUID: string): void;
15
16
  declare function getColorLUT(index: number): ColorLUT | undefined;
16
17
  declare function addColorLUT(colorLUT: ColorLUT, index: number): void;
17
- export { getDefaultSegmentationStateManager, getSegmentation, getSegmentations, addSegmentation, getSegmentationRepresentations, addSegmentationRepresentation, removeSegmentationRepresentation, getToolGroupSpecificConfig, setToolGroupSpecificConfig, getGlobalConfig, setGlobalConfig, getToolGroupsWithSegmentation, getSegmentationRepresentationByUID, addColorLUT, getColorLUT, };
18
+ export { getDefaultSegmentationStateManager, getSegmentation, getSegmentations, addSegmentation, removeSegmentation, getSegmentationRepresentations, addSegmentationRepresentation, removeSegmentationRepresentation, getToolGroupSpecificConfig, setToolGroupSpecificConfig, getGlobalConfig, setGlobalConfig, getToolGroupsWithSegmentation, getSegmentationRepresentationByUID, addColorLUT, getColorLUT, };
@@ -1,5 +1,5 @@
1
1
  import { defaultSegmentationStateManager } from './SegmentationStateManager';
2
- import { triggerSegmentationRepresentationModified, triggerSegmentationModified, triggerSegmentationRepresentationRemoved, } from './triggerSegmentationEvents';
2
+ import { triggerSegmentationRepresentationModified, triggerSegmentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationRemoved, } from './triggerSegmentationEvents';
3
3
  import { getDefaultRepresentationConfig } from '../../utilities/segmentation';
4
4
  import normalizeSegmentationInput from './helpers/normalizeSegmentationInput';
5
5
  function getDefaultSegmentationStateManager() {
@@ -75,6 +75,11 @@ function getSegmentationRepresentationByUID(toolGroupId, segmentationRepresentat
75
75
  const segmentationStateManager = getDefaultSegmentationStateManager();
76
76
  return segmentationStateManager.getSegmentationRepresentationByUID(toolGroupId, segmentationRepresentationUID);
77
77
  }
78
+ function removeSegmentation(segmentationId) {
79
+ const segmentationStateManager = getDefaultSegmentationStateManager();
80
+ segmentationStateManager.removeSegmentation(segmentationId);
81
+ triggerSegmentationRemoved(segmentationId);
82
+ }
78
83
  function removeSegmentationRepresentation(toolGroupId, segmentationRepresentationUID) {
79
84
  const segmentationStateManager = getDefaultSegmentationStateManager();
80
85
  segmentationStateManager.removeSegmentationRepresentation(toolGroupId, segmentationRepresentationUID);
@@ -99,5 +104,5 @@ function _initializeDefaultConfig(segmentation) {
99
104
  };
100
105
  setGlobalConfig(newGlobalConfig, suppressEvents);
101
106
  }
102
- export { getDefaultSegmentationStateManager, getSegmentation, getSegmentations, addSegmentation, getSegmentationRepresentations, addSegmentationRepresentation, removeSegmentationRepresentation, getToolGroupSpecificConfig, setToolGroupSpecificConfig, getGlobalConfig, setGlobalConfig, getToolGroupsWithSegmentation, getSegmentationRepresentationByUID, addColorLUT, getColorLUT, };
107
+ export { getDefaultSegmentationStateManager, getSegmentation, getSegmentations, addSegmentation, removeSegmentation, getSegmentationRepresentations, addSegmentationRepresentation, removeSegmentationRepresentation, getToolGroupSpecificConfig, setToolGroupSpecificConfig, getGlobalConfig, setGlobalConfig, getToolGroupsWithSegmentation, getSegmentationRepresentationByUID, addColorLUT, getColorLUT, };
103
108
  //# sourceMappingURL=segmentationState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"segmentationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/segmentationState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segmentationState.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/segmentationState.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ declare function triggerSegmentationRemoved(segmentationId: string): void;
1
2
  declare function triggerSegmentationRepresentationRemoved(toolGroupId: string, segmentationRepresentationUID: string): void;
2
3
  declare function triggerSegmentationRepresentationModified(toolGroupId: string, segmentationRepresentationUID?: string): void;
3
4
  declare function triggerSegmentationModified(segmentationId?: string): void;
4
5
  declare function triggerSegmentationDataModified(segmentationId: string, modifiedSlicesToUse?: number[]): void;
5
- export { triggerSegmentationRepresentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationDataModified, triggerSegmentationModified, };
6
+ export { triggerSegmentationRepresentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationDataModified, triggerSegmentationModified, triggerSegmentationRemoved, };
@@ -1,6 +1,12 @@
1
1
  import { triggerEvent, eventTarget } from '@cornerstonejs/core';
2
2
  import { Events } from '../../enums';
3
3
  import { getSegmentationRepresentations, getSegmentations, } from '../../stateManagement/segmentation/segmentationState';
4
+ function triggerSegmentationRemoved(segmentationId) {
5
+ const eventDetail = {
6
+ segmentationId,
7
+ };
8
+ triggerEvent(eventTarget, Events.SEGMENTATION_REMOVED, eventDetail);
9
+ }
4
10
  function triggerSegmentationRepresentationRemoved(toolGroupId, segmentationRepresentationUID) {
5
11
  const eventDetail = {
6
12
  toolGroupId,
@@ -49,5 +55,5 @@ function triggerSegmentationDataModified(segmentationId, modifiedSlicesToUse) {
49
55
  };
50
56
  triggerEvent(eventTarget, Events.SEGMENTATION_DATA_MODIFIED, eventDetail);
51
57
  }
52
- export { triggerSegmentationRepresentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationDataModified, triggerSegmentationModified, };
58
+ export { triggerSegmentationRepresentationModified, triggerSegmentationRepresentationRemoved, triggerSegmentationDataModified, triggerSegmentationModified, triggerSegmentationRemoved, };
53
59
  //# sourceMappingURL=triggerSegmentationEvents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"triggerSegmentationEvents.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/triggerSegmentationEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,sDAAsD,CAAC;AAe9D,SAAS,wCAAwC,CAC/C,WAAmB,EACnB,6BAAqC;IAErC,MAAM,WAAW,GAAiD;QAChE,WAAW;QACX,6BAA6B;KAC9B,CAAC;IAEF,YAAY,CACV,WAAW,EACX,MAAM,CAAC,mCAAmC,EAC1C,WAAW,CACZ,CAAC;AACJ,CAAC;AAOD,SAAS,yCAAyC,CAChD,WAAmB,EACnB,6BAAsC;IAEtC,MAAM,WAAW,GAAkD;QACjE,WAAW;QACX,6BAA6B;KAC9B,CAAC;IAEF,IAAI,6BAA6B,EAAE;QACjC,YAAY,CACV,WAAW,EACX,MAAM,CAAC,oCAAoC,EAC3C,WAAW,CACZ,CAAC;QACF,OAAO;KACR;IAMD,MAAM,2BAA2B,GAC/B,8BAA8B,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAEpD,2BAA2B,CAAC,OAAO,CAAC,CAAC,0BAA0B,EAAE,EAAE;QACjE,MAAM,EAAE,6BAA6B,EAAE,GAAG,0BAA0B,CAAC;QACrE,MAAM,WAAW,GAAkD;YACjE,WAAW;YACX,6BAA6B;SAC9B,CAAC;QAEF,YAAY,CACV,WAAW,EACX,MAAM,CAAC,oCAAoC,EAC3C,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAUD,SAAS,2BAA2B,CAAC,cAAuB;IAC1D,IAAI,eAAe,CAAC;IAEpB,IAAI,cAAc,EAAE;QAClB,eAAe,GAAG,CAAC,cAAc,CAAC,CAAC;KACpC;SAAM;QAEL,eAAe,GAAG,gBAAgB,EAAE,CAAC,GAAG,CACtC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,cAAc,CACvC,CAAC;KACH;IAID,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;QACzC,MAAM,WAAW,GAAoC;YACnD,cAAc;SACf,CAAC;QACF,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AAQL,CAAC;AAMD,SAAS,+BAA+B,CACtC,cAAsB,EACtB,mBAA8B;IAE9B,MAAM,WAAW,GAAwC;QACvD,cAAc;QACd,mBAAmB;KACpB,CAAC;IAEF,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED,OAAO,EAEL,yCAAyC,EACzC,wCAAwC,EAExC,+BAA+B,EAC/B,2BAA2B,GAC5B,CAAC"}
1
+ {"version":3,"file":"triggerSegmentationEvents.js","sourceRoot":"","sources":["../../../../src/stateManagement/segmentation/triggerSegmentationEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,sDAAsD,CAAC;AAa9D,SAAS,0BAA0B,CAAC,cAAsB;IACxD,MAAM,WAAW,GAAmC;QAClD,cAAc;KACf,CAAC;IAEF,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;AACtE,CAAC;AASD,SAAS,wCAAwC,CAC/C,WAAmB,EACnB,6BAAqC;IAErC,MAAM,WAAW,GAAiD;QAChE,WAAW;QACX,6BAA6B;KAC9B,CAAC;IAEF,YAAY,CACV,WAAW,EACX,MAAM,CAAC,mCAAmC,EAC1C,WAAW,CACZ,CAAC;AACJ,CAAC;AAOD,SAAS,yCAAyC,CAChD,WAAmB,EACnB,6BAAsC;IAEtC,MAAM,WAAW,GAAkD;QACjE,WAAW;QACX,6BAA6B;KAC9B,CAAC;IAEF,IAAI,6BAA6B,EAAE;QACjC,YAAY,CACV,WAAW,EACX,MAAM,CAAC,oCAAoC,EAC3C,WAAW,CACZ,CAAC;QACF,OAAO;KACR;IAMD,MAAM,2BAA2B,GAC/B,8BAA8B,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAEpD,2BAA2B,CAAC,OAAO,CAAC,CAAC,0BAA0B,EAAE,EAAE;QACjE,MAAM,EAAE,6BAA6B,EAAE,GAAG,0BAA0B,CAAC;QACrE,MAAM,WAAW,GAAkD;YACjE,WAAW;YACX,6BAA6B;SAC9B,CAAC;QAEF,YAAY,CACV,WAAW,EACX,MAAM,CAAC,oCAAoC,EAC3C,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAUD,SAAS,2BAA2B,CAAC,cAAuB;IAC1D,IAAI,eAAe,CAAC;IAEpB,IAAI,cAAc,EAAE;QAClB,eAAe,GAAG,CAAC,cAAc,CAAC,CAAC;KACpC;SAAM;QAEL,eAAe,GAAG,gBAAgB,EAAE,CAAC,GAAG,CACtC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,cAAc,CACvC,CAAC;KACH;IAID,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;QACzC,MAAM,WAAW,GAAoC;YACnD,cAAc;SACf,CAAC;QACF,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AAQL,CAAC;AAMD,SAAS,+BAA+B,CACtC,cAAsB,EACtB,mBAA8B;IAE9B,MAAM,WAAW,GAAwC;QACvD,cAAc;QACd,mBAAmB;KACpB,CAAC;IAEF,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;AAC5E,CAAC;AAED,OAAO,EAEL,yCAAyC,EACzC,wCAAwC,EAExC,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,GAC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getRenderingEngine, StackViewport, VolumeViewport, } from '@cornerstonejs/core';
1
+ import { getRenderingEngine, StackViewport, triggerEvent, Enums, VolumeViewport, } from '@cornerstonejs/core';
2
2
  export default function voiSyncCallback(synchronizerInstance, sourceViewport, targetViewport, voiModifiedEvent) {
3
3
  const eventDetail = voiModifiedEvent.detail;
4
4
  const { volumeId, range } = eventDetail;
@@ -9,13 +9,23 @@ export default function voiSyncCallback(synchronizerInstance, sourceViewport, ta
9
9
  const tViewport = renderingEngine.getViewport(targetViewport.viewportId);
10
10
  if (tViewport instanceof VolumeViewport) {
11
11
  const actorEntry = tViewport.getActor(volumeId);
12
- if (actorEntry) {
13
- const volumeActor = actorEntry.actor;
14
- volumeActor
15
- .getProperty()
16
- .getRGBTransferFunction(0)
17
- .setRange(range.lower, range.upper);
12
+ if (!actorEntry) {
13
+ return;
18
14
  }
15
+ const volumeActor = actorEntry.actor;
16
+ volumeActor
17
+ .getProperty()
18
+ .getRGBTransferFunction(0)
19
+ .setRange(range.lower, range.upper);
20
+ const { element } = tViewport;
21
+ triggerEvent(element, Enums.Events.VOI_MODIFIED, {
22
+ volumeId,
23
+ viewportId: tViewport.id,
24
+ range: {
25
+ lower: range.lower,
26
+ upper: range.upper,
27
+ },
28
+ });
19
29
  }
20
30
  else if (tViewport instanceof StackViewport) {
21
31
  tViewport.setProperties({
@@ -1 +1 @@
1
- {"version":3,"file":"voiSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/voiSyncCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,aAAa,EAEb,cAAc,GACf,MAAM,qBAAqB,CAAC;AAW7B,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,oBAAoB,EACpB,cAAiC,EACjC,cAAiC,EACjC,gBAAmD;IAEnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;IAExC,MAAM,eAAe,GAAG,kBAAkB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC7E,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,oCAAoC,cAAc,CAAC,iBAAiB,EAAE,CACvE,CAAC;KACH;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAEzE,IAAI,SAAS,YAAY,cAAc,EAAE;QACvC,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,UAAU,EAAE;YACd,MAAM,WAAW,GAAG,UAAU,CAAC,KAA0B,CAAC;YAC1D,WAAW;iBACR,WAAW,EAAE;iBACb,sBAAsB,CAAC,CAAC,CAAC;iBACzB,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;SACvC;KACF;SAAM,IAAI,SAAS,YAAY,aAAa,EAAE;QAC7C,SAAS,CAAC,aAAa,CAAC;YACtB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;KACJ;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IAED,SAAS,CAAC,MAAM,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"voiSyncCallback.js","sourceRoot":"","sources":["../../../../src/synchronizers/callbacks/voiSyncCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,YAAY,EAEZ,KAAK,EACL,cAAc,GACf,MAAM,qBAAqB,CAAC;AAW7B,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,oBAAoB,EACpB,cAAiC,EACjC,cAAiC,EACjC,gBAAmD;IAEnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;IAExC,MAAM,eAAe,GAAG,kBAAkB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC7E,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,oCAAoC,cAAc,CAAC,iBAAiB,EAAE,CACvE,CAAC;KACH;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAEzE,IAAI,SAAS,YAAY,cAAc,EAAE;QACvC,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;SACR;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAA0B,CAAC;QAC1D,WAAW;aACR,WAAW,EAAE;aACb,sBAAsB,CAAC,CAAC,CAAC;aACzB,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QAI9B,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE;YAC/C,QAAQ;YACR,UAAU,EAAE,SAAS,CAAC,EAAE;YACxB,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB;SACF,CAAC,CAAC;KACJ;SAAM,IAAI,SAAS,YAAY,aAAa,EAAE;QAC7C,SAAS,CAAC,aAAa,CAAC;YACtB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;KACJ;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IAED,SAAS,CAAC,MAAM,EAAE,CAAC;AACrB,CAAC"}
@@ -211,11 +211,12 @@ export default class CrosshairsTool extends AnnotationTool {
211
211
  }
212
212
  }
213
213
  if (this.configuration.autoPan?.enabled) {
214
- const viewports = csUtils.getVolumeViewportsContainingSameVolumes(viewport, renderingEngine.id);
215
- viewports.forEach(({ id: viewportId }) => {
216
- if (viewportId !== viewport.id) {
217
- this._autoPanViewportIfNecessary(viewportId, renderingEngine);
218
- }
214
+ const toolGroup = getToolGroupForViewport(viewport.id, renderingEngine.id);
215
+ const otherViewportIds = toolGroup
216
+ .getViewportIds()
217
+ .filter((id) => id !== viewport.id);
218
+ otherViewportIds.forEach((viewportId) => {
219
+ this._autoPanViewportIfNecessary(viewportId, renderingEngine);
219
220
  });
220
221
  }
221
222
  triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender);