@ohif/app 3.10.0-beta.13 → 3.10.0-beta.14

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 (37) hide show
  1. package/dist/{1185.bundle.2e92e5f4460a9ba10ac6.js → 1185.bundle.dfea82aca1b41717a236.js} +2 -2
  2. package/dist/{4636.bundle.3b2a32d7e1499673983d.js → 4636.bundle.67e7c3842e2fe9d8d475.js} +22 -21
  3. package/dist/{5252.bundle.a8eb753e715482b7d8c5.js → 5252.bundle.acd3d334f510ca6bf8b1.js} +73 -8
  4. package/dist/{9909.bundle.a87c9d96eefff9b0961b.js → 5437.bundle.58dc7aca17d2b9a93cdd.js} +320 -72
  5. package/dist/{5630.bundle.01be2c806e4047751682.js → 5630.bundle.f8e6cddcccddcf90e913.js} +2 -2
  6. package/dist/{5717.bundle.bf2665759535e60ad014.js → 5717.bundle.6dc063e00c1681da2323.js} +308 -343
  7. package/dist/{573.bundle.9929319cc662537c28b2.js → 573.bundle.ab494962db11282c3582.js} +6 -2
  8. package/dist/{8104.bundle.0e10e63ad1240be255cf.js → 8104.bundle.550697397baf3850e3b8.js} +236 -335
  9. package/dist/{8558.bundle.48fd7faa64b5c4e25cf0.js → 8558.bundle.d2ba0f8f0e81c4463e3f.js} +1 -0
  10. package/dist/{app.bundle.fc6b15c24f9cd6d8176a.js → app.bundle.fd0317d8b597fa315b60.js} +129 -51
  11. package/dist/{histogram-worker.bundle.b11d1dcfe28cef619c79.js → histogram-worker.bundle.0cad670e32968856226a.js} +1 -1
  12. package/dist/index.html +1 -1
  13. package/dist/{polySeg.bundle.9ad8fc1a503a6a55e34f.js → polySeg.bundle.c25e1b1462313a54b518.js} +1 -1
  14. package/dist/{suv-peak-worker.bundle.29cb580249bfaaff9ac1.js → suv-peak-worker.bundle.01ff0314fd03a9d16246.js} +3 -3
  15. package/dist/sw.js +1 -1
  16. package/package.json +18 -18
  17. /package/dist/{1266.bundle.2662dd7ecc7cdc5c9ec7.js → 1266.bundle.585e4a14ddd57535d8a8.js} +0 -0
  18. /package/dist/{1374.bundle.e62f7a2b3b0d9f238ad3.js → 1374.bundle.2a73bcdf42649cd677bd.js} +0 -0
  19. /package/dist/{213.bundle.ce3936a2ba72cc0f4f84.js → 213.bundle.7d895db235096c460ca5.js} +0 -0
  20. /package/dist/{2424.bundle.d267285b9ec2dcceedb8.js → 2424.bundle.c49cfb4d85808d79f635.js} +0 -0
  21. /package/dist/{2825.bundle.f9f50b8ea4a6ab87ad54.js → 2825.bundle.2de099edfd591b3013b0.js} +0 -0
  22. /package/dist/{3198.bundle.76e9454c9bcc112ceb9a.js → 3198.bundle.21908c96cc2e2468ea09.js} +0 -0
  23. /package/dist/{3200.bundle.4567e1ad29d1803e1b65.js → 3200.bundle.dacbed471b125cfe04e5.js} +0 -0
  24. /package/dist/{3970.bundle.05e7ea412a431ca2cfdb.js → 3970.bundle.89564e2e9cceec2b5a69.js} +0 -0
  25. /package/dist/{4834.bundle.7ad185b931edf0ed29df.js → 4834.bundle.3e631b1746f4d4659d80.js} +0 -0
  26. /package/dist/{5139.bundle.fd98ea42bca0b622b69a.js → 5139.bundle.69fba87e9d3b0716ebf0.js} +0 -0
  27. /package/dist/{5247.bundle.f2639b7d0f21d21ab9fe.js → 5247.bundle.eb47780faaec44094c23.js} +0 -0
  28. /package/dist/{5687.bundle.80baffdf7e2dee76c212.js → 5687.bundle.44b5c5ae6df08900adf9.js} +0 -0
  29. /package/dist/{717.bundle.1a7043c3db6b3640c0e9.js → 717.bundle.278798308e9d2a5d097b.js} +0 -0
  30. /package/dist/{7197.bundle.54461a631c49c719613a.js → 7197.bundle.9c812da287d70e87b1a4.js} +0 -0
  31. /package/dist/{7955.bundle.7e62bd7f53e04856f455.js → 7955.bundle.426beef17fb63cfd81b3.js} +0 -0
  32. /package/dist/{8008.bundle.044a35074b88f072db6b.js → 8008.bundle.be9044875ce6d1c7bf03.js} +0 -0
  33. /package/dist/{8228.bundle.564c39d1256540b7228e.js → 8228.bundle.e6ddb2108c0b26be6188.js} +0 -0
  34. /package/dist/{8259.bundle.a9c46ba95884c56f3e72.js → 8259.bundle.d2e2bd5b7a31280827a9.js} +0 -0
  35. /package/dist/{9551.bundle.1b3e84b22ec04a16fb11.js → 9551.bundle.b77ff67cf3ed3ba8e896.js} +0 -0
  36. /package/dist/{9611.bundle.a958c468d6ca6e91c091.js → 9611.bundle.f94bb52dc93909acada7.js} +0 -0
  37. /package/dist/{9862.bundle.05613a9c8b36ffeb9962.js → 9862.bundle.ad6694938d4524cb19d1.js} +0 -0
