@ohif/app 3.9.0-beta.36 → 3.9.0-beta.38

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 (35) hide show
  1. package/dist/{164.bundle.e30009bee13acb6967da.js → 164.bundle.2b23bfbcb23497d7c87a.js} +2 -2
  2. package/dist/{211.bundle.5bd4f255507c829f5ff4.js → 211.bundle.03a4166b16522b8215fc.js} +8 -10
  3. package/dist/{236.bundle.a7e2f9e0cb3668fb6937.js → 236.bundle.34db90a140e37d34fd71.js} +117 -86
  4. package/dist/{363.bundle.aaea135d087c8de5f246.js → 363.bundle.c79e253d0d52e05bcfe8.js} +6 -0
  5. package/dist/{370.bundle.26738a863fd92e6b0d96.js → 370.bundle.bd9884c274c26a54dfae.js} +14 -2
  6. package/dist/{382.bundle.6bb12e638e417b57edc6.js → 382.bundle.80048637f895ca01e8cc.js} +8 -10
  7. package/dist/{501.bundle.ae2420b042bb0e7f72a7.js → 501.bundle.2f703ca4598a3be0d748.js} +117 -86
  8. package/dist/{806.bundle.8bed59eb74ae6d3a33e9.js → 806.bundle.1462dcc85c1de29cbee4.js} +8 -10
  9. package/dist/{914.bundle.2b3a856b7d41ac8298e6.js → 914.bundle.e15be8089bf422ed7b51.js} +2 -2
  10. package/dist/{944.bundle.8d9b702fa2251909ac5e.js → 944.bundle.2409b5175edfddad47af.js} +2 -2
  11. package/dist/{app.bundle.ee9bb1ee04281b69dd11.js → app.bundle.4f26b14947aa14e0c3b3.js} +4 -4
  12. package/dist/index.html +1 -1
  13. package/dist/{polySeg.bundle.bbb334a78132a383ef54.js → polySeg.bundle.df492df5042827938ba4.js} +1 -1
  14. package/dist/{suv-peak-worker.bundle.6347271d0c99d33d64cf.js → suv-peak-worker.bundle.8f4b505fad3d371489fe.js} +1 -1
  15. package/dist/sw.js +1 -1
  16. package/package.json +18 -18
  17. /package/dist/{117.bundle.17ae130d2bb21ef9d31f.js → 117.bundle.1f7b56504d506e7259e3.js} +0 -0
  18. /package/dist/{121.bundle.9d1bc02753725a6bb253.js → 121.bundle.d1f46fca4d212025f6b2.js} +0 -0
  19. /package/dist/{129.bundle.3343ba9238f9e2e5cbd2.js → 129.bundle.988dbd80984887e743dc.js} +0 -0
  20. /package/dist/{139.bundle.6eb8039adf55b8c9ca62.js → 139.bundle.09e5af0a9ae8a285af77.js} +0 -0
  21. /package/dist/{14.bundle.66f407f4f809ab6e4d2b.js → 14.bundle.b3c89d7d4b5fd4aa073a.js} +0 -0
  22. /package/dist/{140.bundle.3cdcfa8c0910716f39ad.js → 140.bundle.36c1cba7c2abd0c8eff7.js} +0 -0
  23. /package/dist/{194.bundle.0097cbd10d2057a6d2fa.js → 194.bundle.8bbd93877ff310d9f42f.js} +0 -0
  24. /package/dist/{218.bundle.efce3a1382a78705f8e5.js → 218.bundle.c683c054f4f0e3e82b6d.js} +0 -0
  25. /package/dist/{323.bundle.1fd7c8d38a76f9ad0a16.js → 323.bundle.955cc8f5eb5c01295118.js} +0 -0
  26. /package/dist/{342.bundle.11ecb4c2b7014443a64b.js → 342.bundle.fcb2038060a062129d34.js} +0 -0
  27. /package/dist/{444.bundle.c8694a72ad83c14393c7.js → 444.bundle.ef72b55180ddf5c38f18.js} +0 -0
  28. /package/dist/{483.bundle.016de3c3ec209d9fa42a.js → 483.bundle.0f1848f6a2cf34829fef.js} +0 -0
  29. /package/dist/{552.bundle.af6ca952ba2d5b48d438.js → 552.bundle.782a2f8a883cb99490b6.js} +0 -0
  30. /package/dist/{555.bundle.d0975692846ab3f51a49.js → 555.bundle.2cae15470bc84f3e9986.js} +0 -0
  31. /package/dist/{717.bundle.51d5dae0d1cc8658aaa7.js → 717.bundle.46ea5d7f3fb43e29e18d.js} +0 -0
  32. /package/dist/{799.bundle.654b5001021a13206a0b.js → 799.bundle.173ed6741d1d9962ffab.js} +0 -0
  33. /package/dist/{853.bundle.d4d75dbce98d1caed76a.js → 853.bundle.4cf77b3ace9f6ead8303.js} +0 -0
  34. /package/dist/{920.bundle.55c841734b5d60121b31.js → 920.bundle.1824999eb277df7b16e9.js} +0 -0
  35. /package/dist/{989.bundle.71b69e3b9f41971c6e41.js → 989.bundle.e0a6e99d43a980f9031e.js} +0 -0
