@ohif/app 3.12.0-beta.80 → 3.12.0-beta.81

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 (41) hide show
  1. package/dist/{3190.bundle.cd955568fe4d80ab2e4b.js → 1037.bundle.7502b1bb0e5eee58a1d8.js} +51 -15
  2. package/dist/{1927.bundle.081901df8d9b33633806.js → 1927.bundle.da6db325e08bacb0bca0.js} +3 -3
  3. package/dist/{6725.bundle.0d2cdc2107924a76f362.js → 2018.bundle.48b73891bb66796a3b2d.js} +47 -14
  4. package/dist/{306.bundle.a2380c4b23436c127faf.js → 306.bundle.c671a09e1eacf6bcfc84.js} +1 -1
  5. package/dist/{3613.bundle.f5fceb4697407a89921b.js → 3613.bundle.3542f5bb1f69651bc239.js} +98 -45
  6. package/dist/{4019.bundle.6505ff57ca48af03da8a.js → 4019.bundle.8172183f816ea5500dd5.js} +46 -8
  7. package/dist/{4092.bundle.00d575990d745230c1b2.js → 4092.bundle.9ab4766b293d4e447551.js} +19 -0
  8. package/dist/{5400.bundle.eb0f5866140b5db31518.js → 5400.bundle.3ebba479fc068cd8c700.js} +8 -2
  9. package/dist/{3353.bundle.a52e42421b9407ad28ce.js → 5858.bundle.99a6b9de04c621694ffd.js} +850 -747
  10. package/dist/{7412.bundle.94802a6a629f62daab88.js → 7412.bundle.dd19b713fc5158ef34c1.js} +157 -139
  11. package/dist/{7948.bundle.ca4da4046481100dccca.js → 7948.bundle.2c6514eb65957b44b127.js} +23 -27
  12. package/dist/{9548.bundle.6f232a0a03e60854b49e.js → 9548.bundle.ee365804b810d67b2766.js} +2 -2
  13. package/dist/{1807.bundle.4fe7031d498b59f1ed68.js → 9927.bundle.174996e11c1432053378.js} +52 -21
  14. package/dist/{app.bundle.a16db06e6e1ae5b7b3c5.js → app.bundle.619935f4e9b60960eec1.js} +936 -689
  15. package/dist/{compute.bundle.f6f1236073e2a486ddfb.js → compute.bundle.ea0325cee6d2a4be77d7.js} +1 -1
  16. package/dist/index.html +1 -1
  17. package/dist/{polySeg.bundle.d0ed88f3bfea700c211b.js → polySeg.bundle.19444130c84583d811bd.js} +3 -3
  18. package/dist/sw.js +1 -1
  19. package/package.json +21 -21
  20. /package/dist/{1459.bundle.d8ca1f502eeb88a6e020.js → 1459.bundle.68ad9f4d048db1ded95e.js} +0 -0
  21. /package/dist/{147.bundle.53fe889b205dd91c245b.js → 147.bundle.9dac0500e2fa57626fdb.js} +0 -0
  22. /package/dist/{1604.bundle.b8b471d4b94ff2cf56ab.js → 1604.bundle.43520d5718d17febb2cf.js} +0 -0
  23. /package/dist/{1919.bundle.45c73b6e5367ff362580.js → 1919.bundle.27d4d453ec440181e449.js} +0 -0
  24. /package/dist/{213.bundle.cf999dc57ee54e1a61d0.js → 213.bundle.0d4bbf28ab97c107cdd5.js} +0 -0
  25. /package/dist/{2243.bundle.12b6ee3196121df88f63.js → 2243.bundle.873b4152dd2f550e76c6.js} +0 -0
  26. /package/dist/{2424.bundle.bfb5c29973df67ab4d1d.js → 2424.bundle.d8e65c4cd46695af1843.js} +0 -0
  27. /package/dist/{2518.bundle.b21d8c66dc8deb8ba922.js → 2518.bundle.ac5afa27c4799530d767.js} +0 -0
  28. /package/dist/{4113.bundle.6849f66f615847ada125.js → 4113.bundle.bebb8ac4abb95780b383.js} +0 -0
  29. /package/dist/{414.bundle.24a6ae428cbbec6fac72.js → 414.bundle.401bcf7a053bec6d5b32.js} +0 -0
  30. /package/dist/{5457.bundle.1b6c9d9754568061510c.js → 5457.bundle.f137a9e71ccf98addfbf.js} +0 -0
  31. /package/dist/{5485.bundle.8e456ebcf976c9c50dc3.js → 5485.bundle.08a4230790c12a80eb29.js} +0 -0
  32. /package/dist/{6027.bundle.5be91623f59d577abbd4.js → 6027.bundle.2a306549492ad8e7c2cd.js} +0 -0
  33. /package/dist/{6201.bundle.c59a4ef10b5d2126f3fe.js → 6201.bundle.d06a18bf366ae85c52b2.js} +0 -0
  34. /package/dist/{6991.bundle.e3e4ba73befe78136d84.js → 6991.bundle.1a945d91824788fde106.js} +0 -0
  35. /package/dist/{7431.bundle.ad1982d7c54a5931d409.js → 7431.bundle.be686be30c718b6f0165.js} +0 -0
  36. /package/dist/{7639.bundle.4fc45f7230e0fa936753.js → 7639.bundle.75968faa6648c318a4db.js} +0 -0
  37. /package/dist/{810.bundle.d472e7b39cb1da8d5c02.js → 810.bundle.d5ba529e18a59343a305.js} +0 -0
  38. /package/dist/{85.bundle.ca9e53b4f5669c6af047.js → 85.bundle.9e0a56a0cc52c4656d85.js} +0 -0
  39. /package/dist/{8558.bundle.ed93f8a5a7b3ea9acfce.js → 8558.bundle.226b7ea0dbfc9168e743.js} +0 -0
  40. /package/dist/{934.bundle.9445c5082a67dba7e121.js → 934.bundle.939f1fec0da4d0d82572.js} +0 -0
  41. /package/dist/{9862.bundle.e2c4c129f7907500b840.js → 9862.bundle.cb4de0892ea411293655.js} +0 -0
