larvitar 2.1.12 → 2.2.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/README.md
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
## Dicom Image Toolkit for CornerstoneJS
|
|
10
10
|
|
|
11
|
-
### Current version: 2.
|
|
11
|
+
### Current version: 2.2.0
|
|
12
12
|
|
|
13
|
-
### Latest Published Release: 2.
|
|
13
|
+
### Latest Published Release: 2.2.0
|
|
14
14
|
|
|
15
15
|
This library provides common DICOM functionalities to be used in web-applications: it's wrapper that simplifies the use of cornerstone-js environment.
|
|
16
16
|
|
|
@@ -4,24 +4,13 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { ImageObject } from "./types";
|
|
6
6
|
import { getLarvitarManager } from "./loaders/commonLoader";
|
|
7
|
-
declare const globalConfig: {
|
|
8
|
-
maxWebWorkers: number;
|
|
9
|
-
startWebWorkersOnDemand: boolean;
|
|
10
|
-
taskConfiguration: {
|
|
11
|
-
decodeTask: {
|
|
12
|
-
loadCodecsOnStartup: boolean;
|
|
13
|
-
initializeCodecsOnStartup: boolean;
|
|
14
|
-
strict: boolean;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
7
|
/**
|
|
19
8
|
* Configure DICOMImageLoader
|
|
20
9
|
* @instance
|
|
21
10
|
* @function initializeImageLoader
|
|
22
|
-
* @param {
|
|
11
|
+
* @param {number} maxConcurrency - Optional maximum number of web workers
|
|
23
12
|
*/
|
|
24
|
-
export declare const initializeImageLoader: (
|
|
13
|
+
export declare const initializeImageLoader: (maxConcurrency?: number) => void;
|
|
25
14
|
/**
|
|
26
15
|
* Configure cornerstoneWebImageLoader
|
|
27
16
|
* @instance
|
|
@@ -68,4 +57,3 @@ export declare const registerDsaImageLoader: () => void;
|
|
|
68
57
|
* @param {number} sliceIndex - Optional custom index to overwrite slice index as default one
|
|
69
58
|
*/
|
|
70
59
|
export declare const updateLoadedStack: (seriesData: ImageObject, allSeriesStack: ReturnType<typeof getLarvitarManager>, customId?: string, sliceIndex?: number) => void;
|
|
71
|
-
export {};
|
|
@@ -175,9 +175,9 @@ export declare const rotateImageLeft: (elementId: string | HTMLElement) => void;
|
|
|
175
175
|
*/
|
|
176
176
|
export declare const rotateImageRight: (elementId: string | HTMLElement) => void;
|
|
177
177
|
/**
|
|
178
|
-
* Update Larvitar manager viewport data
|
|
178
|
+
* Update Larvitar manager temporal viewport data
|
|
179
179
|
* @instance
|
|
180
|
-
* @function
|
|
180
|
+
* @function updateTemporalViewportData
|
|
181
181
|
* @param {Series} seriesStack The Id of the series
|
|
182
182
|
* @param {String} elementId The Id of the html element
|
|
183
183
|
*/
|
|
@@ -20,21 +20,22 @@ export declare const cacheImage: (seriesData: Series, imageIndex: number) => Pro
|
|
|
20
20
|
*/
|
|
21
21
|
export declare const cacheImages: (seriesData: Series, callback?: Function) => Promise<void>;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Load and cache image stack
|
|
24
24
|
* @instance
|
|
25
|
-
* @function
|
|
25
|
+
* @function loadAndCacheImageStack
|
|
26
26
|
* @param {Object} seriesData The series data
|
|
27
27
|
* @return {Promise} Promise object represents the loading and caching of the image stack
|
|
28
28
|
*/
|
|
29
|
-
export declare const
|
|
29
|
+
export declare const loadAndCacheImageStack: (seriesData: Series) => Promise<void>;
|
|
30
30
|
/**
|
|
31
31
|
* Load and cache image stack
|
|
32
32
|
* @instance
|
|
33
|
-
* @function
|
|
33
|
+
* @function loadAndCacheDsaImageStack
|
|
34
34
|
* @param {Object} seriesData The series data
|
|
35
|
+
* @param {boolean} forceRecache Optional parameter to force recache
|
|
35
36
|
* @return {Promise} Promise object represents the loading and caching of the image stack
|
|
36
37
|
*/
|
|
37
|
-
export declare const
|
|
38
|
+
export declare const loadAndCacheDsaImageStack: (seriesData: Series, forceRecache?: boolean) => Promise<void>;
|
|
38
39
|
/**
|
|
39
40
|
* Get the dicom imageId from dicom loader
|
|
40
41
|
* @instance
|
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ import { DEFAULT_TOOLS, dvTools, getDefaultToolsByType, setDefaultToolsProps, re
|
|
|
26
26
|
import { initSegmentationModule, addSegmentationMask, clearSegmentationState, deleteMask, setActiveLabelmap, setActiveSegment, enableBrushTool, disableBrushTool, undoLastStroke, redoLastStroke, setBrushProps, toggleContourMode, toggleVisibility, hexToRgb, rgbToHex, getActiveLabelmapBuffer } from "./imaging/tools/segmentation";
|
|
27
27
|
import { updateLarvitarManager, populateLarvitarManager, getLarvitarManager, getLarvitarImageTracker, resetLarvitarManager, removeSeriesFromLarvitarManager, getSeriesDataFromLarvitarManager, getImageFrame, getSopInstanceUIDFromLarvitarManager } from "./imaging/loaders/commonLoader";
|
|
28
28
|
import { buildNrrdImage, getNrrdImageId, loadNrrdImage, getImageIdFromSlice, getSliceNumberFromImageId, getNrrdSerieDimensions } from "./imaging/loaders/nrrdLoader";
|
|
29
|
-
import { getDicomImageId, cacheImage, cacheImages, loadAndCacheImageStack,
|
|
29
|
+
import { getDicomImageId, cacheImage, cacheImages, loadAndCacheImageStack, loadAndCacheDsaImageStack } from "./imaging/loaders/dicomLoader";
|
|
30
30
|
import { loadReslicedImage } from "./imaging/loaders/resliceLoader";
|
|
31
31
|
import { loadMultiFrameImage, buildMultiFrameImage, getMultiFrameImageId, clearMultiFrameCache } from "./imaging/loaders/multiframeLoader";
|
|
32
32
|
import { populateDsaImageIds } from "./imaging/loaders/dsaImageLoader";
|
|
@@ -35,4 +35,4 @@ import { getColormapsList, applyColorMap, addColorMap, fillPixelData, HSVToRGB }
|
|
|
35
35
|
import { applyDSAShift } from "./imaging/postProcessing/applyDSA";
|
|
36
36
|
import { saveAnnotations, loadAnnotations } from "./imaging/tools/io";
|
|
37
37
|
import { addMouseKeyHandlers, removeMouseKeyHandlers, toggleMouseToolsListeners } from "./imaging/tools/interaction";
|
|
38
|
-
export { VERSION, cornerstone, cornerstoneTools, parseDicom, segModule, cornerstoneDICOMImageLoader, checkAndClearMemory, checkMemoryAllocation, getUsedMemory, getAvailableMemory, getPerformanceMonitor, activatePerformanceMonitor, deactivatePerformanceMonitor, store, parseECG, renderECG, unrenderECG, syncECGFrame, updateECGFrame, getDefaultECGLayout, getImagePresets, setImagePreset, setImageCustomPreset, getNormalOrientation, getMinPixelValue, getMaxPixelValue, getPixelRepresentation, getTypedArrayFromDataType, getSortedStack, randomId, getMeanValue, getReslicedMetadata, getReslicedPixeldata, getDistanceBetweenSlices, getImageMetadata, buildHeader, getCachedPixelData, buildData, buildDataAsync, importNRRDImage, exportImageToBase64, anonymize, buildLayer, updateLayer, getActiveLayer, setActiveLayer, initializeImageLoader, initializeWebImageLoader, initializeFileImageLoader, registerNRRDImageLoader, registerResliceLoader, registerMultiFrameImageLoader, registerDsaImageLoader, updateLoadedStack, readFile, readFiles, parseDataSet, clearImageParsing, clearImageCache, loadAndCacheImages, renderFileImage, renderDICOMPDF, renderWebImage, disableViewport, unloadViewport, resizeViewport, renderImage, updateImage, redrawImage, resetViewports, updateViewportData, toggleMouseToolsListeners, storeViewportData, invertImage, flipImageHorizontal, flipImageVertical, rotateImageLeft, rotateImageRight, resliceSeries, getColormapsList, applyColorMap, addColorMap, fillPixelData, HSVToRGB, parseContours, updateLarvitarManager, populateLarvitarManager, getLarvitarManager, getLarvitarImageTracker, resetLarvitarManager, removeSeriesFromLarvitarManager, getSeriesDataFromLarvitarManager, getImageFrame, getSopInstanceUIDFromLarvitarManager, buildNrrdImage, getNrrdImageId, loadNrrdImage, getImageIdFromSlice, getSliceNumberFromImageId, getNrrdSerieDimensions, loadReslicedImage, getDicomImageId, cacheImage, cacheImages, loadAndCacheImageStack,
|
|
38
|
+
export { VERSION, cornerstone, cornerstoneTools, parseDicom, segModule, cornerstoneDICOMImageLoader, checkAndClearMemory, checkMemoryAllocation, getUsedMemory, getAvailableMemory, getPerformanceMonitor, activatePerformanceMonitor, deactivatePerformanceMonitor, store, parseECG, renderECG, unrenderECG, syncECGFrame, updateECGFrame, getDefaultECGLayout, getImagePresets, setImagePreset, setImageCustomPreset, getNormalOrientation, getMinPixelValue, getMaxPixelValue, getPixelRepresentation, getTypedArrayFromDataType, getSortedStack, randomId, getMeanValue, getReslicedMetadata, getReslicedPixeldata, getDistanceBetweenSlices, getImageMetadata, buildHeader, getCachedPixelData, buildData, buildDataAsync, importNRRDImage, exportImageToBase64, anonymize, buildLayer, updateLayer, getActiveLayer, setActiveLayer, initializeImageLoader, initializeWebImageLoader, initializeFileImageLoader, registerNRRDImageLoader, registerResliceLoader, registerMultiFrameImageLoader, registerDsaImageLoader, updateLoadedStack, readFile, readFiles, parseDataSet, clearImageParsing, clearImageCache, loadAndCacheImages, renderFileImage, renderDICOMPDF, renderWebImage, disableViewport, unloadViewport, resizeViewport, renderImage, updateImage, redrawImage, resetViewports, updateViewportData, toggleMouseToolsListeners, storeViewportData, invertImage, flipImageHorizontal, flipImageVertical, rotateImageLeft, rotateImageRight, resliceSeries, getColormapsList, applyColorMap, addColorMap, fillPixelData, HSVToRGB, parseContours, updateLarvitarManager, populateLarvitarManager, getLarvitarManager, getLarvitarImageTracker, resetLarvitarManager, removeSeriesFromLarvitarManager, getSeriesDataFromLarvitarManager, getImageFrame, getSopInstanceUIDFromLarvitarManager, buildNrrdImage, getNrrdImageId, loadNrrdImage, getImageIdFromSlice, getSliceNumberFromImageId, getNrrdSerieDimensions, loadReslicedImage, getDicomImageId, cacheImage, cacheImages, loadAndCacheImageStack, loadAndCacheDsaImageStack, loadMultiFrameImage, buildMultiFrameImage, getMultiFrameImageId, clearMultiFrameCache, populateDsaImageIds, getFileManager, resetFileLoader, resetFileManager, populateFileManager, getFileImageId, applyDSAShift, addDiameterTool, addContoursTool, addMaskEditingTool, getCurrentMaskData, addStackStateToElement, addSeedsTool, clearMeasurements, getToolState, clearToolStateByName, updateDiameterTool, addToolStateSingleSlice, clearCornerstoneElements, syncToolStack, updateStackToolState, setSegmentationConfig, csToolsCreateStack, csToolsUpdateImageIds, csToolsUpdateImageIndex, initializeCSTools, setToolsStyle, addDefaultTools, addTool, setToolActive, setToolDisabled, setToolEnabled, setToolPassive, exportAnnotations, DEFAULT_TOOLS, dvTools, getDefaultToolsByType, setDefaultToolsProps, registerExternalTool, saveAnnotations, loadAnnotations, addMouseKeyHandlers, removeMouseKeyHandlers, initSegmentationModule, addSegmentationMask, setActiveLabelmap, setActiveSegment, undoLastStroke, redoLastStroke, setBrushProps, hexToRgb, rgbToHex, clearSegmentationState, deleteMask, enableBrushTool, disableBrushTool, toggleContourMode, toggleVisibility, getActiveLabelmapBuffer, updateTemporalViewportData };
|
package/dist/larvitar.js
CHANGED
|
@@ -157047,7 +157047,7 @@ const dsaImageLoader_1 = __webpack_require__(6475);
|
|
|
157047
157047
|
* @property {String} webWorkerPath - path to default DICOM web worker
|
|
157048
157048
|
* @property {} - see https://github.com/cornerstonejs/cornerstoneDICOMImageLoader/blob/master/docs/WebWorkers.md
|
|
157049
157049
|
*/
|
|
157050
|
-
const MAX_CONCURRENCY =
|
|
157050
|
+
const MAX_CONCURRENCY = 32;
|
|
157051
157051
|
const globalConfig = {
|
|
157052
157052
|
maxWebWorkers: Math.max(Math.min(navigator.hardwareConcurrency - 1, MAX_CONCURRENCY), 1),
|
|
157053
157053
|
startWebWorkersOnDemand: true,
|
|
@@ -157061,7 +157061,7 @@ const globalConfig = {
|
|
|
157061
157061
|
};
|
|
157062
157062
|
/*
|
|
157063
157063
|
* This module provides the following functions to be exported:
|
|
157064
|
-
* initializeImageLoader(
|
|
157064
|
+
* initializeImageLoader(maxConcurrency)
|
|
157065
157065
|
* initializeWebImageLoader()
|
|
157066
157066
|
* initializeFileImageLoader()
|
|
157067
157067
|
* registerNRRDImageLoader()
|
|
@@ -157072,13 +157072,17 @@ const globalConfig = {
|
|
|
157072
157072
|
* Configure DICOMImageLoader
|
|
157073
157073
|
* @instance
|
|
157074
157074
|
* @function initializeImageLoader
|
|
157075
|
-
* @param {
|
|
157075
|
+
* @param {number} maxConcurrency - Optional maximum number of web workers
|
|
157076
157076
|
*/
|
|
157077
|
-
const initializeImageLoader = function (
|
|
157078
|
-
|
|
157077
|
+
const initializeImageLoader = function (maxConcurrency) {
|
|
157078
|
+
if (maxConcurrency) {
|
|
157079
|
+
const maxWebWorkers = Math.max(Math.min(navigator.hardwareConcurrency - 1, MAX_CONCURRENCY), 1);
|
|
157080
|
+
globalConfig.maxWebWorkers = maxWebWorkers;
|
|
157081
|
+
}
|
|
157079
157082
|
cornerstone_wado_image_loader_1.default.external.cornerstone = cornerstone_core_1.default;
|
|
157080
157083
|
cornerstone_wado_image_loader_1.default.external.dicomParser = dicom_parser_1.default;
|
|
157081
|
-
cornerstone_wado_image_loader_1.default.webWorkerManager.initialize(
|
|
157084
|
+
cornerstone_wado_image_loader_1.default.webWorkerManager.initialize(globalConfig);
|
|
157085
|
+
console.log(`CornestoneDICOMImageLoader initialized with ${globalConfig.maxWebWorkers} WebWorkers.`);
|
|
157082
157086
|
};
|
|
157083
157087
|
exports.initializeImageLoader = initializeImageLoader;
|
|
157084
157088
|
/**
|
|
@@ -158430,22 +158434,23 @@ const updateImage = function (series, elementId, imageIndex, cacheImage) {
|
|
|
158430
158434
|
if ((0, performance_1.getPerformanceMonitor)() === true) {
|
|
158431
158435
|
t0 = performance.now();
|
|
158432
158436
|
}
|
|
158433
|
-
|
|
158434
|
-
|
|
158435
|
-
|
|
158436
|
-
|
|
158437
|
-
|
|
158438
|
-
|
|
158439
|
-
|
|
158437
|
+
cornerstone_core_1.default.loadAndCacheImage(imageId).then(function (image) {
|
|
158438
|
+
cornerstone_core_1.default.displayImage(element, image);
|
|
158439
|
+
if ((0, performance_1.getPerformanceMonitor)() === true) {
|
|
158440
|
+
const t1 = performance.now();
|
|
158441
|
+
if (t0 !== undefined) {
|
|
158442
|
+
// check if t0 is defined before using it
|
|
158443
|
+
console.log(`Call to updateImage for viewport ${id} took ${t1 - t0} milliseconds.`);
|
|
158444
|
+
}
|
|
158440
158445
|
}
|
|
158441
|
-
|
|
158442
|
-
|
|
158443
|
-
|
|
158444
|
-
|
|
158445
|
-
|
|
158446
|
-
|
|
158447
|
-
|
|
158448
|
-
|
|
158446
|
+
(0, imageStore_1.set)(["sliceId", id, imageIndex]);
|
|
158447
|
+
const pendingSliceId = imageStore_1.default.get(["viewports", id, "pendingSliceId"]);
|
|
158448
|
+
if (imageIndex == pendingSliceId) {
|
|
158449
|
+
(0, imageStore_1.set)(["pendingSliceId", id, undefined]);
|
|
158450
|
+
}
|
|
158451
|
+
(0, imageStore_1.set)(["minPixelValue", id, image.minPixelValue]);
|
|
158452
|
+
(0, imageStore_1.set)(["maxPixelValue", id, image.maxPixelValue]);
|
|
158453
|
+
});
|
|
158449
158454
|
}
|
|
158450
158455
|
else {
|
|
158451
158456
|
let t0;
|
|
@@ -158801,9 +158806,9 @@ const rotateImageRight = function (elementId) {
|
|
|
158801
158806
|
};
|
|
158802
158807
|
exports.rotateImageRight = rotateImageRight;
|
|
158803
158808
|
/**
|
|
158804
|
-
* Update Larvitar manager viewport data
|
|
158809
|
+
* Update Larvitar manager temporal viewport data
|
|
158805
158810
|
* @instance
|
|
158806
|
-
* @function
|
|
158811
|
+
* @function updateTemporalViewportData
|
|
158807
158812
|
* @param {Series} seriesStack The Id of the series
|
|
158808
158813
|
* @param {String} elementId The Id of the html element
|
|
158809
158814
|
*/
|
|
@@ -161192,7 +161197,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
161192
161197
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
161193
161198
|
};
|
|
161194
161199
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
161195
|
-
exports.getDicomImageId = exports.
|
|
161200
|
+
exports.getDicomImageId = exports.loadAndCacheDsaImageStack = exports.loadAndCacheImageStack = exports.cacheImages = exports.cacheImage = void 0;
|
|
161196
161201
|
// external libraries
|
|
161197
161202
|
const cornerstone_core_1 = __importDefault(__webpack_require__(7371));
|
|
161198
161203
|
// internal libraries
|
|
@@ -161202,7 +161207,7 @@ const imageStore_1 = __importDefault(__webpack_require__(5278));
|
|
|
161202
161207
|
* This module provides the following functions to be exported:
|
|
161203
161208
|
* cacheImage(seriesData, imageIndex)
|
|
161204
161209
|
* loadAndCacheImageStack(seriesData)
|
|
161205
|
-
*
|
|
161210
|
+
* loadAndCacheDsaImageStack(seriesData, forceRecache)
|
|
161206
161211
|
* cacheImages(seriesData, callback)
|
|
161207
161212
|
* getDicomImageId(dicomLoaderName)
|
|
161208
161213
|
*/
|
|
@@ -161241,94 +161246,75 @@ const cacheImages = function (seriesData, callback) {
|
|
|
161241
161246
|
};
|
|
161242
161247
|
exports.cacheImages = cacheImages;
|
|
161243
161248
|
/**
|
|
161244
|
-
*
|
|
161249
|
+
* Load and cache image stack
|
|
161245
161250
|
* @instance
|
|
161246
|
-
* @function
|
|
161251
|
+
* @function loadAndCacheImageStack
|
|
161247
161252
|
* @param {Object} seriesData The series data
|
|
161248
161253
|
* @return {Promise} Promise object represents the loading and caching of the image stack
|
|
161249
161254
|
*/
|
|
161250
|
-
const
|
|
161255
|
+
const loadAndCacheImageStack = function (seriesData) {
|
|
161251
161256
|
return __awaiter(this, void 0, void 0, function* () {
|
|
161252
|
-
return new Promise((resolve,
|
|
161257
|
+
return new Promise((resolve, _) => __awaiter(this, void 0, void 0, function* () {
|
|
161253
161258
|
const t0 = performance.now();
|
|
161259
|
+
imageStore_1.default.addSeriesId(seriesData.seriesUID, seriesData.imageIds);
|
|
161260
|
+
let imageIds = seriesData.imageIds;
|
|
161254
161261
|
// add DSA imageIds to store
|
|
161255
|
-
if (seriesData.dsa
|
|
161256
|
-
|
|
161257
|
-
|
|
161258
|
-
return;
|
|
161259
|
-
}
|
|
161260
|
-
let promises = new Array(seriesData.dsa.imageIds.length);
|
|
161261
|
-
function cacheImageStack(imageIds, index) {
|
|
161262
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
161263
|
-
if (index < imageIds.length) {
|
|
161264
|
-
const imageId = imageIds[index];
|
|
161265
|
-
if (imageId) {
|
|
161266
|
-
yield cornerstone_core_1.default.imageCache.removeImageLoadObject(imageId);
|
|
161267
|
-
yield cornerstone_core_1.default.loadAndCacheImage(imageId).then(promise => {
|
|
161268
|
-
promises[index] = Promise.resolve(promise);
|
|
161269
|
-
});
|
|
161270
|
-
}
|
|
161271
|
-
else {
|
|
161272
|
-
console.warn(`Stack is not fully loaded, skipping cache for index ${index}`);
|
|
161273
|
-
}
|
|
161274
|
-
yield cacheImageStack(imageIds, index + 1);
|
|
161275
|
-
}
|
|
161276
|
-
});
|
|
161262
|
+
if (seriesData.dsa !== undefined) {
|
|
161263
|
+
const dsaSeriesUID = seriesData.seriesUID + "-DSA";
|
|
161264
|
+
imageStore_1.default.addSeriesId(dsaSeriesUID, seriesData.dsa.imageIds);
|
|
161277
161265
|
}
|
|
161278
|
-
|
|
161279
|
-
|
|
161280
|
-
|
|
161281
|
-
|
|
161282
|
-
|
|
161266
|
+
// load and cache image stack
|
|
161267
|
+
const promises = imageIds.map(imageId => {
|
|
161268
|
+
return cornerstone_core_1.default.loadAndCacheImage(imageId);
|
|
161269
|
+
});
|
|
161270
|
+
Promise.all(promises).then(() => {
|
|
161271
|
+
const t1 = performance.now();
|
|
161272
|
+
console.log(`Call to loadAndCacheImageStack took ${t1 - t0} milliseconds.`);
|
|
161273
|
+
resolve();
|
|
161274
|
+
});
|
|
161283
161275
|
}));
|
|
161284
161276
|
});
|
|
161285
161277
|
};
|
|
161286
|
-
exports.
|
|
161278
|
+
exports.loadAndCacheImageStack = loadAndCacheImageStack;
|
|
161287
161279
|
/**
|
|
161288
161280
|
* Load and cache image stack
|
|
161289
161281
|
* @instance
|
|
161290
|
-
* @function
|
|
161282
|
+
* @function loadAndCacheDsaImageStack
|
|
161291
161283
|
* @param {Object} seriesData The series data
|
|
161284
|
+
* @param {boolean} forceRecache Optional parameter to force recache
|
|
161292
161285
|
* @return {Promise} Promise object represents the loading and caching of the image stack
|
|
161293
161286
|
*/
|
|
161294
|
-
const
|
|
161287
|
+
const loadAndCacheDsaImageStack = function (seriesData, forceRecache = false) {
|
|
161295
161288
|
return __awaiter(this, void 0, void 0, function* () {
|
|
161296
|
-
return new Promise((resolve,
|
|
161289
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
161297
161290
|
const t0 = performance.now();
|
|
161298
|
-
imageStore_1.default.addSeriesId(seriesData.seriesUID, seriesData.imageIds);
|
|
161299
|
-
let imageIds = seriesData.imageIds;
|
|
161300
161291
|
// add DSA imageIds to store
|
|
161301
|
-
if (seriesData.dsa
|
|
161302
|
-
|
|
161303
|
-
|
|
161304
|
-
|
|
161292
|
+
if (seriesData.dsa === undefined) {
|
|
161293
|
+
console.warn("DSA image stack is not available");
|
|
161294
|
+
reject();
|
|
161295
|
+
return;
|
|
161305
161296
|
}
|
|
161306
|
-
|
|
161307
|
-
|
|
161308
|
-
|
|
161309
|
-
|
|
161310
|
-
const imageId = imageIds[index];
|
|
161311
|
-
if (imageId) {
|
|
161312
|
-
yield cornerstone_core_1.default.loadAndCacheImage(imageId).then(promise => {
|
|
161313
|
-
promises[index] = Promise.resolve(promise);
|
|
161314
|
-
});
|
|
161315
|
-
}
|
|
161316
|
-
else {
|
|
161317
|
-
console.warn(`Stack is not fully loaded, skipping cache for index ${index}`);
|
|
161318
|
-
}
|
|
161319
|
-
yield cacheImageStack(imageIds, index + 1);
|
|
161297
|
+
if (seriesData.dsa.imageIds.length > 0) {
|
|
161298
|
+
const dsaPromises = seriesData.dsa.imageIds.map(imageId => {
|
|
161299
|
+
if (forceRecache) {
|
|
161300
|
+
cornerstone_core_1.default.imageCache.removeImageLoadObject(imageId);
|
|
161320
161301
|
}
|
|
161302
|
+
return cornerstone_core_1.default.loadAndCacheImage(imageId);
|
|
161303
|
+
});
|
|
161304
|
+
Promise.all(dsaPromises).then(() => {
|
|
161305
|
+
const t1 = performance.now();
|
|
161306
|
+
console.log(`Call to loadAndCacheDsaImageStack took ${t1 - t0} milliseconds.`);
|
|
161307
|
+
resolve();
|
|
161321
161308
|
});
|
|
161322
161309
|
}
|
|
161323
|
-
|
|
161324
|
-
|
|
161325
|
-
|
|
161326
|
-
|
|
161327
|
-
resolve();
|
|
161310
|
+
else {
|
|
161311
|
+
console.warn("DSA image stack is empty");
|
|
161312
|
+
reject();
|
|
161313
|
+
}
|
|
161328
161314
|
}));
|
|
161329
161315
|
});
|
|
161330
161316
|
};
|
|
161331
|
-
exports.
|
|
161317
|
+
exports.loadAndCacheDsaImageStack = loadAndCacheDsaImageStack;
|
|
161332
161318
|
/**
|
|
161333
161319
|
* Get the dicom imageId from dicom loader
|
|
161334
161320
|
* @instance
|
|
@@ -161936,6 +161922,12 @@ let createCustomImage = function (id, imageId, frameIndex, metadata) {
|
|
|
161936
161922
|
image.windowCenter = (maxVoi + minVoi) / 2;
|
|
161937
161923
|
}
|
|
161938
161924
|
}
|
|
161925
|
+
// @ts-ignore: is needed to clear the cache
|
|
161926
|
+
dataSet = null;
|
|
161927
|
+
// @ts-ignore: is needed to clear the cache
|
|
161928
|
+
pixelDataElement = null;
|
|
161929
|
+
// @ts-ignore: is needed to clear the cache
|
|
161930
|
+
pixelData = null;
|
|
161939
161931
|
resolve(image);
|
|
161940
161932
|
}, reject);
|
|
161941
161933
|
});
|
|
@@ -166653,7 +166645,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
166653
166645
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
166654
166646
|
exports.registerNRRDImageLoader = exports.initializeFileImageLoader = exports.initializeWebImageLoader = exports.initializeImageLoader = exports.setActiveLayer = exports.getActiveLayer = exports.updateLayer = exports.buildLayer = exports.anonymize = exports.exportImageToBase64 = exports.importNRRDImage = exports.buildDataAsync = exports.buildData = exports.getCachedPixelData = exports.buildHeader = exports.getImageMetadata = exports.getDistanceBetweenSlices = exports.getReslicedPixeldata = exports.getReslicedMetadata = exports.getMeanValue = exports.randomId = exports.getSortedStack = exports.getTypedArrayFromDataType = exports.getPixelRepresentation = exports.getMaxPixelValue = exports.getMinPixelValue = exports.getNormalOrientation = exports.setImageCustomPreset = exports.setImagePreset = exports.getImagePresets = exports.getDefaultECGLayout = exports.updateECGFrame = exports.syncECGFrame = exports.unrenderECG = exports.renderECG = exports.parseECG = exports.store = exports.deactivatePerformanceMonitor = exports.activatePerformanceMonitor = exports.getPerformanceMonitor = exports.getAvailableMemory = exports.getUsedMemory = exports.checkMemoryAllocation = exports.checkAndClearMemory = exports.cornerstoneDICOMImageLoader = exports.segModule = exports.parseDicom = exports.cornerstoneTools = exports.cornerstone = exports.VERSION = void 0;
|
|
166655
166647
|
exports.getNrrdSerieDimensions = exports.getSliceNumberFromImageId = exports.getImageIdFromSlice = exports.loadNrrdImage = exports.getNrrdImageId = exports.buildNrrdImage = exports.getSopInstanceUIDFromLarvitarManager = exports.getImageFrame = exports.getSeriesDataFromLarvitarManager = exports.removeSeriesFromLarvitarManager = exports.resetLarvitarManager = exports.getLarvitarImageTracker = exports.getLarvitarManager = exports.populateLarvitarManager = exports.updateLarvitarManager = exports.parseContours = exports.HSVToRGB = exports.fillPixelData = exports.addColorMap = exports.applyColorMap = exports.getColormapsList = exports.resliceSeries = exports.rotateImageRight = exports.rotateImageLeft = exports.flipImageVertical = exports.flipImageHorizontal = exports.invertImage = exports.storeViewportData = exports.toggleMouseToolsListeners = exports.updateViewportData = exports.resetViewports = exports.redrawImage = exports.updateImage = exports.renderImage = exports.resizeViewport = exports.unloadViewport = exports.disableViewport = exports.renderWebImage = exports.renderDICOMPDF = exports.renderFileImage = exports.loadAndCacheImages = exports.clearImageCache = exports.clearImageParsing = exports.parseDataSet = exports.readFiles = exports.readFile = exports.updateLoadedStack = exports.registerDsaImageLoader = exports.registerMultiFrameImageLoader = exports.registerResliceLoader = void 0;
|
|
166656
|
-
exports.saveAnnotations = exports.registerExternalTool = exports.setDefaultToolsProps = exports.getDefaultToolsByType = exports.dvTools = exports.DEFAULT_TOOLS = exports.exportAnnotations = exports.setToolPassive = exports.setToolEnabled = exports.setToolDisabled = exports.setToolActive = exports.addTool = exports.addDefaultTools = exports.setToolsStyle = exports.initializeCSTools = exports.csToolsUpdateImageIndex = exports.csToolsUpdateImageIds = exports.csToolsCreateStack = exports.setSegmentationConfig = exports.updateStackToolState = exports.syncToolStack = exports.clearCornerstoneElements = exports.addToolStateSingleSlice = exports.updateDiameterTool = exports.clearToolStateByName = exports.getToolState = exports.clearMeasurements = exports.addSeedsTool = exports.addStackStateToElement = exports.getCurrentMaskData = exports.addMaskEditingTool = exports.addContoursTool = exports.addDiameterTool = exports.applyDSAShift = exports.getFileImageId = exports.populateFileManager = exports.resetFileManager = exports.resetFileLoader = exports.getFileManager = exports.populateDsaImageIds = exports.clearMultiFrameCache = exports.getMultiFrameImageId = exports.buildMultiFrameImage = exports.loadMultiFrameImage = exports.
|
|
166648
|
+
exports.saveAnnotations = exports.registerExternalTool = exports.setDefaultToolsProps = exports.getDefaultToolsByType = exports.dvTools = exports.DEFAULT_TOOLS = exports.exportAnnotations = exports.setToolPassive = exports.setToolEnabled = exports.setToolDisabled = exports.setToolActive = exports.addTool = exports.addDefaultTools = exports.setToolsStyle = exports.initializeCSTools = exports.csToolsUpdateImageIndex = exports.csToolsUpdateImageIds = exports.csToolsCreateStack = exports.setSegmentationConfig = exports.updateStackToolState = exports.syncToolStack = exports.clearCornerstoneElements = exports.addToolStateSingleSlice = exports.updateDiameterTool = exports.clearToolStateByName = exports.getToolState = exports.clearMeasurements = exports.addSeedsTool = exports.addStackStateToElement = exports.getCurrentMaskData = exports.addMaskEditingTool = exports.addContoursTool = exports.addDiameterTool = exports.applyDSAShift = exports.getFileImageId = exports.populateFileManager = exports.resetFileManager = exports.resetFileLoader = exports.getFileManager = exports.populateDsaImageIds = exports.clearMultiFrameCache = exports.getMultiFrameImageId = exports.buildMultiFrameImage = exports.loadMultiFrameImage = exports.loadAndCacheDsaImageStack = exports.loadAndCacheImageStack = exports.cacheImages = exports.cacheImage = exports.getDicomImageId = exports.loadReslicedImage = void 0;
|
|
166657
166649
|
exports.updateTemporalViewportData = exports.getActiveLabelmapBuffer = exports.toggleVisibility = exports.toggleContourMode = exports.disableBrushTool = exports.enableBrushTool = exports.deleteMask = exports.clearSegmentationState = exports.rgbToHex = exports.hexToRgb = exports.setBrushProps = exports.redoLastStroke = exports.undoLastStroke = exports.setActiveSegment = exports.setActiveLabelmap = exports.addSegmentationMask = exports.initSegmentationModule = exports.removeMouseKeyHandlers = exports.addMouseKeyHandlers = exports.loadAnnotations = void 0;
|
|
166658
166650
|
const package_json_1 = __importDefault(__webpack_require__(4147));
|
|
166659
166651
|
const VERSION = package_json_1.default.version;
|
|
@@ -166834,7 +166826,7 @@ Object.defineProperty(exports, "getDicomImageId", ({ enumerable: true, get: func
|
|
|
166834
166826
|
Object.defineProperty(exports, "cacheImage", ({ enumerable: true, get: function () { return dicomLoader_1.cacheImage; } }));
|
|
166835
166827
|
Object.defineProperty(exports, "cacheImages", ({ enumerable: true, get: function () { return dicomLoader_1.cacheImages; } }));
|
|
166836
166828
|
Object.defineProperty(exports, "loadAndCacheImageStack", ({ enumerable: true, get: function () { return dicomLoader_1.loadAndCacheImageStack; } }));
|
|
166837
|
-
Object.defineProperty(exports, "
|
|
166829
|
+
Object.defineProperty(exports, "loadAndCacheDsaImageStack", ({ enumerable: true, get: function () { return dicomLoader_1.loadAndCacheDsaImageStack; } }));
|
|
166838
166830
|
const resliceLoader_1 = __webpack_require__(5779);
|
|
166839
166831
|
Object.defineProperty(exports, "loadReslicedImage", ({ enumerable: true, get: function () { return resliceLoader_1.loadReslicedImage; } }));
|
|
166840
166832
|
const multiframeLoader_1 = __webpack_require__(934);
|
|
@@ -167583,7 +167575,7 @@ module.exports = JSON.parse('{"x00000000":{"tag":"x00000000","vr":"UL","vm":"1",
|
|
|
167583
167575
|
/***/ ((module) => {
|
|
167584
167576
|
|
|
167585
167577
|
"use strict";
|
|
167586
|
-
module.exports = JSON.parse('{"name":"larvitar","keywords":["DICOM","imaging","medical","cornerstone"],"version":"2.
|
|
167578
|
+
module.exports = JSON.parse('{"name":"larvitar","keywords":["DICOM","imaging","medical","cornerstone"],"version":"2.2.0","description":"typescript library for parsing, loading, rendering and interacting with DICOM images","repository":{"url":"https://github.com/dvisionlab/Larvitar.git","type":"git"},"main":"dist/larvitar.js","types":"dist/index.d.ts","files":["dist","imaging/**/*.d.ts"],"scripts":{"coverage":"typescript-coverage-report","generate-docs":"node_modules/.bin/jsdoc -c jsdoc.json","build":"webpack --config ./bundler/webpack.prod.js && cp ./dist/larvitar.js ./docs/examples/larvitar.js","dev":"webpack --progress --config ./bundler/webpack.dev.js && cp ./dist/larvitar.js ./docs/examples/larvitar.js","dev-wip":"webpack serve --config ./bundler/webpack.dev-wip.js"},"author":"Simone Manini <simone.manini@dvisionlab.com> (https://www.dvisionlab.com)","contributors":["Mattia Ronzoni <mattia.ronzoni@dvisionlab.com> (https://www.dvisionlab.com)","Sara Zanchi <sara.zanchi@dvisionlab.com> (https://www.dvisionlab.com)","Ale Re <ale.re@dvisionlab.com> (https://www.dvisionlab.com)","Laura Borghesi Re <laura.borghesi@dvisionlab.com> (https://www.dvisionlab.com)"],"license":"MIT","dependencies":{"@rollup/plugin-commonjs":"^17.1.0","cornerstone-core":"^2.6.1","cornerstone-file-image-loader":"^0.3.0","cornerstone-tools":"^6.0.7","cornerstone-wado-image-loader":"^4.13.2","cornerstone-web-image-loader":"^2.1.1","crypto-js":"^4.1.1","dicom-character-set":"^1.0.3","dicom-parser":"^1.8.13","docdash":"^1.2.0","hammerjs":"^2.0.8","jpeg-lossless-decoder-js":"^2.0.7","keycode-js":"^3.1.0","lodash":"^4.17.15","pako":"^1.0.10","papaparse":"^5.3.0","pdfjs-dist":"^3.8.162","plotly.js-dist-min":"^2.27.1","uuid":"^8.3.2"},"devDependencies":{"@babel/core":"^7.21.8","@types/cornerstone-core":"^2.3.0","@types/crypto-js":"^4.1.1","@types/hammerjs":"^2.0.41","@types/lodash":"^4.14.192","@types/papaparse":"^5.3.7","@types/pdfjs-dist":"^2.10.378","@types/plotly.js":"^2.12.30","@types/plotly.js-dist-min":"^2.3.4","@types/uuid":"^9.0.1","babel-loader":"^9.1.2","clean-webpack-plugin":"^4.0.0","copy-webpack-plugin":"^11.0.0","fs":"^0.0.1-security","html-loader":"^4.2.0","html-webpack-plugin":"^5.5.0","ip":"^1.1.8","jsdoc":"^3.6.4","portfinder-sync":"^0.0.2","ts-loader":"^9.4.2","typescript":"^5.0.2","typescript-coverage-report":"^0.7.0","webpack":"^5.76.3","webpack-bundle-analyzer":"^4.8.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.13.1"}}');
|
|
167587
167579
|
|
|
167588
167580
|
/***/ })
|
|
167589
167581
|
|