@ohif/app 3.9.0-beta.33 → 3.9.0-beta.35

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/{117.bundle.3c4b1267961545fed330.js → 117.bundle.17ae130d2bb21ef9d31f.js} +5 -56
  2. package/dist/{121.bundle.801d67b2ea4795904a34.js → 121.bundle.055a3cf8c3030dac8989.js} +1 -1
  3. package/dist/{129.bundle.af538a6667223c3ee00c.js → 129.bundle.a0a9dbc0bc789d61e3f1.js} +21 -7
  4. package/dist/{164.bundle.02db16dcc1132b25d4ad.js → 164.bundle.e30009bee13acb6967da.js} +217 -260
  5. package/dist/{172.bundle.e3e82e398b39958577e6.js → 172.bundle.0456e70413768fec2ba8.js} +2 -2
  6. package/dist/{211.bundle.6c1a54decc0f4f25ceef.js → 211.bundle.9b5c28787d753e75007a.js} +1 -1
  7. package/dist/{236.bundle.ed0702d760569f060757.js → 236.bundle.a7e2f9e0cb3668fb6937.js} +29 -78
  8. package/dist/{370.bundle.6b8d3e94eef8e83ced67.js → 370.bundle.26738a863fd92e6b0d96.js} +4 -4
  9. package/dist/{501.bundle.f6641d4f50c6f8c54b6a.js → 501.bundle.de519580f8ba42802378.js} +128 -134
  10. package/dist/{717.bundle.6547980cca1f670e7369.js → 717.bundle.ed7b18342e965b920fb1.js} +28 -5
  11. package/dist/{827.bundle.f29fa1aca00b1587ee1d.js → 822.bundle.b3917579472530774dae.js} +127 -10
  12. package/dist/{367.bundle.498dd1c427fcbfb437e1.js → 914.bundle.2b3a856b7d41ac8298e6.js} +231 -243
  13. package/dist/{app.bundle.40855028ced087e80ed8.js → app.bundle.062cc78f47b0381a524f.js} +128 -125
  14. package/dist/app.bundle.css +1 -1
  15. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  16. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  17. package/dist/index.html +1 -1
  18. package/dist/{polySeg.bundle.0b510b43f66f641bb68a.js → polySeg.bundle.9534be8b9625c55d433f.js} +1 -1
  19. package/dist/{suv-peak-worker.bundle.42afdd68a04bee2d0f4e.js → suv-peak-worker.bundle.2fc8f559d02ec7f11f6f.js} +3 -3
  20. package/dist/sw.js +1 -1
  21. package/package.json +19 -19
  22. /package/dist/{14.bundle.97cf1afcd4f0110050a6.js → 14.bundle.74ed51e9f23d30c4756e.js} +0 -0
  23. /package/dist/{140.bundle.21b611e76813bab96962.js → 140.bundle.9aa4277ae364d4e6b2a1.js} +0 -0
  24. /package/dist/{194.bundle.64deea4a1417e43490ad.js → 194.bundle.0bca18315d222b64e3b9.js} +0 -0
  25. /package/dist/{218.bundle.f69e4959f089d878079e.js → 218.bundle.4592ee9c04814588649d.js} +0 -0
  26. /package/dist/{363.bundle.8349e6b3b5ecd579f2ea.js → 363.bundle.6954b6f7e53d137064f1.js} +0 -0
  27. /package/dist/{382.bundle.03581c36b11e4836d48a.js → 382.bundle.753e1c9ba917db172277.js} +0 -0
  28. /package/dist/{444.bundle.9fb89f29a1fb64ed1982.js → 444.bundle.c86bb3056afa4a0edd82.js} +0 -0
  29. /package/dist/{552.bundle.ce88c4b6441458b20e12.js → 552.bundle.a6e956a4800ec55a56ae.js} +0 -0
  30. /package/dist/{555.bundle.6f160c43266660dee7ae.js → 555.bundle.766276c23e5c7a412e42.js} +0 -0
  31. /package/dist/{799.bundle.8a2c1ed27eda4164dae2.js → 799.bundle.aeb9132578b347fd0284.js} +0 -0
  32. /package/dist/{806.bundle.1ea34e01ca172a1281b2.js → 806.bundle.6b3d7374d0be70fde3bd.js} +0 -0
  33. /package/dist/{853.bundle.717af1e869faeedd1891.js → 853.bundle.f8aceb7b8564c835977c.js} +0 -0
  34. /package/dist/{920.bundle.f32e83e0d3c19d552ee7.js → 920.bundle.06732ab57daae8b1df11.js} +0 -0
  35. /package/dist/{989.bundle.7f29bb90050745e7b001.js → 989.bundle.b88ebd5f4aa5afe2dfd6.js} +0 -0
