@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.
- package/dist/{3190.bundle.cd955568fe4d80ab2e4b.js → 1037.bundle.7502b1bb0e5eee58a1d8.js} +51 -15
- package/dist/{1927.bundle.081901df8d9b33633806.js → 1927.bundle.da6db325e08bacb0bca0.js} +3 -3
- package/dist/{6725.bundle.0d2cdc2107924a76f362.js → 2018.bundle.48b73891bb66796a3b2d.js} +47 -14
- package/dist/{306.bundle.a2380c4b23436c127faf.js → 306.bundle.c671a09e1eacf6bcfc84.js} +1 -1
- package/dist/{3613.bundle.f5fceb4697407a89921b.js → 3613.bundle.3542f5bb1f69651bc239.js} +98 -45
- package/dist/{4019.bundle.6505ff57ca48af03da8a.js → 4019.bundle.8172183f816ea5500dd5.js} +46 -8
- package/dist/{4092.bundle.00d575990d745230c1b2.js → 4092.bundle.9ab4766b293d4e447551.js} +19 -0
- package/dist/{5400.bundle.eb0f5866140b5db31518.js → 5400.bundle.3ebba479fc068cd8c700.js} +8 -2
- package/dist/{3353.bundle.a52e42421b9407ad28ce.js → 5858.bundle.99a6b9de04c621694ffd.js} +850 -747
- package/dist/{7412.bundle.94802a6a629f62daab88.js → 7412.bundle.dd19b713fc5158ef34c1.js} +157 -139
- package/dist/{7948.bundle.ca4da4046481100dccca.js → 7948.bundle.2c6514eb65957b44b127.js} +23 -27
- package/dist/{9548.bundle.6f232a0a03e60854b49e.js → 9548.bundle.ee365804b810d67b2766.js} +2 -2
- package/dist/{1807.bundle.4fe7031d498b59f1ed68.js → 9927.bundle.174996e11c1432053378.js} +52 -21
- package/dist/{app.bundle.a16db06e6e1ae5b7b3c5.js → app.bundle.619935f4e9b60960eec1.js} +936 -689
- package/dist/{compute.bundle.f6f1236073e2a486ddfb.js → compute.bundle.ea0325cee6d2a4be77d7.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.d0ed88f3bfea700c211b.js → polySeg.bundle.19444130c84583d811bd.js} +3 -3
- package/dist/sw.js +1 -1
- package/package.json +21 -21
- /package/dist/{1459.bundle.d8ca1f502eeb88a6e020.js → 1459.bundle.68ad9f4d048db1ded95e.js} +0 -0
- /package/dist/{147.bundle.53fe889b205dd91c245b.js → 147.bundle.9dac0500e2fa57626fdb.js} +0 -0
- /package/dist/{1604.bundle.b8b471d4b94ff2cf56ab.js → 1604.bundle.43520d5718d17febb2cf.js} +0 -0
- /package/dist/{1919.bundle.45c73b6e5367ff362580.js → 1919.bundle.27d4d453ec440181e449.js} +0 -0
- /package/dist/{213.bundle.cf999dc57ee54e1a61d0.js → 213.bundle.0d4bbf28ab97c107cdd5.js} +0 -0
- /package/dist/{2243.bundle.12b6ee3196121df88f63.js → 2243.bundle.873b4152dd2f550e76c6.js} +0 -0
- /package/dist/{2424.bundle.bfb5c29973df67ab4d1d.js → 2424.bundle.d8e65c4cd46695af1843.js} +0 -0
- /package/dist/{2518.bundle.b21d8c66dc8deb8ba922.js → 2518.bundle.ac5afa27c4799530d767.js} +0 -0
- /package/dist/{4113.bundle.6849f66f615847ada125.js → 4113.bundle.bebb8ac4abb95780b383.js} +0 -0
- /package/dist/{414.bundle.24a6ae428cbbec6fac72.js → 414.bundle.401bcf7a053bec6d5b32.js} +0 -0
- /package/dist/{5457.bundle.1b6c9d9754568061510c.js → 5457.bundle.f137a9e71ccf98addfbf.js} +0 -0
- /package/dist/{5485.bundle.8e456ebcf976c9c50dc3.js → 5485.bundle.08a4230790c12a80eb29.js} +0 -0
- /package/dist/{6027.bundle.5be91623f59d577abbd4.js → 6027.bundle.2a306549492ad8e7c2cd.js} +0 -0
- /package/dist/{6201.bundle.c59a4ef10b5d2126f3fe.js → 6201.bundle.d06a18bf366ae85c52b2.js} +0 -0
- /package/dist/{6991.bundle.e3e4ba73befe78136d84.js → 6991.bundle.1a945d91824788fde106.js} +0 -0
- /package/dist/{7431.bundle.ad1982d7c54a5931d409.js → 7431.bundle.be686be30c718b6f0165.js} +0 -0
- /package/dist/{7639.bundle.4fc45f7230e0fa936753.js → 7639.bundle.75968faa6648c318a4db.js} +0 -0
- /package/dist/{810.bundle.d472e7b39cb1da8d5c02.js → 810.bundle.d5ba529e18a59343a305.js} +0 -0
- /package/dist/{85.bundle.ca9e53b4f5669c6af047.js → 85.bundle.9e0a56a0cc52c4656d85.js} +0 -0
- /package/dist/{8558.bundle.ed93f8a5a7b3ea9acfce.js → 8558.bundle.226b7ea0dbfc9168e743.js} +0 -0
- /package/dist/{934.bundle.9445c5082a67dba7e121.js → 934.bundle.939f1fec0da4d0d82572.js} +0 -0
- /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 +
|
|
4453
|
-
var
|
|
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
|
-
|
|
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
|
|
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
|
|
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 +
|
|
6777
|
-
var
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
/***/
|
|
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.
|
|
44301
|
+
const version = '4.9.0';
|
|
44226
44302
|
|
|
44227
44303
|
|
|
44228
44304
|
/***/ }),
|
|
44229
44305
|
|
|
44230
|
-
/***/
|
|
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
|
-
|
|
44299
|
-
|
|
44300
|
-
|
|
44301
|
-
|
|
44302
|
-
|
|
44303
|
-
|
|
44304
|
-
|
|
44305
|
-
|
|
44306
|
-
|
|
44307
|
-
|
|
44308
|
-
|
|
44309
|
-
|
|
44310
|
-
|
|
44311
|
-
|
|
44312
|
-
|
|
44313
|
-
|
|
44314
|
-
|
|
44315
|
-
|
|
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 =
|
|
44639
|
+
decodePromise = (0,decodeLittleEndian/* default */.A)(imageFrame, pixelData);
|
|
45193
44640
|
break;
|
|
45194
44641
|
case '1.2.840.10008.1.2.2':
|
|
45195
|
-
decodePromise =
|
|
44642
|
+
decodePromise = (0,decodeBigEndian/* default */.A)(imageFrame, pixelData);
|
|
45196
44643
|
break;
|
|
45197
44644
|
case '1.2.840.10008.1.2.1.99':
|
|
45198
|
-
decodePromise =
|
|
44645
|
+
decodePromise = (0,decodeLittleEndian/* default */.A)(imageFrame, pixelData);
|
|
45199
44646
|
break;
|
|
45200
44647
|
case '1.2.840.10008.1.2.5':
|
|
45201
|
-
decodePromise =
|
|
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 =
|
|
44660
|
+
decodePromise = (0,decodeJPEGLossless/* default */.A)(imageFrame, pixelData);
|
|
45214
44661
|
break;
|
|
45215
44662
|
case '1.2.840.10008.1.2.4.70':
|
|
45216
|
-
decodePromise =
|
|
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
|
-
/***/
|
|
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 +
|
|
48827
|
-
var decodeImageFrameWorker = __webpack_require__(
|
|
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 +
|
|
114457
|
-
var esm = __webpack_require__(
|
|
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() */
|
|
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() */
|
|
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.
|
|
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":"
|
|
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
|
-
/******/
|
|
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
|
-
/******/
|
|
387074
|
+
/******/ 5858: 0
|
|
386828
387075
|
/******/ };
|
|
386829
387076
|
/******/
|
|
386830
387077
|
/******/ __webpack_require__.f.j = (chunkId, promises) => {
|