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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/{3190.bundle.cd955568fe4d80ab2e4b.js → 1037.bundle.7502b1bb0e5eee58a1d8.js} +51 -15
  2. package/dist/{1927.bundle.081901df8d9b33633806.js → 1927.bundle.da6db325e08bacb0bca0.js} +3 -3
  3. package/dist/{6725.bundle.0d2cdc2107924a76f362.js → 2018.bundle.48b73891bb66796a3b2d.js} +47 -14
  4. package/dist/{306.bundle.a2380c4b23436c127faf.js → 306.bundle.c671a09e1eacf6bcfc84.js} +1 -1
  5. package/dist/{3613.bundle.f5fceb4697407a89921b.js → 3613.bundle.3542f5bb1f69651bc239.js} +98 -45
  6. package/dist/{4019.bundle.6505ff57ca48af03da8a.js → 4019.bundle.8172183f816ea5500dd5.js} +46 -8
  7. package/dist/{4092.bundle.00d575990d745230c1b2.js → 4092.bundle.9ab4766b293d4e447551.js} +19 -0
  8. package/dist/{5400.bundle.eb0f5866140b5db31518.js → 5400.bundle.3ebba479fc068cd8c700.js} +8 -2
  9. package/dist/{3353.bundle.a52e42421b9407ad28ce.js → 5858.bundle.99a6b9de04c621694ffd.js} +850 -747
  10. package/dist/{7412.bundle.94802a6a629f62daab88.js → 7412.bundle.dd19b713fc5158ef34c1.js} +157 -139
  11. package/dist/{7948.bundle.ca4da4046481100dccca.js → 7948.bundle.2c6514eb65957b44b127.js} +23 -27
  12. package/dist/{9548.bundle.6f232a0a03e60854b49e.js → 9548.bundle.ee365804b810d67b2766.js} +2 -2
  13. package/dist/{1807.bundle.4fe7031d498b59f1ed68.js → 9927.bundle.174996e11c1432053378.js} +52 -21
  14. package/dist/{app.bundle.a16db06e6e1ae5b7b3c5.js → app.bundle.619935f4e9b60960eec1.js} +936 -689
  15. package/dist/{compute.bundle.f6f1236073e2a486ddfb.js → compute.bundle.ea0325cee6d2a4be77d7.js} +1 -1
  16. package/dist/index.html +1 -1
  17. package/dist/{polySeg.bundle.d0ed88f3bfea700c211b.js → polySeg.bundle.19444130c84583d811bd.js} +3 -3
  18. package/dist/sw.js +1 -1
  19. package/package.json +21 -21
  20. /package/dist/{1459.bundle.d8ca1f502eeb88a6e020.js → 1459.bundle.68ad9f4d048db1ded95e.js} +0 -0
  21. /package/dist/{147.bundle.53fe889b205dd91c245b.js → 147.bundle.9dac0500e2fa57626fdb.js} +0 -0
  22. /package/dist/{1604.bundle.b8b471d4b94ff2cf56ab.js → 1604.bundle.43520d5718d17febb2cf.js} +0 -0
  23. /package/dist/{1919.bundle.45c73b6e5367ff362580.js → 1919.bundle.27d4d453ec440181e449.js} +0 -0
  24. /package/dist/{213.bundle.cf999dc57ee54e1a61d0.js → 213.bundle.0d4bbf28ab97c107cdd5.js} +0 -0
  25. /package/dist/{2243.bundle.12b6ee3196121df88f63.js → 2243.bundle.873b4152dd2f550e76c6.js} +0 -0
  26. /package/dist/{2424.bundle.bfb5c29973df67ab4d1d.js → 2424.bundle.d8e65c4cd46695af1843.js} +0 -0
  27. /package/dist/{2518.bundle.b21d8c66dc8deb8ba922.js → 2518.bundle.ac5afa27c4799530d767.js} +0 -0
  28. /package/dist/{4113.bundle.6849f66f615847ada125.js → 4113.bundle.bebb8ac4abb95780b383.js} +0 -0
  29. /package/dist/{414.bundle.24a6ae428cbbec6fac72.js → 414.bundle.401bcf7a053bec6d5b32.js} +0 -0
  30. /package/dist/{5457.bundle.1b6c9d9754568061510c.js → 5457.bundle.f137a9e71ccf98addfbf.js} +0 -0
  31. /package/dist/{5485.bundle.8e456ebcf976c9c50dc3.js → 5485.bundle.08a4230790c12a80eb29.js} +0 -0
  32. /package/dist/{6027.bundle.5be91623f59d577abbd4.js → 6027.bundle.2a306549492ad8e7c2cd.js} +0 -0
  33. /package/dist/{6201.bundle.c59a4ef10b5d2126f3fe.js → 6201.bundle.d06a18bf366ae85c52b2.js} +0 -0
  34. /package/dist/{6991.bundle.e3e4ba73befe78136d84.js → 6991.bundle.1a945d91824788fde106.js} +0 -0
  35. /package/dist/{7431.bundle.ad1982d7c54a5931d409.js → 7431.bundle.be686be30c718b6f0165.js} +0 -0
  36. /package/dist/{7639.bundle.4fc45f7230e0fa936753.js → 7639.bundle.75968faa6648c318a4db.js} +0 -0
  37. /package/dist/{810.bundle.d472e7b39cb1da8d5c02.js → 810.bundle.d5ba529e18a59343a305.js} +0 -0
  38. /package/dist/{85.bundle.ca9e53b4f5669c6af047.js → 85.bundle.9e0a56a0cc52c4656d85.js} +0 -0
  39. /package/dist/{8558.bundle.ed93f8a5a7b3ea9acfce.js → 8558.bundle.226b7ea0dbfc9168e743.js} +0 -0
  40. /package/dist/{934.bundle.9445c5082a67dba7e121.js → 934.bundle.939f1fec0da4d0d82572.js} +0 -0
  41. /package/dist/{9862.bundle.e2c4c129f7907500b840.js → 9862.bundle.cb4de0892ea411293655.js} +0 -0
@@ -4449,8 +4449,8 @@ const isInvalidNumber = (value) => {
4449
4449
  return !(typeof value === 'number' && Number.isFinite(value));
4450
4450
  };
4451
4451
 
4452
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js + 2 modules
4453
- var renderPasses = __webpack_require__(50951);
4452
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js + 3 modules
4453
+ var RenderingEngine_renderPasses = __webpack_require__(88540);
4454
4454
  ;// ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/BaseVolumeViewport.js
4455
4455
 
4456
4456
 
@@ -4491,6 +4491,7 @@ class BaseVolumeViewport extends Viewport/* default */.A {
4491
4491
  super(props);
4492
4492
  this.useCPURendering = false;
4493
4493
  this.sharpening = 0;
4494
+ this.smoothing = 0;
4494
4495
  this.perVolumeIdDefaultProperties = new Map();
4495
4496
  this.viewportProperties = {};
4496
4497
  this.volumeIds = new Set();
@@ -4530,15 +4531,26 @@ class BaseVolumeViewport extends Viewport/* default */.A {
4530
4531
  this.sharpening = sharpening;
4531
4532
  this.render();
4532
4533
  };
4534
+ this.setSmoothing = (smoothing) => {
4535
+ this.smoothing = smoothing;
4536
+ this.render();
4537
+ };
4533
4538
  this.getRenderPasses = () => {
4534
4539
  if (!this.shouldUseCustomRenderPass()) {
4535
4540
  return null;
4536
4541
  }
4542
+ const renderPasses = [];
4537
4543
  try {
4538
- return [(0,renderPasses/* createSharpeningRenderPass */.b)(this.sharpening)];
4544
+ if (this.smoothing > 0) {
4545
+ renderPasses.push((0,RenderingEngine_renderPasses/* createSmoothingRenderPass */.y)(this.smoothing));
4546
+ }
4547
+ if (this.sharpening > 0) {
4548
+ renderPasses.push((0,RenderingEngine_renderPasses/* createSharpeningRenderPass */.b)(this.sharpening));
4549
+ }
4550
+ return renderPasses.length ? renderPasses : null;
4539
4551
  }
4540
4552
  catch (e) {
4541
- console.warn('Failed to create sharpening render passes:', e);
4553
+ console.warn('Failed to create custom render passes:', e);
4542
4554
  return null;
4543
4555
  }
4544
4556
  };
@@ -4588,6 +4600,7 @@ class BaseVolumeViewport extends Viewport/* default */.A {
4588
4600
  slabThickness: slabThickness,
4589
4601
  preset,
4590
4602
  sharpening: this.sharpening,
4603
+ smoothing: this.smoothing,
4591
4604
  };
4592
4605
  };