@@ -18,7 +18,7 @@
18
18
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(51884);
19
19
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71702);
20
20
  /* harmony import */ var _loaders_volumeLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(82041);
21
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(20228);
21
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(35678);
22
22
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90601);
23
23
  /* harmony import */ var _helpers_volumeNewImageEventDispatcher__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(46820);
24
24
  /* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(11512);
@@ -505,7 +505,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
505
505
  return target;
506
506
  }
507
507
  const { viewPlaneNormal } = target;
508
- const delta = viewRefSpecifier.sliceIndex - this.getCurrentImageIdIndex();
508
+ const delta = viewRefSpecifier.sliceIndex - this.getSliceIndex();
509
509
  const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
510
510
  const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
511
511
  const { focalPoint, position } = camera;
@@ -523,7 +523,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
523
523
  if (options?.withNavigation) {
524
524
  return true;
525
525
  }
526
- const currentSliceIndex = this.getCurrentImageIdIndex();
526
+ const currentSliceIndex = this.getSliceIndex();
527
527
  const { sliceIndex } = viewRef;
528
528
  if (Array.isArray(sliceIndex)) {
529
529
  return (sliceIndex[0] <= currentSliceIndex && currentSliceIndex <= sliceIndex[1]);
@@ -900,7 +900,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
900
900
  }
901
901
  volumeId = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
902
902
  }
903
- const currentIndex = this.getCurrentImageIdIndex();
903
+ const currentIndex = this.getSliceIndex();
904
904
  sliceIndex ??= currentIndex;
905
905
  const { viewPlaneNormal, focalPoint } = this.getCamera();
906
906
  const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
@@ -1829,8 +1829,8 @@ var metaData = __webpack_require__(55692);
1829
1829
  // EXTERNAL MODULE: ../../../node_modules/lodash.clonedeep/index.js
1830
1830
  var lodash_clonedeep = __webpack_require__(48463);
1831
1831
  var lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep);
1832
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
1833
- var utilities = __webpack_require__(20228);
1832
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
1833
+ var utilities = __webpack_require__(35678);
1834
1834
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
1835
1835
  var Viewport = __webpack_require__(11512);
1836
1836
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.js + 2 modules
@@ -2204,6 +2204,9 @@ class StackViewport extends Viewport/* default */.A {
2204
2204
  this.getCurrentImageIdIndex = () => {
2205
2205
  return this.currentImageIdIndex;
2206
2206
  };
2207
+ this.getSliceIndex = () => {
2208
+ return this.currentImageIdIndex;
2209
+ };
2207
2210
  this.getTargetImageIdIndex = () => {
2208
2211
  return this.targetImageIdIndex;
2209
2212
  };
@@ -3799,8 +3802,8 @@ var enums = __webpack_require__(98362);
3799
3802
  var metaData = __webpack_require__(55692);
3800
3803
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.js
3801
3804
  var rendering_transform = __webpack_require__(18714);
3802
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
3803
- var utilities = __webpack_require__(20228);
3805
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
3806
+ var utilities = __webpack_require__(35678);
3804
3807
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
3805
3808
  var Viewport = __webpack_require__(11512);
3806
3809
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
@@ -4571,7 +4574,7 @@ class VideoViewport extends Viewport/* default */.A {
4571
4574
  if (options.withNavigation) {
4572
4575
  return true;
4573
4576
  }
4574
- const currentIndex = this.getCurrentImageIdIndex();
4577
+ const currentIndex = this.getSliceIndex();
4575
4578
  if (Array.isArray(sliceIndex)) {
4576
4579
  return currentIndex >= sliceIndex[0] && currentIndex <= sliceIndex[1];
4577
4580
  }
@@ -4608,6 +4611,9 @@ class VideoViewport extends Viewport/* default */.A {
4608
4611
  getCurrentImageIdIndex() {
4609
4612
  return Math.round(this.videoElement.currentTime * this.fps);
4610
4613
  }
4614
+ getSliceIndex() {
4615
+ return this.getCurrentImageIdIndex();
4616
+ }
4611
4617
  getCamera() {
4612
4618
  const { parallelScale } = this.videoCamera;
4613
4619
  const canvasCenter = [
@@ -4711,7 +4717,7 @@ class VideoViewport extends Viewport/* default */.A {
4711
4717
  /* harmony import */ var _enums_ViewportStatus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17702);
4712
4718
  /* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21432);
4713
4719
  /* harmony import */ var _renderingEngineCache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(94070);
4714
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
4720
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35678);
4715
4721
  /* harmony import */ var _utilities_hasNaNValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(73139);
4716
4722
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(88903);
4717
4723
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(71702);
@@ -5217,6 +5223,9 @@ class Viewport {
5217
5223
  getCurrentImageIdIndex() {
5218
5224
  throw new Error('Not implemented');
5219
5225
  }
5226
+ getSliceIndex() {
5227
+ throw new Error('Not implemented');
5228
+ }
5220
5229
  getReferenceId(_specifier) {
5221
5230
  return null;
5222
5231
  }
@@ -5502,7 +5511,7 @@ class Viewport {
5502
5511
  cameraFocalPoint,
5503
5512
  viewPlaneNormal,
5504
5513
  viewUp,
5505
- sliceIndex: viewRefSpecifier.sliceIndex ?? this.getCurrentImageIdIndex(),
5514
+ sliceIndex: viewRefSpecifier.sliceIndex ?? this.getSliceIndex(),
5506
5515
  };
5507
5516
  return target;
5508
5517
  }
@@ -5651,12 +5660,12 @@ class Viewport {
5651
5660
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
5652
5661
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88903);
5653
5662
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
5654
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
5663
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35678);
5655
5664
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6203);
5656
5665
  /* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83853);
5657
5666
  /* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22350);
5658
5667
  /* harmony import */ var _utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97508);
5659
- /* harmony import */ var _utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(62255);
5668
+ /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(44753);
5660
5669
 
5661
5670
 
5662
5671
 
@@ -5675,14 +5684,23 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/*
5675
5684
  const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
5676
5685
  return numberOfSlices;
5677
5686
  };
5687
+ this.getCurrentImageIdIndex = (volumeId) => {
5688
+ const { viewPlaneNormal, focalPoint } = this.getCamera();
5689
+ const imageData = this.getImageData(volumeId);
5690
+ if (!imageData) {
5691
+ return;
5692
+ }
5693
+ const { origin, direction, spacing } = imageData;
5694
+ const spacingInNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSpacingInNormalDirection)({ direction, spacing }, viewPlaneNormal);
5695
+ const sub = gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.create */ .eR.create();
5696
+ gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.sub */ .eR.sub(sub, focalPoint, origin);
5697
+ const distance = gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.dot */ .eR.dot(sub, viewPlaneNormal);
5698
+ return Math.round(Math.abs(distance) / spacingInNormal);
5699
+ };
5678
5700
  this.getSliceIndex = () => {
5679
5701
  const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
5680
5702
  return imageIndex;
5681
5703
  };
