@cornerstonejs/tools 0.46.3 → 0.48.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 (175) hide show
  1. package/dist/cjs/init.js +1 -1
  2. package/dist/cjs/init.js.map +1 -1
  3. package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +14 -16
  4. package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +98 -90
  5. package/dist/cjs/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
  6. package/dist/cjs/stateManagement/annotation/annotationState.d.ts +11 -10
  7. package/dist/cjs/stateManagement/annotation/annotationState.js +40 -45
  8. package/dist/cjs/stateManagement/annotation/annotationState.js.map +1 -1
  9. package/dist/cjs/stateManagement/annotation/helpers/state.d.ts +4 -0
  10. package/dist/cjs/stateManagement/annotation/helpers/state.js +49 -0
  11. package/dist/cjs/stateManagement/annotation/helpers/state.js.map +1 -0
  12. package/dist/cjs/stateManagement/index.d.ts +4 -3
  13. package/dist/cjs/stateManagement/index.js +4 -3
  14. package/dist/cjs/stateManagement/index.js.map +1 -1
  15. package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.d.ts +3 -0
  16. package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js +23 -0
  17. package/dist/cjs/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -0
  18. package/dist/cjs/store/ToolGroupManager/index.d.ts +2 -1
  19. package/dist/cjs/store/ToolGroupManager/index.js +3 -1
  20. package/dist/cjs/store/ToolGroupManager/index.js.map +1 -1
  21. package/dist/cjs/store/filterToolsWithAnnotationsForElement.js +2 -2
  22. package/dist/cjs/store/filterToolsWithAnnotationsForElement.js.map +1 -1
  23. package/dist/cjs/store/removeEnabledElement.js +1 -1
  24. package/dist/cjs/store/removeEnabledElement.js.map +1 -1
  25. package/dist/cjs/tools/CrosshairsTool.d.ts +1 -0
  26. package/dist/cjs/tools/CrosshairsTool.js +19 -17
  27. package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
  28. package/dist/cjs/tools/ReferenceCursors.d.ts +0 -1
  29. package/dist/cjs/tools/ReferenceCursors.js +10 -12
  30. package/dist/cjs/tools/ReferenceCursors.js.map +1 -1
  31. package/dist/cjs/tools/ReferenceLinesTool.js +3 -2
  32. package/dist/cjs/tools/ReferenceLinesTool.js.map +1 -1
  33. package/dist/cjs/tools/ScaleOverlayTool.js +7 -8
  34. package/dist/cjs/tools/ScaleOverlayTool.js.map +1 -1
  35. package/dist/cjs/tools/WindowLevelTool.js +2 -1
  36. package/dist/cjs/tools/WindowLevelTool.js.map +1 -1
  37. package/dist/cjs/tools/annotation/AngleTool.js +5 -4
  38. package/dist/cjs/tools/annotation/AngleTool.js.map +1 -1
  39. package/dist/cjs/tools/annotation/ArrowAnnotateTool.js +8 -7
  40. package/dist/cjs/tools/annotation/ArrowAnnotateTool.js.map +1 -1
  41. package/dist/cjs/tools/annotation/BidirectionalTool.js +5 -4
  42. package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
  43. package/dist/cjs/tools/annotation/CobbAngleTool.js +5 -4
  44. package/dist/cjs/tools/annotation/CobbAngleTool.js.map +1 -1
  45. package/dist/cjs/tools/annotation/EllipticalROITool.js +5 -4
  46. package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
  47. package/dist/cjs/tools/annotation/LengthTool.js +5 -4
  48. package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
  49. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +4 -3
  50. package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  51. package/dist/cjs/tools/annotation/ProbeTool.js +7 -5
  52. package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
  53. package/dist/cjs/tools/annotation/RectangleROITool.js +7 -5
  54. package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
  55. package/dist/cjs/tools/base/AnnotationDisplayTool.js +2 -2
  56. package/dist/cjs/tools/base/AnnotationDisplayTool.js.map +1 -1
  57. package/dist/cjs/tools/segmentation/PaintFillTool.js +2 -1
  58. package/dist/cjs/tools/segmentation/PaintFillTool.js.map +1 -1
  59. package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js +5 -4
  60. package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
  61. package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js +4 -3
  62. package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
  63. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js +2 -1
  64. package/dist/cjs/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  65. package/dist/cjs/tools/segmentation/strategies/fillCircle.js +3 -2
  66. package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
  67. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js +2 -1
  68. package/dist/cjs/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  69. package/dist/cjs/tools/segmentation/strategies/fillSphere.js +2 -1
  70. package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
  71. package/dist/cjs/types/AnnotationGroupSelector.d.ts +2 -0
  72. package/dist/cjs/types/AnnotationGroupSelector.js +3 -0
  73. package/dist/cjs/types/AnnotationGroupSelector.js.map +1 -0
  74. package/dist/cjs/types/AnnotationTypes.d.ts +4 -4
  75. package/dist/cjs/types/IAnnotationManager.d.ts +14 -0
  76. package/dist/cjs/types/IAnnotationManager.js +3 -0
  77. package/dist/cjs/types/IAnnotationManager.js.map +1 -0
  78. package/dist/cjs/types/index.d.ts +4 -2
  79. package/dist/cjs/utilities/getAnnotationNearPoint.js +5 -4
  80. package/dist/cjs/utilities/getAnnotationNearPoint.js.map +1 -1
  81. package/dist/cjs/utilities/segmentation/createMergedLabelmapForIndex.js +3 -3
  82. package/dist/cjs/utilities/segmentation/createMergedLabelmapForIndex.js.map +1 -1
  83. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +2 -2
  84. package/dist/cjs/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -1
  85. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js +3 -2
  86. package/dist/cjs/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  87. package/dist/esm/init.js +2 -2
  88. package/dist/esm/init.js.map +1 -1
  89. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.d.ts +14 -16
  90. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js +100 -91
  91. package/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js.map +1 -1
  92. package/dist/esm/stateManagement/annotation/annotationState.d.ts +11 -10
  93. package/dist/esm/stateManagement/annotation/annotationState.js +38 -44
  94. package/dist/esm/stateManagement/annotation/annotationState.js.map +1 -1
  95. package/dist/esm/stateManagement/annotation/helpers/state.d.ts +4 -0
  96. package/dist/esm/stateManagement/annotation/helpers/state.js +45 -0
  97. package/dist/esm/stateManagement/annotation/helpers/state.js.map +1 -0
  98. package/dist/esm/stateManagement/index.d.ts +4 -3
  99. package/dist/esm/stateManagement/index.js +2 -2
  100. package/dist/esm/stateManagement/index.js.map +1 -1
  101. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.d.ts +3 -0
  102. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js +21 -0
  103. package/dist/esm/store/ToolGroupManager/getToolGroupsWithToolName.js.map +1 -0
  104. package/dist/esm/store/ToolGroupManager/index.d.ts +2 -1
  105. package/dist/esm/store/ToolGroupManager/index.js +2 -1
  106. package/dist/esm/store/ToolGroupManager/index.js.map +1 -1
  107. package/dist/esm/store/filterToolsWithAnnotationsForElement.js +2 -2
  108. package/dist/esm/store/filterToolsWithAnnotationsForElement.js.map +1 -1
  109. package/dist/esm/store/removeEnabledElement.js +1 -1
  110. package/dist/esm/store/removeEnabledElement.js.map +1 -1
  111. package/dist/esm/tools/CrosshairsTool.d.ts +1 -0
  112. package/dist/esm/tools/CrosshairsTool.js +19 -17
  113. package/dist/esm/tools/CrosshairsTool.js.map +1 -1
  114. package/dist/esm/tools/ReferenceCursors.d.ts +0 -1
  115. package/dist/esm/tools/ReferenceCursors.js +10 -12
  116. package/dist/esm/tools/ReferenceCursors.js.map +1 -1
  117. package/dist/esm/tools/ReferenceLinesTool.js +3 -2
  118. package/dist/esm/tools/ReferenceLinesTool.js.map +1 -1
  119. package/dist/esm/tools/ScaleOverlayTool.js +7 -8
  120. package/dist/esm/tools/ScaleOverlayTool.js.map +1 -1
  121. package/dist/esm/tools/WindowLevelTool.js +2 -1
  122. package/dist/esm/tools/WindowLevelTool.js.map +1 -1
  123. package/dist/esm/tools/annotation/AngleTool.js +5 -4
  124. package/dist/esm/tools/annotation/AngleTool.js.map +1 -1
  125. package/dist/esm/tools/annotation/ArrowAnnotateTool.js +8 -7
  126. package/dist/esm/tools/annotation/ArrowAnnotateTool.js.map +1 -1
  127. package/dist/esm/tools/annotation/BidirectionalTool.js +5 -4
  128. package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
  129. package/dist/esm/tools/annotation/CobbAngleTool.js +5 -4
  130. package/dist/esm/tools/annotation/CobbAngleTool.js.map +1 -1
  131. package/dist/esm/tools/annotation/EllipticalROITool.js +5 -4
  132. package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
  133. package/dist/esm/tools/annotation/LengthTool.js +5 -4
  134. package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
  135. package/dist/esm/tools/annotation/PlanarFreehandROITool.js +4 -3
  136. package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -1
  137. package/dist/esm/tools/annotation/ProbeTool.js +7 -5
  138. package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
  139. package/dist/esm/tools/annotation/RectangleROITool.js +7 -5
  140. package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
  141. package/dist/esm/tools/base/AnnotationDisplayTool.js +3 -3
  142. package/dist/esm/tools/base/AnnotationDisplayTool.js.map +1 -1
  143. package/dist/esm/tools/segmentation/PaintFillTool.js +2 -1
  144. package/dist/esm/tools/segmentation/PaintFillTool.js.map +1 -1
  145. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +5 -4
  146. package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
  147. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js +4 -3
  148. package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
  149. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js +2 -1
  150. package/dist/esm/tools/segmentation/strategies/eraseRectangle.js.map +1 -1
  151. package/dist/esm/tools/segmentation/strategies/fillCircle.js +3 -2
  152. package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
  153. package/dist/esm/tools/segmentation/strategies/fillRectangle.js +2 -1
  154. package/dist/esm/tools/segmentation/strategies/fillRectangle.js.map +1 -1
  155. package/dist/esm/tools/segmentation/strategies/fillSphere.js +2 -1
  156. package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
  157. package/dist/esm/types/AnnotationGroupSelector.d.ts +2 -0
  158. package/dist/esm/types/AnnotationGroupSelector.js +2 -0
  159. package/dist/esm/types/AnnotationGroupSelector.js.map +1 -0
  160. package/dist/esm/types/AnnotationTypes.d.ts +4 -4
  161. package/dist/esm/types/IAnnotationManager.d.ts +14 -0
  162. package/dist/esm/types/IAnnotationManager.js +2 -0
  163. package/dist/esm/types/IAnnotationManager.js.map +1 -0
  164. package/dist/esm/types/index.d.ts +4 -2
  165. package/dist/esm/utilities/getAnnotationNearPoint.js +3 -2
  166. package/dist/esm/utilities/getAnnotationNearPoint.js.map +1 -1
  167. package/dist/esm/utilities/segmentation/createMergedLabelmapForIndex.js +3 -3
  168. package/dist/esm/utilities/segmentation/createMergedLabelmapForIndex.js.map +1 -1
  169. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js +2 -2
  170. package/dist/esm/utilities/segmentation/rectangleROIThresholdVolumeByRange.js.map +1 -1
  171. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js +3 -2
  172. package/dist/esm/utilities/segmentation/thresholdVolumeByRange.js.map +1 -1
  173. package/dist/umd/index.js +1 -1
  174. package/dist/umd/index.js.map +1 -1
  175. package/package.json +3 -3