@@ -767,8 +767,8 @@ const isInvalidNumber = (value) => {
767
767
  return !(typeof value === 'number' && Number.isFinite(value));
768
768
  };
769
769
 
770
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js + 2 modules
771
- var renderPasses = __webpack_require__(50951);
770
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js + 3 modules
771
+ var RenderingEngine_renderPasses = __webpack_require__(88540);
772
772
  ;// ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/BaseVolumeViewport.js
773
773
 
774
774
 
@@ -809,6 +809,7 @@ class BaseVolumeViewport extends Viewport/* default */.A {
809
809
  super(props);
810
810
  this.useCPURendering = false;
811
811
  this.sharpening = 0;
812
+ this.smoothing = 0;
812
813
  this.perVolumeIdDefaultProperties = new Map();
813
814
  this.viewportProperties = {};
814
815
  this.volumeIds = new Set();
@@ -848,15 +849,26 @@ class BaseVolumeViewport extends Viewport/* default */.A {
848
849
  this.sharpening = sharpening;
849
850
  this.render();
850
851
  };
852
+ this.setSmoothing = (smoothing) => {
853
+ this.smoothing = smoothing;
854
+ this.render();
855
+ };
851
856
  this.getRenderPasses = () => {
852
857
  if (!this.shouldUseCustomRenderPass()) {
853
858
  return null;
854
859
  }
860
+ const renderPasses = [];
855
861
  try {
856
- return [(0,renderPasses/* createSharpeningRenderPass */.b)(this.sharpening)];
862
+ if (this.smoothing > 0) {
863
+ renderPasses.push((0,RenderingEngine_renderPasses/* createSmoothingRenderPass */.y)(this.smoothing));
864
+ }
865
+ if (this.sharpening > 0) {
866
+ renderPasses.push((0,RenderingEngine_renderPasses/* createSharpeningRenderPass */.b)(this.sharpening));
867
+ }
868
+ return renderPasses.length ? renderPasses : null;
857
869
  }
858
870
  catch (e) {
859
- console.warn('Failed to create sharpening render passes:', e);
871
+ console.warn('Failed to create custom render passes:', e);
860
872
  return null;
861
873
  }
862
874
  };
@@ -906,6 +918,7 @@ class BaseVolumeViewport extends Viewport/* default */.A {
906
918
  slabThickness: slabThickness,
907
919
  preset,
908
920
  sharpening: this.sharpening,
921
+ smoothing: this.smoothing,
909
922
  };
910
923
  };
