@cornerstonejs/dicom-image-loader 2.0.0-beta.7 → 2.0.0
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/dynamic-import/{65916ef3def695744bda.wasm → 031089e563a18ada8441.wasm} +0 -0
- package/dist/dynamic-import/54.min.js +2 -0
- package/dist/dynamic-import/54.min.js.map +1 -0
- package/dist/dynamic-import/548.min.js +2 -0
- package/dist/dynamic-import/548.min.js.map +1 -0
- package/dist/dynamic-import/918.min.js +2 -0
- package/dist/dynamic-import/918.min.js.map +1 -0
- package/dist/dynamic-import/958.min.js +3 -0
- package/dist/dynamic-import/958.min.js.LICENSE.txt +5 -0
- package/dist/dynamic-import/958.min.js.map +1 -0
- package/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/esm/codecs/jpeg.d.ts +1 -0
- package/dist/esm/codecs/jpeg.js +889 -0
- package/dist/esm/codecs/jpegLossless.d.ts +7 -0
- package/dist/esm/codecs/jpegLossless.js +1218 -0
- package/dist/esm/constants/index.d.ts +2 -0
- package/dist/esm/constants/index.js +2 -0
- package/dist/esm/constants/transferSyntaxes.d.ts +46 -0
- package/dist/esm/constants/transferSyntaxes.js +46 -0
- package/dist/esm/decodeImageFrameWorker.d.ts +1 -0
- package/dist/esm/decodeImageFrameWorker.js +263 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertPALETTECOLOR.d.ts +3 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertPALETTECOLOR.js +77 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertRGBColorByPixel.d.ts +2 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertRGBColorByPixel.js +21 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertRGBColorByPlane.d.ts +2 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertRGBColorByPlane.js +28 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.d.ts +2 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.js +44 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFullByPixel.d.ts +2 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFullByPixel.js +33 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFullByPlane.d.ts +2 -0
- package/dist/esm/imageLoader/colorSpaceConverters/convertYBRFullByPlane.js +35 -0
- package/dist/esm/imageLoader/colorSpaceConverters/index.d.ts +7 -0
- package/dist/esm/imageLoader/colorSpaceConverters/index.js +7 -0
- package/dist/esm/imageLoader/convertColorSpace.d.ts +1 -0
- package/dist/esm/imageLoader/convertColorSpace.js +40 -0
- package/dist/esm/imageLoader/createImage.d.ts +5 -0
- package/dist/esm/imageLoader/createImage.js +245 -0
- package/dist/esm/imageLoader/decodeImageFrame.d.ts +3 -0
- package/dist/esm/imageLoader/decodeImageFrame.js +63 -0
- package/dist/esm/imageLoader/decodeJPEGBaseline8BitColor.d.ts +4 -0
- package/dist/esm/imageLoader/decodeJPEGBaseline8BitColor.js +64 -0
- package/dist/esm/imageLoader/getImageFrame.d.ts +3 -0
- package/dist/esm/imageLoader/getImageFrame.js +25 -0
- package/dist/esm/imageLoader/getInstanceModule.d.ts +3 -0
- package/dist/esm/imageLoader/getInstanceModule.js +40 -0
- package/dist/esm/imageLoader/getMinMax.d.ts +4 -0
- package/dist/esm/imageLoader/getMinMax.js +15 -0
- package/dist/esm/imageLoader/getScalingParameters.d.ts +6 -0
- package/dist/esm/imageLoader/getScalingParameters.js +16 -0
- package/dist/esm/imageLoader/imageIdToURI.d.ts +1 -0
- package/dist/esm/imageLoader/imageIdToURI.js +4 -0
- package/dist/esm/imageLoader/index.d.ts +91 -0
- package/dist/esm/imageLoader/index.js +34 -0
- package/dist/esm/imageLoader/init.d.ts +3 -0
- package/dist/esm/imageLoader/init.js +23 -0
- package/dist/esm/imageLoader/internal/index.d.ts +10 -0
- package/dist/esm/imageLoader/internal/index.js +10 -0
- package/dist/esm/imageLoader/internal/options.d.ts +3 -0
- package/dist/esm/imageLoader/internal/options.js +19 -0
- package/dist/esm/imageLoader/internal/rangeRequest.d.ts +9 -0
- package/dist/esm/imageLoader/internal/rangeRequest.js +121 -0
- package/dist/esm/imageLoader/internal/streamRequest.d.ts +2 -0
- package/dist/esm/imageLoader/internal/streamRequest.js +93 -0
- package/dist/esm/imageLoader/internal/xhrRequest.d.ts +3 -0
- package/dist/esm/imageLoader/internal/xhrRequest.js +101 -0
- package/dist/esm/imageLoader/isColorConversionRequired.d.ts +1 -0
- package/dist/esm/imageLoader/isColorConversionRequired.js +22 -0
- package/dist/esm/imageLoader/isJPEGBaseline8BitColor.d.ts +3 -0
- package/dist/esm/imageLoader/isJPEGBaseline8BitColor.js +9 -0
- package/dist/esm/imageLoader/isNMReconstructable.d.ts +1 -0
- package/dist/esm/imageLoader/isNMReconstructable.js +3 -0
- package/dist/esm/imageLoader/registerLoaders.d.ts +2 -0
- package/dist/esm/imageLoader/registerLoaders.js +7 -0
- package/dist/esm/imageLoader/wadors/combineFrameInstance.d.ts +12 -0
- package/dist/esm/imageLoader/wadors/combineFrameInstance.js +44 -0
- package/dist/esm/imageLoader/wadors/extractMultipart.d.ts +23 -0
- package/dist/esm/imageLoader/wadors/extractMultipart.js +73 -0
- package/dist/esm/imageLoader/wadors/findIndexOfString.d.ts +2 -0
- package/dist/esm/imageLoader/wadors/findIndexOfString.js +32 -0
- package/dist/esm/imageLoader/wadors/getImageQualityStatus.d.ts +3 -0
- package/dist/esm/imageLoader/wadors/getImageQualityStatus.js +8 -0
- package/dist/esm/imageLoader/wadors/getPixelData.d.ts +26 -0
- package/dist/esm/imageLoader/wadors/getPixelData.js +35 -0
- package/dist/esm/imageLoader/wadors/getTagValue.d.ts +1 -0
- package/dist/esm/imageLoader/wadors/getTagValue.js +9 -0
- package/dist/esm/imageLoader/wadors/index.d.ts +29 -0
- package/dist/esm/imageLoader/wadors/index.js +25 -0
- package/dist/esm/imageLoader/wadors/loadImage.d.ts +25 -0
- package/dist/esm/imageLoader/wadors/loadImage.js +124 -0
- package/dist/esm/imageLoader/wadors/loadImage_test.d.ts +1 -0
- package/dist/esm/imageLoader/wadors/loadImage_test.js +41 -0
- package/dist/esm/imageLoader/wadors/metaData/NMHelpers.d.ts +5 -0
- package/dist/esm/imageLoader/wadors/metaData/NMHelpers.js +38 -0
- package/dist/esm/imageLoader/wadors/metaData/USHelpers.d.ts +19 -0
- package/dist/esm/imageLoader/wadors/metaData/USHelpers.js +46 -0
- package/dist/esm/imageLoader/wadors/metaData/extractPositioningFromMetadata.d.ts +3 -0
- package/dist/esm/imageLoader/wadors/metaData/extractPositioningFromMetadata.js +18 -0
- package/dist/esm/imageLoader/wadors/metaData/getFirstNumberValue.d.ts +2 -0
- package/dist/esm/imageLoader/wadors/metaData/getFirstNumberValue.js +6 -0
- package/dist/esm/imageLoader/wadors/metaData/getNumberString.d.ts +3 -0
- package/dist/esm/imageLoader/wadors/metaData/getNumberString.js +9 -0
- package/dist/esm/imageLoader/wadors/metaData/getNumberValue.d.ts +3 -0
- package/dist/esm/imageLoader/wadors/metaData/getNumberValue.js +9 -0
- package/dist/esm/imageLoader/wadors/metaData/getNumberValues.d.ts +3 -0
- package/dist/esm/imageLoader/wadors/metaData/getNumberValues.js +20 -0
- package/dist/esm/imageLoader/wadors/metaData/getOverlayPlaneModule.d.ts +4 -0
- package/dist/esm/imageLoader/wadors/metaData/getOverlayPlaneModule.js +38 -0
- package/dist/esm/imageLoader/wadors/metaData/getSequenceItems.d.ts +3 -0
- package/dist/esm/imageLoader/wadors/metaData/getSequenceItems.js +14 -0
- package/dist/esm/imageLoader/wadors/metaData/getValue.d.ts +3 -0
- package/dist/esm/imageLoader/wadors/metaData/getValue.js +14 -0
- package/dist/esm/imageLoader/wadors/metaData/index.d.ts +7 -0
- package/dist/esm/imageLoader/wadors/metaData/index.js +7 -0
- package/dist/esm/imageLoader/wadors/metaData/metaDataProvider.d.ts +14 -0
- package/dist/esm/imageLoader/wadors/metaData/metaDataProvider.js +277 -0
- package/dist/esm/imageLoader/wadors/metaDataManager.d.ts +19 -0
- package/dist/esm/imageLoader/wadors/metaDataManager.js +68 -0
- package/dist/esm/imageLoader/wadors/register.d.ts +1 -0
- package/dist/esm/imageLoader/wadors/register.js +7 -0
- package/dist/esm/imageLoader/wadouri/combineFrameInstanceDataset.d.ts +22 -0
- package/dist/esm/imageLoader/wadouri/combineFrameInstanceDataset.js +69 -0
- package/dist/esm/imageLoader/wadouri/dataSetCacheManager.d.ts +28 -0
- package/dist/esm/imageLoader/wadouri/dataSetCacheManager.js +141 -0
- package/dist/esm/imageLoader/wadouri/dataSetCacheManager_test.d.ts +1 -0
- package/dist/esm/imageLoader/wadouri/dataSetCacheManager_test.js +10 -0
- package/dist/esm/imageLoader/wadouri/dataset-from-partial-content.d.ts +6 -0
- package/dist/esm/imageLoader/wadouri/dataset-from-partial-content.js +55 -0
- package/dist/esm/imageLoader/wadouri/fileManager.d.ts +11 -0
- package/dist/esm/imageLoader/wadouri/fileManager.js +20 -0
- package/dist/esm/imageLoader/wadouri/getEncapsulatedImageFrame.d.ts +2 -0
- package/dist/esm/imageLoader/wadouri/getEncapsulatedImageFrame.js +31 -0
- package/dist/esm/imageLoader/wadouri/getPixelData.d.ts +3 -0
- package/dist/esm/imageLoader/wadouri/getPixelData.js +13 -0
- package/dist/esm/imageLoader/wadouri/getUncompressedImageFrame.d.ts +3 -0
- package/dist/esm/imageLoader/wadouri/getUncompressedImageFrame.js +47 -0
- package/dist/esm/imageLoader/wadouri/index.d.ts +45 -0
- package/dist/esm/imageLoader/wadouri/index.js +34 -0
- package/dist/esm/imageLoader/wadouri/loadFileRequest.d.ts +2 -0
- package/dist/esm/imageLoader/wadouri/loadFileRequest.js +17 -0
- package/dist/esm/imageLoader/wadouri/loadImage.d.ts +9 -0
- package/dist/esm/imageLoader/wadouri/loadImage.js +104 -0
- package/dist/esm/imageLoader/wadouri/loadedDataSets.d.ts +7 -0
- package/dist/esm/imageLoader/wadouri/loadedDataSets.js +5 -0
- package/dist/esm/imageLoader/wadouri/metaData/USHelpers.d.ts +2 -0
- package/dist/esm/imageLoader/wadouri/metaData/USHelpers.js +44 -0
- package/dist/esm/imageLoader/wadouri/metaData/extractPositioningFromDataset.d.ts +6 -0
- package/dist/esm/imageLoader/wadouri/metaData/extractPositioningFromDataset.js +80 -0
- package/dist/esm/imageLoader/wadouri/metaData/getImagePixelModule.d.ts +4 -0
- package/dist/esm/imageLoader/wadouri/metaData/getImagePixelModule.js +79 -0
- package/dist/esm/imageLoader/wadouri/metaData/getLUTs.d.ts +4 -0
- package/dist/esm/imageLoader/wadouri/metaData/getLUTs.js +44 -0
- package/dist/esm/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.d.ts +3 -0
- package/dist/esm/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js +30 -0
- package/dist/esm/imageLoader/wadouri/metaData/getNumberValues.d.ts +3 -0
- package/dist/esm/imageLoader/wadouri/metaData/getNumberValues.js +16 -0
- package/dist/esm/imageLoader/wadouri/metaData/getOverlayPlaneModule.d.ts +4 -0
- package/dist/esm/imageLoader/wadouri/metaData/getOverlayPlaneModule.js +36 -0
- package/dist/esm/imageLoader/wadouri/metaData/index.d.ts +5 -0
- package/dist/esm/imageLoader/wadouri/metaData/index.js +5 -0
- package/dist/esm/imageLoader/wadouri/metaData/metaDataProvider.d.ts +4 -0
- package/dist/esm/imageLoader/wadouri/metaData/metaDataProvider.js +227 -0
- package/dist/esm/imageLoader/wadouri/parseImageId.d.ts +8 -0
- package/dist/esm/imageLoader/wadouri/parseImageId.js +20 -0
- package/dist/esm/imageLoader/wadouri/register.d.ts +1 -0
- package/dist/esm/imageLoader/wadouri/register.js +9 -0
- package/dist/esm/imageLoader/wadouri/retrieveMultiframeDataset.d.ts +17 -0
- package/dist/esm/imageLoader/wadouri/retrieveMultiframeDataset.js +57 -0
- package/dist/esm/imageLoader/wadouri/unpackBinaryFrame.d.ts +3 -0
- package/dist/esm/imageLoader/wadouri/unpackBinaryFrame.js +14 -0
- package/dist/esm/index.d.ts +95 -0
- package/dist/esm/index.js +36 -0
- package/dist/esm/shared/decoders/decodeBigEndian.d.ts +4 -0
- package/dist/esm/shared/decoders/decodeBigEndian.js +28 -0
- package/dist/esm/shared/decoders/decodeHTJ2K.d.ts +5 -0
- package/dist/esm/shared/decoders/decodeHTJ2K.js +109 -0
- package/dist/esm/shared/decoders/decodeJPEG2000.d.ts +5 -0
- package/dist/esm/shared/decoders/decodeJPEG2000.js +93 -0
- package/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-js.d.ts +6 -0
- package/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-js.js +34 -0
- package/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.d.ts +1 -0
- package/dist/esm/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.js +0 -0
- package/dist/esm/shared/decoders/decodeJPEGBaseline8Bit.d.ts +3 -0
- package/dist/esm/shared/decoders/decodeJPEGBaseline8Bit.js +62 -0
- package/dist/esm/shared/decoders/decodeJPEGLS.d.ts +5 -0
- package/dist/esm/shared/decoders/decodeJPEGLS.js +84 -0
- package/dist/esm/shared/decoders/decodeJPEGLossless.d.ts +6 -0
- package/dist/esm/shared/decoders/decodeJPEGLossless.js +39 -0
- package/dist/esm/shared/decoders/decodeLittleEndian.d.ts +4 -0
- package/dist/esm/shared/decoders/decodeLittleEndian.js +29 -0
- package/dist/esm/shared/decoders/decodeRLE.d.ts +4 -0
- package/dist/esm/shared/decoders/decodeRLE.js +128 -0
- package/dist/esm/shared/getMinMax.d.ts +6 -0
- package/dist/esm/shared/getMinMax.js +16 -0
- package/dist/esm/shared/getMinMax_test.d.ts +1 -0
- package/dist/esm/shared/getMinMax_test.js +9 -0
- package/dist/esm/shared/getPixelDataTypeFromMinMax.d.ts +2 -0
- package/dist/esm/shared/getPixelDataTypeFromMinMax.js +22 -0
- package/dist/esm/shared/isColorImage.d.ts +1 -0
- package/dist/esm/shared/isColorImage.js +10 -0
- package/dist/esm/shared/scaling/bilinear.d.ts +1 -0
- package/dist/esm/shared/scaling/bilinear.js +32 -0
- package/dist/esm/shared/scaling/replicate.d.ts +1 -0
- package/dist/esm/shared/scaling/replicate.js +20 -0
- package/dist/esm/shared/scaling/scaleArray.d.ts +2 -0
- package/dist/esm/shared/scaling/scaleArray.js +17 -0
- package/dist/esm/types/DICOMLoaderDataSetWithFetchMore.d.ts +9 -0
- package/dist/esm/types/DICOMLoaderDataSetWithFetchMore.js +0 -0
- package/dist/esm/types/DICOMLoaderIImage.d.ts +12 -0
- package/dist/esm/types/DICOMLoaderIImage.js +0 -0
- package/dist/esm/types/DICOMLoaderImageOptions.d.ts +23 -0
- package/dist/esm/types/DICOMLoaderImageOptions.js +0 -0
- package/dist/esm/types/LoadRequestFunction.d.ts +1 -0
- package/dist/esm/types/LoadRequestFunction.js +0 -0
- package/dist/esm/types/LoaderDecodeOptions.d.ts +2 -0
- package/dist/esm/types/LoaderDecodeOptions.js +0 -0
- package/dist/esm/types/LoaderOptions.d.ts +16 -0
- package/dist/esm/types/LoaderOptions.js +0 -0
- package/dist/esm/types/LutType.d.ts +6 -0
- package/dist/esm/types/LutType.js +0 -0
- package/dist/esm/types/WADORSMetaData.d.ts +4 -0
- package/dist/esm/types/WADORSMetaData.js +0 -0
- package/dist/esm/types/WebWorkerTypes.d.ts +64 -0
- package/dist/esm/types/WebWorkerTypes.js +0 -0
- package/dist/esm/types/XHRRequest.d.ts +16 -0
- package/dist/esm/types/XHRRequest.js +0 -0
- package/dist/esm/types/index.d.ts +11 -0
- package/dist/esm/types/index.js +0 -0
- package/dist/esm/version.d.ts +2 -0
- package/dist/esm/version.js +1 -0
- package/package.json +62 -18
- package/dist/cornerstoneDICOMImageLoader.bundle.min.js +0 -2
- package/dist/cornerstoneDICOMImageLoader.bundle.min.js.map +0 -1
- package/dist/cornerstoneDICOMImageLoaderNoWebWorkers.bundle.min.js +0 -2
- package/dist/cornerstoneDICOMImageLoaderNoWebWorkers.bundle.min.js.map +0 -1
- package/dist/dynamic-import/610.min.worker.js +0 -2
- package/dist/dynamic-import/610.min.worker.js.map +0 -1
- package/dist/dynamic-import/945.min.worker.js +0 -2
- package/dist/dynamic-import/945.min.worker.js.map +0 -1
- package/dist/dynamic-import/index.worker.f4bda803c15bc6359d5f.worker.js +0 -2
- package/dist/dynamic-import/index.worker.f4bda803c15bc6359d5f.worker.js.map +0 -1
- package/dist/index.worker.bundle.min.worker.js +0 -2
- package/dist/index.worker.bundle.min.worker.js.map +0 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ByteArray } from 'dicom-parser';
|
|
2
|
+
import type { Types } from '@cornerstonejs/core';
|
|
3
|
+
import type { WebWorkerDecodeConfig } from '../../types';
|
|
4
|
+
export declare function initialize(decodeConfig?: WebWorkerDecodeConfig): Promise<void>;
|
|
5
|
+
declare function decodeJPEGLossless(imageFrame: Types.IImageFrame, pixelData: ByteArray): Promise<Types.IImageFrame>;
|
|
6
|
+
export default decodeJPEGLossless;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const local = {
|
|
2
|
+
jpeg: undefined,
|
|
3
|
+
decodeConfig: {},
|
|
4
|
+
};
|
|
5
|
+
export function initialize(decodeConfig) {
|
|
6
|
+
local.decodeConfig = decodeConfig;
|
|
7
|
+
if (local.jpeg) {
|
|
8
|
+
return Promise.resolve();
|
|
9
|
+
}
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
import('../../codecs/jpegLossless').then((jpeg) => {
|
|
12
|
+
local.jpeg = jpeg;
|
|
13
|
+
resolve();
|
|
14
|
+
}, reject);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async function decodeJPEGLossless(imageFrame, pixelData) {
|
|
18
|
+
await initialize();
|
|
19
|
+
if (typeof local.jpeg === 'undefined' ||
|
|
20
|
+
typeof local.jpeg.lossless === 'undefined' ||
|
|
21
|
+
typeof local.jpeg.lossless.Decoder === 'undefined') {
|
|
22
|
+
throw new Error('No JPEG Lossless decoder loaded');
|
|
23
|
+
}
|
|
24
|
+
const byteOutput = imageFrame.bitsAllocated <= 8 ? 1 : 2;
|
|
25
|
+
const buffer = pixelData.buffer;
|
|
26
|
+
const decoder = new local.jpeg.lossless.Decoder();
|
|
27
|
+
const decompressedData = decoder.decode(buffer, pixelData.byteOffset, pixelData.length, byteOutput);
|
|
28
|
+
if (imageFrame.pixelRepresentation === 0) {
|
|
29
|
+
if (imageFrame.bitsAllocated === 16) {
|
|
30
|
+
imageFrame.pixelData = new Uint16Array(decompressedData.buffer);
|
|
31
|
+
return imageFrame;
|
|
32
|
+
}
|
|
33
|
+
imageFrame.pixelData = new Uint8Array(decompressedData.buffer);
|
|
34
|
+
return imageFrame;
|
|
35
|
+
}
|
|
36
|
+
imageFrame.pixelData = new Int16Array(decompressedData.buffer);
|
|
37
|
+
return imageFrame;
|
|
38
|
+
}
|
|
39
|
+
export default decodeJPEGLossless;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
async function decodeLittleEndian(imageFrame, pixelData) {
|
|
2
|
+
let arrayBuffer = pixelData.buffer;
|
|
3
|
+
let offset = pixelData.byteOffset;
|
|
4
|
+
const length = pixelData.length;
|
|
5
|
+
if (imageFrame.bitsAllocated === 16) {
|
|
6
|
+
if (offset % 2) {
|
|
7
|
+
arrayBuffer = arrayBuffer.slice(offset);
|
|
8
|
+
offset = 0;
|
|
9
|
+
}
|
|
10
|
+
if (imageFrame.pixelRepresentation === 0) {
|
|
11
|
+
imageFrame.pixelData = new Uint16Array(arrayBuffer, offset, length / 2);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
imageFrame.pixelData = new Int16Array(arrayBuffer, offset, length / 2);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
else if (imageFrame.bitsAllocated === 8 || imageFrame.bitsAllocated === 1) {
|
|
18
|
+
imageFrame.pixelData = pixelData;
|
|
19
|
+
}
|
|
20
|
+
else if (imageFrame.bitsAllocated === 32) {
|
|
21
|
+
if (offset % 2) {
|
|
22
|
+
arrayBuffer = arrayBuffer.slice(offset);
|
|
23
|
+
offset = 0;
|
|
24
|
+
}
|
|
25
|
+
imageFrame.pixelData = new Float32Array(arrayBuffer, offset, length / 4);
|
|
26
|
+
}
|
|
27
|
+
return imageFrame;
|
|
28
|
+
}
|
|
29
|
+
export default decodeLittleEndian;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
async function decodeRLE(imageFrame, pixelData) {
|
|
2
|
+
if (imageFrame.bitsAllocated === 8) {
|
|
3
|
+
if (imageFrame.planarConfiguration) {
|
|
4
|
+
return decode8Planar(imageFrame, pixelData);
|
|
5
|
+
}
|
|
6
|
+
return decode8(imageFrame, pixelData);
|
|
7
|
+
}
|
|
8
|
+
else if (imageFrame.bitsAllocated === 16) {
|
|
9
|
+
return decode16(imageFrame, pixelData);
|
|
10
|
+
}
|
|
11
|
+
throw new Error('unsupported pixel format for RLE');
|
|
12
|
+
}
|
|
13
|
+
function decode8(imageFrame, pixelData) {
|
|
14
|
+
const frameData = pixelData;
|
|
15
|
+
const frameSize = imageFrame.rows * imageFrame.columns;
|
|
16
|
+
const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel);
|
|
17
|
+
const header = new DataView(frameData.buffer, frameData.byteOffset);
|
|
18
|
+
const data = new Int8Array(frameData.buffer, frameData.byteOffset);
|
|
19
|
+
const out = new Int8Array(outFrame);
|
|
20
|
+
let outIndex = 0;
|
|
21
|
+
const numSegments = header.getInt32(0, true);
|
|
22
|
+
for (let s = 0; s < numSegments; ++s) {
|
|
23
|
+
outIndex = s;
|
|
24
|
+
let inIndex = header.getInt32((s + 1) * 4, true);
|
|
25
|
+
let maxIndex = header.getInt32((s + 2) * 4, true);
|
|
26
|
+
if (maxIndex === 0) {
|
|
27
|
+
maxIndex = frameData.length;
|
|
28
|
+
}
|
|
29
|
+
const endOfSegment = frameSize * numSegments;
|
|
30
|
+
while (inIndex < maxIndex) {
|
|
31
|
+
const n = data[inIndex++];
|
|
32
|
+
if (n >= 0 && n <= 127) {
|
|
33
|
+
for (let i = 0; i < n + 1 && outIndex < endOfSegment; ++i) {
|
|
34
|
+
out[outIndex] = data[inIndex++];
|
|
35
|
+
outIndex += imageFrame.samplesPerPixel;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (n <= -1 && n >= -127) {
|
|
39
|
+
const value = data[inIndex++];
|
|
40
|
+
for (let j = 0; j < -n + 1 && outIndex < endOfSegment; ++j) {
|
|
41
|
+
out[outIndex] = value;
|
|
42
|
+
outIndex += imageFrame.samplesPerPixel;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
imageFrame.pixelData = new Uint8Array(outFrame);
|
|
48
|
+
return imageFrame;
|
|
49
|
+
}
|
|
50
|
+
function decode8Planar(imageFrame, pixelData) {
|
|
51
|
+
const frameData = pixelData;
|
|
52
|
+
const frameSize = imageFrame.rows * imageFrame.columns;
|
|
53
|
+
const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel);
|
|
54
|
+
const header = new DataView(frameData.buffer, frameData.byteOffset);
|
|
55
|
+
const data = new Int8Array(frameData.buffer, frameData.byteOffset);
|
|
56
|
+
const out = new Int8Array(outFrame);
|
|
57
|
+
let outIndex = 0;
|
|
58
|
+
const numSegments = header.getInt32(0, true);
|
|
59
|
+
for (let s = 0; s < numSegments; ++s) {
|
|
60
|
+
outIndex = s * frameSize;
|
|
61
|
+
let inIndex = header.getInt32((s + 1) * 4, true);
|
|
62
|
+
let maxIndex = header.getInt32((s + 2) * 4, true);
|
|
63
|
+
if (maxIndex === 0) {
|
|
64
|
+
maxIndex = frameData.length;
|
|
65
|
+
}
|
|
66
|
+
const endOfSegment = frameSize * numSegments;
|
|
67
|
+
while (inIndex < maxIndex) {
|
|
68
|
+
const n = data[inIndex++];
|
|
69
|
+
if (n >= 0 && n <= 127) {
|
|
70
|
+
for (let i = 0; i < n + 1 && outIndex < endOfSegment; ++i) {
|
|
71
|
+
out[outIndex] = data[inIndex++];
|
|
72
|
+
outIndex++;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else if (n <= -1 && n >= -127) {
|
|
76
|
+
const value = data[inIndex++];
|
|
77
|
+
for (let j = 0; j < -n + 1 && outIndex < endOfSegment; ++j) {
|
|
78
|
+
out[outIndex] = value;
|
|
79
|
+
outIndex++;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
imageFrame.pixelData = new Uint8Array(outFrame);
|
|
85
|
+
return imageFrame;
|
|
86
|
+
}
|
|
87
|
+
function decode16(imageFrame, pixelData) {
|
|
88
|
+
const frameData = pixelData;
|
|
89
|
+
const frameSize = imageFrame.rows * imageFrame.columns;
|
|
90
|
+
const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel * 2);
|
|
91
|
+
const header = new DataView(frameData.buffer, frameData.byteOffset);
|
|
92
|
+
const data = new Int8Array(frameData.buffer, frameData.byteOffset);
|
|
93
|
+
const out = new Int8Array(outFrame);
|
|
94
|
+
const numSegments = header.getInt32(0, true);
|
|
95
|
+
for (let s = 0; s < numSegments; ++s) {
|
|
96
|
+
let outIndex = 0;
|
|
97
|
+
const highByte = s === 0 ? 1 : 0;
|
|
98
|
+
let inIndex = header.getInt32((s + 1) * 4, true);
|
|
99
|
+
let maxIndex = header.getInt32((s + 2) * 4, true);
|
|
100
|
+
if (maxIndex === 0) {
|
|
101
|
+
maxIndex = frameData.length;
|
|
102
|
+
}
|
|
103
|
+
while (inIndex < maxIndex) {
|
|
104
|
+
const n = data[inIndex++];
|
|
105
|
+
if (n >= 0 && n <= 127) {
|
|
106
|
+
for (let i = 0; i < n + 1 && outIndex < frameSize; ++i) {
|
|
107
|
+
out[outIndex * 2 + highByte] = data[inIndex++];
|
|
108
|
+
outIndex++;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else if (n <= -1 && n >= -127) {
|
|
112
|
+
const value = data[inIndex++];
|
|
113
|
+
for (let j = 0; j < -n + 1 && outIndex < frameSize; ++j) {
|
|
114
|
+
out[outIndex * 2 + highByte] = value;
|
|
115
|
+
outIndex++;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (imageFrame.pixelRepresentation === 0) {
|
|
121
|
+
imageFrame.pixelData = new Uint16Array(outFrame);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
imageFrame.pixelData = new Int16Array(outFrame);
|
|
125
|
+
}
|
|
126
|
+
return imageFrame;
|
|
127
|
+
}
|
|
128
|
+
export default decodeRLE;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function getMinMax(storedPixelData) {
|
|
2
|
+
let min = storedPixelData[0];
|
|
3
|
+
let max = storedPixelData[0];
|
|
4
|
+
let storedPixel;
|
|
5
|
+
const numPixels = storedPixelData.length;
|
|
6
|
+
for (let index = 1; index < numPixels; index++) {
|
|
7
|
+
storedPixel = storedPixelData[index];
|
|
8
|
+
min = Math.min(min, storedPixel);
|
|
9
|
+
max = Math.max(max, storedPixel);
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
min,
|
|
13
|
+
max,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export default getMinMax;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import getMinMax from './getMinMax';
|
|
3
|
+
describe('#getMinMax', () => {
|
|
4
|
+
it('should return the right min and max values', () => {
|
|
5
|
+
const result = getMinMax([7, 3, 9, 6, 8, 1, 4, 5, 2]);
|
|
6
|
+
expect(result.min).to.be.equal(1);
|
|
7
|
+
expect(result.max).to.be.equal(9);
|
|
8
|
+
});
|
|
9
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export default function getPixelDataTypeFromMinMax(min, max) {
|
|
2
|
+
let pixelDataType;
|
|
3
|
+
if (Number.isInteger(min) && Number.isInteger(max)) {
|
|
4
|
+
if (min >= 0) {
|
|
5
|
+
if (max <= 255) {
|
|
6
|
+
pixelDataType = Uint8Array;
|
|
7
|
+
}
|
|
8
|
+
else if (max <= 65535) {
|
|
9
|
+
pixelDataType = Uint16Array;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
if (min >= -128 && max <= 127) {
|
|
14
|
+
pixelDataType = Int8Array;
|
|
15
|
+
}
|
|
16
|
+
else if (min >= -32768 && max <= 32767) {
|
|
17
|
+
pixelDataType = Int16Array;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return pixelDataType || Float32Array;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (photoMetricInterpretation: string): boolean;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default function (photoMetricInterpretation) {
|
|
2
|
+
return (photoMetricInterpretation === 'RGB' ||
|
|
3
|
+
photoMetricInterpretation === 'PALETTE COLOR' ||
|
|
4
|
+
photoMetricInterpretation === 'YBR_FULL' ||
|
|
5
|
+
photoMetricInterpretation === 'YBR_FULL_422' ||
|
|
6
|
+
photoMetricInterpretation === 'YBR_PARTIAL_422' ||
|
|
7
|
+
photoMetricInterpretation === 'YBR_PARTIAL_420' ||
|
|
8
|
+
photoMetricInterpretation === 'YBR_RCT' ||
|
|
9
|
+
photoMetricInterpretation === 'YBR_ICT');
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function bilinear(src: any, dest: any): any;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export default function bilinear(src, dest) {
|
|
2
|
+
const { rows: srcRows, columns: srcColumns, data: srcData } = src;
|
|
3
|
+
const { rows, columns, data } = dest;
|
|
4
|
+
const xSrc1Off = [];
|
|
5
|
+
const xSrc2Off = [];
|
|
6
|
+
const xFrac = [];
|
|
7
|
+
for (let x = 0; x < columns; x++) {
|
|
8
|
+
const xSrc = (x * (srcColumns - 1)) / (columns - 1);
|
|
9
|
+
xSrc1Off[x] = Math.floor(xSrc);
|
|
10
|
+
xSrc2Off[x] = Math.min(xSrc1Off[x] + 1, srcColumns - 1);
|
|
11
|
+
xFrac[x] = xSrc - xSrc1Off[x];
|
|
12
|
+
}
|
|
13
|
+
for (let y = 0; y < rows; y++) {
|
|
14
|
+
const ySrc = (y * (srcRows - 1)) / (rows - 1);
|
|
15
|
+
const ySrc1Off = Math.floor(ySrc) * srcColumns;
|
|
16
|
+
const ySrc2Off = Math.min(ySrc1Off + srcColumns, (srcRows - 1) * srcColumns);
|
|
17
|
+
const yFrac = ySrc - Math.floor(ySrc);
|
|
18
|
+
const yFracInv = 1 - yFrac;
|
|
19
|
+
const yOff = y * columns;
|
|
20
|
+
for (let x = 0; x < columns; x++) {
|
|
21
|
+
const p00 = srcData[ySrc1Off + xSrc1Off[x]];
|
|
22
|
+
const p10 = srcData[ySrc1Off + xSrc2Off[x]];
|
|
23
|
+
const p01 = srcData[ySrc2Off + xSrc1Off[x]];
|
|
24
|
+
const p11 = srcData[ySrc2Off + xSrc2Off[x]];
|
|
25
|
+
const xFracInv = 1 - xFrac[x];
|
|
26
|
+
data[yOff + x] =
|
|
27
|
+
(p00 * xFracInv + p10 * xFrac[x]) * yFracInv +
|
|
28
|
+
(p01 * xFracInv + p11 * xFrac[x]) * yFrac;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function replicate(src: any, dest: any): any;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default function replicate(src, dest) {
|
|
2
|
+
const { rows: srcRows, columns: srcColumns, pixelData: srcData, samplesPerPixel = 1, } = src;
|
|
3
|
+
const { rows, columns, pixelData } = dest;
|
|
4
|
+
const xSrc1Off = [];
|
|
5
|
+
for (let x = 0; x < columns; x++) {
|
|
6
|
+
const xSrc = (x * (srcColumns - 1)) / (columns - 1);
|
|
7
|
+
xSrc1Off[x] = Math.floor(xSrc) * samplesPerPixel;
|
|
8
|
+
}
|
|
9
|
+
for (let y = 0; y < rows; y++) {
|
|
10
|
+
const ySrc = (y * (srcRows - 1)) / (rows - 1);
|
|
11
|
+
const ySrc1Off = Math.floor(ySrc) * srcColumns * samplesPerPixel;
|
|
12
|
+
const yOff = y * columns;
|
|
13
|
+
for (let x = 0; x < columns; x++) {
|
|
14
|
+
for (let sample = 0; sample < samplesPerPixel; sample++) {
|
|
15
|
+
pixelData[yOff + x + sample] = srcData[ySrc1Off + xSrc1Off[x] + sample];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return pixelData;
|
|
20
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export default function scaleArray(array, scalingParameters) {
|
|
2
|
+
const arrayLength = array.length;
|
|
3
|
+
const { rescaleSlope, rescaleIntercept, suvbw } = scalingParameters;
|
|
4
|
+
if (scalingParameters.modality === 'PT' &&
|
|
5
|
+
typeof suvbw === 'number' &&
|
|
6
|
+
!isNaN(suvbw)) {
|
|
7
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
8
|
+
array[i] = suvbw * (array[i] * rescaleSlope + rescaleIntercept);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
13
|
+
array[i] = array[i] * rescaleSlope + rescaleIntercept;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DataSet } from 'dicom-parser';
|
|
2
|
+
export interface DICOMLoaderDataSetWithFetchMore extends DataSet {
|
|
3
|
+
fetchMore?: (fetchOptions: {
|
|
4
|
+
uri: string;
|
|
5
|
+
imageId: string;
|
|
6
|
+
fetchedLength: number;
|
|
7
|
+
lengthToFetch: number;
|
|
8
|
+
}) => Promise<DICOMLoaderDataSetWithFetchMore>;
|
|
9
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
|
+
import type { ByteArray, DataSet } from 'dicom-parser';
|
|
3
|
+
export interface DICOMLoaderIImage extends Types.IImage {
|
|
4
|
+
decodeTimeInMS: number;
|
|
5
|
+
floatPixelData?: ByteArray | Float32Array;
|
|
6
|
+
loadTimeInMS?: number;
|
|
7
|
+
totalTimeInMS?: number;
|
|
8
|
+
data?: DataSet;
|
|
9
|
+
imageFrame?: Types.IImageFrame;
|
|
10
|
+
voiLUTFunction: string | undefined;
|
|
11
|
+
transferSyntaxUID?: string;
|
|
12
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
|
+
import type { LoadRequestFunction } from './LoadRequestFunction';
|
|
3
|
+
import type { StreamingData } from '../imageLoader/wadors/loadImage';
|
|
4
|
+
export interface DICOMLoaderImageOptions {
|
|
5
|
+
useRGBA?: boolean;
|
|
6
|
+
allowFloatRendering?: boolean;
|
|
7
|
+
preScale?: {
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
scalingParameters?: Types.ScalingParameters;
|
|
10
|
+
};
|
|
11
|
+
targetBuffer?: {
|
|
12
|
+
type: Types.PixelDataTypedArrayString;
|
|
13
|
+
arrayBuffer: ArrayBufferLike;
|
|
14
|
+
length: number;
|
|
15
|
+
offset: number;
|
|
16
|
+
rows?: number;
|
|
17
|
+
columns?: number;
|
|
18
|
+
};
|
|
19
|
+
loader?: LoadRequestFunction;
|
|
20
|
+
decodeLevel?: number;
|
|
21
|
+
retrieveOptions?: Types.RetrieveOptions;
|
|
22
|
+
streamingData?: StreamingData;
|
|
23
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type LoadRequestFunction = (url: string, imageId: string, ...args: unknown[]) => Promise<ArrayBuffer>;
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { LoaderDecodeOptions } from './LoaderDecodeOptions';
|
|
2
|
+
import type { LoaderXhrRequestError, LoaderXhrRequestParams } from './XHRRequest';
|
|
3
|
+
export interface LoaderOptions {
|
|
4
|
+
maxWebWorkers?: number;
|
|
5
|
+
open?: (xhr: XMLHttpRequest, url: string, defaultHeaders: Record<string, string>, params: LoaderXhrRequestParams) => void;
|
|
6
|
+
beforeSend?: (xhr: XMLHttpRequest, imageId: string, defaultHeaders: Record<string, string>, params: LoaderXhrRequestParams) => Record<string, string> | void;
|
|
7
|
+
beforeProcessing?: (xhr: XMLHttpRequest) => Promise<ArrayBuffer>;
|
|
8
|
+
imageCreated?: (imageObject: unknown) => void;
|
|
9
|
+
onloadstart?: (event: ProgressEvent<EventTarget>, params: unknown) => void;
|
|
10
|
+
onloadend?: (event: ProgressEvent<EventTarget>, params: unknown) => void;
|
|
11
|
+
onreadystatechange?: (event: Event, params: unknown) => void;
|
|
12
|
+
onprogress?: (event: ProgressEvent<EventTarget>, params: unknown) => void;
|
|
13
|
+
errorInterceptor?: (error: LoaderXhrRequestError) => void;
|
|
14
|
+
strict?: boolean;
|
|
15
|
+
decodeConfig?: LoaderDecodeOptions;
|
|
16
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { ByteArray } from 'dicom-parser';
|
|
2
|
+
import type { Types } from '@cornerstonejs/core';
|
|
3
|
+
import type { LoaderOptions } from './LoaderOptions';
|
|
4
|
+
import type { LoaderDecodeOptions } from './LoaderDecodeOptions';
|
|
5
|
+
export interface WebWorkerOptions {
|
|
6
|
+
maxWebWorkers?: number;
|
|
7
|
+
startWebWorkersOnDemand?: boolean;
|
|
8
|
+
webWorkerTaskPaths?: string[];
|
|
9
|
+
taskConfiguration?: WebWorkerTaskOptions;
|
|
10
|
+
}
|
|
11
|
+
export interface WebWorkerDecodeConfig {
|
|
12
|
+
initializeCodecsOnStartup: boolean;
|
|
13
|
+
strict?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface WebWorkerTaskOptions {
|
|
16
|
+
decodeTask: WebWorkerDecodeConfig;
|
|
17
|
+
}
|
|
18
|
+
export interface WebWorkerDeferredObject<T = unknown> {
|
|
19
|
+
resolve: (arg: T | PromiseLike<T>) => void;
|
|
20
|
+
reject: (err: any) => void;
|
|
21
|
+
}
|
|
22
|
+
export type WorkerTaskTypes = 'decodeTask' | 'loadWebWorkerTask' | 'initialize';
|
|
23
|
+
export interface WorkerTask {
|
|
24
|
+
taskId: number;
|
|
25
|
+
taskType: WorkerTaskTypes;
|
|
26
|
+
status: 'ready' | 'success' | 'failed';
|
|
27
|
+
added: number;
|
|
28
|
+
start?: number;
|
|
29
|
+
data: WebWorkerDecodeTaskData;
|
|
30
|
+
deferred: WebWorkerDeferredObject;
|
|
31
|
+
priority: number;
|
|
32
|
+
transferList: Transferable[];
|
|
33
|
+
}
|
|
34
|
+
export interface WebWorkerDecodeTaskData {
|
|
35
|
+
imageFrame: Types.IImageFrame;
|
|
36
|
+
transferSyntax: string;
|
|
37
|
+
pixelData: ByteArray;
|
|
38
|
+
options: LoaderOptions;
|
|
39
|
+
decodeConfig: LoaderDecodeOptions;
|
|
40
|
+
}
|
|
41
|
+
export interface WebWorkerDecodeData {
|
|
42
|
+
taskType: 'decodeTask';
|
|
43
|
+
workerIndex: number;
|
|
44
|
+
data: WebWorkerDecodeTaskData;
|
|
45
|
+
}
|
|
46
|
+
export interface WebWorkerLoadData {
|
|
47
|
+
taskType: 'loadWebWorkerTask';
|
|
48
|
+
workerIndex: number;
|
|
49
|
+
sourcePath: string;
|
|
50
|
+
config: WebWorkerOptions;
|
|
51
|
+
}
|
|
52
|
+
export interface WebWorkerInitializeData {
|
|
53
|
+
taskType: 'initialize';
|
|
54
|
+
workerIndex: number;
|
|
55
|
+
config: WebWorkerOptions;
|
|
56
|
+
}
|
|
57
|
+
export type WebWorkerData = WebWorkerDecodeData | WebWorkerLoadData | WebWorkerInitializeData;
|
|
58
|
+
export interface WebWorkerResponse {
|
|
59
|
+
taskType: WorkerTaskTypes;
|
|
60
|
+
status: 'failed' | 'success';
|
|
61
|
+
workerIndex: number;
|
|
62
|
+
data?: Types.IImageFrame;
|
|
63
|
+
result: string | Types.IImageFrame;
|
|
64
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface LoaderXhrRequestError extends Error {
|
|
2
|
+
request: XMLHttpRequest;
|
|
3
|
+
response: unknown;
|
|
4
|
+
status: number;
|
|
5
|
+
}
|
|
6
|
+
export interface LoaderXhrRequestParams {
|
|
7
|
+
url?: string;
|
|
8
|
+
deferred?: {
|
|
9
|
+
resolve: (value: ArrayBuffer | PromiseLike<ArrayBuffer>) => void;
|
|
10
|
+
reject: (reason: any) => void;
|
|
11
|
+
};
|
|
12
|
+
imageId?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface LoaderXhrRequestPromise<T> extends Promise<T> {
|
|
15
|
+
xhr?: XMLHttpRequest;
|
|
16
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LoaderXhrRequestError, LoaderXhrRequestParams, LoaderXhrRequestPromise } from './XHRRequest';
|
|
2
|
+
import type { WADORSMetaData, WADORSMetaDataElement } from './WADORSMetaData';
|
|
3
|
+
import type { LoaderOptions } from './LoaderOptions';
|
|
4
|
+
import type { LoaderDecodeOptions } from './LoaderDecodeOptions';
|
|
5
|
+
import type { DICOMLoaderIImage } from './DICOMLoaderIImage';
|
|
6
|
+
import type { DICOMLoaderImageOptions } from './DICOMLoaderImageOptions';
|
|
7
|
+
import type { LutType } from './LutType';
|
|
8
|
+
import type { LoadRequestFunction } from './LoadRequestFunction';
|
|
9
|
+
import type { DICOMLoaderDataSetWithFetchMore } from './DICOMLoaderDataSetWithFetchMore';
|
|
10
|
+
import type { WebWorkerOptions, WebWorkerDecodeConfig, WebWorkerTaskOptions, WorkerTaskTypes, WorkerTask, WebWorkerDecodeTaskData, WebWorkerDecodeData, WebWorkerLoadData, WebWorkerInitializeData, WebWorkerData, WebWorkerResponse, WebWorkerDeferredObject } from './WebWorkerTypes';
|
|
11
|
+
export type { LoaderDecodeOptions, LoaderOptions, WADORSMetaData, WADORSMetaDataElement, LoaderXhrRequestError, LoaderXhrRequestParams, LoaderXhrRequestPromise, DICOMLoaderIImage, DICOMLoaderImageOptions, LutType, WebWorkerOptions, WebWorkerDecodeConfig, WebWorkerTaskOptions, WorkerTaskTypes, WorkerTask, WebWorkerDecodeTaskData, WebWorkerDecodeData, WebWorkerLoadData, WebWorkerInitializeData, WebWorkerData, WebWorkerResponse, WebWorkerDeferredObject, LoadRequestFunction, DICOMLoaderDataSetWithFetchMore, };
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default '0.0.1';
|