@ohif/app 3.8.0-beta.42 → 3.8.0-beta.43
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/{170.bundle.8d5c47085b07b1b98f41.js → 170.bundle.5632b1b6fab9906388e2.js} +9 -9
- package/dist/{181.bundle.d2fe517852935b82368b.js → 181.bundle.a2d7b26d73467d2ce8cd.js} +6 -6
- package/dist/{185.bundle.dee4d4f6103bce7ff6e7.js → 185.bundle.6311718cd457884f813a.js} +4 -4
- package/dist/{19.bundle.ad4a68419e733f9f22cd.js → 19.bundle.2fa92040006123dc9251.js} +4 -4
- package/dist/{199.bundle.741d18af781924e8c385.js → 199.bundle.8a5e36ae7e18dd2de580.js} +4 -4
- package/dist/202.bundle.c7c412d83b745f890834.js +18169 -0
- package/dist/{250.bundle.ba94ff371388e395cd05.js → 250.bundle.96a47756a15efbdf78af.js} +4 -4
- package/dist/{359.bundle.7ef31482741597c798e4.js → 359.bundle.bb663da51cbd0b8d1eff.js} +2 -2
- package/dist/{410.bundle.6cf43e5bb1fccdc3c3aa.js → 410.bundle.bd04d9a698385a43f682.js} +2 -2
- package/dist/{451.bundle.68a551a7d1746cf904cb.js → 451.bundle.9b9abf9ca8967a46fa93.js} +2 -9
- package/dist/{456.bundle.618aab00b3812ce7e3bd.js → 456.bundle.00c2bac49511bea54b5c.js} +10 -45
- package/dist/{466.bundle.26b834134da98f20c7ca.js → 466.bundle.8cdd9c3bcc81fe4cb8c6.js} +39 -11
- package/dist/{471.bundle.5809b10f75c8fc2f7167.js → 471.bundle.a646b0616732bbc945b4.js} +4 -2
- package/dist/{483.bundle.d982f0421bcb44ea2fd3.js → 483.bundle.7a8402a110f9f42fdc94.js} +6 -6
- package/dist/{613.bundle.9c5c87fd6768ceef5caf.js → 613.bundle.a54c8cdf616a799bcf4b.js} +47 -23
- package/dist/{738.bundle.3a2ff8e9bea835a0fe81.js → 738.bundle.f5179d74c16cb154c759.js} +6 -6
- package/dist/{822.bundle.f5ae3f366ce742fb060a.js → 822.bundle.2092dbfefbc1b5834965.js} +3 -3
- package/dist/{485.bundle.5b6c33cc43d8f3470642.js → 831.bundle.127a3064e8844d6d2c82.js} +1 -279
- package/dist/{886.bundle.4496fc7fb83b8c897d20.js → 886.bundle.69f07c567a3dc69b060f.js} +1 -1
- package/dist/{95.bundle.830304446bffa705883c.js → 95.bundle.644c927d99988ff60b36.js} +26 -259
- package/dist/{965.bundle.f8680a6f67d5473d1184.js → 965.bundle.254019aafbf9c9d3d800.js} +2 -2
- package/dist/{app.bundle.de0a06c3967d6df956ee.js → app.bundle.ab96a3986fbf883f78ea.js} +49893 -49656
- package/dist/app.bundle.css +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- package/dist/202.bundle.0ca2f2479d2578f539b0.js +0 -6353
- /package/dist/{12.bundle.0bf0dc568701c021f413.js → 12.bundle.e97b1190673797a03d1a.js} +0 -0
- /package/dist/{281.bundle.24c3be00f70a1126b30c.js → 281.bundle.5eddac45a51ce75f55c4.js} +0 -0
- /package/dist/{506.bundle.edb0fe41253c046a8ac3.js → 506.bundle.4bcf51e2946dab485d2b.js} +0 -0
- /package/dist/{687.bundle.7f262cad0fe884785951.js → 687.bundle.e798aa93251dc9bc87ef.js} +0 -0
- /package/dist/{814.bundle.36a17ce54e2779f5c0b9.js → 814.bundle.198efdffbe64f60e38ef.js} +0 -0
|
@@ -12,8 +12,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
12
12
|
|
|
13
13
|
// UNUSED EXPORTS: Enums, StreamingDynamicImageVolume, StreamingImageVolume, cornerstoneStreamingDynamicImageVolumeLoader, helpers
|
|
14
14
|
|
|
15
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
16
|
-
var esm = __webpack_require__(
|
|
15
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 375 modules
|
|
16
|
+
var esm = __webpack_require__(56846);
|
|
17
17
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 10 modules
|
|
18
18
|
var gl_matrix_esm = __webpack_require__(45451);
|
|
19
19
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/helpers/getVolumeInfo.js
|
|
@@ -185,7 +185,7 @@ function scaleArray(array, scalingParameters) {
|
|
|
185
185
|
|
|
186
186
|
|
|
187
187
|
const requestTypeDefault = esm.Enums.RequestType.Prefetch;
|
|
188
|
-
const {
|
|
188
|
+
const { ProgressiveIterator } = esm.utilities;
|
|
189
189
|
const { ImageQualityStatus } = esm.Enums;
|
|
190
190
|
const { imageRetrieveMetadataProvider } = esm.utilities;
|
|
191
191
|
class BaseStreamingImageVolume_BaseStreamingImageVolume extends esm.ImageVolume {
|
|
@@ -194,7 +194,6 @@ class BaseStreamingImageVolume_BaseStreamingImageVolume extends esm.ImageVolume
|
|
|
194
194
|
this.framesLoaded = 0;
|
|
195
195
|
this.framesProcessed = 0;
|
|
196
196
|
this.framesUpdated = 0;
|
|
197
|
-
this.cornerstoneImageMetaData = null;
|
|
198
197
|
this.autoRenderOnLoad = true;
|
|
199
198
|
this.cachedFrames = [];
|
|
200
199
|
this.reRenderTarget = 0;
|
|
@@ -243,73 +242,7 @@ class BaseStreamingImageVolume_BaseStreamingImageVolume extends esm.ImageVolume
|
|
|
243
242
|
}
|
|
244
243
|
this._prefetchImageIds();
|
|
245
244
|
};
|
|
246
|
-
this.imageIds = streamingProperties.imageIds;
|
|
247
245
|
this.loadStatus = streamingProperties.loadStatus;
|
|
248
|
-
this.numFrames = this._getNumFrames();
|
|
249
|
-
this._createCornerstoneImageMetaData();
|
|
250
|
-
}
|
|
251
|
-
_getNumFrames() {
|
|
252
|
-
const { imageIds, scalarData } = this;
|
|
253
|
-
const scalarDataCount = this.isDynamicVolume() ? scalarData.length : 1;
|
|
254
|
-
return imageIds.length / scalarDataCount;
|
|
255
|
-
}
|
|
256
|
-
_getScalarDataLength() {
|
|
257
|
-
const { scalarData } = this;
|
|
258
|
-
return this.isDynamicVolume()
|
|
259
|
-
? scalarData[0].length
|
|
260
|
-
: scalarData.length;
|
|
261
|
-
}
|
|
262
|
-
_createCornerstoneImageMetaData() {
|
|
263
|
-
const { numFrames } = this;
|
|
264
|
-
if (numFrames === 0) {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
const bytesPerImage = this.sizeInBytes / numFrames;
|
|
268
|
-
const scalarDataLength = this._getScalarDataLength();
|
|
269
|
-
const numComponents = scalarDataLength / this.numVoxels;
|
|
270
|
-
const pixelsPerImage = this.dimensions[0] * this.dimensions[1] * numComponents;
|
|
271
|
-
const { PhotometricInterpretation, voiLut, VOILUTFunction } = this.metadata;
|
|
272
|
-
let windowCenter = [];
|
|
273
|
-
let windowWidth = [];
|
|
274
|
-
if (voiLut && voiLut.length) {
|
|
275
|
-
windowCenter = voiLut.map((voi) => {
|
|
276
|
-
return voi.windowCenter;
|
|
277
|
-
});
|
|
278
|
-
windowWidth = voiLut.map((voi) => {
|
|
279
|
-
return voi.windowWidth;
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
|
-
const color = numComponents > 1 ? true : false;
|
|
283
|
-
this.cornerstoneImageMetaData = {
|
|
284
|
-
bytesPerImage,
|
|
285
|
-
numComponents,
|
|
286
|
-
pixelsPerImage,
|
|
287
|
-
windowCenter,
|
|
288
|
-
windowWidth,
|
|
289
|
-
color,
|
|
290
|
-
rgba: false,
|
|
291
|
-
spacing: this.spacing,
|
|
292
|
-
dimensions: this.dimensions,
|
|
293
|
-
photometricInterpretation: PhotometricInterpretation,
|
|
294
|
-
voiLUTFunction: VOILUTFunction,
|
|
295
|
-
invert: PhotometricInterpretation === 'MONOCHROME1',
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
_imageIdIndexToFrameIndex(imageIdIndex) {
|
|
299
|
-
return imageIdIndex % this.numFrames;
|
|
300
|
-
}
|
|
301
|
-
getScalarDataArrays() {
|
|
302
|
-
return this.isDynamicVolume()
|
|
303
|
-
? this.scalarData
|
|
304
|
-
: [this.scalarData];
|
|
305
|
-
}
|
|
306
|
-
_getScalarDataByImageIdIndex(imageIdIndex) {
|
|
307
|
-
if (imageIdIndex < 0 || imageIdIndex >= this.imageIds.length) {
|
|
308
|
-
throw new Error('imageIdIndex out of range');
|
|
309
|
-
}
|
|
310
|
-
const scalarDataArrays = this.getScalarDataArrays();
|
|
311
|
-
const scalarDataIndex = Math.floor(imageIdIndex / this.numFrames);
|
|
312
|
-
return scalarDataArrays[scalarDataIndex];
|
|
313
246
|
}
|
|
314
247
|
invalidateVolume(immediate) {
|
|
315
248
|
const { imageData, vtkOpenGLTexture } = this;
|
|
@@ -346,7 +279,7 @@ class BaseStreamingImageVolume_BaseStreamingImageVolume extends esm.ImageVolume
|
|
|
346
279
|
}
|
|
347
280
|
}
|
|
348
281
|
updateTextureAndTriggerEvents(imageIdIndex, imageId, imageQualityStatus = ImageQualityStatus.FULL_RESOLUTION) {
|
|
349
|
-
const frameIndex = this.
|
|
282
|
+
const frameIndex = this.imageIdIndexToFrameIndex(imageIdIndex);
|
|
350
283
|
const { cachedFrames, numFrames, totalNumFrames } = this;
|
|
351
284
|
const { FrameOfReferenceUID } = this.metadata;
|
|
352
285
|
const currentStatus = cachedFrames[frameIndex];
|
|
@@ -393,11 +326,11 @@ class BaseStreamingImageVolume_BaseStreamingImageVolume extends esm.ImageVolume
|
|
|
393
326
|
successCallback(imageId, image) {
|
|
394
327
|
const imageIdIndex = this.getImageIdIndex(imageId);
|
|
395
328
|
const options = this.getLoaderImageOptions(imageId);
|
|
396
|
-
const scalarData = this.
|
|
329
|
+
const scalarData = this.getScalarDataByImageIdIndex(imageIdIndex);
|
|
397
330
|
handleArrayBufferLoad(scalarData, image, options);
|
|
398
331
|
const { scalingParameters } = image.preScale || {};
|
|
399
332
|
const { imageQualityStatus } = image;
|
|
400
|
-
const frameIndex = this.
|
|
333
|
+
const frameIndex = this.imageIdIndexToFrameIndex(imageIdIndex);
|
|
401
334
|
const cachedImage = esm.cache.getCachedImageBasedOnImageURI(imageId);
|
|
402
335
|
const cachedVolume = esm.cache.getVolumeContainingImageId(imageId);
|
|
403
336
|
if (this.loadStatus.cancelled) {
|
|
@@ -408,6 +341,14 @@ class BaseStreamingImageVolume_BaseStreamingImageVolume extends esm.ImageVolume
|
|
|
408
341
|
return this.updateTextureAndTriggerEvents(imageIdIndex, imageId, imageQualityStatus);
|
|
409
342
|
}
|
|
410
343
|
const isFromImageCache = !!cachedImage;
|
|
344
|
+
if (isFromImageCache && options.targetBuffer) {
|
|
345
|
+
this.imageCacheOffsetMap.set(imageId, {
|
|
346
|
+
imageIdIndex,
|
|
347
|
+
frameIndex,
|
|
348
|
+
offset: options.targetBuffer?.offset || 0,
|
|
349
|
+
length: options.targetBuffer?.length,
|
|
350
|
+
});
|
|
351
|
+
}
|
|
411
352
|
const cachedImageOrVolume = cachedImage || cachedVolume.volume;
|
|
412
353
|
this.handleImageComingFromCache(cachedImageOrVolume, isFromImageCache, scalingParameters, scalarData, frameIndex, scalarData.buffer, imageIdIndex, imageId);
|
|
413
354
|
}
|
|
@@ -448,7 +389,7 @@ class BaseStreamingImageVolume_BaseStreamingImageVolume extends esm.ImageVolume
|
|
|
448
389
|
const imagePlaneModule = esm.metaData.get('imagePlaneModule', imageId) || {};
|
|
449
390
|
const { rows, columns } = imagePlaneModule;
|
|
450
391
|
const imageIdIndex = this.getImageIdIndex(imageId);
|
|
451
|
-
const scalarData = this.
|
|
392
|
+
const scalarData = this.getScalarDataByImageIdIndex(imageIdIndex);
|
|
452
393
|
if (!scalarData) {
|
|
453
394
|
return null;
|
|
454
395
|
}
|
|
@@ -471,7 +412,7 @@ class BaseStreamingImageVolume_BaseStreamingImageVolume extends esm.ImageVolume
|
|
|
471
412
|
const isSlopeAndInterceptNumbers = typeof scalingParameters.rescaleSlope === 'number' &&
|
|
472
413
|
typeof scalingParameters.rescaleIntercept === 'number';
|
|
473
414
|
this.isPreScaled = isSlopeAndInterceptNumbers;
|
|
474
|
-
const frameIndex = this.
|
|
415
|
+
const frameIndex = this.imageIdIndexToFrameIndex(imageIdIndex);
|
|
475
416
|
return {
|
|
476
417
|
targetBuffer: {
|
|
477
418
|
arrayBuffer: arrayBuffer instanceof ArrayBuffer ? undefined : arrayBuffer,
|
|
@@ -642,101 +583,6 @@ class BaseStreamingImageVolume_BaseStreamingImageVolume extends esm.ImageVolume
|
|
|
642
583
|
}
|
|
643
584
|
this.scaling = { PT: petScaling };
|
|
644
585
|
}
|
|
645
|
-
_removeFromCache() {
|
|
646
|
-
esm.cache.removeVolumeLoadObject(this.volumeId);
|
|
647
|
-
}
|
|
648
|
-
getCornerstoneImage(imageId, imageIdIndex) {
|
|
649
|
-
const { imageIds } = this;
|
|
650
|
-
const frameIndex = this._imageIdIndexToFrameIndex(imageIdIndex);
|
|
651
|
-
const { bytesPerImage, pixelsPerImage, windowCenter, windowWidth, numComponents, color, dimensions, spacing, invert, voiLUTFunction, photometricInterpretation, } = this.cornerstoneImageMetaData;
|
|
652
|
-
const scalarData = this._getScalarDataByImageIdIndex(imageIdIndex);
|
|
653
|
-
const volumeBuffer = scalarData.buffer;
|
|
654
|
-
const TypedArray = scalarData.constructor;
|
|
655
|
-
const bytePerPixel = bytesPerImage / pixelsPerImage;
|
|
656
|
-
let byteOffset = bytesPerImage * frameIndex;
|
|
657
|
-
if (scalarData.BYTES_PER_ELEMENT !== bytePerPixel) {
|
|
658
|
-
byteOffset *= scalarData.BYTES_PER_ELEMENT / bytePerPixel;
|
|
659
|
-
}
|
|
660
|
-
const imageScalarData = new TypedArray(pixelsPerImage);
|
|
661
|
-
const volumeBufferView = new TypedArray(volumeBuffer, byteOffset, pixelsPerImage);
|
|
662
|
-
imageScalarData.set(volumeBufferView);
|
|
663
|
-
const volumeImageId = imageIds[imageIdIndex];
|
|
664
|
-
const modalityLutModule = esm.metaData.get('modalityLutModule', volumeImageId) || {};
|
|
665
|
-
const minMax = getMinMax(imageScalarData);
|
|
666
|
-
const intercept = modalityLutModule.rescaleIntercept
|
|
667
|
-
? modalityLutModule.rescaleIntercept
|
|
668
|
-
: 0;
|
|
669
|
-
return {
|
|
670
|
-
imageId,
|
|
671
|
-
intercept,
|
|
672
|
-
windowCenter,
|
|
673
|
-
windowWidth,
|
|
674
|
-
voiLUTFunction,
|
|
675
|
-
color,
|
|
676
|
-
rgba: false,
|
|
677
|
-
numComps: numComponents,
|
|
678
|
-
rows: dimensions[1],
|
|
679
|
-
columns: dimensions[0],
|
|
680
|
-
sizeInBytes: imageScalarData.byteLength,
|
|
681
|
-
getPixelData: () => imageScalarData,
|
|
682
|
-
minPixelValue: minMax.min,
|
|
683
|
-
maxPixelValue: minMax.max,
|
|
684
|
-
slope: modalityLutModule.rescaleSlope
|
|
685
|
-
? modalityLutModule.rescaleSlope
|
|
686
|
-
: 1,
|
|
687
|
-
getCanvas: undefined,
|
|
688
|
-
height: dimensions[0],
|
|
689
|
-
width: dimensions[1],
|
|
690
|
-
columnPixelSpacing: spacing[0],
|
|
691
|
-
rowPixelSpacing: spacing[1],
|
|
692
|
-
invert,
|
|
693
|
-
photometricInterpretation,
|
|
694
|
-
};
|
|
695
|
-
}
|
|
696
|
-
convertToCornerstoneImage(imageId, imageIdIndex) {
|
|
697
|
-
return this.getCornerstoneImageLoadObject(imageId, imageIdIndex);
|
|
698
|
-
}
|
|
699
|
-
getCornerstoneImageLoadObject(imageId, imageIdIndex) {
|
|
700
|
-
const image = this.getCornerstoneImage(imageId, imageIdIndex);
|
|
701
|
-
const imageLoadObject = {
|
|
702
|
-
promise: Promise.resolve(image),
|
|
703
|
-
};
|
|
704
|
-
return imageLoadObject;
|
|
705
|
-
}
|
|
706
|
-
getCornerstoneImages() {
|
|
707
|
-
const { imageIds } = this;
|
|
708
|
-
return imageIds.map((imageId, imageIdIndex) => {
|
|
709
|
-
return this.getCornerstoneImage(imageId, imageIdIndex);
|
|
710
|
-
});
|
|
711
|
-
}
|
|
712
|
-
_convertToImages() {
|
|
713
|
-
const byteLength = this.sizeInBytes;
|
|
714
|
-
const numImages = this.imageIds.length;
|
|
715
|
-
const { bytesPerImage } = this.cornerstoneImageMetaData;
|
|
716
|
-
let bytesRemaining = esm.cache.decacheIfNecessaryUntilBytesAvailable(byteLength, this.imageIds);
|
|
717
|
-
for (let imageIdIndex = 0; imageIdIndex < numImages; imageIdIndex++) {
|
|
718
|
-
const imageId = this.imageIds[imageIdIndex];
|
|
719
|
-
bytesRemaining = bytesRemaining - bytesPerImage;
|
|
720
|
-
const imageLoadObject = this.convertToCornerstoneImage(imageId, imageIdIndex);
|
|
721
|
-
if (!esm.cache.getImageLoadObject(imageId)) {
|
|
722
|
-
esm.cache.putImageLoadObject(imageId, imageLoadObject).catch((err) => {
|
|
723
|
-
console.error(err);
|
|
724
|
-
});
|
|
725
|
-
}
|
|
726
|
-
if (bytesRemaining <= bytesPerImage) {
|
|
727
|
-
break;
|
|
728
|
-
}
|
|
729
|
-
}
|
|
730
|
-
this._removeFromCache();
|
|
731
|
-
}
|
|
732
|
-
decache(completelyRemove = false) {
|
|
733
|
-
if (completelyRemove) {
|
|
734
|
-
this._removeFromCache();
|
|
735
|
-
}
|
|
736
|
-
else {
|
|
737
|
-
this._convertToImages();
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
586
|
}
|
|
741
587
|
function getScalarDataType(scalarData, numFrames) {
|
|
742
588
|
let type, byteSize;
|
|
@@ -813,6 +659,9 @@ function handleArrayBufferLoad(scalarData, image, options) {
|
|
|
813
659
|
|
|
814
660
|
class StreamingImageVolume extends BaseStreamingImageVolume_BaseStreamingImageVolume {
|
|
815
661
|
constructor(imageVolumeProperties, streamingProperties) {
|
|
662
|
+
if (!imageVolumeProperties.imageIds) {
|
|
663
|
+
imageVolumeProperties.imageIds = streamingProperties.imageIds;
|
|
664
|
+
}
|
|
816
665
|
super(imageVolumeProperties, streamingProperties);
|
|
817
666
|
this.getImageIdsToLoad = () => {
|
|
818
667
|
const { imageIds } = this;
|
|
@@ -832,14 +681,10 @@ class StreamingImageVolume extends BaseStreamingImageVolume_BaseStreamingImageVo
|
|
|
832
681
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/cornerstoneStreamingImageVolumeLoader.js
|
|
833
682
|
|
|
834
683
|
|
|
835
|
-
|
|
836
|
-
const { createUint8SharedArray: cornerstoneStreamingImageVolumeLoader_createUint8SharedArray, createFloat32SharedArray: cornerstoneStreamingImageVolumeLoader_createFloat32SharedArray, createUint16SharedArray, createInt16SharedArray, } = esm.utilities;
|
|
837
684
|
function cornerstoneStreamingImageVolumeLoader(volumeId, options) {
|
|
838
685
|
if (!options || !options.imageIds || !options.imageIds.length) {
|
|
839
686
|
throw new Error('ImageIds must be provided to create a streaming image volume');
|
|
840
687
|
}
|
|
841
|
-
const { useNorm16Texture, preferSizeOverAccuracy } = (0,esm.getConfiguration)().rendering;
|
|
842
|
-
const use16BitDataType = useNorm16Texture || preferSizeOverAccuracy;
|
|
843
688
|
async function getStreamingImageVolume() {
|
|
844
689
|
if (options.imageIds[0].split(':')[0] === 'wadouri') {
|
|
845
690
|
const [middleImageIndex, lastImageIndex] = [
|
|
@@ -863,99 +708,19 @@ function cornerstoneStreamingImageVolumeLoader(volumeId, options) {
|
|
|
863
708
|
});
|
|
864
709
|
})).catch(console.error);
|
|
865
710
|
}
|
|
866
|
-
const { imageIds,
|
|
867
|
-
const volumeMetadata = esm.utilities.makeVolumeMetadata(imageIds);
|
|
868
|
-
const imageIdIndex = Math.floor(imageIds.length / 2);
|
|
869
|
-
const imageId = imageIds[imageIdIndex];
|
|
870
|
-
const scalingParameters = esm.utilities.getScalingParameters(imageId);
|
|
871
|
-
const hasNegativeRescale = scalingParameters.rescaleIntercept < 0 ||
|
|
872
|
-
scalingParameters.rescaleSlope < 0;
|
|
873
|
-
const hasFloatRescale = scalingParameters.rescaleIntercept % 1 !== 0 ||
|
|
874
|
-
scalingParameters.rescaleSlope % 1 !== 0;
|
|
875
|
-
const { BitsAllocated, PixelRepresentation, PhotometricInterpretation, ImageOrientationPatient, PixelSpacing, Columns, Rows, } = volumeMetadata;
|
|
876
|
-
const rowCosineVec = gl_matrix_esm/* vec3.fromValues */.R3.fromValues(ImageOrientationPatient[0], ImageOrientationPatient[1], ImageOrientationPatient[2]);
|
|
877
|
-
const colCosineVec = gl_matrix_esm/* vec3.fromValues */.R3.fromValues(ImageOrientationPatient[3], ImageOrientationPatient[4], ImageOrientationPatient[5]);
|
|
878
|
-
const scanAxisNormal = gl_matrix_esm/* vec3.create */.R3.create();
|
|
879
|
-
gl_matrix_esm/* vec3.cross */.R3.cross(scanAxisNormal, rowCosineVec, colCosineVec);
|
|
880
|
-
const { zSpacing, origin, sortedImageIds } = esm.utilities.sortImageIdsAndGetSpacing(imageIds, scanAxisNormal);
|
|
881
|
-
const numFrames = imageIds.length;
|
|
882
|
-
const spacing = [PixelSpacing[1], PixelSpacing[0], zSpacing];
|
|
883
|
-
const dimensions = [Columns, Rows, numFrames];
|
|
884
|
-
const direction = [
|
|
885
|
-
...rowCosineVec,
|
|
886
|
-
...colCosineVec,
|
|
887
|
-
...scanAxisNormal,
|
|
888
|
-
];
|
|
889
|
-
const signed = PixelRepresentation === 1;
|
|
890
|
-
const numComponents = PhotometricInterpretation === 'RGB' ? 3 : 1;
|
|
891
|
-
const useSharedArrayBuffer = (0,esm.getShouldUseSharedArrayBuffer)();
|
|
892
|
-
const length = dimensions[0] * dimensions[1] * dimensions[2];
|
|
893
|
-
const handleCache = (sizeInBytes) => {
|
|
894
|
-
if (!esm.cache.isCacheable(sizeInBytes)) {
|
|
895
|
-
throw new Error(esm.Enums.Events.CACHE_SIZE_EXCEEDED);
|
|
896
|
-
}
|
|
897
|
-
esm.cache.decacheIfNecessaryUntilBytesAvailable(sizeInBytes);
|
|
898
|
-
};
|
|
899
|
-
let scalarData, sizeInBytes;
|
|
900
|
-
switch (BitsAllocated) {
|
|
901
|
-
case 8:
|
|
902
|
-
if (signed) {
|
|
903
|
-
throw new Error('8 Bit signed images are not yet supported by this plugin.');
|
|
904
|
-
}
|
|
905
|
-
sizeInBytes = length * numComponents;
|
|
906
|
-
handleCache(sizeInBytes);
|
|
907
|
-
scalarData = useSharedArrayBuffer
|
|
908
|
-
? cornerstoneStreamingImageVolumeLoader_createUint8SharedArray(length * numComponents)
|
|
909
|
-
: new Uint8Array(length * numComponents);
|
|
910
|
-
break;
|
|
911
|
-
case 16:
|
|
912
|
-
if (!use16BitDataType || hasFloatRescale) {
|
|
913
|
-
sizeInBytes = length * 4;
|
|
914
|
-
scalarData = useSharedArrayBuffer
|
|
915
|
-
? cornerstoneStreamingImageVolumeLoader_createFloat32SharedArray(length)
|
|
916
|
-
: new Float32Array(length);
|
|
917
|
-
break;
|
|
918
|
-
}
|
|
919
|
-
sizeInBytes = length * 2;
|
|
920
|
-
if (signed || hasNegativeRescale) {
|
|
921
|
-
handleCache(sizeInBytes);
|
|
922
|
-
scalarData = useSharedArrayBuffer
|
|
923
|
-
? createInt16SharedArray(length)
|
|
924
|
-
: new Int16Array(length);
|
|
925
|
-
break;
|
|
926
|
-
}
|
|
927
|
-
if (!signed && !hasNegativeRescale) {
|
|
928
|
-
handleCache(sizeInBytes);
|
|
929
|
-
scalarData = useSharedArrayBuffer
|
|
930
|
-
? createUint16SharedArray(length)
|
|
931
|
-
: new Uint16Array(length);
|
|
932
|
-
break;
|
|
933
|
-
}
|
|
934
|
-
sizeInBytes = length * 4;
|
|
935
|
-
handleCache(sizeInBytes);
|
|
936
|
-
scalarData = useSharedArrayBuffer
|
|
937
|
-
? cornerstoneStreamingImageVolumeLoader_createFloat32SharedArray(length)
|
|
938
|
-
: new Float32Array(length);
|
|
939
|
-
break;
|
|
940
|
-
case 24:
|
|
941
|
-
sizeInBytes = length * numComponents;
|
|
942
|
-
handleCache(sizeInBytes);
|
|
943
|
-
scalarData = useSharedArrayBuffer
|
|
944
|
-
? cornerstoneStreamingImageVolumeLoader_createUint8SharedArray(length * numComponents)
|
|
945
|
-
: new Uint8Array(length * numComponents);
|
|
946
|
-
break;
|
|
947
|
-
}
|
|
711
|
+
const { dimensions, spacing, origin, scalarData, direction, sizeInBytes, metadata, imageIds, } = esm.utilities.generateVolumePropsFromImageIds(options.imageIds, volumeId);
|
|
948
712
|
const streamingImageVolume = new StreamingImageVolume({
|
|
949
713
|
volumeId,
|
|
950
|
-
metadata
|
|
714
|
+
metadata,
|
|
951
715
|
dimensions,
|
|
952
716
|
spacing,
|
|
953
717
|
origin,
|
|
954
718
|
direction,
|
|
955
719
|
scalarData,
|
|
956
720
|
sizeInBytes,
|
|
721
|
+
imageIds,
|
|
957
722
|
}, {
|
|
958
|
-
imageIds
|
|
723
|
+
imageIds,
|
|
959
724
|
loadStatus: {
|
|
960
725
|
loaded: false,
|
|
961
726
|
loading: false,
|
|
@@ -1121,6 +886,7 @@ function cornerstoneStreamingDynamicImageVolumeLoader(volumeId, options) {
|
|
|
1121
886
|
sortedImageIdsArrays.push(volumeInfo.sortedImageIds);
|
|
1122
887
|
scalarDataArrays.push(volumeInfo.scalarData);
|
|
1123
888
|
});
|
|
889
|
+
const sortedImageIds = sortedImageIdsArrays.flat();
|
|
1124
890
|
let streamingImageVolume = new StreamingDynamicImageVolume({
|
|
1125
891
|
volumeId,
|
|
1126
892
|
metadata: volumeMetadata,
|
|
@@ -1130,8 +896,9 @@ function cornerstoneStreamingDynamicImageVolumeLoader(volumeId, options) {
|
|
|
1130
896
|
direction,
|
|
1131
897
|
scalarData: scalarDataArrays,
|
|
1132
898
|
sizeInBytes,
|
|
899
|
+
imageIds: sortedImageIds,
|
|
1133
900
|
}, {
|
|
1134
|
-
imageIds:
|
|
901
|
+
imageIds: sortedImageIds,
|
|
1135
902
|
loadStatus: {
|
|
1136
903
|
loaded: false,
|
|
1137
904
|
loading: false,
|
|
@@ -20,8 +20,8 @@ const id = package_namespaceObject.u2;
|
|
|
20
20
|
|
|
21
21
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
22
22
|
var react = __webpack_require__(43001);
|
|
23
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
24
|
-
var src = __webpack_require__(
|
|
23
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 487 modules
|
|
24
|
+
var src = __webpack_require__(89556);
|
|
25
25
|
// EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
|
|
26
26
|
var core_src = __webpack_require__(71771);
|
|
27
27
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|