911
924
  this.getColormap = (volumeId) => {
@@ -1493,7 +1506,7 @@ class BaseVolumeViewport extends Viewport/* default */.A {
1493
1506
  const newPosition = esm/* vec3.add */.eR.add(esm/* vec3.create */.eR.create(), position, focalShift);
1494
1507
  this.setCamera({
1495
1508
  focalPoint: newImagePositionPatient,
1496
- position: newPosition
1509
+ position: newPosition,
1497
1510
  });
1498
1511
  this.render();
1499
1512
  return;
@@ -1533,7 +1546,7 @@ class BaseVolumeViewport extends Viewport/* default */.A {
1533
1546
  };
1534
1547
  (0,triggerEvent/* default */.A)(this.element, enums.Events.COLORMAP_MODIFIED, eventDetail);
1535
1548
  }
1536
- setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, sampleDistanceMultiplier, sharpening, } = {}, volumeId, suppressEvents = false) {
1549
+ setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, sampleDistanceMultiplier, sharpening, smoothing, } = {}, volumeId, suppressEvents = false) {
1537
1550
  if (this.globalDefaultProperties == null) {
1538
1551
  this.setDefaultProperties({
1539
1552
  voiRange,
@@ -1577,9 +1590,12 @@ class BaseVolumeViewport extends Viewport/* default */.A {
1577
1590
  if (typeof sharpening !== 'undefined') {
1578
1591
  this.setSharpening(sharpening);
1579
1592
  }
1593
+ if (typeof smoothing !== 'undefined') {
1594
+ this.setSmoothing(smoothing);
1595
+ }
1580
1596
  }
1581
1597
  shouldUseCustomRenderPass() {
1582
- return this.sharpening > 0 && !this.useCPURendering;
1598
+ return !this.useCPURendering;
1583
1599
  }
1584
1600
  resetToDefaultProperties(volumeId) {
1585
1601
  const properties = this.globalDefaultProperties;
@@ -3091,8 +3107,8 @@ function adjustInitialViewUp(initialViewUp, flipHorizontal, flipVertical, viewPl
3091
3107
 
3092
3108
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/isContextPoolRenderingEngine.js
3093
3109
  var isContextPoolRenderingEngine = __webpack_require__(27685);
3094
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js + 2 modules
3095
- var renderPasses = __webpack_require__(50951);
3110
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js + 3 modules
3111
+ var RenderingEngine_renderPasses = __webpack_require__(88540);
3096
3112
  ;// ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/StackViewport.js
3097
3113
 
3098
3114
 
@@ -3154,6 +3170,7 @@ class StackViewport extends Viewport/* default */.A {
3154
3170
  this.perImageIdDefaultProperties = new Map();
3155
3171
  this.voiUpdatedWithSetProperties = false;
3156
3172
  this.sharpening = 0;
3173
+ this.smoothing = 0;
3157
3174
  this.invert = false;
3158
3175
  this.initialInvert = false;
3159
3176
  this.initialTransferFunctionNodes = null;
@@ -3166,15 +3183,26 @@ class StackViewport extends Viewport/* default */.A {
3166
3183
  this.sharpening = sharpening;
3167
3184
  this.render();
3168
3185
  };
3186
+ this.setSmoothing = (smoothing) => {
3187
+ this.smoothing = smoothing;
3188
+ this.render();
3189
+ };
3169
3190
  this.getRenderPasses = () => {
3170
3191
  if (!this.shouldUseCustomRenderPass()) {
3171
3192
  return null;
3172
3193
  }
3194
+ const renderPasses = [];
3173
3195
  try {
3174
- return [(0,renderPasses/* createSharpeningRenderPass */.b)(this.sharpening)];
3196
+ if (this.smoothing > 0) {
3197
+ renderPasses.push((0,RenderingEngine_renderPasses/* createSmoothingRenderPass */.y)(this.smoothing));
3198
+ }
3199
+ if (this.sharpening > 0) {
3200
+ renderPasses.push((0,RenderingEngine_renderPasses/* createSharpeningRenderPass */.b)(this.sharpening));
3201
+ }
3202
+ return renderPasses.length ? renderPasses : null;
3175
3203
  }
3176
3204
  catch (e) {
3177
- console.warn('Failed to create sharpening render passes:', e);
3205
+ console.warn('Failed to create custom render passes:', e);
3178
3206
  return null;
3179
3207
  }
3180
3208
  };
@@ -3229,6 +3257,7 @@ class StackViewport extends Viewport/* default */.A {
3229
3257
  invert,
3230
3258
  isComputedVOI: !voiUpdatedWithSetProperties,
3231
3259
  sharpening: this.sharpening,
3260
+ smoothing: this.smoothing,
3232
3261
  };
3233
3262
  };
3234
3263
  this.resetCameraForResize = () => {
@@ -3631,7 +3660,7 @@ class StackViewport extends Viewport/* default */.A {
3631
3660
  camera.setFreezeFocalPoint(true);
3632
3661
  }
3633
3662
  shouldUseCustomRenderPass() {
3634
- return this.sharpening > 0 && !this.useCPURendering;
3663
+ return !this.useCPURendering;
3635
3664
  }
3636
3665
  initializeElementDisabledHandler() {
3637
3666
  eventTarget/* default */.A.addEventListener(enums.Events.ELEMENT_DISABLED, function elementDisabledHandler() {
@@ -3754,7 +3783,7 @@ class StackViewport extends Viewport/* default */.A {
3754
3783
  this.resetToDefaultProperties();
3755
3784
  }
3756
3785
  }
3757
- setProperties({ colormap, voiRange, VOILUTFunction, invert, interpolationType, sharpening, } = {}, suppressEvents = false) {
3786
+ setProperties({ colormap, voiRange, VOILUTFunction, invert, interpolationType, sharpening, smoothing, } = {}, suppressEvents = false) {
3758
3787
  this.viewportStatus = this.csImage
3759
3788
  ? enums.ViewportStatus.PRE_RENDER
3760
3789
  : enums.ViewportStatus.LOADING;
@@ -3765,6 +3794,7 @@ class StackViewport extends Viewport/* default */.A {
3765
3794
  invert: this.globalDefaultProperties.invert ?? invert,
3766
3795
  interpolationType: this.globalDefaultProperties.interpolationType ?? interpolationType,
3767
3796
  sharpening: this.globalDefaultProperties.sharpening ?? sharpening,
3797
+ smoothing: this.globalDefaultProperties.smoothing ?? smoothing,
3768
3798
  };
3769
3799
  if (typeof colormap !== 'undefined') {
3770
3800
  this.setColormap(colormap);
@@ -3785,6 +3815,9 @@ class StackViewport extends Viewport/* default */.A {
3785
3815
  if (typeof sharpening !== 'undefined') {
3786
3816
  this.setSharpening(sharpening);
3787
3817
  }
3818
+ if (typeof smoothing !== 'undefined') {
3819
+ this.setSmoothing(smoothing);
3820
+ }
3788
3821
  }
3789
3822
  resetProperties() {
3790
3823
  this.cpuRenderingInvalidated = true;
@@ -12557,14 +12590,15 @@ var helpers = __webpack_require__(40661);
12557
12590
 
12558
12591
  /***/ }),
12559
12592
 
12560
- /***/ 50951:
12593
+ /***/ 88540:
12561
12594
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12562
12595
 
12563
12596
  "use strict";
12564
12597
 
12565
12598
  // EXPORTS
12566
12599
  __webpack_require__.d(__webpack_exports__, {
12567
- b: () => (/* reexport */ createSharpeningRenderPass)
12600
+ b: () => (/* reexport */ createSharpeningRenderPass),
12601
+ y: () => (/* reexport */ createSmoothingRenderPass)
12568
12602
  });
12569
12603
 
12570
12604
  // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/macros2.js
@@ -12829,11 +12863,53 @@ function createSharpeningRenderPass(intensity) {
12829
12863
  }
12830
12864
 
12831
12865
 
12866
+ ;// ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/smoothingRenderPass.js
12867
+
12868
+
12869
+ function createSmoothingRenderPass(intensity) {
12870
+ let renderPass = ForwardPass/* default.newInstance */.Ay.newInstance();
12871
+ if (intensity > 0) {
12872
+ const convolutionPass = vtkConvolution2DPass$1.newInstance();
12873
+ convolutionPass.setDelegates([renderPass]);
12874
+ const smoothStrength = Math.min(intensity, 1000);
12875
+ const kernelSize = 15;
12876
+ const sigma = 5.0;
12877
+ const gaussianKernel = createGaussianKernel(kernelSize, sigma);
12878
+ const totalElements = kernelSize * kernelSize;
12879
+ const centerIndex = Math.floor(totalElements / 2);
12880
+ const identityKernel = Array(totalElements).fill(0);
12881
+ identityKernel[centerIndex] = 1;
12882
+ const alpha = Math.min(smoothStrength / 10, 1.0);
12883
+ const kernel = gaussianKernel.map((g, i) => (1 - alpha) * identityKernel[i] + alpha * g);
12884
+ convolutionPass.setKernelDimension(15);
12885
+ convolutionPass.setKernel(kernel);
12886
+ renderPass = convolutionPass;
12887
+ }
12888
+ return renderPass;
12889
+ }
12890
+ function createGaussianKernel(size, sigma) {
12891
+ const kernel = [];
12892
+ const mean = (size - 1) / 2;
12893
+ let sum = 0;
12894
+ for (let y = 0; y < size; y++) {
12895
+ for (let x = 0; x < size; x++) {
12896
+ const dx = x - mean;
12897
+ const dy = y - mean;
12898
+ const value = Math.exp(-(dx * dx + dy * dy) / (2 * Math.pow(sigma, 2)));
12899
+ kernel.push(value);
12900
+ sum += value;
12901
+ }
12902
+ }
12903
+ return kernel.map((v) => v / sum);
12904
+ }
12905
+
12906
+
12832
12907
  ;// ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js
12833
12908
 
12834
12909
 
12835
12910
 
12836
12911
 
12912
+
12837
12913
  /***/ }),
12838
12914
 
12839
12915
  /***/ 5862:
@@ -34393,7 +34469,7 @@ function uuidv4() {
34393
34469
 
34394
34470
  "use strict";
34395
34471
  /* unused harmony export version */
34396
- const version = '4.5.20';
34472
+ const version = '4.9.0';
34397
34473
 
34398
34474
 
34399
34475
  /***/ }),
@@ -37235,23 +37311,6 @@ function getLabelmapImageIdsForImageId(imageId, segmentationId) {
37235
37311
  }
37236
37312
 
37237
37313
 
37238
- /***/ }),
37239
-
37240
- /***/ 33283:
37241
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
37242
-
37243
- "use strict";
37244
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
37245
- /* harmony export */ T: () => (/* binding */ getSegmentation)
37246
- /* harmony export */ });
37247
- /* harmony import */ var _SegmentationStateManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59475);
37248
-
37249
- function getSegmentation(segmentationId) {
37250
- const segmentationStateManager = _SegmentationStateManager__WEBPACK_IMPORTED_MODULE_0__/* .defaultSegmentationStateManager */ ._6;
37251
- return segmentationStateManager.getSegmentation(segmentationId);
37252
- }
37253
-
37254
-
37255
37314
  /***/ }),
37256
37315
 
37257
37316
  /***/ 58859:
@@ -38860,7 +38919,6 @@ function removeRepresentation(viewportId, segmentationId, renderImmediate = fals
38860
38919
  return;
38861
38920
  }
38862
38921
  const { viewport } = enabledElement;
38863
- (0,_removeContourFromElement__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(viewportId, segmentationId);
38864
38922
  if (!renderImmediate) {
38865
38923
  return;
38866
38924
  }
@@ -43021,9 +43079,7 @@ class InstanceVolumetricCalculator extends _math_basic_BasicStatsCalculator__WEB
43021
43079
  /* unused harmony exports setBrushSizeForToolGroup, getBrushSizeForToolGroup */
43022
43080
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77609);
43023
43081
  /* harmony import */ var _triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58640);
