@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,14 @@
|
|
|
1
|
+
function getValue(element, index, defaultValue) {
|
|
2
|
+
index = index || 0;
|
|
3
|
+
if (!element) {
|
|
4
|
+
return defaultValue;
|
|
5
|
+
}
|
|
6
|
+
if (!element.Value) {
|
|
7
|
+
return defaultValue;
|
|
8
|
+
}
|
|
9
|
+
if (Array.isArray(element.Value) && element.Value.length <= index) {
|
|
10
|
+
return defaultValue;
|
|
11
|
+
}
|
|
12
|
+
return element.Value[index];
|
|
13
|
+
}
|
|
14
|
+
export default getValue;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { default as getNumberString } from './getNumberString';
|
|
2
|
+
export { default as getNumberValue } from './getNumberValue';
|
|
3
|
+
export { default as getNumberValues } from './getNumberValues';
|
|
4
|
+
export { default as metaDataProvider } from './metaDataProvider';
|
|
5
|
+
export { default as getValue } from './getValue';
|
|
6
|
+
export { getFirstNumberValue } from './getFirstNumberValue';
|
|
7
|
+
export { getUSEnhancedRegions } from './USHelpers';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { default as getNumberString } from './getNumberString';
|
|
2
|
+
export { default as getNumberValue } from './getNumberValue';
|
|
3
|
+
export { default as getNumberValues } from './getNumberValues';
|
|
4
|
+
export { default as metaDataProvider } from './metaDataProvider';
|
|
5
|
+
export { default as getValue } from './getValue';
|
|
6
|
+
export { getFirstNumberValue } from './getFirstNumberValue';
|
|
7
|
+
export { getUSEnhancedRegions } from './USHelpers';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare function metaDataProvider(type: any, imageId: any): {};
|
|
2
|
+
export declare function getImageUrlModule(imageId: any, metaData: any): {
|
|
3
|
+
isVideo: string | false;
|
|
4
|
+
rendered: any;
|
|
5
|
+
thumbnail: any;
|
|
6
|
+
};
|
|
7
|
+
export declare function getCineModule(imageId: any, metaData: any): {
|
|
8
|
+
cineRate: string;
|
|
9
|
+
numberOfFrames: number;
|
|
10
|
+
};
|
|
11
|
+
export declare function getTransferSyntax(imageId: any, metaData: any): {
|
|
12
|
+
transferSyntaxUID: string;
|
|
13
|
+
};
|
|
14
|
+
export default metaDataProvider;
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import * as dicomParser from 'dicom-parser';
|
|
2
|
+
import { Enums, utilities } from '@cornerstonejs/core';
|
|
3
|
+
import getNumberValues from './getNumberValues';
|
|
4
|
+
import getNumberValue from './getNumberValue';
|
|
5
|
+
import getOverlayPlaneModule from './getOverlayPlaneModule';
|
|
6
|
+
import metaDataManager, { retrieveMultiframeMetadataImageId, } from '../metaDataManager';
|
|
7
|
+
import getValue from './getValue';
|
|
8
|
+
import { getMultiframeInformation, getFrameInformation, } from '../combineFrameInstance';
|
|
9
|
+
import { extractOrientationFromMetadata, extractPositionFromMetadata, } from './extractPositioningFromMetadata';
|
|
10
|
+
import { getImageTypeSubItemFromMetadata } from './NMHelpers';
|
|
11
|
+
import isNMReconstructable from '../../isNMReconstructable';
|
|
12
|
+
import { getInstanceModule, instanceModuleNames, } from '../../getInstanceModule';
|
|
13
|
+
import { getUSEnhancedRegions } from './USHelpers';
|
|
14
|
+
function metaDataProvider(type, imageId) {
|
|
15
|
+
const { MetadataModules } = Enums;
|
|
16
|
+
if (type === MetadataModules.MULTIFRAME) {
|
|
17
|
+
const { metadata, frame } = retrieveMultiframeMetadataImageId(imageId);
|
|
18
|
+
if (!metadata) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const { PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, NumberOfFrames, } = getMultiframeInformation(metadata);
|
|
22
|
+
if (PerFrameFunctionalGroupsSequence || NumberOfFrames > 1) {
|
|
23
|
+
const { shared, perFrame } = getFrameInformation(PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, frame);
|
|
24
|
+
return {
|
|
25
|
+
NumberOfFrames,
|
|
26
|
+
PerFrameFunctionalInformation: perFrame,
|
|
27
|
+
SharedFunctionalInformation: shared,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
NumberOfFrames,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const metaData = metaDataManager.get(imageId);
|
|
35
|
+
if (!metaData) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (type === MetadataModules.GENERAL_STUDY) {
|
|
39
|
+
return {
|
|
40
|
+
studyDescription: getValue(metaData['00081030']),
|
|
41
|
+
studyDate: dicomParser.parseDA(getValue(metaData['00080020'])),
|
|
42
|
+
studyTime: dicomParser.parseTM(getValue(metaData['00080030'], 0, '')),
|
|
43
|
+
accessionNumber: getValue(metaData['00080050']),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
if (type === MetadataModules.GENERAL_SERIES) {
|
|
47
|
+
return {
|
|
48
|
+
modality: getValue(metaData['00080060']),
|
|
49
|
+
seriesInstanceUID: getValue(metaData['0020000E']),
|
|
50
|
+
seriesNumber: getNumberValue(metaData['00200011']),
|
|
51
|
+
studyInstanceUID: getValue(metaData['0020000D']),
|
|
52
|
+
seriesDate: dicomParser.parseDA(getValue(metaData['00080021'])),
|
|
53
|
+
seriesTime: dicomParser.parseTM(getValue(metaData['00080031'], 0, '')),
|
|
54
|
+
acquisitionDate: dicomParser.parseDA(getValue(metaData['00080022'])),
|
|
55
|
+
acquisitionTime: dicomParser.parseTM(getValue(metaData['00080032'], 0, '')),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (type === MetadataModules.GENERAL_IMAGE) {
|
|
59
|
+
return {
|
|
60
|
+
sopInstanceUID: getValue(metaData['00080018']),
|
|
61
|
+
instanceNumber: getNumberValue(metaData['00200013']),
|
|
62
|
+
lossyImageCompression: getValue(metaData['00282110']),
|
|
63
|
+
lossyImageCompressionRatio: getNumberValue(metaData['00282112']),
|
|
64
|
+
lossyImageCompressionMethod: getValue(metaData['00282114']),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (type === MetadataModules.PATIENT) {
|
|
68
|
+
return {
|
|
69
|
+
patientID: getValue(metaData['00100020']),
|
|
70
|
+
patientName: getValue(metaData['00100010']),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (type === MetadataModules.PATIENT_STUDY) {
|
|
74
|
+
return {
|
|
75
|
+
patientAge: getNumberValue(metaData['00101010']),
|
|
76
|
+
patientSize: getNumberValue(metaData['00101020']),
|
|
77
|
+
patientSex: getValue(metaData['00100040']),
|
|
78
|
+
patientWeight: getNumberValue(metaData['00101030']),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (type === MetadataModules.NM_MULTIFRAME_GEOMETRY) {
|
|
82
|
+
const modality = getValue(metaData['00080060']);
|
|
83
|
+
const imageSubType = getImageTypeSubItemFromMetadata(metaData, 2);
|
|
84
|
+
return {
|
|
85
|
+
modality,
|
|
86
|
+
imageType: getValue(metaData['00080008']),
|
|
87
|
+
imageSubType,
|
|
88
|
+
imageOrientationPatient: extractOrientationFromMetadata(metaData),
|
|
89
|
+
imagePositionPatient: extractPositionFromMetadata(metaData),
|
|
90
|
+
sliceThickness: getNumberValue(metaData['00180050']),
|
|
91
|
+
spacingBetweenSlices: getNumberValue(metaData['00180088']),
|
|
92
|
+
pixelSpacing: getNumberValues(metaData['00280030'], 2),
|
|
93
|
+
numberOfFrames: getNumberValue(metaData['00280008']),
|
|
94
|
+
isNMReconstructable: isNMReconstructable(imageSubType) && modality.includes('NM'),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (type === MetadataModules.IMAGE_PLANE) {
|
|
98
|
+
let imageOrientationPatient = extractOrientationFromMetadata(metaData);
|
|
99
|
+
let imagePositionPatient = extractPositionFromMetadata(metaData);
|
|
100
|
+
const pixelSpacing = getNumberValues(metaData['00280030'], 2);
|
|
101
|
+
let columnPixelSpacing = null;
|
|
102
|
+
let rowPixelSpacing = null;
|
|
103
|
+
let rowCosines = null;
|
|
104
|
+
let columnCosines = null;
|
|
105
|
+
let usingDefaultValues = false;
|
|
106
|
+
if (pixelSpacing) {
|
|
107
|
+
rowPixelSpacing = pixelSpacing[0];
|
|
108
|
+
columnPixelSpacing = pixelSpacing[1];
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
usingDefaultValues = true;
|
|
112
|
+
rowPixelSpacing = 1;
|
|
113
|
+
columnPixelSpacing = 1;
|
|
114
|
+
}
|
|
115
|
+
if (imageOrientationPatient) {
|
|
116
|
+
rowCosines = [
|
|
117
|
+
parseFloat(imageOrientationPatient[0]),
|
|
118
|
+
parseFloat(imageOrientationPatient[1]),
|
|
119
|
+
parseFloat(imageOrientationPatient[2]),
|
|
120
|
+
];
|
|
121
|
+
columnCosines = [
|
|
122
|
+
parseFloat(imageOrientationPatient[3]),
|
|
123
|
+
parseFloat(imageOrientationPatient[4]),
|
|
124
|
+
parseFloat(imageOrientationPatient[5]),
|
|
125
|
+
];
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
rowCosines = [0, 1, 0];
|
|
129
|
+
columnCosines = [0, 0, -1];
|
|
130
|
+
usingDefaultValues = true;
|
|
131
|
+
imageOrientationPatient = [...rowCosines, ...columnCosines];
|
|
132
|
+
}
|
|
133
|
+
if (!imagePositionPatient) {
|
|
134
|
+
imagePositionPatient = [0, 0, 0];
|
|
135
|
+
usingDefaultValues = true;
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
frameOfReferenceUID: getValue(metaData['00200052']),
|
|
139
|
+
rows: getNumberValue(metaData['00280010']),
|
|
140
|
+
columns: getNumberValue(metaData['00280011']),
|
|
141
|
+
imageOrientationPatient,
|
|
142
|
+
rowCosines,
|
|
143
|
+
columnCosines,
|
|
144
|
+
imagePositionPatient,
|
|
145
|
+
sliceThickness: getNumberValue(metaData['00180050']),
|
|
146
|
+
sliceLocation: getNumberValue(metaData['00201041']),
|
|
147
|
+
pixelSpacing,
|
|
148
|
+
rowPixelSpacing,
|
|
149
|
+
columnPixelSpacing,
|
|
150
|
+
usingDefaultValues,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
if (type === MetadataModules.ULTRASOUND_ENHANCED_REGION) {
|
|
154
|
+
return getUSEnhancedRegions(metaData);
|
|
155
|
+
}
|
|
156
|
+
if (type === MetadataModules.CALIBRATION) {
|
|
157
|
+
const modality = getValue(metaData['00080060']);
|
|
158
|
+
if (modality === 'US') {
|
|
159
|
+
const enhancedRegion = getUSEnhancedRegions(metaData);
|
|
160
|
+
return {
|
|
161
|
+
sequenceOfUltrasoundRegions: enhancedRegion,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (type === MetadataModules.IMAGE_URL) {
|
|
166
|
+
return getImageUrlModule(imageId, metaData);
|
|
167
|
+
}
|
|
168
|
+
if (type === MetadataModules.CINE) {
|
|
169
|
+
return getCineModule(imageId, metaData);
|
|
170
|
+
}
|
|
171
|
+
if (type === MetadataModules.IMAGE_PIXEL) {
|
|
172
|
+
return {
|
|
173
|
+
samplesPerPixel: getNumberValue(metaData['00280002']),
|
|
174
|
+
photometricInterpretation: getValue(metaData['00280004']),
|
|
175
|
+
rows: getNumberValue(metaData['00280010']),
|
|
176
|
+
columns: getNumberValue(metaData['00280011']),
|
|
177
|
+
bitsAllocated: getNumberValue(metaData['00280100']),
|
|
178
|
+
bitsStored: getNumberValue(metaData['00280101']),
|
|
179
|
+
highBit: getValue(metaData['00280102']),
|
|
180
|
+
pixelRepresentation: getNumberValue(metaData['00280103']),
|
|
181
|
+
planarConfiguration: getNumberValue(metaData['00280006']),
|
|
182
|
+
pixelAspectRatio: getValue(metaData['00280034']),
|
|
183
|
+
smallestPixelValue: getNumberValue(metaData['00280106']),
|
|
184
|
+
largestPixelValue: getNumberValue(metaData['00280107']),
|
|
185
|
+
redPaletteColorLookupTableDescriptor: getNumberValues(metaData['00281101']),
|
|
186
|
+
greenPaletteColorLookupTableDescriptor: getNumberValues(metaData['00281102']),
|
|
187
|
+
bluePaletteColorLookupTableDescriptor: getNumberValues(metaData['00281103']),
|
|
188
|
+
redPaletteColorLookupTableData: getNumberValues(metaData['00281201']),
|
|
189
|
+
greenPaletteColorLookupTableData: getNumberValues(metaData['00281202']),
|
|
190
|
+
bluePaletteColorLookupTableData: getNumberValues(metaData['00281203']),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
if (type === MetadataModules.VOI_LUT) {
|
|
194
|
+
return {
|
|
195
|
+
windowCenter: getNumberValues(metaData['00281050'], 1),
|
|
196
|
+
windowWidth: getNumberValues(metaData['00281051'], 1),
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
if (type === MetadataModules.MODALITY_LUT) {
|
|
200
|
+
return {
|
|
201
|
+
rescaleIntercept: getNumberValue(metaData['00281052']),
|
|
202
|
+
rescaleSlope: getNumberValue(metaData['00281053']),
|
|
203
|
+
rescaleType: getValue(metaData['00281054']),
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
if (type === MetadataModules.SOP_COMMON) {
|
|
207
|
+
return {
|
|
208
|
+
sopClassUID: getValue(metaData['00080016']),
|
|
209
|
+
sopInstanceUID: getValue(metaData['00080018']),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
if (type === MetadataModules.PET_ISOTOPE) {
|
|
213
|
+
const radiopharmaceuticalInfo = getValue(metaData['00540016']);
|
|
214
|
+
if (radiopharmaceuticalInfo === undefined) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
radiopharmaceuticalInfo: {
|
|
219
|
+
radiopharmaceuticalStartTime: dicomParser.parseTM(getValue(radiopharmaceuticalInfo['00181072'], 0, '')),
|
|
220
|
+
radiopharmaceuticalStartDateTime: getValue(radiopharmaceuticalInfo['00181078'], 0, ''),
|
|
221
|
+
radionuclideTotalDose: getNumberValue(radiopharmaceuticalInfo['00181074']),
|
|
222
|
+
radionuclideHalfLife: getNumberValue(radiopharmaceuticalInfo['00181075']),
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
if (type === MetadataModules.OVERLAY_PLANE) {
|
|
227
|
+
return getOverlayPlaneModule(metaData);
|
|
228
|
+
}
|
|
229
|
+
if (type === 'transferSyntax') {
|
|
230
|
+
return getTransferSyntax(imageId, metaData);
|
|
231
|
+
}
|
|
232
|
+
if (type === MetadataModules.PET_SERIES) {
|
|
233
|
+
return {
|
|
234
|
+
correctedImage: getValue(metaData['00280051']),
|
|
235
|
+
units: getValue(metaData['00541001']),
|
|
236
|
+
decayCorrection: getValue(metaData['00541102']),
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
if (type === MetadataModules.PET_IMAGE) {
|
|
240
|
+
return {
|
|
241
|
+
frameReferenceTime: getNumberValue(metaData['00541300']),
|
|
242
|
+
actualFrameDuration: getNumberValue(metaData['00181242']),
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
if (type === 'instance') {
|
|
246
|
+
return getInstanceModule(imageId, metaDataProvider, instanceModuleNames);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
export function getImageUrlModule(imageId, metaData) {
|
|
250
|
+
const { transferSyntaxUID } = getTransferSyntax(imageId, metaData);
|
|
251
|
+
const isVideo = utilities.isVideoTransferSyntax(transferSyntaxUID);
|
|
252
|
+
const imageUrl = imageId.substring(7);
|
|
253
|
+
const thumbnail = imageUrl.replace('/frames/', '/thumbnail/');
|
|
254
|
+
let rendered = imageUrl.replace('/frames/', '/rendered/');
|
|
255
|
+
if (isVideo) {
|
|
256
|
+
rendered = rendered.replace('/rendered/1', '/rendered');
|
|
257
|
+
}
|
|
258
|
+
return {
|
|
259
|
+
isVideo,
|
|
260
|
+
rendered,
|
|
261
|
+
thumbnail,
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
export function getCineModule(imageId, metaData) {
|
|
265
|
+
const cineRate = getValue(metaData['00180040']);
|
|
266
|
+
return {
|
|
267
|
+
cineRate,
|
|
268
|
+
numberOfFrames: getNumberValue(metaData['00280008']),
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
export function getTransferSyntax(imageId, metaData) {
|
|
272
|
+
return {
|
|
273
|
+
transferSyntaxUID: getValue(metaData['00020010']) ||
|
|
274
|
+
getValue(metaData['00083002']),
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
export default metaDataProvider;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WADORSMetaData } from '../../types';
|
|
2
|
+
declare let metadataByImageURI: any[];
|
|
3
|
+
declare function retrieveMultiframeMetadataImageId(imageId: any): {
|
|
4
|
+
metadata: any;
|
|
5
|
+
frame: number;
|
|
6
|
+
};
|
|
7
|
+
declare function isMultiframe(metadata: any): boolean;
|
|
8
|
+
declare function add(imageId: string, metadata: WADORSMetaData): void;
|
|
9
|
+
declare function get(imageId: string): WADORSMetaData;
|
|
10
|
+
declare function remove(imageId: any): void;
|
|
11
|
+
declare function purge(): void;
|
|
12
|
+
export { metadataByImageURI, isMultiframe, retrieveMultiframeMetadataImageId };
|
|
13
|
+
declare const _default: {
|
|
14
|
+
add: typeof add;
|
|
15
|
+
get: typeof get;
|
|
16
|
+
remove: typeof remove;
|
|
17
|
+
purge: typeof purge;
|
|
18
|
+
};
|
|
19
|
+
export default _default;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import imageIdToURI from '../imageIdToURI';
|
|
2
|
+
import { combineFrameInstance } from './combineFrameInstance';
|
|
3
|
+
let metadataByImageURI = [];
|
|
4
|
+
let multiframeMetadataByImageURI = {};
|
|
5
|
+
import getValue from './metaData/getValue';
|
|
6
|
+
function _retrieveMultiframeMetadataImageURI(imageURI) {
|
|
7
|
+
const lastSlashIdx = imageURI.indexOf('/frames/') + 8;
|
|
8
|
+
const imageIdFrameless = imageURI.slice(0, lastSlashIdx);
|
|
9
|
+
const frame = parseInt(imageURI.slice(lastSlashIdx), 10);
|
|
10
|
+
const metadata = metadataByImageURI[`${imageIdFrameless}1`];
|
|
11
|
+
return {
|
|
12
|
+
metadata,
|
|
13
|
+
frame,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function retrieveMultiframeMetadataImageId(imageId) {
|
|
17
|
+
const imageURI = imageIdToURI(imageId);
|
|
18
|
+
return _retrieveMultiframeMetadataImageURI(imageURI);
|
|
19
|
+
}
|
|
20
|
+
function isMultiframe(metadata) {
|
|
21
|
+
const numberOfFrames = getValue(metadata['00280008']);
|
|
22
|
+
return numberOfFrames && numberOfFrames > 1;
|
|
23
|
+
}
|
|
24
|
+
function add(imageId, metadata) {
|
|
25
|
+
const imageURI = imageIdToURI(imageId);
|
|
26
|
+
Object.defineProperty(metadata, 'isMultiframe', {
|
|
27
|
+
value: isMultiframe(metadata),
|
|
28
|
+
enumerable: false,
|
|
29
|
+
});
|
|
30
|
+
metadataByImageURI[imageURI] = metadata;
|
|
31
|
+
}
|
|
32
|
+
function get(imageId) {
|
|
33
|
+
const imageURI = imageIdToURI(imageId);
|
|
34
|
+
const metadata = metadataByImageURI[imageURI];
|
|
35
|
+
if (metadata && !metadata?.isMultiframe) {
|
|
36
|
+
return metadata;
|
|
37
|
+
}
|
|
38
|
+
const cachedMetadata = multiframeMetadataByImageURI[imageURI];
|
|
39
|
+
if (cachedMetadata) {
|
|
40
|
+
return cachedMetadata;
|
|
41
|
+
}
|
|
42
|
+
const retrievedMetadata = _retrieveMultiframeMetadataImageURI(imageURI);
|
|
43
|
+
if (!retrievedMetadata || !retrievedMetadata.metadata) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const { metadata: firstFrameMetadata, frame } = retrievedMetadata;
|
|
47
|
+
if (firstFrameMetadata) {
|
|
48
|
+
const combined = combineFrameInstance(frame, firstFrameMetadata);
|
|
49
|
+
multiframeMetadataByImageURI[imageURI] = combined;
|
|
50
|
+
return combined;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function remove(imageId) {
|
|
54
|
+
const imageURI = imageIdToURI(imageId);
|
|
55
|
+
metadataByImageURI[imageURI] = undefined;
|
|
56
|
+
multiframeMetadataByImageURI[imageURI] = undefined;
|
|
57
|
+
}
|
|
58
|
+
function purge() {
|
|
59
|
+
metadataByImageURI = [];
|
|
60
|
+
multiframeMetadataByImageURI = {};
|
|
61
|
+
}
|
|
62
|
+
export { metadataByImageURI, isMultiframe, retrieveMultiframeMetadataImageId };
|
|
63
|
+
export default {
|
|
64
|
+
add,
|
|
65
|
+
get,
|
|
66
|
+
remove,
|
|
67
|
+
purge,
|
|
68
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { metaData, registerImageLoader } from '@cornerstonejs/core';
|
|
2
|
+
import loadImage from './loadImage';
|
|
3
|
+
import { metaDataProvider } from './metaData';
|
|
4
|
+
export default function () {
|
|
5
|
+
registerImageLoader('wadors', loadImage);
|
|
6
|
+
metaData.addProvider(metaDataProvider);
|
|
7
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare function getDirectFrameInformation(dataSet: any, frame: any): {
|
|
2
|
+
NumberOfFrames: any;
|
|
3
|
+
PerFrameFunctionalInformation: {};
|
|
4
|
+
SharedFunctionalInformation: {};
|
|
5
|
+
} | {
|
|
6
|
+
NumberOfFrames: any;
|
|
7
|
+
PerFrameFunctionalInformation?: undefined;
|
|
8
|
+
SharedFunctionalInformation?: undefined;
|
|
9
|
+
};
|
|
10
|
+
declare function getFrameInformation(PerFrameFunctionalGroupsSequence: any, SharedFunctionalGroupsSequence: any, frameNumber: any): {
|
|
11
|
+
shared: {};
|
|
12
|
+
perFrame: {};
|
|
13
|
+
};
|
|
14
|
+
declare function getMultiframeInformation(dataSet: any): {
|
|
15
|
+
NumberOfFrames: any;
|
|
16
|
+
PerFrameFunctionalGroupsSequence: any;
|
|
17
|
+
SharedFunctionalGroupsSequence: any;
|
|
18
|
+
otherElements: any;
|
|
19
|
+
otherAttributtes: any;
|
|
20
|
+
};
|
|
21
|
+
declare function combineFrameInstanceDataset(frameNumber: any, dataSet: any): any;
|
|
22
|
+
export { combineFrameInstanceDataset, getMultiframeInformation, getFrameInformation, getDirectFrameInformation, };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
function getDirectFrameInformation(dataSet, frame) {
|
|
2
|
+
if (!dataSet) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
const { NumberOfFrames, PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, } = getMultiframeInformation(dataSet);
|
|
6
|
+
if (PerFrameFunctionalGroupsSequence || NumberOfFrames > 1) {
|
|
7
|
+
const { shared, perFrame } = getFrameInformation(PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, frame);
|
|
8
|
+
return {
|
|
9
|
+
NumberOfFrames,
|
|
10
|
+
PerFrameFunctionalInformation: perFrame,
|
|
11
|
+
SharedFunctionalInformation: shared,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
NumberOfFrames,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function getFrameInformation(PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, frameNumber) {
|
|
19
|
+
const shared = {};
|
|
20
|
+
(SharedFunctionalGroupsSequence
|
|
21
|
+
? Object.values(SharedFunctionalGroupsSequence.items[0].dataSet.elements)
|
|
22
|
+
: [])
|
|
23
|
+
.map((it) => (shared[it.tag] = it));
|
|
24
|
+
const perFrame = {};
|
|
25
|
+
(PerFrameFunctionalGroupsSequence
|
|
26
|
+
? Object.values(PerFrameFunctionalGroupsSequence.items[frameNumber - 1].dataSet.elements)
|
|
27
|
+
: [])
|
|
28
|
+
.map((it) => (perFrame[it.tag] = it));
|
|
29
|
+
return {
|
|
30
|
+
shared,
|
|
31
|
+
perFrame,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function getMultiframeInformation(dataSet) {
|
|
35
|
+
if (!dataSet) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const { elements, ...otherAttributtes } = dataSet;
|
|
39
|
+
const { x52009230: PerFrameFunctionalGroupsSequence, x52009229: SharedFunctionalGroupsSequence, ...otherElements } = elements;
|
|
40
|
+
const NumberOfFrames = dataSet.intString('x00280008');
|
|
41
|
+
return {
|
|
42
|
+
NumberOfFrames,
|
|
43
|
+
PerFrameFunctionalGroupsSequence,
|
|
44
|
+
SharedFunctionalGroupsSequence,
|
|
45
|
+
otherElements,
|
|
46
|
+
otherAttributtes,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function combineFrameInstanceDataset(frameNumber, dataSet) {
|
|
50
|
+
if (!dataSet) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const { NumberOfFrames, PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, otherElements, } = getMultiframeInformation(dataSet);
|
|
54
|
+
if (PerFrameFunctionalGroupsSequence || NumberOfFrames > 1) {
|
|
55
|
+
const { shared, perFrame } = getFrameInformation(PerFrameFunctionalGroupsSequence, SharedFunctionalGroupsSequence, frameNumber);
|
|
56
|
+
const newElements = {
|
|
57
|
+
elements: {
|
|
58
|
+
...otherElements,
|
|
59
|
+
...shared,
|
|
60
|
+
...perFrame,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
const clonedDataset = Object.create(dataSet);
|
|
64
|
+
const newDataset = Object.assign(clonedDataset, newElements);
|
|
65
|
+
return newDataset;
|
|
66
|
+
}
|
|
67
|
+
return dataSet;
|
|
68
|
+
}
|
|
69
|
+
export { combineFrameInstanceDataset, getMultiframeInformation, getFrameInformation, getDirectFrameInformation, };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { DataSet } from 'dicom-parser';
|
|
2
|
+
import type { LoadRequestFunction, DICOMLoaderDataSetWithFetchMore } from '../../types';
|
|
3
|
+
import { loadedDataSets } from './loadedDataSets';
|
|
4
|
+
export interface CornerstoneWadoLoaderCacheManagerInfoResponse {
|
|
5
|
+
cacheSizeInBytes: number;
|
|
6
|
+
numberOfDataSetsCached: number;
|
|
7
|
+
}
|
|
8
|
+
export interface CornerstoneWadoLoaderCachedPromise extends Promise<DataSet | DICOMLoaderDataSetWithFetchMore> {
|
|
9
|
+
cacheCount?: number;
|
|
10
|
+
}
|
|
11
|
+
declare function isLoaded(uri: string): boolean;
|
|
12
|
+
declare function get(uri: string): DataSet;
|
|
13
|
+
declare function update(uri: string, dataSet: DataSet): void;
|
|
14
|
+
declare function load(uri: string, loadRequest: LoadRequestFunction, imageId: string): CornerstoneWadoLoaderCachedPromise;
|
|
15
|
+
declare function unload(uri: string): void;
|
|
16
|
+
export declare function getInfo(): CornerstoneWadoLoaderCacheManagerInfoResponse;
|
|
17
|
+
declare function purge(): void;
|
|
18
|
+
declare const _default: {
|
|
19
|
+
isLoaded: typeof isLoaded;
|
|
20
|
+
load: typeof load;
|
|
21
|
+
unload: typeof unload;
|
|
22
|
+
getInfo: typeof getInfo;
|
|
23
|
+
purge: typeof purge;
|
|
24
|
+
get: typeof get;
|
|
25
|
+
update: typeof update;
|
|
26
|
+
};
|
|
27
|
+
export default _default;
|
|
28
|
+
export { loadedDataSets };
|