@@ -31270,14 +31270,27 @@ class FrameOfReferenceSpecificAnnotationManager {
31270
31270
  };
31271
31271
  this.removeAnnotations = (groupKey, toolName) => {
31272
31272
  const annotations = this.annotations;
31273
- if (annotations[groupKey]) {
31274
- if (toolName) {
31275
- delete annotations[groupKey][toolName];
31273
+ const removedAnnotations = [];
31274
+ if (!annotations[groupKey]) {
31275
+ return removedAnnotations;
31276
+ }
31277
+ if (toolName) {
31278
+ const annotationsForTool = annotations[groupKey][toolName];
31279
+ for (const annotation of annotationsForTool) {
31280
+ this.removeAnnotation(annotation.annotationUID);
31281
+ removedAnnotations.push(annotation);
31276
31282
  }
31277
- else {
31278
- delete annotations[groupKey];
31283
+ }
31284
+ else {
31285
+ for (const toolName in annotations[groupKey]) {
31286
+ const annotationsForTool = annotations[groupKey][toolName];
31287
+ for (const annotation of annotationsForTool) {
31288
+ this.removeAnnotation(annotation.annotationUID);
31289
+ removedAnnotations.push(annotation);
31290
+ }
31279
31291
  }
31280
31292
  }
31293
+ return removedAnnotations;
31281
31294
  };
31282
31295
  this.saveAnnotations = (groupKey, toolName) => {
31283
31296
  const annotations = this.annotations;
@@ -31330,7 +31343,12 @@ class FrameOfReferenceSpecificAnnotationManager {
31330
31343
  return count;
31331
31344
  };
31332
31345
  this.removeAllAnnotations = () => {
31333
- this.annotations = {};
31346
+ const removedAnnotations = [];
31347
+ for (const annotation of this.getAllAnnotations()) {
31348
+ this.removeAnnotation(annotation.annotationUID);
31349
+ removedAnnotations.push(annotation);
31350
+ }
31351
+ return removedAnnotations;
31334
31352
  };
31335
31353
  if (!uid) {
31336
31354
  uid = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.uuidv4();
@@ -31556,18 +31574,17 @@ __webpack_require__.r(__webpack_exports__);
31556
31574
  /* harmony export */ invalidateAnnotation: () => (/* binding */ invalidateAnnotation),
31557
31575
  /* harmony export */ removeAllAnnotations: () => (/* binding */ removeAllAnnotations),
31558
31576
  /* harmony export */ removeAnnotation: () => (/* binding */ removeAnnotation),
31577
+ /* harmony export */ removeAnnotations: () => (/* binding */ removeAnnotations),
31559
31578
  /* harmony export */ resetAnnotationManager: () => (/* binding */ resetAnnotationManager),
31560
31579
  /* harmony export */ setAnnotationManager: () => (/* binding */ setAnnotationManager)
31561
31580
  /* harmony export */ });
31562
31581
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
31563
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84901);
31564
- /* harmony import */ var _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22581);
31565
- /* harmony import */ var _helpers_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54177);
31566
-
31582
+ /* harmony import */ var _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22581);
31583
+ /* harmony import */ var _helpers_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(54177);
31567
31584
 
31568
31585
 
31569
31586
 
31570
- let defaultManager = _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_2__/* .defaultFrameOfReferenceSpecificAnnotationManager */ .H;
31587
+ let defaultManager = _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_1__/* .defaultFrameOfReferenceSpecificAnnotationManager */ .H;
31571
31588
  function getAnnotationManager() {
31572
31589
  return defaultManager;
31573
31590
  }
@@ -31575,7 +31592,7 @@ function setAnnotationManager(annotationManager) {
31575
31592
  defaultManager = annotationManager;
31576
31593
  }
31577
31594
  function resetAnnotationManager() {
31578
- defaultManager = _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_2__/* .defaultFrameOfReferenceSpecificAnnotationManager */ .H;
31595
+ defaultManager = _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_1__/* .defaultFrameOfReferenceSpecificAnnotationManager */ .H;
31579
31596
  }