@@ -1,4 +1,4 @@
1
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[9909],{
1
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[5437],{
2
2
 
3
3
  /***/ 97181:
4
4
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -1959,14 +1959,17 @@ function wheelListener(evt) {
1959
1959
 
1960
1960
  /***/ }),
1961
1961
 
1962
- /***/ 82107:
1962
+ /***/ 97:
1963
1963
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1964
1964
 
1965
1965
  "use strict";
1966
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1967
- /* harmony export */ Q: () => (/* binding */ checkAndDefineTextBoxProperty),
1968
- /* harmony export */ d: () => (/* binding */ checkAndDefineCachedStatsProperty)
1969
- /* harmony export */ });
1966
+
1967
+ // EXPORTS
1968
+ __webpack_require__.d(__webpack_exports__, {
1969
+ c: () => (/* binding */ resetAnnotationManager)
1970
+ });
1971
+
1972
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/utilities/defineProperties.js
1970
1973
  const checkAndDefineTextBoxProperty = (annotation) => {
1971
1974
  if (!annotation.data) {
1972
1975
  annotation.data = {};
@@ -1990,6 +1993,37 @@ const checkAndDefineCachedStatsProperty = (annotation) => {
1990
1993
  };
1991
1994
 
1992
1995
 
1996
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/annotationLocking.js
1997
+ var annotationLocking = __webpack_require__(2076);
1998
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/annotationVisibility.js
1999
+ var annotationVisibility = __webpack_require__(29601);
2000
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/FrameOfReferenceSpecificAnnotationManager.js
2001
+ var FrameOfReferenceSpecificAnnotationManager = __webpack_require__(67013);
2002
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/annotationState.js
2003
+ var annotationState = __webpack_require__(82056);
2004
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/resetAnnotationManager.js
2005
+
2006
+
2007
+
2008
+
2009
+
2010
+ const defaultManager = FrameOfReferenceSpecificAnnotationManager/* defaultFrameOfReferenceSpecificAnnotationManager */.H;
2011
+ const preprocessingFn = (annotation) => {
2012
+ annotation = checkAndDefineTextBoxProperty(annotation);
2013
+ annotation = checkAndDefineCachedStatsProperty(annotation);
2014
+ const uid = annotation.annotationUID;
2015
+ const isLocked = (0,annotationLocking.checkAndSetAnnotationLocked)(uid);
2016
+ annotation.isLocked = isLocked;
2017
+ const isVisible = (0,annotationVisibility.checkAndSetAnnotationVisibility)(uid);
2018
+ annotation.isVisible = isVisible;
2019
+ return annotation;
2020
+ };
2021
+ defaultManager.setPreprocessingFn(preprocessingFn);
2022
+ (0,annotationState.setAnnotationManager)(defaultManager);
2023
+ function resetAnnotationManager() {
2024
+ (0,annotationState.setAnnotationManager)(defaultManager);
2025
+ }
2026
+
1993
2027
 
1994
2028
  /***/ }),