5682
- this.getCurrentImageIdIndex = (volumeId, useSlabThickness = true) => {
5683
- const { currentStepIndex } = (0,_utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this, volumeId || this.getVolumeId(), useSlabThickness);
5684
- return currentStepIndex;
5685
- };
5686
5704
  this.getCurrentImageId = () => {
5687
5705
  const actorEntry = this.getDefaultActor();
5688
5706
  if (!actorEntry || !(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
@@ -7256,8 +7274,8 @@ function storedPixelDataToCanvasImageDataPseudocolorLUTPET(image, lutFunction, c
7256
7274
  }
7257
7275
  /* harmony default export */ const rendering_storedPixelDataToCanvasImageDataPseudocolorLUTPET = (storedPixelDataToCanvasImageDataPseudocolorLUTPET);
7258
7276
 
7259
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
7260
- var utilities = __webpack_require__(20228);
7277
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
7278
+ var utilities = __webpack_require__(35678);
7261
7279
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js
7262
7280
 
7263
7281
 
@@ -8312,8 +8330,8 @@ function createVolumeMapper(imageData, vtkOpenGLTexture) {
8312
8330
  return volumeMapper;
8313
8331
  }
8314
8332
 
8315
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
8316
- var utilities = __webpack_require__(20228);
8333
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
8334
+ var utilities = __webpack_require__(35678);
8317
8335
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
8318
8336
  var enums = __webpack_require__(98362);
8319
8337
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
@@ -8424,7 +8442,7 @@ var addImageSlicesToViewports = __webpack_require__(25271);
8424
8442
  /* harmony export */ });
8425
8443
  /* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79220);
8426
8444
  /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55692);
8427
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20228);
8445
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35678);
8428
8446
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
8429
8447
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13320);
8430
8448
 
@@ -8578,7 +8596,7 @@ function _isCurrentImagePTPrescaled(modality, imageVolume) {
8578
8596
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
8579
8597
  /* harmony export */ g: () => (/* binding */ resetVolumeNewImageState)
8580
8598
  /* harmony export */ });
8581
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
8599
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
8582
8600
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
8583
8601
  /* harmony import */ var _getRenderingEngine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49184);
