@cornerstonejs/dicom-image-loader 2.0.0-beta.1 → 2.0.0-beta.11
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/744.bundle.min.js +3 -0
- package/dist/744.bundle.min.js.LICENSE.txt +5 -0
- package/dist/744.bundle.min.js.map +1 -0
- package/dist/cornerstoneDICOMImageLoader.bundle.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.bundle.min.js.map +1 -1
- package/dist/dynamic-import/{65916ef3def695744bda.wasm → 031089e563a18ada8441.wasm} +0 -0
- package/dist/dynamic-import/20fc4c659b85ccd2a9c0.wasm +0 -0
- package/dist/dynamic-import/584.min.js +2 -0
- package/dist/dynamic-import/584.min.js.map +1 -0
- package/dist/dynamic-import/595.min.js +2 -0
- package/dist/dynamic-import/595.min.js.map +1 -0
- package/dist/dynamic-import/610.min.js +2 -0
- package/dist/dynamic-import/610.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.js +891 -0
- package/dist/esm/codecs/jpeg.js.map +1 -0
- package/dist/esm/codecs/jpegLossless.js +1220 -0
- package/dist/esm/codecs/jpegLossless.js.map +1 -0
- package/dist/esm/src/constants/transferSyntaxes.js +47 -0
- package/dist/esm/src/constants/transferSyntaxes.js.map +1 -0
- package/dist/esm/src/externalModules.js +45 -0
- package/dist/esm/src/externalModules.js.map +1 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.js +78 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.js.map +1 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.js +22 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.js.map +1 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.js +29 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.js.map +1 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.js +45 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.js.map +1 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.js +34 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.js.map +1 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.js +36 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.js.map +1 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/index.js +8 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/index.js.map +1 -0
- package/dist/esm/src/imageLoader/configure.js +12 -0
- package/dist/esm/src/imageLoader/configure.js.map +1 -0
- package/dist/esm/src/imageLoader/convertColorSpace.js +41 -0
- package/dist/esm/src/imageLoader/convertColorSpace.js.map +1 -0
- package/dist/esm/src/imageLoader/createImage.js +249 -0
- package/dist/esm/src/imageLoader/createImage.js.map +1 -0
- package/dist/esm/src/imageLoader/decodeImageFrame.js +66 -0
- package/dist/esm/src/imageLoader/decodeImageFrame.js.map +1 -0
- package/dist/esm/src/imageLoader/decodeJPEGBaseline8BitColor.js +65 -0
- package/dist/esm/src/imageLoader/decodeJPEGBaseline8BitColor.js.map +1 -0
- package/dist/esm/src/imageLoader/getImageFrame.js +27 -0
- package/dist/esm/src/imageLoader/getImageFrame.js.map +1 -0
- package/dist/esm/src/imageLoader/getInstanceModule.js +41 -0
- package/dist/esm/src/imageLoader/getInstanceModule.js.map +1 -0
- package/dist/esm/src/imageLoader/getMinMax.js +16 -0
- package/dist/esm/src/imageLoader/getMinMax.js.map +1 -0
- package/dist/esm/src/imageLoader/getScalingParameters.js +16 -0
- package/dist/esm/src/imageLoader/getScalingParameters.js.map +1 -0
- package/dist/esm/src/imageLoader/imageIdToURI.js +5 -0
- package/dist/esm/src/imageLoader/imageIdToURI.js.map +1 -0
- package/dist/esm/src/imageLoader/index.js +37 -0
- package/dist/esm/src/imageLoader/index.js.map +1 -0
- package/dist/esm/src/imageLoader/internal/index.js +9 -0
- package/dist/esm/src/imageLoader/internal/index.js.map +1 -0
- package/dist/esm/src/imageLoader/internal/options.js +24 -0
- package/dist/esm/src/imageLoader/internal/options.js.map +1 -0
- package/dist/esm/src/imageLoader/internal/rangeRequest.js +122 -0
- package/dist/esm/src/imageLoader/internal/rangeRequest.js.map +1 -0
- package/dist/esm/src/imageLoader/internal/streamRequest.js +93 -0
- package/dist/esm/src/imageLoader/internal/streamRequest.js.map +1 -0
- package/dist/esm/src/imageLoader/internal/xhrRequest.js +103 -0
- package/dist/esm/src/imageLoader/internal/xhrRequest.js.map +1 -0
- package/dist/esm/src/imageLoader/isColorConversionRequired.js +23 -0
- package/dist/esm/src/imageLoader/isColorConversionRequired.js.map +1 -0
- package/dist/esm/src/imageLoader/isJPEGBaseline8BitColor.js +10 -0
- package/dist/esm/src/imageLoader/isJPEGBaseline8BitColor.js.map +1 -0
- package/dist/esm/src/imageLoader/isNMReconstructable.js +4 -0
- package/dist/esm/src/imageLoader/isNMReconstructable.js.map +1 -0
- package/dist/esm/src/imageLoader/registerLoaders.js +8 -0
- package/dist/esm/src/imageLoader/registerLoaders.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/combineFrameInstance.js +45 -0
- package/dist/esm/src/imageLoader/wadors/combineFrameInstance.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/extractMultipart.js +74 -0
- package/dist/esm/src/imageLoader/wadors/extractMultipart.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/findIndexOfString.js +33 -0
- package/dist/esm/src/imageLoader/wadors/findIndexOfString.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/getImageQualityStatus.js +9 -0
- package/dist/esm/src/imageLoader/wadors/getImageQualityStatus.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/getPixelData.js +36 -0
- package/dist/esm/src/imageLoader/wadors/getPixelData.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/getTagValue.js +10 -0
- package/dist/esm/src/imageLoader/wadors/getTagValue.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/index.js +22 -0
- package/dist/esm/src/imageLoader/wadors/index.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/loadImage.js +126 -0
- package/dist/esm/src/imageLoader/wadors/loadImage.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/loadImage_test.js +42 -0
- package/dist/esm/src/imageLoader/wadors/loadImage_test.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/NMHelpers.js +39 -0
- package/dist/esm/src/imageLoader/wadors/metaData/NMHelpers.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/USHelpers.js +47 -0
- package/dist/esm/src/imageLoader/wadors/metaData/USHelpers.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.js +19 -0
- package/dist/esm/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getFirstNumberValue.js +7 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getFirstNumberValue.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.js +10 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValue.js +10 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValue.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValues.js +21 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValues.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getOverlayPlaneModule.js +39 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getOverlayPlaneModule.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getSequenceItems.js +15 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getSequenceItems.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getValue.js +15 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getValue.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/index.js +8 -0
- package/dist/esm/src/imageLoader/wadors/metaData/index.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaData/metaDataProvider.js +262 -0
- package/dist/esm/src/imageLoader/wadors/metaData/metaDataProvider.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/metaDataManager.js +48 -0
- package/dist/esm/src/imageLoader/wadors/metaDataManager.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/register.js +7 -0
- package/dist/esm/src/imageLoader/wadors/register.js.map +1 -0
- package/dist/esm/src/imageLoader/wadors/retrieveMultiframeMetadata.js +27 -0
- package/dist/esm/src/imageLoader/wadors/retrieveMultiframeMetadata.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/combineFrameInstanceDataset.js +68 -0
- package/dist/esm/src/imageLoader/wadouri/combineFrameInstanceDataset.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager.js +143 -0
- package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager_test.js +11 -0
- package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager_test.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/dataset-from-partial-content.js +57 -0
- package/dist/esm/src/imageLoader/wadouri/dataset-from-partial-content.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/fileManager.js +21 -0
- package/dist/esm/src/imageLoader/wadouri/fileManager.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/getEncapsulatedImageFrame.js +34 -0
- package/dist/esm/src/imageLoader/wadouri/getEncapsulatedImageFrame.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/getPixelData.js +14 -0
- package/dist/esm/src/imageLoader/wadouri/getPixelData.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/getUncompressedImageFrame.js +48 -0
- package/dist/esm/src/imageLoader/wadouri/getUncompressedImageFrame.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/index.js +32 -0
- package/dist/esm/src/imageLoader/wadouri/index.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/loadFileRequest.js +18 -0
- package/dist/esm/src/imageLoader/wadouri/loadFileRequest.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/loadImage.js +105 -0
- package/dist/esm/src/imageLoader/wadouri/loadImage.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.js +81 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getImagePixelModule.js +80 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getImagePixelModule.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getLUTs.js +45 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getLUTs.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js +31 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getNumberValues.js +17 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getNumberValues.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.js +37 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/index.js +6 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/index.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.js +211 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/parseImageId.js +21 -0
- package/dist/esm/src/imageLoader/wadouri/parseImageId.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/register.js +9 -0
- package/dist/esm/src/imageLoader/wadouri/register.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/retrieveMultiframeDataset.js +58 -0
- package/dist/esm/src/imageLoader/wadouri/retrieveMultiframeDataset.js.map +1 -0
- package/dist/esm/src/imageLoader/wadouri/unpackBinaryFrame.js +15 -0
- package/dist/esm/src/imageLoader/wadouri/unpackBinaryFrame.js.map +1 -0
- package/dist/esm/src/shared/calculateMinMax.js +25 -0
- package/dist/esm/src/shared/calculateMinMax.js.map +1 -0
- package/dist/esm/src/shared/calculateMinMax_test.js +39 -0
- package/dist/esm/src/shared/calculateMinMax_test.js.map +1 -0
- package/dist/esm/src/shared/decodeImageFrame.js +269 -0
- package/dist/esm/src/shared/decodeImageFrame.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeBigEndian.js +29 -0
- package/dist/esm/src/shared/decoders/decodeBigEndian.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeHTJ2K.js +110 -0
- package/dist/esm/src/shared/decoders/decodeHTJ2K.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeJPEG2000.js +94 -0
- package/dist/esm/src/shared/decoders/decodeJPEG2000.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-js.js +35 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-js.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.js +2 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline8Bit.js +63 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline8Bit.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeJPEGLS.js +85 -0
- package/dist/esm/src/shared/decoders/decodeJPEGLS.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeJPEGLossless.js +40 -0
- package/dist/esm/src/shared/decoders/decodeJPEGLossless.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeLittleEndian.js +30 -0
- package/dist/esm/src/shared/decoders/decodeLittleEndian.js.map +1 -0
- package/dist/esm/src/shared/decoders/decodeRLE.js +129 -0
- package/dist/esm/src/shared/decoders/decodeRLE.js.map +1 -0
- package/dist/esm/src/shared/getMinMax.js +17 -0
- package/dist/esm/src/shared/getMinMax.js.map +1 -0
- package/dist/esm/src/shared/getMinMax_test.js +10 -0
- package/dist/esm/src/shared/getMinMax_test.js.map +1 -0
- package/dist/esm/src/shared/getPixelDataTypeFromMinMax.js +23 -0
- package/dist/esm/src/shared/getPixelDataTypeFromMinMax.js.map +1 -0
- package/dist/esm/src/shared/isColorImage.js +11 -0
- package/dist/esm/src/shared/isColorImage.js.map +1 -0
- package/dist/esm/src/shared/scaling/bilinear.js +33 -0
- package/dist/esm/src/shared/scaling/bilinear.js.map +1 -0
- package/dist/esm/src/shared/scaling/replicate.js +21 -0
- package/dist/esm/src/shared/scaling/replicate.js.map +1 -0
- package/dist/esm/src/shared/scaling/scaleArray.js +16 -0
- package/dist/esm/src/shared/scaling/scaleArray.js.map +1 -0
- package/dist/esm/src/types/DICOMLoaderDataSetWithFetchMore.js +2 -0
- package/dist/esm/src/types/DICOMLoaderDataSetWithFetchMore.js.map +1 -0
- package/dist/esm/src/types/DICOMLoaderIImage.js +2 -0
- package/dist/esm/src/types/DICOMLoaderIImage.js.map +1 -0
- package/dist/esm/src/types/DICOMLoaderImageOptions.js +2 -0
- package/dist/esm/src/types/DICOMLoaderImageOptions.js.map +1 -0
- package/dist/esm/src/types/ImageFrame.js +2 -0
- package/dist/esm/src/types/ImageFrame.js.map +1 -0
- package/dist/esm/src/types/LoadRequestFunction.js +2 -0
- package/dist/esm/src/types/LoadRequestFunction.js.map +1 -0
- package/dist/esm/src/types/LoaderDecodeOptions.js +2 -0
- package/dist/esm/src/types/LoaderDecodeOptions.js.map +1 -0
- package/dist/esm/src/types/LoaderOptions.js +2 -0
- package/dist/esm/src/types/LoaderOptions.js.map +1 -0
- package/dist/esm/src/types/LutType.js +2 -0
- package/dist/esm/src/types/LutType.js.map +1 -0
- package/dist/esm/src/types/MetadataModules.js +2 -0
- package/dist/esm/src/types/MetadataModules.js.map +1 -0
- package/dist/esm/src/types/PixelDataTypedArray.js +2 -0
- package/dist/esm/src/types/PixelDataTypedArray.js.map +1 -0
- package/dist/esm/src/types/WADORSMetaData.js +2 -0
- package/dist/esm/src/types/WADORSMetaData.js.map +1 -0
- package/dist/esm/src/types/WebWorkerTypes.js +2 -0
- package/dist/esm/src/types/WebWorkerTypes.js.map +1 -0
- package/dist/esm/src/types/XHRRequest.js +2 -0
- package/dist/esm/src/types/XHRRequest.js.map +1 -0
- package/dist/esm/src/types/index.js +2 -0
- package/dist/esm/src/types/index.js.map +1 -0
- package/dist/esm/src/version.js +2 -0
- package/dist/esm/src/version.js.map +1 -0
- package/dist/types/codecs/jpeg.d.ts +11 -0
- package/dist/types/codecs/jpeg.d.ts.map +1 -0
- package/dist/types/codecs/jpegLossless.d.ts +8 -0
- package/dist/types/codecs/jpegLossless.d.ts.map +1 -0
- package/dist/types/src/constants/transferSyntaxes.d.ts +47 -0
- package/dist/types/src/constants/transferSyntaxes.d.ts.map +1 -0
- package/dist/types/src/externalModules.d.ts +6 -0
- package/dist/types/src/externalModules.d.ts.map +1 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.d.ts +4 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.d.ts.map +1 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.d.ts +3 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.d.ts.map +1 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.d.ts +3 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.d.ts.map +1 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.d.ts +3 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.d.ts.map +1 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.d.ts +3 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.d.ts.map +1 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.d.ts +3 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.d.ts.map +1 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/index.d.ts +8 -0
- package/dist/types/src/imageLoader/colorSpaceConverters/index.d.ts.map +1 -0
- package/dist/types/src/imageLoader/configure.d.ts +4 -0
- package/dist/types/src/imageLoader/configure.d.ts.map +1 -0
- package/dist/types/src/imageLoader/convertColorSpace.d.ts +2 -0
- package/dist/types/src/imageLoader/convertColorSpace.d.ts.map +1 -0
- package/dist/types/src/imageLoader/createImage.d.ts +5 -0
- package/dist/types/src/imageLoader/createImage.d.ts.map +1 -0
- package/dist/types/src/imageLoader/decodeImageFrame.d.ts +4 -0
- package/dist/types/src/imageLoader/decodeImageFrame.d.ts.map +1 -0
- package/dist/types/src/imageLoader/decodeJPEGBaseline8BitColor.d.ts +5 -0
- package/dist/types/src/imageLoader/decodeJPEGBaseline8BitColor.d.ts.map +1 -0
- package/dist/types/src/imageLoader/getImageFrame.d.ts +4 -0
- package/dist/types/src/imageLoader/getImageFrame.d.ts.map +1 -0
- package/dist/types/src/imageLoader/getInstanceModule.d.ts +4 -0
- package/dist/types/src/imageLoader/getInstanceModule.d.ts.map +1 -0
- package/dist/types/src/imageLoader/getMinMax.d.ts +5 -0
- package/dist/types/src/imageLoader/getMinMax.d.ts.map +1 -0
- package/dist/types/src/imageLoader/getScalingParameters.d.ts +7 -0
- package/dist/types/src/imageLoader/getScalingParameters.d.ts.map +1 -0
- package/dist/types/src/imageLoader/imageIdToURI.d.ts +2 -0
- package/dist/types/src/imageLoader/imageIdToURI.d.ts.map +1 -0
- package/dist/types/src/imageLoader/index.d.ts +95 -0
- package/dist/types/src/imageLoader/index.d.ts.map +1 -0
- package/dist/types/src/imageLoader/internal/index.d.ts +9 -0
- package/dist/types/src/imageLoader/internal/index.d.ts.map +1 -0
- package/dist/types/src/imageLoader/internal/options.d.ts +4 -0
- package/dist/types/src/imageLoader/internal/options.d.ts.map +1 -0
- package/dist/types/src/imageLoader/internal/rangeRequest.d.ts +10 -0
- package/dist/types/src/imageLoader/internal/rangeRequest.d.ts.map +1 -0
- package/dist/types/src/imageLoader/internal/streamRequest.d.ts +3 -0
- package/dist/types/src/imageLoader/internal/streamRequest.d.ts.map +1 -0
- package/dist/types/src/imageLoader/internal/xhrRequest.d.ts +4 -0
- package/dist/types/src/imageLoader/internal/xhrRequest.d.ts.map +1 -0
- package/dist/types/src/imageLoader/isColorConversionRequired.d.ts +2 -0
- package/dist/types/src/imageLoader/isColorConversionRequired.d.ts.map +1 -0
- package/dist/types/src/imageLoader/isJPEGBaseline8BitColor.d.ts +4 -0
- package/dist/types/src/imageLoader/isJPEGBaseline8BitColor.d.ts.map +1 -0
- package/dist/types/src/imageLoader/isNMReconstructable.d.ts +2 -0
- package/dist/types/src/imageLoader/isNMReconstructable.d.ts.map +1 -0
- package/dist/types/src/imageLoader/registerLoaders.d.ts +3 -0
- package/dist/types/src/imageLoader/registerLoaders.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/combineFrameInstance.d.ts +13 -0
- package/dist/types/src/imageLoader/wadors/combineFrameInstance.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/extractMultipart.d.ts +24 -0
- package/dist/types/src/imageLoader/wadors/extractMultipart.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/findIndexOfString.d.ts +3 -0
- package/dist/types/src/imageLoader/wadors/findIndexOfString.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/getImageQualityStatus.d.ts +3 -0
- package/dist/types/src/imageLoader/wadors/getImageQualityStatus.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/getPixelData.d.ts +27 -0
- package/dist/types/src/imageLoader/wadors/getPixelData.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/getTagValue.d.ts +2 -0
- package/dist/types/src/imageLoader/wadors/getTagValue.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/index.d.ts +26 -0
- package/dist/types/src/imageLoader/wadors/index.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/loadImage.d.ts +26 -0
- package/dist/types/src/imageLoader/wadors/loadImage.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/loadImage_test.d.ts +2 -0
- package/dist/types/src/imageLoader/wadors/loadImage_test.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/NMHelpers.d.ts +6 -0
- package/dist/types/src/imageLoader/wadors/metaData/NMHelpers.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/USHelpers.d.ts +20 -0
- package/dist/types/src/imageLoader/wadors/metaData/USHelpers.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.d.ts +4 -0
- package/dist/types/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/getFirstNumberValue.d.ts +3 -0
- package/dist/types/src/imageLoader/wadors/metaData/getFirstNumberValue.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/getNumberString.d.ts +4 -0
- package/dist/types/src/imageLoader/wadors/metaData/getNumberString.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/getNumberValue.d.ts +4 -0
- package/dist/types/src/imageLoader/wadors/metaData/getNumberValue.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/getNumberValues.d.ts +4 -0
- package/dist/types/src/imageLoader/wadors/metaData/getNumberValues.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/getOverlayPlaneModule.d.ts +5 -0
- package/dist/types/src/imageLoader/wadors/metaData/getOverlayPlaneModule.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/getSequenceItems.d.ts +4 -0
- package/dist/types/src/imageLoader/wadors/metaData/getSequenceItems.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/getValue.d.ts +4 -0
- package/dist/types/src/imageLoader/wadors/metaData/getValue.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/index.d.ts +8 -0
- package/dist/types/src/imageLoader/wadors/metaData/index.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaData/metaDataProvider.d.ts +15 -0
- package/dist/types/src/imageLoader/wadors/metaData/metaDataProvider.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/metaDataManager.d.ts +15 -0
- package/dist/types/src/imageLoader/wadors/metaDataManager.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/register.d.ts +2 -0
- package/dist/types/src/imageLoader/wadors/register.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadors/retrieveMultiframeMetadata.d.ts +16 -0
- package/dist/types/src/imageLoader/wadors/retrieveMultiframeMetadata.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/combineFrameInstanceDataset.d.ts +23 -0
- package/dist/types/src/imageLoader/wadouri/combineFrameInstanceDataset.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/dataSetCacheManager.d.ts +32 -0
- package/dist/types/src/imageLoader/wadouri/dataSetCacheManager.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/dataSetCacheManager_test.d.ts +2 -0
- package/dist/types/src/imageLoader/wadouri/dataSetCacheManager_test.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/dataset-from-partial-content.d.ts +7 -0
- package/dist/types/src/imageLoader/wadouri/dataset-from-partial-content.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/fileManager.d.ts +12 -0
- package/dist/types/src/imageLoader/wadouri/fileManager.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/getEncapsulatedImageFrame.d.ts +3 -0
- package/dist/types/src/imageLoader/wadouri/getEncapsulatedImageFrame.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/getPixelData.d.ts +4 -0
- package/dist/types/src/imageLoader/wadouri/getPixelData.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/getUncompressedImageFrame.d.ts +4 -0
- package/dist/types/src/imageLoader/wadouri/getUncompressedImageFrame.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/index.d.ts +44 -0
- package/dist/types/src/imageLoader/wadouri/index.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/loadFileRequest.d.ts +3 -0
- package/dist/types/src/imageLoader/wadouri/loadFileRequest.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/loadImage.d.ts +10 -0
- package/dist/types/src/imageLoader/wadouri/loadImage.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.d.ts +7 -0
- package/dist/types/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getImagePixelModule.d.ts +5 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getImagePixelModule.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getLUTs.d.ts +5 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getLUTs.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.d.ts +4 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getNumberValues.d.ts +4 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getNumberValues.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.d.ts +5 -0
- package/dist/types/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/metaData/index.d.ts +6 -0
- package/dist/types/src/imageLoader/wadouri/metaData/index.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/metaData/metaDataProvider.d.ts +3 -0
- package/dist/types/src/imageLoader/wadouri/metaData/metaDataProvider.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/parseImageId.d.ts +9 -0
- package/dist/types/src/imageLoader/wadouri/parseImageId.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/register.d.ts +3 -0
- package/dist/types/src/imageLoader/wadouri/register.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/retrieveMultiframeDataset.d.ts +19 -0
- package/dist/types/src/imageLoader/wadouri/retrieveMultiframeDataset.d.ts.map +1 -0
- package/dist/types/src/imageLoader/wadouri/unpackBinaryFrame.d.ts +4 -0
- package/dist/types/src/imageLoader/wadouri/unpackBinaryFrame.d.ts.map +1 -0
- package/dist/types/src/shared/calculateMinMax.d.ts +3 -0
- package/dist/types/src/shared/calculateMinMax.d.ts.map +1 -0
- package/dist/types/src/shared/calculateMinMax_test.d.ts +2 -0
- package/dist/types/src/shared/calculateMinMax_test.d.ts.map +1 -0
- package/dist/types/src/shared/decodeImageFrame.d.ts +2 -0
- package/dist/types/src/shared/decodeImageFrame.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeBigEndian.d.ts +5 -0
- package/dist/types/src/shared/decoders/decodeBigEndian.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeHTJ2K.d.ts +6 -0
- package/dist/types/src/shared/decoders/decodeHTJ2K.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeJPEG2000.d.ts +5 -0
- package/dist/types/src/shared/decoders/decodeJPEG2000.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeJPEGBaseline12Bit-js.d.ts +6 -0
- package/dist/types/src/shared/decoders/decodeJPEGBaseline12Bit-js.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.d.ts +1 -0
- package/dist/types/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeJPEGBaseline8Bit.d.ts +4 -0
- package/dist/types/src/shared/decoders/decodeJPEGBaseline8Bit.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeJPEGLS.d.ts +5 -0
- package/dist/types/src/shared/decoders/decodeJPEGLS.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeJPEGLossless.d.ts +6 -0
- package/dist/types/src/shared/decoders/decodeJPEGLossless.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeLittleEndian.d.ts +5 -0
- package/dist/types/src/shared/decoders/decodeLittleEndian.d.ts.map +1 -0
- package/dist/types/src/shared/decoders/decodeRLE.d.ts +5 -0
- package/dist/types/src/shared/decoders/decodeRLE.d.ts.map +1 -0
- package/dist/types/src/shared/getMinMax.d.ts +7 -0
- package/dist/types/src/shared/getMinMax.d.ts.map +1 -0
- package/dist/types/src/shared/getMinMax_test.d.ts +2 -0
- package/dist/types/src/shared/getMinMax_test.d.ts.map +1 -0
- package/dist/types/src/shared/getPixelDataTypeFromMinMax.d.ts +3 -0
- package/dist/types/src/shared/getPixelDataTypeFromMinMax.d.ts.map +1 -0
- package/dist/types/src/shared/isColorImage.d.ts +2 -0
- package/dist/types/src/shared/isColorImage.d.ts.map +1 -0
- package/dist/types/src/shared/scaling/bilinear.d.ts +2 -0
- package/dist/types/src/shared/scaling/bilinear.d.ts.map +1 -0
- package/dist/types/src/shared/scaling/replicate.d.ts +2 -0
- package/dist/types/src/shared/scaling/replicate.d.ts.map +1 -0
- package/dist/types/src/shared/scaling/scaleArray.d.ts +3 -0
- package/dist/types/src/shared/scaling/scaleArray.d.ts.map +1 -0
- package/dist/types/src/types/DICOMLoaderDataSetWithFetchMore.d.ts +10 -0
- package/dist/types/src/types/DICOMLoaderDataSetWithFetchMore.d.ts.map +1 -0
- package/dist/types/src/types/DICOMLoaderIImage.d.ts +14 -0
- package/dist/types/src/types/DICOMLoaderIImage.d.ts.map +1 -0
- package/dist/types/src/types/DICOMLoaderImageOptions.d.ts +27 -0
- package/dist/types/src/types/DICOMLoaderImageOptions.d.ts.map +1 -0
- package/dist/types/src/types/ImageFrame.d.ts +44 -0
- package/dist/types/src/types/ImageFrame.d.ts.map +1 -0
- package/dist/types/src/types/LoadRequestFunction.d.ts +2 -0
- package/dist/types/src/types/LoadRequestFunction.d.ts.map +1 -0
- package/dist/types/src/types/LoaderDecodeOptions.d.ts +5 -0
- package/dist/types/src/types/LoaderDecodeOptions.d.ts.map +1 -0
- package/dist/types/src/types/LoaderOptions.d.ts +19 -0
- package/dist/types/src/types/LoaderOptions.d.ts.map +1 -0
- package/dist/types/src/types/LutType.d.ts +7 -0
- package/dist/types/src/types/LutType.d.ts.map +1 -0
- package/dist/types/src/types/MetadataModules.d.ts +67 -0
- package/dist/types/src/types/MetadataModules.d.ts.map +1 -0
- package/dist/types/src/types/PixelDataTypedArray.d.ts +3 -0
- package/dist/types/src/types/PixelDataTypedArray.d.ts.map +1 -0
- package/dist/types/src/types/WADORSMetaData.d.ts +5 -0
- package/dist/types/src/types/WADORSMetaData.d.ts.map +1 -0
- package/dist/types/src/types/WebWorkerTypes.d.ts +65 -0
- package/dist/types/src/types/WebWorkerTypes.d.ts.map +1 -0
- package/dist/types/src/types/XHRRequest.d.ts +17 -0
- package/dist/types/src/types/XHRRequest.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +15 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/version.d.ts +3 -0
- package/dist/types/src/version.d.ts.map +1 -0
- package/package.json +20 -10
- 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/75788f12450d4c5ed494.wasm +0 -0
- 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.e62ecca63f1a2e124230.worker.js +0 -2
- package/dist/dynamic-import/index.worker.e62ecca63f1a2e124230.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,57 @@
|
|
|
1
|
+
import external from '../../externalModules';
|
|
2
|
+
function fixFragments(dataSet) {
|
|
3
|
+
const fragments = dataSet.elements.x7fe00010.fragments;
|
|
4
|
+
const totalLength = dataSet.byteArray.length;
|
|
5
|
+
for (const fragment of fragments) {
|
|
6
|
+
const { position, length } = fragment;
|
|
7
|
+
if (length > totalLength - position) {
|
|
8
|
+
console.log(`Truncated fragment, changing fragment length from ${fragment.length} to ${totalLength - position}`);
|
|
9
|
+
fragment.length = totalLength - position;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return dataSet;
|
|
13
|
+
}
|
|
14
|
+
function parsePartialByteArray(byteArray) {
|
|
15
|
+
const { dicomParser } = external;
|
|
16
|
+
let dataSet = dicomParser.parseDicom(byteArray, {
|
|
17
|
+
untilTag: 'x7fe00010',
|
|
18
|
+
});
|
|
19
|
+
if (!dataSet.elements.x7fe00010) {
|
|
20
|
+
console.warn('Pixel data not found!');
|
|
21
|
+
}
|
|
22
|
+
let pixelDataSet;
|
|
23
|
+
try {
|
|
24
|
+
pixelDataSet = dicomParser.parseDicom(byteArray);
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
console.error(err);
|
|
28
|
+
console.log('pixel data dataset:', err.dataSet);
|
|
29
|
+
pixelDataSet = err.dataSet;
|
|
30
|
+
}
|
|
31
|
+
dataSet.elements.x7fe00010 = pixelDataSet.elements.x7fe00010;
|
|
32
|
+
dataSet = fixFragments(dataSet);
|
|
33
|
+
return dataSet;
|
|
34
|
+
}
|
|
35
|
+
export default async function dataSetFromPartialContent(byteArray, loadRequest, metadata) {
|
|
36
|
+
const dataSet = parsePartialByteArray(byteArray);
|
|
37
|
+
const { uri, imageId, fileTotalLength } = metadata;
|
|
38
|
+
dataSet.fetchMore = async function (fetchOptions) {
|
|
39
|
+
const _options = Object.assign({
|
|
40
|
+
uri,
|
|
41
|
+
imageId,
|
|
42
|
+
fetchedLength: byteArray.length,
|
|
43
|
+
lengthToFetch: fileTotalLength - byteArray.length,
|
|
44
|
+
}, fetchOptions);
|
|
45
|
+
const { fetchedLength, lengthToFetch } = _options;
|
|
46
|
+
const { arrayBuffer } = await loadRequest(uri, imageId, {
|
|
47
|
+
byteRange: `${fetchedLength}-${fetchedLength + lengthToFetch}`,
|
|
48
|
+
});
|
|
49
|
+
const byteArrayToAppend = new Uint8Array(arrayBuffer);
|
|
50
|
+
const combinedByteArray = new Uint8Array(dataSet.byteArray.length + byteArrayToAppend.length);
|
|
51
|
+
combinedByteArray.set(dataSet.byteArray);
|
|
52
|
+
combinedByteArray.set(byteArrayToAppend, dataSet.byteArray.length);
|
|
53
|
+
return dataSetFromPartialContent(combinedByteArray, loadRequest, metadata);
|
|
54
|
+
};
|
|
55
|
+
return dataSet;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=dataset-from-partial-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataset-from-partial-content.js","sourceRoot":"","sources":["../../../../../src/imageLoader/wadouri/dataset-from-partial-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
let files = [];
|
|
2
|
+
function add(file) {
|
|
3
|
+
const fileIndex = files.push(file);
|
|
4
|
+
return `dicomfile:${fileIndex - 1}`;
|
|
5
|
+
}
|
|
6
|
+
function get(index) {
|
|
7
|
+
return files[index];
|
|
8
|
+
}
|
|
9
|
+
function remove(index) {
|
|
10
|
+
files[index] = undefined;
|
|
11
|
+
}
|
|
12
|
+
function purge() {
|
|
13
|
+
files = [];
|
|
14
|
+
}
|
|
15
|
+
export default {
|
|
16
|
+
add,
|
|
17
|
+
get,
|
|
18
|
+
remove,
|
|
19
|
+
purge,
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=fileManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileManager.js","sourceRoot":"","sources":["../../../../../src/imageLoader/wadouri/fileManager.ts"],"names":[],"mappings":"AAAA,IAAI,KAAK,GAAW,EAAE,CAAC;AAEvB,SAAS,GAAG,CAAC,IAAU;IACrB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,aAAa,SAAS,GAAG,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED,SAAS,KAAK;IACZ,KAAK,GAAG,EAAE,CAAC;AACb,CAAC;AAED,eAAe;IACb,GAAG;IACH,GAAG;IACH,MAAM;IACN,KAAK;CACN,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ByteStream, readSequenceItem } from 'dicom-parser';
|
|
2
|
+
import external from '../../externalModules';
|
|
3
|
+
function framesAreFragmented(dataSet) {
|
|
4
|
+
const numberOfFrames = dataSet.intString('x00280008');
|
|
5
|
+
const pixelDataElement = dataSet.elements.x7fe00010;
|
|
6
|
+
return numberOfFrames !== pixelDataElement.fragments.length;
|
|
7
|
+
}
|
|
8
|
+
export default function getEncapsulatedImageFrame(dataSet, frameIndex) {
|
|
9
|
+
const { dicomParser } = external;
|
|
10
|
+
if (dataSet.elements.x7fe00010 &&
|
|
11
|
+
dataSet.elements.x7fe00010.basicOffsetTable.length) {
|
|
12
|
+
return dicomParser.readEncapsulatedImageFrame(dataSet, dataSet.elements.x7fe00010, frameIndex);
|
|
13
|
+
}
|
|
14
|
+
if (framesAreFragmented(dataSet)) {
|
|
15
|
+
const basicOffsetTable = dicomParser.createJPEGBasicOffsetTable(dataSet, dataSet.elements.x7fe00010);
|
|
16
|
+
return dicomParser.readEncapsulatedImageFrame(dataSet, dataSet.elements.x7fe00010, frameIndex, basicOffsetTable);
|
|
17
|
+
}
|
|
18
|
+
const fragments = dataSet.elements.x7fe00010.fragments;
|
|
19
|
+
const byteStream = new ByteStream(dataSet.byteArrayParser, dataSet.byteArray, dataSet.elements.x7fe00010.dataOffset);
|
|
20
|
+
const basicOffsetTable = readSequenceItem(byteStream);
|
|
21
|
+
if (basicOffsetTable.tag !== 'xfffee000') {
|
|
22
|
+
throw 'dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000';
|
|
23
|
+
}
|
|
24
|
+
byteStream.seek(basicOffsetTable.length);
|
|
25
|
+
const fragmentZeroPosition = byteStream.position;
|
|
26
|
+
if (frameIndex + 1 > fragments.length) {
|
|
27
|
+
throw 'dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments';
|
|
28
|
+
}
|
|
29
|
+
const fragmentHeaderSize = 8;
|
|
30
|
+
const byteOffset = fragmentZeroPosition + fragments[frameIndex].offset + fragmentHeaderSize;
|
|
31
|
+
const length = fragments[frameIndex].length;
|
|
32
|
+
return new Uint8Array(byteStream.byteArray.buffer.slice(byteStream.byteArray.byteOffset + byteOffset, byteStream.byteArray.byteOffset + byteOffset + length));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=getEncapsulatedImageFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEncapsulatedImageFrame.js","sourceRoot":"","sources":["../../../../../src/imageLoader/wadouri/getEncapsulatedImageFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAM7C,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAEpD,OAAO,cAAc,KAAK,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,OAAgB,EAChB,UAAkB;IAElB,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IAEjC,IACE,OAAO,CAAC,QAAQ,CAAC,SAAS;QAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAClD,CAAC;QAED,OAAO,WAAW,CAAC,0BAA0B,CAC3C,OAAO,EACP,OAAO,CAAC,QAAQ,CAAC,SAAS,EAC1B,UAAU,CACX,CAAC;IACJ,CAAC;IAID,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,WAAW,CAAC,0BAA0B,CAC7D,OAAO,EACP,OAAO,CAAC,QAAQ,CAAC,SAAS,CAC3B,CAAC;QAEF,OAAO,WAAW,CAAC,0BAA0B,CAC3C,OAAO,EACP,OAAO,CAAC,QAAQ,CAAC,SAAS,EAC1B,UAAU,EACV,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAUD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;IAGvD,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CACtC,CAAC;IAGF,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEtD,IAAI,gBAAgB,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QACzC,MAAM,6EAA6E,CAAC;IACtF,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzC,MAAM,oBAAoB,GAAG,UAAU,CAAC,QAAQ,CAAC;IAKjD,IAAI,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,0EAA0E,CAAC;IACnF,CAAC;IAED,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,UAAU,GACd,oBAAoB,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAC3E,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAM5C,OAAO,IAAI,UAAU,CACnB,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAC/B,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,EAC5C,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,GAAG,MAAM,CACtD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import getEncapsulatedImageFrame from './getEncapsulatedImageFrame';
|
|
2
|
+
import getUncompressedImageFrame from './getUncompressedImageFrame';
|
|
3
|
+
function getPixelData(dataSet, frameIndex = 0) {
|
|
4
|
+
const pixelDataElement = dataSet.elements.x7fe00010 || dataSet.elements.x7fe00008;
|
|
5
|
+
if (!pixelDataElement) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
if (pixelDataElement.encapsulatedPixelData) {
|
|
9
|
+
return getEncapsulatedImageFrame(dataSet, frameIndex);
|
|
10
|
+
}
|
|
11
|
+
return getUncompressedImageFrame(dataSet, frameIndex);
|
|
12
|
+
}
|
|
13
|
+
export default getPixelData;
|
|
14
|
+
//# sourceMappingURL=getPixelData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPixelData.js","sourceRoot":"","sources":["../../../../../src/imageLoader/wadouri/getPixelData.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,SAAS,YAAY,CAAC,OAAgB,EAAE,UAAU,GAAG,CAAC;IACpD,MAAM,gBAAgB,GACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAE3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QAC3C,OAAO,yBAAyB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,yBAAyB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import unpackBinaryFrame from './unpackBinaryFrame';
|
|
2
|
+
function getUncompressedImageFrame(dataSet, frameIndex) {
|
|
3
|
+
const pixelDataElement = dataSet.elements.x7fe00010 || dataSet.elements.x7fe00008;
|
|
4
|
+
const bitsAllocated = dataSet.uint16('x00280100');
|
|
5
|
+
const rows = dataSet.uint16('x00280010');
|
|
6
|
+
const columns = dataSet.uint16('x00280011');
|
|
7
|
+
let samplesPerPixel = dataSet.uint16('x00280002');
|
|
8
|
+
const photometricInterpretation = dataSet.string('x00280004');
|
|
9
|
+
if (photometricInterpretation === 'YBR_FULL_422') {
|
|
10
|
+
samplesPerPixel = 2;
|
|
11
|
+
console.warn(`Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.
|
|
12
|
+
See http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.3.html for more information.`);
|
|
13
|
+
}
|
|
14
|
+
const pixelDataOffset = pixelDataElement.dataOffset;
|
|
15
|
+
const pixelsPerFrame = rows * columns * samplesPerPixel;
|
|
16
|
+
let frameOffset;
|
|
17
|
+
if (bitsAllocated === 8) {
|
|
18
|
+
frameOffset = pixelDataOffset + frameIndex * pixelsPerFrame;
|
|
19
|
+
if (frameOffset >= dataSet.byteArray.length) {
|
|
20
|
+
throw new Error('frame exceeds size of pixelData');
|
|
21
|
+
}
|
|
22
|
+
return new Uint8Array(dataSet.byteArray.buffer.slice(frameOffset, frameOffset + pixelsPerFrame));
|
|
23
|
+
}
|
|
24
|
+
else if (bitsAllocated === 16) {
|
|
25
|
+
frameOffset = pixelDataOffset + frameIndex * pixelsPerFrame * 2;
|
|
26
|
+
if (frameOffset >= dataSet.byteArray.length) {
|
|
27
|
+
throw new Error('frame exceeds size of pixelData');
|
|
28
|
+
}
|
|
29
|
+
return new Uint8Array(dataSet.byteArray.buffer.slice(frameOffset, frameOffset + pixelsPerFrame * 2));
|
|
30
|
+
}
|
|
31
|
+
else if (bitsAllocated === 1) {
|
|
32
|
+
frameOffset = pixelDataOffset + frameIndex * pixelsPerFrame * 0.125;
|
|
33
|
+
if (frameOffset >= dataSet.byteArray.length) {
|
|
34
|
+
throw new Error('frame exceeds size of pixelData');
|
|
35
|
+
}
|
|
36
|
+
return unpackBinaryFrame(dataSet.byteArray, frameOffset, pixelsPerFrame);
|
|
37
|
+
}
|
|
38
|
+
else if (bitsAllocated === 32) {
|
|
39
|
+
frameOffset = pixelDataOffset + frameIndex * pixelsPerFrame * 4;
|
|
40
|
+
if (frameOffset >= dataSet.byteArray.length) {
|
|
41
|
+
throw new Error('frame exceeds size of pixelData');
|
|
42
|
+
}
|
|
43
|
+
return new Uint8Array(dataSet.byteArray.buffer.slice(frameOffset, frameOffset + pixelsPerFrame * 4));
|
|
44
|
+
}
|
|
45
|
+
throw new Error('unsupported pixel format');
|
|
46
|
+
}
|
|
47
|
+
export default getUncompressedImageFrame;
|
|
48
|
+
//# sourceMappingURL=getUncompressedImageFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUncompressedImageFrame.js","sourceRoot":"","sources":["../../../../../src/imageLoader/wadouri/getUncompressedImageFrame.ts"],"names":[],"mappings":"AACA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAMpD,SAAS,yBAAyB,CAChC,OAAgB,EAChB,UAAkB;IAElB,MAAM,gBAAgB,GACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAoBlD,MAAM,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE9D,IAAI,yBAAyB,KAAK,cAAc,EAAE,CAAC;QACjD,eAAe,GAAG,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CACV;kHAC4G,CAC7G,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,UAAU,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,GAAG,OAAO,GAAG,eAAe,CAAC;IAExD,IAAI,WAAW,CAAC;IAEhB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,cAAc,CAAC;QAC5D,IAAI,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,UAAU,CACnB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,cAAc,CAAC,CAC1E,CAAC;IACJ,CAAC;SAAM,IAAI,aAAa,KAAK,EAAE,EAAE,CAAC;QAChC,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,cAAc,GAAG,CAAC,CAAC;QAChE,IAAI,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,UAAU,CACnB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAC5B,WAAW,EACX,WAAW,GAAG,cAAc,GAAG,CAAC,CACjC,CACF,CAAC;IACJ,CAAC;SAAM,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QAC/B,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,cAAc,GAAG,KAAK,CAAC;QACpE,IAAI,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC3E,CAAC;SAAM,IAAI,aAAa,KAAK,EAAE,EAAE,CAAC;QAChC,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,cAAc,GAAG,CAAC,CAAC;QAChE,IAAI,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,UAAU,CACnB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAC5B,WAAW,EACX,WAAW,GAAG,cAAc,GAAG,CAAC,CACjC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC9C,CAAC;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { getImagePixelModule, getLUTs, getModalityLUTOutputPixelRepresentation, getNumberValues, metaDataProvider, } from './metaData/index';
|
|
2
|
+
import dataSetCacheManager from './dataSetCacheManager';
|
|
3
|
+
import fileManager from './fileManager';
|
|
4
|
+
import getEncapsulatedImageFrame from './getEncapsulatedImageFrame';
|
|
5
|
+
import getUncompressedImageFrame from './getUncompressedImageFrame';
|
|
6
|
+
import loadFileRequest from './loadFileRequest';
|
|
7
|
+
import { loadImageFromPromise, getLoaderForScheme, loadImage, } from './loadImage';
|
|
8
|
+
import parseImageId from './parseImageId';
|
|
9
|
+
import unpackBinaryFrame from './unpackBinaryFrame';
|
|
10
|
+
import register from './register';
|
|
11
|
+
const metaData = {
|
|
12
|
+
getImagePixelModule,
|
|
13
|
+
getLUTs,
|
|
14
|
+
getModalityLUTOutputPixelRepresentation,
|
|
15
|
+
getNumberValues,
|
|
16
|
+
metaDataProvider,
|
|
17
|
+
};
|
|
18
|
+
export default {
|
|
19
|
+
metaData,
|
|
20
|
+
dataSetCacheManager,
|
|
21
|
+
fileManager,
|
|
22
|
+
getEncapsulatedImageFrame,
|
|
23
|
+
getUncompressedImageFrame,
|
|
24
|
+
loadFileRequest,
|
|
25
|
+
loadImageFromPromise,
|
|
26
|
+
getLoaderForScheme,
|
|
27
|
+
loadImage,
|
|
28
|
+
parseImageId,
|
|
29
|
+
unpackBinaryFrame,
|
|
30
|
+
register,
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/imageLoader/wadouri/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,OAAO,EACP,uCAAuC,EACvC,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,QAAQ,GAAG;IACf,mBAAmB;IACnB,OAAO;IACP,uCAAuC;IACvC,eAAe;IACf,gBAAgB;CACjB,CAAC;AAEF,eAAe;IACb,QAAQ;IACR,mBAAmB;IACnB,WAAW;IACX,yBAAyB;IACzB,yBAAyB;IACzB,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,SAAS;IACT,YAAY;IACZ,iBAAiB;IACjB,QAAQ;CACT,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import parseImageId from './parseImageId';
|
|
2
|
+
import fileManager from './fileManager';
|
|
3
|
+
function loadFileRequest(uri) {
|
|
4
|
+
const parsedImageId = parseImageId(uri);
|
|
5
|
+
const fileIndex = parseInt(parsedImageId.url, 10);
|
|
6
|
+
const file = fileManager.get(fileIndex);
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
const fileReader = new FileReader();
|
|
9
|
+
fileReader.onload = (e) => {
|
|
10
|
+
const dicomPart10AsArrayBuffer = e.target.result;
|
|
11
|
+
resolve(dicomPart10AsArrayBuffer);
|
|
12
|
+
};
|
|
13
|
+
fileReader.onerror = reject;
|
|
14
|
+
fileReader.readAsArrayBuffer(file);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export default loadFileRequest;
|
|
18
|
+
//# sourceMappingURL=loadFileRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadFileRequest.js","sourceRoot":"","sources":["../../../../../src/imageLoader/wadouri/loadFileRequest.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAExC,OAAO,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAClD,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAEpC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE;YACxB,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,MAAqB,CAAC;YAEhE,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC;QAE5B,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import createImage from '../createImage';
|
|
2
|
+
import { xhrRequest } from '../internal/index';
|
|
3
|
+
import dataSetCacheManager from './dataSetCacheManager';
|
|
4
|
+
import getPixelData from './getPixelData';
|
|
5
|
+
import loadFileRequest from './loadFileRequest';
|
|
6
|
+
import parseImageId from './parseImageId';
|
|
7
|
+
function addDecache(imageLoadObject, imageId) {
|
|
8
|
+
imageLoadObject.decache = function () {
|
|
9
|
+
const parsedImageId = parseImageId(imageId);
|
|
10
|
+
dataSetCacheManager.unload(parsedImageId.url);
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function loadImageFromPromise(dataSetPromise, imageId, frame = 0, sharedCacheKey, options, callbacks) {
|
|
14
|
+
const start = new Date().getTime();
|
|
15
|
+
const imageLoadObject = {
|
|
16
|
+
cancelFn: undefined,
|
|
17
|
+
promise: undefined,
|
|
18
|
+
};
|
|
19
|
+
imageLoadObject.promise = new Promise((resolve, reject) => {
|
|
20
|
+
dataSetPromise.then((dataSet) => {
|
|
21
|
+
const pixelData = getPixelData(dataSet, frame);
|
|
22
|
+
const transferSyntax = dataSet.string('x00020010');
|
|
23
|
+
const loadEnd = new Date().getTime();
|
|
24
|
+
const imagePromise = createImage(imageId, pixelData, transferSyntax, options);
|
|
25
|
+
addDecache(imageLoadObject, imageId);
|
|
26
|
+
imagePromise.then((image) => {
|
|
27
|
+
image = image;
|
|
28
|
+
image.data = dataSet;
|
|
29
|
+
image.sharedCacheKey = sharedCacheKey;
|
|
30
|
+
const end = new Date().getTime();
|
|
31
|
+
image.loadTimeInMS = loadEnd - start;
|
|
32
|
+
image.totalTimeInMS = end - start;
|
|
33
|
+
if (callbacks !== undefined &&
|
|
34
|
+
callbacks.imageDoneCallback !== undefined) {
|
|
35
|
+
callbacks.imageDoneCallback(image);
|
|
36
|
+
}
|
|
37
|
+
resolve(image);
|
|
38
|
+
}, function (error) {
|
|
39
|
+
reject({
|
|
40
|
+
error,
|
|
41
|
+
dataSet,
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}, function (error) {
|
|
45
|
+
reject({
|
|
46
|
+
error,
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
return imageLoadObject;
|
|
51
|
+
}
|
|
52
|
+
function loadImageFromDataSet(dataSet, imageId, frame = 0, sharedCacheKey, options) {
|
|
53
|
+
const start = new Date().getTime();
|
|
54
|
+
const promise = new Promise((resolve, reject) => {
|
|
55
|
+
const loadEnd = new Date().getTime();
|
|
56
|
+
let imagePromise;
|
|
57
|
+
try {
|
|
58
|
+
const pixelData = getPixelData(dataSet, frame);
|
|
59
|
+
const transferSyntax = dataSet.string('x00020010');
|
|
60
|
+
imagePromise = createImage(imageId, pixelData, transferSyntax, options);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
reject({
|
|
64
|
+
error,
|
|
65
|
+
dataSet,
|
|
66
|
+
});
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
imagePromise.then((image) => {
|
|
70
|
+
image = image;
|
|
71
|
+
image.data = dataSet;
|
|
72
|
+
image.sharedCacheKey = sharedCacheKey;
|
|
73
|
+
const end = new Date().getTime();
|
|
74
|
+
image.loadTimeInMS = loadEnd - start;
|
|
75
|
+
image.totalTimeInMS = end - start;
|
|
76
|
+
resolve(image);
|
|
77
|
+
}, reject);
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
promise: promise,
|
|
81
|
+
cancelFn: undefined,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function getLoaderForScheme(scheme) {
|
|
85
|
+
if (scheme === 'dicomweb' || scheme === 'wadouri') {
|
|
86
|
+
return xhrRequest;
|
|
87
|
+
}
|
|
88
|
+
else if (scheme === 'dicomfile') {
|
|
89
|
+
return loadFileRequest;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function loadImage(imageId, options = {}) {
|
|
93
|
+
const parsedImageId = parseImageId(imageId);
|
|
94
|
+
options = Object.assign({}, options);
|
|
95
|
+
delete options.loader;
|
|
96
|
+
const schemeLoader = getLoaderForScheme(parsedImageId.scheme);
|
|
97
|
+
if (dataSetCacheManager.isLoaded(parsedImageId.url)) {
|
|
98
|
+
const dataSet = dataSetCacheManager.get(parsedImageId.url, schemeLoader, imageId);
|
|
99
|
+
return loadImageFromDataSet(dataSet, imageId, parsedImageId.pixelDataFrame, parsedImageId.url, options);
|
|
100
|
+
}
|
|
101
|
+
const dataSetPromise = dataSetCacheManager.load(parsedImageId.url, schemeLoader, imageId);
|
|
102
|
+
return loadImageFromPromise(dataSetPromise, imageId, parsedImageId.frame, parsedImageId.url, options);
|
|
103
|
+
}
|
|
104
|
+
export { loadImageFromPromise, getLoaderForScheme, loadImage };
|
|
105
|
+
//# sourceMappingURL=loadImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadImage.js","sourceRoot":"","sources":["../../../../../src/imageLoader/wadouri/loadImage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import getNumberValues from './getNumberValues';
|
|
2
|
+
import isNMReconstructable from '../../isNMReconstructable';
|
|
3
|
+
function getImageTypeSubItemFromDataset(dataSet, index) {
|
|
4
|
+
const imageType = dataSet.string('x00080008');
|
|
5
|
+
if (imageType) {
|
|
6
|
+
const subTypes = imageType.split('\\');
|
|
7
|
+
if (subTypes.length > index) {
|
|
8
|
+
return subTypes[index];
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
function extractOrientationFromNMMultiframeDataset(dataSet) {
|
|
14
|
+
let imageOrientationPatient;
|
|
15
|
+
const modality = dataSet.string('x00080060');
|
|
16
|
+
if (modality?.includes('NM')) {
|
|
17
|
+
const imageSubType = getImageTypeSubItemFromDataset(dataSet, 2);
|
|
18
|
+
if (imageSubType && isNMReconstructable(imageSubType)) {
|
|
19
|
+
if (dataSet.elements.x00540022) {
|
|
20
|
+
imageOrientationPatient = getNumberValues(dataSet.elements.x00540022.items[0].dataSet, 'x00200037', 6);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return imageOrientationPatient;
|
|
25
|
+
}
|
|
26
|
+
function extractPositionFromNMMultiframeDataset(dataSet) {
|
|
27
|
+
let imagePositionPatient;
|
|
28
|
+
const modality = dataSet.string('x00080060');
|
|
29
|
+
if (modality?.includes('NM')) {
|
|
30
|
+
const imageSubType = getImageTypeSubItemFromDataset(dataSet, 2);
|
|
31
|
+
if (imageSubType && isNMReconstructable(imageSubType)) {
|
|
32
|
+
if (dataSet.elements.x00540022) {
|
|
33
|
+
imagePositionPatient = getNumberValues(dataSet.elements.x00540022.items[0].dataSet, 'x00200032', 3);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return imagePositionPatient;
|
|
38
|
+
}
|
|
39
|
+
function extractOrientationFromDataset(dataSet) {
|
|
40
|
+
let imageOrientationPatient = getNumberValues(dataSet, 'x00200037', 6);
|
|
41
|
+
if (!imageOrientationPatient && dataSet.elements.x00209116) {
|
|
42
|
+
imageOrientationPatient = getNumberValues(dataSet.elements.x00209116.items[0].dataSet, 'x00200037', 6);
|
|
43
|
+
}
|
|
44
|
+
if (!imageOrientationPatient) {
|
|
45
|
+
imageOrientationPatient =
|
|
46
|
+
extractOrientationFromNMMultiframeDataset(dataSet);
|
|
47
|
+
}
|
|
48
|
+
return imageOrientationPatient;
|
|
49
|
+
}
|
|
50
|
+
function extractPositionFromDataset(dataSet) {
|
|
51
|
+
let imagePositionPatient = getNumberValues(dataSet, 'x00200032', 3);
|
|
52
|
+
if (!imagePositionPatient && dataSet.elements.x00209113) {
|
|
53
|
+
imagePositionPatient = getNumberValues(dataSet.elements.x00209113.items[0].dataSet, 'x00200032', 3);
|
|
54
|
+
}
|
|
55
|
+
if (!imagePositionPatient) {
|
|
56
|
+
imagePositionPatient = extractPositionFromNMMultiframeDataset(dataSet);
|
|
57
|
+
}
|
|
58
|
+
return imagePositionPatient;
|
|
59
|
+
}
|
|
60
|
+
function extractSpacingFromDataset(dataSet) {
|
|
61
|
+
let pixelSpacing = getNumberValues(dataSet, 'x00280030', 2);
|
|
62
|
+
if (!pixelSpacing && dataSet.elements.x00289110) {
|
|
63
|
+
pixelSpacing = getNumberValues(dataSet.elements.x00289110.items[0].dataSet, 'x00280030', 2);
|
|
64
|
+
}
|
|
65
|
+
return pixelSpacing;
|
|
66
|
+
}
|
|
67
|
+
function extractSliceThicknessFromDataset(dataSet) {
|
|
68
|
+
let sliceThickness;
|
|
69
|
+
if (dataSet.elements.x00180050) {
|
|
70
|
+
sliceThickness = dataSet.floatString('x00180050');
|
|
71
|
+
}
|
|
72
|
+
else if (dataSet.elements.x00289110 &&
|
|
73
|
+
dataSet.elements.x00289110.items.length &&
|
|
74
|
+
dataSet.elements.x00289110.items[0].dataSet.elements.x00180050) {
|
|
75
|
+
sliceThickness =
|
|
76
|
+
dataSet.elements.x00289110.items[0].dataSet.floatString('x00180050');
|
|
77
|
+
}
|
|
78
|
+
return sliceThickness;
|
|
79
|
+
}
|
|
80
|
+
export { getImageTypeSubItemFromDataset, extractOrientationFromDataset, extractPositionFromDataset, extractSpacingFromDataset, extractSliceThicknessFromDataset, };
|
|
81
|
+
//# sourceMappingURL=extractPositioningFromDataset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractPositioningFromDataset.js","sourceRoot":"","sources":["../../../../../../src/imageLoader/wadouri/metaData/extractPositioningFromDataset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
function getLutDescriptor(dataSet, tag) {
|
|
2
|
+
if (!dataSet.elements[tag] || dataSet.elements[tag].length !== 6) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
return [
|
|
6
|
+
dataSet.uint16(tag, 0),
|
|
7
|
+
dataSet.uint16(tag, 1),
|
|
8
|
+
dataSet.uint16(tag, 2),
|
|
9
|
+
];
|
|
10
|
+
}
|
|
11
|
+
function getLutData(lutDataSet, tag, lutDescriptor) {
|
|
12
|
+
const lut = [];
|
|
13
|
+
const lutData = lutDataSet.elements[tag];
|
|
14
|
+
for (let i = 0; i < lutDescriptor[0]; i++) {
|
|
15
|
+
if (lutDescriptor[2] === 16) {
|
|
16
|
+
lut[i] = lutDataSet.uint16(tag, i);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
lut[i] = lutDataSet.byteArray[i + lutData.dataOffset];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return lut;
|
|
23
|
+
}
|
|
24
|
+
function populatePaletteColorLut(dataSet, imagePixelModule) {
|
|
25
|
+
imagePixelModule.redPaletteColorLookupTableDescriptor = getLutDescriptor(dataSet, 'x00281101');
|
|
26
|
+
imagePixelModule.greenPaletteColorLookupTableDescriptor = getLutDescriptor(dataSet, 'x00281102');
|
|
27
|
+
imagePixelModule.bluePaletteColorLookupTableDescriptor = getLutDescriptor(dataSet, 'x00281103');
|
|
28
|
+
if (imagePixelModule.redPaletteColorLookupTableDescriptor[0] === 0) {
|
|
29
|
+
imagePixelModule.redPaletteColorLookupTableDescriptor[0] = 65536;
|
|
30
|
+
imagePixelModule.greenPaletteColorLookupTableDescriptor[0] = 65536;
|
|
31
|
+
imagePixelModule.bluePaletteColorLookupTableDescriptor[0] = 65536;
|
|
32
|
+
}
|
|
33
|
+
const numLutEntries = imagePixelModule.redPaletteColorLookupTableDescriptor[0];
|
|
34
|
+
const lutData = dataSet.elements.x00281201;
|
|
35
|
+
const lutBitsAllocated = lutData.length === numLutEntries ? 8 : 16;
|
|
36
|
+
if (imagePixelModule.redPaletteColorLookupTableDescriptor[2] !==
|
|
37
|
+
lutBitsAllocated) {
|
|
38
|
+
imagePixelModule.redPaletteColorLookupTableDescriptor[2] = lutBitsAllocated;
|
|
39
|
+
imagePixelModule.greenPaletteColorLookupTableDescriptor[2] =
|
|
40
|
+
lutBitsAllocated;
|
|
41
|
+
imagePixelModule.bluePaletteColorLookupTableDescriptor[2] =
|
|
42
|
+
lutBitsAllocated;
|
|
43
|
+
}
|
|
44
|
+
imagePixelModule.redPaletteColorLookupTableData = getLutData(dataSet, 'x00281201', imagePixelModule.redPaletteColorLookupTableDescriptor);
|
|
45
|
+
imagePixelModule.greenPaletteColorLookupTableData = getLutData(dataSet, 'x00281202', imagePixelModule.greenPaletteColorLookupTableDescriptor);
|
|
46
|
+
imagePixelModule.bluePaletteColorLookupTableData = getLutData(dataSet, 'x00281203', imagePixelModule.bluePaletteColorLookupTableDescriptor);
|
|
47
|
+
}
|
|
48
|
+
function populateSmallestLargestPixelValues(dataSet, imagePixelModule) {
|
|
49
|
+
const pixelRepresentation = dataSet.uint16('x00280103');
|
|
50
|
+
if (pixelRepresentation === 0) {
|
|
51
|
+
imagePixelModule.smallestPixelValue = dataSet.uint16('x00280106');
|
|
52
|
+
imagePixelModule.largestPixelValue = dataSet.uint16('x00280107');
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
imagePixelModule.smallestPixelValue = dataSet.int16('x00280106');
|
|
56
|
+
imagePixelModule.largestPixelValue = dataSet.int16('x00280107');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function getImagePixelModule(dataSet) {
|
|
60
|
+
const imagePixelModule = {
|
|
61
|
+
samplesPerPixel: dataSet.uint16('x00280002'),
|
|
62
|
+
photometricInterpretation: dataSet.string('x00280004'),
|
|
63
|
+
rows: dataSet.uint16('x00280010'),
|
|
64
|
+
columns: dataSet.uint16('x00280011'),
|
|
65
|
+
bitsAllocated: dataSet.uint16('x00280100'),
|
|
66
|
+
bitsStored: dataSet.uint16('x00280101'),
|
|
67
|
+
highBit: dataSet.uint16('x00280102'),
|
|
68
|
+
pixelRepresentation: dataSet.uint16('x00280103'),
|
|
69
|
+
planarConfiguration: dataSet.uint16('x00280006'),
|
|
70
|
+
pixelAspectRatio: dataSet.string('x00280034'),
|
|
71
|
+
};
|
|
72
|
+
populateSmallestLargestPixelValues(dataSet, imagePixelModule);
|
|
73
|
+
if (imagePixelModule.photometricInterpretation === 'PALETTE COLOR' &&
|
|
74
|
+
dataSet.elements.x00281101) {
|
|
75
|
+
populatePaletteColorLut(dataSet, imagePixelModule);
|
|
76
|
+
}
|
|
77
|
+
return imagePixelModule;
|
|
78
|
+
}
|
|
79
|
+
export default getImagePixelModule;
|
|
80
|
+
//# sourceMappingURL=getImagePixelModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getImagePixelModule.js","sourceRoot":"","sources":["../../../../../../src/imageLoader/wadouri/metaData/getImagePixelModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
function getLUT(pixelRepresentation, lutDataSet) {
|
|
2
|
+
let numLUTEntries = lutDataSet.uint16('x00283002', 0);
|
|
3
|
+
if (numLUTEntries === 0) {
|
|
4
|
+
numLUTEntries = 65535;
|
|
5
|
+
}
|
|
6
|
+
let firstValueMapped = 0;
|
|
7
|
+
if (pixelRepresentation === 0) {
|
|
8
|
+
firstValueMapped = lutDataSet.uint16('x00283002', 1);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
firstValueMapped = lutDataSet.int16('x00283002', 1);
|
|
12
|
+
}
|
|
13
|
+
const numBitsPerEntry = lutDataSet.uint16('x00283002', 2);
|
|
14
|
+
const lut = {
|
|
15
|
+
id: '1',
|
|
16
|
+
firstValueMapped,
|
|
17
|
+
numBitsPerEntry,
|
|
18
|
+
lut: [],
|
|
19
|
+
};
|
|
20
|
+
for (let i = 0; i < numLUTEntries; i++) {
|
|
21
|
+
if (pixelRepresentation === 0) {
|
|
22
|
+
lut.lut[i] = lutDataSet.uint16('x00283006', i);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
lut.lut[i] = lutDataSet.int16('x00283006', i);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return lut;
|
|
29
|
+
}
|
|
30
|
+
function getLUTs(pixelRepresentation, lutSequence) {
|
|
31
|
+
if (!lutSequence || !lutSequence.items || !lutSequence.items.length) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const luts = [];
|
|
35
|
+
for (let i = 0; i < lutSequence.items.length; i++) {
|
|
36
|
+
const lutDataSet = lutSequence.items[i].dataSet;
|
|
37
|
+
const lut = getLUT(pixelRepresentation, lutDataSet);
|
|
38
|
+
if (lut) {
|
|
39
|
+
luts.push(lut);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return luts;
|
|
43
|
+
}
|
|
44
|
+
export default getLUTs;
|
|
45
|
+
//# sourceMappingURL=getLUTs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLUTs.js","sourceRoot":"","sources":["../../../../../../src/imageLoader/wadouri/metaData/getLUTs.ts"],"names":[],"mappings":"AAGA,SAAS,MAAM,CAAC,mBAA2B,EAAE,UAAmB;IAC9D,IAAI,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEtD,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;QAC9B,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG;QACV,EAAE,EAAE,GAAG;QACP,gBAAgB;QAChB,eAAe;QACf,GAAG,EAAE,EAAE;KACR,CAAC;IAGF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,mBAA2B,EAAE,WAAoB;IAChE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpE,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAc,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAEpD,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,OAAO,CAAC"}
|