1995
2029
 
@@ -2007,6 +2041,8 @@ const checkAndDefineCachedStatsProperty = (annotation) => {
2007
2041
  /* harmony import */ var _annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2076);
2008
2042
  /* harmony import */ var _annotation_annotationSelection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17343);
2009
2043
  /* harmony import */ var _annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(82056);
2044
+ /* harmony import */ var _annotation_resetAnnotationManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97);
2045
+
2010
2046
 
2011
2047
 
2012
2048
 
@@ -2096,7 +2132,7 @@ function triggerSegmentationRepresentationModified(viewportId, segmentationId, t
2096
2132
  type,
2097
2133
  viewportId,
2098
2134
  };
2099
- (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.SEGMENTATION_REPRESENTATION_ADDED, eventDetail);
2135
+ (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.SEGMENTATION_REPRESENTATION_MODIFIED, eventDetail);
2100
2136
  }
2101
2137
 
2102
2138
 
@@ -2157,23 +2193,6 @@ function getNextColorLUTIndex() {
2157
2193
  }
2158
2194
 
2159
2195
 
2160
- /***/ }),
2161
-
2162
- /***/ 33283:
2163
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2164
-
2165
- "use strict";
2166
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2167
- /* harmony export */ T: () => (/* binding */ getSegmentation)
2168
- /* harmony export */ });
2169
- /* harmony import */ var _SegmentationStateManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59475);
2170
-
2171
- function getSegmentation(segmentationId) {
2172
- const segmentationStateManager = _SegmentationStateManager__WEBPACK_IMPORTED_MODULE_0__/* .defaultSegmentationStateManager */ ._6;
2173
- return segmentationStateManager.getSegmentation(segmentationId);
2174
- }
2175
-
2176
-
2177
2196
  /***/ }),
2178
2197
 
2179
2198
  /***/ 21:
