@cornerstonejs/core 2.0.0-beta.26 → 2.0.0-beta.28
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/esm/RenderingEngine/BaseVolumeViewport.d.ts +5 -1
- package/dist/esm/RenderingEngine/BaseVolumeViewport.js +56 -32
- package/dist/esm/RenderingEngine/RenderingEngine.js +7 -3
- package/dist/esm/RenderingEngine/StackViewport.d.ts +1 -2
- package/dist/esm/RenderingEngine/StackViewport.js +70 -85
- package/dist/esm/RenderingEngine/VideoViewport.js +50 -25
- package/dist/esm/RenderingEngine/Viewport.d.ts +3 -1
- package/dist/esm/RenderingEngine/Viewport.js +14 -8
- package/dist/esm/RenderingEngine/VolumeViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/VolumeViewport.js +15 -17
- package/dist/esm/RenderingEngine/VolumeViewport3D.d.ts +4 -1
- package/dist/esm/RenderingEngine/VolumeViewport3D.js +23 -3
- package/dist/esm/RenderingEngine/WSIViewport.d.ts +1 -1
- package/dist/esm/RenderingEngine/WSIViewport.js +31 -18
- package/dist/esm/RenderingEngine/helpers/createVolumeActor.js +2 -0
- package/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js +10 -11
- package/dist/esm/cache/cache.d.ts +1 -1
- package/dist/esm/cache/cache.js +8 -2
- package/dist/esm/cache/classes/StreamingDynamicImageVolume.js +2 -0
- package/dist/esm/enums/Events.d.ts +1 -1
- package/dist/esm/enums/Events.js +1 -1
- package/dist/esm/loaders/configuration/interleavedRetrieve.js +0 -3
- package/dist/esm/loaders/configuration/singleRetrieve.js +0 -3
- package/dist/esm/loaders/imageLoader.d.ts +9 -4
- package/dist/esm/loaders/imageLoader.js +55 -42
- package/dist/esm/loaders/index.d.ts +6 -0
- package/dist/esm/loaders/index.js +7 -0
- package/dist/esm/loaders/volumeLoader.d.ts +8 -4
- package/dist/esm/loaders/volumeLoader.js +26 -7
- package/dist/esm/types/AABB2.js +0 -1
- package/dist/esm/types/AABB3.js +0 -1
- package/dist/esm/types/ActorSliceRange.js +0 -1
- package/dist/esm/types/AffineMatrix.js +0 -1
- package/dist/esm/types/BoundsIJK.js +0 -1
- package/dist/esm/types/BoundsLPS.js +0 -1
- package/dist/esm/types/CPUFallbackColormap.js +0 -1
- package/dist/esm/types/CPUFallbackColormapData.js +0 -1
- package/dist/esm/types/CPUFallbackColormapsData.js +0 -1
- package/dist/esm/types/CPUFallbackEnabledElement.js +0 -1
- package/dist/esm/types/CPUFallbackLUT.js +0 -1
- package/dist/esm/types/CPUFallbackLookupTable.js +0 -1
- package/dist/esm/types/CPUFallbackRenderingTools.js +0 -1
- package/dist/esm/types/CPUFallbackTransform.js +0 -1
- package/dist/esm/types/CPUFallbackViewport.js +0 -1
- package/dist/esm/types/CPUFallbackViewportDisplayedArea.js +0 -1
- package/dist/esm/types/CPUIImageData.js +0 -1
- package/dist/esm/types/Color.js +0 -1
- package/dist/esm/types/Colormap.js +0 -1
- package/dist/esm/types/ContourData.js +0 -1
- package/dist/esm/types/Cornerstone3DConfig.js +0 -1
- package/dist/esm/types/CustomEventType.js +0 -1
- package/dist/esm/types/EventTypes.js +0 -1
- package/dist/esm/types/FlipDirection.js +0 -1
- package/dist/esm/types/IActor.js +0 -1
- package/dist/esm/types/IBaseVolumeViewport.js +0 -1
- package/dist/esm/types/ICache.js +0 -1
- package/dist/esm/types/ICachedGeometry.js +0 -1
- package/dist/esm/types/ICachedImage.js +0 -1
- package/dist/esm/types/ICachedVolume.js +0 -1
- package/dist/esm/types/ICamera.js +0 -1
- package/dist/esm/types/IContour.js +0 -1
- package/dist/esm/types/IContourSet.js +0 -1
- package/dist/esm/types/IDynamicImageVolume.js +0 -1
- package/dist/esm/types/IEnabledElement.js +0 -1
- package/dist/esm/types/IGeometry.js +0 -1
- package/dist/esm/types/IImage.js +0 -1
- package/dist/esm/types/IImageCalibration.js +0 -1
- package/dist/esm/types/IImageData.js +0 -1
- package/dist/esm/types/IImageFrame.js +0 -1
- package/dist/esm/types/IImageVolume.js +0 -1
- package/dist/esm/types/ILoadObject.js +0 -1
- package/dist/esm/types/IPointsManager.js +0 -1
- package/dist/esm/types/IRLEVoxelMap.js +0 -1
- package/dist/esm/types/IRegisterImageLoader.js +0 -1
- package/dist/esm/types/IRenderingEngine.js +0 -1
- package/dist/esm/types/IRetrieveConfiguration.js +0 -1
- package/dist/esm/types/IStackInput.js +0 -1
- package/dist/esm/types/IStackViewport.js +0 -1
- package/dist/esm/types/IStreamingImageVolume.js +0 -1
- package/dist/esm/types/IStreamingVolumeProperties.js +0 -1
- package/dist/esm/types/ISurface.js +0 -1
- package/dist/esm/types/ITransferFunctionNode.js +0 -1
- package/dist/esm/types/IVideoViewport.js +0 -1
- package/dist/esm/types/IViewport.js +0 -1
- package/dist/esm/types/IViewportId.js +0 -1
- package/dist/esm/types/IVolume.js +0 -1
- package/dist/esm/types/IVolumeInput.js +0 -1
- package/dist/esm/types/IVolumeViewport.js +0 -1
- package/dist/esm/types/IVoxelManager.js +0 -1
- package/dist/esm/types/IWSIViewport.js +0 -1
- package/dist/esm/types/ImageLoadListener.js +0 -1
- package/dist/esm/types/ImageLoadRequests.js +0 -1
- package/dist/esm/types/ImageLoaderFn.js +0 -1
- package/dist/esm/types/ImagePixelModule.js +0 -1
- package/dist/esm/types/ImagePlaneModule.js +0 -1
- package/dist/esm/types/ImageSliceData.js +0 -1
- package/dist/esm/types/ImageVolumeProps.js +0 -1
- package/dist/esm/types/Mat3.js +0 -1
- package/dist/esm/types/Metadata.js +0 -1
- package/dist/esm/types/MetadataModuleTypes.d.ts +4 -4
- package/dist/esm/types/MetadataModuleTypes.js +0 -1
- package/dist/esm/types/OrientationVectors.js +0 -1
- package/dist/esm/types/PixelDataTypedArray.js +0 -1
- package/dist/esm/types/Plane.js +0 -1
- package/dist/esm/types/Point2.js +0 -1
- package/dist/esm/types/Point3.js +0 -1
- package/dist/esm/types/Point4.js +0 -1
- package/dist/esm/types/RGB.js +0 -1
- package/dist/esm/types/ScalingParameters.js +0 -1
- package/dist/esm/types/StackViewportProperties.js +0 -1
- package/dist/esm/types/SurfaceData.js +0 -1
- package/dist/esm/types/TransformMatrix2D.js +0 -1
- package/dist/esm/types/VideoViewportProperties.js +0 -1
- package/dist/esm/types/VideoViewportTypes.js +0 -1
- package/dist/esm/types/ViewportInputOptions.js +0 -1
- package/dist/esm/types/ViewportPreset.js +0 -1
- package/dist/esm/types/ViewportProperties.d.ts +1 -0
- package/dist/esm/types/ViewportProperties.js +0 -1
- package/dist/esm/types/VolumeLoaderFn.js +0 -1
- package/dist/esm/types/VolumeProps.js +0 -1
- package/dist/esm/types/VolumeViewportProperties.js +0 -1
- package/dist/esm/types/WSIViewportProperties.js +0 -1
- package/dist/esm/types/displayArea.js +0 -1
- package/dist/esm/types/index.js +0 -1
- package/dist/esm/types/voi.js +0 -1
- package/dist/esm/utilities/VoxelManager.d.ts +3 -1
- package/dist/esm/utilities/VoxelManager.js +15 -9
- package/dist/esm/utilities/autoLoad.js +1 -1
- package/dist/esm/utilities/convertVolumeToStackViewport.js +1 -3
- package/dist/esm/utilities/createSigmoidRGBTransferFunction.d.ts +2 -1
- package/dist/esm/utilities/deepClone.d.ts +1 -0
- package/dist/esm/utilities/deepClone.js +28 -0
- package/dist/esm/utilities/eventListener/TargetEventListeners.js +1 -1
- package/dist/esm/utilities/getViewportImageIds.js +1 -3
- package/dist/esm/utilities/getViewportModality.js +1 -1
- package/dist/esm/utilities/getViewportsWithImageURI.d.ts +3 -3
- package/dist/esm/utilities/getViewportsWithImageURI.js +2 -9
- package/dist/esm/utilities/getViewportsWithVolumeId.d.ts +1 -1
- package/dist/esm/utilities/getViewportsWithVolumeId.js +3 -5
- package/dist/esm/utilities/getViewportsWithVolumeURI.d.ts +3 -0
- package/dist/esm/utilities/getViewportsWithVolumeURI.js +14 -0
- package/dist/esm/utilities/index.d.ts +3 -1
- package/dist/esm/utilities/index.js +3 -1
- package/dist/esm/utilities/loadImageToCanvas.js +0 -4
- package/dist/esm/utilities/pointInShapeCallback.d.ts +24 -0
- package/dist/esm/utilities/pointInShapeCallback.js +92 -0
- package/dist/esm/webWorkerManager/webWorkerManager.d.ts +11 -4
- package/package.json +56 -29
- package/dist/umd/index.js +0 -2
- package/dist/umd/index.js.map +0 -1
|
@@ -7,7 +7,9 @@ export interface ImageLoaderOptions {
|
|
|
7
7
|
}
|
|
8
8
|
interface LocalImageOptions {
|
|
9
9
|
scalarData?: PixelDataTypedArray;
|
|
10
|
-
|
|
10
|
+
targetBuffer?: {
|
|
11
|
+
type: PixelDataTypedArrayString;
|
|
12
|
+
};
|
|
11
13
|
dimensions?: Point2;
|
|
12
14
|
spacing?: Point2;
|
|
13
15
|
origin?: Point3;
|
|
@@ -17,6 +19,7 @@ interface LocalImageOptions {
|
|
|
17
19
|
}
|
|
18
20
|
type DerivedImageOptions = LocalImageOptions & {
|
|
19
21
|
imageId?: string;
|
|
22
|
+
instanceNumber?: number;
|
|
20
23
|
};
|
|
21
24
|
export declare function loadImage(imageId: string, options?: ImageLoaderOptions): Promise<IImage>;
|
|
22
25
|
export declare function loadAndCacheImage(imageId: string, options?: ImageLoaderOptions): Promise<IImage>;
|
|
@@ -24,7 +27,9 @@ export declare function loadAndCacheImages(imageIds: string[], options?: ImageLo
|
|
|
24
27
|
export declare function createAndCacheDerivedImage(referencedImageId: string, options?: DerivedImageOptions): IImage;
|
|
25
28
|
export declare function createAndCacheDerivedImages(referencedImageIds: string[], options?: DerivedImageOptions & {
|
|
26
29
|
getDerivedImageId?: (referencedImageId: string) => string;
|
|
27
|
-
|
|
30
|
+
targetBuffer?: {
|
|
31
|
+
type: PixelDataTypedArrayString;
|
|
32
|
+
};
|
|
28
33
|
}): IImage[];
|
|
29
34
|
export declare function createAndCacheLocalImage(imageId: string, options: LocalImageOptions): IImage;
|
|
30
35
|
export declare function cancelLoadImage(imageId: string): void;
|
|
@@ -33,6 +38,6 @@ export declare function cancelLoadAll(): void;
|
|
|
33
38
|
export declare function registerImageLoader(scheme: string, imageLoader: ImageLoaderFn): void;
|
|
34
39
|
export declare function registerUnknownImageLoader(imageLoader: ImageLoaderFn): ImageLoaderFn;
|
|
35
40
|
export declare function unregisterAllImageLoaders(): void;
|
|
36
|
-
export declare function
|
|
37
|
-
export declare function
|
|
41
|
+
export declare function createAndCacheDerivedLabelmapImages(referencedImageIds: string[], options?: DerivedImageOptions): IImage[];
|
|
42
|
+
export declare function createAndCacheDerivedLabelmapImage(referencedImageId: string, options?: DerivedImageOptions): IImage;
|
|
38
43
|
export {};
|
|
@@ -11,45 +11,47 @@ import * as metaData from '../metaData';
|
|
|
11
11
|
const imageLoaders = {};
|
|
12
12
|
let unknownImageLoader;
|
|
13
13
|
function loadImageFromImageLoader(imageId, options) {
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
16
|
-
|
|
14
|
+
const cachedImageLoadObject = cache.getImageLoadObject(imageId);
|
|
15
|
+
if (cachedImageLoadObject) {
|
|
16
|
+
handleImageLoadPromise(cachedImageLoadObject.promise, imageId);
|
|
17
|
+
return cachedImageLoadObject;
|
|
17
18
|
}
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (unknownImageLoader !== undefined) {
|
|
23
|
-
return unknownImageLoader(imageId);
|
|
24
|
-
}
|
|
25
|
-
throw new Error('loadImageFromImageLoader: no image loader for imageId');
|
|
19
|
+
const scheme = imageId.split(':')[0];
|
|
20
|
+
const loader = imageLoaders[scheme] || unknownImageLoader;
|
|
21
|
+
if (!loader) {
|
|
22
|
+
throw new Error(`loadImageFromImageLoader: No image loader found for scheme '${scheme}'`);
|
|
26
23
|
}
|
|
27
24
|
const imageLoadObject = loader(imageId, options);
|
|
28
|
-
imageLoadObject.promise
|
|
25
|
+
handleImageLoadPromise(imageLoadObject.promise, imageId);
|
|
26
|
+
return imageLoadObject;
|
|
27
|
+
}
|
|
28
|
+
function handleImageLoadPromise(imagePromise, imageId) {
|
|
29
|
+
Promise.resolve(imagePromise)
|
|
29
30
|
.then((image) => {
|
|
30
|
-
|
|
31
|
-
const { width, height, numberOfComponents } = image;
|
|
32
|
-
if (!image.voxelManager) {
|
|
33
|
-
const voxelManager = VoxelManager.createImageVoxelManager({
|
|
34
|
-
scalarData,
|
|
35
|
-
width,
|
|
36
|
-
height,
|
|
37
|
-
numberOfComponents,
|
|
38
|
-
});
|
|
39
|
-
image.voxelManager = voxelManager;
|
|
40
|
-
image.getPixelData = () => voxelManager.getScalarData();
|
|
41
|
-
delete image.imageFrame.pixelData;
|
|
42
|
-
}
|
|
31
|
+
ensureVoxelManager(image);
|
|
43
32
|
triggerEvent(eventTarget, Events.IMAGE_LOADED, { image });
|
|
44
33
|
})
|
|
45
34
|
.catch((error) => {
|
|
46
|
-
const
|
|
35
|
+
const errorDetails = {
|
|
47
36
|
imageId,
|
|
48
37
|
error,
|
|
49
38
|
};
|
|
50
|
-
triggerEvent(eventTarget, Events.IMAGE_LOAD_FAILED,
|
|
39
|
+
triggerEvent(eventTarget, Events.IMAGE_LOAD_FAILED, errorDetails);
|
|
51
40
|
});
|
|
52
|
-
|
|
41
|
+
}
|
|
42
|
+
function ensureVoxelManager(image) {
|
|
43
|
+
if (!image.voxelManager) {
|
|
44
|
+
const { width, height, numberOfComponents } = image;
|
|
45
|
+
const voxelManager = VoxelManager.createImageVoxelManager({
|
|
46
|
+
scalarData: image.getPixelData(),
|
|
47
|
+
width,
|
|
48
|
+
height,
|
|
49
|
+
numberOfComponents,
|
|
50
|
+
});
|
|
51
|
+
image.voxelManager = voxelManager;
|
|
52
|
+
image.getPixelData = () => voxelManager.getScalarData();
|
|
53
|
+
delete image.imageFrame.pixelData;
|
|
54
|
+
}
|
|
53
55
|
}
|
|
54
56
|
export function loadImage(imageId, options = { priority: 0, requestType: 'prefetch' }) {
|
|
55
57
|
if (imageId === undefined) {
|
|
@@ -86,7 +88,7 @@ export function createAndCacheDerivedImage(referencedImageId, options = {}) {
|
|
|
86
88
|
const { imageId, skipCreateBuffer, onCacheAdd } = options;
|
|
87
89
|
const imagePlaneModule = metaData.get('imagePlaneModule', referencedImageId);
|
|
88
90
|
const length = imagePlaneModule.rows * imagePlaneModule.columns;
|
|
89
|
-
const { TypedArrayConstructor } = getBufferConfiguration(options.
|
|
91
|
+
const { TypedArrayConstructor } = getBufferConfiguration(options.targetBuffer?.type, length);
|
|
90
92
|
const imageScalarData = new TypedArrayConstructor(skipCreateBuffer ? 1 : length);
|
|
91
93
|
const derivedImageId = imageId;
|
|
92
94
|
const referencedImagePlaneMetadata = metaData.get('imagePlaneModule', referencedImageId);
|
|
@@ -99,6 +101,12 @@ export function createAndCacheDerivedImage(referencedImageId, options = {}) {
|
|
|
99
101
|
type: 'generalSeriesModule',
|
|
100
102
|
metadata: referencedImageGeneralSeriesMetadata,
|
|
101
103
|
});
|
|
104
|
+
genericMetadataProvider.add(derivedImageId, {
|
|
105
|
+
type: 'generalImageModule',
|
|
106
|
+
metadata: {
|
|
107
|
+
instanceNumber: options.instanceNumber,
|
|
108
|
+
},
|
|
109
|
+
});
|
|
102
110
|
const imagePixelModule = metaData.get('imagePixelModule', referencedImageId);
|
|
103
111
|
genericMetadataProvider.add(derivedImageId, {
|
|
104
112
|
type: 'imagePixelModule',
|
|
@@ -115,8 +123,9 @@ export function createAndCacheDerivedImage(referencedImageId, options = {}) {
|
|
|
115
123
|
scalarData: imageScalarData,
|
|
116
124
|
onCacheAdd,
|
|
117
125
|
skipCreateBuffer,
|
|
118
|
-
|
|
119
|
-
.name,
|
|
126
|
+
targetBuffer: {
|
|
127
|
+
type: imageScalarData.constructor.name,
|
|
128
|
+
},
|
|
120
129
|
dimensions: [imagePlaneModule.columns, imagePlaneModule.rows],
|
|
121
130
|
spacing: [
|
|
122
131
|
imagePlaneModule.columnPixelSpacing,
|
|
@@ -125,6 +134,7 @@ export function createAndCacheDerivedImage(referencedImageId, options = {}) {
|
|
|
125
134
|
origin: imagePlaneModule.imagePositionPatient,
|
|
126
135
|
direction: imagePlaneModule.imageOrientationPatient,
|
|
127
136
|
});
|
|
137
|
+
localImage.referencedImageId = referencedImageId;
|
|
128
138
|
if (!cache.getImageLoadObject(imageId)) {
|
|
129
139
|
cache.putImageSync(imageId, localImage);
|
|
130
140
|
}
|
|
@@ -135,19 +145,22 @@ export function createAndCacheDerivedImages(referencedImageIds, options = {}) {
|
|
|
135
145
|
throw new Error('createAndCacheDerivedImages: parameter imageIds must be list of image Ids');
|
|
136
146
|
}
|
|
137
147
|
const derivedImageIds = [];
|
|
138
|
-
const images = referencedImageIds.map((referencedImageId) => {
|
|
148
|
+
const images = referencedImageIds.map((referencedImageId, index) => {
|
|
139
149
|
const newOptions = {
|
|
140
150
|
imageId: options?.getDerivedImageId?.(referencedImageId) ||
|
|
141
151
|
`derived:${uuidv4()}`,
|
|
142
152
|
...options,
|
|
143
153
|
};
|
|
144
154
|
derivedImageIds.push(newOptions.imageId);
|
|
145
|
-
return createAndCacheDerivedImage(referencedImageId,
|
|
155
|
+
return createAndCacheDerivedImage(referencedImageId, {
|
|
156
|
+
...newOptions,
|
|
157
|
+
instanceNumber: index + 1,
|
|
158
|
+
});
|
|
146
159
|
});
|
|
147
160
|
return images;
|
|
148
161
|
}
|
|
149
162
|
export function createAndCacheLocalImage(imageId, options) {
|
|
150
|
-
const { scalarData, origin, direction,
|
|
163
|
+
const { scalarData, origin, direction, targetBuffer, skipCreateBuffer, onCacheAdd, } = options;
|
|
151
164
|
const dimensions = options.dimensions;
|
|
152
165
|
const spacing = options.spacing;
|
|
153
166
|
if (!dimensions || !spacing) {
|
|
@@ -158,8 +171,8 @@ export function createAndCacheLocalImage(imageId, options) {
|
|
|
158
171
|
const columnPixelSpacing = spacing[0];
|
|
159
172
|
const rowPixelSpacing = spacing[1];
|
|
160
173
|
const imagePlaneModule = {
|
|
161
|
-
rows: height
|
|
162
|
-
columns: width
|
|
174
|
+
rows: height,
|
|
175
|
+
columns: width,
|
|
163
176
|
imageOrientationPatient: direction ?? [1, 0, 0, 0, 1, 0],
|
|
164
177
|
rowCosines: direction ? direction.slice(0, 3) : [1, 0, 0],
|
|
165
178
|
columnCosines: direction ? direction.slice(3, 6) : [0, 1, 0],
|
|
@@ -181,7 +194,7 @@ export function createAndCacheLocalImage(imageId, options) {
|
|
|
181
194
|
scalarDataToUse = scalarData;
|
|
182
195
|
}
|
|
183
196
|
else if (!skipCreateBuffer) {
|
|
184
|
-
const { numBytes, TypedArrayConstructor } = getBufferConfiguration(
|
|
197
|
+
const { numBytes, TypedArrayConstructor } = getBufferConfiguration(targetBuffer?.type, length);
|
|
185
198
|
const imageScalarData = new TypedArrayConstructor(length);
|
|
186
199
|
scalarDataToUse = imageScalarData;
|
|
187
200
|
}
|
|
@@ -243,7 +256,7 @@ export function createAndCacheLocalImage(imageId, options) {
|
|
|
243
256
|
windowWidth: 0,
|
|
244
257
|
color: imagePixelModule.photometricInterpretation === 'RGB',
|
|
245
258
|
numberOfComponents: imagePixelModule.samplesPerPixel,
|
|
246
|
-
dataType:
|
|
259
|
+
dataType: targetBuffer?.type,
|
|
247
260
|
slope: 1,
|
|
248
261
|
minPixelValue: 0,
|
|
249
262
|
maxPixelValue: Math.pow(2, imagePixelModule.bitsStored) - 1,
|
|
@@ -317,15 +330,15 @@ export function unregisterAllImageLoaders() {
|
|
|
317
330
|
Object.keys(imageLoaders).forEach((imageLoader) => delete imageLoaders[imageLoader]);
|
|
318
331
|
unknownImageLoader = undefined;
|
|
319
332
|
}
|
|
320
|
-
export function
|
|
333
|
+
export function createAndCacheDerivedLabelmapImages(referencedImageIds, options = {}) {
|
|
321
334
|
return createAndCacheDerivedImages(referencedImageIds, {
|
|
322
335
|
...options,
|
|
323
|
-
|
|
336
|
+
targetBuffer: { type: 'Uint8Array' },
|
|
324
337
|
});
|
|
325
338
|
}
|
|
326
|
-
export function
|
|
339
|
+
export function createAndCacheDerivedLabelmapImage(referencedImageId, options = {}) {
|
|
327
340
|
return createAndCacheDerivedImage(referencedImageId, {
|
|
328
341
|
...options,
|
|
329
|
-
|
|
342
|
+
targetBuffer: { type: 'Uint8Array' },
|
|
330
343
|
});
|
|
331
344
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { cornerstoneStreamingImageVolumeLoader } from './cornerstoneStreamingImageVolumeLoader';
|
|
2
|
+
import { cornerstoneStreamingDynamicImageVolumeLoader } from './cornerstoneStreamingDynamicImageVolumeLoader';
|
|
3
|
+
import * as geometryLoader from './geometryLoader';
|
|
4
|
+
import * as imageLoader from './imageLoader';
|
|
5
|
+
import * as volumeLoader from './volumeLoader';
|
|
6
|
+
export { cornerstoneStreamingImageVolumeLoader, cornerstoneStreamingDynamicImageVolumeLoader, geometryLoader, imageLoader, volumeLoader, };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { cornerstoneStreamingImageVolumeLoader } from './cornerstoneStreamingImageVolumeLoader';
|
|
2
|
+
import { cornerstoneStreamingDynamicImageVolumeLoader } from './cornerstoneStreamingDynamicImageVolumeLoader';
|
|
3
|
+
import * as geometryLoader from './geometryLoader';
|
|
4
|
+
import * as imageLoader from './imageLoader';
|
|
5
|
+
import * as volumeLoader from './volumeLoader';
|
|
6
|
+
volumeLoader.registerUnknownVolumeLoader(cornerstoneStreamingImageVolumeLoader);
|
|
7
|
+
export { cornerstoneStreamingImageVolumeLoader, cornerstoneStreamingDynamicImageVolumeLoader, geometryLoader, imageLoader, volumeLoader, };
|
|
@@ -6,7 +6,9 @@ interface VolumeLoaderOptions {
|
|
|
6
6
|
}
|
|
7
7
|
interface DerivedVolumeOptions {
|
|
8
8
|
volumeId: string;
|
|
9
|
-
|
|
9
|
+
targetBuffer?: {
|
|
10
|
+
type: PixelDataTypedArrayString;
|
|
11
|
+
};
|
|
10
12
|
}
|
|
11
13
|
export interface LocalVolumeOptions {
|
|
12
14
|
metadata: Metadata;
|
|
@@ -19,7 +21,9 @@ export interface LocalVolumeOptions {
|
|
|
19
21
|
referencedImageIds?: string[];
|
|
20
22
|
referencedVolumeId?: string;
|
|
21
23
|
preventCache?: boolean;
|
|
22
|
-
|
|
24
|
+
targetBuffer?: {
|
|
25
|
+
type: PixelDataTypedArrayString;
|
|
26
|
+
};
|
|
23
27
|
}
|
|
24
28
|
export declare function loadVolume(volumeId: string, options?: VolumeLoaderOptions): Promise<IImageVolume>;
|
|
25
29
|
export declare function createAndCacheVolume(volumeId: string, options?: VolumeLoaderOptions): Promise<IImageVolume | IStreamingImageVolume>;
|
|
@@ -30,6 +34,6 @@ export declare function registerVolumeLoader(scheme: string, volumeLoader: Volum
|
|
|
30
34
|
export declare function getVolumeLoaderSchemes(): string[];
|
|
31
35
|
export declare function registerUnknownVolumeLoader(volumeLoader: VolumeLoaderFn): VolumeLoaderFn | undefined;
|
|
32
36
|
export declare function getUnknownVolumeLoaderSchema(): string;
|
|
33
|
-
export declare function
|
|
34
|
-
export declare function
|
|
37
|
+
export declare function createAndCacheDerivedLabelmapVolume(referencedVolumeId: string, options?: DerivedVolumeOptions): IImageVolume;
|
|
38
|
+
export declare function createLocalLabelmapVolume(options: LocalVolumeOptions, volumeId: string, preventCache?: boolean): IImageVolume;
|
|
35
39
|
export {};
|
|
@@ -7,6 +7,7 @@ import triggerEvent from '../utilities/triggerEvent';
|
|
|
7
7
|
import uuidv4 from '../utilities/uuidv4';
|
|
8
8
|
import VoxelManager from '../utilities/VoxelManager';
|
|
9
9
|
import { createAndCacheLocalImage, createAndCacheDerivedImages, } from './imageLoader';
|
|
10
|
+
import { generateVolumePropsFromImageIds } from '../utilities/generateVolumePropsFromImageIds';
|
|
10
11
|
const volumeLoaders = {};
|
|
11
12
|
let unknownVolumeLoader;
|
|
12
13
|
function loadVolumeFromVolumeLoader(volumeId, options) {
|
|
@@ -69,7 +70,7 @@ export function createAndCacheDerivedVolume(referencedVolumeId, options) {
|
|
|
69
70
|
const { metadata, dimensions, spacing, origin, direction } = referencedVolume;
|
|
70
71
|
const referencedImageIds = referencedVolume.imageIds ?? [];
|
|
71
72
|
const derivedImages = createAndCacheDerivedImages(referencedImageIds, {
|
|
72
|
-
|
|
73
|
+
targetBuffer: options.targetBuffer,
|
|
73
74
|
});
|
|
74
75
|
const dataType = derivedImages[0].dataType;
|
|
75
76
|
const derivedVolumeImageIds = derivedImages.map((image) => image.imageId);
|
|
@@ -99,13 +100,31 @@ export async function createAndCacheVolumeFromImages(volumeId, imageIds) {
|
|
|
99
100
|
if (cachedVolume) {
|
|
100
101
|
return cachedVolume;
|
|
101
102
|
}
|
|
103
|
+
const imageIdsToLoad = imageIds.filter((imageId) => !cache.getImage(imageId));
|
|
104
|
+
if (imageIdsToLoad.length === 0) {
|
|
105
|
+
const volumeProps = generateVolumePropsFromImageIds(imageIds, volumeId);
|
|
106
|
+
const derivedVolume = new ImageVolume({
|
|
107
|
+
volumeId,
|
|
108
|
+
dataType: volumeProps.dataType,
|
|
109
|
+
metadata: structuredClone(volumeProps.metadata),
|
|
110
|
+
dimensions: volumeProps.dimensions,
|
|
111
|
+
spacing: volumeProps.spacing,
|
|
112
|
+
origin: volumeProps.origin,
|
|
113
|
+
direction: volumeProps.direction,
|
|
114
|
+
referencedVolumeId: volumeProps.referencedVolumeId,
|
|
115
|
+
imageIds: volumeProps.imageIds,
|
|
116
|
+
referencedImageIds: volumeProps.referencedImageIds,
|
|
117
|
+
});
|
|
118
|
+
cache.putVolumeSync(volumeId, derivedVolume);
|
|
119
|
+
return derivedVolume;
|
|
120
|
+
}
|
|
102
121
|
const volume = (await createAndCacheVolume(volumeId, {
|
|
103
122
|
imageIds,
|
|
104
123
|
}));
|
|
105
124
|
return volume;
|
|
106
125
|
}
|
|
107
126
|
export function createLocalVolume(volumeId, options = {}) {
|
|
108
|
-
const { metadata, dimensions, spacing, origin, direction, scalarData,
|
|
127
|
+
const { metadata, dimensions, spacing, origin, direction, scalarData, targetBuffer, preventCache = false, } = options;
|
|
109
128
|
const cachedVolume = cache.getVolume(volumeId);
|
|
110
129
|
if (cachedVolume) {
|
|
111
130
|
return cachedVolume;
|
|
@@ -113,7 +132,7 @@ export function createLocalVolume(volumeId, options = {}) {
|
|
|
113
132
|
const sliceLength = dimensions[0] * dimensions[1];
|
|
114
133
|
const dataType = scalarData
|
|
115
134
|
? scalarData.constructor.name
|
|
116
|
-
:
|
|
135
|
+
: targetBuffer?.type;
|
|
117
136
|
const totalNumberOfVoxels = sliceLength * dimensions[2];
|
|
118
137
|
let byteLength;
|
|
119
138
|
switch (dataType) {
|
|
@@ -145,7 +164,7 @@ export function createLocalVolume(volumeId, options = {}) {
|
|
|
145
164
|
spacing: [spacing[0], spacing[1]],
|
|
146
165
|
origin,
|
|
147
166
|
direction,
|
|
148
|
-
|
|
167
|
+
targetBuffer: { type: dataType },
|
|
149
168
|
});
|
|
150
169
|
derivedImages.push(derivedImage);
|
|
151
170
|
}
|
|
@@ -184,13 +203,13 @@ export function registerUnknownVolumeLoader(volumeLoader) {
|
|
|
184
203
|
export function getUnknownVolumeLoaderSchema() {
|
|
185
204
|
return unknownVolumeLoader.name;
|
|
186
205
|
}
|
|
187
|
-
export function
|
|
206
|
+
export function createAndCacheDerivedLabelmapVolume(referencedVolumeId, options = {}) {
|
|
188
207
|
return createAndCacheDerivedVolume(referencedVolumeId, {
|
|
189
208
|
...options,
|
|
190
|
-
|
|
209
|
+
targetBuffer: { type: 'Uint8Array' },
|
|
191
210
|
});
|
|
192
211
|
}
|
|
193
|
-
export function
|
|
212
|
+
export function createLocalLabelmapVolume(options, volumeId, preventCache = false) {
|
|
194
213
|
if (!options.scalarData) {
|
|
195
214
|
options.scalarData = new Uint8Array(options.dimensions[0] * options.dimensions[1] * options.dimensions[2]);
|
|
196
215
|
}
|
package/dist/esm/types/AABB2.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/types/AABB3.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/types/Color.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/types/IActor.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/types/ICache.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/types/IImage.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/types/Mat3.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -24,14 +24,14 @@ export interface PatientStudyModuleMetadata {
|
|
|
24
24
|
}
|
|
25
25
|
export interface ImagePlaneModuleMetadata {
|
|
26
26
|
frameOfReferenceUID: string;
|
|
27
|
-
rows:
|
|
28
|
-
columns:
|
|
27
|
+
rows: number;
|
|
28
|
+
columns: number;
|
|
29
29
|
imageOrientationPatient: number[];
|
|
30
30
|
rowCosines: number[];
|
|
31
31
|
columnCosines: number[];
|
|
32
32
|
imagePositionPatient: number[];
|
|
33
|
-
sliceThickness:
|
|
34
|
-
sliceLocation:
|
|
33
|
+
sliceThickness: number;
|
|
34
|
+
sliceLocation: number;
|
|
35
35
|
pixelSpacing: number[];
|
|
36
36
|
rowPixelSpacing: number | null;
|
|
37
37
|
columnPixelSpacing: number | null;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/types/Plane.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|