31580
31597
  function getAnnotations(toolName, annotationGroupSelector) {
31581
31598
  const manager = getAnnotationManager();
@@ -31625,11 +31642,11 @@ function addAnnotation(annotation, annotationGroupSelector) {
31625
31642
  if (annotationGroupSelector instanceof HTMLDivElement) {
31626
31643
  const groupKey = manager.getGroupKey(annotationGroupSelector);
31627
31644
  manager.addAnnotation(annotation, groupKey);
31628
- (0,_helpers_state__WEBPACK_IMPORTED_MODULE_3__/* .triggerAnnotationAddedForElement */ .$f)(annotation, annotationGroupSelector);
31645
+ (0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationAddedForElement */ .$f)(annotation, annotationGroupSelector);
31629
31646
  }
31630
31647
  else {
31631
31648
  manager.addAnnotation(annotation);
31632
- (0,_helpers_state__WEBPACK_IMPORTED_MODULE_3__/* .triggerAnnotationAddedForFOR */ ._3)(annotation);
31649
+ (0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationAddedForFOR */ ._3)(annotation);
31633
31650
  }
31634
31651
  return annotation.annotationUID;
31635
31652
  }
@@ -31649,12 +31666,7 @@ function removeAnnotation(annotationUID) {
31649
31666
  }
31650
31667
  annotation.childAnnotationUIDs?.forEach((childAnnotationUID) => removeAnnotation(childAnnotationUID));
31651
31668
  manager.removeAnnotation(annotationUID);
31652
- const eventType = _enums__WEBPACK_IMPORTED_MODULE_1__.Events.ANNOTATION_REMOVED;
31653
- const eventDetail = {
31654
- annotation,
31655
- annotationManagerUID: manager.uid,
31656
- };
31657
- (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, eventType, eventDetail);
31669
+ (0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationRemoved */ .SH)({ annotation, annotationManagerUID: manager.uid });
31658
31670
  }