@@ -5684,8 +5703,6 @@ __webpack_require__.d(__webpack_exports__, {
5684
5703
 
5685
5704
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
5686
5705
  var esm = __webpack_require__(81985);
5687
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/segmentation/getSegmentation.js
5688
- var getSegmentation = __webpack_require__(33283);
5689
5706
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/enums/index.js + 2 modules
5690
5707
  var enums = __webpack_require__(99737);
5691
5708
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/annotationState.js
@@ -5754,48 +5771,18 @@ class ContourBaseTool extends AnnotationTool/* default */.A {
5754
5771
  return renderStatus;
5755
5772
  }
5756
5773
  createAnnotation(evt) {
5757
- const eventDetail = evt.detail;
5758
- const { currentPoints, element } = eventDetail;
5759
- const { world: worldPos } = currentPoints;
5760
- const enabledElement = (0,esm.getEnabledElement)(element);
5761
- const { viewport } = enabledElement;
5762
- const camera = viewport.getCamera();
5763
- const { viewPlaneNormal, viewUp, position: cameraPosition } = camera;
5764
- const referencedImageId = this.getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp);
5765
- const viewReference = viewport.getViewReference({ points: [worldPos] });
5766
- return {
5767
- highlighted: true,
5768
- invalidated: true,
5769
- metadata: {
5770
- toolName: this.getToolName(),
5771
- ...viewReference,
5772
- referencedImageId,
5773
- viewUp,
5774
- cameraPosition,
5775
- },
5776
- data: {
5777
- handles: {
5778
- points: [],
5779
- activeHandleIndex: null,
5780
- textBox: {
5781
- hasMoved: false,
5782
- worldPosition: [0, 0, 0],
5783
- worldBoundingBox: {
5784
- topLeft: [0, 0, 0],
5785
- topRight: [0, 0, 0],
5786
- bottomLeft: [0, 0, 0],
5787
- bottomRight: [0, 0, 0],
5788
- },
5789
- },
5790
- },
5791
- contour: {
5792
- polyline: [],
5793
- closed: false,
5794
- },
5774
+ const annotation = super.createAnnotation(evt);
5775
+ Object.assign(annotation.data, {
5776
+ contour: {
5777
+ polyline: [],
5778
+ closed: false,
5795
5779
  },
5780
+ });
5781
+ Object.assign(annotation, {
5796
5782
  interpolationUID: '',
5797
5783
  autoGenerated: false,
5798
- };
5784
+ });
5785
+ return annotation;
5799
5786
  }
5800
5787
  addAnnotation(annotation, element) {
5801
5788
  return (0,annotationState.addAnnotation)(annotation, element);
@@ -5897,7 +5884,6 @@ var internalGetHiddenSegmentIndices = __webpack_require__(47098);
5897
5884
 
5898
5885
 
5899
5886
 
5900
-
5901
5887
  class ContourSegmentationBaseTool extends ContourBaseTool {
5902
5888
  constructor(toolProps, defaultToolProps) {
5903
5889
  super(toolProps, defaultToolProps);
@@ -6322,7 +6308,7 @@ async function addLabelmapToElement(element, labelMapData, segmentationId) {
6322
6308
  representationUID: `${segmentationId}-${_enums__WEBPACK_IMPORTED_MODULE_4__.SegmentationRepresentations.Labelmap}`,
6323
6309
  },
6324
6310
  ];
6325
- await (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.addImageSlicesToViewports)(renderingEngine, stackInputs, [viewportId]);
6311
+ (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.addImageSlicesToViewports)(renderingEngine, stackInputs, [viewportId]);
6326
6312
  }
6327
6313
  (0,_stateManagement_segmentation_triggerSegmentationEvents__WEBPACK_IMPORTED_MODULE_3__.triggerSegmentationDataModified)(segmentationId);
6328
6314
  }
@@ -6578,6 +6564,247 @@ const distancePointToContour = (viewport, annotation, coords) => {
6578
6564
  };
6579
6565
 
6580
6566
 
6567
+ /***/ }),
6568
+
6569
+ /***/ 23631:
6570
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6571
+
6572
+ "use strict";
6573
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6574
+ /* harmony export */ A: () => (/* binding */ LabelmapBaseTool)
6575
+ /* harmony export */ });
6576
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81985);
6577
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85817);
6578
+ /* harmony import */ var _enums_SegmentationRepresentations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18682);
6579
+ /* harmony import */ var _stateManagement_segmentation_getActiveSegmentation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67165);
6580
+ /* harmony import */ var _stateManagement_segmentation_segmentLocking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(26795);
6581
+ /* harmony import */ var _stateManagement_segmentation_getSegmentation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33283);
6582
+ /* harmony import */ var _utilities_annotationHydration__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(64485);
6583
+ /* harmony import */ var _stateManagement_segmentation_getCurrentLabelmapImageIdForViewport__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(97577);
6584
+ /* harmony import */ var _stateManagement_segmentation_getStackSegmentationImageIdsForViewport__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(71309);
6585
+ /* harmony import */ var _stateManagement_segmentation_config_segmentationColor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(93733);
6586
+ /* harmony import */ var _stateManagement_segmentation_getActiveSegmentIndex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(60740);
6587
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(99737);
6588
+
6589
+
6590
+
6591
+
6592
+
6593
+
6594
+
6595
+
6596
+
6597
+
6598
+
6599
+
6600
+ class LabelmapBaseTool extends _base__WEBPACK_IMPORTED_MODULE_1__/* .BaseTool */ .oS {
6601
+ constructor(toolProps, defaultToolProps) {
6602
+ super(toolProps, defaultToolProps);
6603
+ this._previewData = {
6604
+ preview: null,
6605
+ element: null,
6606
+ timerStart: 0,
6607
+ timer: null,
6608
+ startPoint: [NaN, NaN],
6609
+ isDrag: false,
6610
+ };
6611
+ }
6612
+ createMemo(segmentId, segmentationVoxelManager, preview) {
6613
+ console.warn('LabelmapBaseTool.createMemo not implemented yet');
6614
+ }
6615
+ createEditData(element) {
6616
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
6617
+ const { viewport } = enabledElement;
6618
+ const activeSegmentation = (0,_stateManagement_segmentation_getActiveSegmentation__WEBPACK_IMPORTED_MODULE_3__/* .getActiveSegmentation */ .T)(viewport.id);
6619
+ if (!activeSegmentation) {
6620
+ const event = new CustomEvent(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.Enums.Events.ERROR_EVENT, {
6621
+ detail: {
6622
+ type: 'Segmentation',
6623
+ message: 'No active segmentation detected, create a segmentation representation before using the brush tool',
6624
+ },
6625
+ cancelable: true,
6626
+ });
6627
+ _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget.dispatchEvent(event);
6628
+ return null;
6629
+ }
6630
+ const { segmentationId } = activeSegmentation;
6631
+ const segmentsLocked = (0,_stateManagement_segmentation_segmentLocking__WEBPACK_IMPORTED_MODULE_4__.getLockedSegmentIndices)(segmentationId);
6632
+ const { representationData } = (0,_stateManagement_segmentation_getSegmentation__WEBPACK_IMPORTED_MODULE_5__/* .getSegmentation */ .T)(segmentationId);
6633
+ if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.BaseVolumeViewport) {
6634
+ const { volumeId } = representationData[_enums_SegmentationRepresentations__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.Labelmap];
6635
+ const actors = viewport.getActors();
6636
+ const isStackViewport = viewport instanceof _utilities_annotationHydration__WEBPACK_IMPORTED_MODULE_6__/* .getClosestImageIdForStackViewport */ .x;
6637
+ if (isStackViewport) {
6638
+ const event = new CustomEvent(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.Enums.Events.ERROR_EVENT, {
6639
+ detail: {
6640
+ type: 'Segmentation',
6641
+ message: 'Cannot perform brush operation on the selected viewport',
6642
+ },
6643
+ cancelable: true,
6644
+ });
6645
+ _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget.dispatchEvent(event);
6646
+ return null;
6647
+ }
6648
+ const volumes = actors.map((actorEntry) => _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(actorEntry.referencedId));
6649
+ const segmentationVolume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(volumeId);
6650
+ const referencedVolumeIdToThreshold = volumes.find((volume) => _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isEqual(volume.dimensions, segmentationVolume.dimensions))?.volumeId || volumes[0]?.volumeId;
6651
+ return {
6652
+ volumeId,
6653
+ referencedVolumeId: this.configuration.thresholdVolumeId ?? referencedVolumeIdToThreshold,
6654
+ segmentsLocked,
6655
+ };
6656
+ }
6657
+ else {
6658
+ const segmentationImageId = (0,_stateManagement_segmentation_getCurrentLabelmapImageIdForViewport__WEBPACK_IMPORTED_MODULE_7__/* .getCurrentLabelmapImageIdForViewport */ .v)(viewport.id, segmentationId);
6659
+ if (!segmentationImageId) {
6660
+ return;
6661
+ }
6662
+ if (this.configuration.activeStrategy.includes('SPHERE')) {
6663
+ const referencedImageIds = viewport.getImageIds();
6664
+ const isValidVolumeForSphere = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isValidVolume(referencedImageIds);
6665
+ if (!isValidVolumeForSphere) {
6666
+ throw new Error('Volume is not reconstructable for sphere manipulation');
6667
+ }
6668
+ const volumeId = `${segmentationId}_${viewport.id}`;
6669
+ const volume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(volumeId);
6670
+ if (volume) {
6671
+ return {
6672
+ imageId: segmentationImageId,
6673
+ segmentsLocked,
6674
+ override: {
6675
+ voxelManager: volume.voxelManager,
6676
+ imageData: volume.imageData,
6677
+ },
6678
+ };
6679
+ }
6680
+ else {
6681
+ const labelmapImageIds = (0,_stateManagement_segmentation_getStackSegmentationImageIdsForViewport__WEBPACK_IMPORTED_MODULE_8__/* .getStackSegmentationImageIdsForViewport */ .B)(viewport.id, segmentationId);
6682
+ if (!labelmapImageIds || labelmapImageIds.length === 1) {
6683
+ return {
6684
+ imageId: segmentationImageId,
6685
+ segmentsLocked,
6686
+ };
6687
+ }
6688
+ const volume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.volumeLoader.createAndCacheVolumeFromImagesSync(volumeId, labelmapImageIds);
6689
+ return {
6690
+ imageId: segmentationImageId,
6691
+ segmentsLocked,
6692
+ override: {
6693
+ voxelManager: volume.voxelManager,
6694
+ imageData: volume.imageData,
6695
+ },
6696
+ };
6697
+ }
6698
+ }
6699
+ else {
6700
+ return {
6701
+ imageId: segmentationImageId,
6702
+ segmentsLocked,
6703
+ };
6704
+ }
6705
+ }
6706
+ }
6707
+ createHoverData(element, centerCanvas) {
6708
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
6709
+ const { viewport } = enabledElement;
6710
+ const camera = viewport.getCamera();
6711
+ const { viewPlaneNormal, viewUp } = camera;
6712
+ const viewportIdsToRender = [viewport.id];
6713
+ const { segmentIndex, segmentationId, segmentColor } = this.getActiveSegmentationData(viewport) || {};
6714
+ const brushCursor = {
6715
+ metadata: {
6716
+ viewPlaneNormal: [...viewPlaneNormal],
6717
+ viewUp: [...viewUp],
6718
+ FrameOfReferenceUID: viewport.getFrameOfReferenceUID(),
6719
+ referencedImageId: '',
6720
+ toolName: this.getToolName(),
6721
+ segmentColor,
6722
+ },
6723
+ data: {},
6724
+ };
6725
+ return {
6726
+ brushCursor,
6727
+ centerCanvas,
6728
+ segmentIndex,
6729
+ viewport,
6730
+ segmentationId,
6731
+ segmentColor,
6732
+ viewportIdsToRender,
6733
+ };
6734
+ }
6735
+ getActiveSegmentationData(viewport) {
6736
+ const viewportId = viewport.id;
6737
+ const activeRepresentation = (0,_stateManagement_segmentation_getActiveSegmentation__WEBPACK_IMPORTED_MODULE_3__/* .getActiveSegmentation */ .T)(viewportId);
6738
+ if (!activeRepresentation) {
6739
+ return;
6740
+ }
6741
+ const { segmentationId } = activeRepresentation;
6742
+ const segmentIndex = (0,_stateManagement_segmentation_getActiveSegmentIndex__WEBPACK_IMPORTED_MODULE_10__/* .getActiveSegmentIndex */ .Q)(segmentationId);
6743
+ if (!segmentIndex) {
6744
+ return;
6745
+ }
6746
+ const segmentColor = (0,_stateManagement_segmentation_config_segmentationColor__WEBPACK_IMPORTED_MODULE_9__.getSegmentIndexColor)(viewportId, segmentationId, segmentIndex);
6747
+ return {
6748
+ segmentIndex,
6749
+ segmentationId,
6750
+ segmentColor,
6751
+ };
6752
+ }
6753
+ getOperationData(element) {
6754
+ const editData = this._editData || this.createEditData(element);
6755
+ const { segmentIndex, segmentationId, brushCursor } = this._hoverData || this.createHoverData(element);
6756
+ const { data, metadata = {} } = brushCursor || {};
6757
+ const { viewPlaneNormal, viewUp } = metadata;
6758
+ const operationData = {
6759
+ ...editData,
6760
+ points: data?.handles?.points,
6761
+ segmentIndex,
6762
+ previewColors: this.configuration.preview?.enabled || this._previewData.preview
6763
+ ? this.configuration.preview.previewColors
6764
+ : null,
6765
+ viewPlaneNormal,
6766
+ toolGroupId: this.toolGroupId,
6767
+ segmentationId,
6768
+ viewUp,
6769
+ strategySpecificConfiguration: this.configuration.strategySpecificConfiguration,
6770
+ preview: this._previewData?.preview,
6771
+ };
6772
+ return operationData;
6773
+ }
6774
+ addPreview(element = this._previewData.element, options) {
6775
+ const acceptReject = options?.acceptReject;
6776
+ if (acceptReject === true) {
6777
+ this.acceptPreview(element);
6778
+ }
6779
+ else if (acceptReject === false) {
6780
+ this.rejectPreview(element);
6781
+ }
6782
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
6783
+ this._previewData.preview = this.applyActiveStrategyCallback(enabledElement, this.getOperationData(element), _enums__WEBPACK_IMPORTED_MODULE_11__.StrategyCallbacks.AddPreview);
6784
+ this._previewData.isDrag = true;
6785
+ return this._previewData.preview;
6786
+ }
6787
+ rejectPreview(element = this._previewData.element) {
6788
+ if (!element || !this._previewData.preview) {
6789
+ return;
6790
+ }
6791
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
6792
+ this.applyActiveStrategyCallback(enabledElement, this.getOperationData(element), _enums__WEBPACK_IMPORTED_MODULE_11__.StrategyCallbacks.RejectPreview);
6793
+ this._previewData.preview = null;
6794
+ this._previewData.isDrag = false;
6795
+ }
6796
+ acceptPreview(element = this._previewData.element) {
6797
+ if (!element) {
6798
+ return;
6799
+ }
6800
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
6801
+ this.applyActiveStrategyCallback(enabledElement, this.getOperationData(element), _enums__WEBPACK_IMPORTED_MODULE_11__.StrategyCallbacks.AcceptPreview);
6802
+ this._previewData.isDrag = false;
6803
+ this._previewData.preview = null;
6804
+ }
6805
+ }
6806
+
6807
+
6581
6808
  /***/ }),