43024
- /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15327);
43025
- /* harmony import */ var _getBrushToolInstances__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14957);
43026
-
43082
+ /* harmony import */ var _getBrushToolInstances__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14957);
43027
43083
 
43028
43084
 
43029
43085
 
@@ -43034,17 +43090,14 @@ function setBrushSizeForToolGroup(toolGroupId, brushSize, toolName) {
43034
43090
  }
43035
43091
  const brushBasedToolInstances = getBrushToolInstances(toolGroupId, toolName);
43036
43092
  brushBasedToolInstances.forEach((tool) => {
43037
- tool.configuration.brushSize = brushSize;
43093
+ const minRadius = tool.configuration.minRadius;
43094
+ const maxRadius = tool.configuration.maxRadius;
43095
+ let newBrushSize = minRadius ? Math.max(brushSize, minRadius) : brushSize;
43096
+ newBrushSize = maxRadius ? Math.min(newBrushSize, maxRadius) : newBrushSize;
43097
+ tool.configuration.brushSize = newBrushSize;
43038
43098
  tool.invalidateBrushCursor();
43039
43099
  });
43040
- const viewportsInfo = toolGroup.getViewportsInfo();
43041
- const viewportsInfoArray = Object.keys(viewportsInfo).map((key) => viewportsInfo[key]);
43042
- if (!viewportsInfoArray.length) {
43043
- return;
43044
- }
43045
- const { renderingEngineId } = viewportsInfoArray[0];
43046
43100
  const viewportIds = toolGroup.getViewportIds();