8584
8602
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6203);
@@ -8645,8 +8663,8 @@ var Events = __webpack_require__(11731);
8645
8663
  var renderingEngineCache = __webpack_require__(94070);
8646
8664
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
8647
8665
  var eventTarget = __webpack_require__(51884);
8648
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
8649
- var utilities = __webpack_require__(20228);
8666
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
8667
+ var utilities = __webpack_require__(35678);
8650
8668
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
8651
8669
  var vtkClasses = __webpack_require__(69585);
8652
8670
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportType.js
@@ -15436,7 +15454,7 @@ function vtkSlabCamera(publicAPI, model) {
15436
15454
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
15437
15455
  /* harmony export */ });
15438
15456
  /* unused harmony export Cache */
15439
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
15457
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
15440
15458
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51884);
15441
15459
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
15442
15460
  /* harmony import */ var _classes_ImageVolume__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77076);
@@ -15918,8 +15936,8 @@ function isTypedArray(obj) {
15918
15936
  obj instanceof Float64Array);
15919
15937
  }
15920
15938
 
15921
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
15922
- var utilities = __webpack_require__(20228);
15939
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
15940
+ var utilities = __webpack_require__(35678);
15923
15941
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
15924
15942
  var vtkClasses = __webpack_require__(69585);
15925
15943
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/cache.js
@@ -23703,8 +23721,8 @@ async function createAndCacheGeometry(geometryId, options) {
23703
23721
 
23704
23722
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
23705
23723
  var ProgressiveRetrieveImages = __webpack_require__(71090);
23706
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
23707
- var utilities = __webpack_require__(20228);
23724
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
23725
+ var utilities = __webpack_require__(35678);
23708
23726
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
23709
23727
  var triggerEvent = __webpack_require__(13292);
23710
23728
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
@@ -23767,8 +23785,8 @@ function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{
23767
23785
  var enums = __webpack_require__(98362);
23768
23786
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
23769
23787
  var getRenderingEngine = __webpack_require__(49184);
23770
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
23771
- var utilities = __webpack_require__(20228);
23788
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
23789
+ var utilities = __webpack_require__(35678);
23772
23790
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/webWorkerManager/webWorkerManager.js
23773
23791
  var webWorkerManager = __webpack_require__(61874);
23774
23792
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js
@@ -24089,8 +24107,8 @@ const interleavedRetrieveConfiguration = [
24089
24107
 
24090
24108
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
24091
24109
  var imageLoader = __webpack_require__(79220);
24092
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
24093
- var utilities = __webpack_require__(20228);
24110
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
24111
+ var utilities = __webpack_require__(35678);
24094
24112
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
24095
24113
  var imageLoadPoolManager = __webpack_require__(775);
24096
24114
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
@@ -24851,73 +24869,6 @@ const getVolumeId = (targetId) => {
24851
24869
  };
24852
24870
 
24853
24871
 
24854
- /***/ }),
24855
-
24856
- /***/ 76399:
24857
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24858
-
24859
- "use strict";
24860
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24861
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
24862
- /* harmony export */ });
24863
- /* harmony import */ var _getSliceRange__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51849);
24864
- /* harmony import */ var _getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94172);
24865
-
24866
-
24867
- function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
24868
- const camera = viewport.getCamera();
24869
- const { focalPoint, viewPlaneNormal } = camera;
24870
- const { spacingInNormalDirection, actorUID } = (0,_getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(viewport, camera, volumeId, useSlabThickness);
24871
- if (!actorUID) {
24872
- throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
24873
- }
24874
- const actorEntry = viewport.getActor(actorUID);
24875
- if (!actorEntry) {
24876
- console.warn('No actor found for with actorUID of', actorUID);
24877
- return null;
24878
- }
24879
- const volumeActor = actorEntry.actor;
24880
- const sliceRange = (0,_getSliceRange__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(volumeActor, viewPlaneNormal, focalPoint);
24881
- return {
24882
- sliceRange,
24883
- spacingInNormalDirection,
24884
- camera,
24885
- };
24886
- }
24887
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeSliceRangeInfo);
24888
-
24889
-
24890
- /***/ }),
24891
-
24892
- /***/ 62255:
24893
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24894
-
24895
- "use strict";
24896
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24897
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
24898
- /* harmony export */ });
24899
- /* harmony import */ var _getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76399);
24900
-
24901
- function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
24902
- const { sliceRange, spacingInNormalDirection, camera } = (0,_getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(viewport, volumeId, useSlabThickness);
24903
- const { min, max, current } = sliceRange;
24904
- const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
24905
- const fraction = (current - min) / (max - min);
24906
- const floatingStepNumber = fraction * numScrollSteps;
24907
- const currentStepIndex = Math.round(floatingStepNumber);
24908
- return {
24909
- numScrollSteps,
24910
- currentStepIndex,
24911
- sliceRangeInfo: {
24912
- sliceRange,
24913
- spacingInNormalDirection,
24914
- camera,
24915
- },
24916
- };
24917
- }
24918
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeViewportScrollInfo);
24919
-
24920
-
24921
24872
  /***/ }),