4593
4606
  this.getColormap = (volumeId) => {
@@ -5175,7 +5188,7 @@ class BaseVolumeViewport extends Viewport/* default */.A {
5175
5188
  const newPosition = esm/* vec3.add */.eR.add(esm/* vec3.create */.eR.create(), position, focalShift);
5176
5189
  this.setCamera({
5177
5190
  focalPoint: newImagePositionPatient,
5178
- position: newPosition
5191
+ position: newPosition,
5179
5192
  });
5180
5193
  this.render();
5181
5194
  return;
@@ -5215,7 +5228,7 @@ class BaseVolumeViewport extends Viewport/* default */.A {
5215
5228
  };
5216
5229
  (0,triggerEvent/* default */.A)(this.element, enums.Events.COLORMAP_MODIFIED, eventDetail);
5217
5230
  }
5218
- setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, sampleDistanceMultiplier, sharpening, } = {}, volumeId, suppressEvents = false) {
5231
+ setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, sampleDistanceMultiplier, sharpening, smoothing, } = {}, volumeId, suppressEvents = false) {
5219
5232
  if (this.globalDefaultProperties == null) {
5220
5233
  this.setDefaultProperties({
5221
5234
  voiRange,
@@ -5259,9 +5272,12 @@ class BaseVolumeViewport extends Viewport/* default */.A {
5259
5272
  if (typeof sharpening !== 'undefined') {
5260
5273
  this.setSharpening(sharpening);
5261
5274
  }
5275
+ if (typeof smoothing !== 'undefined') {
5276
+ this.setSmoothing(smoothing);
5277
+ }
5262
5278
  }
5263
5279
  shouldUseCustomRenderPass() {
5264
- return this.sharpening > 0 && !this.useCPURendering;
5280
+ return !this.useCPURendering;
5265
5281
  }
5266
5282
  resetToDefaultProperties(volumeId) {
5267
5283
  const properties = this.globalDefaultProperties;
@@ -6773,8 +6789,8 @@ function adjustInitialViewUp(initialViewUp, flipHorizontal, flipVertical, viewPl
6773
6789
 
6774
6790
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/isContextPoolRenderingEngine.js
6775
6791
  var isContextPoolRenderingEngine = __webpack_require__(27685);
6776
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js + 2 modules
6777
- var renderPasses = __webpack_require__(50951);
6792
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js + 3 modules
6793
+ var RenderingEngine_renderPasses = __webpack_require__(88540);
6778
6794
  ;// ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/StackViewport.js
6779
6795
 
6780
6796
 
@@ -6836,6 +6852,7 @@ class StackViewport extends Viewport/* default */.A {
6836
6852
  this.perImageIdDefaultProperties = new Map();
6837
6853
  this.voiUpdatedWithSetProperties = false;
6838
6854
  this.sharpening = 0;
6855
+ this.smoothing = 0;
6839
6856
  this.invert = false;
6840
6857
  this.initialInvert = false;
6841
6858
  this.initialTransferFunctionNodes = null;
@@ -6848,15 +6865,26 @@ class StackViewport extends Viewport/* default */.A {
6848
6865
  this.sharpening = sharpening;
6849
6866
  this.render();
6850
6867
  };
6868
+ this.setSmoothing = (smoothing) => {
6869
+ this.smoothing = smoothing;
6870
+ this.render();
6871
+ };
6851
6872
  this.getRenderPasses = () => {
6852
6873
  if (!this.shouldUseCustomRenderPass()) {
6853
6874
  return null;
6854
6875
  }
6876
+ const renderPasses = [];
6855
6877
  try {
6856
- return [(0,renderPasses/* createSharpeningRenderPass */.b)(this.sharpening)];
6878
+ if (this.smoothing > 0) {
6879
+ renderPasses.push((0,RenderingEngine_renderPasses/* createSmoothingRenderPass */.y)(this.smoothing));
6880
+ }
6881
+ if (this.sharpening > 0) {
6882
+ renderPasses.push((0,RenderingEngine_renderPasses/* createSharpeningRenderPass */.b)(this.sharpening));
6883
+ }
6884
+ return renderPasses.length ? renderPasses : null;
6857
6885
  }
6858
6886
  catch (e) {
6859
- console.warn('Failed to create sharpening render passes:', e);
6887
+ console.warn('Failed to create custom render passes:', e);
6860
6888
  return null;
6861
6889
  }
6862
6890
  };
@@ -6911,6 +6939,7 @@ class StackViewport extends Viewport/* default */.A {
6911
6939
  invert,
6912
6940
  isComputedVOI: !voiUpdatedWithSetProperties,
6913
6941
  sharpening: this.sharpening,
6942
+ smoothing: this.smoothing,
6914
6943
  };
6915
6944
  };
6916
6945
  this.resetCameraForResize = () => {
@@ -7313,7 +7342,7 @@ class StackViewport extends Viewport/* default */.A {
7313
7342
  camera.setFreezeFocalPoint(true);
7314
7343
  }
7315
7344
  shouldUseCustomRenderPass() {
7316
- return this.sharpening > 0 && !this.useCPURendering;
7345
+ return !this.useCPURendering;
7317
7346
  }
7318
7347
  initializeElementDisabledHandler() {
7319
7348
  eventTarget/* default */.A.addEventListener(enums.Events.ELEMENT_DISABLED, function elementDisabledHandler() {
@@ -7436,7 +7465,7 @@ class StackViewport extends Viewport/* default */.A {
7436
7465
  this.resetToDefaultProperties();
7437
7466
  }
7438
7467
  }
7439
- setProperties({ colormap, voiRange, VOILUTFunction, invert, interpolationType, sharpening, } = {}, suppressEvents = false) {
7468
+ setProperties({ colormap, voiRange, VOILUTFunction, invert, interpolationType, sharpening, smoothing, } = {}, suppressEvents = false) {
7440
7469
  this.viewportStatus = this.csImage
7441
7470
  ? enums.ViewportStatus.PRE_RENDER
7442
7471
  : enums.ViewportStatus.LOADING;
@@ -7447,6 +7476,7 @@ class StackViewport extends Viewport/* default */.A {
7447
7476
  invert: this.globalDefaultProperties.invert ?? invert,
7448
7477
  interpolationType: this.globalDefaultProperties.interpolationType ?? interpolationType,
7449
7478
  sharpening: this.globalDefaultProperties.sharpening ?? sharpening,
7479
+ smoothing: this.globalDefaultProperties.smoothing ?? smoothing,
7450
7480
  };
7451
7481
  if (typeof colormap !== 'undefined') {
7452
7482
  this.setColormap(colormap);
@@ -7467,6 +7497,9 @@ class StackViewport extends Viewport/* default */.A {
7467
7497
  if (typeof sharpening !== 'undefined') {
7468
7498
  this.setSharpening(sharpening);
7469
7499
  }
7500
+ if (typeof smoothing !== 'undefined') {
7501
+ this.setSmoothing(smoothing);
7502
+ }
7470
7503
  }
7471
7504
  resetProperties() {
7472
7505
  this.cpuRenderingInvalidated = true;
@@ -16453,14 +16486,15 @@ var helpers = __webpack_require__(40661);
16453
16486
 
16454
16487
  /***/ }),
16455
16488
 
16456
- /***/ 50951:
16489
+ /***/ 88540:
16457
16490
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
16458
16491
 
16459
16492
  "use strict";
16460
16493
 
16461
16494
  // EXPORTS
16462
16495
  __webpack_require__.d(__webpack_exports__, {
16463
- b: () => (/* reexport */ createSharpeningRenderPass)
16496
+ b: () => (/* reexport */ createSharpeningRenderPass),
16497
+ y: () => (/* reexport */ createSmoothingRenderPass)
16464
16498
  });
16465
16499
 
16466
16500
  // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/macros2.js
@@ -16725,11 +16759,53 @@ function createSharpeningRenderPass(intensity) {
16725
16759
  }
16726
16760
 
16727
16761
 
16762
+ ;// ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/smoothingRenderPass.js
16763
+
16764
+
16765
+ function createSmoothingRenderPass(intensity) {
16766
+ let renderPass = ForwardPass/* default.newInstance */.Ay.newInstance();
16767
+ if (intensity > 0) {
16768
+ const convolutionPass = vtkConvolution2DPass$1.newInstance();
16769
+ convolutionPass.setDelegates([renderPass]);
16770
+ const smoothStrength = Math.min(intensity, 1000);
16771
+ const kernelSize = 15;
16772
+ const sigma = 5.0;
16773
+ const gaussianKernel = createGaussianKernel(kernelSize, sigma);
16774
+ const totalElements = kernelSize * kernelSize;
16775
+ const centerIndex = Math.floor(totalElements / 2);
16776
+ const identityKernel = Array(totalElements).fill(0);
16777
+ identityKernel[centerIndex] = 1;
16778
+ const alpha = Math.min(smoothStrength / 10, 1.0);
16779
+ const kernel = gaussianKernel.map((g, i) => (1 - alpha) * identityKernel[i] + alpha * g);
16780
+ convolutionPass.setKernelDimension(15);
16781
+ convolutionPass.setKernel(kernel);
16782
+ renderPass = convolutionPass;
16783
+ }
16784
+ return renderPass;
16785
+ }
16786
+ function createGaussianKernel(size, sigma) {
16787
+ const kernel = [];
16788
+ const mean = (size - 1) / 2;
16789
+ let sum = 0;
16790
+ for (let y = 0; y < size; y++) {
16791
+ for (let x = 0; x < size; x++) {
16792
+ const dx = x - mean;
16793
+ const dy = y - mean;
16794
+ const value = Math.exp(-(dx * dx + dy * dy) / (2 * Math.pow(sigma, 2)));
16795
+ kernel.push(value);
16796
+ sum += value;
16797
+ }
16798
+ }
16799
+ return kernel.map((v) => v / sum);
16800
+ }
16801
+
16802
+
16728
16803
  ;// ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/renderPasses/index.js
16729
16804
 
16730
16805
 
16731
16806
 
16732
16807
 
16808
+
16733
16809
  /***/ }),
16734
16810
 
16735
16811
  /***/ 5862:
@@ -44222,12 +44298,12 @@ function toLowHighRange(windowWidth, windowCenter, voiLUTFunction = _enums_VOILU
44222
44298
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
44223
44299
  /* harmony export */ r: () => (/* binding */ version)
44224
44300
  /* harmony export */ });
44225
- const version = '4.5.20';
44301
+ const version = '4.9.0';
44226
44302
 
44227
44303
 
44228
44304
  /***/ }),
44229
44305
 
44230
- /***/ 83353:
44306
+ /***/ 15858:
44231
44307
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
44232
44308
 
44233
44309
  "use strict";
@@ -44295,653 +44371,24 @@ function replicate(src, dest) {
44295
44371
 
44296
44372
  // EXTERNAL MODULE: ../../../node_modules/comlink/dist/esm/comlink.mjs
44297
44373
  var comlink = __webpack_require__(99178);
44298
- ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeLittleEndian.js
44299
- async function decodeLittleEndian(imageFrame, pixelData) {
44300
- let arrayBuffer = pixelData.buffer;
44301
- let offset = pixelData.byteOffset;
44302
- const length = pixelData.length;
44303
- if (imageFrame.bitsAllocated === 16) {
44304
- if (offset % 2) {
44305
- arrayBuffer = arrayBuffer.slice(offset);
44306
- offset = 0;
44307
- }
44308
- if (imageFrame.pixelRepresentation === 0) {
44309
- imageFrame.pixelData = new Uint16Array(arrayBuffer, offset, length / 2);
44310
- }
44311
- else {
44312
- imageFrame.pixelData = new Int16Array(arrayBuffer, offset, length / 2);
44313
- }
44314
- }
44315
- else if (imageFrame.bitsAllocated === 8 || imageFrame.bitsAllocated === 1) {
44316
- imageFrame.pixelData = pixelData;
44317
- }
44318
- else if (imageFrame.bitsAllocated === 32) {
44319
- if (offset % 2) {
44320
- arrayBuffer = arrayBuffer.slice(offset);
44321
- offset = 0;
44322
- }
44323
- if (imageFrame.floatPixelData || imageFrame.doubleFloatPixelData) {
44324
- throw new Error('Float pixel data is not supported for parsing into ImageFrame');
44325
- }
44326
- if (imageFrame.pixelRepresentation === 0) {
44327
- imageFrame.pixelData = new Uint32Array(arrayBuffer, offset, length / 4);
44328
- }
44329
- else if (imageFrame.pixelRepresentation === 1) {
44330
- imageFrame.pixelData = new Int32Array(arrayBuffer, offset, length / 4);
44331
- }
44332
- else {
44333
- imageFrame.pixelData = new Float32Array(arrayBuffer, offset, length / 4);
44334
- }
44335
- }
44336
- return imageFrame;
44337
- }
44338
- /* harmony default export */ const decoders_decodeLittleEndian = (decodeLittleEndian);
44339
-
44340
- ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeBigEndian.js
44341
- function swap16(val) {
44342
- return ((val & 0xff) << 8) | ((val >> 8) & 0xff);
44343
- }
44344
- async function decodeBigEndian(imageFrame, pixelData) {
44345
- if (imageFrame.bitsAllocated === 16) {
44346
- let arrayBuffer = pixelData.buffer;
44347
- let offset = pixelData.byteOffset;
44348
- const length = pixelData.length;
44349
- if (offset % 2) {
44350
- arrayBuffer = arrayBuffer.slice(offset);
44351
- offset = 0;
44352
- }
44353
- if (imageFrame.pixelRepresentation === 0) {
44354
- imageFrame.pixelData = new Uint16Array(arrayBuffer, offset, length / 2);
44355
- }
44356
- else {
44357
- imageFrame.pixelData = new Int16Array(arrayBuffer, offset, length / 2);
44358
- }
44359
- for (let i = 0; i < imageFrame.pixelData.length; i++) {
44360
- imageFrame.pixelData[i] = swap16(imageFrame.pixelData[i]);
44361
- }
44362
- }
44363
- else if (imageFrame.bitsAllocated === 8) {
44364
- imageFrame.pixelData = pixelData;
44365
- }
44366
- return imageFrame;
44367
- }
44368
- /* harmony default export */ const decoders_decodeBigEndian = (decodeBigEndian);
44369
-
44370
- ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeRLE.js
44371
- async function decodeRLE(imageFrame, pixelData) {
44372
- if (imageFrame.bitsAllocated === 8) {
44373
- if (imageFrame.planarConfiguration) {
44374
- return decode8Planar(imageFrame, pixelData);
44375
- }
44376
- return decode8(imageFrame, pixelData);
44377
- }
44378
- else if (imageFrame.bitsAllocated === 16) {
44379
- return decode16(imageFrame, pixelData);
44380
- }
44381
- throw new Error('unsupported pixel format for RLE');
44382
- }
44383
- function decode8(imageFrame, pixelData) {
44384
- const frameData = pixelData;
44385
- const frameSize = imageFrame.rows * imageFrame.columns;
44386
- const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel);
44387
- const header = new DataView(frameData.buffer, frameData.byteOffset);
44388
- const data = new Int8Array(frameData.buffer, frameData.byteOffset);
44389
- const out = new Int8Array(outFrame);
44390
- let outIndex = 0;
44391
- const numSegments = header.getInt32(0, true);
44392
- for (let s = 0; s < numSegments; ++s) {
44393
- outIndex = s;
44394
- let inIndex = header.getInt32((s + 1) * 4, true);
44395
- let maxIndex = header.getInt32((s + 2) * 4, true);
44396
- if (maxIndex === 0) {
44397
- maxIndex = frameData.length;
44398
- }
44399
- const endOfSegment = frameSize * numSegments;
44400
- while (inIndex < maxIndex) {
44401
- const n = data[inIndex++];
44402
- if (n >= 0 && n <= 127) {
44403
- for (let i = 0; i < n + 1 && outIndex < endOfSegment; ++i) {
44404
- out[outIndex] = data[inIndex++];
44405
- outIndex += imageFrame.samplesPerPixel;
44406
- }
44407
- }
44408
- else if (n <= -1 && n >= -127) {
44409
- const value = data[inIndex++];
44410
- for (let j = 0; j < -n + 1 && outIndex < endOfSegment; ++j) {
44411
- out[outIndex] = value;
44412
- outIndex += imageFrame.samplesPerPixel;
44413
- }
44414
- }
44415
- }
44416
- }
44417
- imageFrame.pixelData = new Uint8Array(outFrame);
44418
- return imageFrame;
44419
- }
44420
- function decode8Planar(imageFrame, pixelData) {
44421
- const frameData = pixelData;
44422
- const frameSize = imageFrame.rows * imageFrame.columns;
44423
- const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel);
44424
- const header = new DataView(frameData.buffer, frameData.byteOffset);
44425
- const data = new Int8Array(frameData.buffer, frameData.byteOffset);
44426
- const out = new Int8Array(outFrame);
44427
- let outIndex = 0;
44428
- const numSegments = header.getInt32(0, true);
44429
- for (let s = 0; s < numSegments; ++s) {
44430
- outIndex = s * frameSize;
44431
- let inIndex = header.getInt32((s + 1) * 4, true);
44432
- let maxIndex = header.getInt32((s + 2) * 4, true);
44433
- if (maxIndex === 0) {
44434
- maxIndex = frameData.length;
44435
- }
44436
- const endOfSegment = frameSize * numSegments;
44437
- while (inIndex < maxIndex) {
44438
- const n = data[inIndex++];
44439
- if (n >= 0 && n <= 127) {
44440
- for (let i = 0; i < n + 1 && outIndex < endOfSegment; ++i) {
44441
- out[outIndex] = data[inIndex++];
44442
- outIndex++;
44443
- }
44444
- }
44445
- else if (n <= -1 && n >= -127) {
44446
- const value = data[inIndex++];
44447
- for (let j = 0; j < -n + 1 && outIndex < endOfSegment; ++j) {
44448
- out[outIndex] = value;
44449
- outIndex++;
44450
- }
44451
- }
44452
- }
44453
- }
44454
- imageFrame.pixelData = new Uint8Array(outFrame);
44455
- return imageFrame;
44456
- }
44457
- function decode16(imageFrame, pixelData) {
44458
- const frameData = pixelData;
44459
- const frameSize = imageFrame.rows * imageFrame.columns;
44460
- const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel * 2);
44461
- const header = new DataView(frameData.buffer, frameData.byteOffset);
44462
- const data = new Int8Array(frameData.buffer, frameData.byteOffset);
44463
- const out = new Int8Array(outFrame);
44464
- const numSegments = header.getInt32(0, true);
44465
- for (let s = 0; s < numSegments; ++s) {
44466
- let outIndex = 0;
44467
- const highByte = s === 0 ? 1 : 0;
44468
- let inIndex = header.getInt32((s + 1) * 4, true);
44469
- let maxIndex = header.getInt32((s + 2) * 4, true);
44470
- if (maxIndex === 0) {
44471
- maxIndex = frameData.length;
44472
- }
44473
- while (inIndex < maxIndex) {
44474
- const n = data[inIndex++];
44475
- if (n >= 0 && n <= 127) {
44476
- for (let i = 0; i < n + 1 && outIndex < frameSize; ++i) {
44477
- out[outIndex * 2 + highByte] = data[inIndex++];
44478
- outIndex++;
44479
- }
44480
- }
44481
- else if (n <= -1 && n >= -127) {
44482
- const value = data[inIndex++];
44483
- for (let j = 0; j < -n + 1 && outIndex < frameSize; ++j) {
44484
- out[outIndex * 2 + highByte] = value;
44485
- outIndex++;
44486
- }
44487
- }
44488
- }
44489
- }
44490
- if (imageFrame.pixelRepresentation === 0) {
44491
- imageFrame.pixelData = new Uint16Array(outFrame);
44492
- }
44493
- else {
44494
- imageFrame.pixelData = new Int16Array(outFrame);
44495
- }
44496
- return imageFrame;
44497
- }
44498
- /* harmony default export */ const decoders_decodeRLE = (decodeRLE);
44499
-
44500
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/codec-libjpeg-turbo-8bit/dist/libjpegturbowasm_decode.js
44501
- var libjpegturbowasm_decode = __webpack_require__(36317);
44502
- var libjpegturbowasm_decode_default = /*#__PURE__*/__webpack_require__.n(libjpegturbowasm_decode);
44503
- ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGBaseline8Bit.js
44504
-
44505
- const libjpegTurboWasm = new URL(/* asset import */ __webpack_require__(99441), __webpack_require__.b);
44506
- const local = {
44507
- codec: undefined,
44508
- decoder: undefined,
44509
- };
44510
- function initLibjpegTurbo() {
44511
- if (local.codec) {
44512
- return Promise.resolve();
44513
- }
44514
- const libjpegTurboModule = libjpegturbowasm_decode_default()({
44515
- locateFile: (f) => {
44516
- if (f.endsWith('.wasm')) {
44517
- return libjpegTurboWasm.toString();
44518
- }
44519
- return f;
44520
- },
44521
- });
44522
- return new Promise((resolve, reject) => {
44523
- libjpegTurboModule.then((instance) => {
44524
- local.codec = instance;
44525
- local.decoder = new instance.JPEGDecoder();
44526
- resolve();
44527
- }, reject);
44528
- });
44529
- }
44530
- async function decodeAsync(compressedImageFrame, imageInfo) {
44531
- await initLibjpegTurbo();
44532
- const decoder = local.decoder;
44533
- const encodedBufferInWASM = decoder.getEncodedBuffer(compressedImageFrame.length);
44534
- encodedBufferInWASM.set(compressedImageFrame);
44535
- decoder.decode();
44536
- const frameInfo = decoder.getFrameInfo();
44537
- const decodedPixelsInWASM = decoder.getDecodedBuffer();
44538
- const encodedImageInfo = {
44539
- columns: frameInfo.width,
44540
- rows: frameInfo.height,
44541
- bitsPerPixel: frameInfo.bitsPerSample,
44542
- signed: imageInfo.signed,
44543
- bytesPerPixel: imageInfo.bytesPerPixel,
44544
- componentsPerPixel: frameInfo.componentCount,
44545
- };
44546
- const pixelData = getPixelData(frameInfo, decodedPixelsInWASM);
44547
- const encodeOptions = {
44548
- frameInfo,
44549
- };
44550
- return {
44551
- ...imageInfo,
44552
- pixelData,
44553
- imageInfo: encodedImageInfo,
44554
- encodeOptions,
44555
- ...encodeOptions,
44556
- ...encodedImageInfo,
44557
- };
44558
- }
44559
- function getPixelData(frameInfo, decodedBuffer) {
44560
- if (frameInfo.isSigned) {
44561
- return new Int8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
44562
- }
44563
- return new Uint8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
44564
- }
44565
- /* harmony default export */ const decodeJPEGBaseline8Bit = (decodeAsync);
44566
-
44567
- ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-js.js
44568
- const decodeJPEGBaseline12Bit_js_local = {
44569
- JpegImage: undefined,
44570
- decodeConfig: {},
44571
- };
44572
- function initialize(decodeConfig) {
44573
- decodeJPEGBaseline12Bit_js_local.decodeConfig = decodeConfig;
44574
- if (decodeJPEGBaseline12Bit_js_local.JpegImage) {
44575
- return Promise.resolve();
44576
- }
44577
- return new Promise((resolve, reject) => {
44578
- __webpack_require__.e(/* import() */ 8094).then(__webpack_require__.bind(__webpack_require__, 8094))
44579
- .then((module) => {
44580
- decodeJPEGBaseline12Bit_js_local.JpegImage = module.default;
44581
- resolve();
44582
- })
44583
- .catch(reject);
44584
- });
44585
- }
44586
- async function decodeJPEGBaseline12BitAsync(imageFrame, pixelData) {
44587
- await initialize();
44588
- if (typeof decodeJPEGBaseline12Bit_js_local.JpegImage === 'undefined') {
44589
- throw new Error('No JPEG Baseline decoder loaded');
44590
- }
44591
- const jpeg = new decodeJPEGBaseline12Bit_js_local.JpegImage();
44592
- jpeg.parse(pixelData);
44593
- jpeg.colorTransform = false;
44594
- if (imageFrame.bitsAllocated === 8) {
44595
- imageFrame.pixelData = jpeg.getData(imageFrame.columns, imageFrame.rows);
44596
- return imageFrame;
44597
- }
44598
- else if (imageFrame.bitsAllocated === 16) {
44599
- imageFrame.pixelData = jpeg.getData16(imageFrame.columns, imageFrame.rows);
44600
- return imageFrame;
44601
- }
44602
- }
44603
- /* harmony default export */ const decodeJPEGBaseline12Bit_js = (decodeJPEGBaseline12BitAsync);
44604
-
44605
- ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGLossless.js
44606
- const decodeJPEGLossless_local = {
44607
- DecoderClass: undefined,
44608
- decodeConfig: {},
44609
- };
44610
- function decodeJPEGLossless_initialize(decodeConfig) {
44611
- decodeJPEGLossless_local.decodeConfig = decodeConfig;
44612
- if (decodeJPEGLossless_local.DecoderClass) {
44613
- return Promise.resolve();
44614
- }
44615
- return new Promise((resolve, reject) => {
44616
- __webpack_require__.e(/* import() */ 732).then(__webpack_require__.bind(__webpack_require__, 10732)).then(({ Decoder }) => {
44617
- decodeJPEGLossless_local.DecoderClass = Decoder;
44618
- resolve();
44619
- }, reject);
44620
- });
44621
- }
44622
- async function decodeJPEGLossless(imageFrame, pixelData) {
44623
- await decodeJPEGLossless_initialize();
44624
- if (typeof decodeJPEGLossless_local.DecoderClass === 'undefined') {
44625
- throw new Error('No JPEG Lossless decoder loaded');
44626
- }
44627
- const decoder = new decodeJPEGLossless_local.DecoderClass();
44628
- const byteOutput = imageFrame.bitsAllocated <= 8 ? 1 : 2;
44629
- const buffer = pixelData.buffer;
44630
- const decompressedData = decoder.decode(buffer, pixelData.byteOffset, pixelData.length, byteOutput);
44631
- if (imageFrame.pixelRepresentation === 0) {
44632
- if (imageFrame.bitsAllocated === 16) {
44633
- imageFrame.pixelData = new Uint16Array(decompressedData.buffer);
44634
- return imageFrame;
44635
- }
44636
- imageFrame.pixelData = new Uint8Array(decompressedData.buffer);
44637
- return imageFrame;
44638
- }
44639
- imageFrame.pixelData = new Int16Array(decompressedData.buffer);
44640
- return imageFrame;
44641
- }
44642
- /* harmony default export */ const decoders_decodeJPEGLossless = (decodeJPEGLossless);
44643
-
44644
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/codec-charls/dist/charlswasm_decode.js
44645
- var charlswasm_decode = __webpack_require__(93720);
44646
- var charlswasm_decode_default = /*#__PURE__*/__webpack_require__.n(charlswasm_decode);
44647
- ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGLS.js
44648
-
44649
- const charlsWasm = new URL(/* asset import */ __webpack_require__(46920), __webpack_require__.b);
44650
- const decodeJPEGLS_local = {
44651
- codec: undefined,
44652
- decoder: undefined,
44653
- decodeConfig: {},
44654
- };
44655
- function getExceptionMessage(exception) {
44656
- return typeof exception === 'number'
44657
- ? decodeJPEGLS_local.codec.getExceptionMessage(exception)
44658
- : exception;
44659
- }
44660
- function decodeJPEGLS_initialize(decodeConfig) {
44661
- decodeJPEGLS_local.decodeConfig = decodeConfig;
44662
- if (decodeJPEGLS_local.codec) {
44663
- return Promise.resolve();
44664
- }
44665
- const charlsModule = charlswasm_decode_default()({
44666
- locateFile: (f) => {
44667
- if (f.endsWith('.wasm')) {
44668
- return charlsWasm.toString();
44669
- }
44670
- return f;
44671
- },
44672
- });
44673
- return new Promise((resolve, reject) => {
44674
- charlsModule.then((instance) => {
44675
- decodeJPEGLS_local.codec = instance;
44676
- decodeJPEGLS_local.decoder = new instance.JpegLSDecoder();
44677
- resolve();
44678
- }, reject);
44679
- });
44680
- }
44681
- async function decodeJPEGLS_decodeAsync(compressedImageFrame, imageInfo) {
44682
- try {
44683
- await decodeJPEGLS_initialize();
44684
- const decoder = decodeJPEGLS_local.decoder;
44685
- const encodedBufferInWASM = decoder.getEncodedBuffer(compressedImageFrame.length);
44686
- encodedBufferInWASM.set(compressedImageFrame);
44687
- decoder.decode();
44688
- const frameInfo = decoder.getFrameInfo();
44689
- const interleaveMode = decoder.getInterleaveMode();
44690
- const nearLossless = decoder.getNearLossless();
44691
- const decodedPixelsInWASM = decoder.getDecodedBuffer();
44692
- const encodedImageInfo = {
44693
- columns: frameInfo.width,
44694
- rows: frameInfo.height,
44695
- bitsPerPixel: frameInfo.bitsPerSample,
44696
- signed: imageInfo.signed,
44697
- bytesPerPixel: imageInfo.bytesPerPixel,
44698
- componentsPerPixel: frameInfo.componentCount,
44699
- };
44700
- const pixelData = decodeJPEGLS_getPixelData(frameInfo, decodedPixelsInWASM, imageInfo.signed);
44701
- const encodeOptions = {
44702
- nearLossless,
44703
- interleaveMode,
44704
- frameInfo,
44705
- };
44706
- return {
44707
- ...imageInfo,
44708
- pixelData,
44709
- imageInfo: encodedImageInfo,
44710
- encodeOptions,
44711
- ...encodeOptions,
44712
- ...encodedImageInfo,
44713
- };
44714
- }
44715
- catch (error) {
44716
- throw getExceptionMessage(error);
44717
- }
44718
- }
44719
- function decodeJPEGLS_getPixelData(frameInfo, decodedBuffer, signed) {
44720
- if (frameInfo.bitsPerSample > 8) {
44721
- if (signed) {
44722
- return new Int16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
44723
- }
44724
- return new Uint16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
44725
- }
44726
- if (signed) {
44727
- return new Int8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
44728
- }
44729
- return new Uint8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
44730
- }
44731
- /* harmony default export */ const decodeJPEGLS = (decodeJPEGLS_decodeAsync);
44732
-
44733
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/codec-openjpeg/dist/openjpegwasm_decode.js
44734
- var openjpegwasm_decode = __webpack_require__(53488);
44735
- var openjpegwasm_decode_default = /*#__PURE__*/__webpack_require__.n(openjpegwasm_decode);
44736
- ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEG2000.js
44737
-
44738
- const openjpegWasm = new URL(/* asset import */ __webpack_require__(87840), __webpack_require__.b);
44739
- const decodeJPEG2000_local = {
44740
- codec: undefined,
44741
- decoder: undefined,
44742
- decodeConfig: {},
44743
- };
44744
- function decodeJPEG2000_initialize(decodeConfig) {
44745
- decodeJPEG2000_local.decodeConfig = decodeConfig;
44746
- if (decodeJPEG2000_local.codec) {
44747
- return Promise.resolve();
44748
- }
44749
- const openJpegModule = openjpegwasm_decode_default()({
44750
- locateFile: (f) => {
44751
- if (f.endsWith('.wasm')) {
44752
- return openjpegWasm.toString();
44753
- }
44754
- return f;
44755
- },
44756
- });
44757
- return new Promise((resolve, reject) => {
44758
- openJpegModule.then((instance) => {
44759
- decodeJPEG2000_local.codec = instance;
44760
- decodeJPEG2000_local.decoder = new instance.J2KDecoder();
44761
- resolve();
44762
- }, reject);
44763
- });
44764
- }
44765
- async function decodeJPEG2000_decodeAsync(compressedImageFrame, imageInfo) {
44766
- await decodeJPEG2000_initialize();
44767
- const decoder = decodeJPEG2000_local.decoder;
44768
- const encodedBufferInWASM = decoder.getEncodedBuffer(compressedImageFrame.length);
44769
- encodedBufferInWASM.set(compressedImageFrame);
44770
- decoder.decode();
44771
- const frameInfo = decoder.getFrameInfo();
44772
- const decodedBufferInWASM = decoder.getDecodedBuffer();
44773
- const imageFrame = new Uint8Array(decodedBufferInWASM.length);
44774
- imageFrame.set(decodedBufferInWASM);
44775
- const imageOffset = `x: ${decoder.getImageOffset().x}, y: ${decoder.getImageOffset().y}`;
44776
- const numDecompositions = decoder.getNumDecompositions();
44777
- const numLayers = decoder.getNumLayers();
44778
- const progessionOrder = ['unknown', 'LRCP', 'RLCP', 'RPCL', 'PCRL', 'CPRL'][decoder.getProgressionOrder() + 1];
44779
- const reversible = decoder.getIsReversible();
44780
- const blockDimensions = `${decoder.getBlockDimensions().width} x ${decoder.getBlockDimensions().height}`;
44781
- const tileSize = `${decoder.getTileSize().width} x ${decoder.getTileSize().height}`;
44782
- const tileOffset = `${decoder.getTileOffset().x}, ${decoder.getTileOffset().y}`;
44783
- const colorTransform = decoder.getColorSpace();
44784
- const decodedSize = `${decodedBufferInWASM.length.toLocaleString()} bytes`;
44785
- const compressionRatio = `${(decodedBufferInWASM.length / encodedBufferInWASM.length).toFixed(2)}:1`;
44786
- const encodedImageInfo = {
44787
- columns: frameInfo.width,
44788
- rows: frameInfo.height,
44789
- bitsPerPixel: frameInfo.bitsPerSample,
44790
- signed: frameInfo.isSigned,
44791
- bytesPerPixel: imageInfo.bytesPerPixel,
44792
- componentsPerPixel: frameInfo.componentCount,
44793
- };
44794
- const pixelData = decodeJPEG2000_getPixelData(frameInfo, decodedBufferInWASM);
44795
- const encodeOptions = {
44796
- imageOffset,
44797
- numDecompositions,
44798
- numLayers,
44799
- progessionOrder,
44800
- reversible,
44801
- blockDimensions,
44802
- tileSize,
44803
- tileOffset,
44804
- colorTransform,
44805
- decodedSize,
44806
- compressionRatio,
44807
- };
44808
- return {
44809
- ...imageInfo,
44810
- pixelData,
44811
- imageInfo: encodedImageInfo,
44812
- encodeOptions,
44813
- ...encodeOptions,
44814
- ...encodedImageInfo,
44815
- };
44816
- }
44817
- function decodeJPEG2000_getPixelData(frameInfo, decodedBuffer) {
44818
- if (frameInfo.bitsPerSample > 8) {
44819
- if (frameInfo.isSigned) {
44820
- return new Int16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
44821
- }
44822
- return new Uint16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
44823
- }
44824
- if (frameInfo.isSigned) {
44825
- return new Int8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
44826
- }
44827
- return new Uint8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
44828
- }
44829
- /* harmony default export */ const decodeJPEG2000 = (decodeJPEG2000_decodeAsync);
44830
-
44831
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/codec-openjph/dist/openjphjs.js
44832
- var openjphjs = __webpack_require__(68112);
44833
- var openjphjs_default = /*#__PURE__*/__webpack_require__.n(openjphjs);
44834
- ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeHTJ2K.js
44835
-
44836
- const openjphWasm = new URL(/* asset import */ __webpack_require__(12342), __webpack_require__.b);
44837
- const decodeHTJ2K_local = {
44838
- codec: undefined,
44839
- decoder: undefined,
44840
- decodeConfig: {},
44841
- };
44842
- function calculateSizeAtDecompositionLevel(decompositionLevel, frameWidth, frameHeight) {
44843
- const result = { width: frameWidth, height: frameHeight };
44844
- while (decompositionLevel > 0) {
44845
- result.width = Math.ceil(result.width / 2);
44846
- result.height = Math.ceil(result.height / 2);
44847
- decompositionLevel--;
44848
- }
44849
- return result;
44850
- }
44851
- function decodeHTJ2K_initialize(decodeConfig) {
44852
- decodeHTJ2K_local.decodeConfig = decodeConfig;
44853
- if (decodeHTJ2K_local.codec) {
44854
- return Promise.resolve();
44855
- }
44856
- const openJphModule = openjphjs_default()({
44857
- locateFile: (f) => {
44858
- if (f.endsWith('.wasm')) {
44859
- return openjphWasm.toString();
44860
- }
44861
- return f;
44862
- },
44863
- });
44864
- return new Promise((resolve, reject) => {
44865
- openJphModule.then((instance) => {
44866
- decodeHTJ2K_local.codec = instance;
44867
- decodeHTJ2K_local.decoder = new instance.HTJ2KDecoder();
44868
- resolve();
44869
- }, reject);
44870
- });
44871
- }
44872
- async function decodeHTJ2K_decodeAsync(compressedImageFrame, imageInfo) {
44873
- await decodeHTJ2K_initialize();
44874
- const decoder = new decodeHTJ2K_local.codec.HTJ2KDecoder();
44875
- const encodedBufferInWASM = decoder.getEncodedBuffer(compressedImageFrame.length);
44876
- encodedBufferInWASM.set(compressedImageFrame);
44877
- const decodeLevel = imageInfo.decodeLevel || 0;
44878
- decoder.decodeSubResolution(decodeLevel);
44879
- const frameInfo = decoder.getFrameInfo();
44880
- if (imageInfo.decodeLevel > 0) {
44881
- const { width, height } = calculateSizeAtDecompositionLevel(imageInfo.decodeLevel, frameInfo.width, frameInfo.height);
44882
- frameInfo.width = width;
44883
- frameInfo.height = height;
44884
- }
44885
- const decodedBufferInWASM = decoder.getDecodedBuffer();
44886
- const imageFrame = new Uint8Array(decodedBufferInWASM.length);
44887
- imageFrame.set(decodedBufferInWASM);
44888
- const imageOffset = `x: ${decoder.getImageOffset().x}, y: ${decoder.getImageOffset().y}`;
44889
- const numDecompositions = decoder.getNumDecompositions();
44890
- const numLayers = decoder.getNumLayers();
44891
- const progessionOrder = ['unknown', 'LRCP', 'RLCP', 'RPCL', 'PCRL', 'CPRL'][decoder.getProgressionOrder() + 1];
44892
- const reversible = decoder.getIsReversible();
44893
- const blockDimensions = `${decoder.getBlockDimensions().width} x ${decoder.getBlockDimensions().height}`;
44894
- const tileSize = `${decoder.getTileSize().width} x ${decoder.getTileSize().height}`;
44895
- const tileOffset = `${decoder.getTileOffset().x}, ${decoder.getTileOffset().y}`;
44896
- const decodedSize = `${decodedBufferInWASM.length.toLocaleString()} bytes`;
44897
- const compressionRatio = `${(decodedBufferInWASM.length / encodedBufferInWASM.length).toFixed(2)}:1`;
44898
- const encodedImageInfo = {
44899
- columns: frameInfo.width,
44900
- rows: frameInfo.height,
44901
- bitsPerPixel: frameInfo.bitsPerSample,
44902
- signed: frameInfo.isSigned,
44903
- bytesPerPixel: imageInfo.bytesPerPixel,
44904
- componentsPerPixel: frameInfo.componentCount,
44905
- };
44906
- let pixelData = decodeHTJ2K_getPixelData(frameInfo, decodedBufferInWASM);
44907
- const { buffer: b, byteOffset, byteLength } = pixelData;
44908
- const pixelDataArrayBuffer = b.slice(byteOffset, byteOffset + byteLength);
44909
- pixelData = new pixelData.constructor(pixelDataArrayBuffer);
44910
- const encodeOptions = {
44911
- imageOffset,
44912
- numDecompositions,
44913
- numLayers,
44914
- progessionOrder,
44915
- reversible,
44916
- blockDimensions,
44917
- tileSize,
44918
- tileOffset,
44919
- decodedSize,
44920
- compressionRatio,
44921
- };
44922
- return {
44923
- ...imageInfo,
44924
- pixelData,
44925
- imageInfo: encodedImageInfo,
44926
- encodeOptions,
44927
- ...encodeOptions,
44928
- ...encodedImageInfo,
44929
- };
44930
- }
44931
- function decodeHTJ2K_getPixelData(frameInfo, decodedBuffer) {
44932
- if (frameInfo.bitsPerSample > 8) {
44933
- if (frameInfo.isSigned) {
44934
- return new Int16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
44935
- }
44936
- return new Uint16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
44937
- }
44938
- if (frameInfo.isSigned) {
44939
- return new Int8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
44940
- }
44941
- return new Uint8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
44942
- }
44943
- /* harmony default export */ const decodeHTJ2K = (decodeHTJ2K_decodeAsync);
44944
-
44374
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeLittleEndian.js
44375
+ var decodeLittleEndian = __webpack_require__(67927);
44376
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeBigEndian.js
44377
+ var decodeBigEndian = __webpack_require__(45155);
44378
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeRLE.js
44379
+ var decodeRLE = __webpack_require__(40115);
44380
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGBaseline8Bit.js
44381
+ var decodeJPEGBaseline8Bit = __webpack_require__(89178);
44382
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-js.js
44383
+ var decodeJPEGBaseline12Bit_js = __webpack_require__(63991);
44384
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGLossless.js
44385
+ var decodeJPEGLossless = __webpack_require__(32856);
44386
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGLS.js
44387
+ var decodeJPEGLS = __webpack_require__(93119);
44388
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEG2000.js
44389
+ var decodeJPEG2000 = __webpack_require__(90612);
44390
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeHTJ2K.js
44391
+ var decodeHTJ2K = __webpack_require__(53383);
44945
44392
  ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/scaling/scaleArray.js
44946
44393
  function scaleArray(array, scalingParameters) {
44947
44394
  const arrayLength = array.length;
@@ -45189,31 +44636,31 @@ async function decodeImageFrame(imageFrame, transferSyntax, pixelData, decodeCon
45189
44636
  switch (transferSyntax) {
45190
44637
  case '1.2.840.10008.1.2':
45191
44638
  case '1.2.840.10008.1.2.1':
45192
- decodePromise = decoders_decodeLittleEndian(imageFrame, pixelData);
44639
+ decodePromise = (0,decodeLittleEndian/* default */.A)(imageFrame, pixelData);
45193
44640
  break;
45194
44641
  case '1.2.840.10008.1.2.2':
45195
- decodePromise = decoders_decodeBigEndian(imageFrame, pixelData);
44642
+ decodePromise = (0,decodeBigEndian/* default */.A)(imageFrame, pixelData);
45196
44643
  break;
45197
44644
  case '1.2.840.10008.1.2.1.99':
45198
- decodePromise = decoders_decodeLittleEndian(imageFrame, pixelData);
44645
+ decodePromise = (0,decodeLittleEndian/* default */.A)(imageFrame, pixelData);
45199
44646
  break;
45200
44647
  case '1.2.840.10008.1.2.5':
45201
- decodePromise = decoders_decodeRLE(imageFrame, pixelData);
44648
+ decodePromise = (0,decodeRLE/* default */.A)(imageFrame, pixelData);
45202
44649
  break;
45203
44650
  case '1.2.840.10008.1.2.4.50':
45204
44651
  opts = {
45205
44652
  ...imageFrame,
45206
44653
  };
45207
- decodePromise = decodeJPEGBaseline8Bit(pixelData, opts);
44654
+ decodePromise = (0,decodeJPEGBaseline8Bit/* default */.A)(pixelData, opts);
45208
44655
  break;
45209
44656
  case '1.2.840.10008.1.2.4.51':
45210
- decodePromise = decodeJPEGBaseline12Bit_js(imageFrame, pixelData);
44657
+ decodePromise = (0,decodeJPEGBaseline12Bit_js/* default */.A)(imageFrame, pixelData);
45211
44658
  break;
45212
44659
  case '1.2.840.10008.1.2.4.57':
45213
- decodePromise = decoders_decodeJPEGLossless(imageFrame, pixelData);
44660
+ decodePromise = (0,decodeJPEGLossless/* default */.A)(imageFrame, pixelData);
45214
44661
  break;
45215
44662
  case '1.2.840.10008.1.2.4.70':
45216
- decodePromise = decoders_decodeJPEGLossless(imageFrame, pixelData);
44663
+ decodePromise = (0,decodeJPEGLossless/* default */.A)(imageFrame, pixelData);
45217
44664
  break;
45218
44665
  case '1.2.840.10008.1.2.4.80':
45219
44666
  opts = {
@@ -45221,7 +44668,7 @@ async function decodeImageFrame(imageFrame, transferSyntax, pixelData, decodeCon
45221
44668
  bytesPerPixel: imageFrame.bitsAllocated <= 8 ? 1 : 2,
45222
44669
  ...imageFrame,
45223
44670
  };
45224
- decodePromise = decodeJPEGLS(pixelData, opts);
44671
+ decodePromise = (0,decodeJPEGLS/* default */.A)(pixelData, opts);
45225
44672
  break;
45226
44673
  case '1.2.840.10008.1.2.4.81':
45227
44674
  opts = {
@@ -45229,19 +44676,19 @@ async function decodeImageFrame(imageFrame, transferSyntax, pixelData, decodeCon
45229
44676
  bytesPerPixel: imageFrame.bitsAllocated <= 8 ? 1 : 2,
45230
44677
  ...imageFrame,
45231
44678
  };
45232
- decodePromise = decodeJPEGLS(pixelData, opts);
44679
+ decodePromise = (0,decodeJPEGLS/* default */.A)(pixelData, opts);
45233
44680
  break;
45234
44681
  case '1.2.840.10008.1.2.4.90':
45235
44682
  opts = {
45236
44683
  ...imageFrame,
45237
44684
  };
45238
- decodePromise = decodeJPEG2000(pixelData, opts);
44685
+ decodePromise = (0,decodeJPEG2000/* default */.A)(pixelData, opts);
45239
44686
  break;
45240
44687
  case '1.2.840.10008.1.2.4.91':
45241
44688
  opts = {
45242
44689
  ...imageFrame,
45243
44690
  };
45244
- decodePromise = decodeJPEG2000(pixelData, opts);
44691
+ decodePromise = (0,decodeJPEG2000/* default */.A)(pixelData, opts);
45245
44692
  break;
45246
44693
  case '3.2.840.10008.1.2.4.96':
45247
44694
  case '1.2.840.10008.1.2.4.201':
@@ -45250,7 +44697,7 @@ async function decodeImageFrame(imageFrame, transferSyntax, pixelData, decodeCon
45250
44697
  opts = {
45251
44698
  ...imageFrame,
45252
44699
  };
45253
- decodePromise = decodeHTJ2K(pixelData, opts);
44700
+ decodePromise = (0,decodeHTJ2K/* default */.A)(pixelData, opts);
45254
44701
  break;
45255
44702
  default:
45256
44703
  throw new Error(`no decoder for transfer syntax ${transferSyntax}`);
@@ -45273,7 +44720,7 @@ const obj = {
45273
44720
 
45274
44721
  /***/ }),
45275
44722
 
45276
- /***/ 79453:
44723
+ /***/ 75524:
45277
44724
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
45278
44725
 
45279
44726
  "use strict";
@@ -45283,7 +44730,7 @@ __webpack_require__.d(__webpack_exports__, {
45283
44730
  Ay: () => (/* binding */ dist_esm)
45284
44731
  });
45285
44732
 
45286
- // UNUSED EXPORTS: constants, convertColorSpace, convertPALETTECOLOR, convertRGBColorByPixel, convertRGBColorByPlane, convertYBRFullByPixel, convertYBRFullByPlane, createImage, decodeImageFrame, decodeJPEGBaseline8BitColor, getImageFrame, getMinMax, getPixelData, init, internal, isColorImage, isJPEGBaseline8BitColor, wadors, wadouri
44733
+ // UNUSED EXPORTS: constants, convertColorSpace, convertPALETTECOLOR, convertRGBColorByPixel, convertRGBColorByPlane, convertYBRFullByPixel, convertYBRFullByPlane, createImage, decodeImageFrame, decodeJPEGBaseline8BitColor, decoders, getImageFrame, getMinMax, getPixelData, init, initializers, internal, isColorImage, isJPEGBaseline8BitColor, wadors, wadouri
45287
44734
 
45288
44735
  // NAMESPACE OBJECT: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/constants/index.js
45289
44736
  var constants_namespaceObject = {};
@@ -48823,8 +48270,63 @@ const transferSyntaxes = {
48823
48270
 
48824
48271
 
48825
48272
 
48826
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/decodeImageFrameWorker.js + 12 modules
48827
- var decodeImageFrameWorker = __webpack_require__(83353);
48273
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/decodeImageFrameWorker.js + 3 modules
48274
+ var decodeImageFrameWorker = __webpack_require__(15858);
48275
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeHTJ2K.js
48276
+ var decodeHTJ2K = __webpack_require__(53383);
48277
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEG2000.js
48278
+ var decodeJPEG2000 = __webpack_require__(90612);
48279
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGLS.js
48280
+ var decodeJPEGLS = __webpack_require__(93119);
48281
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-js.js
48282
+ var decodeJPEGBaseline12Bit_js = __webpack_require__(63991);
48283
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGLossless.js
48284
+ var decodeJPEGLossless = __webpack_require__(32856);
48285
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeJPEGBaseline8Bit.js
48286
+ var decodeJPEGBaseline8Bit = __webpack_require__(89178);
48287
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeBigEndian.js
48288
+ var decodeBigEndian = __webpack_require__(45155);
48289
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeLittleEndian.js
48290
+ var decodeLittleEndian = __webpack_require__(67927);
48291
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/decodeRLE.js
48292
+ var decodeRLE = __webpack_require__(40115);
48293
+ ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/shared/decoders/index.js
48294
+
48295
+
48296
+
48297
+
48298
+
48299
+
48300
+
48301
+
48302
+
48303
+
48304
+
48305
+
48306
+
48307
+
48308
+
48309
+ const initializers = {
48310
+ HTJ2K: decodeHTJ2K/* initialize */.n,
48311
+ JPEG2000: decodeJPEG2000/* initialize */.n,
48312
+ JPEGLS: decodeJPEGLS/* initialize */.n,
48313
+ JPEGBaseline12Bit: decodeJPEGBaseline12Bit_js/* initialize */.n,
48314
+ JPEGLossless: decodeJPEGLossless/* initialize */.n,
48315
+ JPEGBaseline8Bit: decodeJPEGBaseline8Bit/* initialize */.n,
48316
+ };
48317
+ const decoders = {
48318
+ HTJ2K: decodeHTJ2K/* default */.A,
48319
+ JPEG2000: decodeJPEG2000/* default */.A,
48320
+ JPEGLS: decodeJPEGLS/* default */.A,
48321
+ JPEGBaseline12Bit: decodeJPEGBaseline12Bit_js/* default */.A,
48322
+ JPEGLossless: decodeJPEGLossless/* default */.A,
48323
+ JPEGBaseline8Bit: decodeJPEGBaseline8Bit/* default */.A,
48324
+ BigEndian: decodeBigEndian/* default */.A,
48325
+ LittleEndian: decodeLittleEndian/* default */.A,
48326
+ RLE: decodeRLE/* default */.A,
48327
+ };
48328
+
48329
+
48828
48330
  ;// ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/index.js
48829
48331
 
48830
48332
 
@@ -48841,6 +48343,7 @@ var decodeImageFrameWorker = __webpack_require__(83353);
48841
48343
 
48842
48344
 
48843
48345
 
48346
+
48844
48347
  const cornerstoneDICOMImageLoader = {
48845
48348
  constants: constants_namespaceObject,
48846
48349
  convertRGBColorByPixel: convertRGBColorByPixel,
@@ -48861,11 +48364,745 @@ const cornerstoneDICOMImageLoader = {
48861
48364
  isJPEGBaseline8BitColor: imageLoader_isJPEGBaseline8BitColor,
48862
48365
  internal: internal,
48863
48366
  decodeImageFrame: decodeImageFrameWorker/* decodeImageFrame */.p,
48367
+ initializers: initializers,
48368
+ decoders: decoders,
48864
48369
  };
48865
48370
 
48866
48371
  /* harmony default export */ const dist_esm = (cornerstoneDICOMImageLoader);
48867
48372
 
48868
48373
 
48374
+ /***/ }),
48375
+
48376
+ /***/ 45155:
48377
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48378
+
48379
+ "use strict";
48380
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48381
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
48382
+ /* harmony export */ });
48383
+ function swap16(val) {
48384
+ return ((val & 0xff) << 8) | ((val >> 8) & 0xff);
48385
+ }
48386
+ async function decodeBigEndian(imageFrame, pixelData) {
48387
+ if (imageFrame.bitsAllocated === 16) {
48388
+ let arrayBuffer = pixelData.buffer;
48389
+ let offset = pixelData.byteOffset;
48390
+ const length = pixelData.length;
48391
+ if (offset % 2) {
48392
+ arrayBuffer = arrayBuffer.slice(offset);
48393
+ offset = 0;
48394
+ }
48395
+ if (imageFrame.pixelRepresentation === 0) {
48396
+ imageFrame.pixelData = new Uint16Array(arrayBuffer, offset, length / 2);
48397
+ }
48398
+ else {
48399
+ imageFrame.pixelData = new Int16Array(arrayBuffer, offset, length / 2);
48400
+ }
48401
+ for (let i = 0; i < imageFrame.pixelData.length; i++) {
48402
+ imageFrame.pixelData[i] = swap16(imageFrame.pixelData[i]);
48403
+ }
48404
+ }
48405
+ else if (imageFrame.bitsAllocated === 8) {
48406
+ imageFrame.pixelData = pixelData;
48407
+ }
48408
+ return imageFrame;
48409
+ }
48410
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodeBigEndian);
48411
+
48412
+
48413
+ /***/ }),
48414
+
48415
+ /***/ 53383:
48416
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48417
+
48418
+ "use strict";
48419
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48420
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
48421
+ /* harmony export */ n: () => (/* binding */ initialize)
48422
+ /* harmony export */ });
48423
+ /* harmony import */ var _cornerstonejs_codec_openjph_wasmjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68112);
48424
+ /* harmony import */ var _cornerstonejs_codec_openjph_wasmjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_cornerstonejs_codec_openjph_wasmjs__WEBPACK_IMPORTED_MODULE_0__);
48425
+
48426
+ const openjphWasm = new URL(/* asset import */ __webpack_require__(12342), __webpack_require__.b);
48427
+ const local = {
48428
+ codec: undefined,
48429
+ decoder: undefined,
48430
+ decodeConfig: {},
48431
+ };
48432
+ function calculateSizeAtDecompositionLevel(decompositionLevel, frameWidth, frameHeight) {
48433
+ const result = { width: frameWidth, height: frameHeight };
48434
+ while (decompositionLevel > 0) {
48435
+ result.width = Math.ceil(result.width / 2);
48436
+ result.height = Math.ceil(result.height / 2);
48437
+ decompositionLevel--;
48438
+ }
48439
+ return result;
48440
+ }
48441
+ function initialize(decodeConfig) {
48442
+ local.decodeConfig = decodeConfig;
48443
+ if (local.codec) {
48444
+ return Promise.resolve();
48445
+ }
48446
+ const openJphModule = _cornerstonejs_codec_openjph_wasmjs__WEBPACK_IMPORTED_MODULE_0___default()({
48447
+ locateFile: (f) => {
48448
+ if (f.endsWith('.wasm')) {
48449
+ return openjphWasm.toString();
48450
+ }
48451
+ return f;
48452
+ },
48453
+ });
48454
+ return new Promise((resolve, reject) => {
48455
+ openJphModule.then((instance) => {
48456
+ local.codec = instance;
48457
+ local.decoder = new instance.HTJ2KDecoder();
48458
+ resolve();
48459
+ }, reject);
48460
+ });
48461
+ }
48462
+ async function decodeAsync(compressedImageFrame, imageInfo) {
48463
+ await initialize();
48464
+ const decoder = new local.codec.HTJ2KDecoder();
48465
+ const encodedBufferInWASM = decoder.getEncodedBuffer(compressedImageFrame.length);
48466
+ encodedBufferInWASM.set(compressedImageFrame);
48467
+ const decodeLevel = imageInfo.decodeLevel || 0;
48468
+ decoder.decodeSubResolution(decodeLevel);
48469
+ const frameInfo = decoder.getFrameInfo();
48470
+ if (imageInfo.decodeLevel > 0) {
48471
+ const { width, height } = calculateSizeAtDecompositionLevel(imageInfo.decodeLevel, frameInfo.width, frameInfo.height);
48472
+ frameInfo.width = width;
48473
+ frameInfo.height = height;
48474
+ }
48475
+ const decodedBufferInWASM = decoder.getDecodedBuffer();
48476
+ const imageFrame = new Uint8Array(decodedBufferInWASM.length);
48477
+ imageFrame.set(decodedBufferInWASM);
48478
+ const imageOffset = `x: ${decoder.getImageOffset().x}, y: ${decoder.getImageOffset().y}`;
48479
+ const numDecompositions = decoder.getNumDecompositions();
48480
+ const numLayers = decoder.getNumLayers();
48481
+ const progessionOrder = ['unknown', 'LRCP', 'RLCP', 'RPCL', 'PCRL', 'CPRL'][decoder.getProgressionOrder() + 1];
48482
+ const reversible = decoder.getIsReversible();
48483
+ const blockDimensions = `${decoder.getBlockDimensions().width} x ${decoder.getBlockDimensions().height}`;
48484
+ const tileSize = `${decoder.getTileSize().width} x ${decoder.getTileSize().height}`;
48485
+ const tileOffset = `${decoder.getTileOffset().x}, ${decoder.getTileOffset().y}`;
48486
+ const decodedSize = `${decodedBufferInWASM.length.toLocaleString()} bytes`;
48487
+ const compressionRatio = `${(decodedBufferInWASM.length / encodedBufferInWASM.length).toFixed(2)}:1`;
48488
+ const encodedImageInfo = {
48489
+ columns: frameInfo.width,
48490
+ rows: frameInfo.height,
48491
+ bitsPerPixel: frameInfo.bitsPerSample,
48492
+ signed: frameInfo.isSigned,
48493
+ bytesPerPixel: imageInfo.bytesPerPixel,
48494
+ componentsPerPixel: frameInfo.componentCount,
48495
+ };
48496
+ let pixelData = getPixelData(frameInfo, decodedBufferInWASM);
48497
+ const { buffer: b, byteOffset, byteLength } = pixelData;
48498
+ const pixelDataArrayBuffer = b.slice(byteOffset, byteOffset + byteLength);
48499
+ pixelData = new pixelData.constructor(pixelDataArrayBuffer);
48500
+ const encodeOptions = {
48501
+ imageOffset,
48502
+ numDecompositions,
48503
+ numLayers,
48504
+ progessionOrder,
48505
+ reversible,
48506
+ blockDimensions,
48507
+ tileSize,
48508
+ tileOffset,
48509
+ decodedSize,
48510
+ compressionRatio,
48511
+ };
48512
+ return {
48513
+ ...imageInfo,
48514
+ pixelData,
48515
+ imageInfo: encodedImageInfo,
48516
+ encodeOptions,
48517
+ ...encodeOptions,
48518
+ ...encodedImageInfo,
48519
+ };
48520
+ }
48521
+ function getPixelData(frameInfo, decodedBuffer) {
48522
+ if (frameInfo.bitsPerSample > 8) {
48523
+ if (frameInfo.isSigned) {
48524
+ return new Int16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
48525
+ }
48526
+ return new Uint16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
48527
+ }
48528
+ if (frameInfo.isSigned) {
48529
+ return new Int8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
48530
+ }
48531
+ return new Uint8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
48532
+ }
48533
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodeAsync);
48534
+
48535
+
48536
+ /***/ }),
48537
+
48538
+ /***/ 90612:
48539
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48540
+
48541
+ "use strict";
48542
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48543
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
48544
+ /* harmony export */ n: () => (/* binding */ initialize)
48545
+ /* harmony export */ });
48546
+ /* harmony import */ var _cornerstonejs_codec_openjpeg_decodewasmjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53488);
48547
+ /* harmony import */ var _cornerstonejs_codec_openjpeg_decodewasmjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_cornerstonejs_codec_openjpeg_decodewasmjs__WEBPACK_IMPORTED_MODULE_0__);
48548
+
48549
+ const openjpegWasm = new URL(/* asset import */ __webpack_require__(87840), __webpack_require__.b);
48550
+ const local = {
48551
+ codec: undefined,
48552
+ decoder: undefined,
48553
+ decodeConfig: {},
48554
+ };
48555
+ function initialize(decodeConfig) {
48556
+ local.decodeConfig = decodeConfig;
48557
+ if (local.codec) {
48558
+ return Promise.resolve();
48559
+ }
48560
+ const openJpegModule = _cornerstonejs_codec_openjpeg_decodewasmjs__WEBPACK_IMPORTED_MODULE_0___default()({
48561
+ locateFile: (f) => {
48562
+ if (f.endsWith('.wasm')) {
48563
+ return openjpegWasm.toString();
48564
+ }
48565
+ return f;
48566
+ },
48567
+ });
48568
+ return new Promise((resolve, reject) => {
48569
+ openJpegModule.then((instance) => {
48570
+ local.codec = instance;
48571
+ local.decoder = new instance.J2KDecoder();
48572
+ resolve();
48573
+ }, reject);
48574
+ });
48575
+ }
48576
+ async function decodeAsync(compressedImageFrame, imageInfo) {
48577
+ await initialize();
48578
+ const decoder = local.decoder;
48579
+ const encodedBufferInWASM = decoder.getEncodedBuffer(compressedImageFrame.length);
48580
+ encodedBufferInWASM.set(compressedImageFrame);
48581
+ decoder.decode();
48582
+ const frameInfo = decoder.getFrameInfo();
48583
+ const decodedBufferInWASM = decoder.getDecodedBuffer();
48584
+ const imageFrame = new Uint8Array(decodedBufferInWASM.length);
48585
+ imageFrame.set(decodedBufferInWASM);
48586
+ const imageOffset = `x: ${decoder.getImageOffset().x}, y: ${decoder.getImageOffset().y}`;
48587
+ const numDecompositions = decoder.getNumDecompositions();
48588
+ const numLayers = decoder.getNumLayers();
48589
+ const progessionOrder = ['unknown', 'LRCP', 'RLCP', 'RPCL', 'PCRL', 'CPRL'][decoder.getProgressionOrder() + 1];
48590
+ const reversible = decoder.getIsReversible();
48591
+ const blockDimensions = `${decoder.getBlockDimensions().width} x ${decoder.getBlockDimensions().height}`;
48592
+ const tileSize = `${decoder.getTileSize().width} x ${decoder.getTileSize().height}`;
48593
+ const tileOffset = `${decoder.getTileOffset().x}, ${decoder.getTileOffset().y}`;
48594
+ const colorTransform = decoder.getColorSpace();
48595
+ const decodedSize = `${decodedBufferInWASM.length.toLocaleString()} bytes`;
48596
+ const compressionRatio = `${(decodedBufferInWASM.length / encodedBufferInWASM.length).toFixed(2)}:1`;
48597
+ const encodedImageInfo = {
48598
+ columns: frameInfo.width,
48599
+ rows: frameInfo.height,
48600
+ bitsPerPixel: frameInfo.bitsPerSample,
48601
+ signed: frameInfo.isSigned,
48602
+ bytesPerPixel: imageInfo.bytesPerPixel,
48603
+ componentsPerPixel: frameInfo.componentCount,
48604
+ };
48605
+ const pixelData = getPixelData(frameInfo, decodedBufferInWASM);
48606
+ const encodeOptions = {
48607
+ imageOffset,
48608
+ numDecompositions,
48609
+ numLayers,
48610
+ progessionOrder,
48611
+ reversible,
48612
+ blockDimensions,
48613
+ tileSize,
48614
+ tileOffset,
48615
+ colorTransform,
48616
+ decodedSize,
48617
+ compressionRatio,
48618
+ };
48619
+ return {
48620
+ ...imageInfo,
48621
+ pixelData,
48622
+ imageInfo: encodedImageInfo,
48623
+ encodeOptions,
48624
+ ...encodeOptions,
48625
+ ...encodedImageInfo,
48626
+ };
48627
+ }
48628
+ function getPixelData(frameInfo, decodedBuffer) {
48629
+ if (frameInfo.bitsPerSample > 8) {
48630
+ if (frameInfo.isSigned) {
48631
+ return new Int16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
48632
+ }
48633
+ return new Uint16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
48634
+ }
48635
+ if (frameInfo.isSigned) {
48636
+ return new Int8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
48637
+ }
48638
+ return new Uint8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
48639
+ }
48640
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodeAsync);
48641
+
48642
+
48643
+ /***/ }),
48644
+
48645
+ /***/ 63991:
48646
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48647
+
48648
+ "use strict";
48649
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48650
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
48651
+ /* harmony export */ n: () => (/* binding */ initialize)
48652
+ /* harmony export */ });
48653
+ const local = {
48654
+ JpegImage: undefined,
48655
+ decodeConfig: {},
48656
+ };
48657
+ function initialize(decodeConfig) {
48658
+ local.decodeConfig = decodeConfig;
48659
+ if (local.JpegImage) {
48660
+ return Promise.resolve();
48661
+ }
48662
+ return new Promise((resolve, reject) => {
48663
+ __webpack_require__.e(/* import() */ 8094).then(__webpack_require__.bind(__webpack_require__, 8094))
48664
+ .then((module) => {
48665
+ local.JpegImage = module.default;
48666
+ resolve();
48667
+ })
48668
+ .catch(reject);
48669
+ });
48670
+ }
48671
+ async function decodeJPEGBaseline12BitAsync(imageFrame, pixelData) {
48672
+ await initialize();
48673
+ if (typeof local.JpegImage === 'undefined') {
48674
+ throw new Error('No JPEG Baseline decoder loaded');
48675
+ }
48676
+ const jpeg = new local.JpegImage();
48677
+ jpeg.parse(pixelData);
48678
+ jpeg.colorTransform = false;
48679
+ if (imageFrame.bitsAllocated === 8) {
48680
+ imageFrame.pixelData = jpeg.getData(imageFrame.columns, imageFrame.rows);
48681
+ return imageFrame;
48682
+ }
48683
+ else if (imageFrame.bitsAllocated === 16) {
48684
+ imageFrame.pixelData = jpeg.getData16(imageFrame.columns, imageFrame.rows);
48685
+ return imageFrame;
48686
+ }
48687
+ }
48688
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodeJPEGBaseline12BitAsync);
48689
+
48690
+
48691
+ /***/ }),
48692
+
48693
+ /***/ 89178:
48694
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48695
+
48696
+ "use strict";
48697
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48698
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
48699
+ /* harmony export */ n: () => (/* binding */ initialize)
48700
+ /* harmony export */ });
48701
+ /* harmony import */ var _cornerstonejs_codec_libjpeg_turbo_8bit_decodewasmjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36317);
48702
+ /* harmony import */ var _cornerstonejs_codec_libjpeg_turbo_8bit_decodewasmjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_cornerstonejs_codec_libjpeg_turbo_8bit_decodewasmjs__WEBPACK_IMPORTED_MODULE_0__);
48703
+
48704
+ const libjpegTurboWasm = new URL(/* asset import */ __webpack_require__(99441), __webpack_require__.b);
48705
+ const local = {
48706
+ codec: undefined,
48707
+ decoder: undefined,
48708
+ };
48709
+ function initLibjpegTurbo() {
48710
+ if (local.codec) {
48711
+ return Promise.resolve();
48712
+ }
48713
+ const libjpegTurboModule = _cornerstonejs_codec_libjpeg_turbo_8bit_decodewasmjs__WEBPACK_IMPORTED_MODULE_0___default()({
48714
+ locateFile: (f) => {
48715
+ if (f.endsWith('.wasm')) {
48716
+ return libjpegTurboWasm.toString();
48717
+ }
48718
+ return f;
48719
+ },
48720
+ });
48721
+ return new Promise((resolve, reject) => {
48722
+ libjpegTurboModule.then((instance) => {
48723
+ local.codec = instance;
48724
+ local.decoder = new instance.JPEGDecoder();
48725
+ resolve();
48726
+ }, reject);
48727
+ });
48728
+ }
48729
+ async function decodeAsync(compressedImageFrame, imageInfo) {
48730
+ await initLibjpegTurbo();
48731
+ const decoder = local.decoder;
48732
+ const encodedBufferInWASM = decoder.getEncodedBuffer(compressedImageFrame.length);
48733
+ encodedBufferInWASM.set(compressedImageFrame);
48734
+ decoder.decode();
48735
+ const frameInfo = decoder.getFrameInfo();
48736
+ const decodedPixelsInWASM = decoder.getDecodedBuffer();
48737
+ const encodedImageInfo = {
48738
+ columns: frameInfo.width,
48739
+ rows: frameInfo.height,
48740
+ bitsPerPixel: frameInfo.bitsPerSample,
48741
+ signed: imageInfo.signed,
48742
+ bytesPerPixel: imageInfo.bytesPerPixel,
48743
+ componentsPerPixel: frameInfo.componentCount,
48744
+ };
48745
+ const pixelData = getPixelData(frameInfo, decodedPixelsInWASM);
48746
+ const encodeOptions = {
48747
+ frameInfo,
48748
+ };
48749
+ return {
48750
+ ...imageInfo,
48751
+ pixelData,
48752
+ imageInfo: encodedImageInfo,
48753
+ encodeOptions,
48754
+ ...encodeOptions,
48755
+ ...encodedImageInfo,
48756
+ };
48757
+ }
48758
+ function getPixelData(frameInfo, decodedBuffer) {
48759
+ if (frameInfo.isSigned) {
48760
+ return new Int8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
48761
+ }
48762
+ return new Uint8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
48763
+ }
48764
+ const initialize = initLibjpegTurbo;
48765
+
48766
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodeAsync);
48767
+
48768
+
48769
+ /***/ }),
48770
+
48771
+ /***/ 93119:
48772
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48773
+
48774
+ "use strict";
48775
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48776
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
48777
+ /* harmony export */ n: () => (/* binding */ initialize)
48778
+ /* harmony export */ });
48779
+ /* harmony import */ var _cornerstonejs_codec_charls_decodewasmjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93720);
48780
+ /* harmony import */ var _cornerstonejs_codec_charls_decodewasmjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_cornerstonejs_codec_charls_decodewasmjs__WEBPACK_IMPORTED_MODULE_0__);
48781
+
48782
+ const charlsWasm = new URL(/* asset import */ __webpack_require__(46920), __webpack_require__.b);
48783
+ const local = {
48784
+ codec: undefined,
48785
+ decoder: undefined,
48786
+ decodeConfig: {},
48787
+ };
48788
+ function getExceptionMessage(exception) {
48789
+ return typeof exception === 'number'
48790
+ ? local.codec.getExceptionMessage(exception)
48791
+ : exception;
48792
+ }
48793
+ function initialize(decodeConfig) {
48794
+ local.decodeConfig = decodeConfig;
48795
+ if (local.codec) {
48796
+ return Promise.resolve();
48797
+ }
48798
+ const charlsModule = _cornerstonejs_codec_charls_decodewasmjs__WEBPACK_IMPORTED_MODULE_0___default()({
48799
+ locateFile: (f) => {
48800
+ if (f.endsWith('.wasm')) {
48801
+ return charlsWasm.toString();
48802
+ }
48803
+ return f;
48804
+ },
48805
+ });
48806
+ return new Promise((resolve, reject) => {
48807
+ charlsModule.then((instance) => {
48808
+ local.codec = instance;
48809
+ local.decoder = new instance.JpegLSDecoder();
48810
+ resolve();
48811
+ }, reject);
48812
+ });
48813
+ }
48814
+ async function decodeAsync(compressedImageFrame, imageInfo) {
48815
+ try {
48816
+ await initialize();
48817
+ const decoder = local.decoder;
48818
+ const encodedBufferInWASM = decoder.getEncodedBuffer(compressedImageFrame.length);
48819
+ encodedBufferInWASM.set(compressedImageFrame);
48820
+ decoder.decode();
48821
+ const frameInfo = decoder.getFrameInfo();
48822
+ const interleaveMode = decoder.getInterleaveMode();
48823
+ const nearLossless = decoder.getNearLossless();
48824
+ const decodedPixelsInWASM = decoder.getDecodedBuffer();
48825
+ const encodedImageInfo = {
48826
+ columns: frameInfo.width,
48827
+ rows: frameInfo.height,
48828
+ bitsPerPixel: frameInfo.bitsPerSample,
48829
+ signed: imageInfo.signed,
48830
+ bytesPerPixel: imageInfo.bytesPerPixel,
48831
+ componentsPerPixel: frameInfo.componentCount,
48832
+ };
48833
+ const pixelData = getPixelData(frameInfo, decodedPixelsInWASM, imageInfo.signed);
48834
+ const encodeOptions = {
48835
+ nearLossless,
48836
+ interleaveMode,
48837
+ frameInfo,
48838
+ };
48839
+ return {
48840
+ ...imageInfo,
48841
+ pixelData,
48842
+ imageInfo: encodedImageInfo,
48843
+ encodeOptions,
48844
+ ...encodeOptions,
48845
+ ...encodedImageInfo,
48846
+ };
48847
+ }
48848
+ catch (error) {
48849
+ throw getExceptionMessage(error);
48850
+ }
48851
+ }
48852
+ function getPixelData(frameInfo, decodedBuffer, signed) {
48853
+ if (frameInfo.bitsPerSample > 8) {
48854
+ if (signed) {
48855
+ return new Int16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
48856
+ }
48857
+ return new Uint16Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength / 2);
48858
+ }
48859
+ if (signed) {
48860
+ return new Int8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
48861
+ }
48862
+ return new Uint8Array(decodedBuffer.buffer, decodedBuffer.byteOffset, decodedBuffer.byteLength);
48863
+ }
48864
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodeAsync);
48865
+
48866
+
48867
+ /***/ }),
48868
+
48869
+ /***/ 32856:
48870
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48871
+
48872
+ "use strict";
48873
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48874
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
48875
+ /* harmony export */ n: () => (/* binding */ initialize)
48876
+ /* harmony export */ });
48877
+ const local = {
48878
+ DecoderClass: undefined,
48879
+ decodeConfig: {},
48880
+ };
48881
+ function initialize(decodeConfig) {
48882
+ local.decodeConfig = decodeConfig;
48883
+ if (local.DecoderClass) {
48884
+ return Promise.resolve();
48885
+ }
48886
+ return new Promise((resolve, reject) => {
48887
+ __webpack_require__.e(/* import() */ 732).then(__webpack_require__.bind(__webpack_require__, 10732)).then(({ Decoder }) => {
48888
+ local.DecoderClass = Decoder;
48889
+ resolve();
48890
+ }, reject);
48891
+ });
48892
+ }
48893
+ async function decodeJPEGLossless(imageFrame, pixelData) {
48894
+ await initialize();
48895
+ if (typeof local.DecoderClass === 'undefined') {
48896
+ throw new Error('No JPEG Lossless decoder loaded');
48897
+ }
48898
+ const decoder = new local.DecoderClass();
48899
+ const byteOutput = imageFrame.bitsAllocated <= 8 ? 1 : 2;
48900
+ const buffer = pixelData.buffer;
48901
+ const decompressedData = decoder.decode(buffer, pixelData.byteOffset, pixelData.length, byteOutput);
48902
+ if (imageFrame.pixelRepresentation === 0) {
48903
+ if (imageFrame.bitsAllocated === 16) {
48904
+ imageFrame.pixelData = new Uint16Array(decompressedData.buffer);
48905
+ return imageFrame;
48906
+ }
48907
+ imageFrame.pixelData = new Uint8Array(decompressedData.buffer);
48908
+ return imageFrame;
48909
+ }
48910
+ imageFrame.pixelData = new Int16Array(decompressedData.buffer);
48911
+ return imageFrame;
48912
+ }
48913
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodeJPEGLossless);
48914
+
48915
+
48916
+ /***/ }),
48917
+
48918
+ /***/ 67927:
48919
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48920
+
48921
+ "use strict";
48922
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48923
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
48924
+ /* harmony export */ });
48925
+ async function decodeLittleEndian(imageFrame, pixelData) {
48926
+ let arrayBuffer = pixelData.buffer;
48927
+ let offset = pixelData.byteOffset;
48928
+ const length = pixelData.length;
48929
+ if (imageFrame.bitsAllocated === 16) {
48930
+ if (offset % 2) {
48931
+ arrayBuffer = arrayBuffer.slice(offset);
48932
+ offset = 0;
48933
+ }
48934
+ if (imageFrame.pixelRepresentation === 0) {
48935
+ imageFrame.pixelData = new Uint16Array(arrayBuffer, offset, length / 2);
48936
+ }
48937
+ else {
48938
+ imageFrame.pixelData = new Int16Array(arrayBuffer, offset, length / 2);
48939
+ }
48940
+ }
48941
+ else if (imageFrame.bitsAllocated === 8 || imageFrame.bitsAllocated === 1) {
48942
+ imageFrame.pixelData = pixelData;
48943
+ }
48944
+ else if (imageFrame.bitsAllocated === 32) {
48945
+ if (offset % 2) {
48946
+ arrayBuffer = arrayBuffer.slice(offset);
48947
+ offset = 0;
48948
+ }
48949
+ if (imageFrame.floatPixelData || imageFrame.doubleFloatPixelData) {
48950
+ throw new Error('Float pixel data is not supported for parsing into ImageFrame');
48951
+ }
48952
+ if (imageFrame.pixelRepresentation === 0) {
48953
+ imageFrame.pixelData = new Uint32Array(arrayBuffer, offset, length / 4);
48954
+ }
48955
+ else if (imageFrame.pixelRepresentation === 1) {
48956
+ imageFrame.pixelData = new Int32Array(arrayBuffer, offset, length / 4);
48957
+ }
48958
+ else {
48959
+ imageFrame.pixelData = new Float32Array(arrayBuffer, offset, length / 4);
48960
+ }
48961
+ }
48962
+ return imageFrame;
48963
+ }
48964
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodeLittleEndian);
48965
+
48966
+
48967
+ /***/ }),
48968
+
48969
+ /***/ 40115:
48970
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48971
+
48972
+ "use strict";
48973
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48974
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
48975
+ /* harmony export */ });
48976
+ async function decodeRLE(imageFrame, pixelData) {
48977
+ if (imageFrame.bitsAllocated === 8) {
48978
+ if (imageFrame.planarConfiguration) {
48979
+ return decode8Planar(imageFrame, pixelData);
48980
+ }
48981
+ return decode8(imageFrame, pixelData);
48982
+ }
48983
+ else if (imageFrame.bitsAllocated === 16) {
48984
+ return decode16(imageFrame, pixelData);
48985
+ }
48986
+ throw new Error('unsupported pixel format for RLE');
48987
+ }
48988
+ function decode8(imageFrame, pixelData) {
48989
+ const frameData = pixelData;
48990
+ const frameSize = imageFrame.rows * imageFrame.columns;
48991
+ const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel);
48992
+ const header = new DataView(frameData.buffer, frameData.byteOffset);
48993
+ const data = new Int8Array(frameData.buffer, frameData.byteOffset);
48994
+ const out = new Int8Array(outFrame);
48995
+ let outIndex = 0;
48996
+ const numSegments = header.getInt32(0, true);
48997
+ for (let s = 0; s < numSegments; ++s) {
48998
+ outIndex = s;
48999
+ let inIndex = header.getInt32((s + 1) * 4, true);
49000
+ let maxIndex = header.getInt32((s + 2) * 4, true);
49001
+ if (maxIndex === 0) {
49002
+ maxIndex = frameData.length;
49003
+ }
49004
+ const endOfSegment = frameSize * numSegments;
49005
+ while (inIndex < maxIndex) {
49006
+ const n = data[inIndex++];
49007
+ if (n >= 0 && n <= 127) {
49008
+ for (let i = 0; i < n + 1 && outIndex < endOfSegment; ++i) {
49009
+ out[outIndex] = data[inIndex++];
49010
+ outIndex += imageFrame.samplesPerPixel;
49011
+ }
49012
+ }
49013
+ else if (n <= -1 && n >= -127) {
49014
+ const value = data[inIndex++];
49015
+ for (let j = 0; j < -n + 1 && outIndex < endOfSegment; ++j) {
49016
+ out[outIndex] = value;
49017
+ outIndex += imageFrame.samplesPerPixel;
49018
+ }
49019
+ }
49020
+ }
49021
+ }
49022
+ imageFrame.pixelData = new Uint8Array(outFrame);
49023
+ return imageFrame;
49024
+ }
49025
+ function decode8Planar(imageFrame, pixelData) {
49026
+ const frameData = pixelData;
49027
+ const frameSize = imageFrame.rows * imageFrame.columns;
49028
+ const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel);
49029
+ const header = new DataView(frameData.buffer, frameData.byteOffset);
49030
+ const data = new Int8Array(frameData.buffer, frameData.byteOffset);
49031
+ const out = new Int8Array(outFrame);
49032
+ let outIndex = 0;
49033
+ const numSegments = header.getInt32(0, true);
49034
+ for (let s = 0; s < numSegments; ++s) {
49035
+ outIndex = s * frameSize;
49036
+ let inIndex = header.getInt32((s + 1) * 4, true);
49037
+ let maxIndex = header.getInt32((s + 2) * 4, true);
49038
+ if (maxIndex === 0) {
49039
+ maxIndex = frameData.length;
49040
+ }
49041
+ const endOfSegment = frameSize * numSegments;
49042
+ while (inIndex < maxIndex) {
49043
+ const n = data[inIndex++];
49044
+ if (n >= 0 && n <= 127) {
49045
+ for (let i = 0; i < n + 1 && outIndex < endOfSegment; ++i) {
49046
+ out[outIndex] = data[inIndex++];
49047
+ outIndex++;
49048
+ }
49049
+ }
49050
+ else if (n <= -1 && n >= -127) {
49051
+ const value = data[inIndex++];
49052
+ for (let j = 0; j < -n + 1 && outIndex < endOfSegment; ++j) {
49053
+ out[outIndex] = value;
49054
+ outIndex++;
49055
+ }
49056
+ }
49057
+ }
49058
+ }
49059
+ imageFrame.pixelData = new Uint8Array(outFrame);
49060
+ return imageFrame;
49061
+ }
49062
+ function decode16(imageFrame, pixelData) {
49063
+ const frameData = pixelData;
49064
+ const frameSize = imageFrame.rows * imageFrame.columns;
49065
+ const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel * 2);
49066
+ const header = new DataView(frameData.buffer, frameData.byteOffset);
49067
+ const data = new Int8Array(frameData.buffer, frameData.byteOffset);
49068
+ const out = new Int8Array(outFrame);
49069
+ const numSegments = header.getInt32(0, true);
49070
+ for (let s = 0; s < numSegments; ++s) {
49071
+ let outIndex = 0;
49072
+ const highByte = s === 0 ? 1 : 0;
49073
+ let inIndex = header.getInt32((s + 1) * 4, true);
49074
+ let maxIndex = header.getInt32((s + 2) * 4, true);
49075
+ if (maxIndex === 0) {
49076
+ maxIndex = frameData.length;
49077
+ }
49078
+ while (inIndex < maxIndex) {
49079
+ const n = data[inIndex++];
49080
+ if (n >= 0 && n <= 127) {
49081
+ for (let i = 0; i < n + 1 && outIndex < frameSize; ++i) {
49082
+ out[outIndex * 2 + highByte] = data[inIndex++];
49083
+ outIndex++;
49084
+ }
49085
+ }
49086
+ else if (n <= -1 && n >= -127) {
49087
+ const value = data[inIndex++];
49088
+ for (let j = 0; j < -n + 1 && outIndex < frameSize; ++j) {
49089
+ out[outIndex * 2 + highByte] = value;
49090
+ outIndex++;
49091
+ }
49092
+ }
49093
+ }
49094
+ }
49095
+ if (imageFrame.pixelRepresentation === 0) {
49096
+ imageFrame.pixelData = new Uint16Array(outFrame);
49097
+ }
49098
+ else {
49099
+ imageFrame.pixelData = new Int16Array(outFrame);
49100
+ }
49101
+ return imageFrame;
49102
+ }
49103
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (decodeRLE);
49104
+
49105
+
48869
49106
  /***/ }),