43047
- const renderingEngine = getRenderingEngine(renderingEngineId);
43048
43101
  triggerAnnotationRenderForViewportIds(viewportIds);
43049
43102
  }
43050
43103
  function getBrushSizeForToolGroup(toolGroupId, toolName) {
@@ -227,6 +227,22 @@ function triggerSegmentationRepresentationRemoved(viewportId, segmentationId, ty
227
227
  }
228
228
 
229
229
 
230
+ /***/ }),
231
+
232
+ /***/ 33283:
233
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
234
+
235
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
236
+ /* harmony export */ T: () => (/* binding */ getSegmentation)
237
+ /* harmony export */ });
238
+ /* harmony import */ var _SegmentationStateManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59475);
239
+
240
+ function getSegmentation(segmentationId) {
241
+ const segmentationStateManager = _SegmentationStateManager__WEBPACK_IMPORTED_MODULE_0__/* .defaultSegmentationStateManager */ ._6;
242
+ return segmentationStateManager.getSegmentation(segmentationId);
243
+ }
244
+
245
+
230
246
  /***/ }),
231
247
 
232
248
  /***/ 47098:
@@ -2246,6 +2262,8 @@ var getActiveSegmentIndex = __webpack_require__(60740);
2246
2262
  var segmentLocking = __webpack_require__(26795);