24922
24873
 
24923
24874
  /***/ 73139:
@@ -24937,7 +24888,7 @@ function hasNaNValues(input) {
24937
24888
 
24938
24889
  /***/ }),
24939
24890
 
24940
- /***/ 20228:
24891
+ /***/ 35678:
24941
24892
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24942
24893
 
24943
24894
  "use strict";
@@ -24994,8 +24945,8 @@ __webpack_require__.d(__webpack_exports__, {
24994
24945
  getVoiFromSigmoidRGBTransferFunction: () => (/* reexport */ getVoiFromSigmoidRGBTransferFunction),
24995
24946
  getVolumeActorCorners: () => (/* reexport */ getVolumeActorCorners/* default */.A),
24996
24947
  getVolumeId: () => (/* reexport */ getVolumeId/* getVolumeId */.A),
24997
- getVolumeSliceRangeInfo: () => (/* reexport */ getVolumeSliceRangeInfo/* default */.A),
24998
- getVolumeViewportScrollInfo: () => (/* reexport */ getVolumeViewportScrollInfo/* default */.A),
24948
+ getVolumeSliceRangeInfo: () => (/* reexport */ utilities_getVolumeSliceRangeInfo),
24949
+ getVolumeViewportScrollInfo: () => (/* reexport */ utilities_getVolumeViewportScrollInfo),
24999
24950
  getVolumeViewportsContainingSameVolumes: () => (/* reexport */ utilities_getVolumeViewportsContainingSameVolumes),
25000
24951
  hasFloatScalingParameters: () => (/* reexport */ hasFloatScalingParameters),
25001
24952
  hasNaNValues: () => (/* reexport */ hasNaNValues/* default */.A),
@@ -25905,12 +25856,54 @@ function imageToWorldCoords(imageId, imageCoords) {
25905
25856
  return Array.from(imageCoordsInWorld);
25906
25857
  }
25907
25858
 
25908
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
25909
- var getVolumeSliceRangeInfo = __webpack_require__(76399);
25910
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
25911
- var getVolumeViewportScrollInfo = __webpack_require__(62255);
25912
25859
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getSliceRange.js
25913
25860
  var getSliceRange = __webpack_require__(51849);
25861
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
25862
+
25863
+
25864
+ function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
25865
+ const camera = viewport.getCamera();
25866
+ const { focalPoint, viewPlaneNormal } = camera;
25867
+ const { spacingInNormalDirection, actorUID } = (0,getTargetVolumeAndSpacingInNormalDir/* default */.A)(viewport, camera, volumeId, useSlabThickness);
25868
+ if (!actorUID) {
25869
+ throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
25870
+ }
25871
+ const actorEntry = viewport.getActor(actorUID);
25872
+ if (!actorEntry) {
25873
+ console.warn('No actor found for with actorUID of', actorUID);
25874
+ return null;
25875
+ }
25876
+ const volumeActor = actorEntry.actor;
25877
+ const sliceRange = (0,getSliceRange/* default */.A)(volumeActor, viewPlaneNormal, focalPoint);
25878
+ return {
25879
+ sliceRange,
25880
+ spacingInNormalDirection,
25881
+ camera,
25882
+ };
25883
+ }
25884
+ /* harmony default export */ const utilities_getVolumeSliceRangeInfo = (getVolumeSliceRangeInfo);
25885
+
25886
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
25887
+
25888
+ function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
25889
+ const { sliceRange, spacingInNormalDirection, camera } = utilities_getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness);
25890
+ const { min, max, current } = sliceRange;
25891
+ const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
25892
+ const fraction = (current - min) / (max - min);
25893
+ const floatingStepNumber = fraction * numScrollSteps;
25894
+ const currentStepIndex = Math.round(floatingStepNumber);
25895
+ return {
25896
+ numScrollSteps,
25897
+ currentStepIndex,
25898
+ sliceRangeInfo: {
25899
+ sliceRange,
25900
+ spacingInNormalDirection,
25901
+ camera,
25902
+ },
25903
+ };
25904
+ }
25905
+ /* harmony default export */ const utilities_getVolumeViewportScrollInfo = (getVolumeViewportScrollInfo);
25906
+
25914
25907
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/snapFocalPointToSlice.js
25915
25908
 