6582
6809
 
6583
6810
  /***/ 55887:
@@ -6611,6 +6838,7 @@ class BrushStrategy {
6611
6838
  [_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.INTERNAL_setValue]: addSingletonMethod(_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.INTERNAL_setValue),
6612
6839
  [_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.Preview]: addSingletonMethod(_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.Preview, false),
6613
6840
  [_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.ComputeInnerCircleRadius]: addListMethod(_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.ComputeInnerCircleRadius),
6841
+ [_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.AddPreview]: addListMethod(_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.AddPreview),
6614
6842
  [_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.GetStatistics]: addSingletonMethod(_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.GetStatistics),
6615
6843
  compositions: null,
6616
6844
  }; }
@@ -6652,6 +6880,13 @@ class BrushStrategy {
6652
6880
  }
6653
6881
  this._onInteractionStart.forEach((func) => func.call(this, initializedData));
6654
6882
  };
6883
+ this.addPreview = (enabledElement, operationData) => {
6884
+ const initializedData = this.initialize(enabledElement, operationData, _enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.AddPreview);
6885
+ if (!initializedData) {
6886
+ return;
6887
+ }
6888
+ return initializedData.preview || initializedData;
6889
+ };
6655
6890
  this.configurationName = name;
6656
6891
  this.compositions = initializers;