2247
2263
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/segmentation/getSVGStyleForSegment.js
2248
2264
  var getSVGStyleForSegment = __webpack_require__(86644);
2265
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/segmentation/SegmentationStateManager.js
2266
+ var SegmentationStateManager = __webpack_require__(59475);
2249
2267
  ;// ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/base/ContourSegmentationBaseTool.js
2250
2268
 
2251
2269
 
@@ -2261,6 +2279,7 @@ var getSVGStyleForSegment = __webpack_require__(86644);
2261
2279
 
2262
2280
 
2263
2281
 
2282
+
2264
2283
  class ContourSegmentationBaseTool extends ContourBaseTool {
2265
2284
  static { this.PreviewSegmentIndex = 255; }
2266
2285
  constructor(toolProps, defaultToolProps) {
@@ -2348,6 +2367,28 @@ class ContourSegmentationBaseTool extends ContourBaseTool {
2348
2367
  }
2349
2368
  return renderResult;
2350
2369
  }
2370
+ filterInteractableAnnotationsForElement(element, annotations) {
2371
+ if (!annotations || !annotations.length) {
2372
+ return;
2373
+ }
2374
+ const baseFilteredAnnotations = super.filterInteractableAnnotationsForElement(element, annotations);
2375
+ if (!baseFilteredAnnotations || !baseFilteredAnnotations.length) {
2376
+ return;
2377
+ }
2378
+ const enabledElement = (0,esm.getEnabledElement)(element);
2379
+ const { viewport } = enabledElement;
2380
+ return baseFilteredAnnotations.filter((annotation) => {
2381
+ const segmentationId = annotation?.data
2382
+ ?.segmentation?.segmentationId;
2383
+ if (!segmentationId) {
2384
+ return true;
2385
+ }
2386
+ return !!SegmentationStateManager/* defaultSegmentationStateManager */._6.getSegmentationRepresentation(viewport.id, {
2387
+ segmentationId,
2388
+ type: enums.SegmentationRepresentations.Contour,
2389
+ });
2390
+ });
2391
+ }
2351
2392
  _getContourSegmentationStyle(context) {
2352
2393
  const annotation = context.annotation;
2353
2394
  const { segmentationId, segmentIndex } = annotation.data.segmentation;
@@ -2576,25 +2617,22 @@ function addContourSetsToElement(viewport, geometryIds, contourRepresentation) {
2576
2617
  /***/ }),
2577
2618
 
2578
2619
  /***/ 87420:
2579
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2620
+ /***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
2580
2621
 
2581
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2582
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
2583
- /* harmony export */ });
2584
2622
  /* harmony import */ var _stateManagement_segmentation_getSegmentation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33283);