25916
25909
  function snapFocalPointToSlice(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, deltaFrames) {
@@ -30262,7 +30255,7 @@ const cameraResetEventDispatcher_disable = function (element) {
30262
30255
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(74119);
30263
30256
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(90252);
30264
30257
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38296);
30265
- /* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75534);
30258
+ /* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75908);
30266
30259
  /* harmony import */ var _utilities_contourSegmentation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7259);
30267
30260
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
30268
30261
  /* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(81848);
@@ -30365,12 +30358,14 @@ function findIntersectingContour(viewport, sourcePolyline, contourSegmentationAn
30365
30358
  function createPolylineHole(viewport, targetAnnotation, holeAnnotation) {
30366
30359
  const { windingDirection: targetWindingDirection } = targetAnnotation.data.contour;
30367
30360
  const { windingDirection: holeWindingDirection } = holeAnnotation.data.contour;
30368
- if (targetWindingDirection === holeWindingDirection) {
30369
- holeAnnotation.data.contour.polyline.reverse();
30370
- holeAnnotation.data.contour.windingDirection = targetWindingDirection * -1;
30371
- }
30372
30361
  (0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_4__.addChildAnnotation)(targetAnnotation, holeAnnotation);
30373
30362
  _utilities_contourSegmentation__WEBPACK_IMPORTED_MODULE_6__.removeContourSegmentationAnnotation(holeAnnotation);
30363
+ const { contour: holeContour } = holeAnnotation.data;
30364
+ const holePolyline = convertContourPolylineToCanvasSpace(holeContour.polyline, viewport);
30365
+ _utilities_contours__WEBPACK_IMPORTED_MODULE_5__.updateContourPolyline(holeAnnotation, {
30366
+ points: holePolyline,
30367
+ closed: holeContour.closed,
30368
+ }, viewport);
30374
30369
  const { element } = viewport;
30375
30370
  const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
30376
30371
  const { renderingEngine } = enabledElement;
@@ -44669,7 +44664,7 @@ class LivewireContourSegmentationTool extends _LivewireContourTool__WEBPACK_IMPO
44669
44664
  }
44670
44665
  this.updateAnnotation(acceptedPath);
44671
44666
  this.scissors = null;
44672
- this.scissorsRight = null;
44667
+ this.scissorsNext = null;
44673
44668
  this.editData = null;
44674
44669
  annotation.data.handles.interpolationSources = null;
44675
44670
  if (repeatInterpolation) {
@@ -45015,7 +45010,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
45015
45010
  element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_5__.Events.TOUCH_TAP, this._mouseDownCallback);
45016
45011
  };
45017
45012
  }
45018
- setupBaseEditData(worldPos, element, annotation, rightPos, contourHoleProcessingEnabled) {
45013
+ setupBaseEditData(worldPos, element, annotation, nextPos, contourHoleProcessingEnabled) {
45019
45014
  const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
45020
45015
  const { viewport } = enabledElement;
45021
45016
  this.isDrawing = true;
@@ -45058,12 +45053,12 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
45058
45053
  const { voiRange } = viewport.getProperties();
45059
45054
  const startPos = worldToSlice(worldPos);
45060
45055
  this.scissors = _utilities_livewire_LivewireScissors__WEBPACK_IMPORTED_MODULE_12__/* .LivewireScissors */ .f.createInstanceFromRawPixelData(scalarData, width, height, voiRange);