31659
31671
  function getAnnotation(annotationUID) {
31660
31672
  const manager = getAnnotationManager();
@@ -31663,7 +31675,24 @@ function getAnnotation(annotationUID) {
31663
31675
  }
31664
31676
  function removeAllAnnotations() {
31665
31677
  const manager = getAnnotationManager();
31666
- manager.removeAllAnnotations();
31678
+ const removedAnnotations = manager.removeAllAnnotations();
31679
+ for (const annotation of removedAnnotations) {
31680
+ (0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationRemoved */ .SH)({
31681
+ annotation,
31682
+ annotationManagerUID: manager.uid,
31683
+ });
31684
+ }
31685
+ }
31686
+ function removeAnnotations(toolName, annotationGroupSelector) {
31687
+ const manager = getAnnotationManager();
31688
+ const groupKey = manager.getGroupKey(annotationGroupSelector);
31689
+ const removedAnnotations = manager.removeAnnotations(groupKey, toolName);
31690
+ for (const annotation of removedAnnotations) {
31691
+ (0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationRemoved */ .SH)({
31692
+ annotation,
31693
+ annotationManagerUID: manager.uid,
31694
+ });
31695
+ }
31667
31696
  }
31668
31697
  function invalidateAnnotation(annotation) {
31669
31698
  let currAnnotation = annotation;
@@ -32018,6 +32047,7 @@ function getStyleProperty(property, styleSpecifier, state, mode) {
32018
32047
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32019
32048
  /* harmony export */ $f: () => (/* binding */ triggerAnnotationAddedForElement),
32020
32049
  /* harmony export */ PS: () => (/* binding */ triggerContourAnnotationCompleted),
32050
+ /* harmony export */ SH: () => (/* binding */ triggerAnnotationRemoved),
32021
32051
  /* harmony export */ XF: () => (/* binding */ triggerAnnotationModified),
32022
32052
  /* harmony export */ _3: () => (/* binding */ triggerAnnotationAddedForFOR),
32023
32053
  /* harmony export */ dZ: () => (/* binding */ triggerAnnotationCompleted)
@@ -32067,6 +32097,10 @@ function triggerAnnotationAddedForFOR(annotation) {
32067
32097
  (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, eventType, eventDetail);
32068
32098
  });
32069
32099
  }
32100
+ function triggerAnnotationRemoved(eventDetail) {
32101
+ const eventType = _enums__WEBPACK_IMPORTED_MODULE_1__.Events.ANNOTATION_REMOVED;
32102
+ (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, eventType, eventDetail);
32103
+ }
32070
32104
  function triggerAnnotationModified(annotation, element, changeType = _enums__WEBPACK_IMPORTED_MODULE_1__.ChangeTypes.HandlesUpdated) {
32071
32105
  const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
32072
32106
  const { viewportId, renderingEngineId } = enabledElement;
@@ -39996,6 +40030,7 @@ class TrackballRotateTool extends _base__WEBPACK_IMPORTED_MODULE_4__/* .BaseTool
39996
40030
  }) {
39997
40031
  super(toolProps, defaultToolProps);
39998
40032
  this._resizeObservers = new Map();
40033
+ this._hasResolutionChanged = false;
39999
40034
  this.preMouseDownCallback = (evt) => {
40000
40035
  const eventDetail = evt.detail;
40001
40036
  const { element } = eventDetail;
@@ -40005,15 +40040,19 @@ class TrackballRotateTool extends _base__WEBPACK_IMPORTED_MODULE_4__/* .BaseTool
40005
40040
  const actor = actorEntry.actor;
40006
40041
  const mapper = actor.getMapper();
40007
40042
  const originalSampleDistance = mapper.getSampleDistance();
40008
- mapper.setSampleDistance(originalSampleDistance * 2);
40009
- if (this.cleanUp !== null) {
40010
- document.removeEventListener('mouseup', this.cleanUp);
40043
+ if (!this._hasResolutionChanged) {
40044
+ mapper.setSampleDistance(originalSampleDistance * 2);
40045
+ this._hasResolutionChanged = true;
40046
+ if (this.cleanUp !== null) {
40047
+ document.removeEventListener('mouseup', this.cleanUp);
40048
+ }
40049
+ this.cleanUp = () => {
40050
+ mapper.setSampleDistance(originalSampleDistance);
40051
+ viewport.render();
40052
+ this._hasResolutionChanged = false;
40053
+ };
40054
+ document.addEventListener('mouseup', this.cleanUp, { once: true });
40011
40055
  }
40012
- this.cleanUp = () => {
40013
- mapper.setSampleDistance(originalSampleDistance);
40014
- viewport.render();
40015
- };
40016
- document.addEventListener('mouseup', this.cleanUp, { once: true });
40017
40056
  return true;
40018
40057
  };
40019
40058
  this._getViewportsInfo = () => {
@@ -43842,63 +43881,55 @@ class EllipticalROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .Annotation
43842
43881
  post2Index[0] = Math.floor(post2Index[0]);
43843
43882
  post2Index[1] = Math.floor(post2Index[1]);
43844
43883
  post2Index[2] = Math.floor(post2Index[2]);
43845
- if (this._isInsideVolume(pos1Index, post2Index, dimensions)) {
43846
- this.isHandleOutsideImage = false;
43847
- const iMin = Math.min(pos1Index[0], post2Index[0]);
43848
- const iMax = Math.max(pos1Index[0], post2Index[0]);
43849
- const jMin = Math.min(pos1Index[1], post2Index[1]);
43850
- const jMax = Math.max(pos1Index[1], post2Index[1]);
43851
- const kMin = Math.min(pos1Index[2], post2Index[2]);
43852
- const kMax = Math.max(pos1Index[2], post2Index[2]);
43853
- const boundsIJK = [
43854
- [iMin, iMax],
43855
- [jMin, jMax],
43856
- [kMin, kMax],
43857
- ];
43858
- const center = [
43859
- (topLeftWorld[0] + bottomRightWorld[0]) / 2,
43860
- (topLeftWorld[1] + bottomRightWorld[1]) / 2,
43861
- (topLeftWorld[2] + bottomRightWorld[2]) / 2,
43862
- ];
43863
- const ellipseObj = {
43864
- center,
43865
- xRadius: Math.abs(topLeftWorld[0] - bottomRightWorld[0]) / 2,
43866
- yRadius: Math.abs(topLeftWorld[1] - bottomRightWorld[1]) / 2,
43867
- zRadius: Math.abs(topLeftWorld[2] - bottomRightWorld[2]) / 2,
43868
- };
43869
- const { worldWidth, worldHeight } = (0,_utilities_planar_getWorldWidthAndHeightFromTwoPoints__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .A)(viewPlaneNormal, viewUp, worldPos1, worldPos2);
43870
- const isEmptyArea = worldWidth === 0 && worldHeight === 0;
43871
- const handles = [pos1Index, post2Index];
43872
- const { scale, areaUnits } = (0,_utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_2__/* .getCalibratedLengthUnitsAndScale */ .Op)(image, handles);
43873
- const area = Math.abs(Math.PI * (worldWidth / 2) * (worldHeight / 2)) /
43874
- scale /
43875
- scale;
43876
- const modalityUnitOptions = {
43877
- isPreScaled: (0,_utilities_viewport_isViewportPreScaled__WEBPACK_IMPORTED_MODULE_19__/* .isViewportPreScaled */ .u)(viewport, targetId),
43878
- isSuvScaled: this.isSuvScaled(viewport, targetId, annotation.metadata.referencedImageId),
43879
- };
43880
- const modalityUnit = (0,_utilities_getModalityUnit__WEBPACK_IMPORTED_MODULE_18__/* .getModalityUnit */ .c)(metadata.Modality, annotation.metadata.referencedImageId, modalityUnitOptions);
43881
- const pointsInShape = (0,_utilities__WEBPACK_IMPORTED_MODULE_3__.pointInShapeCallback)(imageData, (pointLPS) => (0,_utilities_math_ellipse__WEBPACK_IMPORTED_MODULE_15__.pointInEllipse)(ellipseObj, pointLPS, { fast: true }), this.configuration.statsCalculator.statsCallback, boundsIJK);
43882
- const stats = this.configuration.statsCalculator.getStatistics();
43883
- cachedStats[targetId] = {
43884
- Modality: metadata.Modality,
43885
- area,
43886
- mean: stats.mean?.value,
43887
- max: stats.max?.value,
43888
- stdDev: stats.stdDev?.value,
43889
- statsArray: stats.array,
43890
- pointsInShape,
43891
- isEmptyArea,
43892
- areaUnit: areaUnits,
43893
- modalityUnit,
43894
- };
43895
- }
43896
- else {
43897
- this.isHandleOutsideImage = true;
43898
- cachedStats[targetId] = {
43899
- Modality: metadata.Modality,
43900
- };
43901
- }
43884
+ this.isHandleOutsideImage = !this._isInsideVolume(pos1Index, post2Index, dimensions);
43885
+ const iMin = Math.min(pos1Index[0], post2Index[0]);
43886
+ const iMax = Math.max(pos1Index[0], post2Index[0]);
43887
+ const jMin = Math.min(pos1Index[1], post2Index[1]);
43888
+ const jMax = Math.max(pos1Index[1], post2Index[1]);
43889
+ const kMin = Math.min(pos1Index[2], post2Index[2]);
43890
+ const kMax = Math.max(pos1Index[2], post2Index[2]);
43891
+ const boundsIJK = [
43892
+ [iMin, iMax],
43893
+ [jMin, jMax],
43894
+ [kMin, kMax],
43895
+ ];
43896
+ const center = [
43897
+ (topLeftWorld[0] + bottomRightWorld[0]) / 2,
43898
+ (topLeftWorld[1] + bottomRightWorld[1]) / 2,
43899
+ (topLeftWorld[2] + bottomRightWorld[2]) / 2,
43900
+ ];
43901
+ const ellipseObj = {
43902
+ center,
43903
+ xRadius: Math.abs(topLeftWorld[0] - bottomRightWorld[0]) / 2,
43904
+ yRadius: Math.abs(topLeftWorld[1] - bottomRightWorld[1]) / 2,
43905
+ zRadius: Math.abs(topLeftWorld[2] - bottomRightWorld[2]) / 2,
43906
+ };
43907
+ const { worldWidth, worldHeight } = (0,_utilities_planar_getWorldWidthAndHeightFromTwoPoints__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .A)(viewPlaneNormal, viewUp, worldPos1, worldPos2);
43908
+ const isEmptyArea = worldWidth === 0 && worldHeight === 0;
43909
+ const handles = [pos1Index, post2Index];
43910
+ const { scale, areaUnits } = (0,_utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_2__/* .getCalibratedLengthUnitsAndScale */ .Op)(image, handles);
43911
+ const area = Math.abs(Math.PI * (worldWidth / 2) * (worldHeight / 2)) /
43912
+ scale /
43913
+ scale;
43914
+ const modalityUnitOptions = {
43915
+ isPreScaled: (0,_utilities_viewport_isViewportPreScaled__WEBPACK_IMPORTED_MODULE_19__/* .isViewportPreScaled */ .u)(viewport, targetId),
43916
+ isSuvScaled: this.isSuvScaled(viewport, targetId, annotation.metadata.referencedImageId),
43917
+ };
43918
+ const modalityUnit = (0,_utilities_getModalityUnit__WEBPACK_IMPORTED_MODULE_18__/* .getModalityUnit */ .c)(metadata.Modality, annotation.metadata.referencedImageId, modalityUnitOptions);
43919
+ const pointsInShape = (0,_utilities__WEBPACK_IMPORTED_MODULE_3__.pointInShapeCallback)(imageData, (pointLPS) => (0,_utilities_math_ellipse__WEBPACK_IMPORTED_MODULE_15__.pointInEllipse)(ellipseObj, pointLPS, { fast: true }), this.configuration.statsCalculator.statsCallback, boundsIJK);
43920
+ const stats = this.configuration.statsCalculator.getStatistics();
43921
+ cachedStats[targetId] = {
43922
+ Modality: metadata.Modality,
43923
+ area,
43924
+ mean: stats.mean?.value,
43925
+ max: stats.max?.value,
43926
+ stdDev: stats.stdDev?.value,
43927
+ statsArray: stats.array,
43928
+ pointsInShape,
43929
+ isEmptyArea,
43930
+ areaUnit: areaUnits,
43931
+ modalityUnit,
43932
+ };
43902
43933
  }