2585
2623
  /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6802);
2586
2624
 
2587
2625
 
2588
2626
  function removeContourFromElement(viewportId, segmentationId, removeFromCache = false) {
2589
- const segmentation = (0,_stateManagement_segmentation_getSegmentation__WEBPACK_IMPORTED_MODULE_0__/* .getSegmentation */ .T)(segmentationId);
2627
+ const segmentation = getSegmentation(segmentationId);
2590
2628
  const { annotationUIDsMap } = segmentation.representationData.Contour;
2591
2629
  annotationUIDsMap.forEach((annotationSet) => {
2592
2630
  annotationSet.forEach((annotationUID) => {
2593
- (0,_stateManagement__WEBPACK_IMPORTED_MODULE_1__/* .removeAnnotation */ .O8)(annotationUID);
2631
+ removeAnnotation(annotationUID);
2594
2632
  });
2595
2633
  });
2596
2634
  }
2597
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (removeContourFromElement);
2635
+ /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (removeContourFromElement)));
2598
2636
 
2599
2637
 
2600
2638
  /***/ }),
@@ -5132,7 +5170,7 @@ function filterAnnotationsWithinSlice(annotations, camera, spacingInNormalDirect
5132
5170
  continue;
5133
5171
  }
5134
5172
  const point = metadata.planeRestriction?.point ||