48870
49107
 
48871
49108
  /***/ 52842:
@@ -114453,8 +114690,8 @@ function _sortStringDates(s1, s2, sortModifier) {
114453
114690
 
114454
114691
  // EXTERNAL MODULE: ../../../node_modules/react-dropzone/dist/es/index.js + 4 modules
114455
114692
  var dist_es = __webpack_require__(85252);
114456
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/index.js + 76 modules
114457
- var esm = __webpack_require__(79453);
114693
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/esm/index.js + 77 modules
114694
+ var esm = __webpack_require__(75524);
114458
114695
  ;// ./routes/Local/fileLoader.js
114459
114696
  class FileLoader {
114460
114697
  constructor() {
@@ -115180,11 +115417,11 @@ async function loadModule(module) {
115180
115417
  return imported.default;
115181
115418
  }
115182
115419
  if (module === "@ohif/mode-segmentation") {
115183
- const imported = await __webpack_require__.e(/* import() */ 6725).then(__webpack_require__.bind(__webpack_require__, 46725));
115420
+ const imported = await __webpack_require__.e(/* import() */ 2018).then(__webpack_require__.bind(__webpack_require__, 42018));
115184
115421
  return imported.default;
115185
115422
  }
115186
115423
  if (module === "@ohif/mode-tmtv") {
115187
- const imported = await __webpack_require__.e(/* import() */ 1807).then(__webpack_require__.bind(__webpack_require__, 41807));
115424
+ const imported = await __webpack_require__.e(/* import() */ 9927).then(__webpack_require__.bind(__webpack_require__, 69927));
115188
115425
  return imported.default;
115189
115426
  }
115190
115427
  if (module === "@ohif/mode-microscopy") {
@@ -131499,6 +131736,16 @@ class ToolbarService extends _shared_pubSubServiceInterface__WEBPACK_IMPORTED_MO
131499
131736
  };
131500
131737
  }
131501
131738
  }
131739
+
131740
+ /**
131741
+ * Retrieves an option by its ID from a button's options array.
131742
+ * @param button - The button object.
131743
+ * @param optionId - The ID of the option to retrieve.
131744
+ * @returns The option with the specified ID.
131745
+ */
131746
+ getOptionById(button, optionId) {
131747
+ return button.props.options?.find(option => option.id === optionId);
131748
+ }
131502
131749
  }