43903
43934
  annotation.invalidated = false;
43904
43935
  (0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__/* .triggerAnnotationModified */ .XF)(annotation, element);
@@ -163,15 +163,6 @@ const toolbarButtons = [{
163
163
  renderer: ui_src/* WindowLevelMenuItem */.d4,
164
164
  items: [_createWwwcPreset(1, 'Soft tissue', '400 / 40'), _createWwwcPreset(2, 'Lung', '1500 / -600'), _createWwwcPreset(3, 'Liver', '150 / 90'), _createWwwcPreset(4, 'Bone', '2500 / 480'), _createWwwcPreset(5, 'Brain', '80 / 40')]
165
165
  }
166
- }, {
167
- id: 'WindowLevelRegion',
168
- uiType: 'ohif.radioGroup',
169
- props: {
170
- icon: 'icon-tool-window-region',
171
- label: 'Window Level Region',
172
- commands: setToolActiveToolbar,
173
- evaluate: 'evaluate.cornerstoneTool'
174
- }
175
166
  },
176
167
  // Pan...
177
168
  {
@@ -697,6 +688,13 @@ const moreTools = [{
697
688
  tooltip: 'Ultrasound Directional',
698
689
  commands: setToolActiveToolbar,
699
690
  evaluate: ['evaluate.cornerstoneTool', 'evaluate.isUS']
691
+ }), moreTools_createButton({
692
+ id: 'WindowLevelRegion',
693
+ icon: 'icon-tool-window-region',
694
+ label: 'Window Level Region',
695
+ tooltip: 'Window Level Region',
696
+ commands: setToolActiveToolbar,
697
+ evaluate: 'evaluate.cornerstoneTool'
700
698
  })]