6657
6892
  initializers.forEach((initializer) => {
@@ -6764,13 +6999,25 @@ var StrategyCallbacks = __webpack_require__(84093);
6764
6999
  }
6765
7000
  },
6766
7001
  [StrategyCallbacks/* default */.A.OnInteractionStart]: (operationData) => {
6767
- const { segmentIndex, previewSegmentIndex, segmentationVoxelManager, centerIJK, strategySpecificConfiguration, imageVoxelManager, segmentationImageData, preview, } = operationData;
7002
+ const { segmentIndex, previewSegmentIndex, segmentationVoxelManager, centerIJK, strategySpecificConfiguration, viewPlaneNormal, segmentationImageData, preview, } = operationData;
6768
7003
  if (!strategySpecificConfiguration?.useCenterSegmentIndex) {
6769
7004
  return;
6770
7005
  }
6771
7006
  delete strategySpecificConfiguration.centerSegmentIndex;
6772
7007
  let hasSegmentIndex = false;
6773
7008
  let hasPreviewIndex = false;
7009
+ const nestedBounds = [
7010
+ ...segmentationVoxelManager.getBoundsIJK(),
7011
+ ];
7012
+ if (Math.abs(viewPlaneNormal[0]) > 0.8) {
7013
+ nestedBounds[0] = [centerIJK[0], centerIJK[0]];
7014
+ }
7015
+ else if (Math.abs(viewPlaneNormal[1]) > 0.8) {
7016
+ nestedBounds[1] = [centerIJK[1], centerIJK[1]];
7017
+ }
7018
+ else if (Math.abs(viewPlaneNormal[2]) > 0.8) {
7019
+ nestedBounds[2] = [centerIJK[2], centerIJK[2]];
7020
+ }
6774
7021
  const callback = ({ value }) => {
6775
7022
  hasSegmentIndex ||= value === segmentIndex;
6776
7023
  hasPreviewIndex ||= value === previewSegmentIndex;
@@ -6778,6 +7025,7 @@ var StrategyCallbacks = __webpack_require__(84093);
6778
7025
  segmentationVoxelManager.forEach(callback, {
6779
7026
  imageData: segmentationImageData,
6780
7027
  isInObject: operationData.isInObject,
7028
+ boundsIJK: nestedBounds,
6781
7029
  });
6782
7030
  if (!hasSegmentIndex && !hasPreviewIndex) {
6783
7031
  return;
@@ -7630,7 +7878,7 @@ const sphereComposition = {
7630
7878
  };
7631
7879
  const SPHERE_STRATEGY = new _BrushStrategy__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A('Sphere', _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.regionFill, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.setValue, sphereComposition, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.determineSegmentIndex, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.preview, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.labelmapStatistics);
7632
7880
  const fillInsideSphere = SPHERE_STRATEGY.strategyFunction;
7633
- const SPHERE_THRESHOLD_STRATEGY = new _BrushStrategy__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A('SphereThreshold', ...SPHERE_STRATEGY.compositions, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.dynamicThreshold, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.threshold, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.islandRemoval);
7881
+ const SPHERE_THRESHOLD_STRATEGY = new _BrushStrategy__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A('SphereThreshold', ...SPHERE_STRATEGY.compositions, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.dynamicThreshold, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.threshold);
7634
7882
  const SPHERE_THRESHOLD_STRATEGY_ISLAND = new _BrushStrategy__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A('SphereThreshold', ...SPHERE_STRATEGY.compositions, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.dynamicThreshold, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.threshold, _compositions__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.islandRemoval);
7635
7883
  const thresholdInsideSphere = SPHERE_THRESHOLD_STRATEGY.strategyFunction;
7636
7884
  const thresholdInsideSphereIsland = SPHERE_THRESHOLD_STRATEGY_ISLAND.strategyFunction;
@@ -7650,7 +7898,7 @@ function fillOutsideSphere() {
7650
7898
  /* harmony export */ S: () => (/* binding */ getStrategyData)
7651
7899
  /* harmony export */ });
7652
7900
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81985);
7653
- /* harmony import */ var _stateManagement_segmentation_segmentationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98870);
7901
+ /* harmony import */ var _stateManagement_segmentation_segmentationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83243);
7654
7902
  /* harmony import */ var _stateManagement_segmentation_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27108);