131503
131750
  _ToolbarService = ToolbarService;
131504
131751
  ToolbarService.REGISTRATION = {
@@ -135539,7 +135786,7 @@ const detectionOptions = {
135539
135786
  }
135540
135787
  });
135541
135788
  ;// ../../i18n/package.json
135542
- const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.12.0-beta.79"}');
135789
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.12.0-beta.80"}');
135543
135790
  ;// ../../i18n/src/utils.js
135544
135791
  const languagesMap = {
135545
135792
  ar: 'Arabic',
@@ -386604,7 +386851,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
386604
386851
  /******/ // This function allow to reference async chunks
386605
386852
  /******/ __webpack_require__.u = (chunkId) => {
386606
386853
  /******/ // return url for filenames based on template
386607
- /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"ca9e53b4f5669c6af047","147":"53fe889b205dd91c245b","213":"cf999dc57ee54e1a61d0","319":"f5adcbbef5767dedc45d","414":"24a6ae428cbbec6fac72","572":"d0ed88f3bfea700c211b","732":"6978ac30a1e36abf06db","810":"d472e7b39cb1da8d5c02","934":"9445c5082a67dba7e121","1459":"d8ca1f502eeb88a6e020","1604":"b8b471d4b94ff2cf56ab","1807":"4fe7031d498b59f1ed68","1919":"45c73b6e5367ff362580","1927":"081901df8d9b33633806","2007":"f58dd6d3d25dd22cfefd","2108":"e84aa8d858d8c4f2413e","2243":"12b6ee3196121df88f63","2424":"bfb5c29973df67ab4d1d","2518":"b21d8c66dc8deb8ba922","2701":"6418ae6e9e372ccae322","2974":"a90a9df917b90bc02c69","3054":"b7bb02c6cd9273c422f5","3694":"f6f1236073e2a486ddfb","4019":"6505ff57ca48af03da8a","4092":"00d575990d745230c1b2","4113":"6849f66f615847ada125","4202":"1c5271f1cacf5794aba7","4759":"c3bfca952eea20a0d6f9","5261":"6e1a017f8f1027557f5b","5349":"6bf58c3e9e9571fa8a7d","5400":"eb0f5866140b5db31518","5457":"1b6c9d9754568061510c","5485":"8e456ebcf976c9c50dc3","5674":"8c34228471ff9e53b8c3","5802":"8922caf16c088b10cdb0","6027":"5be91623f59d577abbd4","6201":"c59a4ef10b5d2126f3fe","6725":"0d2cdc2107924a76f362","6939":"41fbdef87597b5172ec6","6991":"e3e4ba73befe78136d84","7159":"a5991a5d4f0dd8f1c95f","7412":"94802a6a629f62daab88","7431":"ad1982d7c54a5931d409","7639":"4fc45f7230e0fa936753","7948":"ca4da4046481100dccca","8094":"5c44190a325ac23e3e5c","8402":"edb924cd47cd168f621c","8558":"ed93f8a5a7b3ea9acfce","9548":"6f232a0a03e60854b49e","9845":"6ee5ca8fe9f68cefd56d","9862":"e2c4c129f7907500b840"}[chunkId] + ".js";
386854
+ /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"9e0a56a0cc52c4656d85","147":"9dac0500e2fa57626fdb","213":"0d4bbf28ab97c107cdd5","319":"f5adcbbef5767dedc45d","414":"401bcf7a053bec6d5b32","572":"19444130c84583d811bd","732":"6978ac30a1e36abf06db","810":"d5ba529e18a59343a305","934":"939f1fec0da4d0d82572","1459":"68ad9f4d048db1ded95e","1604":"43520d5718d17febb2cf","1919":"27d4d453ec440181e449","1927":"da6db325e08bacb0bca0","2007":"f58dd6d3d25dd22cfefd","2018":"48b73891bb66796a3b2d","2108":"e84aa8d858d8c4f2413e","2243":"873b4152dd2f550e76c6","2424":"d8e65c4cd46695af1843","2518":"ac5afa27c4799530d767","2701":"6418ae6e9e372ccae322","2974":"a90a9df917b90bc02c69","3054":"b7bb02c6cd9273c422f5","3694":"ea0325cee6d2a4be77d7","4019":"8172183f816ea5500dd5","4092":"9ab4766b293d4e447551","4113":"bebb8ac4abb95780b383","4202":"1c5271f1cacf5794aba7","4759":"c3bfca952eea20a0d6f9","5261":"6e1a017f8f1027557f5b","5349":"6bf58c3e9e9571fa8a7d","5400":"3ebba479fc068cd8c700","5457":"f137a9e71ccf98addfbf","5485":"08a4230790c12a80eb29","5674":"8c34228471ff9e53b8c3","5802":"8922caf16c088b10cdb0","6027":"2a306549492ad8e7c2cd","6201":"d06a18bf366ae85c52b2","6939":"41fbdef87597b5172ec6","6991":"1a945d91824788fde106","7159":"a5991a5d4f0dd8f1c95f","7412":"dd19b713fc5158ef34c1","7431":"be686be30c718b6f0165","7639":"75968faa6648c318a4db","7948":"2c6514eb65957b44b127","8094":"5c44190a325ac23e3e5c","8402":"edb924cd47cd168f621c","8558":"226b7ea0dbfc9168e743","9548":"ee365804b810d67b2766","9845":"6ee5ca8fe9f68cefd56d","9862":"cb4de0892ea411293655","9927":"174996e11c1432053378"}[chunkId] + ".js";
386608
386855
  /******/ };
386609
386856
  /******/ })();
386610
386857
  /******/
@@ -386774,7 +387021,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
386774
387021
  /******/ 572: 0,
386775
387022
  /******/ 573: 0,
386776
387023
  /******/ 9742: 0,
386777
- /******/ 3353: 0
387024
+ /******/ 5858: 0
386778
387025
  /******/ };
386779
387026
  /******/
386780
387027
  /******/ __webpack_require__.f.miniCss = (chunkId, promises) => {
@@ -386824,7 +387071,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
386824
387071
  /******/ 572: 0,
386825
387072
  /******/ 573: 0,
386826
387073
  /******/ 9742: 0,
386827
- /******/ 3353: 0
387074
+ /******/ 5858: 0
386828
387075
  /******/ };
386829
387076
  /******/
386830
387077
  /******/ __webpack_require__.f.j = (chunkId, promises) => {