45061
- if (rightPos) {
45062
- this.scissorsRight = _utilities_livewire_LivewireScissors__WEBPACK_IMPORTED_MODULE_12__/* .LivewireScissors */ .f.createInstanceFromRawPixelData(scalarData, width, height, voiRange);
45063
- this.scissorsRight.startSearch(worldToSlice(rightPos));
45056
+ if (nextPos) {
45057
+ this.scissorsNext = _utilities_livewire_LivewireScissors__WEBPACK_IMPORTED_MODULE_12__/* .LivewireScissors */ .f.createInstanceFromRawPixelData(scalarData, width, height, voiRange);
45058
+ this.scissorsNext.startSearch(worldToSlice(nextPos));
45064
45059
  }
45065
45060
  this.scissors.startSearch(startPos);
45066
- const newAnnotation = !rightPos;
45061
+ const newAnnotation = !nextPos;
45067
45062
  const confirmedPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
45068
45063
  const currentPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
45069
45064
  const currentPathNext = newAnnotation ? undefined : new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
@@ -45079,7 +45074,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
45079
45074
  lastCanvasPoint,
45080
45075
  confirmedPath,
45081
45076
  currentPath,
45082
- confirmedPathRight: currentPathNext,
45077
+ confirmedPathNext: currentPathNext,
45083
45078
  closed: false,
45084
45079
  handleIndex: this.editData?.handleIndex ?? annotation.handles?.activeHandleIndex,
45085
45080
  worldToSlice,
@@ -45105,7 +45100,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
45105
45100
  clearEditData() {
45106
45101
  this.editData = null;
45107
45102
  this.scissors = null;
45108
- this.scissorsRight = null;
45103
+ this.scissorsNext = null;
45109
45104
  this.isDrawing = false;
45110
45105
  }
45111
45106
  editHandle(worldPos, element, annotation, handleIndex) {
@@ -45114,11 +45109,11 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
45114
45109
  const { length: numHandles } = handlePoints;
45115
45110
  const previousHandle = handlePoints[(handleIndex - 1 + numHandles) % numHandles];
45116
45111
  const nextHandle = handlePoints[(handleIndex + 1) % numHandles];
45117
- if (!this.editData?.confirmedPathRight) {
45112
+ if (!this.editData?.confirmedPathNext) {
45118
45113
  this.setupBaseEditData(previousHandle, element, annotation, nextHandle);
45119
45114
  const { polyline } = data.contour;
45120
45115
  const confirmedPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
45121
- const confirmedPathRight = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
45116
+ const confirmedPathNext = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
45122
45117
  const { worldToSlice } = this.editData;
45123
45118
  const previousIndex = (0,_utilities_contours_findHandlePolylineIndex__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(annotation, handleIndex - 1);
45124
45119
  const nextIndex = (0,_utilities_contours_findHandlePolylineIndex__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(annotation, handleIndex + 1);
@@ -45126,17 +45121,14 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
45126
45121
  throw new Error(`Can't find handle index ${nextIndex === -1 && nextHandle} ${previousIndex === -1 && previousHandle}`);
45127
45122
  }
45128
45123
  if (handleIndex === 0) {
45129
- confirmedPathRight.addPoints(polyline.slice(nextIndex + 1, previousIndex).map(worldToSlice));
45130
- }
45131
- else if (nextIndex < previousIndex) {
45132
- throw new Error(`Expected right index after left index, but were: ${previousIndex} ${nextIndex}`);
45124
+ confirmedPathNext.addPoints(polyline.slice(nextIndex + 1, previousIndex).map(worldToSlice));
45133
45125
  }
45134
45126
  else {
45135
45127
  confirmedPath.addPoints(polyline.slice(0, previousIndex + 1).map(worldToSlice));
45136
- confirmedPathRight.addPoints(polyline.slice(nextIndex, polyline.length).map(worldToSlice));
45128
+ confirmedPathNext.addPoints(polyline.slice(nextIndex, polyline.length).map(worldToSlice));
45137
45129
  }
45138
45130
  this.editData.confirmedPath = confirmedPath;
45139
- this.editData.confirmedPathRight = confirmedPathRight;
45131
+ this.editData.confirmedPathNext = confirmedPathNext;
45140
45132
  }
45141
45133
  const { editData, scissors } = this;
45142
45134
  const { worldToSlice, sliceToWorld } = editData;
@@ -45156,14 +45148,14 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
45156
45148
  }
45157
45149
  handlePoints[handleIndex] = sliceToWorld(slicePos);
45158
45150
  const pathPointsLeft = scissors.findPathToPoint(slicePos);
45159
- const pathPointsRight = this.scissorsRight.findPathToPoint(slicePos);
45151
+ const pathPointsRight = this.scissorsNext.findPathToPoint(slicePos);
45160
45152
  const currentPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
45161
45153
  currentPath.prependPath(editData.confirmedPath);
45162
45154
  if (handleIndex !== 0) {
45163
45155
  currentPath.addPoints(pathPointsLeft);
45164
45156
  }
45165
45157
  currentPath.addPoints(pathPointsRight.reverse());
45166
- currentPath.appendPath(editData.confirmedPathRight);
45158
+ currentPath.appendPath(editData.confirmedPathNext);
45167
45159
  if (handleIndex === 0) {
45168
45160
  currentPath.addPoints(pathPointsLeft);
45169
45161
  }
@@ -45222,17 +45214,19 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
45222
45214
  if (!this.editData || !livewirePath) {
45223
45215
  return;
45224
45216
  }
45225
- const { annotation, sliceToWorld } = this.editData;
45217
+ const { annotation, sliceToWorld, worldToSlice, closed, newAnnotation } = this.editData;
45226
45218
  let { pointArray: imagePoints } = livewirePath;
45227
45219
  if (imagePoints.length > 1) {
45228
45220
  imagePoints = [...imagePoints, imagePoints[0]];
45229
45221
  }
45222
+ const targetWindingDirection = newAnnotation && closed ? _types_ContourAnnotation__WEBPACK_IMPORTED_MODULE_10__/* .ContourWindingDirection */ .W.Clockwise : undefined;
45230
45223
  this.updateContourPolyline(annotation, {
45231
45224
  points: imagePoints,
45232
- closed: annotation.data.contour.closed,
45233
- targetWindingDirection: _types_ContourAnnotation__WEBPACK_IMPORTED_MODULE_10__/* .ContourWindingDirection */ .W.Clockwise,
45225
+ closed,
45226
+ targetWindingDirection,
45234
45227
  }, {
45235
45228
  canvasToWorld: sliceToWorld,
45229
+ worldToCanvas: worldToSlice,
45236
45230
  });
45237
45231
  }
45238
45232
  }
@@ -225,7 +225,7 @@ const machineConfiguration = {
225
225
  src: 'promptHydrateStructuredReport',
226
226
  onDone: [{
227
227
  target: 'tracking',
228
- actions: ['setTrackedStudyAndMultipleSeries', 'jumpToFirstMeasurementInActiveViewport', 'setIsDirtyToClean'],
228
+ actions: ['setTrackedStudyAndMultipleSeries', 'jumpToSameImageInActiveViewport', 'setIsDirtyToClean'],
229
229
  cond: 'shouldHydrateStructuredReport'
230
230
  }, {
231
231
  target: 'idle',
@@ -242,7 +242,7 @@ const machineConfiguration = {
242
242
  src: 'hydrateStructuredReport',
243
243
  onDone: [{
244
244
  target: 'tracking',
245
- actions: ['setTrackedStudyAndMultipleSeries', 'jumpToFirstMeasurementInActiveViewport', 'setIsDirtyToClean']
245
+ actions: ['setTrackedStudyAndMultipleSeries', 'jumpToSameImageInActiveViewport', 'setIsDirtyToClean']
246
246
  }],
247
247
  onError: {
248
248
  target: 'idle'
@@ -714,8 +714,8 @@ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, vie
714
714
  });
715
715
  }
716
716
  /* harmony default export */ const TrackedMeasurementsContext_promptTrackNewStudy = (promptTrackNewStudy);
717
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 90 modules
718
- var default_src = __webpack_require__(48827);
717
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 91 modules
718
+ var default_src = __webpack_require__(36822);
719
719
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js
720
720
  const MIN_SR_SERIES_NUMBER = 4700;
721
721
  function getNextSRSeriesNumber(displaySetService) {
@@ -1005,7 +1005,8 @@ function TrackedMeasurementsContextProvider({
1005
1005
  const {
1006
1006
  measurementService,
1007
1007
  displaySetService,
1008
- customizationService
1008
+ customizationService,
1009
+ cornerstoneViewportService
1009
1010
  } = servicesManager.services;
1010
1011
  const machineOptions = Object.assign({}, defaultOptions);
1011
1012
  machineOptions.actions = Object.assign({}, machineOptions.actions, {
@@ -1046,6 +1047,28 @@ function TrackedMeasurementsContextProvider({
1046
1047
  }
1047
1048
  });
1048
1049
  },
1050
+ jumpToSameImageInActiveViewport: (ctx, evt) => {
1051
+ const {
1052
+ trackedStudy,
1053
+ trackedSeries,
1054
+ activeViewportId
1055
+ } = ctx;
1056
+ const measurements = measurementService.getMeasurements();
1057
+ const trackedMeasurements = measurements.filter(m => trackedStudy === m.referenceStudyUID && trackedSeries.includes(m.referenceSeriesUID));
1058
+ const trackedMeasurement = trackedMeasurements[0];
1059
+ const referencedDisplaySetUID = trackedMeasurement.displaySetInstanceUID;
1060
+ const viewport = cornerstoneViewportService.getCornerstoneViewport(activeViewportId);
1061
+ const imageIndex = viewport.getCurrentImageIdIndex();
1062
+ viewportGridService.setDisplaySetsForViewport({
1063
+ viewportId: activeViewportId,
1064
+ displaySetInstanceUIDs: [referencedDisplaySetUID],
1065
+ viewportOptions: {
1066
+ initialImageOptions: {
1067
+ index: imageIndex
1068
+ }
1069
+ }
1070
+ });
1071
+ },
1049
1072
  showStructuredReportDisplaySetInActiveViewport: (ctx, evt) => {
1050
1073
  if (evt.data.createdDisplaySetInstanceUIDs.length > 0) {
1051
1074
  const StructuredReportDisplaySetInstanceUID = evt.data.createdDisplaySetInstanceUIDs[0];