@cornerstonejs/dicom-image-loader 2.0.0-beta.20 → 2.0.0-beta.21
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/920.bundle.min.js +1 -1
- package/dist/920.bundle.min.js.map +1 -1
- package/dist/cornerstoneDICOMImageLoader.bundle.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.bundle.min.js.map +1 -1
- package/dist/dynamic-import/918.min.js +1 -1
- package/dist/dynamic-import/918.min.js.map +1 -1
- package/dist/dynamic-import/958.min.js +1 -1
- package/dist/dynamic-import/958.min.js.map +1 -1
- 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 -10
- package/dist/esm/codecs/jpeg.js +1 -1
- package/dist/esm/codecs/jpegLossless.js +1 -1
- package/dist/esm/src/decodeImageFrameWorker.js +6 -10
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.d.ts +3 -3
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.d.ts +1 -1
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.d.ts +1 -1
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.d.ts +1 -1
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.d.ts +1 -1
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.d.ts +1 -1
- package/dist/esm/src/imageLoader/configure.d.ts +1 -1
- package/dist/esm/src/imageLoader/createImage.d.ts +4 -3
- package/dist/esm/src/imageLoader/createImage.js +13 -20
- package/dist/esm/src/imageLoader/decodeImageFrame.d.ts +2 -2
- package/dist/esm/src/imageLoader/decodeJPEGBaseline8BitColor.d.ts +3 -3
- package/dist/esm/src/imageLoader/getImageFrame.d.ts +2 -2
- package/dist/esm/src/imageLoader/getInstanceModule.d.ts +1 -1
- package/dist/esm/src/imageLoader/getScalingParameters.js +2 -1
- package/dist/esm/src/imageLoader/index.d.ts +1 -1
- package/dist/esm/src/imageLoader/internal/index.d.ts +3 -1
- package/dist/esm/src/imageLoader/internal/index.js +3 -1
- package/dist/esm/src/imageLoader/internal/options.d.ts +1 -1
- package/dist/esm/src/imageLoader/internal/options.js +0 -4
- package/dist/esm/src/imageLoader/internal/rangeRequest.d.ts +3 -3
- package/dist/esm/src/imageLoader/internal/streamRequest.d.ts +1 -1
- package/dist/esm/src/imageLoader/internal/xhrRequest.d.ts +1 -1
- package/dist/esm/src/imageLoader/isJPEGBaseline8BitColor.d.ts +2 -2
- package/dist/esm/src/imageLoader/wadors/getImageQualityStatus.d.ts +2 -1
- package/dist/esm/src/imageLoader/wadors/getPixelData.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/loadImage.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/getFirstNumberValue.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.js +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValue.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValues.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/getOverlayPlaneModule.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/getSequenceItems.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/getValue.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/getValue.js +1 -1
- package/dist/esm/src/imageLoader/wadors/metaData/metaDataProvider.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaDataManager.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadors/metaDataManager.js +4 -1
- package/dist/esm/src/imageLoader/wadouri/combineFrameInstanceDataset.js +4 -2
- package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager.d.ts +2 -2
- package/dist/esm/src/imageLoader/wadouri/dataset-from-partial-content.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadouri/getEncapsulatedImageFrame.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadouri/getPixelData.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadouri/getUncompressedImageFrame.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadouri/index.d.ts +0 -1
- package/dist/esm/src/imageLoader/wadouri/loadImage.d.ts +3 -3
- package/dist/esm/src/imageLoader/wadouri/metaData/USHelpers.d.ts +2 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/USHelpers.js +44 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getImagePixelModule.d.ts +3 -3
- package/dist/esm/src/imageLoader/wadouri/metaData/getLUTs.d.ts +2 -2
- package/dist/esm/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadouri/metaData/getNumberValues.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.js +13 -0
- package/dist/esm/src/imageLoader/wadouri/register.d.ts +1 -1
- package/dist/esm/src/imageLoader/wadouri/retrieveMultiframeDataset.d.ts +0 -1
- package/dist/esm/src/imageLoader/wadouri/unpackBinaryFrame.d.ts +1 -1
- package/dist/esm/src/shared/decoders/decodeBigEndian.d.ts +3 -3
- package/dist/esm/src/shared/decoders/decodeHTJ2K.d.ts +2 -2
- package/dist/esm/src/shared/decoders/decodeJPEG2000.d.ts +3 -2
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-js.d.ts +4 -3
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.d.ts +1 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.js +1 -1
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline8Bit.d.ts +2 -2
- package/dist/esm/src/shared/decoders/decodeJPEGLS.d.ts +3 -2
- package/dist/esm/src/shared/decoders/decodeJPEGLossless.d.ts +4 -3
- package/dist/esm/src/shared/decoders/decodeLittleEndian.d.ts +3 -3
- package/dist/esm/src/shared/decoders/decodeRLE.d.ts +3 -3
- package/dist/esm/src/shared/getMinMax.d.ts +2 -2
- package/dist/esm/src/shared/getPixelDataTypeFromMinMax.d.ts +2 -2
- package/dist/esm/src/shared/scaling/scaleArray.d.ts +2 -2
- package/dist/esm/src/types/DICOMLoaderDataSetWithFetchMore.d.ts +1 -1
- package/dist/esm/src/types/DICOMLoaderIImage.d.ts +3 -4
- package/dist/esm/src/types/DICOMLoaderImageOptions.d.ts +4 -7
- package/dist/esm/src/types/LoadRequestFunction.d.ts +1 -1
- package/dist/esm/src/types/LoaderDecodeOptions.d.ts +0 -2
- package/dist/esm/src/types/LoaderOptions.d.ts +9 -9
- package/dist/esm/src/types/WebWorkerTypes.d.ts +8 -8
- package/dist/esm/src/types/XHRRequest.d.ts +2 -2
- package/dist/esm/src/types/index.d.ts +11 -14
- package/package.json +4 -9
- package/dist/esm/src/shared/calculateMinMax.d.ts +0 -2
- package/dist/esm/src/shared/calculateMinMax.js +0 -24
- package/dist/esm/src/shared/calculateMinMax_test.d.ts +0 -1
- package/dist/esm/src/shared/calculateMinMax_test.js +0 -38
- package/dist/esm/src/types/ImageFrame.d.ts +0 -43
- package/dist/esm/src/types/ImageFrame.js +0 -1
- package/dist/esm/src/types/MetadataModules.d.ts +0 -66
- package/dist/esm/src/types/MetadataModules.js +0 -1
- package/dist/esm/src/types/PixelDataTypedArray.d.ts +0 -2
- package/dist/esm/src/types/PixelDataTypedArray.js +0 -1
|
@@ -11,6 +11,7 @@ import multiframeDataset from '../retrieveMultiframeDataset';
|
|
|
11
11
|
import { getImageTypeSubItemFromDataset, extractOrientationFromDataset, extractPositionFromDataset, extractSpacingFromDataset, extractSliceThicknessFromDataset, } from './extractPositioningFromDataset';
|
|
12
12
|
import isNMReconstructable from '../../isNMReconstructable';
|
|
13
13
|
import { getInstanceModule, instanceModuleNames, } from '../../getInstanceModule';
|
|
14
|
+
import { getUSEnhancedRegions } from './USHelpers';
|
|
14
15
|
function metaDataProvider(type, imageId) {
|
|
15
16
|
const { MetadataModules } = external.cornerstone.Enums;
|
|
16
17
|
const { dicomParser } = external;
|
|
@@ -203,6 +204,18 @@ function metaDataProvider(type, imageId) {
|
|
|
203
204
|
actualFrameDuration: dataSet.intString(dataSet.string('x00181242')),
|
|
204
205
|
};
|
|
205
206
|
}
|
|
207
|
+
if (type === MetadataModules.ULTRASOUND_ENHANCED_REGION) {
|
|
208
|
+
return getUSEnhancedRegions(dataSet);
|
|
209
|
+
}
|
|
210
|
+
if (type === MetadataModules.CALIBRATION) {
|
|
211
|
+
const modality = dataSet.string('x00080060');
|
|
212
|
+
if (modality === 'US') {
|
|
213
|
+
const enhancedRegion = getUSEnhancedRegions(dataSet);
|
|
214
|
+
return {
|
|
215
|
+
sequenceOfUltrasoundRegions: enhancedRegion,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
}
|
|
206
219
|
if (type === 'instance') {
|
|
207
220
|
return getInstanceModule(imageId, metaDataProvider, instanceModuleNames);
|
|
208
221
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import * as cornerstoneImport from '@cornerstonejs/core';
|
|
1
|
+
import type * as cornerstoneImport from '@cornerstonejs/core';
|
|
2
2
|
export default function (cornerstone: typeof cornerstoneImport): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ByteArray } from 'dicom-parser';
|
|
2
|
-
import {
|
|
3
|
-
declare function decodeBigEndian(imageFrame:
|
|
1
|
+
import type { ByteArray } from 'dicom-parser';
|
|
2
|
+
import type { Types } from '@cornerstonejs/core/src';
|
|
3
|
+
declare function decodeBigEndian(imageFrame: Types.IImageFrame, pixelData: ByteArray): Promise<Types.IImageFrame>;
|
|
4
4
|
export default decodeBigEndian;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ByteArray } from 'dicom-parser';
|
|
2
|
-
import { LoaderDecodeOptions } from '../../types';
|
|
1
|
+
import type { ByteArray } from 'dicom-parser';
|
|
2
|
+
import type { LoaderDecodeOptions } from '../../types';
|
|
3
3
|
export declare function initialize(decodeConfig?: LoaderDecodeOptions): Promise<void>;
|
|
4
4
|
declare function decodeAsync(compressedImageFrame: ByteArray, imageInfo: any): Promise<any>;
|
|
5
5
|
export default decodeAsync;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Types } from '@cornerstonejs/core/src';
|
|
2
|
+
import type { WebWorkerDecodeConfig } from '../../types';
|
|
2
3
|
export declare function initialize(decodeConfig?: WebWorkerDecodeConfig): Promise<void>;
|
|
3
|
-
declare function decodeAsync(compressedImageFrame: any, imageInfo: any): Promise<
|
|
4
|
+
declare function decodeAsync(compressedImageFrame: any, imageInfo: any): Promise<Types.IImageFrame>;
|
|
4
5
|
export default decodeAsync;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ByteArray } from 'dicom-parser';
|
|
2
|
-
import {
|
|
1
|
+
import type { ByteArray } from 'dicom-parser';
|
|
2
|
+
import type { Types } from '@cornerstonejs/core/src';
|
|
3
|
+
import type { WebWorkerDecodeConfig } from '../../types';
|
|
3
4
|
export declare function initialize(decodeConfig?: WebWorkerDecodeConfig): Promise<void>;
|
|
4
|
-
declare function decodeJPEGBaseline12BitAsync(imageFrame:
|
|
5
|
+
declare function decodeJPEGBaseline12BitAsync(imageFrame: Types.IImageFrame, pixelData: ByteArray): Promise<Types.IImageFrame>;
|
|
5
6
|
export default decodeJPEGBaseline12BitAsync;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare function decodeAsync(compressedImageFrame: any, imageInfo: any): Promise<
|
|
1
|
+
import type { Types } from '@cornerstonejs/core/src';
|
|
2
|
+
declare function decodeAsync(compressedImageFrame: any, imageInfo: any): Promise<Types.IImageFrame>;
|
|
3
3
|
export default decodeAsync;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { WebWorkerDecodeConfig } from '../../types';
|
|
2
|
+
import type { Types } from '@cornerstonejs/core/src';
|
|
2
3
|
export declare function initialize(decodeConfig?: WebWorkerDecodeConfig): Promise<void>;
|
|
3
|
-
declare function decodeAsync(compressedImageFrame: any, imageInfo: any): Promise<
|
|
4
|
+
declare function decodeAsync(compressedImageFrame: any, imageInfo: any): Promise<Types.IImageFrame>;
|
|
4
5
|
export default decodeAsync;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ByteArray } from 'dicom-parser';
|
|
2
|
-
import {
|
|
1
|
+
import type { ByteArray } from 'dicom-parser';
|
|
2
|
+
import type { Types } from '@cornerstonejs/core/src';
|
|
3
|
+
import type { WebWorkerDecodeConfig } from '../../types';
|
|
3
4
|
export declare function initialize(decodeConfig?: WebWorkerDecodeConfig): Promise<void>;
|
|
4
|
-
declare function decodeJPEGLossless(imageFrame:
|
|
5
|
+
declare function decodeJPEGLossless(imageFrame: Types.IImageFrame, pixelData: ByteArray): Promise<Types.IImageFrame>;
|
|
5
6
|
export default decodeJPEGLossless;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ByteArray } from 'dicom-parser';
|
|
2
|
-
import {
|
|
3
|
-
declare function decodeLittleEndian(imageFrame:
|
|
1
|
+
import type { ByteArray } from 'dicom-parser';
|
|
2
|
+
import type { Types } from '@cornerstonejs/core';
|
|
3
|
+
declare function decodeLittleEndian(imageFrame: Types.IImageFrame, pixelData: ByteArray): Promise<Types.IImageFrame>;
|
|
4
4
|
export default decodeLittleEndian;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ByteArray } from 'dicom-parser';
|
|
2
|
-
import {
|
|
3
|
-
declare function decodeRLE(imageFrame:
|
|
1
|
+
import type { ByteArray } from 'dicom-parser';
|
|
2
|
+
import type { Types } from '@cornerstonejs/core';
|
|
3
|
+
declare function decodeRLE(imageFrame: Types.IImageFrame, pixelData: ByteArray): Promise<Types.IImageFrame>;
|
|
4
4
|
export default decodeRLE;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare function getMinMax(storedPixelData: PixelDataTypedArray): {
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
|
+
declare function getMinMax(storedPixelData: Types.PixelDataTypedArray): {
|
|
3
3
|
min: number;
|
|
4
4
|
max: number;
|
|
5
5
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default function getPixelDataTypeFromMinMax(min: number, max: number): PixelDataTypedArray;
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
|
+
export default function getPixelDataTypeFromMinMax(min: number, max: number): Types.PixelDataTypedArray;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default function scaleArray(array: PixelDataTypedArray, scalingParameters: any): boolean;
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
|
+
export default function scaleArray(array: Types.PixelDataTypedArray, scalingParameters: any): boolean;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { Types } from '@cornerstonejs/core';
|
|
2
|
-
import { ByteArray, DataSet } from 'dicom-parser';
|
|
3
|
-
import ImageFrame from './ImageFrame';
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
|
+
import type { ByteArray, DataSet } from 'dicom-parser';
|
|
4
3
|
export interface DICOMLoaderIImage extends Types.IImage {
|
|
5
4
|
decodeTimeInMS: number;
|
|
6
5
|
floatPixelData?: ByteArray | Float32Array;
|
|
7
6
|
loadTimeInMS?: number;
|
|
8
7
|
totalTimeInMS?: number;
|
|
9
8
|
data?: DataSet;
|
|
10
|
-
imageFrame?:
|
|
9
|
+
imageFrame?: Types.IImageFrame;
|
|
11
10
|
voiLUTFunction: string | undefined;
|
|
12
11
|
transferSyntaxUID?: string;
|
|
13
12
|
}
|
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
import { Types } from '@cornerstonejs/core';
|
|
2
|
-
import { LoadRequestFunction } from './LoadRequestFunction';
|
|
3
|
-
import { StreamingData } from '../imageLoader/wadors/loadImage';
|
|
1
|
+
import type { Types } from '@cornerstonejs/core';
|
|
2
|
+
import type { LoadRequestFunction } from './LoadRequestFunction';
|
|
3
|
+
import type { StreamingData } from '../imageLoader/wadors/loadImage';
|
|
4
4
|
export interface DICOMLoaderImageOptions {
|
|
5
5
|
useRGBA?: boolean;
|
|
6
|
-
useNativeDataType?: boolean;
|
|
7
6
|
allowFloatRendering?: boolean;
|
|
8
|
-
skipCreateImage?: boolean;
|
|
9
7
|
preScale?: {
|
|
10
8
|
enabled: boolean;
|
|
11
9
|
scalingParameters?: Types.ScalingParameters;
|
|
12
10
|
};
|
|
13
11
|
targetBuffer?: {
|
|
14
|
-
type:
|
|
12
|
+
type: Types.PixelDataTypedArrayString;
|
|
15
13
|
arrayBuffer: ArrayBufferLike;
|
|
16
14
|
length: number;
|
|
17
15
|
offset: number;
|
|
18
16
|
rows?: number;
|
|
19
17
|
columns?: number;
|
|
20
18
|
};
|
|
21
|
-
isSharedArrayBuffer?: boolean;
|
|
22
19
|
loader?: LoadRequestFunction;
|
|
23
20
|
decodeLevel?: number;
|
|
24
21
|
retrieveOptions?: Types.RetrieveOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type LoadRequestFunction = (url: string, imageId: string, ...args:
|
|
1
|
+
export type LoadRequestFunction = (url: string, imageId: string, ...args: unknown[]) => Promise<ArrayBuffer>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { LoaderDecodeOptions } from './LoaderDecodeOptions';
|
|
2
|
-
import { LoaderXhrRequestError, LoaderXhrRequestParams } from './XHRRequest';
|
|
1
|
+
import type { LoaderDecodeOptions } from './LoaderDecodeOptions';
|
|
2
|
+
import type { LoaderXhrRequestError, LoaderXhrRequestParams } from './XHRRequest';
|
|
3
3
|
export interface LoaderOptions {
|
|
4
|
-
cornerstone?:
|
|
5
|
-
dicomParser?:
|
|
4
|
+
cornerstone?: unknown;
|
|
5
|
+
dicomParser?: unknown;
|
|
6
6
|
maxWebWorkers?: number;
|
|
7
7
|
open?: (xhr: XMLHttpRequest, url: string, defaultHeaders: Record<string, string>, params: LoaderXhrRequestParams) => void;
|
|
8
8
|
beforeSend?: (xhr: XMLHttpRequest, imageId: string, defaultHeaders: Record<string, string>, params: LoaderXhrRequestParams) => Record<string, string> | void;
|
|
9
9
|
beforeProcessing?: (xhr: XMLHttpRequest) => Promise<ArrayBuffer>;
|
|
10
|
-
imageCreated?: (
|
|
11
|
-
onloadstart?: (event: ProgressEvent<EventTarget>, params:
|
|
12
|
-
onloadend?: (event: ProgressEvent<EventTarget>, params:
|
|
13
|
-
onreadystatechange?: (event: Event, params:
|
|
14
|
-
onprogress?: (event: ProgressEvent<EventTarget>, params:
|
|
10
|
+
imageCreated?: (imageObject: unknown) => void;
|
|
11
|
+
onloadstart?: (event: ProgressEvent<EventTarget>, params: unknown) => void;
|
|
12
|
+
onloadend?: (event: ProgressEvent<EventTarget>, params: unknown) => void;
|
|
13
|
+
onreadystatechange?: (event: Event, params: unknown) => void;
|
|
14
|
+
onprogress?: (event: ProgressEvent<EventTarget>, params: unknown) => void;
|
|
15
15
|
errorInterceptor?: (error: LoaderXhrRequestError) => void;
|
|
16
16
|
strict?: boolean;
|
|
17
17
|
decodeConfig?: LoaderDecodeOptions;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ByteArray } from 'dicom-parser';
|
|
2
|
-
import
|
|
3
|
-
import { LoaderOptions } from './LoaderOptions';
|
|
4
|
-
import { LoaderDecodeOptions } from './LoaderDecodeOptions';
|
|
1
|
+
import type { ByteArray } from 'dicom-parser';
|
|
2
|
+
import type { Types } from '@cornerstonejs/core';
|
|
3
|
+
import type { LoaderOptions } from './LoaderOptions';
|
|
4
|
+
import type { LoaderDecodeOptions } from './LoaderDecodeOptions';
|
|
5
5
|
export interface WebWorkerOptions {
|
|
6
6
|
maxWebWorkers?: number;
|
|
7
7
|
startWebWorkersOnDemand?: boolean;
|
|
@@ -15,7 +15,7 @@ export interface WebWorkerDecodeConfig {
|
|
|
15
15
|
export interface WebWorkerTaskOptions {
|
|
16
16
|
decodeTask: WebWorkerDecodeConfig;
|
|
17
17
|
}
|
|
18
|
-
export interface WebWorkerDeferredObject<T =
|
|
18
|
+
export interface WebWorkerDeferredObject<T = unknown> {
|
|
19
19
|
resolve: (arg: T | PromiseLike<T>) => void;
|
|
20
20
|
reject: (err: any) => void;
|
|
21
21
|
}
|
|
@@ -32,7 +32,7 @@ export interface WorkerTask {
|
|
|
32
32
|
transferList: Transferable[];
|
|
33
33
|
}
|
|
34
34
|
export interface WebWorkerDecodeTaskData {
|
|
35
|
-
imageFrame:
|
|
35
|
+
imageFrame: Types.IImageFrame;
|
|
36
36
|
transferSyntax: string;
|
|
37
37
|
pixelData: ByteArray;
|
|
38
38
|
options: LoaderOptions;
|
|
@@ -59,6 +59,6 @@ export interface WebWorkerResponse {
|
|
|
59
59
|
taskType: WorkerTaskTypes;
|
|
60
60
|
status: 'failed' | 'success';
|
|
61
61
|
workerIndex: number;
|
|
62
|
-
data?:
|
|
63
|
-
result: string |
|
|
62
|
+
data?: Types.IImageFrame;
|
|
63
|
+
result: string | Types.IImageFrame;
|
|
64
64
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export interface LoaderXhrRequestError extends Error {
|
|
2
2
|
request: XMLHttpRequest;
|
|
3
|
-
response:
|
|
3
|
+
response: unknown;
|
|
4
4
|
status: number;
|
|
5
5
|
}
|
|
6
6
|
export interface LoaderXhrRequestParams {
|
|
7
7
|
url?: string;
|
|
8
8
|
deferred?: {
|
|
9
9
|
resolve: (value: ArrayBuffer | PromiseLike<ArrayBuffer>) => void;
|
|
10
|
-
reject: (reason
|
|
10
|
+
reject: (reason: any) => void;
|
|
11
11
|
};
|
|
12
12
|
imageId?: string;
|
|
13
13
|
}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
import { MetaDataTypes, MetadataGeneralSeriesModule, MetadataImagePixelModule, MetadataImagePlaneModule, MetadataPatientStudyModule, MetadataSopCommonModule, MetadataTransferSyntax, DicomDateObject, DicomTimeObject } from './MetadataModules';
|
|
13
|
-
import { WebWorkerOptions, WebWorkerDecodeConfig, WebWorkerTaskOptions, WorkerTaskTypes, WorkerTask, WebWorkerDecodeTaskData, WebWorkerDecodeData, WebWorkerLoadData, WebWorkerInitializeData, WebWorkerData, WebWorkerResponse, WebWorkerDeferredObject } from './WebWorkerTypes';
|
|
14
|
-
export { ImageFrame, LoaderDecodeOptions, LoaderOptions, WADORSMetaData, WADORSMetaDataElement, LoaderXhrRequestError, LoaderXhrRequestParams, LoaderXhrRequestPromise, DICOMLoaderIImage, DICOMLoaderImageOptions, MetaDataTypes, MetadataGeneralSeriesModule, MetadataImagePixelModule, MetadataImagePlaneModule, MetadataPatientStudyModule, MetadataSopCommonModule, MetadataTransferSyntax, DicomDateObject, DicomTimeObject, LutType, WebWorkerOptions, WebWorkerDecodeConfig, WebWorkerTaskOptions, WorkerTaskTypes, WorkerTask, WebWorkerDecodeTaskData, WebWorkerDecodeData, WebWorkerLoadData, WebWorkerInitializeData, WebWorkerData, WebWorkerResponse, WebWorkerDeferredObject, LoadRequestFunction, DICOMLoaderDataSetWithFetchMore, PixelDataTypedArray, };
|
|
1
|
+
import type { LoaderXhrRequestError, LoaderXhrRequestParams, LoaderXhrRequestPromise } from './XHRRequest';
|
|
2
|
+
import type { WADORSMetaData, WADORSMetaDataElement } from './WADORSMetaData';
|
|
3
|
+
import type { LoaderOptions } from './LoaderOptions';
|
|
4
|
+
import type { LoaderDecodeOptions } from './LoaderDecodeOptions';
|
|
5
|
+
import type { DICOMLoaderIImage } from './DICOMLoaderIImage';
|
|
6
|
+
import type { DICOMLoaderImageOptions } from './DICOMLoaderImageOptions';
|
|
7
|
+
import type { LutType } from './LutType';
|
|
8
|
+
import type { LoadRequestFunction } from './LoadRequestFunction';
|
|
9
|
+
import type { DICOMLoaderDataSetWithFetchMore } from './DICOMLoaderDataSetWithFetchMore';
|
|
10
|
+
import type { WebWorkerOptions, WebWorkerDecodeConfig, WebWorkerTaskOptions, WorkerTaskTypes, WorkerTask, WebWorkerDecodeTaskData, WebWorkerDecodeData, WebWorkerLoadData, WebWorkerInitializeData, WebWorkerData, WebWorkerResponse, WebWorkerDeferredObject } from './WebWorkerTypes';
|
|
11
|
+
export type { LoaderDecodeOptions, LoaderOptions, WADORSMetaData, WADORSMetaDataElement, LoaderXhrRequestError, LoaderXhrRequestParams, LoaderXhrRequestPromise, DICOMLoaderIImage, DICOMLoaderImageOptions, LutType, WebWorkerOptions, WebWorkerDecodeConfig, WebWorkerTaskOptions, WorkerTaskTypes, WorkerTask, WebWorkerDecodeTaskData, WebWorkerDecodeData, WebWorkerLoadData, WebWorkerInitializeData, WebWorkerData, WebWorkerResponse, WebWorkerDeferredObject, LoadRequestFunction, DICOMLoaderDataSetWithFetchMore, };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cornerstonejs/dicom-image-loader",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.21",
|
|
4
4
|
"description": "Cornerstone Image Loader for DICOM WADO-URI and WADO-RS and Local file",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"DICOM",
|
|
@@ -40,17 +40,18 @@
|
|
|
40
40
|
"build:umd:dynamic": "cross-env NODE_ENV=production webpack --config .webpack/webpack-dynamic-import.js",
|
|
41
41
|
"build:umd:bundle": "cross-env NODE_ENV=production webpack --config .webpack/webpack-bundle.js",
|
|
42
42
|
"build:all": "yarn run build:umd:dynamic & yarn run build:umd:bundle && yarn run build:esm",
|
|
43
|
+
"build:update-api": "echo 'not implemented yet'",
|
|
43
44
|
"copy-dts": "echo 'not implemented yet'",
|
|
44
45
|
"clean": "shx rm -rf dist",
|
|
45
46
|
"clean:deep": "yarn run clean && shx rm -rf node_modules",
|
|
46
47
|
"api-check": "echo 'not implemented yet'",
|
|
47
|
-
"build:update-api": "echo 'not implemented yet'",
|
|
48
48
|
"cm": "npx git-cz",
|
|
49
49
|
"clean:dist": "shx rm -rf dist",
|
|
50
50
|
"clean:docs": "shx rm -rf documentation",
|
|
51
51
|
"clean:coverage": "shx rm -rf coverage",
|
|
52
52
|
"doc": "npm run doc:generate && opn documentation/index.html",
|
|
53
53
|
"doc:generate": "npm run clean:docs && jsdoc -c .jsdocrc",
|
|
54
|
+
"dev": "tsc --project ./tsconfig.esm.json --watch",
|
|
54
55
|
"eslint": "eslint -c .eslintrc.js src",
|
|
55
56
|
"eslint-quiet": "eslint -c .eslintrc.js --quiet src",
|
|
56
57
|
"eslint-fix": "eslint -c .eslintrc.js --fix src",
|
|
@@ -64,7 +65,6 @@
|
|
|
64
65
|
"test:firefox": "karma start config/karma/karma-firefox.js",
|
|
65
66
|
"test:watch": "karma start config/karma/karma-watch.js",
|
|
66
67
|
"watch": "npm run clean && shx mkdir dist && npm run webpack:watch",
|
|
67
|
-
"dev": "npm run webpack:dev",
|
|
68
68
|
"webpack:dev": "webpack serve --progress --config .webpack/webpack-dev.js",
|
|
69
69
|
"webpack:dynamic-import": "webpack --progress --config .webpack/webpack-dynamic-import",
|
|
70
70
|
"webpack:bundle": "webpack --progress --config .webpack/webpack-bundle",
|
|
@@ -83,11 +83,6 @@
|
|
|
83
83
|
"pako": "^2.0.4",
|
|
84
84
|
"uuid": "^9.0.0"
|
|
85
85
|
},
|
|
86
|
-
"husky": {
|
|
87
|
-
"hooks": {
|
|
88
|
-
"pre-commit": "lint-staged"
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
86
|
"lint-staged": {
|
|
92
87
|
"src/**/*.{js,jsx,json,css}": [
|
|
93
88
|
"eslint --fix",
|
|
@@ -100,5 +95,5 @@
|
|
|
100
95
|
"path": "./node_modules/cz-conventional-changelog"
|
|
101
96
|
}
|
|
102
97
|
},
|
|
103
|
-
"gitHead": "
|
|
98
|
+
"gitHead": "de2d08d4edbae4ca48831cc44a57737717b10b22"
|
|
104
99
|
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import getMinMax from './getMinMax';
|
|
2
|
-
export default function calculateMinMax(imageFrame, strict = true) {
|
|
3
|
-
const minMax = imageFrame.minAfterScale !== undefined ||
|
|
4
|
-
imageFrame.maxAfterScale !== undefined
|
|
5
|
-
? { min: imageFrame.minAfterScale, max: imageFrame.maxAfterScale }
|
|
6
|
-
: getMinMax(imageFrame.pixelData);
|
|
7
|
-
const mustAssign = !(isNumber(imageFrame.smallestPixelValue) &&
|
|
8
|
-
isNumber(imageFrame.largestPixelValue));
|
|
9
|
-
if (strict === true && !mustAssign) {
|
|
10
|
-
if (imageFrame.smallestPixelValue !== minMax.min) {
|
|
11
|
-
console.warn('Image smallestPixelValue tag is incorrect. Rendering performance will suffer considerably.');
|
|
12
|
-
}
|
|
13
|
-
if (imageFrame.largestPixelValue !== minMax.max) {
|
|
14
|
-
console.warn('Image largestPixelValue tag is incorrect. Rendering performance will suffer considerably.');
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
imageFrame.smallestPixelValue = minMax.min;
|
|
19
|
-
imageFrame.largestPixelValue = minMax.max;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
function isNumber(numValue) {
|
|
23
|
-
return typeof numValue === 'number';
|
|
24
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { expect } from 'chai';
|
|
2
|
-
import calculateMinMax from './calculateMinMax';
|
|
3
|
-
describe('#calculateMinMax', () => {
|
|
4
|
-
let imageFrame = {};
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
imageFrame = {
|
|
7
|
-
smallestPixelValue: -1,
|
|
8
|
-
largestPixelValue: 10,
|
|
9
|
-
pixelData: [7, 3, 9, 6, 8, 1, 4, 5, 2],
|
|
10
|
-
};
|
|
11
|
-
});
|
|
12
|
-
it('should update the smallest and largest pixel values if strict is false', () => {
|
|
13
|
-
const strict = false;
|
|
14
|
-
calculateMinMax(imageFrame, strict);
|
|
15
|
-
expect(imageFrame.smallestPixelValue).to.be.equal(1);
|
|
16
|
-
expect(imageFrame.largestPixelValue).to.be.equal(9);
|
|
17
|
-
});
|
|
18
|
-
it('should not update the smallest and largest pixel values if strict is true', () => {
|
|
19
|
-
const strict = true;
|
|
20
|
-
calculateMinMax(imageFrame, strict);
|
|
21
|
-
expect(imageFrame.smallestPixelValue).to.be.equal(-1);
|
|
22
|
-
expect(imageFrame.largestPixelValue).to.be.equal(10);
|
|
23
|
-
});
|
|
24
|
-
it('should update the smallest and largest pixel values regardless of strict value', () => {
|
|
25
|
-
let strict = false;
|
|
26
|
-
imageFrame.smallestPixelValue = undefined;
|
|
27
|
-
imageFrame.largestPixelValue = undefined;
|
|
28
|
-
calculateMinMax(imageFrame, strict);
|
|
29
|
-
expect(imageFrame.smallestPixelValue).to.be.equal(1);
|
|
30
|
-
expect(imageFrame.largestPixelValue).to.be.equal(9);
|
|
31
|
-
strict = true;
|
|
32
|
-
imageFrame.smallestPixelValue = undefined;
|
|
33
|
-
imageFrame.largestPixelValue = undefined;
|
|
34
|
-
calculateMinMax(imageFrame, strict);
|
|
35
|
-
expect(imageFrame.smallestPixelValue).to.be.equal(1);
|
|
36
|
-
expect(imageFrame.largestPixelValue).to.be.equal(9);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Enums } from '@cornerstonejs/core';
|
|
2
|
-
import PixelDataTypedArray from './PixelDataTypedArray';
|
|
3
|
-
interface ImageFrame {
|
|
4
|
-
samplesPerPixel: number;
|
|
5
|
-
photometricInterpretation: string;
|
|
6
|
-
planarConfiguration: number;
|
|
7
|
-
rows: number;
|
|
8
|
-
columns: number;
|
|
9
|
-
bitsAllocated: number;
|
|
10
|
-
bitsStored: number;
|
|
11
|
-
pixelRepresentation: number;
|
|
12
|
-
smallestPixelValue: number;
|
|
13
|
-
largestPixelValue: number;
|
|
14
|
-
redPaletteColorLookupTableDescriptor: number[];
|
|
15
|
-
greenPaletteColorLookupTableDescriptor: number[];
|
|
16
|
-
bluePaletteColorLookupTableDescriptor: number[];
|
|
17
|
-
redPaletteColorLookupTableData: number[];
|
|
18
|
-
greenPaletteColorLookupTableData: number[];
|
|
19
|
-
bluePaletteColorLookupTableData: number[];
|
|
20
|
-
pixelData: PixelDataTypedArray;
|
|
21
|
-
imageData?: ImageData;
|
|
22
|
-
pixelDataLength?: number;
|
|
23
|
-
preScale?: {
|
|
24
|
-
enabled: boolean;
|
|
25
|
-
scaled: boolean;
|
|
26
|
-
scalingParameters?: {
|
|
27
|
-
intercept?: number;
|
|
28
|
-
slope?: number;
|
|
29
|
-
rescaleSlope?: number;
|
|
30
|
-
rescaleIntercept?: number;
|
|
31
|
-
modality?: string;
|
|
32
|
-
suvbw?: number;
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
minAfterScale?: number;
|
|
36
|
-
maxAfterScale?: number;
|
|
37
|
-
imageId: string;
|
|
38
|
-
decodeTimeInMS?: number;
|
|
39
|
-
loadTimeInMS?: number;
|
|
40
|
-
imageQualityStatus?: Enums.ImageQualityStatus;
|
|
41
|
-
decodeLevel?: any;
|
|
42
|
-
}
|
|
43
|
-
export default ImageFrame;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
export type MetaDataTypes = 'generalSeriesModule' | 'patientStudyModule' | 'imagePlaneModule' | 'imagePixelModule' | 'transferSyntax' | 'sopCommonModule' | string;
|
|
2
|
-
export interface DicomDateObject {
|
|
3
|
-
year: number;
|
|
4
|
-
month: number;
|
|
5
|
-
day: number;
|
|
6
|
-
}
|
|
7
|
-
export interface DicomTimeObject {
|
|
8
|
-
hours: number;
|
|
9
|
-
minutes?: number;
|
|
10
|
-
seconds?: number;
|
|
11
|
-
fractionalSeconds?: number;
|
|
12
|
-
}
|
|
13
|
-
export interface MetadataGeneralSeriesModule {
|
|
14
|
-
modality: string;
|
|
15
|
-
seriesInstanceUID: string;
|
|
16
|
-
seriesNumber: number;
|
|
17
|
-
studyInstanceUID: string;
|
|
18
|
-
seriesDate: DicomDateObject;
|
|
19
|
-
seriesTime: DicomTimeObject;
|
|
20
|
-
}
|
|
21
|
-
export interface MetadataPatientStudyModule {
|
|
22
|
-
patientAge: number;
|
|
23
|
-
patientSize: number;
|
|
24
|
-
patientWeight: number;
|
|
25
|
-
}
|
|
26
|
-
export interface MetadataImagePlaneModule {
|
|
27
|
-
frameOfReferenceUID: string;
|
|
28
|
-
rows: string;
|
|
29
|
-
columns: string;
|
|
30
|
-
imageOrientationPatient: number[];
|
|
31
|
-
rowCosines: number[];
|
|
32
|
-
columnCosines: number[];
|
|
33
|
-
imagePositionPatient: number[];
|
|
34
|
-
sliceThickness: string;
|
|
35
|
-
sliceLocation: string;
|
|
36
|
-
pixelSpacing: number[];
|
|
37
|
-
rowPixelSpacing: number | null;
|
|
38
|
-
columnPixelSpacing: number | null;
|
|
39
|
-
}
|
|
40
|
-
export interface MetadataImagePixelModule {
|
|
41
|
-
samplesPerPixel: number;
|
|
42
|
-
photometricInterpretation: string;
|
|
43
|
-
rows: number;
|
|
44
|
-
columns: number;
|
|
45
|
-
bitsAllocated: number;
|
|
46
|
-
bitsStored: number;
|
|
47
|
-
highBit: number;
|
|
48
|
-
pixelRepresentation: number;
|
|
49
|
-
planarConfiguration: number;
|
|
50
|
-
pixelAspectRatio: string;
|
|
51
|
-
redPaletteColorLookupTableDescriptor: number[];
|
|
52
|
-
greenPaletteColorLookupTableDescriptor: number[];
|
|
53
|
-
bluePaletteColorLookupTableDescriptor: number[];
|
|
54
|
-
redPaletteColorLookupTableData: number[];
|
|
55
|
-
greenPaletteColorLookupTableData: number[];
|
|
56
|
-
bluePaletteColorLookupTableData: number[];
|
|
57
|
-
smallestPixelValue?: number;
|
|
58
|
-
largestPixelValue?: number;
|
|
59
|
-
}
|
|
60
|
-
export interface MetadataSopCommonModule {
|
|
61
|
-
sopClassUID: string;
|
|
62
|
-
sopInstanceUID: string;
|
|
63
|
-
}
|
|
64
|
-
export interface MetadataTransferSyntax {
|
|
65
|
-
transferSyntaxUID: string;
|
|
66
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|