701
699
  }
702
700
  }];
@@ -781,7 +779,7 @@ function modeFactory() {
781
779
  // init customizations
782
780
  customizationService.addModeCustomizations(['@ohif/extension-test.customizationModule.custom-context-menu']);
783
781
  toolbarService.addButtons([...src_toolbarButtons, ...src_moreTools]);
784
- toolbarService.createButtonSection('primary', ['MeasurementTools', 'Zoom', 'WindowLevel', 'WindowLevelRegion', 'Pan', 'Capture', 'Layout', 'MPR', 'Crosshairs', 'MoreTools']);
782
+ toolbarService.createButtonSection('primary', ['MeasurementTools', 'Zoom', 'WindowLevel', 'Pan', 'Capture', 'Layout', 'MPR', 'Crosshairs', 'MoreTools']);
785
783
  },
786
784
  onModeExit: ({
787
785
  servicesManager
@@ -6024,7 +6024,7 @@ function stackContextPrefetch_prefetch(element) {
6024
6024
  .then(() => doneCallback(imageId));
6025
6025
  const { useNorm16Texture, preferSizeOverAccuracy } = (0,esm.getConfiguration)().rendering;
6026
6026
  const useNativeDataType = useNorm16Texture || preferSizeOverAccuracy;
6027
- indicesToRequestCopy.forEach((imageIdIndex) => {
6027
+ stackPrefetch.indicesToRequest.forEach((imageIdIndex) => {
6028
6028
  const imageId = stack.imageIds[imageIdIndex];
6029
6029
  const options = {
6030
6030
  targetBuffer: {
@@ -6123,7 +6123,7 @@ function stackContextPrefetch_disable(element) {
6123
6123
  const promiseRemovedHandler = (0,stackPrefetchUtils/* getPromiseRemovedHandler */.m0)(element);
6124
6124
  esm.eventTarget.removeEventListener(esm.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED, promiseRemovedHandler);
6125
6125
  const stackPrefetchData = (0,state/* getToolState */.k)(element);
6126
- if (stackPrefetchData && stackPrefetchData.data.length) {
6126
+ if (stackPrefetchData) {
6127
6127
  stackPrefetchData.enabled = false;
6128
6128
  }
6129
6129
  }
@@ -2812,8 +2812,8 @@ function ViewerHeader({
2812
2812
  hotkeyDefinitions,
2813
2813
  hotkeyDefaults
2814
2814
  } = hotkeysManager;
2815
- const versionNumber = "3.9.0-beta.36";
2816
- const commitHash = "649ffab4d97be875d42e1a3473a4354aac14e87d";
2815
+ const versionNumber = "3.9.0-beta.38";
2816
+ const commitHash = "33f4c18f2687d30a250fe7183df3daae8394a984";
2817
2817
  const menuOptions = [{
2818
2818
  title: t('Header:About'),
2819
2819
  icon: 'info',
@@ -1014,8 +1014,8 @@ function WorkList({
1014
1014
  };
1015
1015
  });
1016
1016
  const hasStudies = numOfStudies > 0;
1017
- const versionNumber = "3.9.0-beta.36";
1018
- const commitHash = "649ffab4d97be875d42e1a3473a4354aac14e87d";
1017
+ const versionNumber = "3.9.0-beta.38";
1018
+ const commitHash = "33f4c18f2687d30a250fe7183df3daae8394a984";
1019
1019
  const menuOptions = [{
1020
1020
  title: t('Header:About'),
1021
1021
  icon: 'info',
@@ -6572,7 +6572,7 @@ const detectionOptions = {
6572
6572
  }
6573
6573
  });
6574
6574
  ;// CONCATENATED MODULE: ../../i18n/package.json
6575
- const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.9.0-beta.35"}');
6575
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.9.0-beta.37"}');
6576
6576
  ;// CONCATENATED MODULE: ../../i18n/src/utils.js
6577
6577
  const languagesMap = {
6578
6578
  ar: 'Arabic',
@@ -374772,7 +374772,7 @@ function __disposeResources(env) {
374772
374772
  /******/ // This function allow to reference async chunks
374773
374773
  /******/ __webpack_require__.u = (chunkId) => {
374774
374774
  /******/ // return url for filenames based on template
374775
- /******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"14":"66f407f4f809ab6e4d2b","54":"6b31e5ed4c4a7a6998f2","109":"b4fee2a22b622839baf5","121":"9d1bc02753725a6bb253","129":"3343ba9238f9e2e5cbd2","139":"6eb8039adf55b8c9ca62","140":"3cdcfa8c0910716f39ad","172":"e0ee762bee7496d6491e","194":"0097cbd10d2057a6d2fa","211":"5bd4f255507c829f5ff4","218":"efce3a1382a78705f8e5","236":"a7e2f9e0cb3668fb6937","265":"b32a0cc143efa80ee3cc","323":"1fd7c8d38a76f9ad0a16","342":"11ecb4c2b7014443a64b","363":"aaea135d087c8de5f246","370":"26738a863fd92e6b0d96","382":"6bb12e638e417b57edc6","404":"5410f69ce69c9857c805","444":"c8694a72ad83c14393c7","445":"38c6d2af64e41cd7c614","483":"016de3c3ec209d9fa42a","525":"d3a56dc9f62df5e11019","552":"af6ca952ba2d5b48d438","555":"d0975692846ab3f51a49","572":"bbb334a78132a383ef54","584":"6347271d0c99d33d64cf","612":"297a033523539e0b47f9","644":"1e77691d2eeb96a423b0","675":"c9720f40fd7c7e9b7e54","717":"51d5dae0d1cc8658aaa7","722":"1242e0348afc63ca4f5e","726":"90d63d40a19b058034ee","792":"485ad2f98823a4b3feb1","799":"654b5001021a13206a0b","806":"8bed59eb74ae6d3a33e9","835":"5d1951da8bbc6afdf3e0","837":"ff9fe44bf863a5bceabc","853":"d4d75dbce98d1caed76a","914":"2b3a856b7d41ac8298e6","920":"55c841734b5d60121b31","931":"058f8de4606f27b31f4f","944":"8d9b702fa2251909ac5e","989":"71b69e3b9f41971c6e41"}[chunkId] + ".js";
374775
+ /******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"14":"b3c89d7d4b5fd4aa073a","54":"6b31e5ed4c4a7a6998f2","109":"b4fee2a22b622839baf5","121":"d1f46fca4d212025f6b2","129":"988dbd80984887e743dc","139":"09e5af0a9ae8a285af77","140":"36c1cba7c2abd0c8eff7","172":"e0ee762bee7496d6491e","194":"8bbd93877ff310d9f42f","211":"03a4166b16522b8215fc","218":"c683c054f4f0e3e82b6d","236":"34db90a140e37d34fd71","265":"b32a0cc143efa80ee3cc","323":"955cc8f5eb5c01295118","342":"fcb2038060a062129d34","363":"c79e253d0d52e05bcfe8","370":"bd9884c274c26a54dfae","382":"80048637f895ca01e8cc","404":"5410f69ce69c9857c805","444":"ef72b55180ddf5c38f18","445":"38c6d2af64e41cd7c614","483":"0f1848f6a2cf34829fef","525":"d3a56dc9f62df5e11019","552":"782a2f8a883cb99490b6","555":"2cae15470bc84f3e9986","572":"df492df5042827938ba4","584":"8f4b505fad3d371489fe","612":"297a033523539e0b47f9","644":"1e77691d2eeb96a423b0","675":"c9720f40fd7c7e9b7e54","717":"46ea5d7f3fb43e29e18d","722":"1242e0348afc63ca4f5e","726":"90d63d40a19b058034ee","792":"485ad2f98823a4b3feb1","799":"173ed6741d1d9962ffab","806":"1462dcc85c1de29cbee4","835":"5d1951da8bbc6afdf3e0","837":"ff9fe44bf863a5bceabc","853":"4cf77b3ace9f6ead8303","914":"e15be8089bf422ed7b51","920":"1824999eb277df7b16e9","931":"058f8de4606f27b31f4f","944":"2409b5175edfddad47af","989":"e0a6e99d43a980f9031e"}[chunkId] + ".js";
374776
374776
  /******/ };
374777
374777
  /******/ })();
374778
374778
  /******/
package/dist/index.html CHANGED
@@ -1,2 +1,2 @@
1
1
  <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><meta name="mobile-web-app-capable" content="yes"/><meta name="application-name" content="OHIF Viewer"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta name="apple-mobile-web-app-title" content="@ohif/app"/><meta name="msapplication-TileColor" content="#fff"/><meta name="msapplication-TileImage" content="/assets/mstile-144x144.png"/><meta name="msapplication-config" content="/assets/browserconfig.xml"/><script>console.time('scriptToView');
2
- window.PUBLIC_URL = '/';</script><link rel="manifest" href="/manifest.json"/><link rel="shortcut icon" href="/assets/favicon.ico"/><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"/><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"/><link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-touch-icon-152x152.png"/><link rel="apple-touch-icon" sizes="167x167" href="/assets/apple-touch-icon-167x167.png"/><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon-180x180.png"/><link rel="apple-touch-icon" sizes="1024x1024" href="/assets/apple-touch-icon-1024x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-320x460.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x920.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x1096.png"/><link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-750x1294.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1182x2208.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1242x2148.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-748x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-768x1004.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1496x2048.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1536x2008.png"/><link rel="icon" type="image/png" sizes="228x228" href="/assets/coast-228x228.png"/><link rel="yandex-tableau-widget" href="/assets/yandex-browser-manifest.json"/><script rel="preload" as="script" src="/app-config.js"></script><script rel="preload" as="script" type="module" src="/init-service-worker.js"></script><title>OHIF Viewer</title><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css?family=Inter:100,300,400,500,700&display=swap" rel="stylesheet" rel="preload" as="style"/><script defer="defer" src="/app.bundle.ee9bb1ee04281b69dd11.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
2
+ window.PUBLIC_URL = '/';</script><link rel="manifest" href="/manifest.json"/><link rel="shortcut icon" href="/assets/favicon.ico"/><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"/><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"/><link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-touch-icon-152x152.png"/><link rel="apple-touch-icon" sizes="167x167" href="/assets/apple-touch-icon-167x167.png"/><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon-180x180.png"/><link rel="apple-touch-icon" sizes="1024x1024" href="/assets/apple-touch-icon-1024x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-320x460.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x920.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x1096.png"/><link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-750x1294.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1182x2208.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1242x2148.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-748x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-768x1004.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1496x2048.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1536x2008.png"/><link rel="icon" type="image/png" sizes="228x228" href="/assets/coast-228x228.png"/><link rel="yandex-tableau-widget" href="/assets/yandex-browser-manifest.json"/><script rel="preload" as="script" src="/app-config.js"></script><script rel="preload" as="script" type="module" src="/init-service-worker.js"></script><title>OHIF Viewer</title><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css?family=Inter:100,300,400,500,700&display=swap" rel="stylesheet" rel="preload" as="style"/><script defer="defer" src="/app.bundle.4f26b14947aa14e0c3b3.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
@@ -136,7 +136,7 @@
136
136
  /******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
137
137
  /******/ __webpack_require__.u = (chunkId) => {
138
138
  /******/ // return url for filenames based on template
139
- /******/ return "" + (chunkId === 572 ? "polySeg" : chunkId) + ".bundle." + {"164":"e30009bee13acb6967da","370":"26738a863fd92e6b0d96","483":"016de3c3ec209d9fa42a","501":"ae2420b042bb0e7f72a7","572":"bbb334a78132a383ef54","702":"963481fbf871984b646f"}[chunkId] + ".js";
139
+ /******/ return "" + (chunkId === 572 ? "polySeg" : chunkId) + ".bundle." + {"164":"2b23bfbcb23497d7c87a","370":"bd9884c274c26a54dfae","483":"0f1848f6a2cf34829fef","501":"2f703ca4598a3be0d748","572":"df492df5042827938ba4","702":"963481fbf871984b646f"}[chunkId] + ".js";
140
140
  /******/ };
141
141
  /******/ })();
142
142
  /******/
@@ -290,7 +290,7 @@ const obj = {
290
290
  /******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
291
291
  /******/ __webpack_require__.u = (chunkId) => {
292
292
  /******/ // return url for filenames based on template
293
- /******/ return "" + (chunkId === 572 ? "polySeg" : chunkId) + ".bundle." + {"117":"17ae130d2bb21ef9d31f","370":"26738a863fd92e6b0d96","501":"ae2420b042bb0e7f72a7","572":"bbb334a78132a383ef54","702":"963481fbf871984b646f","914":"2b3a856b7d41ac8298e6"}[chunkId] + ".js";
293
+ /******/ return "" + (chunkId === 572 ? "polySeg" : chunkId) + ".bundle." + {"117":"1f7b56504d506e7259e3","370":"bd9884c274c26a54dfae","501":"2f703ca4598a3be0d748","572":"df492df5042827938ba4","702":"963481fbf871984b646f","914":"e15be8089bf422ed7b51"}[chunkId] + ".js";
294
294
  /******/ };
295
295
  /******/ })();
296
296
  /******/