5135
- data.handles.points[0] ||
5173
+ data.handles?.points?.[0] ||
5136
5174
  data.contour?.polyline[0];
5137
5175
  if (!point) {
5138
5176
  annotationsWithinSlice.push(annotation);
@@ -953,6 +953,7 @@ function SmoothContoursOptions() {
953
953
 
954
954
 
955
955
 
956
+
956
957
  function getToolbarModule({
957
958
  servicesManager
958
959
  }) {
@@ -1064,6 +1065,24 @@ function getToolbarModule({
1064
1065
  isActive: isPrimaryActive
1065
1066
  };
1066
1067
  }
1068
+ }, {
1069
+ name: 'evaluate.cornerstone.segmentation.synchronizeDrawingRadius',
1070
+ evaluate: ({
1071
+ button,
1072
+ radiusOptionId
1073
+ }) => {
1074
+ const toolGroupIds = toolGroupService.getToolGroupIds();
1075
+ if (!toolGroupIds?.length) {
1076
+ return;
1077
+ }
1078
+ for (const toolGroupId of toolGroupIds) {
1079
+ const brushSize = dist_esm.utilities.segmentation.getBrushSizeForToolGroup(toolGroupId);
1080
+ if (brushSize) {
1081
+ const option = toolbarService.getOptionById(button, radiusOptionId);
1082
+ option.value = brushSize;
1083
+ }
1084
+ }
1085
+ }
1067
1086
  }];
1068
1087
  }
1069
1088
  ;// ../../../extensions/cornerstone-dicom-seg/src/index.tsx
@@ -952,13 +952,17 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
952
952
  if (!annotations || !annotations.length) {
953
953
  return;
954
954
  }
955
+ const baseFilteredAnnotations = super.filterInteractableAnnotationsForElement(element, annotations);
956
+ if (!baseFilteredAnnotations || !baseFilteredAnnotations.length) {
957
+ return;
958
+ }
955
959
  const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
956
960
  const { viewport } = enabledElement;
957
961
  let annotationsToDisplay;
958
962
  if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.VolumeViewport) {
959
963
  const camera = viewport.getCamera();
960
964
  const { spacingInNormalDirection } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.getTargetVolumeAndSpacingInNormalDir(viewport, camera);
961
- annotationsToDisplay = this.filterAnnotationsWithinSlice(annotations, camera, spacingInNormalDirection);
965
+ annotationsToDisplay = this.filterAnnotationsWithinSlice(baseFilteredAnnotations, camera, spacingInNormalDirection);
962
966
  }
963
967
  else {
964
968
  annotationsToDisplay = (0,_utilities_planar__WEBPACK_IMPORTED_MODULE_5__.filterAnnotationsForDisplay)(viewport, annotations);
@@ -1088,7 +1092,9 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
1088
1092
  if (!this.configuration.calculateStats) {
1089
1093
  return;
1090
1094
  }
1091
- this._calculateStatsIfActive(annotation, targetId, viewport, renderingEngine, enabledElement);
1095
+ if (annotation.invalidated) {
1096
+ this._calculateStatsIfActive(annotation, targetId, viewport, renderingEngine, enabledElement);
1097
+ }
1092
1098
  this._renderStats(annotation, viewport, enabledElement, svgDrawingHelper);
1093
1099
  return renderStatus;
1094
1100
  }