7655
7903
 
7656
7904
 
@@ -15280,8 +15528,8 @@ var invalidateBrushCursor = __webpack_require__(35706);
15280
15528
  var getUniqueSegmentIndices = __webpack_require__(25758);
15281
15529
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/enums/index.js + 2 modules
15282
15530
  var enums = __webpack_require__(99737);
15283
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/segmentation/segmentationState.js + 2 modules
15284
- var segmentationState = __webpack_require__(98870);
15531
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/segmentation/segmentationState.js + 1 modules
15532
+ var segmentationState = __webpack_require__(83243);
15285
15533
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/index.js
15286
15534
  var stateManagement = __webpack_require__(6802);
15287
15535
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/polyline/index.js
@@ -3078,8 +3078,8 @@ function ViewerHeader({
3078
3078
  hotkeyDefinitions,
3079
3079
  hotkeyDefaults
3080
3080
  } = hotkeysManager;
3081
- const versionNumber = "3.10.0-beta.13";
3082
- const commitHash = "878a1f8af864b82bfd4b460efaf1352d24930a5b";
3081
+ const versionNumber = "3.10.0-beta.14";
3082
+ const commitHash = "bca20223513c15720b4538533c0f6d38b839e045";
3083
3083
  const menuOptions = [{
3084
3084
  title: t('Header:About'),
3085
3085
  icon: 'info',