@@ -7,7 +7,8 @@ import { pointInShapeCallback } from '../../../utilities';
7
7
  const { transformWorldToIndex } = csUtils;
8
8
  function fillCircle(enabledElement, operationData, threshold = false) {
9
9
  const { volume: segmentationVolume, imageVolume, points, segmentsLocked, segmentIndex, segmentationId, strategySpecificConfiguration, } = operationData;
10
- const { imageData, dimensions, scalarData } = segmentationVolume;
10
+ const { imageData, dimensions } = segmentationVolume;
11
+ const scalarData = segmentationVolume.getScalarData();
11
12
  const { viewport } = enabledElement;
12
13
  const center = vec3.fromValues(0, 0, 0);
13
14
  points.forEach((point) => {
@@ -60,7 +61,7 @@ function fillCircle(enabledElement, operationData, threshold = false) {
60
61
  }
61
62
  function isWithinThreshold(index, imageVolume, strategySpecificConfiguration) {
62
63
  const { THRESHOLD_INSIDE_CIRCLE } = strategySpecificConfiguration;
63
- const voxelValue = imageVolume.scalarData[index];
64
+ const voxelValue = imageVolume.getScalarData()[index];
64
65
  const { threshold } = THRESHOLD_INSIDE_CIRCLE;
65
66
  return threshold[0] <= voxelValue && voxelValue <= threshold[1];
66
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fillCircle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillCircle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fillCircle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillCircle.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@ import { triggerSegmentationDataModified } from '../../../stateManagement/segmen
5
5
  const { transformWorldToIndex } = csUtils;
6
6
  function fillRectangle(enabledElement, operationData, inside = true) {
7
7
  const { volume: segmentation, points, segmentsLocked, segmentIndex, segmentationId, constraintFn, } = operationData;
8
- const { imageData, dimensions, scalarData } = segmentation;
8
+ const { imageData, dimensions } = segmentation;
9
+ const scalarData = segmentation.getScalarData();
9
10
  let rectangleCornersIJK = points.map((world) => {
10
11
  return transformWorldToIndex(imageData, world);
11
12
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fillRectangle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAElH,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;AAoB1C,SAAS,aAAa,CACpB,cAAqC,EACrC,aAA4B,EAC5B,MAAM,GAAG,IAAI;IAEb,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,GACb,GAAG,aAAa,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IAE3D,IAAI,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7C,OAAO,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAGH,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAE7E,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;QAChD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAGD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IAEpC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9C,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO;SACR;QAED,IAAI,CAAC,YAAY,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;YACjC,OAAO;SACR;QAED,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;YAC1B,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;SAClC;IACH,CAAC,CAAC;IAEF,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEvE,+BAA+B,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC;AASD,MAAM,UAAU,mBAAmB,CACjC,cAAqC,EACrC,aAA4B;IAE5B,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AASD,MAAM,UAAU,oBAAoB,CAClC,cAAqC,EACrC,aAA4B;IAE5B,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"fillRectangle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillRectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAElH,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;AAoB1C,SAAS,aAAa,CACpB,cAAqC,EACrC,aAA4B,EAC5B,MAAM,GAAG,IAAI;IAEb,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,GACb,GAAG,aAAa,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IAC/C,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;IAEhD,IAAI,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7C,OAAO,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAGH,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAE7E,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;QAChD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAGD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IAEpC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9C,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO;SACR;QAED,IAAI,CAAC,YAAY,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;YACjC,OAAO;SACR;QAED,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;YAC1B,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;SAClC;IACH,CAAC,CAAC;IAEF,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEvE,+BAA+B,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC;AASD,MAAM,UAAU,mBAAmB,CACjC,cAAqC,EACrC,aAA4B;IAE5B,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AASD,MAAM,UAAU,oBAAoB,CAClC,cAAqC,EACrC,aAA4B;IAE5B,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC"}
@@ -3,7 +3,8 @@ import { pointInSurroundingSphereCallback } from '../../../utilities';
3
3
  function fillSphere(enabledElement, operationData, _inside = true) {
4
4
  const { viewport } = enabledElement;
5
5
  const { volume: segmentation, segmentsLocked, segmentIndex, segmentationId, points, } = operationData;
6
- const { scalarData, imageData, dimensions } = segmentation;
6
+ const { imageData, dimensions } = segmentation;
7
+ const scalarData = segmentation.getScalarData();
7
8
  const scalarIndex = [];
8
9
  const callback = ({ index, value }) => {
9
10
  if (segmentsLocked.includes(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAatE,SAAS,UAAU,CACjB,cAAqC,EACrC,aAA4B,EAC5B,OAAO,GAAG,IAAI;IAEd,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,MAAM,GACP,GAAG,aAAa,CAAC;IAElB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IAC3D,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO;SACR;QACD,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,gCAAgC,CAC9B,SAAS,EACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EACtB,QAAQ,EACR,QAAiC,CAClC,CAAC;IAKF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,CAAC,EAAE,EACnC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CACvB,CAAC;IAEF,+BAA+B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC9D,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAC9B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAC/B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAatE,SAAS,UAAU,CACjB,cAAqC,EACrC,aAA4B,EAC5B,OAAO,GAAG,IAAI;IAEd,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,MAAM,GACP,GAAG,aAAa,CAAC;IAElB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IAC/C,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO;SACR;QACD,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,gCAAgC,CAC9B,SAAS,EACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EACtB,QAAQ,EACR,QAAiC,CAClC,CAAC;IAKF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,CAAC,EAAE,EACnC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CACvB,CAAC;IAEF,+BAA+B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC9D,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAC9B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAC/B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare type AnnotationGroupSelector = HTMLDivElement | string;
2
+ export default AnnotationGroupSelector;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AnnotationGroupSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnnotationGroupSelector.js","sourceRoot":"","sources":["../../../src/types/AnnotationGroupSelector.ts"],"names":[],"mappings":""}
@@ -36,10 +36,10 @@ declare type Annotation = {
36
36
  };
37
37
  };
38
38
  declare type Annotations = Array<Annotation>;
39
- declare type FrameOfReferenceSpecificAnnotations = {
40
- [key: string]: Annotations;
39
+ declare type GroupSpecificAnnotations = {
40
+ [toolName: string]: Annotations;
41
41
  };
42
42
  declare type AnnotationState = {
43
- [key: string]: FrameOfReferenceSpecificAnnotations;
43
+ [key: string]: GroupSpecificAnnotations;
44
44
  };
45
- export { FrameOfReferenceSpecificAnnotations, AnnotationState, Annotations, Annotation, };
45
+ export { Annotation, Annotations, GroupSpecificAnnotations, AnnotationState };
@@ -0,0 +1,14 @@
1
+ import AnnotationGroupSelector from './AnnotationGroupSelector';
2
+ import { Annotation, Annotations, GroupSpecificAnnotations } from './AnnotationTypes';
3
+ interface IAnnotationManager {
4
+ getGroupKey: (annotationGroupSelector: AnnotationGroupSelector) => string;
5
+ addAnnotation: (annotation: Annotation, groupKey: string) => void;
6
+ getAnnotations: (groupKey: string, toolName?: string) => GroupSpecificAnnotations | Annotations;
7
+ getAnnotation: (annotationUID: string) => Annotation;
8
+ removeAnnotation: (annotationUID: string) => void;
9
+ removeAnnotations: (groupKey: string) => void;
10
+ removeAllAnnotations: () => void;
11
+ getNumberOfAnnotations: (groupKey: string, toolName?: string) => number;
12
+ getNumberOfAllAnnotations: () => number;
13
+ }
14
+ export default IAnnotationManager;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IAnnotationManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAnnotationManager.js","sourceRoot":"","sources":["../../../src/types/IAnnotationManager.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState } from './AnnotationTypes';
1
+ import type { Annotation, Annotations, AnnotationState, GroupSpecificAnnotations } from './AnnotationTypes';
2
2
  import type * as EventTypes from './EventTypes';
3
3
  import type * as LabelmapTypes from './LabelmapTypes';
4
4
  import type IPoints from './IPoints';
@@ -24,4 +24,6 @@ import ISynchronizerEventHandler from './ISynchronizerEventHandler';
24
24
  import { FloodFillGetter, FloodFillOptions, FloodFillResult } from './FloodFillTypes';
25
25
  import IToolClassReference from './IToolClassReference';
26
26
  import { ContourSegmentationData } from './ContourTypes';
27
- export type { Annotation, Annotations, FrameOfReferenceSpecificAnnotations, AnnotationState, AnnotationStyle, ToolSpecificAnnotationTypes, JumpToSliceOptions, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, ITouchPoints, IDistance, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, IToolClassReference, ISynchronizerEventHandler, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, ScrollOptions, CINETypes, BoundsIJK, SVGDrawingHelper, FloodFillResult, FloodFillGetter, FloodFillOptions, ContourSegmentationData, };
27
+ import IAnnotationManager from './IAnnotationManager';
28
+ import AnnotationGroupSelector from './AnnotationGroupSelector';
29
+ export type { Annotation, Annotations, IAnnotationManager, GroupSpecificAnnotations, AnnotationState, AnnotationStyle, ToolSpecificAnnotationTypes, JumpToSliceOptions, AnnotationGroupSelector, PlanarBoundingBox, ToolProps, PublicToolProps, EventTypes, IPoints, ITouchPoints, IDistance, IToolBinding, SetToolBindingsType, ToolOptionsType, InteractionTypes, IToolGroup, IToolClassReference, ISynchronizerEventHandler, ToolHandle, AnnotationHandle, TextBoxHandle, Segmentation, SegmentationState, SegmentationRepresentationData, SegmentationRepresentationConfig, RepresentationConfig, ToolGroupSpecificRepresentationState, ToolGroupSpecificLabelmapRepresentation, ToolGroupSpecificRepresentation, RepresentationPublicInput, Color, ColorLUT, LabelmapTypes, SVGCursorDescriptor, SVGPoint, ScrollOptions, CINETypes, BoundsIJK, SVGDrawingHelper, FloodFillResult, FloodFillGetter, FloodFillOptions, ContourSegmentationData, };
@@ -24,8 +24,9 @@ function getAnnotationNearPointOnEnabledElement(enabledElement, point, proximity
24
24
  return null;
25
25
  }
26
26
  function findAnnotationNearPointByTool(tool, enabledElement, point, proximity) {
27
- const annotations = getAnnotations(enabledElement.viewport.element, tool.constructor.toolName);
28
- const currentId = enabledElement.viewport?.getCurrentImageId?.();
27
+ const { viewport } = enabledElement;
28
+ const annotations = getAnnotations(tool.constructor.toolName, viewport?.element);
29
+ const currentId = viewport?.getCurrentImageId?.();
29
30
  if (annotations?.length) {
30
31
  const { element } = enabledElement.viewport;
31
32
  for (const annotation of annotations) {
@@ -1 +1 @@
1
- {"version":3,"file":"getAnnotationNearPoint.js","sourceRoot":"","sources":["../../../src/utilities/getAnnotationNearPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,gBAAgB,MAAM,2BAA2B,CAAC;AAW9D,SAAS,sBAAsB,CAC7B,OAAuB,EACvB,WAAyB,EACzB,SAAS,GAAG,CAAC;IAIb,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,OAAO,sCAAsC,CAC3C,cAAc,EACd,WAAW,EACX,SAAS,CACV,CAAC;AACJ,CAAC;AAYD,SAAS,sCAAsC,CAC7C,cAAqC,EACrC,KAAmB,EACnB,SAAiB;IAIjB,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;IACzD,MAAM,SAAS,GAAG,gBAAgB,CAAC,uBAAuB,CACxD,UAAU,EACV,iBAAiB,CAClB,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,KAAK,GAAG,6BAA6B,CACzC,KAAK,CAAC,IAAI,CAAC,EACX,cAAc,EACd,KAAK,EACL,SAAS,CACV,CAAC;QACF,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAcD,SAAS,6BAA6B,CACpC,IAAoB,EACpB,cAAqC,EACrC,KAAmB,EACnB,SAAiB;IAKjB,MAAM,WAAW,GAAG,cAAc,CAChC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAC9B,IAAI,CAAC,WAA+B,CAAC,QAAQ,CAC/C,CAAC;IACF,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CAAC;IACjE,IAAI,WAAW,EAAE,MAAM,EAAE;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC;QAC5C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,EAAE,iBAAiB,CAAC;YACjE,IACE,CAAC,SAAS,IAAI,iBAAiB,IAAI,SAAS,KAAK,iBAAiB,CAAC;gBACnE,CAAC,IAAI,CAAC,eAAe,EACrB;gBACA,SAAS;aACV;YAED,IACE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC/D,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,EACnE;gBACA,OAAO,UAAU,CAAC;aACnB;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,sCAAsC,EAAE,CAAC"}
1
+ {"version":3,"file":"getAnnotationNearPoint.js","sourceRoot":"","sources":["../../../src/utilities/getAnnotationNearPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,gBAAgB,MAAM,2BAA2B,CAAC;AAW9D,SAAS,sBAAsB,CAC7B,OAAuB,EACvB,WAAyB,EACzB,SAAS,GAAG,CAAC;IAIb,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,OAAO,sCAAsC,CAC3C,cAAc,EACd,WAAW,EACX,SAAS,CACV,CAAC;AACJ,CAAC;AAYD,SAAS,sCAAsC,CAC7C,cAAqC,EACrC,KAAmB,EACnB,SAAiB;IAIjB,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;IACzD,MAAM,SAAS,GAAG,gBAAgB,CAAC,uBAAuB,CACxD,UAAU,EACV,iBAAiB,CAClB,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,KAAK,GAAG,6BAA6B,CACzC,KAAK,CAAC,IAAI,CAAC,EACX,cAAc,EACd,KAAK,EACL,SAAS,CACV,CAAC;QACF,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAcD,SAAS,6BAA6B,CACpC,IAAoB,EACpB,cAAqC,EACrC,KAAmB,EACnB,SAAiB;IAKjB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IAEpC,MAAM,WAAW,GAAG,cAAc,CAC/B,IAAI,CAAC,WAA+B,CAAC,QAAQ,EAC9C,QAAQ,EAAE,OAAO,CAClB,CAAC;IACF,MAAM,SAAS,GAAG,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CAAC;IAClD,IAAI,WAAW,EAAE,MAAM,EAAE;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC;QAC5C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,EAAE,iBAAiB,CAAC;YACjE,IACE,CAAC,SAAS,IAAI,iBAAiB,IAAI,SAAS,KAAK,iBAAiB,CAAC;gBACnE,CAAC,IAAI,CAAC,eAAe,EACrB;gBACA,SAAS;aACV;YAED,IACE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC/D,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,EACnE;gBACA,OAAO,UAAU,CAAC;aACnB;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,sCAAsC,EAAE,CAAC"}
@@ -9,10 +9,10 @@ function createMergedLabelmapForIndex(labelmaps, segmentIndex = 1, volumeId = 'm
9
9
  }
10
10
  });
11
11
  const labelmap = labelmaps[0];
12
- const arrayType = labelmap.scalarData.constructor;
13
- const outputData = new arrayType(labelmap.scalarData.length);
12
+ const arrayType = labelmap.getScalarData().constructor;
13
+ const outputData = new arrayType(labelmap.getScalarData().length);
14
14
  labelmaps.forEach((labelmap) => {
15
- const { scalarData } = labelmap;
15
+ const scalarData = labelmap.getScalarData();
16
16
  for (let i = 0; i < scalarData.length; i++) {
17
17
  if (scalarData[i] === segmentIndex) {
18
18
  outputData[i] = segmentIndex;
@@ -1 +1 @@
1
- {"version":3,"file":"createMergedLabelmapForIndex.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/createMergedLabelmapForIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAazE,SAAS,4BAA4B,CACnC,SAAoC,EACpC,YAAY,GAAG,CAAC,EAChB,QAAQ,GAAG,gBAAgB;IAE3B,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/D,IACE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACrD,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnD,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/C,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAC7C;YACA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE7D,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;gBAClC,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;aAC9B;SACF;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC;IAE1B,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,CACjD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"createMergedLabelmapForIndex.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/createMergedLabelmapForIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAazE,SAAS,4BAA4B,CACnC,SAAoC,EACpC,YAAY,GAAG,CAAC,EAChB,QAAQ,GAAG,gBAAgB;IAE3B,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/D,IACE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACrD,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnD,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/C,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAC7C;YACA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAChE;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAI,QAAQ,CAAC,aAAa,EAAU,CAAC,WAAW,CAAC;IAChE,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;IAElE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;gBAClC,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;aAC9B;SACF;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC;IAE1B,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,CACjD,OAAO,EACP,QAAQ,EACR,YAAY,CACb,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,eAAe,4BAA4B,CAAC"}
@@ -9,8 +9,8 @@ function rectangleROIThresholdVolumeByRange(annotationUIDs, segmentationVolume,
9
9
  _validateAnnotations(annotations);
10
10
  let boundsIJK;
11
11
  for (let i = 0; i < thresholdVolumeInformation.length; i++) {
12
- const volumeSize = thresholdVolumeInformation[i].volume.scalarData.length;
13
- if (volumeSize === segmentationVolume.scalarData.length || i === 0) {
12
+ const volumeSize = thresholdVolumeInformation[i].volume.getScalarData().length;
13
+ if (volumeSize === segmentationVolume.getScalarData().length || i === 0) {
14
14
  boundsIJK = getBoundsIJKFromRectangleAnnotations(annotations, thresholdVolumeInformation[i].volume, options);
15
15
  }
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rectangleROIThresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/rectangleROIThresholdVolumeByRange.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EACL,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,oCAAoC,MAAM,0DAA0D,CAAC;AAoC5G,SAAS,kCAAkC,CACzC,cAAwB,EACxB,kBAAsC,EACtC,0BAAkD,EAClD,OAAyB;IAEzB,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;QACvD,OAAO,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAElC,IAAI,SAAS,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAE1D,MAAM,UAAU,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1E,IAAI,UAAU,KAAK,kBAAkB,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;YAClE,SAAS,GAAG,oCAAoC,CAC9C,WAAW,EACX,0BAA0B,CAAC,CAAC,CAAC,CAAC,MAAM,EACpC,OAAO,CACR,CAAC;SACH;KACF;IAED,MAAM,wBAAwB,GAAG,sBAAsB,CACrD,kBAAkB,EAClB,0BAA0B,EAC1B,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAC1B,CAAC;IAEF,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAW;IACvC,MAAM,cAAc,GAAG;QACrB,yBAAyB,CAAC,QAAQ;QAClC,iCAAiC,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,eAAe,kCAAkC,CAAC"}
1
+ {"version":3,"file":"rectangleROIThresholdVolumeByRange.js","sourceRoot":"","sources":["../../../../src/utilities/segmentation/rectangleROIThresholdVolumeByRange.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EACL,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,oCAAoC,MAAM,0DAA0D,CAAC;AAoC5G,SAAS,kCAAkC,CACzC,cAAwB,EACxB,kBAAsC,EACtC,0BAAkD,EAClD,OAAyB;IAEzB,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;QACvD,OAAO,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAElC,IAAI,SAAS,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAE1D,MAAM,UAAU,GACd,0BAA0B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;QAC9D,IAAI,UAAU,KAAK,kBAAkB,CAAC,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;YACvE,SAAS,GAAG,oCAAoC,CAC9C,WAAW,EACX,0BAA0B,CAAC,CAAC,CAAC,CAAC,MAAM,EACpC,OAAO,CACR,CAAC;SACH;KACF;IAED,MAAM,wBAAwB,GAAG,sBAAsB,CACrD,kBAAkB,EAClB,0BAA0B,EAC1B,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAC1B,CAAC;IAEF,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAW;IACvC,MAAM,cAAc,GAAG;QACrB,yBAAyB,CAAC,QAAQ;QAClC,iCAAiC,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,eAAe,kCAAkC,CAAC"}
@@ -6,7 +6,8 @@ const equalsCheck = (a, b) => {
6
6
  return JSON.stringify(a) === JSON.stringify(b);
7
7
  };
8
8
  function thresholdVolumeByRange(segmentationVolume, thresholdVolumeInformation, options) {
9
- const { scalarData, spacing: segmentationSpacing, imageData: segmentationImageData, } = segmentationVolume;
9
+ const { spacing: segmentationSpacing, imageData: segmentationImageData } = segmentationVolume;
10
+ const scalarData = segmentationVolume.getScalarData();
10
11
  const { overwrite, boundsIJK } = options;
11
12
  const overlapType = options?.overlapType || 0;
12
13
  if (overwrite) {
@@ -18,7 +19,7 @@ function thresholdVolumeByRange(segmentationVolume, thresholdVolumeInformation,
18
19
  let baseVolumeIdx = 0;
19
20
  for (let i = 0; i < thresholdVolumeInformation.length; i++) {
20
21
  const { imageData, spacing, dimensions } = thresholdVolumeInformation[i].volume;
21
- const volumeSize = thresholdVolumeInformation[i].volume.scalarData.length;
22
+ const volumeSize = thresholdVolumeInformation[i].volume.getScalarData().length;
22
23
  if (volumeSize === scalarData.length &&
23
24
  equalsCheck(spacing, segmentationSpacing)) {
24
25
  baseVolumeIdx = i;
@@ -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":"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"}