@ohif/app 3.9.0-beta.57 → 3.9.0-beta.59
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/{29.bundle.976319462f33868497c2.js → 117.bundle.403581eea72534ff9c7e.js} +1765 -582
- package/dist/{169.bundle.483057ed84ca3e92513a.js → 169.bundle.d28df3cf2d600fc3e146.js} +7 -5
- package/dist/{210.bundle.368d53177dc659dc6af0.js → 210.bundle.ea52c75bb27ab002dc4d.js} +2 -2
- package/dist/{281.bundle.49da07d997da7cc01705.js → 281.bundle.719e9e222fecb4e9e9c6.js} +18 -4
- package/dist/{360.bundle.2c117803c05f0bc31424.js → 360.bundle.9a0c682beae1ef7e40b1.js} +5 -5
- package/dist/{372.bundle.d97377781382080306bd.js → 372.bundle.9891a9938b28db4b36ce.js} +5 -4
- package/dist/424.bundle.1caecbb1bbefc271b621.js +663 -0
- package/dist/{497.bundle.ee102d6243f984113f08.js → 497.bundle.bbc07cef12d598653a65.js} +149 -117
- package/dist/{498.bundle.bb47c493dd02451f77ef.js → 498.bundle.e5ccb2bc38e4bfdd564b.js} +1 -1
- package/dist/{516.bundle.d777e4126814a5a47117.js → 516.bundle.e59c26f055d145ce835e.js} +47 -12
- package/dist/{196.bundle.cf8c2311aafb5312bbf7.js → 579.bundle.0b78fc095924efac431d.js} +1705 -493
- package/dist/{552.bundle.85aaefb5e22d6d1bffa9.js → 65.bundle.d15cc84a0b991e182649.js} +15 -680
- package/dist/{129.bundle.3102eccbd5c78524c3dd.js → 650.bundle.a65389abf76ad921aa17.js} +2671 -2975
- package/dist/{793.bundle.c92f52ddff0e3bf506e6.js → 793.bundle.e4c759b5cdfcc3c7494f.js} +2 -2
- package/dist/{818.bundle.cda4e369fdee5459a544.js → 818.bundle.b64fae7e982e16a82ca2.js} +133 -69
- package/dist/{842.bundle.a5533bc77e6f57b0ee30.js → 842.bundle.cccbb7e3611e3d220f07.js} +2 -2
- package/dist/{888.bundle.7ff5dfd3c14072cee2a9.js → 888.bundle.d3b2a82cb17155725342.js} +9 -3
- package/dist/{428.bundle.744fc5865b2d747de88a.js → 904.bundle.008f8a2095669f4eabba.js} +88 -50
- package/dist/{962.bundle.d5f55c85407221bbce7b.js → 962.bundle.868b30361a52b0ffa504.js} +2 -2
- package/dist/{993.bundle.aa31ebda5a5f62c44de5.js → 993.bundle.302a286ebb6e3fc0c35a.js} +1265 -485
- package/dist/{994.bundle.c4709bfb7fd9dcde0551.js → 994.bundle.3b5f396b62cce2990c03.js} +15 -1
- package/dist/{app.bundle.a69624a3e0becd131c65.js → app.bundle.14f126e3ec4491bb1948.js} +1393 -1321
- package/dist/app.bundle.css +2 -2
- package/dist/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.map +1 -0
- package/dist/{histogram-worker.bundle.e7e9fea2c3236b0e747a.js → histogram-worker.bundle.89729ccb99d170ff2f2f.js} +2 -1
- package/dist/index.html +3 -1
- package/dist/{polySeg.bundle.b25c61224998018d0f79.js → polySeg.bundle.d8943427beee7694621a.js} +3 -22
- package/dist/{suv-peak-worker.bundle.eb11e71db02e52601ecf.js → suv-peak-worker.bundle.15dcb8d1ab8e0528bfd9.js} +3 -22
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- /package/dist/{153.bundle.62dad8e9c7532474e95c.js → 153.bundle.42a66f99ced5972aa0c0.js} +0 -0
- /package/dist/{202.bundle.bb0e8196739bb896dc9e.js → 202.bundle.f6d9ca4b1c16b1aa227f.js} +0 -0
- /package/dist/{246.bundle.27aca95ea22cd5fcd414.js → 246.bundle.912e9f8342cd5d6228e6.js} +0 -0
- /package/dist/{353.bundle.a741604612f3f1d18398.js → 353.bundle.5b11e6b395c5d5cc33bf.js} +0 -0
- /package/dist/{376.bundle.2657056d8bc2b11fb0e8.js → 376.bundle.ac0e23dc830cd982fd18.js} +0 -0
- /package/dist/{552.css → 424.css} +0 -0
- /package/dist/{502.bundle.e7e6c345146aef00a169.js → 502.bundle.823682db96d52df1b8cf.js} +0 -0
- /package/dist/{591.bundle.aa91409b528ae6b601e0.js → 591.bundle.39fa1e6e7285929f2e29.js} +0 -0
- /package/dist/{791.bundle.d614182fa975e92cf4f5.js → 791.bundle.ecf9b1f8892d5f8962a3.js} +0 -0
- /package/dist/{944.bundle.c2bcb49d5077bd6fcc87.js → 944.bundle.93eddec203a43754e826.js} +0 -0
- /package/dist/{978.bundle.cd27543a62e7230557b2.js → 978.bundle.c12902cf44dca926bcb8.js} +0 -0
|
@@ -1,5 +1,731 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[579,818,250],{
|
|
3
|
+
|
|
4
|
+
/***/ 49001:
|
|
5
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
|
+
|
|
7
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
9
|
+
/* harmony export */ });
|
|
10
|
+
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72076);
|
|
11
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7187);
|
|
12
|
+
/* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30023);
|
|
13
|
+
/* harmony import */ var _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30742);
|
|
14
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56309);
|
|
15
|
+
/* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77614);
|
|
16
|
+
/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(25281);
|
|
17
|
+
/* harmony import */ var _CanvasActor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40046);
|
|
18
|
+
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(82253);
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class VideoViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z {
|
|
29
|
+
constructor(props) {
|
|
30
|
+
super({
|
|
31
|
+
...props,
|
|
32
|
+
canvas: props.canvas || (0,_helpers__WEBPACK_IMPORTED_MODULE_6__/* .getOrCreateCanvas */ .uy)(props.element),
|
|
33
|
+
});
|
|
34
|
+
this.videoWidth = 0;
|
|
35
|
+
this.videoHeight = 0;
|
|
36
|
+
this.loop = true;
|
|
37
|
+
this.mute = true;
|
|
38
|
+
this.isPlaying = false;
|
|
39
|
+
this.scrollSpeed = 1;
|
|
40
|
+
this.playbackRate = 1;
|
|
41
|
+
this.frameRange = [0, 0];
|
|
42
|
+
this.fps = 30;
|
|
43
|
+
this.videoCamera = {
|
|
44
|
+
panWorld: [0, 0],
|
|
45
|
+
parallelScale: 1,
|
|
46
|
+
};
|
|
47
|
+
this.voiRange = {
|
|
48
|
+
lower: 0,
|
|
49
|
+
upper: 255,
|
|
50
|
+
};
|
|
51
|
+
this.getProperties = () => {
|
|
52
|
+
return {
|
|
53
|
+
loop: this.videoElement.loop,
|
|
54
|
+
muted: this.videoElement.muted,
|
|
55
|
+
playbackRate: this.playbackRate,
|
|
56
|
+
scrollSpeed: this.scrollSpeed,
|
|
57
|
+
voiRange: { ...this.voiRange },
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
this.resetCamera = () => {
|
|
61
|
+
this.refreshRenderValues();
|
|
62
|
+
this.canvasContext.fillRect(0, 0, this.canvas.width, this.canvas.height);
|
|
63
|
+
if (this.isPlaying === false) {
|
|
64
|
+
this.renderFrame();
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
};
|
|
68
|
+
this.getNumberOfSlices = () => {
|
|
69
|
+
const computedSlices = Math.round((this.videoElement.duration * this.fps) / this.scrollSpeed);
|
|
70
|
+
return isNaN(computedSlices) ? this.numberOfFrames : computedSlices;
|
|
71
|
+
};
|
|
72
|
+
this.getFrameOfReferenceUID = () => {
|
|
73
|
+
return this.videoElement.src;
|
|
74
|
+
};
|
|
75
|
+
this.resize = () => {
|
|
76
|
+
const canvas = this.canvas;
|
|
77
|
+
const { clientWidth, clientHeight } = canvas;
|
|
78
|
+
if (canvas.width !== clientWidth || canvas.height !== clientHeight) {
|
|
79
|
+
canvas.width = clientWidth;
|
|
80
|
+
canvas.height = clientHeight;
|
|
81
|
+
}
|
|
82
|
+
this.refreshRenderValues();
|
|
83
|
+
if (this.isPlaying === false) {
|
|
84
|
+
this.renderFrame();
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
this.canvasToWorld = (canvasPos, destPos = [0, 0, 0]) => {
|
|
88
|
+
const pan = this.videoCamera.panWorld;
|
|
89
|
+
const worldToCanvasRatio = this.getWorldToCanvasRatio();
|
|
90
|
+
const panOffsetCanvas = [
|
|
91
|
+
pan[0] * worldToCanvasRatio,
|
|
92
|
+
pan[1] * worldToCanvasRatio,
|
|
93
|
+
];
|
|
94
|
+
const subCanvasPos = [
|
|
95
|
+
canvasPos[0] - panOffsetCanvas[0],
|
|
96
|
+
canvasPos[1] - panOffsetCanvas[1],
|
|
97
|
+
];
|
|
98
|
+
destPos.splice(0, 2, subCanvasPos[0] / worldToCanvasRatio, subCanvasPos[1] / worldToCanvasRatio);
|
|
99
|
+
return destPos;
|
|
100
|
+
};
|
|
101
|
+
this.worldToCanvas = (worldPos) => {
|
|
102
|
+
const pan = this.videoCamera.panWorld;
|
|
103
|
+
const worldToCanvasRatio = this.getWorldToCanvasRatio();
|
|
104
|
+
const canvasPos = [
|
|
105
|
+
(worldPos[0] + pan[0]) * worldToCanvasRatio,
|
|
106
|
+
(worldPos[1] + pan[1]) * worldToCanvasRatio,
|
|
107
|
+
];
|
|
108
|
+
return canvasPos;
|
|
109
|
+
};
|
|
110
|
+
this.getRotation = () => 0;
|
|
111
|
+
this.canvasToIndex = (canvasPos) => {
|
|
112
|
+
const transform = this.getTransform();
|
|
113
|
+
transform.invert();
|
|
114
|
+
return transform.transformPoint(canvasPos.map((it) => it * devicePixelRatio));
|
|
115
|
+
};
|
|
116
|
+
this.indexToCanvas = (indexPos) => {
|
|
117
|
+
const transform = this.getTransform();
|
|
118
|
+
return (transform.transformPoint(indexPos).map((it) => it / devicePixelRatio));
|
|
119
|
+
};
|
|
120
|
+
this.customRenderViewportToCanvas = () => {
|
|
121
|
+
this.renderFrame();
|
|
122
|
+
};
|
|
123
|
+
this.renderFrame = () => {
|
|
124
|
+
const transform = this.getTransform();
|
|
125
|
+
const transformationMatrix = transform.getMatrix();
|
|
126
|
+
const ctx = this.canvasContext;
|
|
127
|
+
ctx.resetTransform();
|
|
128
|
+
ctx.transform(transformationMatrix[0], transformationMatrix[1], transformationMatrix[2], transformationMatrix[3], transformationMatrix[4], transformationMatrix[5]);
|
|
129
|
+
ctx.drawImage(this.videoElement, 0, 0, this.videoWidth || 1024, this.videoHeight || 1024);
|
|
130
|
+
for (const actor of this.getActors()) {
|
|
131
|
+
actor.actor.render(this, this.canvasContext);
|
|
132
|
+
}
|
|
133
|
+
this.canvasContext.resetTransform();
|
|
134
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.STACK_NEW_IMAGE, {
|
|
135
|
+
element: this.element,
|
|
136
|
+
viewportId: this.id,
|
|
137
|
+
viewport: this,
|
|
138
|
+
renderingEngineId: this.renderingEngineId,
|
|
139
|
+
time: this.videoElement.currentTime,
|
|
140
|
+
duration: this.videoElement.duration,
|
|
141
|
+
});
|
|
142
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.IMAGE_RENDERED, {
|
|
143
|
+
element: this.element,
|
|
144
|
+
viewportId: this.id,
|
|
145
|
+
viewport: this,
|
|
146
|
+
imageIndex: this.getCurrentImageIdIndex(),
|
|
147
|
+
numberOfSlices: this.numberOfFrames,
|
|
148
|
+
renderingEngineId: this.renderingEngineId,
|
|
149
|
+
time: this.videoElement.currentTime,
|
|
150
|
+
duration: this.videoElement.duration,
|
|
151
|
+
});
|
|
152
|
+
this.initialRender?.();
|
|
153
|
+
const frame = this.getFrameNumber();
|
|
154
|
+
if (this.isPlaying) {
|
|
155
|
+
if (frame < this.frameRange[0]) {
|
|
156
|
+
this.setFrameNumber(this.frameRange[0]);
|
|
157
|
+
}
|
|
158
|
+
else if (frame > this.frameRange[1]) {
|
|
159
|
+
if (this.loop) {
|
|
160
|
+
this.setFrameNumber(this.frameRange[0]);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
this.pause();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
this.renderWhilstPlaying = () => {
|
|
169
|
+
this.renderFrame();
|
|
170
|
+
if (this.isPlaying) {
|
|
171
|
+
requestAnimationFrame(this.renderWhilstPlaying);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
this.canvasContext = this.canvas.getContext('2d');
|
|
175
|
+
this.renderingEngineId = props.renderingEngineId;
|
|
176
|
+
this.element.setAttribute('data-viewport-uid', this.id);
|
|
177
|
+
this.element.setAttribute('data-rendering-engine-uid', this.renderingEngineId);
|
|
178
|
+
this.videoElement = document.createElement('video');
|
|
179
|
+
this.videoElement.muted = this.mute;
|
|
180
|
+
this.videoElement.loop = this.loop;
|
|
181
|
+
this.videoElement.autoplay = true;
|
|
182
|
+
this.videoElement.crossOrigin = 'anonymous';
|
|
183
|
+
this.addEventListeners();
|
|
184
|
+
this.resize();
|
|
185
|
+
}
|
|
186
|
+
static { this.frameRangeExtractor = /(\/frames\/|[&?]frameNumber=)([^/&?]*)/i; }
|
|
187
|
+
static get useCustomRenderingPipeline() {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
addEventListeners() {
|
|
191
|
+
this.canvas.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_1__.Events.ELEMENT_DISABLED, this.elementDisabledHandler);
|
|
192
|
+
}
|
|
193
|
+
removeEventListeners() {
|
|
194
|
+
this.canvas.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_1__.Events.ELEMENT_DISABLED, this.elementDisabledHandler);
|
|
195
|
+
}
|
|
196
|
+
elementDisabledHandler() {
|
|
197
|
+
this.removeEventListeners();
|
|
198
|
+
this.videoElement.remove();
|
|
199
|
+
}
|
|
200
|
+
getImageDataMetadata(image) {
|
|
201
|
+
const imageId = typeof image === 'string' ? image : image.imageId;
|
|
202
|
+
const imagePlaneModule = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.IMAGE_PLANE, imageId);
|
|
203
|
+
let rowCosines = imagePlaneModule.rowCosines;
|
|
204
|
+
let columnCosines = imagePlaneModule.columnCosines;
|
|
205
|
+
if (rowCosines == null || columnCosines == null) {
|
|
206
|
+
rowCosines = [1, 0, 0];
|
|
207
|
+
columnCosines = [0, 1, 0];
|
|
208
|
+
}
|
|
209
|
+
const rowCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .R3.fromValues(rowCosines[0], rowCosines[1], rowCosines[2]);
|
|
210
|
+
const colCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .R3.fromValues(columnCosines[0], columnCosines[1], columnCosines[2]);
|
|
211
|
+
const { rows, columns } = imagePlaneModule;
|
|
212
|
+
const scanAxisNormal = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .R3.create();
|
|
213
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.cross */ .R3.cross(scanAxisNormal, rowCosineVec, colCosineVec);
|
|
214
|
+
let origin = imagePlaneModule.imagePositionPatient;
|
|
215
|
+
if (origin == null) {
|
|
216
|
+
origin = [0, 0, 0];
|
|
217
|
+
}
|
|
218
|
+
const xSpacing = imagePlaneModule.columnPixelSpacing || 1;
|
|
219
|
+
const ySpacing = imagePlaneModule.rowPixelSpacing || 1;
|
|
220
|
+
const xVoxels = imagePlaneModule.columns;
|
|
221
|
+
const yVoxels = imagePlaneModule.rows;
|
|
222
|
+
const zSpacing = 1;
|
|
223
|
+
const zVoxels = 1;
|
|
224
|
+
this.hasPixelSpacing = !!imagePlaneModule.columnPixelSpacing;
|
|
225
|
+
return {
|
|
226
|
+
bitsAllocated: 8,
|
|
227
|
+
numComps: 3,
|
|
228
|
+
origin,
|
|
229
|
+
rows,
|
|
230
|
+
columns,
|
|
231
|
+
direction: [...rowCosineVec, ...colCosineVec, ...scanAxisNormal],
|
|
232
|
+
dimensions: [xVoxels, yVoxels, zVoxels],
|
|
233
|
+
spacing: [xSpacing, ySpacing, zSpacing],
|
|
234
|
+
hasPixelSpacing: this.hasPixelSpacing,
|
|
235
|
+
numVoxels: xVoxels * yVoxels * zVoxels,
|
|
236
|
+
imagePlaneModule,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
setDataIds(imageIds, options) {
|
|
240
|
+
this.setVideo(imageIds[0], options?.viewReference?.sliceIndex || 1);
|
|
241
|
+
}
|
|
242
|
+
setVideo(imageId, frameNumber) {
|
|
243
|
+
this.imageId = Array.isArray(imageId) ? imageId[0] : imageId;
|
|
244
|
+
const imageUrlModule = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.IMAGE_URL, imageId);
|
|
245
|
+
if (!imageUrlModule?.rendered) {
|
|
246
|
+
throw new Error(`Video Image ID ${imageId} does not have a rendered video view`);
|
|
247
|
+
}
|
|
248
|
+
const { rendered } = imageUrlModule;
|
|
249
|
+
const generalSeries = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.GENERAL_SERIES, imageId);
|
|
250
|
+
this.modality = generalSeries?.Modality;
|
|
251
|
+
this.metadata = this.getImageDataMetadata(imageId);
|
|
252
|
+
let { cineRate, numberOfFrames } = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.CINE, imageId);
|
|
253
|
+
this.numberOfFrames = numberOfFrames;
|
|
254
|
+
return this.setVideoURL(rendered).then(() => {
|
|
255
|
+
if (!numberOfFrames || numberOfFrames === 1) {
|
|
256
|
+
numberOfFrames = Math.round(this.videoElement.duration * (cineRate || 30));
|
|
257
|
+
}
|
|
258
|
+
if (!cineRate) {
|
|
259
|
+
cineRate = Math.round(numberOfFrames / this.videoElement.duration);
|
|
260
|
+
}
|
|
261
|
+
this.fps = cineRate;
|
|
262
|
+
this.numberOfFrames = numberOfFrames;
|
|
263
|
+
this.setFrameRange([1, numberOfFrames]);
|
|
264
|
+
this.initialRender = () => {
|
|
265
|
+
this.initialRender = null;
|
|
266
|
+
this.pause();
|
|
267
|
+
this.setFrameNumber(frameNumber || 1);
|
|
268
|
+
};
|
|
269
|
+
return new Promise((resolve) => {
|
|
270
|
+
window.setTimeout(() => {
|
|
271
|
+
this.setFrameNumber(frameNumber || 1);
|
|
272
|
+
resolve(this);
|
|
273
|
+
}, 25);
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
async setVideoURL(videoURL) {
|
|
278
|
+
return new Promise((resolve) => {
|
|
279
|
+
this.videoElement.src = videoURL;
|
|
280
|
+
this.videoElement.preload = 'auto';
|
|
281
|
+
const loadedMetadataEventHandler = () => {
|
|
282
|
+
this.videoWidth = this.videoElement.videoWidth;
|
|
283
|
+
this.videoHeight = this.videoElement.videoHeight;
|
|
284
|
+
this.videoElement.removeEventListener('loadedmetadata', loadedMetadataEventHandler);
|
|
285
|
+
this.refreshRenderValues();
|
|
286
|
+
resolve(true);
|
|
287
|
+
};
|
|
288
|
+
this.videoElement.addEventListener('loadedmetadata', loadedMetadataEventHandler);
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
getImageIds() {
|
|
292
|
+
const imageIds = new Array(this.numberOfFrames);
|
|
293
|
+
const baseImageId = this.imageId.replace(/[0-9]+$/, '');
|
|
294
|
+
for (let i = 0; i < this.numberOfFrames; i++) {
|
|
295
|
+
imageIds[i] = `${baseImageId}${i + 1}`;
|
|
296
|
+
}
|
|
297
|
+
return imageIds;
|
|
298
|
+
}
|
|
299
|
+
togglePlayPause() {
|
|
300
|
+
if (this.isPlaying) {
|
|
301
|
+
this.pause();
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
this.play();
|
|
306
|
+
return true;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
async play() {
|
|
310
|
+
try {
|
|
311
|
+
if (!this.isPlaying) {
|
|
312
|
+
this.isPlaying = true;
|
|
313
|
+
await this.videoElement.play();
|
|
314
|
+
this.renderWhilstPlaying();
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
catch (e) {
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
pause() {
|
|
321
|
+
try {
|
|
322
|
+
this.isPlaying = false;
|
|
323
|
+
this.videoElement.pause();
|
|
324
|
+
}
|
|
325
|
+
catch (e) {
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
async scroll(delta = 1) {
|
|
329
|
+
await this.pause();
|
|
330
|
+
const videoElement = this.videoElement;
|
|
331
|
+
const renderFrame = this.renderFrame;
|
|
332
|
+
const currentTime = videoElement.currentTime;
|
|
333
|
+
const newTime = currentTime + (delta * this.scrollSpeed) / this.fps;
|
|
334
|
+
videoElement.currentTime = newTime;
|
|
335
|
+
const seekEventListener = (evt) => {
|
|
336
|
+
renderFrame();
|
|
337
|
+
videoElement.removeEventListener('seeked', seekEventListener);
|
|
338
|
+
};
|
|
339
|
+
videoElement.addEventListener('seeked', seekEventListener);
|
|
340
|
+
}
|
|
341
|
+
async start() {
|
|
342
|
+
const videoElement = this.videoElement;
|
|
343
|
+
const renderFrame = this.renderFrame;
|
|
344
|
+
videoElement.currentTime = 0;
|
|
345
|
+
if (videoElement.paused) {
|
|
346
|
+
const seekEventListener = (evt) => {
|
|
347
|
+
renderFrame();
|
|
348
|
+
videoElement.removeEventListener('seeked', seekEventListener);
|
|
349
|
+
};
|
|
350
|
+
videoElement.addEventListener('seeked', seekEventListener);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
async end() {
|
|
354
|
+
const videoElement = this.videoElement;
|
|
355
|
+
const renderFrame = this.renderFrame;
|
|
356
|
+
videoElement.currentTime = videoElement.duration;
|
|
357
|
+
if (videoElement.paused) {
|
|
358
|
+
const seekEventListener = (evt) => {
|
|
359
|
+
renderFrame();
|
|
360
|
+
videoElement.removeEventListener('seeked', seekEventListener);
|
|
361
|
+
};
|
|
362
|
+
videoElement.addEventListener('seeked', seekEventListener);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
async setTime(timeInSeconds) {
|
|
366
|
+
const videoElement = this.videoElement;
|
|
367
|
+
const renderFrame = this.renderFrame;
|
|
368
|
+
videoElement.currentTime = timeInSeconds;
|
|
369
|
+
if (videoElement.paused) {
|
|
370
|
+
const seekEventListener = (evt) => {
|
|
371
|
+
renderFrame();
|
|
372
|
+
videoElement.removeEventListener('seeked', seekEventListener);
|
|
373
|
+
};
|
|
374
|
+
videoElement.addEventListener('seeked', seekEventListener);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
async setFrameNumber(frame) {
|
|
378
|
+
this.setTime((frame - 1) / this.fps);
|
|
379
|
+
}
|
|
380
|
+
setFrameRange(frameRange) {
|
|
381
|
+
if (!frameRange) {
|
|
382
|
+
this.frameRange = [1, this.numberOfFrames];
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
if (frameRange.length !== 2 || frameRange[0] === frameRange[1]) {
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
this.frameRange = [frameRange[0], frameRange[1]];
|
|
389
|
+
}
|
|
390
|
+
getFrameRange() {
|
|
391
|
+
return this.frameRange;
|
|
392
|
+
}
|
|
393
|
+
setProperties(props) {
|
|
394
|
+
if (props.loop !== undefined) {
|
|
395
|
+
this.videoElement.loop = props.loop;
|
|
396
|
+
}
|
|
397
|
+
if (props.muted !== undefined) {
|
|
398
|
+
this.videoElement.muted = props.muted;
|
|
399
|
+
}
|
|
400
|
+
if (props.playbackRate !== undefined) {
|
|
401
|
+
this.setPlaybackRate(props.playbackRate);
|
|
402
|
+
}
|
|
403
|
+
if (props.scrollSpeed !== undefined) {
|
|
404
|
+
this.setScrollSpeed(props.scrollSpeed);
|
|
405
|
+
}
|
|
406
|
+
if (props.voiRange) {
|
|
407
|
+
this.setVOI(props.voiRange);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
setPlaybackRate(rate = 1) {
|
|
411
|
+
this.playbackRate = rate;
|
|
412
|
+
if (rate < 0.0625) {
|
|
413
|
+
this.pause();
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
if (!this.videoElement) {
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
this.videoElement.playbackRate = rate;
|
|
420
|
+
this.play();
|
|
421
|
+
}
|
|
422
|
+
setScrollSpeed(scrollSpeed = 1, unit = _enums__WEBPACK_IMPORTED_MODULE_1__.VideoEnums.SpeedUnit.FRAME) {
|
|
423
|
+
this.scrollSpeed =
|
|
424
|
+
unit === _enums__WEBPACK_IMPORTED_MODULE_1__.VideoEnums.SpeedUnit.SECOND
|
|
425
|
+
? scrollSpeed * this.fps
|
|
426
|
+
: scrollSpeed;
|
|
427
|
+
}
|
|
428
|
+
resetProperties() {
|
|
429
|
+
this.setProperties({
|
|
430
|
+
loop: false,
|
|
431
|
+
muted: true,
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
getScalarData() {
|
|
435
|
+
if (this.scalarData?.frameNumber === this.getFrameNumber()) {
|
|
436
|
+
return this.scalarData;
|
|
437
|
+
}
|
|
438
|
+
const canvas = document.createElement('canvas');
|
|
439
|
+
canvas.width = this.videoWidth;
|
|
440
|
+
canvas.height = this.videoHeight;
|
|
441
|
+
const context = canvas.getContext('2d');
|
|
442
|
+
context.drawImage(this.videoElement, 0, 0);
|
|
443
|
+
const canvasData = context.getImageData(0, 0, this.videoWidth, this.videoHeight);
|
|
444
|
+
const scalarData = canvasData.data;
|
|
445
|
+
scalarData.getRange = () => [0, 255];
|
|
446
|
+
scalarData.frameNumber = this.getFrameNumber();
|
|
447
|
+
this.scalarData = scalarData;
|
|
448
|
+
return scalarData;
|
|
449
|
+
}
|
|
450
|
+
getImageData() {
|
|
451
|
+
const { metadata } = this;
|
|
452
|
+
const spacing = metadata.spacing;
|
|
453
|
+
const imageData = {
|
|
454
|
+
dimensions: metadata.dimensions,
|
|
455
|
+
spacing,
|
|
456
|
+
origin: metadata.origin,
|
|
457
|
+
direction: metadata.direction,
|
|
458
|
+
metadata: { Modality: this.modality },
|
|
459
|
+
getScalarData: () => this.getScalarData(),
|
|
460
|
+
imageData: {
|
|
461
|
+
getDirection: () => metadata.direction,
|
|
462
|
+
getDimensions: () => metadata.dimensions,
|
|
463
|
+
getRange: () => [0, 255],
|
|
464
|
+
getScalarData: () => this.getScalarData(),
|
|
465
|
+
getSpacing: () => metadata.spacing,
|
|
466
|
+
worldToIndex: (point) => {
|
|
467
|
+
const canvasPoint = this.worldToCanvas(point);
|
|
468
|
+
const pixelCoord = this.canvasToIndex(canvasPoint);
|
|
469
|
+
return [pixelCoord[0], pixelCoord[1], 0];
|
|
470
|
+
},
|
|
471
|
+
indexToWorld: (point, destPoint) => {
|
|
472
|
+
const canvasPoint = this.indexToCanvas([point[0], point[1]]);
|
|
473
|
+
return this.canvasToWorld(canvasPoint, destPoint);
|
|
474
|
+
},
|
|
475
|
+
},
|
|
476
|
+
hasPixelSpacing: this.hasPixelSpacing,
|
|
477
|
+
calibration: this.calibration,
|
|
478
|
+
preScale: {
|
|
479
|
+
scaled: false,
|
|
480
|
+
},
|
|
481
|
+
};
|
|
482
|
+
Object.defineProperty(imageData, 'scalarData', {
|
|
483
|
+
get: () => this.getScalarData(),
|
|
484
|
+
enumerable: true,
|
|
485
|
+
});
|
|
486
|
+
return imageData;
|
|
487
|
+
}
|
|
488
|
+
hasImageURI(imageURI) {
|
|
489
|
+
const framesMatch = imageURI.match(VideoViewport.frameRangeExtractor);
|
|
490
|
+
const testURI = framesMatch
|
|
491
|
+
? imageURI.substring(0, framesMatch.index)
|
|
492
|
+
: imageURI;
|
|
493
|
+
return this.imageId.indexOf(testURI) !== -1;
|
|
494
|
+
}
|
|
495
|
+
setVOI(voiRange) {
|
|
496
|
+
this.voiRange = voiRange;
|
|
497
|
+
this.setColorTransform();
|
|
498
|
+
}
|
|
499
|
+
setWindowLevel(windowWidth = 256, windowCenter = 128) {
|
|
500
|
+
const lower = windowCenter - windowWidth / 2;
|
|
501
|
+
const upper = windowCenter + windowWidth / 2 - 1;
|
|
502
|
+
this.setVOI({ lower, upper });
|
|
503
|
+
this.setColorTransform();
|
|
504
|
+
}
|
|
505
|
+
setAverageWhite(averageWhite) {
|
|
506
|
+
this.averageWhite = averageWhite;
|
|
507
|
+
this.setColorTransform();
|
|
508
|
+
}
|
|
509
|
+
setColorTransform() {
|
|
510
|
+
if (!this.voiRange && !this.averageWhite) {
|
|
511
|
+
this.feFilter = null;
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
const white = this.averageWhite || [255, 255, 255];
|
|
515
|
+
const maxWhite = Math.max(...white);
|
|
516
|
+
const scaleWhite = white.map((c) => maxWhite / c);
|
|
517
|
+
const { lower = 0, upper = 255 } = this.voiRange || {};
|
|
518
|
+
const wlScale = (upper - lower + 1) / 255;
|
|
519
|
+
const wlDelta = lower / 255;
|
|
520
|
+
this.feFilter = `url('data:image/svg+xml,\
|
|
521
|
+
<svg xmlns="http://www.w3.org/2000/svg">\
|
|
522
|
+
<filter id="colour" color-interpolation-filters="linearRGB">\
|
|
523
|
+
<feColorMatrix type="matrix" \
|
|
524
|
+
values="\
|
|
525
|
+
${scaleWhite[0] * wlScale} 0 0 0 ${wlDelta} \
|
|
526
|
+
0 ${scaleWhite[1] * wlScale} 0 0 ${wlDelta} \
|
|
527
|
+
0 0 ${scaleWhite[2] * wlScale} 0 ${wlDelta} \
|
|
528
|
+
0 0 0 1 0" />\
|
|
529
|
+
</filter>\
|
|
530
|
+
</svg>#colour')`;
|
|
531
|
+
this.canvas.style.filter = this.feFilter;
|
|
532
|
+
}
|
|
533
|
+
setCamera(camera) {
|
|
534
|
+
const { parallelScale, focalPoint } = camera;
|
|
535
|
+
if (parallelScale) {
|
|
536
|
+
this.videoCamera.parallelScale =
|
|
537
|
+
this.element.clientHeight / 2 / parallelScale;
|
|
538
|
+
}
|
|
539
|
+
if (focalPoint !== undefined) {
|
|
540
|
+
const focalPointCanvas = this.worldToCanvas(focalPoint);
|
|
541
|
+
const canvasCenter = [
|
|
542
|
+
this.element.clientWidth / 2,
|
|
543
|
+
this.element.clientHeight / 2,
|
|
544
|
+
];
|
|
545
|
+
const panWorldDelta = [
|
|
546
|
+
(focalPointCanvas[0] - canvasCenter[0]) /
|
|
547
|
+
this.videoCamera.parallelScale,
|
|
548
|
+
(focalPointCanvas[1] - canvasCenter[1]) /
|
|
549
|
+
this.videoCamera.parallelScale,
|
|
550
|
+
];
|
|
551
|
+
this.videoCamera.panWorld = [
|
|
552
|
+
this.videoCamera.panWorld[0] - panWorldDelta[0],
|
|
553
|
+
this.videoCamera.panWorld[1] - panWorldDelta[1],
|
|
554
|
+
];
|
|
555
|
+
}
|
|
556
|
+
this.canvasContext.fillStyle = 'rgba(0,0,0,1)';
|
|
557
|
+
this.canvasContext.fillRect(0, 0, this.canvas.width, this.canvas.height);
|
|
558
|
+
if (this.isPlaying === false) {
|
|
559
|
+
this.renderFrame();
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
getCurrentImageId() {
|
|
563
|
+
const current = this.imageId.replace('/frames/1', this.isPlaying
|
|
564
|
+
? `/frames/${this.frameRange[0]}-${this.frameRange[1]}`
|
|
565
|
+
: `/frames/${this.getFrameNumber()}`);
|
|
566
|
+
return current;
|
|
567
|
+
}
|
|
568
|
+
getReferenceId(specifier = {}) {
|
|
569
|
+
const { sliceIndex: sliceIndex } = specifier;
|
|
570
|
+
if (sliceIndex === undefined) {
|
|
571
|
+
return `videoId:${this.getCurrentImageId()}`;
|
|
572
|
+
}
|
|
573
|
+
if (Array.isArray(sliceIndex)) {
|
|
574
|
+
return `videoId:${this.imageId.substring(0, this.imageId.length - 1)}${sliceIndex[0] + 1}-${sliceIndex[1] + 1}`;
|
|
575
|
+
}
|
|
576
|
+
const baseTarget = this.imageId.replace('/frames/1', `/frames/${1 + sliceIndex}`);
|
|
577
|
+
return `videoId:${baseTarget}`;
|
|
578
|
+
}
|
|
579
|
+
isReferenceViewable(viewRef, options = {}) {
|
|
580
|
+
let { imageURI } = options;
|
|
581
|
+
const { referencedImageId, sliceIndex: sliceIndex } = viewRef;
|
|
582
|
+
if (!super.isReferenceViewable(viewRef)) {
|
|
583
|
+
return false;
|
|
584
|
+
}
|
|
585
|
+
const imageId = this.getCurrentImageId();
|
|
586
|
+
if (!imageURI) {
|
|
587
|
+
const colonIndex = imageId.indexOf(':');
|
|
588
|
+
imageURI = imageId.substring(colonIndex + 1, imageId.length - 1);
|
|
589
|
+
}
|
|
590
|
+
if (options.withNavigation) {
|
|
591
|
+
return true;
|
|
592
|
+
}
|
|
593
|
+
const currentIndex = this.getSliceIndex();
|
|
594
|
+
if (Array.isArray(sliceIndex)) {
|
|
595
|
+
return currentIndex >= sliceIndex[0] && currentIndex <= sliceIndex[1];
|
|
596
|
+
}
|
|
597
|
+
if (sliceIndex !== undefined) {
|
|
598
|
+
return currentIndex === sliceIndex;
|
|
599
|
+
}
|
|
600
|
+
if (!referencedImageId) {
|
|
601
|
+
return false;
|
|
602
|
+
}
|
|
603
|
+
const match = referencedImageId.match(VideoViewport.frameRangeExtractor);
|
|
604
|
+
if (!match || !match[2]) {
|
|
605
|
+
return true;
|
|
606
|
+
}
|
|
607
|
+
const range = match[2].split('-').map((it) => Number(it));
|
|
608
|
+
const frame = currentIndex + 1;
|
|
609
|
+
return range[0] <= frame && frame <= (range[1] ?? range[0]);
|
|
610
|
+
}
|
|
611
|
+
setViewReference(viewRef) {
|
|
612
|
+
if (typeof viewRef.sliceIndex === 'number') {
|
|
613
|
+
this.setFrameNumber(viewRef.sliceIndex + 1);
|
|
614
|
+
}
|
|
615
|
+
else if (Array.isArray(viewRef.sliceIndex)) {
|
|
616
|
+
this.setFrameRange(viewRef.sliceIndex);
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
getViewReference(viewRefSpecifier) {
|
|
620
|
+
let sliceIndex = viewRefSpecifier?.sliceIndex;
|
|
621
|
+
if (!sliceIndex) {
|
|
622
|
+
sliceIndex = this.isPlaying
|
|
623
|
+
? [this.frameRange[0] - 1, this.frameRange[1] - 1]
|
|
624
|
+
: this.getCurrentImageIdIndex();
|
|
625
|
+
}
|
|
626
|
+
return {
|
|
627
|
+
...super.getViewReference(viewRefSpecifier),
|
|
628
|
+
referencedImageId: this.getReferenceId(viewRefSpecifier),
|
|
629
|
+
sliceIndex: sliceIndex,
|
|
630
|
+
};
|
|
631
|
+
}
|
|
632
|
+
getFrameNumber() {
|
|
633
|
+
return 1 + this.getCurrentImageIdIndex();
|
|
634
|
+
}
|
|
635
|
+
getCurrentImageIdIndex() {
|
|
636
|
+
return Math.round(this.videoElement.currentTime * this.fps);
|
|
637
|
+
}
|
|
638
|
+
getSliceIndex() {
|
|
639
|
+
return this.getCurrentImageIdIndex() / this.scrollSpeed;
|
|
640
|
+
}
|
|
641
|
+
getCamera() {
|
|
642
|
+
const { parallelScale } = this.videoCamera;
|
|
643
|
+
const canvasCenter = [
|
|
644
|
+
this.element.clientWidth / 2,
|
|
645
|
+
this.element.clientHeight / 2,
|
|
646
|
+
];
|
|
647
|
+
const canvasCenterWorld = this.canvasToWorld(canvasCenter);
|
|
648
|
+
return {
|
|
649
|
+
parallelProjection: true,
|
|
650
|
+
focalPoint: canvasCenterWorld,
|
|
651
|
+
position: [0, 0, 0],
|
|
652
|
+
viewUp: [0, -1, 0],
|
|
653
|
+
parallelScale: this.element.clientHeight / 2 / parallelScale,
|
|
654
|
+
viewPlaneNormal: [0, 0, 1],
|
|
655
|
+
};
|
|
656
|
+
}
|
|
657
|
+
getFrameRate() {
|
|
658
|
+
return this.fps;
|
|
659
|
+
}
|
|
660
|
+
getPan() {
|
|
661
|
+
const panWorld = this.videoCamera.panWorld;
|
|
662
|
+
return [panWorld[0], panWorld[1]];
|
|
663
|
+
}
|
|
664
|
+
refreshRenderValues() {
|
|
665
|
+
let worldToCanvasRatio = this.canvas.offsetWidth / this.videoWidth;
|
|
666
|
+
if (this.videoHeight * worldToCanvasRatio > this.canvas.height) {
|
|
667
|
+
worldToCanvasRatio = this.canvas.offsetHeight / this.videoHeight;
|
|
668
|
+
}
|
|
669
|
+
const drawWidth = Math.floor(this.videoWidth * worldToCanvasRatio);
|
|
670
|
+
const drawHeight = Math.floor(this.videoHeight * worldToCanvasRatio);
|
|
671
|
+
const xOffsetCanvas = (this.canvas.offsetWidth - drawWidth) / 2;
|
|
672
|
+
const yOffsetCanvas = (this.canvas.offsetHeight - drawHeight) / 2;
|
|
673
|
+
const xOffsetWorld = xOffsetCanvas / worldToCanvasRatio;
|
|
674
|
+
const yOffsetWorld = yOffsetCanvas / worldToCanvasRatio;
|
|
675
|
+
this.videoCamera.panWorld = [xOffsetWorld, yOffsetWorld];
|
|
676
|
+
this.videoCamera.parallelScale = worldToCanvasRatio;
|
|
677
|
+
}
|
|
678
|
+
getWorldToCanvasRatio() {
|
|
679
|
+
return this.videoCamera.parallelScale;
|
|
680
|
+
}
|
|
681
|
+
getCanvasToWorldRatio() {
|
|
682
|
+
return 1.0 / this.videoCamera.parallelScale;
|
|
683
|
+
}
|
|
684
|
+
getTransform() {
|
|
685
|
+
const panWorld = this.videoCamera.panWorld;
|
|
686
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
687
|
+
const worldToCanvasRatio = this.getWorldToCanvasRatio();
|
|
688
|
+
const canvasToWorldRatio = this.getCanvasToWorldRatio();
|
|
689
|
+
const halfCanvas = [
|
|
690
|
+
this.canvas.offsetWidth / 2,
|
|
691
|
+
this.canvas.offsetHeight / 2,
|
|
692
|
+
];
|
|
693
|
+
const halfCanvasWorldCoordinates = [
|
|
694
|
+
halfCanvas[0] * canvasToWorldRatio,
|
|
695
|
+
halfCanvas[1] * canvasToWorldRatio,
|
|
696
|
+
];
|
|
697
|
+
const transform = new _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_3__/* .Transform */ .w();
|
|
698
|
+
transform.scale(devicePixelRatio, devicePixelRatio);
|
|
699
|
+
transform.translate(halfCanvas[0], halfCanvas[1]);
|
|
700
|
+
transform.scale(worldToCanvasRatio, worldToCanvasRatio);
|
|
701
|
+
transform.translate(panWorld[0], panWorld[1]);
|
|
702
|
+
transform.translate(-halfCanvasWorldCoordinates[0], -halfCanvasWorldCoordinates[1]);
|
|
703
|
+
return transform;
|
|
704
|
+
}
|
|
705
|
+
updateCameraClippingPlanesAndRange() {
|
|
706
|
+
}
|
|
707
|
+
addImages(stackInputs) {
|
|
708
|
+
const actors = this.getActors();
|
|
709
|
+
stackInputs.forEach((stackInput) => {
|
|
710
|
+
const image = _cache__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .ZP.getImage(stackInput.imageId);
|
|
711
|
+
const imageActor = this.createActorMapper(image);
|
|
712
|
+
if (imageActor) {
|
|
713
|
+
actors.push({ uid: stackInput.actorUID, actor: imageActor });
|
|
714
|
+
if (stackInput.callback) {
|
|
715
|
+
stackInput.callback({ imageActor, imageId: stackInput.imageId });
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
});
|
|
719
|
+
this.setActors(actors);
|
|
720
|
+
}
|
|
721
|
+
createActorMapper(image) {
|
|
722
|
+
return new _CanvasActor__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z(this, image);
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VideoViewport);
|
|
726
|
+
|
|
727
|
+
|
|
728
|
+
/***/ }),
|
|
3
729
|
|
|
4
730
|
/***/ 68467:
|
|
5
731
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -1020,8 +1746,8 @@ function storedPixelDataToCanvasImageDataPseudocolorLUTPET(image, lutFunction, c
|
|
|
1020
1746
|
}
|
|
1021
1747
|
/* harmony default export */ const rendering_storedPixelDataToCanvasImageDataPseudocolorLUTPET = (storedPixelDataToCanvasImageDataPseudocolorLUTPET);
|
|
1022
1748
|
|
|
1023
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
1024
|
-
var utilities = __webpack_require__(
|
|
1749
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
1750
|
+
var utilities = __webpack_require__(56309);
|
|
1025
1751
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js
|
|
1026
1752
|
|
|
1027
1753
|
|
|
@@ -1620,6 +2346,96 @@ function relativeRescale(enabledElement, oldCanvasWidth, oldCanvasHeight) {
|
|
|
1620
2346
|
}
|
|
1621
2347
|
|
|
1622
2348
|
|
|
2349
|
+
/***/ }),
|
|
2350
|
+
|
|
2351
|
+
/***/ 30742:
|
|
2352
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2353
|
+
|
|
2354
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2355
|
+
/* harmony export */ w: () => (/* binding */ Transform)
|
|
2356
|
+
/* harmony export */ });
|
|
2357
|
+
class Transform {
|
|
2358
|
+
constructor() {
|
|
2359
|
+
this.reset();
|
|
2360
|
+
}
|
|
2361
|
+
getMatrix() {
|
|
2362
|
+
return this.m;
|
|
2363
|
+
}
|
|
2364
|
+
reset() {
|
|
2365
|
+
this.m = [1, 0, 0, 1, 0, 0];
|
|
2366
|
+
}
|
|
2367
|
+
clone() {
|
|
2368
|
+
const transform = new Transform();
|
|
2369
|
+
transform.m[0] = this.m[0];
|
|
2370
|
+
transform.m[1] = this.m[1];
|
|
2371
|
+
transform.m[2] = this.m[2];
|
|
2372
|
+
transform.m[3] = this.m[3];
|
|
2373
|
+
transform.m[4] = this.m[4];
|
|
2374
|
+
transform.m[5] = this.m[5];
|
|
2375
|
+
return transform;
|
|
2376
|
+
}
|
|
2377
|
+
multiply(matrix) {
|
|
2378
|
+
const m11 = this.m[0] * matrix[0] + this.m[2] * matrix[1];
|
|
2379
|
+
const m12 = this.m[1] * matrix[0] + this.m[3] * matrix[1];
|
|
2380
|
+
const m21 = this.m[0] * matrix[2] + this.m[2] * matrix[3];
|
|
2381
|
+
const m22 = this.m[1] * matrix[2] + this.m[3] * matrix[3];
|
|
2382
|
+
const dx = this.m[0] * matrix[4] + this.m[2] * matrix[5] + this.m[4];
|
|
2383
|
+
const dy = this.m[1] * matrix[4] + this.m[3] * matrix[5] + this.m[5];
|
|
2384
|
+
this.m[0] = m11;
|
|
2385
|
+
this.m[1] = m12;
|
|
2386
|
+
this.m[2] = m21;
|
|
2387
|
+
this.m[3] = m22;
|
|
2388
|
+
this.m[4] = dx;
|
|
2389
|
+
this.m[5] = dy;
|
|
2390
|
+
}
|
|
2391
|
+
invert() {
|
|
2392
|
+
const d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);
|
|
2393
|
+
const m0 = this.m[3] * d;
|
|
2394
|
+
const m1 = -this.m[1] * d;
|
|
2395
|
+
const m2 = -this.m[2] * d;
|
|
2396
|
+
const m3 = this.m[0] * d;
|
|
2397
|
+
const m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);
|
|
2398
|
+
const m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);
|
|
2399
|
+
this.m[0] = m0;
|
|
2400
|
+
this.m[1] = m1;
|
|
2401
|
+
this.m[2] = m2;
|
|
2402
|
+
this.m[3] = m3;
|
|
2403
|
+
this.m[4] = m4;
|
|
2404
|
+
this.m[5] = m5;
|
|
2405
|
+
}
|
|
2406
|
+
rotate(rad) {
|
|
2407
|
+
const c = Math.cos(rad);
|
|
2408
|
+
const s = Math.sin(rad);
|
|
2409
|
+
const m11 = this.m[0] * c + this.m[2] * s;
|
|
2410
|
+
const m12 = this.m[1] * c + this.m[3] * s;
|
|
2411
|
+
const m21 = this.m[0] * -s + this.m[2] * c;
|
|
2412
|
+
const m22 = this.m[1] * -s + this.m[3] * c;
|
|
2413
|
+
this.m[0] = m11;
|
|
2414
|
+
this.m[1] = m12;
|
|
2415
|
+
this.m[2] = m21;
|
|
2416
|
+
this.m[3] = m22;
|
|
2417
|
+
}
|
|
2418
|
+
translate(x, y) {
|
|
2419
|
+
this.m[4] += this.m[0] * x + this.m[2] * y;
|
|
2420
|
+
this.m[5] += this.m[1] * x + this.m[3] * y;
|
|
2421
|
+
}
|
|
2422
|
+
scale(sx, sy) {
|
|
2423
|
+
this.m[0] *= sx;
|
|
2424
|
+
this.m[1] *= sx;
|
|
2425
|
+
this.m[2] *= sy;
|
|
2426
|
+
this.m[3] *= sy;
|
|
2427
|
+
}
|
|
2428
|
+
transformPoint(point) {
|
|
2429
|
+
const x = point[0];
|
|
2430
|
+
const y = point[1];
|
|
2431
|
+
return [
|
|
2432
|
+
x * this.m[0] + y * this.m[2] + this.m[4],
|
|
2433
|
+
x * this.m[1] + y * this.m[3] + this.m[5],
|
|
2434
|
+
];
|
|
2435
|
+
}
|
|
2436
|
+
}
|
|
2437
|
+
|
|
2438
|
+
|
|
1623
2439
|
/***/ }),
|
|
1624
2440
|
|
|
1625
2441
|
/***/ 6737:
|
|
@@ -1805,8 +2621,8 @@ var vtkVolume$1 = {
|
|
|
1805
2621
|
var volumeLoader = __webpack_require__(18588);
|
|
1806
2622
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/createVolumeMapper.js
|
|
1807
2623
|
var createVolumeMapper = __webpack_require__(49046);
|
|
1808
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
1809
|
-
var utilities = __webpack_require__(
|
|
2624
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
2625
|
+
var utilities = __webpack_require__(56309);
|
|
1810
2626
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
1811
2627
|
var enums = __webpack_require__(7187);
|
|
1812
2628
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
|
|
@@ -1875,7 +2691,7 @@ function triggerVOIModified(element, viewportId, volumeActor, volumeId) {
|
|
|
1875
2691
|
/* harmony export */ });
|
|
1876
2692
|
/* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62990);
|
|
1877
2693
|
/* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30023);
|
|
1878
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
2694
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56309);
|
|
1879
2695
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7187);
|
|
1880
2696
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82253);
|
|
1881
2697
|
|
|
@@ -2055,218 +2871,14 @@ const newInstance = _kitware_vtk_js_macros__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
2055
2871
|
|
|
2056
2872
|
/***/ }),
|
|
2057
2873
|
|
|
2058
|
-
/***/
|
|
2874
|
+
/***/ 5287:
|
|
2059
2875
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2060
2876
|
|
|
2061
2877
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2062
|
-
/* harmony export */ Z: () => (
|
|
2063
|
-
/* harmony export */ });
|
|
2064
|
-
const DEFAULT_SETTINGS = Symbol('DefaultSettings');
|
|
2065
|
-
const RUNTIME_SETTINGS = Symbol('RuntimeSettings');
|
|
2066
|
-
const OBJECT_SETTINGS_MAP = Symbol('ObjectSettingsMap');
|
|
2067
|
-
const DICTIONARY = Symbol('Dictionary');
|
|
2068
|
-
class Settings {
|
|
2069
|
-
constructor(base) {
|
|
2070
|
-
const dictionary = Object.create((base instanceof Settings && DICTIONARY in base
|
|
2071
|
-
? base[DICTIONARY]
|
|
2072
|
-
: null));
|
|
2073
|
-
Object.seal(Object.defineProperty(this, DICTIONARY, {
|
|
2074
|
-
value: dictionary,
|
|
2075
|
-
}));
|
|
2076
|
-
}
|
|
2077
|
-
set(key, value) {
|
|
2078
|
-
return set(this[DICTIONARY], key, value, null);
|
|
2079
|
-
}
|
|
2080
|
-
get(key) {
|
|
2081
|
-
return get(this[DICTIONARY], key);
|
|
2082
|
-
}
|
|
2083
|
-
unset(key) {
|
|
2084
|
-
return unset(this[DICTIONARY], key + '');
|
|
2085
|
-
}
|
|
2086
|
-
forEach(callback) {
|
|
2087
|
-
iterate(this[DICTIONARY], callback);
|
|
2088
|
-
}
|
|
2089
|
-
extend() {
|
|
2090
|
-
return new Settings(this);
|
|
2091
|
-
}
|
|
2092
|
-
import(root) {
|
|
2093
|
-
if (isPlainObject(root)) {
|
|
2094
|
-
Object.keys(root).forEach((key) => {
|
|
2095
|
-
set(this[DICTIONARY], key, root[key], null);
|
|
2096
|
-
});
|
|
2097
|
-
}
|
|
2098
|
-
}
|
|
2099
|
-
dump() {
|
|
2100
|
-
const context = {};
|
|
2101
|
-
iterate(this[DICTIONARY], (key, value) => {
|
|
2102
|
-
if (typeof value !== 'undefined') {
|
|
2103
|
-
deepSet(context, key, value);
|
|
2104
|
-
}
|
|
2105
|
-
});
|
|
2106
|
-
return context;
|
|
2107
|
-
}
|
|
2108
|
-
static assert(subject) {
|
|
2109
|
-
return subject instanceof Settings
|
|
2110
|
-
? subject
|
|
2111
|
-
: Settings.getRuntimeSettings();
|
|
2112
|
-
}
|
|
2113
|
-
static getDefaultSettings(subfield = null) {
|
|
2114
|
-
let defaultSettings = Settings[DEFAULT_SETTINGS];
|
|
2115
|
-
if (!(defaultSettings instanceof Settings)) {
|
|
2116
|
-
defaultSettings = new Settings();
|
|
2117
|
-
Settings[DEFAULT_SETTINGS] = defaultSettings;
|
|
2118
|
-
}
|
|
2119
|
-
if (subfield) {
|
|
2120
|
-
const settingObj = {};
|
|
2121
|
-
defaultSettings.forEach((name) => {
|
|
2122
|
-
if (name.startsWith(subfield)) {
|
|
2123
|
-
const setting = name.split(`${subfield}.`)[1];
|
|
2124
|
-
settingObj[setting] = defaultSettings.get(name);
|
|
2125
|
-
}
|
|
2126
|
-
});
|
|
2127
|
-
return settingObj;
|
|
2128
|
-
}
|
|
2129
|
-
return defaultSettings;
|
|
2130
|
-
}
|
|
2131
|
-
static getRuntimeSettings() {
|
|
2132
|
-
let runtimeSettings = Settings[RUNTIME_SETTINGS];
|
|
2133
|
-
if (!(runtimeSettings instanceof Settings)) {
|
|
2134
|
-
runtimeSettings = new Settings(Settings.getDefaultSettings());
|
|
2135
|
-
Settings[RUNTIME_SETTINGS] = runtimeSettings;
|
|
2136
|
-
}
|
|
2137
|
-
return runtimeSettings;
|
|
2138
|
-
}
|
|
2139
|
-
static getObjectSettings(subject, from) {
|
|
2140
|
-
let settings = null;
|
|
2141
|
-
if (subject instanceof Settings) {
|
|
2142
|
-
settings = subject;
|
|
2143
|
-
}
|
|
2144
|
-
else if (typeof subject === 'object' && subject !== null) {
|
|
2145
|
-
let objectSettingsMap = Settings[OBJECT_SETTINGS_MAP];
|
|
2146
|
-
if (!(objectSettingsMap instanceof WeakMap)) {
|
|
2147
|
-
objectSettingsMap = new WeakMap();
|
|
2148
|
-
Settings[OBJECT_SETTINGS_MAP] = objectSettingsMap;
|
|
2149
|
-
}
|
|
2150
|
-
settings = objectSettingsMap.get(subject);
|
|
2151
|
-
if (!(settings instanceof Settings)) {
|
|
2152
|
-
settings = new Settings(Settings.assert(Settings.getObjectSettings(from)));
|
|
2153
|
-
objectSettingsMap.set(subject, settings);
|
|
2154
|
-
}
|
|
2155
|
-
}
|
|
2156
|
-
return settings;
|
|
2157
|
-
}
|
|
2158
|
-
static extendRuntimeSettings() {
|
|
2159
|
-
return Settings.getRuntimeSettings().extend();
|
|
2160
|
-
}
|
|
2161
|
-
}
|
|
2162
|
-
function unset(dictionary, name) {
|
|
2163
|
-
if (name.endsWith('.')) {
|
|
2164
|
-
let deleteCount = 0;
|
|
2165
|
-
const namespace = name;
|
|
2166
|
-
const base = namespace.slice(0, -1);
|
|
2167
|
-
const deleteAll = base.length === 0;
|
|
2168
|
-
for (const key in dictionary) {
|
|
2169
|
-
if (Object.prototype.hasOwnProperty.call(dictionary, key) &&
|
|
2170
|
-
(deleteAll || key.startsWith(namespace) || key === base)) {
|
|
2171
|
-
delete dictionary[key];
|
|
2172
|
-
++deleteCount;
|
|
2173
|
-
}
|
|
2174
|
-
}
|
|
2175
|
-
return deleteCount > 0;
|
|
2176
|
-
}
|
|
2177
|
-
return delete dictionary[name];
|
|
2178
|
-
}
|
|
2179
|
-
function iterate(dictionary, callback) {
|
|
2180
|
-
for (const key in dictionary) {
|
|
2181
|
-
callback(key, dictionary[key]);
|
|
2182
|
-
}
|
|
2183
|
-
}
|
|
2184
|
-
function setAll(dictionary, prefix, record, references) {
|
|
2185
|
-
let failCount;
|
|
2186
|
-
if (references.has(record)) {
|
|
2187
|
-
return set(dictionary, prefix, null, references);
|
|
2188
|
-
}
|
|
2189
|
-
references.add(record);
|
|
2190
|
-
failCount = 0;
|
|
2191
|
-
for (const field in record) {
|
|
2192
|
-
if (Object.prototype.hasOwnProperty.call(record, field)) {
|
|
2193
|
-
const key = field.length === 0 ? prefix : `${prefix}.${field}`;
|
|
2194
|
-
if (!set(dictionary, key, record[field], references)) {
|
|
2195
|
-
++failCount;
|
|
2196
|
-
}
|
|
2197
|
-
}
|
|
2198
|
-
}
|
|
2199
|
-
references.delete(record);
|
|
2200
|
-
return failCount === 0;
|
|
2201
|
-
}
|
|
2202
|
-
function set(dictionary, key, value, references) {
|
|
2203
|
-
if (isValidKey(key)) {
|
|
2204
|
-
if (isPlainObject(value)) {
|
|
2205
|
-
return setAll(dictionary, key, value, references instanceof WeakSet ? references : new WeakSet());
|
|
2206
|
-
}
|
|
2207
|
-
dictionary[key] = value;
|
|
2208
|
-
return true;
|
|
2209
|
-
}
|
|
2210
|
-
return false;
|
|
2211
|
-
}
|
|
2212
|
-
function get(dictionary, key) {
|
|
2213
|
-
return dictionary[key];
|
|
2214
|
-
}
|
|
2215
|
-
function isValidKey(key) {
|
|
2216
|
-
let last, current, previous;
|
|
2217
|
-
if (typeof key !== 'string' || (last = key.length - 1) < 0) {
|
|
2218
|
-
return false;
|
|
2219
|
-
}
|
|
2220
|
-
previous = -1;
|
|
2221
|
-
while ((current = key.indexOf('.', previous + 1)) >= 0) {
|
|
2222
|
-
if (current - previous < 2 || current === last) {
|
|
2223
|
-
return false;
|
|
2224
|
-
}
|
|
2225
|
-
previous = current;
|
|
2226
|
-
}
|
|
2227
|
-
return true;
|
|
2228
|
-
}
|
|
2229
|
-
function isPlainObject(subject) {
|
|
2230
|
-
if (typeof subject === 'object' && subject !== null) {
|
|
2231
|
-
const prototype = Object.getPrototypeOf(subject);
|
|
2232
|
-
if (prototype === Object.prototype || prototype === null) {
|
|
2233
|
-
return true;
|
|
2234
|
-
}
|
|
2235
|
-
}
|
|
2236
|
-
return false;
|
|
2237
|
-
}
|
|
2238
|
-
function deepSet(context, key, value) {
|
|
2239
|
-
const separator = key.indexOf('.');
|
|
2240
|
-
if (separator >= 0) {
|
|
2241
|
-
const subKey = key.slice(0, separator);
|
|
2242
|
-
let subContext = context[subKey];
|
|
2243
|
-
if (typeof subContext !== 'object' || subContext === null) {
|
|
2244
|
-
const subContextValue = subContext;
|
|
2245
|
-
subContext = {};
|
|
2246
|
-
if (typeof subContextValue !== 'undefined') {
|
|
2247
|
-
subContext[''] = subContextValue;
|
|
2248
|
-
}
|
|
2249
|
-
context[subKey] = subContext;
|
|
2250
|
-
}
|
|
2251
|
-
deepSet(subContext, key.slice(separator + 1, key.length), value);
|
|
2252
|
-
}
|
|
2253
|
-
else {
|
|
2254
|
-
context[key] = value;
|
|
2255
|
-
}
|
|
2256
|
-
}
|
|
2257
|
-
Settings.getDefaultSettings().set('useCursors', true);
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
/***/ }),
|
|
2261
|
-
|
|
2262
|
-
/***/ 5287:
|
|
2263
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2264
|
-
|
|
2265
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2266
|
-
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2878
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2267
2879
|
/* harmony export */ });
|
|
2268
2880
|
/* unused harmony export Cache */
|
|
2269
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
2881
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56309);
|
|
2270
2882
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(74238);
|
|
2271
2883
|
/* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19546);
|
|
2272
2884
|
/* harmony import */ var _classes_ImageVolume__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84326);
|
|
@@ -2303,7 +2915,11 @@ class Cache {
|
|
|
2303
2915
|
this.getMaxInstanceSize = () => this._maxInstanceSize;
|
|
2304
2916
|
this.getCacheSize = () => this._imageCacheSize + this._volumeCacheSize;
|
|
2305
2917
|
this._decacheImage = (imageId) => {
|
|
2306
|
-
const
|
|
2918
|
+
const cachedImage = this._imageCache.get(imageId);
|
|
2919
|
+
if (!cachedImage) {
|
|
2920
|
+
return;
|
|
2921
|
+
}
|
|
2922
|
+
const { imageLoadObject } = cachedImage;
|
|
2307
2923
|
if (imageLoadObject.cancelFn) {
|
|
2308
2924
|
imageLoadObject.cancelFn();
|
|
2309
2925
|
}
|
|
@@ -2314,7 +2930,13 @@ class Cache {
|
|
|
2314
2930
|
};
|
|
2315
2931
|
this._decacheVolume = (volumeId) => {
|
|
2316
2932
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
2933
|
+
if (!cachedVolume) {
|
|
2934
|
+
return;
|
|
2935
|
+
}
|
|
2317
2936
|
const { volumeLoadObject, volume } = cachedVolume;
|
|
2937
|
+
if (!volume) {
|
|
2938
|
+
return;
|
|
2939
|
+
}
|
|
2318
2940
|
if (volume.cancelLoading) {
|
|
2319
2941
|
volume.cancelLoading();
|
|
2320
2942
|
}
|
|
@@ -2360,7 +2982,7 @@ class Cache {
|
|
|
2360
2982
|
throw new Error('getVolumeLoadObject: volumeId must not be undefined');
|
|
2361
2983
|
}
|
|
2362
2984
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
2363
|
-
if (cachedVolume
|
|
2985
|
+
if (!cachedVolume) {
|
|
2364
2986
|
return;
|
|
2365
2987
|
}
|
|
2366
2988
|
cachedVolume.timeStamp = Date.now();
|
|
@@ -2371,7 +2993,7 @@ class Cache {
|
|
|
2371
2993
|
throw new Error('getGeometry: geometryId must not be undefined');
|
|
2372
2994
|
}
|
|
2373
2995
|
const cachedGeometry = this._geometryCache.get(geometryId);
|
|
2374
|
-
if (cachedGeometry
|
|
2996
|
+
if (!cachedGeometry) {
|
|
2375
2997
|
return;
|
|
2376
2998
|
}
|
|
2377
2999
|
cachedGeometry.timeStamp = Date.now();
|
|
@@ -2382,7 +3004,7 @@ class Cache {
|
|
|
2382
3004
|
throw new Error('getImage: imageId must not be undefined');
|
|
2383
3005
|
}
|
|
2384
3006
|
const cachedImage = this._imageCache.get(imageId);
|
|
2385
|
-
if (cachedImage
|
|
3007
|
+
if (!cachedImage) {
|
|
2386
3008
|
return;
|
|
2387
3009
|
}
|
|
2388
3010
|
cachedImage.timeStamp = Date.now();
|
|
@@ -2393,7 +3015,7 @@ class Cache {
|
|
|
2393
3015
|
throw new Error('getVolume: volumeId must not be undefined');
|
|
2394
3016
|
}
|
|
2395
3017
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
2396
|
-
if (cachedVolume
|
|
3018
|
+
if (!cachedVolume) {
|
|
2397
3019
|
return;
|
|
2398
3020
|
}
|
|
2399
3021
|
cachedVolume.timeStamp = Date.now();
|
|
@@ -2414,7 +3036,7 @@ class Cache {
|
|
|
2414
3036
|
throw new Error('removeImageLoadObject: imageId must not be undefined');
|
|
2415
3037
|
}
|
|
2416
3038
|
const cachedImage = this._imageCache.get(imageId);
|
|
2417
|
-
if (cachedImage
|
|
3039
|
+
if (!cachedImage) {
|
|
2418
3040
|
throw new Error('removeImageLoadObject: imageId was not present in imageCache');
|
|
2419
3041
|
}
|
|
2420
3042
|
this.incrementImageCacheSize(-cachedImage.sizeInBytes);
|
|
@@ -2430,7 +3052,7 @@ class Cache {
|
|
|
2430
3052
|
throw new Error('removeVolumeLoadObject: volumeId must not be undefined');
|
|
2431
3053
|
}
|
|
2432
3054
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
2433
|
-
if (cachedVolume
|
|
3055
|
+
if (!cachedVolume) {
|
|
2434
3056
|
throw new Error('removeVolumeLoadObject: volumeId was not present in volumeCache');
|
|
2435
3057
|
}
|
|
2436
3058
|
this.incrementVolumeCacheSize(-cachedVolume.sizeInBytes);
|
|
@@ -2597,7 +3219,7 @@ class Cache {
|
|
|
2597
3219
|
throw new Error('getImageLoadObject: imageId must not be undefined');
|
|
2598
3220
|
}
|
|
2599
3221
|
const cachedImage = this._imageCache.get(imageId);
|
|
2600
|
-
if (cachedImage
|
|
3222
|
+
if (!cachedImage) {
|
|
2601
3223
|
return;
|
|
2602
3224
|
}
|
|
2603
3225
|
cachedImage.timeStamp = Date.now();
|
|
@@ -2615,6 +3237,9 @@ class Cache {
|
|
|
2615
3237
|
const imageIdToUse = (0,_utilities__WEBPACK_IMPORTED_MODULE_0__.imageIdToURI)(imageId);
|
|
2616
3238
|
for (const volumeId of volumeIds) {
|
|
2617
3239
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
3240
|
+
if (!cachedVolume) {
|
|
3241
|
+
return;
|
|
3242
|
+
}
|
|
2618
3243
|
const { volume } = cachedVolume;
|
|
2619
3244
|
if (!volume?.imageIds?.length) {
|
|
2620
3245
|
return;
|
|
@@ -2720,30 +3345,48 @@ const cache = new Cache();
|
|
|
2720
3345
|
|
|
2721
3346
|
/***/ }),
|
|
2722
3347
|
|
|
2723
|
-
/***/
|
|
3348
|
+
/***/ 19247:
|
|
2724
3349
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2725
3350
|
|
|
2726
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2727
|
-
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2728
|
-
/* harmony export */ });
|
|
2729
|
-
const EPSILON = 1e-3;
|
|
2730
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (EPSILON);
|
|
2731
|
-
|
|
2732
3351
|
|
|
2733
|
-
|
|
3352
|
+
// EXPORTS
|
|
3353
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
3354
|
+
EPSILON: () => (/* reexport */ epsilon),
|
|
3355
|
+
MPR_CAMERA_VALUES: () => (/* reexport */ mprCameraValues/* default */.Z),
|
|
3356
|
+
RENDERING_DEFAULTS: () => (/* reexport */ rendering),
|
|
3357
|
+
VIEWPORT_PRESETS: () => (/* reexport */ viewportPresets/* default */.Z)
|
|
3358
|
+
});
|
|
2734
3359
|
|
|
2735
|
-
|
|
2736
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3360
|
+
// UNUSED EXPORTS: BACKGROUND_COLORS, CPU_COLORMAPS
|
|
2737
3361
|
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
3362
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/cpuColormaps.js
|
|
3363
|
+
var cpuColormaps = __webpack_require__(52813);
|
|
3364
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/rendering.js
|
|
2741
3365
|
const RENDERING_DEFAULTS = {
|
|
2742
3366
|
MINIMUM_SLAB_THICKNESS: 5e-2,
|
|
2743
3367
|
MAXIMUM_RAY_DISTANCE: 1e6,
|
|
2744
3368
|
};
|
|
2745
3369
|
Object.freeze(RENDERING_DEFAULTS);
|
|
2746
|
-
/* harmony default export */ const
|
|
3370
|
+
/* harmony default export */ const rendering = (RENDERING_DEFAULTS);
|
|
3371
|
+
|
|
3372
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/epsilon.js
|
|
3373
|
+
const EPSILON = 1e-3;
|
|
3374
|
+
/* harmony default export */ const epsilon = (EPSILON);
|
|
3375
|
+
|
|
3376
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/mprCameraValues.js + 1 modules
|
|
3377
|
+
var mprCameraValues = __webpack_require__(21306);
|
|
3378
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/viewportPresets.js
|
|
3379
|
+
var viewportPresets = __webpack_require__(89469);
|
|
3380
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/backgroundColors.js
|
|
3381
|
+
var backgroundColors = __webpack_require__(43220);
|
|
3382
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js
|
|
3383
|
+
|
|
3384
|
+
|
|
3385
|
+
|
|
3386
|
+
|
|
3387
|
+
|
|
3388
|
+
|
|
3389
|
+
|
|
2747
3390
|
|
|
2748
3391
|
|
|
2749
3392
|
/***/ }),
|
|
@@ -2807,77 +3450,454 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
2807
3450
|
ViewportType: () => (/* reexport */ ViewportType/* default */.Z)
|
|
2808
3451
|
});
|
|
2809
3452
|
|
|
2810
|
-
// UNUSED EXPORTS: ContourType, DynamicOperatorType
|
|
3453
|
+
// UNUSED EXPORTS: ContourType, DynamicOperatorType
|
|
3454
|
+
|
|
3455
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/Events.js
|
|
3456
|
+
var Events = __webpack_require__(19546);
|
|
3457
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/RequestType.js
|
|
3458
|
+
var RequestType = __webpack_require__(49334);
|
|
3459
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportType.js
|
|
3460
|
+
var ViewportType = __webpack_require__(68032);
|
|
3461
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/InterpolationType.js
|
|
3462
|
+
var InterpolationType = __webpack_require__(75677);
|
|
3463
|
+
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Rendering/Core/VolumeMapper/Constants.js
|
|
3464
|
+
var Constants = __webpack_require__(83336);
|
|
3465
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/BlendModes.js
|
|
3466
|
+
|
|
3467
|
+
const { BlendMode } = Constants["default"];
|
|
3468
|
+
var BlendModes;
|
|
3469
|
+
(function (BlendModes) {
|
|
3470
|
+
BlendModes[BlendModes["COMPOSITE"] = 0] = "COMPOSITE";
|
|
3471
|
+
BlendModes[BlendModes["MAXIMUM_INTENSITY_BLEND"] = 1] = "MAXIMUM_INTENSITY_BLEND";
|
|
3472
|
+
BlendModes[BlendModes["MINIMUM_INTENSITY_BLEND"] = 2] = "MINIMUM_INTENSITY_BLEND";
|
|
3473
|
+
BlendModes[BlendModes["AVERAGE_INTENSITY_BLEND"] = 3] = "AVERAGE_INTENSITY_BLEND";
|
|
3474
|
+
})(BlendModes || (BlendModes = {}));
|
|
3475
|
+
/* harmony default export */ const enums_BlendModes = (BlendModes);
|
|
3476
|
+
|
|
3477
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/OrientationAxis.js
|
|
3478
|
+
var OrientationAxis = __webpack_require__(96426);
|
|
3479
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/SharedArrayBufferModes.js
|
|
3480
|
+
var SharedArrayBufferModes = __webpack_require__(91799);
|
|
3481
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/GeometryType.js
|
|
3482
|
+
var GeometryType;
|
|
3483
|
+
(function (GeometryType) {
|
|
3484
|
+
GeometryType["CONTOUR"] = "contour";
|
|
3485
|
+
GeometryType["SURFACE"] = "Surface";
|
|
3486
|
+
})(GeometryType || (GeometryType = {}));
|
|
3487
|
+
/* harmony default export */ const enums_GeometryType = (GeometryType);
|
|
3488
|
+
|
|
3489
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ContourType.js
|
|
3490
|
+
var ContourType = __webpack_require__(2689);
|
|
3491
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/VOILUTFunctionType.js
|
|
3492
|
+
var VOILUTFunctionType = __webpack_require__(67751);
|
|
3493
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/DynamicOperatorType.js
|
|
3494
|
+
var DynamicOperatorType;
|
|
3495
|
+
(function (DynamicOperatorType) {
|
|
3496
|
+
DynamicOperatorType["SUM"] = "SUM";
|
|
3497
|
+
DynamicOperatorType["AVERAGE"] = "AVERAGE";
|
|
3498
|
+
DynamicOperatorType["SUBTRACT"] = "SUBTRACT";
|
|
3499
|
+
})(DynamicOperatorType || (DynamicOperatorType = {}));
|
|
3500
|
+
/* harmony default export */ const enums_DynamicOperatorType = ((/* unused pure expression or super */ null && (DynamicOperatorType)));
|
|
3501
|
+
|
|
3502
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/CalibrationTypes.js
|
|
3503
|
+
var CalibrationTypes;
|
|
3504
|
+
(function (CalibrationTypes) {
|
|
3505
|
+
CalibrationTypes["NOT_APPLICABLE"] = "";
|
|
3506
|
+
CalibrationTypes["ERMF"] = "ERMF";
|
|
3507
|
+
CalibrationTypes["USER"] = "User";
|
|
3508
|
+
CalibrationTypes["PROJECTION"] = "Proj";
|
|
3509
|
+
CalibrationTypes["REGION"] = "Region";
|
|
3510
|
+
CalibrationTypes["ERROR"] = "Error";
|
|
3511
|
+
CalibrationTypes["UNCALIBRATED"] = "Uncalibrated";
|
|
3512
|
+
})(CalibrationTypes || (CalibrationTypes = {}));
|
|
3513
|
+
/* harmony default export */ const enums_CalibrationTypes = (CalibrationTypes);
|
|
3514
|
+
|
|
3515
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportStatus.js
|
|
3516
|
+
var ViewportStatus = __webpack_require__(84659);
|
|
3517
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ImageQualityStatus.js
|
|
3518
|
+
var ImageQualityStatus = __webpack_require__(83521);
|
|
3519
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/VideoEnums.js
|
|
3520
|
+
var VideoEnums = __webpack_require__(40373);
|
|
3521
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/MetadataModules.js
|
|
3522
|
+
var MetadataModules = __webpack_require__(636);
|
|
3523
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js
|
|
3524
|
+
|
|
3525
|
+
|
|
3526
|
+
|
|
3527
|
+
|
|
3528
|
+
|
|
3529
|
+
|
|
3530
|
+
|
|
3531
|
+
|
|
3532
|
+
|
|
3533
|
+
|
|
3534
|
+
|
|
3535
|
+
|
|
3536
|
+
|
|
3537
|
+
|
|
3538
|
+
|
|
3539
|
+
|
|
3540
|
+
|
|
3541
|
+
|
|
3542
|
+
|
|
3543
|
+
/***/ }),
|
|
3544
|
+
|
|
3545
|
+
/***/ 65279:
|
|
3546
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3547
|
+
|
|
3548
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3549
|
+
/* harmony export */ O: () => (/* binding */ getEnabledElementByIds),
|
|
3550
|
+
/* harmony export */ Yz: () => (/* binding */ getEnabledElementByViewportId),
|
|
3551
|
+
/* harmony export */ ZP: () => (/* binding */ getEnabledElement),
|
|
3552
|
+
/* harmony export */ wN: () => (/* binding */ getEnabledElements)
|
|
3553
|
+
/* harmony export */ });
|
|
3554
|
+
/* harmony import */ var _RenderingEngine_getRenderingEngine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9138);
|
|
3555
|
+
|
|
3556
|
+
function getEnabledElement(element) {
|
|
3557
|
+
if (!element) {
|
|
3558
|
+
return;
|
|
3559
|
+
}
|
|
3560
|
+
const { viewportUid, renderingEngineUid } = element.dataset;
|
|
3561
|
+
return getEnabledElementByIds(viewportUid, renderingEngineUid);
|
|
3562
|
+
}
|
|
3563
|
+
function getEnabledElementByIds(viewportId, renderingEngineId) {
|
|
3564
|
+
if (!renderingEngineId || !viewportId) {
|
|
3565
|
+
return;
|
|
3566
|
+
}
|
|
3567
|
+
const renderingEngine = (0,_RenderingEngine_getRenderingEngine__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .ZP)(renderingEngineId);
|
|
3568
|
+
if (!renderingEngine || renderingEngine.hasBeenDestroyed) {
|
|
3569
|
+
return;
|
|
3570
|
+
}
|
|
3571
|
+
const viewport = renderingEngine.getViewport(viewportId);
|
|
3572
|
+
if (!viewport) {
|
|
3573
|
+
return;
|
|
3574
|
+
}
|
|
3575
|
+
const FrameOfReferenceUID = viewport.getFrameOfReferenceUID();
|
|
3576
|
+
return {
|
|
3577
|
+
viewport,
|
|
3578
|
+
renderingEngine,
|
|
3579
|
+
viewportId,
|
|
3580
|
+
renderingEngineId,
|
|
3581
|
+
FrameOfReferenceUID,
|
|
3582
|
+
};
|
|
3583
|
+
}
|
|
3584
|
+
function getEnabledElementByViewportId(viewportId) {
|
|
3585
|
+
const renderingEngines = (0,_RenderingEngine_getRenderingEngine__WEBPACK_IMPORTED_MODULE_0__/* .getRenderingEngines */ .Uu)();
|
|
3586
|
+
for (let i = 0; i < renderingEngines.length; i++) {
|
|
3587
|
+
const renderingEngine = renderingEngines[i];
|
|
3588
|
+
const viewport = renderingEngine.getViewport(viewportId);
|
|
3589
|
+
if (viewport) {
|
|
3590
|
+
return getEnabledElementByIds(viewportId, renderingEngine.id);
|
|
3591
|
+
}
|
|
3592
|
+
}
|
|
3593
|
+
}
|
|
3594
|
+
function getEnabledElements() {
|
|
3595
|
+
const enabledElements = [];
|
|
3596
|
+
const renderingEngines = (0,_RenderingEngine_getRenderingEngine__WEBPACK_IMPORTED_MODULE_0__/* .getRenderingEngines */ .Uu)();
|
|
3597
|
+
renderingEngines.forEach((renderingEngine) => {
|
|
3598
|
+
const viewports = renderingEngine.getViewports();
|
|
3599
|
+
viewports.forEach(({ element }) => {
|
|
3600
|
+
enabledElements.push(getEnabledElement(element));
|
|
3601
|
+
});
|
|
3602
|
+
});
|
|
3603
|
+
return enabledElements;
|
|
3604
|
+
}
|
|
3605
|
+
|
|
3606
|
+
|
|
3607
|
+
/***/ }),
|
|
3608
|
+
|
|
3609
|
+
/***/ 12651:
|
|
3610
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3611
|
+
|
|
3612
|
+
|
|
3613
|
+
// EXPORTS
|
|
3614
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
3615
|
+
BaseVolumeViewport: () => (/* reexport */ BaseVolumeViewport/* default */.Z),
|
|
3616
|
+
CONSTANTS: () => (/* reexport */ constants),
|
|
3617
|
+
EVENTS: () => (/* reexport */ enums.Events),
|
|
3618
|
+
Enums: () => (/* reexport */ enums),
|
|
3619
|
+
Settings: () => (/* reexport */ Settings),
|
|
3620
|
+
StackViewport: () => (/* reexport */ StackViewport/* default */.Z),
|
|
3621
|
+
VolumeViewport: () => (/* reexport */ VolumeViewport/* default */.Z),
|
|
3622
|
+
VolumeViewport3D: () => (/* reexport */ VolumeViewport3D/* default */.Z),
|
|
3623
|
+
addImageSlicesToViewports: () => (/* reexport */ helpers/* addImageSlicesToViewports */.PN),
|
|
3624
|
+
addVolumesToViewports: () => (/* reexport */ helpers/* addVolumesToViewports */.gc),
|
|
3625
|
+
cache: () => (/* reexport */ cache/* default */.ZP),
|
|
3626
|
+
eventTarget: () => (/* reexport */ eventTarget/* default */.Z),
|
|
3627
|
+
geometryLoader: () => (/* reexport */ geometryLoader),
|
|
3628
|
+
getConfiguration: () => (/* reexport */ init/* getConfiguration */.P_),
|
|
3629
|
+
getEnabledElement: () => (/* reexport */ getEnabledElement/* default */.ZP),
|
|
3630
|
+
getEnabledElementByIds: () => (/* reexport */ getEnabledElement/* getEnabledElementByIds */.O),
|
|
3631
|
+
getEnabledElementByViewportId: () => (/* reexport */ getEnabledElement/* getEnabledElementByViewportId */.Yz),
|
|
3632
|
+
getEnabledElements: () => (/* reexport */ getEnabledElement/* getEnabledElements */.wN),
|
|
3633
|
+
getRenderingEngine: () => (/* reexport */ getRenderingEngine/* getRenderingEngine */.Pr),
|
|
3634
|
+
getRenderingEngines: () => (/* reexport */ getRenderingEngine/* getRenderingEngines */.Uu),
|
|
3635
|
+
getWebWorkerManager: () => (/* reexport */ init/* getWebWorkerManager */.Pt),
|
|
3636
|
+
imageLoadPoolManager: () => (/* reexport */ imageLoadPoolManager/* default */.Z),
|
|
3637
|
+
imageLoader: () => (/* reexport */ imageLoader),
|
|
3638
|
+
metaData: () => (/* reexport */ metaData),
|
|
3639
|
+
triggerEvent: () => (/* reexport */ triggerEvent/* default */.Z),
|
|
3640
|
+
utilities: () => (/* reexport */ utilities),
|
|
3641
|
+
volumeLoader: () => (/* reexport */ volumeLoader)
|
|
3642
|
+
});
|
|
3643
|
+
|
|
3644
|
+
// UNUSED EXPORTS: ImageVolume, ProgressiveRetrieveImages, RenderingEngine, Surface, VideoViewport, Viewport, WSIViewport, canRenderFloatTextures, createVolumeActor, createVolumeMapper, getOrCreateCanvas, getShouldUseCPURendering, getShouldUseSharedArrayBuffer, imageRetrievalPoolManager, init, isCornerstoneInitialized, peerImport, registerImageLoader, requestPoolManager, resetUseCPURendering, resetUseSharedArrayBuffer, setConfiguration, setPreferSizeOverAccuracy, setUseCPURendering, setUseSharedArrayBuffer, setVolumesForViewports
|
|
3645
|
+
|
|
3646
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
3647
|
+
var enums = __webpack_require__(7187);
|
|
3648
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js + 2 modules
|
|
3649
|
+
var constants = __webpack_require__(19247);
|
|
3650
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/index.js + 3 modules
|
|
3651
|
+
var RenderingEngine = __webpack_require__(69552);
|
|
3652
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VolumeViewport.js
|
|
3653
|
+
var VolumeViewport = __webpack_require__(32932);
|
|
3654
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VolumeViewport3D.js
|
|
3655
|
+
var VolumeViewport3D = __webpack_require__(46190);
|
|
3656
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/BaseVolumeViewport.js
|
|
3657
|
+
var BaseVolumeViewport = __webpack_require__(36205);
|
|
3658
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/StackViewport.js
|
|
3659
|
+
var StackViewport = __webpack_require__(98715);
|
|
3660
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js
|
|
3661
|
+
var VideoViewport = __webpack_require__(49001);
|
|
3662
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/WSIViewport.js
|
|
3663
|
+
var WSIViewport = __webpack_require__(86057);
|
|
3664
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
|
|
3665
|
+
var Viewport = __webpack_require__(77614);
|
|
3666
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
|
|
3667
|
+
var eventTarget = __webpack_require__(74238);
|
|
3668
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
|
|
3669
|
+
var getRenderingEngine = __webpack_require__(9138);
|
|
3670
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
|
|
3671
|
+
var cache = __webpack_require__(82253);
|
|
3672
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageRetrievalPoolManager.js
|
|
3673
|
+
var imageRetrievalPoolManager = __webpack_require__(22717);
|
|
3674
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
|
|
3675
|
+
var imageLoadPoolManager = __webpack_require__(96506);
|
|
3676
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/getEnabledElement.js
|
|
3677
|
+
var getEnabledElement = __webpack_require__(65279);
|
|
3678
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/metaData.js
|
|
3679
|
+
var metaData = __webpack_require__(30023);
|
|
3680
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js + 1 modules
|
|
3681
|
+
var init = __webpack_require__(28719);
|
|
3682
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/Settings.js
|
|
3683
|
+
const DEFAULT_SETTINGS = Symbol('DefaultSettings');
|
|
3684
|
+
const RUNTIME_SETTINGS = Symbol('RuntimeSettings');
|
|
3685
|
+
const OBJECT_SETTINGS_MAP = Symbol('ObjectSettingsMap');
|
|
3686
|
+
const DICTIONARY = Symbol('Dictionary');
|
|
3687
|
+
class Settings {
|
|
3688
|
+
constructor(base) {
|
|
3689
|
+
const dictionary = Object.create((base instanceof Settings && DICTIONARY in base
|
|
3690
|
+
? base[DICTIONARY]
|
|
3691
|
+
: null));
|
|
3692
|
+
Object.seal(Object.defineProperty(this, DICTIONARY, {
|
|
3693
|
+
value: dictionary,
|
|
3694
|
+
}));
|
|
3695
|
+
}
|
|
3696
|
+
set(key, value) {
|
|
3697
|
+
return set(this[DICTIONARY], key, value, null);
|
|
3698
|
+
}
|
|
3699
|
+
get(key) {
|
|
3700
|
+
return get(this[DICTIONARY], key);
|
|
3701
|
+
}
|
|
3702
|
+
unset(key) {
|
|
3703
|
+
return unset(this[DICTIONARY], key + '');
|
|
3704
|
+
}
|
|
3705
|
+
forEach(callback) {
|
|
3706
|
+
iterate(this[DICTIONARY], callback);
|
|
3707
|
+
}
|
|
3708
|
+
extend() {
|
|
3709
|
+
return new Settings(this);
|
|
3710
|
+
}
|
|
3711
|
+
import(root) {
|
|
3712
|
+
if (isPlainObject(root)) {
|
|
3713
|
+
Object.keys(root).forEach((key) => {
|
|
3714
|
+
set(this[DICTIONARY], key, root[key], null);
|
|
3715
|
+
});
|
|
3716
|
+
}
|
|
3717
|
+
}
|
|
3718
|
+
dump() {
|
|
3719
|
+
const context = {};
|
|
3720
|
+
iterate(this[DICTIONARY], (key, value) => {
|
|
3721
|
+
if (typeof value !== 'undefined') {
|
|
3722
|
+
deepSet(context, key, value);
|
|
3723
|
+
}
|
|
3724
|
+
});
|
|
3725
|
+
return context;
|
|
3726
|
+
}
|
|
3727
|
+
static assert(subject) {
|
|
3728
|
+
return subject instanceof Settings
|
|
3729
|
+
? subject
|
|
3730
|
+
: Settings.getRuntimeSettings();
|
|
3731
|
+
}
|
|
3732
|
+
static getDefaultSettings(subfield = null) {
|
|
3733
|
+
let defaultSettings = Settings[DEFAULT_SETTINGS];
|
|
3734
|
+
if (!(defaultSettings instanceof Settings)) {
|
|
3735
|
+
defaultSettings = new Settings();
|
|
3736
|
+
Settings[DEFAULT_SETTINGS] = defaultSettings;
|
|
3737
|
+
}
|
|
3738
|
+
if (subfield) {
|
|
3739
|
+
const settingObj = {};
|
|
3740
|
+
defaultSettings.forEach((name) => {
|
|
3741
|
+
if (name.startsWith(subfield)) {
|
|
3742
|
+
const setting = name.split(`${subfield}.`)[1];
|
|
3743
|
+
settingObj[setting] = defaultSettings.get(name);
|
|
3744
|
+
}
|
|
3745
|
+
});
|
|
3746
|
+
return settingObj;
|
|
3747
|
+
}
|
|
3748
|
+
return defaultSettings;
|
|
3749
|
+
}
|
|
3750
|
+
static getRuntimeSettings() {
|
|
3751
|
+
let runtimeSettings = Settings[RUNTIME_SETTINGS];
|
|
3752
|
+
if (!(runtimeSettings instanceof Settings)) {
|
|
3753
|
+
runtimeSettings = new Settings(Settings.getDefaultSettings());
|
|
3754
|
+
Settings[RUNTIME_SETTINGS] = runtimeSettings;
|
|
3755
|
+
}
|
|
3756
|
+
return runtimeSettings;
|
|
3757
|
+
}
|
|
3758
|
+
static getObjectSettings(subject, from) {
|
|
3759
|
+
let settings = null;
|
|
3760
|
+
if (subject instanceof Settings) {
|
|
3761
|
+
settings = subject;
|
|
3762
|
+
}
|
|
3763
|
+
else if (typeof subject === 'object' && subject !== null) {
|
|
3764
|
+
let objectSettingsMap = Settings[OBJECT_SETTINGS_MAP];
|
|
3765
|
+
if (!(objectSettingsMap instanceof WeakMap)) {
|
|
3766
|
+
objectSettingsMap = new WeakMap();
|
|
3767
|
+
Settings[OBJECT_SETTINGS_MAP] = objectSettingsMap;
|
|
3768
|
+
}
|
|
3769
|
+
settings = objectSettingsMap.get(subject);
|
|
3770
|
+
if (!(settings instanceof Settings)) {
|
|
3771
|
+
settings = new Settings(Settings.assert(Settings.getObjectSettings(from)));
|
|
3772
|
+
objectSettingsMap.set(subject, settings);
|
|
3773
|
+
}
|
|
3774
|
+
}
|
|
3775
|
+
return settings;
|
|
3776
|
+
}
|
|
3777
|
+
static extendRuntimeSettings() {
|
|
3778
|
+
return Settings.getRuntimeSettings().extend();
|
|
3779
|
+
}
|
|
3780
|
+
}
|
|
3781
|
+
function unset(dictionary, name) {
|
|
3782
|
+
if (name.endsWith('.')) {
|
|
3783
|
+
let deleteCount = 0;
|
|
3784
|
+
const namespace = name;
|
|
3785
|
+
const base = namespace.slice(0, -1);
|
|
3786
|
+
const deleteAll = base.length === 0;
|
|
3787
|
+
for (const key in dictionary) {
|
|
3788
|
+
if (Object.prototype.hasOwnProperty.call(dictionary, key) &&
|
|
3789
|
+
(deleteAll || key.startsWith(namespace) || key === base)) {
|
|
3790
|
+
delete dictionary[key];
|
|
3791
|
+
++deleteCount;
|
|
3792
|
+
}
|
|
3793
|
+
}
|
|
3794
|
+
return deleteCount > 0;
|
|
3795
|
+
}
|
|
3796
|
+
return delete dictionary[name];
|
|
3797
|
+
}
|
|
3798
|
+
function iterate(dictionary, callback) {
|
|
3799
|
+
for (const key in dictionary) {
|
|
3800
|
+
callback(key, dictionary[key]);
|
|
3801
|
+
}
|
|
3802
|
+
}
|
|
3803
|
+
function setAll(dictionary, prefix, record, references) {
|
|
3804
|
+
let failCount;
|
|
3805
|
+
if (references.has(record)) {
|
|
3806
|
+
return set(dictionary, prefix, null, references);
|
|
3807
|
+
}
|
|
3808
|
+
references.add(record);
|
|
3809
|
+
failCount = 0;
|
|
3810
|
+
for (const field in record) {
|
|
3811
|
+
if (Object.prototype.hasOwnProperty.call(record, field)) {
|
|
3812
|
+
const key = field.length === 0 ? prefix : `${prefix}.${field}`;
|
|
3813
|
+
if (!set(dictionary, key, record[field], references)) {
|
|
3814
|
+
++failCount;
|
|
3815
|
+
}
|
|
3816
|
+
}
|
|
3817
|
+
}
|
|
3818
|
+
references.delete(record);
|
|
3819
|
+
return failCount === 0;
|
|
3820
|
+
}
|
|
3821
|
+
function set(dictionary, key, value, references) {
|
|
3822
|
+
if (isValidKey(key)) {
|
|
3823
|
+
if (isPlainObject(value)) {
|
|
3824
|
+
return setAll(dictionary, key, value, references instanceof WeakSet ? references : new WeakSet());
|
|
3825
|
+
}
|
|
3826
|
+
dictionary[key] = value;
|
|
3827
|
+
return true;
|
|
3828
|
+
}
|
|
3829
|
+
return false;
|
|
3830
|
+
}
|
|
3831
|
+
function get(dictionary, key) {
|
|
3832
|
+
return dictionary[key];
|
|
3833
|
+
}
|
|
3834
|
+
function isValidKey(key) {
|
|
3835
|
+
let last, current, previous;
|
|
3836
|
+
if (typeof key !== 'string' || (last = key.length - 1) < 0) {
|
|
3837
|
+
return false;
|
|
3838
|
+
}
|
|
3839
|
+
previous = -1;
|
|
3840
|
+
while ((current = key.indexOf('.', previous + 1)) >= 0) {
|
|
3841
|
+
if (current - previous < 2 || current === last) {
|
|
3842
|
+
return false;
|
|
3843
|
+
}
|
|
3844
|
+
previous = current;
|
|
3845
|
+
}
|
|
3846
|
+
return true;
|
|
3847
|
+
}
|
|
3848
|
+
function isPlainObject(subject) {
|
|
3849
|
+
if (typeof subject === 'object' && subject !== null) {
|
|
3850
|
+
const prototype = Object.getPrototypeOf(subject);
|
|
3851
|
+
if (prototype === Object.prototype || prototype === null) {
|
|
3852
|
+
return true;
|
|
3853
|
+
}
|
|
3854
|
+
}
|
|
3855
|
+
return false;
|
|
3856
|
+
}
|
|
3857
|
+
function deepSet(context, key, value) {
|
|
3858
|
+
const separator = key.indexOf('.');
|
|
3859
|
+
if (separator >= 0) {
|
|
3860
|
+
const subKey = key.slice(0, separator);
|
|
3861
|
+
let subContext = context[subKey];
|
|
3862
|
+
if (typeof subContext !== 'object' || subContext === null) {
|
|
3863
|
+
const subContextValue = subContext;
|
|
3864
|
+
subContext = {};
|
|
3865
|
+
if (typeof subContextValue !== 'undefined') {
|
|
3866
|
+
subContext[''] = subContextValue;
|
|
3867
|
+
}
|
|
3868
|
+
context[subKey] = subContext;
|
|
3869
|
+
}
|
|
3870
|
+
deepSet(subContext, key.slice(separator + 1, key.length), value);
|
|
3871
|
+
}
|
|
3872
|
+
else {
|
|
3873
|
+
context[key] = value;
|
|
3874
|
+
}
|
|
3875
|
+
}
|
|
3876
|
+
Settings.getDefaultSettings().set('useCursors', true);
|
|
3877
|
+
|
|
3878
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/volumeLoader.js
|
|
3879
|
+
var volumeLoader = __webpack_require__(18588);
|
|
3880
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
|
|
3881
|
+
var imageLoader = __webpack_require__(62990);
|
|
3882
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/geometryLoader.js + 26 modules
|
|
3883
|
+
var geometryLoader = __webpack_require__(59469);
|
|
3884
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
|
|
3885
|
+
var ProgressiveRetrieveImages = __webpack_require__(27654);
|
|
3886
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
3887
|
+
var utilities = __webpack_require__(56309);
|
|
3888
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
|
|
3889
|
+
var triggerEvent = __webpack_require__(85041);
|
|
3890
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 1 modules
|
|
3891
|
+
var helpers = __webpack_require__(25281);
|
|
3892
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
|
|
3893
|
+
|
|
3894
|
+
|
|
2811
3895
|
|
|
2812
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/Events.js
|
|
2813
|
-
var Events = __webpack_require__(19546);
|
|
2814
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/RequestType.js
|
|
2815
|
-
var RequestType = __webpack_require__(49334);
|
|
2816
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportType.js
|
|
2817
|
-
var ViewportType = __webpack_require__(68032);
|
|
2818
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/InterpolationType.js
|
|
2819
|
-
var InterpolationType = __webpack_require__(75677);
|
|
2820
|
-
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Rendering/Core/VolumeMapper/Constants.js
|
|
2821
|
-
var Constants = __webpack_require__(83336);
|
|
2822
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/BlendModes.js
|
|
2823
3896
|
|
|
2824
|
-
const { BlendMode } = Constants["default"];
|
|
2825
|
-
var BlendModes;
|
|
2826
|
-
(function (BlendModes) {
|
|
2827
|
-
BlendModes[BlendModes["COMPOSITE"] = 0] = "COMPOSITE";
|
|
2828
|
-
BlendModes[BlendModes["MAXIMUM_INTENSITY_BLEND"] = 1] = "MAXIMUM_INTENSITY_BLEND";
|
|
2829
|
-
BlendModes[BlendModes["MINIMUM_INTENSITY_BLEND"] = 2] = "MINIMUM_INTENSITY_BLEND";
|
|
2830
|
-
BlendModes[BlendModes["AVERAGE_INTENSITY_BLEND"] = 3] = "AVERAGE_INTENSITY_BLEND";
|
|
2831
|
-
})(BlendModes || (BlendModes = {}));
|
|
2832
|
-
/* harmony default export */ const enums_BlendModes = (BlendModes);
|
|
2833
3897
|
|
|
2834
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/OrientationAxis.js
|
|
2835
|
-
var OrientationAxis = __webpack_require__(96426);
|
|
2836
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/SharedArrayBufferModes.js
|
|
2837
|
-
var SharedArrayBufferModes = __webpack_require__(91799);
|
|
2838
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/GeometryType.js
|
|
2839
|
-
var GeometryType;
|
|
2840
|
-
(function (GeometryType) {
|
|
2841
|
-
GeometryType["CONTOUR"] = "contour";
|
|
2842
|
-
GeometryType["SURFACE"] = "Surface";
|
|
2843
|
-
})(GeometryType || (GeometryType = {}));
|
|
2844
|
-
/* harmony default export */ const enums_GeometryType = (GeometryType);
|
|
2845
3898
|
|
|
2846
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ContourType.js
|
|
2847
|
-
var ContourType = __webpack_require__(2689);
|
|
2848
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/VOILUTFunctionType.js
|
|
2849
|
-
var VOILUTFunctionType = __webpack_require__(67751);
|
|
2850
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/DynamicOperatorType.js
|
|
2851
|
-
var DynamicOperatorType;
|
|
2852
|
-
(function (DynamicOperatorType) {
|
|
2853
|
-
DynamicOperatorType["SUM"] = "SUM";
|
|
2854
|
-
DynamicOperatorType["AVERAGE"] = "AVERAGE";
|
|
2855
|
-
DynamicOperatorType["SUBTRACT"] = "SUBTRACT";
|
|
2856
|
-
})(DynamicOperatorType || (DynamicOperatorType = {}));
|
|
2857
|
-
/* harmony default export */ const enums_DynamicOperatorType = ((/* unused pure expression or super */ null && (DynamicOperatorType)));
|
|
2858
3899
|
|
|
2859
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/CalibrationTypes.js
|
|
2860
|
-
var CalibrationTypes;
|
|
2861
|
-
(function (CalibrationTypes) {
|
|
2862
|
-
CalibrationTypes["NOT_APPLICABLE"] = "";
|
|
2863
|
-
CalibrationTypes["ERMF"] = "ERMF";
|
|
2864
|
-
CalibrationTypes["USER"] = "User";
|
|
2865
|
-
CalibrationTypes["PROJECTION"] = "Proj";
|
|
2866
|
-
CalibrationTypes["REGION"] = "Region";
|
|
2867
|
-
CalibrationTypes["ERROR"] = "Error";
|
|
2868
|
-
CalibrationTypes["UNCALIBRATED"] = "Uncalibrated";
|
|
2869
|
-
})(CalibrationTypes || (CalibrationTypes = {}));
|
|
2870
|
-
/* harmony default export */ const enums_CalibrationTypes = (CalibrationTypes);
|
|
2871
3900
|
|
|
2872
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportStatus.js
|
|
2873
|
-
var ViewportStatus = __webpack_require__(84659);
|
|
2874
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ImageQualityStatus.js
|
|
2875
|
-
var ImageQualityStatus = __webpack_require__(83521);
|
|
2876
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/VideoEnums.js
|
|
2877
|
-
var VideoEnums = __webpack_require__(40373);
|
|
2878
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/MetadataModules.js
|
|
2879
|
-
var MetadataModules = __webpack_require__(636);
|
|
2880
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js
|
|
2881
3901
|
|
|
2882
3902
|
|
|
2883
3903
|
|
|
@@ -2897,68 +3917,9 @@ var MetadataModules = __webpack_require__(636);
|
|
|
2897
3917
|
|
|
2898
3918
|
|
|
2899
3919
|
|
|
2900
|
-
/***/ }),
|
|
2901
3920
|
|
|
2902
|
-
/***/ 65279:
|
|
2903
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2904
3921
|
|
|
2905
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2906
|
-
/* harmony export */ O: () => (/* binding */ getEnabledElementByIds),
|
|
2907
|
-
/* harmony export */ Yz: () => (/* binding */ getEnabledElementByViewportId),
|
|
2908
|
-
/* harmony export */ ZP: () => (/* binding */ getEnabledElement),
|
|
2909
|
-
/* harmony export */ wN: () => (/* binding */ getEnabledElements)
|
|
2910
|
-
/* harmony export */ });
|
|
2911
|
-
/* harmony import */ var _RenderingEngine_getRenderingEngine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9138);
|
|
2912
3922
|
|
|
2913
|
-
function getEnabledElement(element) {
|
|
2914
|
-
if (!element) {
|
|
2915
|
-
return;
|
|
2916
|
-
}
|
|
2917
|
-
const { viewportUid, renderingEngineUid } = element.dataset;
|
|
2918
|
-
return getEnabledElementByIds(viewportUid, renderingEngineUid);
|
|
2919
|
-
}
|
|
2920
|
-
function getEnabledElementByIds(viewportId, renderingEngineId) {
|
|
2921
|
-
if (!renderingEngineId || !viewportId) {
|
|
2922
|
-
return;
|
|
2923
|
-
}
|
|
2924
|
-
const renderingEngine = (0,_RenderingEngine_getRenderingEngine__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .ZP)(renderingEngineId);
|
|
2925
|
-
if (!renderingEngine || renderingEngine.hasBeenDestroyed) {
|
|
2926
|
-
return;
|
|
2927
|
-
}
|
|
2928
|
-
const viewport = renderingEngine.getViewport(viewportId);
|
|
2929
|
-
if (!viewport) {
|
|
2930
|
-
return;
|
|
2931
|
-
}
|
|
2932
|
-
const FrameOfReferenceUID = viewport.getFrameOfReferenceUID();
|
|
2933
|
-
return {
|
|
2934
|
-
viewport,
|
|
2935
|
-
renderingEngine,
|
|
2936
|
-
viewportId,
|
|
2937
|
-
renderingEngineId,
|
|
2938
|
-
FrameOfReferenceUID,
|
|
2939
|
-
};
|
|
2940
|
-
}
|
|
2941
|
-
function getEnabledElementByViewportId(viewportId) {
|
|
2942
|
-
const renderingEngines = (0,_RenderingEngine_getRenderingEngine__WEBPACK_IMPORTED_MODULE_0__/* .getRenderingEngines */ .Uu)();
|
|
2943
|
-
for (let i = 0; i < renderingEngines.length; i++) {
|
|
2944
|
-
const renderingEngine = renderingEngines[i];
|
|
2945
|
-
const viewport = renderingEngine.getViewport(viewportId);
|
|
2946
|
-
if (viewport) {
|
|
2947
|
-
return getEnabledElementByIds(viewportId, renderingEngine.id);
|
|
2948
|
-
}
|
|
2949
|
-
}
|
|
2950
|
-
}
|
|
2951
|
-
function getEnabledElements() {
|
|
2952
|
-
const enabledElements = [];
|
|
2953
|
-
const renderingEngines = (0,_RenderingEngine_getRenderingEngine__WEBPACK_IMPORTED_MODULE_0__/* .getRenderingEngines */ .Uu)();
|
|
2954
|
-
renderingEngines.forEach((renderingEngine) => {
|
|
2955
|
-
const viewports = renderingEngine.getViewports();
|
|
2956
|
-
viewports.forEach(({ element }) => {
|
|
2957
|
-
enabledElements.push(getEnabledElement(element));
|
|
2958
|
-
});
|
|
2959
|
-
});
|
|
2960
|
-
return enabledElements;
|
|
2961
|
-
}
|
|
2962
3923
|
|
|
2963
3924
|
|
|
2964
3925
|
/***/ }),
|
|
@@ -2987,9 +3948,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2987
3948
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82253);
|
|
2988
3949
|
/* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19546);
|
|
2989
3950
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(74238);
|
|
2990
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
3951
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56309);
|
|
2991
3952
|
/* harmony import */ var _requestPool_imageLoadPoolManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96506);
|
|
2992
|
-
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
3953
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12651);
|
|
2993
3954
|
|
|
2994
3955
|
|
|
2995
3956
|
|
|
@@ -3268,7 +4229,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3268
4229
|
/* harmony import */ var _utilities_triggerEvent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(85041);
|
|
3269
4230
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11677);
|
|
3270
4231
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__);
|
|
3271
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
4232
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(56309);
|
|
3272
4233
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(28719);
|
|
3273
4234
|
/* harmony import */ var _utilities_cacheUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(85654);
|
|
3274
4235
|
|
|
@@ -3589,6 +4550,55 @@ function generateVolumeScalarData(targetBuffer, scalarLength) {
|
|
|
3589
4550
|
}
|
|
3590
4551
|
|
|
3591
4552
|
|
|
4553
|
+
/***/ }),
|
|
4554
|
+
|
|
4555
|
+
/***/ 30023:
|
|
4556
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4557
|
+
|
|
4558
|
+
__webpack_require__.r(__webpack_exports__);
|
|
4559
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4560
|
+
/* harmony export */ addProvider: () => (/* binding */ addProvider),
|
|
4561
|
+
/* harmony export */ get: () => (/* binding */ getMetaData),
|
|
4562
|
+
/* harmony export */ removeAllProviders: () => (/* binding */ removeAllProviders),
|
|
4563
|
+
/* harmony export */ removeProvider: () => (/* binding */ removeProvider)
|
|
4564
|
+
/* harmony export */ });
|
|
4565
|
+
const providers = [];
|
|
4566
|
+
function addProvider(provider, priority = 0) {
|
|
4567
|
+
let i;
|
|
4568
|
+
for (i = 0; i < providers.length; i++) {
|
|
4569
|
+
if (providers[i].priority <= priority) {
|
|
4570
|
+
break;
|
|
4571
|
+
}
|
|
4572
|
+
}
|
|
4573
|
+
providers.splice(i, 0, {
|
|
4574
|
+
priority,
|
|
4575
|
+
provider,
|
|
4576
|
+
});
|
|
4577
|
+
}
|
|
4578
|
+
function removeProvider(provider) {
|
|
4579
|
+
for (let i = 0; i < providers.length; i++) {
|
|
4580
|
+
if (providers[i].provider === provider) {
|
|
4581
|
+
providers.splice(i, 1);
|
|
4582
|
+
break;
|
|
4583
|
+
}
|
|
4584
|
+
}
|
|
4585
|
+
}
|
|
4586
|
+
function removeAllProviders() {
|
|
4587
|
+
while (providers.length > 0) {
|
|
4588
|
+
providers.pop();
|
|
4589
|
+
}
|
|
4590
|
+
}
|
|
4591
|
+
function getMetaData(type, ...queries) {
|
|
4592
|
+
for (let i = 0; i < providers.length; i++) {
|
|
4593
|
+
const result = providers[i].provider(type, ...queries);
|
|
4594
|
+
if (result !== undefined) {
|
|
4595
|
+
return result;
|
|
4596
|
+
}
|
|
4597
|
+
}
|
|
4598
|
+
}
|
|
4599
|
+
|
|
4600
|
+
|
|
4601
|
+
|
|
3592
4602
|
/***/ }),
|
|
3593
4603
|
|
|
3594
4604
|
/***/ 96506:
|
|
@@ -3618,7 +4628,7 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
|
|
|
3618
4628
|
/* harmony export */ P: () => (/* binding */ RequestPoolManager)
|
|
3619
4629
|
/* harmony export */ });
|
|
3620
4630
|
/* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49334);
|
|
3621
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
4631
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56309);
|
|
3622
4632
|
|
|
3623
4633
|
|
|
3624
4634
|
class RequestPoolManager {
|
|
@@ -4448,6 +5458,13 @@ const CursorSVG = {
|
|
|
4448
5458
|
y: 24,
|
|
4449
5459
|
},
|
|
4450
5460
|
}),
|
|
5461
|
+
Height: extend(BASE, {
|
|
5462
|
+
iconContent: `<path d="m 6 22 l 8.5 0 v -16 h 8" stroke-width="3" fill="none" stroke="{{color}}" />`,
|
|
5463
|
+
viewBox: {
|
|
5464
|
+
x: 24,
|
|
5465
|
+
y: 24,
|
|
5466
|
+
},
|
|
5467
|
+
}),
|
|
4451
5468
|
Probe: extend(BASE, {
|
|
4452
5469
|
iconContent: `<path fill="{{color}}" d="M1152 896q0 106-75 181t-181 75-181-75-75-181 75-181 181-75 181 75
|
|
4453
5470
|
75 181zm-256-544q-148 0-273 73t-198 198-73 273 73 273 198 198 273 73 273-73
|
|
@@ -4678,7 +5695,7 @@ const svgCursorNames = Object.keys(CursorSVG);
|
|
|
4678
5695
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33232);
|
|
4679
5696
|
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69562);
|
|
4680
5697
|
/* harmony import */ var _synchronizers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(93423);
|
|
4681
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
5698
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25876);
|
|
4682
5699
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(42975);
|
|
4683
5700
|
/* harmony import */ var _cursors__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60020);
|
|
4684
5701
|
/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(35106);
|
|
@@ -4751,7 +5768,7 @@ const svgCursorNames = Object.keys(CursorSVG);
|
|
|
4751
5768
|
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
|
|
4752
5769
|
|
|
4753
5770
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72076);
|
|
4754
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
5771
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12651);
|
|
4755
5772
|
/* harmony import */ var _utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39661);
|
|
4756
5773
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42975);
|
|
4757
5774
|
/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(93382);
|
|
@@ -4760,7 +5777,7 @@ const svgCursorNames = Object.keys(CursorSVG);
|
|
|
4760
5777
|
/* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11163);
|
|
4761
5778
|
/* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(41836);
|
|
4762
5779
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(36705);
|
|
4763
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
|
|
5780
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(25876);
|
|
4764
5781
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(33232);
|
|
4765
5782
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(68096);
|
|
4766
5783
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(46966);
|
|
@@ -5508,7 +6525,7 @@ BidirectionalTool.toolName = 'Bidirectional';
|
|
|
5508
6525
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5509
6526
|
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
5510
6527
|
/* harmony export */ });
|
|
5511
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
6528
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
5512
6529
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72076);
|
|
5513
6530
|
/* harmony import */ var _AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92622);
|
|
5514
6531
|
/* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11163);
|
|
@@ -5755,7 +6772,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
5755
6772
|
xX: () => (/* reexport */ SegmentationDisplayTool/* default */.Z)
|
|
5756
6773
|
});
|
|
5757
6774
|
|
|
5758
|
-
// UNUSED EXPORTS: AngleTool, AnnotationDisplayTool, ArrowAnnotateTool, BaseTool, BidirectionalTool, BrushTool, CircleROIStartEndThresholdTool, CircleROITool, CircleScissorsTool, CobbAngleTool, CrosshairsTool, DragProbeTool, EllipticalROITool, EraserTool, KeyImageTool, LengthTool, LivewireContourSegmentationTool, LivewireContourTool, MIPJumpToClickTool, MagnifyTool, OrientationMarkerTool, OverlayGridTool, PaintFillTool, PanTool, PlanarRotateTool, ProbeTool, RectangleROIStartEndThresholdTool, RectangleROIThresholdTool, RectangleROITool, RectangleScissorsTool, ReferenceCursors, ReferenceLines, ReferenceLinesTool, ScaleOverlayTool, SculptorTool, SegmentSelectTool, SegmentationIntersectionTool, SphereScissorsTool, SplineContourSegmentationTool, SplineROITool, StackScrollMouseWheelTool, StackScrollTool, TrackballRotateTool, UltrasoundDirectionalTool, VolumeRotateMouseWheelTool, WindowLevelRegionTool, WindowLevelTool, ZoomTool
|
|
6775
|
+
// UNUSED EXPORTS: AngleTool, AnnotationDisplayTool, ArrowAnnotateTool, BaseTool, BidirectionalTool, BrushTool, CircleROIStartEndThresholdTool, CircleROITool, CircleScissorsTool, CobbAngleTool, CrosshairsTool, DragProbeTool, EllipticalROITool, EraserTool, HeightTool, KeyImageTool, LengthTool, LivewireContourSegmentationTool, LivewireContourTool, MIPJumpToClickTool, MagnifyTool, OrientationMarkerTool, OverlayGridTool, PaintFillTool, PanTool, PlanarRotateTool, ProbeTool, RectangleROIStartEndThresholdTool, RectangleROIThresholdTool, RectangleROITool, RectangleScissorsTool, ReferenceCursors, ReferenceLines, ReferenceLinesTool, ScaleOverlayTool, SculptorTool, SegmentSelectTool, SegmentationIntersectionTool, SphereScissorsTool, SplineContourSegmentationTool, SplineROITool, StackScrollMouseWheelTool, StackScrollTool, TrackballRotateTool, UltrasoundDirectionalTool, VolumeRotateMouseWheelTool, WindowLevelRegionTool, WindowLevelTool, ZoomTool
|
|
5759
6776
|
|
|
5760
6777
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/base/index.js
|
|
5761
6778
|
var base = __webpack_require__(93382);
|
|
@@ -5801,6 +6818,8 @@ var SculptorTool = __webpack_require__(86684);
|
|
|
5801
6818
|
var BidirectionalTool = __webpack_require__(56611);
|
|
5802
6819
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/annotation/LengthTool.js
|
|
5803
6820
|
var LengthTool = __webpack_require__(3098);
|
|
6821
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/annotation/HeightTool.js
|
|
6822
|
+
var HeightTool = __webpack_require__(76131);
|
|
5804
6823
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/annotation/ProbeTool.js
|
|
5805
6824
|
var ProbeTool = __webpack_require__(86479);
|
|
5806
6825
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/annotation/DragProbeTool.js
|
|
@@ -5843,14 +6862,14 @@ var RectangleScissorsTool = __webpack_require__(13354);
|
|
|
5843
6862
|
var CircleScissorsTool = __webpack_require__(30809);
|
|
5844
6863
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/segmentation/SphereScissorsTool.js
|
|
5845
6864
|
var SphereScissorsTool = __webpack_require__(30862);
|
|
5846
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
5847
|
-
var esm = __webpack_require__(
|
|
6865
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
6866
|
+
var esm = __webpack_require__(12651);
|
|
5848
6867
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/index.js
|
|
5849
6868
|
var stateManagement = __webpack_require__(50097);
|
|
5850
6869
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/annotationLocking.js
|
|
5851
6870
|
var annotationLocking = __webpack_require__(11163);
|
|
5852
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/index.js +
|
|
5853
|
-
var drawingSvg = __webpack_require__(
|
|
6871
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/index.js + 19 modules
|
|
6872
|
+
var drawingSvg = __webpack_require__(25876);
|
|
5854
6873
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewportFilters/index.js + 4 modules
|
|
5855
6874
|
var viewportFilters = __webpack_require__(46966);
|
|
5856
6875
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/cursors/elementCursor.js
|
|
@@ -6008,12 +7027,26 @@ class RectangleROIThresholdTool extends RectangleROITool/* default */.Z {
|
|
|
6008
7027
|
RectangleROIThresholdTool.toolName = 'RectangleROIThreshold';
|
|
6009
7028
|
/* harmony default export */ const segmentation_RectangleROIThresholdTool = ((/* unused pure expression or super */ null && (RectangleROIThresholdTool)));
|
|
6010
7029
|
|
|
7030
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/getCalibratedUnits.js
|
|
7031
|
+
var getCalibratedUnits = __webpack_require__(39661);
|
|
6011
7032
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
6012
7033
|
var gl_matrix_esm = __webpack_require__(72076);
|
|
6013
7034
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/throttle.js
|
|
6014
7035
|
var throttle = __webpack_require__(90685);
|
|
7036
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/drawing/index.js + 1 modules
|
|
7037
|
+
var drawing = __webpack_require__(20724);
|
|
7038
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/planar/getWorldWidthAndHeightFromCorners.js
|
|
7039
|
+
var getWorldWidthAndHeightFromCorners = __webpack_require__(88582);
|
|
6015
7040
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/index.js + 1 modules
|
|
6016
7041
|
var utilities = __webpack_require__(42975);
|
|
7042
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/getModalityUnit.js
|
|
7043
|
+
var getModalityUnit = __webpack_require__(15607);
|
|
7044
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewport/isViewportPreScaled.js
|
|
7045
|
+
var isViewportPreScaled = __webpack_require__(20752);
|
|
7046
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/basic/index.js + 2 modules
|
|
7047
|
+
var basic = __webpack_require__(51053);
|
|
7048
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/planar/index.js
|
|
7049
|
+
var planar = __webpack_require__(44037);
|
|
6017
7050
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js
|
|
6018
7051
|
|
|
6019
7052
|
|
|
@@ -6028,6 +7061,13 @@ var utilities = __webpack_require__(42975);
|
|
|
6028
7061
|
|
|
6029
7062
|
|
|
6030
7063
|
|
|
7064
|
+
|
|
7065
|
+
|
|
7066
|
+
|
|
7067
|
+
|
|
7068
|
+
|
|
7069
|
+
|
|
7070
|
+
|
|
6031
7071
|
|
|
6032
7072
|
const { transformWorldToIndex } = esm.utilities;
|
|
6033
7073
|
class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z {
|
|
@@ -6035,6 +7075,9 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6035
7075
|
configuration: {
|
|
6036
7076
|
numSlicesToPropagate: 10,
|
|
6037
7077
|
computePointsInsideVolume: false,
|
|
7078
|
+
getTextLines: defaultGetTextLines,
|
|
7079
|
+
statsCalculator: basic.BasicStatsCalculator,
|
|
7080
|
+
showTextBox: false,
|
|
6038
7081
|
},
|
|
6039
7082
|
}) {
|
|
6040
7083
|
super(toolProps, defaultToolProps);
|
|
@@ -6057,12 +7100,9 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6057
7100
|
imageVolume = esm.cache.getVolume(volumeId);
|
|
6058
7101
|
referencedImageId = esm.utilities.getClosestImageId(imageVolume, worldPos, viewPlaneNormal);
|
|
6059
7102
|
}
|
|
6060
|
-
if (!referencedImageId) {
|
|
6061
|
-
throw new Error('This tool does not work on non-acquisition planes');
|
|
6062
|
-
}
|
|
6063
|
-
const startIndex = viewport.getCurrentImageIdIndex();
|
|
6064
7103
|
const spacingInNormal = esm.utilities.getSpacingInNormalDirection(imageVolume, viewPlaneNormal);
|
|
6065
|
-
const
|
|
7104
|
+
const startCoord = this._getStartCoordinate(worldPos, viewPlaneNormal);
|
|
7105
|
+
const endCoord = this._getEndCoordinate(worldPos, spacingInNormal, viewPlaneNormal);
|
|
6066
7106
|
const FrameOfReferenceUID = viewport.getFrameOfReferenceUID();
|
|
6067
7107
|
const annotation = {
|
|
6068
7108
|
highlighted: true,
|
|
@@ -6079,18 +7119,24 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6079
7119
|
},
|
|
6080
7120
|
data: {
|
|
6081
7121
|
label: '',
|
|
6082
|
-
|
|
6083
|
-
|
|
7122
|
+
startCoordinate: startCoord,
|
|
7123
|
+
endCoordinate: endCoord,
|
|
6084
7124
|
cachedStats: {
|
|
6085
7125
|
pointsInVolume: [],
|
|
6086
7126
|
projectionPoints: [],
|
|
6087
7127
|
projectionPointsImageIds: [referencedImageId],
|
|
7128
|
+
statistics: [],
|
|
6088
7129
|
},
|
|
6089
7130
|
handles: {
|
|
6090
7131
|
textBox: {
|
|
6091
7132
|
hasMoved: false,
|
|
6092
|
-
worldPosition:
|
|
6093
|
-
worldBoundingBox:
|
|
7133
|
+
worldPosition: [0, 0, 0],
|
|
7134
|
+
worldBoundingBox: {
|
|
7135
|
+
topLeft: [0, 0, 0],
|
|
7136
|
+
topRight: [0, 0, 0],
|
|
7137
|
+
bottomLeft: [0, 0, 0],
|
|
7138
|
+
bottomRight: [0, 0, 0],
|
|
7139
|
+
},
|
|
6094
7140
|
},
|
|
6095
7141
|
points: [
|
|
6096
7142
|
[...worldPos],
|
|
@@ -6141,7 +7187,7 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6141
7187
|
const targetId = this.getTargetId(enabledElement.viewport);
|
|
6142
7188
|
const imageVolume = esm.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
|
|
6143
7189
|
if (this.configuration.calculatePointsInsideVolume) {
|
|
6144
|
-
this._computePointsInsideVolume(annotation, imageVolume, enabledElement);
|
|
7190
|
+
this._computePointsInsideVolume(annotation, targetId, imageVolume, enabledElement);
|
|
6145
7191
|
}
|
|
6146
7192
|
(0,triggerAnnotationRenderForViewportIds/* default */.Z)(enabledElement.renderingEngine, viewportIdsToRender);
|
|
6147
7193
|
if (newAnnotation) {
|
|
@@ -6151,11 +7197,11 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6151
7197
|
this.renderAnnotation = (enabledElement, svgDrawingHelper) => {
|
|
6152
7198
|
let renderStatus = false;
|
|
6153
7199
|
const { viewport } = enabledElement;
|
|
6154
|
-
|
|
7200
|
+
let annotations = (0,stateManagement/* getAnnotations */.fy)(this.getToolName(), viewport.element);
|
|
6155
7201
|
if (!annotations?.length) {
|
|
6156
7202
|
return renderStatus;
|
|
6157
7203
|
}
|
|
6158
|
-
|
|
7204
|
+
annotations = (0,planar.filterAnnotationsWithinSamePlane)(annotations, viewport.getCamera());
|
|
6159
7205
|
const styleSpecifier = {
|
|
6160
7206
|
toolGroupId: this.toolGroupId,
|
|
6161
7207
|
toolName: this.getToolName(),
|
|
@@ -6164,22 +7210,37 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6164
7210
|
for (let i = 0; i < annotations.length; i++) {
|
|
6165
7211
|
const annotation = annotations[i];
|
|
6166
7212
|
const { annotationUID, data } = annotation;
|
|
6167
|
-
const {
|
|
7213
|
+
const { startCoordinate, endCoordinate } = data;
|
|
6168
7214
|
const { points, activeHandleIndex } = data.handles;
|
|
6169
7215
|
const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
|
|
6170
7216
|
styleSpecifier.annotationUID = annotationUID;
|
|
6171
7217
|
const lineWidth = this.getStyle('lineWidth', styleSpecifier, annotation);
|
|
6172
7218
|
const lineDash = this.getStyle('lineDash', styleSpecifier, annotation);
|
|
6173
7219
|
const color = this.getStyle('color', styleSpecifier, annotation);
|
|
6174
|
-
|
|
6175
|
-
|
|
7220
|
+
const focalPoint = viewport.getCamera().focalPoint;
|
|
7221
|
+
const viewplaneNormal = viewport.getCamera().viewPlaneNormal;
|
|
7222
|
+
let startCoord = startCoordinate;
|
|
7223
|
+
let endCoord = endCoordinate;
|
|
7224
|
+
if (Array.isArray(startCoordinate)) {
|
|
7225
|
+
startCoord = this._getCoordinateForViewplaneNormal(startCoord, viewplaneNormal);
|
|
7226
|
+
}
|
|
7227
|
+
if (Array.isArray(endCoordinate)) {
|
|
7228
|
+
endCoord = this._getCoordinateForViewplaneNormal(endCoord, viewplaneNormal);
|
|
7229
|
+
}
|
|
7230
|
+
const roundedStartCoord = esm.utilities.roundToPrecision(startCoord);
|
|
7231
|
+
const roundedEndCoord = esm.utilities.roundToPrecision(endCoord);
|
|
7232
|
+
const coord = this._getCoordinateForViewplaneNormal(focalPoint, viewplaneNormal);
|
|
7233
|
+
const roundedCoord = esm.utilities.roundToPrecision(coord);
|
|
7234
|
+
if (roundedCoord < Math.min(roundedStartCoord, roundedEndCoord) ||
|
|
7235
|
+
roundedCoord > Math.max(roundedStartCoord, roundedEndCoord)) {
|
|
6176
7236
|
continue;
|
|
6177
7237
|
}
|
|
6178
7238
|
if (annotation.invalidated) {
|
|
6179
7239
|
this._throttledCalculateCachedStats(annotation, enabledElement);
|
|
6180
7240
|
}
|
|
6181
7241
|
let firstOrLastSlice = false;
|
|
6182
|
-
if (
|
|
7242
|
+
if (roundedCoord === roundedStartCoord ||
|
|
7243
|
+
roundedCoord === roundedEndCoord) {
|
|
6183
7244
|
firstOrLastSlice = true;
|
|
6184
7245
|
}
|
|
6185
7246
|
if (!viewport.getRenderingEngine()) {
|
|
@@ -6213,6 +7274,42 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6213
7274
|
lineWidth,
|
|
6214
7275
|
});
|
|
6215
7276
|
renderStatus = true;
|
|
7277
|
+
if (this.configuration.showTextBox &&
|
|
7278
|
+
this.configuration.calculatePointsInsideVolume) {
|
|
7279
|
+
const options = this.getLinkedTextBoxStyle(styleSpecifier, annotation);
|
|
7280
|
+
if (!options.visibility) {
|
|
7281
|
+
data.handles.textBox = {
|
|
7282
|
+
hasMoved: false,
|
|
7283
|
+
worldPosition: [0, 0, 0],
|
|
7284
|
+
worldBoundingBox: {
|
|
7285
|
+
topLeft: [0, 0, 0],
|
|
7286
|
+
topRight: [0, 0, 0],
|
|
7287
|
+
bottomLeft: [0, 0, 0],
|
|
7288
|
+
bottomRight: [0, 0, 0],
|
|
7289
|
+
},
|
|
7290
|
+
};
|
|
7291
|
+
continue;
|
|
7292
|
+
}
|
|
7293
|
+
const textLines = this.configuration.getTextLines(data);
|
|
7294
|
+
if (!textLines || textLines.length === 0) {
|
|
7295
|
+
continue;
|
|
7296
|
+
}
|
|
7297
|
+
if (!data.handles.textBox.hasMoved) {
|
|
7298
|
+
const canvasTextBoxCoords = (0,drawing.getTextBoxCoordsCanvas)(canvasCoordinates);
|
|
7299
|
+
data.handles.textBox.worldPosition =
|
|
7300
|
+
viewport.canvasToWorld(canvasTextBoxCoords);
|
|
7301
|
+
}
|
|
7302
|
+
const textBoxPosition = viewport.worldToCanvas(data.handles.textBox.worldPosition);
|
|
7303
|
+
const textBoxUID = '1';
|
|
7304
|
+
const boundingBox = (0,drawingSvg.drawLinkedTextBox)(svgDrawingHelper, annotationUID, textBoxUID, textLines, textBoxPosition, canvasCoordinates, {}, options);
|
|
7305
|
+
const { x: left, y: top, width, height } = boundingBox;
|
|
7306
|
+
data.handles.textBox.worldBoundingBox = {
|
|
7307
|
+
topLeft: viewport.canvasToWorld([left, top]),
|
|
7308
|
+
topRight: viewport.canvasToWorld([left + width, top]),
|
|
7309
|
+
bottomLeft: viewport.canvasToWorld([left, top + height]),
|
|
7310
|
+
bottomRight: viewport.canvasToWorld([left + width, top + height]),
|
|
7311
|
+
};
|
|
7312
|
+
}
|
|
6216
7313
|
}
|
|
6217
7314
|
return renderStatus;
|
|
6218
7315
|
};
|
|
@@ -6222,17 +7319,26 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6222
7319
|
const { data, metadata } = annotation;
|
|
6223
7320
|
const { viewPlaneNormal, spacingInNormal } = metadata;
|
|
6224
7321
|
const { imageData } = imageVolume;
|
|
6225
|
-
const {
|
|
7322
|
+
const { startCoordinate, endCoordinate } = data;
|
|
6226
7323
|
const { points } = data.handles;
|
|
6227
7324
|
const startIJK = transformWorldToIndex(imageData, points[0]);
|
|
6228
|
-
|
|
6229
|
-
throw new Error('Start slice does not match');
|
|
6230
|
-
}
|
|
6231
|
-
const endIJK = gl_matrix_esm/* vec3.fromValues */.R3.fromValues(startIJK[0], startIJK[1], endSlice);
|
|
7325
|
+
const endIJK = transformWorldToIndex(imageData, points[0]);
|
|
6232
7326
|
const startWorld = gl_matrix_esm/* vec3.create */.R3.create();
|
|
6233
7327
|
imageData.indexToWorldVec3(startIJK, startWorld);
|
|
6234
7328
|
const endWorld = gl_matrix_esm/* vec3.create */.R3.create();
|
|
6235
7329
|
imageData.indexToWorldVec3(endIJK, endWorld);
|
|
7330
|
+
if (this._getIndexOfCoordinatesForViewplaneNormal(viewPlaneNormal) == 2) {
|
|
7331
|
+
startWorld[2] = startCoordinate;
|
|
7332
|
+
endWorld[2] = endCoordinate;
|
|
7333
|
+
}
|
|
7334
|
+
else if (this._getIndexOfCoordinatesForViewplaneNormal(viewPlaneNormal) == 0) {
|
|
7335
|
+
startWorld[0] = startCoordinate;
|
|
7336
|
+
endWorld[0] = endCoordinate;
|
|
7337
|
+
}
|
|
7338
|
+
else if (this._getIndexOfCoordinatesForViewplaneNormal(viewPlaneNormal) == 1) {
|
|
7339
|
+
startWorld[1] = startCoordinate;
|
|
7340
|
+
endWorld[1] = endCoordinate;
|
|
7341
|
+
}
|
|
6236
7342
|
const distance = gl_matrix_esm/* vec3.distance */.R3.distance(startWorld, endWorld);
|
|
6237
7343
|
const newProjectionPoints = [];
|
|
6238
7344
|
for (let dist = 0; dist < distance; dist += spacingInNormal) {
|
|
@@ -6243,34 +7349,45 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6243
7349
|
}));
|
|
6244
7350
|
}
|
|
6245
7351
|
data.cachedStats.projectionPoints = newProjectionPoints;
|
|
6246
|
-
const projectionPointsImageIds = [];
|
|
6247
|
-
for (const RectanglePoints of newProjectionPoints) {
|
|
6248
|
-
const imageId = esm.utilities.getClosestImageId(imageVolume, RectanglePoints[0], viewPlaneNormal);
|
|
6249
|
-
projectionPointsImageIds.push(imageId);
|
|
6250
|
-
}
|
|
6251
|
-
data.cachedStats.projectionPointsImageIds = projectionPointsImageIds;
|
|
6252
7352
|
}
|
|
6253
|
-
_computePointsInsideVolume(annotation, imageVolume, enabledElement) {
|
|
6254
|
-
const { data } = annotation;
|
|
7353
|
+
_computePointsInsideVolume(annotation, targetId, imageVolume, enabledElement) {
|
|
7354
|
+
const { data, metadata } = annotation;
|
|
7355
|
+
const { viewPlaneNormal, viewUp } = metadata;
|
|
7356
|
+
const { viewport, renderingEngine } = enabledElement;
|
|
6255
7357
|
const projectionPoints = data.cachedStats.projectionPoints;
|
|
6256
7358
|
const pointsInsideVolume = [[]];
|
|
7359
|
+
const image = this.getTargetIdImage(targetId, renderingEngine);
|
|
7360
|
+
const worldPos1 = data.handles.points[0];
|
|
7361
|
+
const worldPos2 = data.handles.points[3];
|
|
7362
|
+
const { worldWidth, worldHeight } = (0,getWorldWidthAndHeightFromCorners/* default */.Z)(viewPlaneNormal, viewUp, worldPos1, worldPos2);
|
|
7363
|
+
const measureInfo = (0,getCalibratedUnits/* getCalibratedLengthUnitsAndScale */.mh)(image, data.habdles);
|
|
7364
|
+
const area = Math.abs(worldWidth * worldHeight) /
|
|
7365
|
+
(measureInfo.scale * measureInfo.scale);
|
|
7366
|
+
const modalityUnitOptions = {
|
|
7367
|
+
isPreScaled: (0,isViewportPreScaled/* isViewportPreScaled */.P)(viewport, targetId),
|
|
7368
|
+
isSuvScaled: this.isSuvScaled(viewport, targetId, annotation.metadata.referencedImageId),
|
|
7369
|
+
};
|
|
7370
|
+
const modalityUnit = (0,getModalityUnit/* getModalityUnit */.F)(metadata.Modality, annotation.metadata.referencedImageId, modalityUnitOptions);
|
|
6257
7371
|
for (let i = 0; i < projectionPoints.length; i++) {
|
|
6258
7372
|
if (!imageVolume) {
|
|
6259
7373
|
continue;
|
|
6260
7374
|
}
|
|
6261
7375
|
const projectionPoint = projectionPoints[i][0];
|
|
6262
|
-
const worldPos1 = data.handles.points[0];
|
|
6263
|
-
const worldPos2 = data.handles.points[3];
|
|
6264
7376
|
const { dimensions, imageData } = imageVolume;
|
|
6265
7377
|
const worldPos1Index = transformWorldToIndex(imageData, worldPos1);
|
|
6266
7378
|
const worldProjectionPointIndex = transformWorldToIndex(imageData, projectionPoint);
|
|
7379
|
+
const indexOfProjection = this._getIndexOfCoordinatesForViewplaneNormal(viewPlaneNormal);
|
|
6267
7380
|
worldPos1Index[0] = Math.floor(worldPos1Index[0]);
|
|
6268
7381
|
worldPos1Index[1] = Math.floor(worldPos1Index[1]);
|
|
6269
|
-
worldPos1Index[2] = Math.floor(
|
|
7382
|
+
worldPos1Index[2] = Math.floor(worldPos1Index[2]);
|
|
7383
|
+
worldPos1Index[indexOfProjection] =
|
|
7384
|
+
worldProjectionPointIndex[indexOfProjection];
|
|
6270
7385
|
const worldPos2Index = transformWorldToIndex(imageData, worldPos2);
|
|
6271
7386
|
worldPos2Index[0] = Math.floor(worldPos2Index[0]);
|
|
6272
7387
|
worldPos2Index[1] = Math.floor(worldPos2Index[1]);
|
|
6273
|
-
worldPos2Index[2] = Math.floor(
|
|
7388
|
+
worldPos2Index[2] = Math.floor(worldPos2Index[2]);
|
|
7389
|
+
worldPos2Index[indexOfProjection] =
|
|
7390
|
+
worldProjectionPointIndex[indexOfProjection];
|
|
6274
7391
|
if (this._isInsideVolume(worldPos1Index, worldPos2Index, dimensions)) {
|
|
6275
7392
|
this.isHandleOutsideImage = false;
|
|
6276
7393
|
const iMin = Math.min(worldPos1Index[0], worldPos2Index[0]);
|
|
@@ -6284,11 +7401,22 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6284
7401
|
[jMin, jMax],
|
|
6285
7402
|
[kMin, kMax],
|
|
6286
7403
|
];
|
|
6287
|
-
const pointsInShape = (0,utilities.pointInShapeCallback)(imageData, () => true,
|
|
7404
|
+
const pointsInShape = (0,utilities.pointInShapeCallback)(imageData, () => true, this.configuration.statsCalculator.statsCallback, boundsIJK);
|
|
6288
7405
|
pointsInsideVolume.push(pointsInShape);
|
|
6289
7406
|
}
|
|
6290
7407
|
}
|
|
7408
|
+
const stats = this.configuration.statsCalculator.getStatistics();
|
|
6291
7409
|
data.cachedStats.pointsInVolume = pointsInsideVolume;
|
|
7410
|
+
data.cachedStats.statistics = {
|
|
7411
|
+
Modality: metadata.Modality,
|
|
7412
|
+
area,
|
|
7413
|
+
mean: stats.mean?.value,
|
|
7414
|
+
stdDev: stats.stdDev?.value,
|
|
7415
|
+
max: stats.max?.value,
|
|
7416
|
+
statsArray: stats.array,
|
|
7417
|
+
areaUnit: measureInfo.areaUnits,
|
|
7418
|
+
modalityUnit,
|
|
7419
|
+
};
|
|
6292
7420
|
}
|
|
6293
7421
|
_calculateCachedStatsTool(annotation, enabledElement) {
|
|
6294
7422
|
const data = annotation.data;
|
|
@@ -6301,25 +7429,44 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
|
|
|
6301
7429
|
(0,state/* triggerAnnotationModified */.hg)(annotation, viewport.element);
|
|
6302
7430
|
return cachedStats;
|
|
6303
7431
|
}
|
|
6304
|
-
|
|
7432
|
+
_getStartCoordinate(worldPos, viewPlaneNormal) {
|
|
7433
|
+
const startPos = worldPos;
|
|
7434
|
+
const startCoord = this._getCoordinateForViewplaneNormal(startPos, viewPlaneNormal);
|
|
7435
|
+
return startCoord;
|
|
7436
|
+
}
|
|
7437
|
+
_getEndCoordinate(worldPos, spacingInNormal, viewPlaneNormal) {
|
|
6305
7438
|
const numSlicesToPropagate = this.configuration.numSlicesToPropagate;
|
|
6306
7439
|
const endPos = gl_matrix_esm/* vec3.create */.R3.create();
|
|
6307
7440
|
gl_matrix_esm/* vec3.scaleAndAdd */.R3.scaleAndAdd(endPos, worldPos, viewPlaneNormal, numSlicesToPropagate * spacingInNormal);
|
|
6308
|
-
const
|
|
6309
|
-
|
|
6310
|
-
|
|
6311
|
-
|
|
6312
|
-
|
|
6313
|
-
|
|
6314
|
-
|
|
6315
|
-
|
|
6316
|
-
|
|
6317
|
-
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
7441
|
+
const endCoord = this._getCoordinateForViewplaneNormal(endPos, viewPlaneNormal);
|
|
7442
|
+
return endCoord;
|
|
7443
|
+
}
|
|
7444
|
+
_getIndexOfCoordinatesForViewplaneNormal(viewPlaneNormal) {
|
|
7445
|
+
const viewplaneNormalAbs = [
|
|
7446
|
+
Math.abs(viewPlaneNormal[0]),
|
|
7447
|
+
Math.abs(viewPlaneNormal[1]),
|
|
7448
|
+
Math.abs(viewPlaneNormal[2]),
|
|
7449
|
+
];
|
|
7450
|
+
const indexOfDirection = viewplaneNormalAbs.indexOf(Math.max(...viewplaneNormalAbs));
|
|
7451
|
+
return indexOfDirection;
|
|
7452
|
+
}
|
|
7453
|
+
_getCoordinateForViewplaneNormal(pos, viewPlaneNormal) {
|
|
7454
|
+
const indexOfDirection = this._getIndexOfCoordinatesForViewplaneNormal(viewPlaneNormal);
|
|
7455
|
+
return pos[indexOfDirection];
|
|
7456
|
+
}
|
|
7457
|
+
}
|
|
7458
|
+
function defaultGetTextLines(data) {
|
|
7459
|
+
const cachedVolumeStats = data.cachedStats.statistics;
|
|
7460
|
+
const { area, mean, max, stdDev, areaUnit, modalityUnit } = cachedVolumeStats;
|
|
7461
|
+
if (mean === undefined) {
|
|
7462
|
+
return;
|
|
6322
7463
|
}
|
|
7464
|
+
const textLines = [];
|
|
7465
|
+
textLines.push(`Area: ${(0,utilities.roundNumber)(area)} ${areaUnit}`);
|
|
7466
|
+
textLines.push(`Mean: ${(0,utilities.roundNumber)(mean)} ${modalityUnit}`);
|
|
7467
|
+
textLines.push(`Max: ${(0,utilities.roundNumber)(max)} ${modalityUnit}`);
|
|
7468
|
+
textLines.push(`Std Dev: ${(0,utilities.roundNumber)(stdDev)} ${modalityUnit}`);
|
|
7469
|
+
return textLines;
|
|
6323
7470
|
}
|
|
6324
7471
|
RectangleROIStartEndThresholdTool.toolName = 'RectangleROIStartEndThreshold';
|
|
6325
7472
|
/* harmony default export */ const segmentation_RectangleROIStartEndThresholdTool = ((/* unused pure expression or super */ null && (RectangleROIStartEndThresholdTool)));
|
|
@@ -6387,6 +7534,7 @@ var SegmentSelectTool = __webpack_require__(45986);
|
|
|
6387
7534
|
|
|
6388
7535
|
|
|
6389
7536
|
|
|
7537
|
+
|
|
6390
7538
|
|
|
6391
7539
|
|
|
6392
7540
|
/***/ }),
|
|
@@ -6395,7 +7543,7 @@ var SegmentSelectTool = __webpack_require__(45986);
|
|
|
6395
7543
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6396
7544
|
|
|
6397
7545
|
/* unused harmony export default */
|
|
6398
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
7546
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
6399
7547
|
/* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34539);
|
|
6400
7548
|
|
|
6401
7549
|
|
|
@@ -6450,7 +7598,7 @@ class AnnotationFrameRange {
|
|
|
6450
7598
|
/* harmony export */ B: () => (/* binding */ getClosestImageIdForStackViewport)
|
|
6451
7599
|
/* harmony export */ });
|
|
6452
7600
|
/* unused harmony export annotationHydration */
|
|
6453
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
7601
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
6454
7602
|
/* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50097);
|
|
6455
7603
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72076);
|
|
6456
7604
|
|
|
@@ -6563,7 +7711,7 @@ function extend2DBoundingBoxInViewAxis(boundsIJK, numSlicesToProject) {
|
|
|
6563
7711
|
/* harmony export */ g: () => (/* binding */ getBoundingBoxAroundShapeIJK),
|
|
6564
7712
|
/* harmony export */ o: () => (/* binding */ getBoundingBoxAroundShapeWorld)
|
|
6565
7713
|
/* harmony export */ });
|
|
6566
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
7714
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
6567
7715
|
|
|
6568
7716
|
const { EPSILON } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.CONSTANTS;
|
|
6569
7717
|
function calculateBoundingBox(points, dimensions, isWorld = false) {
|
|
@@ -6643,7 +7791,7 @@ function getBoundingBoxAroundShapeWorld(points, clipBounds) {
|
|
|
6643
7791
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6644
7792
|
|
|
6645
7793
|
/* unused harmony export default */
|
|
6646
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
7794
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
6647
7795
|
|
|
6648
7796
|
const { calibratedPixelSpacingMetadataProvider } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities;
|
|
6649
7797
|
function calibrateImageSpacing(imageId, renderingEngine, calibrationOrScale) {
|
|
@@ -6674,8 +7822,8 @@ function calibrateImageSpacing(imageId, renderingEngine, calibrationOrScale) {
|
|
|
6674
7822
|
|
|
6675
7823
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
6676
7824
|
var esm = __webpack_require__(72076);
|
|
6677
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
6678
|
-
var dist_esm = __webpack_require__(
|
|
7825
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
7826
|
+
var dist_esm = __webpack_require__(12651);
|
|
6679
7827
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/cine/events.js
|
|
6680
7828
|
var Events;
|
|
6681
7829
|
(function (Events) {
|
|
@@ -6793,13 +7941,24 @@ function playClip(element, playClipOptions) {
|
|
|
6793
7941
|
}
|
|
6794
7942
|
const delta = newStepIndex - currentStepIndex;
|
|
6795
7943
|
if (delta) {
|
|
6796
|
-
|
|
7944
|
+
try {
|
|
7945
|
+
playClipContext.scroll(delta);
|
|
7946
|
+
}
|
|
7947
|
+
catch (e) {
|
|
7948
|
+
console.warn('Play clip not scrolling', e);
|
|
7949
|
+
_stopClipWithData(playClipData);
|
|
7950
|
+
triggerEvent(element, CINE_EVENTS.CLIP_STOPPED, eventDetail);
|
|
7951
|
+
return;
|
|
7952
|
+
}
|
|
6797
7953
|
}
|
|
6798
7954
|
};
|
|
6799
7955
|
if (isDynamicCinePlaying) {
|
|
6800
7956
|
dynamicVolumesPlayingMap.set(volume.volumeId, element);
|
|
6801
7957
|
}
|
|
6802
|
-
if (
|
|
7958
|
+
if (playClipContext.play) {
|
|
7959
|
+
playClipData.framesPerSecond = playClipContext.play(playClipOptions.framesPerSecond);
|
|
7960
|
+
}
|
|
7961
|
+
else if (playClipTimeouts &&
|
|
6803
7962
|
playClipTimeouts.length > 0 &&
|
|
6804
7963
|
playClipIsTimeVarying) {
|
|
6805
7964
|
playClipData.usingFrameTimeVector = true;
|
|
@@ -6827,6 +7986,7 @@ function _stopClip(element, options = { stopDynamicCine: true, viewportId: undef
|
|
|
6827
7986
|
const { stopDynamicCine, viewportId } = options;
|
|
6828
7987
|
const enabledElement = getEnabledElement(element);
|
|
6829
7988
|
let toolState;
|
|
7989
|
+
const viewport = enabledElement?.viewport;
|
|
6830
7990
|
if (!enabledElement) {
|
|
6831
7991
|
if (viewportId) {
|
|
6832
7992
|
toolState = getToolStateByViewportId(viewportId);
|
|
@@ -6842,8 +8002,10 @@ function _stopClip(element, options = { stopDynamicCine: true, viewportId: undef
|
|
|
6842
8002
|
if (toolState) {
|
|
6843
8003
|
_stopClipWithData(toolState);
|
|
6844
8004
|
}
|
|
6845
|
-
if (
|
|
6846
|
-
|
|
8005
|
+
if (viewport instanceof VideoViewport) {
|
|
8006
|
+
viewport.pause();
|
|
8007
|
+
}
|
|
8008
|
+
else if (stopDynamicCine && viewport instanceof BaseVolumeViewport) {
|
|
6847
8009
|
_stopDynamicVolumeCine(element);
|
|
6848
8010
|
}
|
|
6849
8011
|
}
|
|
@@ -6938,6 +8100,36 @@ function _createStackViewportCinePlayContext(viewport, waitForRendered) {
|
|
|
6938
8100
|
},
|
|
6939
8101
|
};
|
|
6940
8102
|
}
|
|
8103
|
+
function _createVideoViewportCinePlayContext(viewport, waitForRendered) {
|
|
8104
|
+
return {
|
|
8105
|
+
get numScrollSteps() {
|
|
8106
|
+
return viewport.getNumberOfSlices();
|
|
8107
|
+
},
|
|
8108
|
+
get currentStepIndex() {
|
|
8109
|
+
return viewport.getSliceIndex();
|
|
8110
|
+
},
|
|
8111
|
+
get frameTimeVectorEnabled() {
|
|
8112
|
+
return true;
|
|
8113
|
+
},
|
|
8114
|
+
waitForRenderedCount: 0,
|
|
8115
|
+
scroll(delta) {
|
|
8116
|
+
if (this.waitForRenderedCount <= waitForRendered &&
|
|
8117
|
+
viewport.viewportStatus !== ViewportStatus.RENDERED) {
|
|
8118
|
+
this.waitForRenderedCount++;
|
|
8119
|
+
return;
|
|
8120
|
+
}
|
|
8121
|
+
this.waitForRenderedCount = 0;
|
|
8122
|
+
scroll(viewport, { delta, debounceLoading: debounced });
|
|
8123
|
+
},
|
|
8124
|
+
play(fps) {
|
|
8125
|
+
if (fps) {
|
|
8126
|
+
viewport.setPlaybackRate(fps / 24);
|
|
8127
|
+
}
|
|
8128
|
+
viewport.play();
|
|
8129
|
+
return viewport.getFrameRate();
|
|
8130
|
+
},
|
|
8131
|
+
};
|
|
8132
|
+
}
|
|
6941
8133
|
function _createVolumeViewportCinePlayContext(viewport, volume) {
|
|
6942
8134
|
const { volumeId } = volume;
|
|
6943
8135
|
const cachedScrollInfo = {
|
|
@@ -7003,6 +8195,9 @@ function _createCinePlayContext(viewport, playClipOptions) {
|
|
|
7003
8195
|
}
|
|
7004
8196
|
return _createVolumeViewportCinePlayContext(viewport, volume);
|
|
7005
8197
|
}
|
|
8198
|
+
if (viewport instanceof VideoViewport) {
|
|
8199
|
+
return _createVideoViewportCinePlayContext(viewport, playClipOptions.waitForRendered ?? 30);
|
|
8200
|
+
}
|
|
7006
8201
|
throw new Error('Unknown viewport type');
|
|
7007
8202
|
}
|
|
7008
8203
|
|
|
@@ -7171,7 +8366,7 @@ function calculatePerimeter(polyline, closed) {
|
|
|
7171
8366
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
7172
8367
|
/* harmony export */ Z: () => (/* binding */ findHandlePolylineIndex)
|
|
7173
8368
|
/* harmony export */ });
|
|
7174
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
8369
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
7175
8370
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72076);
|
|
7176
8371
|
|
|
7177
8372
|
|
|
@@ -7425,8 +8620,8 @@ function processContourHoles(contours, points, useXOR = true) {
|
|
|
7425
8620
|
}
|
|
7426
8621
|
/* harmony default export */ const detectContourHoles = ({ processContourHoles });
|
|
7427
8622
|
|
|
7428
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
7429
|
-
var dist_esm = __webpack_require__(
|
|
8623
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
8624
|
+
var dist_esm = __webpack_require__(12651);
|
|
7430
8625
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Filters/General/ImageMarchingSquares.js
|
|
7431
8626
|
var ImageMarchingSquares = __webpack_require__(60318);
|
|
7432
8627
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/Core/DataArray.js
|
|
@@ -7667,7 +8862,7 @@ var calculatePerimeter = __webpack_require__(3042);
|
|
|
7667
8862
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
7668
8863
|
/* harmony export */ Z: () => (/* binding */ updateContourPolyline)
|
|
7669
8864
|
/* harmony export */ });
|
|
7670
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
8865
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
7671
8866
|
/* harmony import */ var _math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79390);
|
|
7672
8867
|
/* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50097);
|
|
7673
8868
|
|
|
@@ -7894,8 +9089,8 @@ function _determineCorners(canvasPoints) {
|
|
|
7894
9089
|
|
|
7895
9090
|
// UNUSED EXPORTS: generateImageFromTimeData, getDataInTime
|
|
7896
9091
|
|
|
7897
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
7898
|
-
var esm = __webpack_require__(
|
|
9092
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
9093
|
+
var esm = __webpack_require__(12651);
|
|
7899
9094
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/segmentation/utilities.js
|
|
7900
9095
|
var segmentation_utilities = __webpack_require__(89776);
|
|
7901
9096
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/pointInShapeCallback.js
|
|
@@ -8068,7 +9263,7 @@ function generateImageFromTimeData(dynamicVolume, operation, frameNumbers) {
|
|
|
8068
9263
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
8069
9264
|
|
|
8070
9265
|
/* unused harmony exports getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement */
|
|
8071
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
9266
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
8072
9267
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86614);
|
|
8073
9268
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27078);
|
|
8074
9269
|
|
|
@@ -8129,7 +9324,7 @@ function findAnnotationNearPointByTool(tool, enabledElement, point, proximity) {
|
|
|
8129
9324
|
/* harmony export */ Sh: () => (/* binding */ getCalibratedProbeUnitsAndValue),
|
|
8130
9325
|
/* harmony export */ mh: () => (/* binding */ getCalibratedLengthUnitsAndScale)
|
|
8131
9326
|
/* harmony export */ });
|
|
8132
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
9327
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
8133
9328
|
|
|
8134
9329
|
const { CalibrationTypes } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.Enums;
|
|
8135
9330
|
const PIXEL_UNITS = 'px';
|
|
@@ -8143,8 +9338,17 @@ const SUPPORTED_PROBE_VARIANT = [
|
|
|
8143
9338
|
'4,3',
|
|
8144
9339
|
];
|
|
8145
9340
|
const UNIT_MAPPING = {
|
|
9341
|
+
0: 'px',
|
|
9342
|
+
1: 'percent',
|
|
9343
|
+
2: 'dB',
|
|
8146
9344
|
3: 'cm',
|
|
8147
9345
|
4: 'seconds',
|
|
9346
|
+
5: 'hertz',
|
|
9347
|
+
6: 'dB/seconds',
|
|
9348
|
+
7: 'cm/sec',
|
|
9349
|
+
8: 'cm\xb2',
|
|
9350
|
+
9: 'cm\xb2/s',
|
|
9351
|
+
0xc: 'degrees',
|
|
8148
9352
|
};
|
|
8149
9353
|
const EPS = 1e-3;
|
|
8150
9354
|
const SQUARE = '\xb2';
|
|
@@ -8192,10 +9396,10 @@ const getCalibratedLengthUnitsAndScale = (image, handles) => {
|
|
|
8192
9396
|
const physicalDeltaY = Math.abs(region.physicalDeltaY);
|
|
8193
9397
|
const isSamePhysicalDelta = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.isEqual(physicalDeltaX, physicalDeltaY, EPS);
|
|
8194
9398
|
if (isSamePhysicalDelta) {
|
|
8195
|
-
scale = 1 /
|
|
9399
|
+
scale = 1 / physicalDeltaX;
|
|
8196
9400
|
calibrationType = 'US Region';
|
|
8197
|
-
units = '
|
|
8198
|
-
areaUnits =
|
|
9401
|
+
units = UNIT_MAPPING[region.physicalUnitsXDirection] || 'unknown';
|
|
9402
|
+
areaUnits = units + SQUARE;
|
|
8199
9403
|
}
|
|
8200
9404
|
else {
|
|
8201
9405
|
return { units: PIXEL_UNITS, areaUnits: PIXEL_UNITS + SQUARE, scale };
|
|
@@ -8273,7 +9477,7 @@ const getCalibratedAspect = (image) => image.calibration?.aspect || 1;
|
|
|
8273
9477
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8274
9478
|
/* harmony export */ v: () => (/* binding */ getSphereBoundsInfo)
|
|
8275
9479
|
/* harmony export */ });
|
|
8276
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
9480
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
8277
9481
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72076);
|
|
8278
9482
|
/* harmony import */ var _boundingBox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(87758);
|
|
8279
9483
|
|
|
@@ -8359,8 +9563,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
8359
9563
|
|
|
8360
9564
|
// UNUSED EXPORTS: annotationFrameRange, annotationHydration, boundingBox, calibrateImageSpacing, cine, contourSegmentation, contours, drawing, dynamicVolume, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, getCalibratedAspect, getCalibratedProbeUnitsAndValue, getClosestImageIdForStackViewport, getSphereBoundsInfo, getViewportForAnnotation, isObject, jumpToSlice, orientation, planar, planarFreehandROITool, pointInSurroundingSphereCallback, rectangleROITool, segmentation, stackContextPrefetch, stackPrefetch, touch, triggerAnnotationRender, triggerEvent, viewport, viewportFilters, voi
|
|
8361
9565
|
|
|
8362
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
8363
|
-
var esm = __webpack_require__(
|
|
9566
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
9567
|
+
var esm = __webpack_require__(12651);
|
|
8364
9568
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/getAnnotationNearPoint.js
|
|
8365
9569
|
var getAnnotationNearPoint = __webpack_require__(62358);
|
|
8366
9570
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/debounce.js
|
|
@@ -8571,8 +9775,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
8571
9775
|
|
|
8572
9776
|
// UNUSED EXPORTS: Calculator
|
|
8573
9777
|
|
|
8574
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
8575
|
-
var esm = __webpack_require__(
|
|
9778
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
9779
|
+
var esm = __webpack_require__(12651);
|
|
8576
9780
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/basic/Calculator.js
|
|
8577
9781
|
class Calculator {
|
|
8578
9782
|
}
|
|
@@ -9610,8 +10814,8 @@ function getClosestLineSegmentIntersection(points, p1, q1, closed = true) {
|
|
|
9610
10814
|
};
|
|
9611
10815
|
}
|
|
9612
10816
|
|
|
9613
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
9614
|
-
var dist_esm = __webpack_require__(
|
|
10817
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
10818
|
+
var dist_esm = __webpack_require__(12651);
|
|
9615
10819
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js
|
|
9616
10820
|
|
|
9617
10821
|
|
|
@@ -10088,6 +11292,7 @@ function invertOrientationStringLPS(orientationString) {
|
|
|
10088
11292
|
|
|
10089
11293
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10090
11294
|
/* harmony export */ filterAnnotationsForDisplay: () => (/* reexport safe */ _filterAnnotationsForDisplay__WEBPACK_IMPORTED_MODULE_2__.Z),
|
|
11295
|
+
/* harmony export */ filterAnnotationsWithinSamePlane: () => (/* reexport safe */ _filterAnnotationsWithinPlane__WEBPACK_IMPORTED_MODULE_5__.Q),
|
|
10091
11296
|
/* harmony export */ getPointInLineOfSightWithCriteria: () => (/* reexport safe */ _getPointInLineOfSightWithCriteria__WEBPACK_IMPORTED_MODULE_3__.Z),
|
|
10092
11297
|
/* harmony export */ isPlaneIntersectingAABB: () => (/* reexport safe */ _isPlaneIntersectingAABB__WEBPACK_IMPORTED_MODULE_4__.U)
|
|
10093
11298
|
/* harmony export */ });
|
|
@@ -10096,6 +11301,8 @@ function invertOrientationStringLPS(orientationString) {
|
|
|
10096
11301
|
/* harmony import */ var _filterAnnotationsForDisplay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69943);
|
|
10097
11302
|
/* harmony import */ var _getPointInLineOfSightWithCriteria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1023);
|
|
10098
11303
|
/* harmony import */ var _isPlaneIntersectingAABB__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61890);
|
|
11304
|
+
/* harmony import */ var _filterAnnotationsWithinPlane__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50630);
|
|
11305
|
+
|
|
10099
11306
|
|
|
10100
11307
|
|
|
10101
11308
|
|
|
@@ -10107,6 +11314,7 @@ function invertOrientationStringLPS(orientationString) {
|
|
|
10107
11314
|
filterAnnotationsForDisplay: _filterAnnotationsForDisplay__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z,
|
|
10108
11315
|
getPointInLineOfSightWithCriteria: _getPointInLineOfSightWithCriteria__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z,
|
|
10109
11316
|
isPlaneIntersectingAABB: _isPlaneIntersectingAABB__WEBPACK_IMPORTED_MODULE_4__/* .isPlaneIntersectingAABB */ .U,
|
|
11317
|
+
filterAnnotationsWithinSamePlane: _filterAnnotationsWithinPlane__WEBPACK_IMPORTED_MODULE_5__/* .filterAnnotationsWithinSamePlane */ .Q,
|
|
10110
11318
|
});
|
|
10111
11319
|
|
|
10112
11320
|
|
|
@@ -10227,7 +11435,7 @@ function pointInShapeCallback(imageData, pointInShapeFn, callback, boundsIJK) {
|
|
|
10227
11435
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
10228
11436
|
|
|
10229
11437
|
/* unused harmony export default */
|
|
10230
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
11438
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
10231
11439
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72076);
|
|
10232
11440
|
/* harmony import */ var _math_sphere__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34603);
|
|
10233
11441
|
/* harmony import */ var _pointInShapeCallback__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(31955);
|
|
@@ -10387,7 +11595,7 @@ function getPolyDataPoints(polyData) {
|
|
|
10387
11595
|
/***/ 35765:
|
|
10388
11596
|
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
|
|
10389
11597
|
|
|
10390
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
11598
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
10391
11599
|
/* harmony import */ var _boundingBox_getBoundingBoxAroundShape__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64652);
|
|
10392
11600
|
/* harmony import */ var _boundingBox_extend2DBoundingBoxInViewAxis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93341);
|
|
10393
11601
|
|
|
@@ -10457,7 +11665,7 @@ function getBoundsIJKFromRectangleAnnotations(annotations, referenceVolume, opti
|
|
|
10457
11665
|
/* harmony export */ r: () => (/* binding */ isAxisAlignedRectangle)
|
|
10458
11666
|
/* harmony export */ });
|
|
10459
11667
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72076);
|
|
10460
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
11668
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12651);
|
|
10461
11669
|
|
|
10462
11670
|
|
|
10463
11671
|
const { isEqual } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities;
|
|
@@ -10491,7 +11699,7 @@ function calculateAnglesWithAxes(vec, axes) {
|
|
|
10491
11699
|
/* harmony export */ Z: () => (/* binding */ scroll)
|
|
10492
11700
|
/* harmony export */ });
|
|
10493
11701
|
/* unused harmony export scrollVolume */
|
|
10494
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
11702
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
10495
11703
|
|
|
10496
11704
|
function scroll(viewport, options) {
|
|
10497
11705
|
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(viewport.element);
|
|
@@ -10552,7 +11760,7 @@ function scrollVolume(viewport, volumeId, delta, scrollSlabs = false) {
|
|
|
10552
11760
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10553
11761
|
/* harmony export */ Z: () => (/* binding */ InterpolationManager)
|
|
10554
11762
|
/* harmony export */ });
|
|
10555
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
11763
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
10556
11764
|
/* harmony import */ var _stateManagement_annotation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88706);
|
|
10557
11765
|
/* harmony import */ var _contours_interpolation_getInterpolationDataCollection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92472);
|
|
10558
11766
|
/* harmony import */ var _contours_interpolation_interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28898);
|
|
@@ -10747,7 +11955,7 @@ function getSliceData(viewport) {
|
|
|
10747
11955
|
/* unused harmony exports setBrushSizeForToolGroup, getBrushSizeForToolGroup */
|
|
10748
11956
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27078);
|
|
10749
11957
|
/* harmony import */ var _triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(66878);
|
|
10750
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
11958
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12651);
|
|
10751
11959
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(89776);
|
|
10752
11960
|
|
|
10753
11961
|
|
|
@@ -10799,7 +12007,7 @@ function getBrushSizeForToolGroup(toolGroupId, toolName) {
|
|
|
10799
12007
|
/* unused harmony exports setBrushThresholdForToolGroup, getBrushThresholdForToolGroup */
|
|
10800
12008
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27078);
|
|
10801
12009
|
/* harmony import */ var _triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(66878);
|
|
10802
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
12010
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12651);
|
|
10803
12011
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(89776);
|
|
10804
12012
|
|
|
10805
12013
|
|
|
@@ -10863,8 +12071,8 @@ var contours = __webpack_require__(11203);
|
|
|
10863
12071
|
var SegmentationRepresentations = __webpack_require__(74297);
|
|
10864
12072
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
10865
12073
|
var esm = __webpack_require__(72076);
|
|
10866
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
10867
|
-
var dist_esm = __webpack_require__(
|
|
12074
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
12075
|
+
var dist_esm = __webpack_require__(12651);
|
|
10868
12076
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/segmentation/isLineInSegment.js
|
|
10869
12077
|
|
|
10870
12078
|
|
|
@@ -11107,7 +12315,7 @@ function createImageIdReferenceMap(imageIdsArray, segmentationImageIds) {
|
|
|
11107
12315
|
/* unused harmony export default */
|
|
11108
12316
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11677);
|
|
11109
12317
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_0__);
|
|
11110
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
12318
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12651);
|
|
11111
12319
|
|
|
11112
12320
|
|
|
11113
12321
|
async function createLabelmapVolumeForViewport(input) {
|
|
@@ -11144,7 +12352,7 @@ async function createLabelmapVolumeForViewport(input) {
|
|
|
11144
12352
|
/***/ 71880:
|
|
11145
12353
|
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
|
|
11146
12354
|
|
|
11147
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
12355
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
11148
12356
|
|
|
11149
12357
|
function createMergedLabelmapForIndex(labelmaps, segmentIndex = 1, volumeId = 'mergedLabelmap') {
|
|
11150
12358
|
labelmaps.forEach(({ direction, dimensions, origin, spacing }) => {
|
|
@@ -11367,7 +12575,7 @@ function getHoveredContourSegmentationAnnotation(segmentationId) {
|
|
|
11367
12575
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11368
12576
|
/* harmony export */ T: () => (/* binding */ getSegmentAtLabelmapBorder)
|
|
11369
12577
|
/* harmony export */ });
|
|
11370
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
12578
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
11371
12579
|
/* harmony import */ var _stateManagement_segmentation_segmentationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14305);
|
|
11372
12580
|
/* harmony import */ var _tools_segmentation_strategies_utils_stackVolumeCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88439);
|
|
11373
12581
|
|
|
@@ -11454,7 +12662,7 @@ function isSegmentOnEdgeCanvas(canvasPoint, segmentIndex, viewport, imageData, s
|
|
|
11454
12662
|
/* harmony export */ uA: () => (/* binding */ getSegmentAtWorldPoint)
|
|
11455
12663
|
/* harmony export */ });
|
|
11456
12664
|
/* unused harmony exports getSegmentAtWorldForLabelmap, getSegmentAtWorldForContour */
|
|
11457
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
12665
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
11458
12666
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(68096);
|
|
11459
12667
|
/* harmony import */ var _stateManagement_segmentation_segmentationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14305);
|
|
11460
12668
|
/* harmony import */ var _tools_segmentation_strategies_utils_stackVolumeCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88439);
|
|
@@ -11606,7 +12814,7 @@ function getSegmentAtWorldForContour(segmentation, worldPoint, { viewport }) {
|
|
|
11606
12814
|
/* harmony export */ });
|
|
11607
12815
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27078);
|
|
11608
12816
|
/* harmony import */ var _triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(66878);
|
|
11609
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
12817
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12651);
|
|
11610
12818
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(89776);
|
|
11611
12819
|
|
|
11612
12820
|
|
|
@@ -11703,7 +12911,7 @@ function _validateAnnotations(annotations) {
|
|
|
11703
12911
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
11704
12912
|
|
|
11705
12913
|
/* unused harmony exports default, defaultGetSegment */
|
|
11706
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
12914
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
11707
12915
|
/* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95482);
|
|
11708
12916
|
/* harmony import */ var _stateManagement_annotation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88706);
|
|
11709
12917
|
/* harmony import */ var _viewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85217);
|
|
@@ -11958,7 +13166,7 @@ function thresholdVolumeByRange(segmentationVolume, thresholdVolumeInformation,
|
|
|
11958
13166
|
/* harmony export */ Xb: () => (/* binding */ getBrushToolInstances)
|
|
11959
13167
|
/* harmony export */ });
|
|
11960
13168
|
/* unused harmony exports getVoxelOverlap, processVolumes */
|
|
11961
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
13169
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
11962
13170
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27078);
|
|
11963
13171
|
/* harmony import */ var _tools_segmentation_BrushTool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95459);
|
|
11964
13172
|
/* harmony import */ var _boundingBox_getBoundingBoxAroundShape__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(64652);
|
|
@@ -12041,8 +13249,8 @@ function processVolumes(segmentationVolume, thresholdVolumeInformation) {
|
|
|
12041
13249
|
|
|
12042
13250
|
// UNUSED EXPORTS: stackContextPrefetch, stackPrefetch
|
|
12043
13251
|
|
|
12044
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
12045
|
-
var esm = __webpack_require__(
|
|
13252
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
13253
|
+
var esm = __webpack_require__(12651);
|
|
12046
13254
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/stackPrefetch/state.js
|
|
12047
13255
|
var state = __webpack_require__(22446);
|
|
12048
13256
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/stackPrefetch/stackPrefetchUtils.js
|
|
@@ -12225,7 +13433,10 @@ let stackContextPrefetch_resetPrefetchTimeout;
|
|
|
12225
13433
|
const stackContextPrefetch_resetPrefetchDelay = 5;
|
|
12226
13434
|
const stackContextPrefetch_enable = (element) => {
|
|
12227
13435
|
const stack = (0,stackPrefetchUtils/* getStackData */.gf)(element);
|
|
12228
|
-
if (!stack
|
|
13436
|
+
if (!stack) {
|
|
13437
|
+
return;
|
|
13438
|
+
}
|
|
13439
|
+
if (!stack.imageIds?.length) {
|
|
12229
13440
|
console.warn('CornerstoneTools.stackPrefetch: No images in stack.');
|
|
12230
13441
|
return;
|
|
12231
13442
|
}
|
|
@@ -12239,6 +13450,9 @@ const stackContextPrefetch_enable = (element) => {
|
|
|
12239
13450
|
};
|
|
12240
13451
|
function stackContextPrefetch_prefetch(element) {
|
|
12241
13452
|
const stack = (0,stackPrefetchUtils/* getStackData */.gf)(element);
|
|
13453
|
+
if (!stack) {
|
|
13454
|
+
return;
|
|
13455
|
+
}
|
|
12242
13456
|
if (!stack?.imageIds?.length) {
|
|
12243
13457
|
console.warn('CornerstoneTools.stackPrefetch: No images in stack.');
|
|
12244
13458
|
return;
|
|
@@ -12347,7 +13561,10 @@ function stackContextPrefetch_onImageUpdated(e) {
|
|
|
12347
13561
|
const signum = (x) => (x < 0 ? -1 : 1);
|
|
12348
13562
|
const updateToolState = (element, usage) => {
|
|
12349
13563
|
const stack = (0,stackPrefetchUtils/* getStackData */.gf)(element);
|
|
12350
|
-
if (!stack
|
|
13564
|
+
if (!stack) {
|
|
13565
|
+
return;
|
|
13566
|
+
}
|
|
13567
|
+
if (!stack.imageIds?.length) {
|
|
12351
13568
|
console.warn('CornerstoneTools.stackPrefetch: No images in stack.');
|
|
12352
13569
|
return;
|
|
12353
13570
|
}
|
|
@@ -12645,7 +13862,7 @@ function _getDistance3D(point0, point1) {
|
|
|
12645
13862
|
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
12646
13863
|
/* harmony export */ });
|
|
12647
13864
|
/* unused harmony export triggerAnnotationRenderForToolGroupIds */
|
|
12648
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
13865
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
12649
13866
|
/* harmony import */ var _triggerAnnotationRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64307);
|
|
12650
13867
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27078);
|
|
12651
13868
|
|
|
@@ -12696,14 +13913,11 @@ function triggerAnnotationRenderForToolGroupIds(toolGroupIds) {
|
|
|
12696
13913
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
12697
13914
|
/* harmony export */ P: () => (/* binding */ isViewportPreScaled)
|
|
12698
13915
|
/* harmony export */ });
|
|
12699
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
13916
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
12700
13917
|
|
|
12701
13918
|
function isViewportPreScaled(viewport, targetId) {
|
|
12702
13919
|
if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.BaseVolumeViewport) {
|
|
12703
|
-
const
|
|
12704
|
-
const volumeId = targetIdTokens.length > 1
|
|
12705
|
-
? targetIdTokens[1].split('?')[0]
|
|
12706
|
-
: targetIdTokens[0];
|
|
13920
|
+
const volumeId = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.getVolumeId(targetId);
|
|
12707
13921
|
const volume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(volumeId);
|
|
12708
13922
|
return !!volume?.scaling && Object.keys(volume.scaling).length > 0;
|
|
12709
13923
|
}
|
|
@@ -12723,7 +13937,7 @@ function isViewportPreScaled(viewport, targetId) {
|
|
|
12723
13937
|
/***/ 68009:
|
|
12724
13938
|
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
|
|
12725
13939
|
|
|
12726
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
13940
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
12727
13941
|
/* harmony import */ var _clip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70232);
|
|
12728
13942
|
/* harmony import */ var _scroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(63478);
|
|
12729
13943
|
|
|
@@ -12750,12 +13964,10 @@ function _getImageSliceData(viewport, debounceLoading) {
|
|
|
12750
13964
|
: viewport.getCurrentImageIdIndex(),
|
|
12751
13965
|
};
|
|
12752
13966
|
}
|
|
12753
|
-
|
|
12754
|
-
|
|
12755
|
-
|
|
12756
|
-
|
|
12757
|
-
throw new Error('Unsupported viewport type');
|
|
12758
|
-
}
|
|
13967
|
+
return {
|
|
13968
|
+
numberOfSlices: viewport.getNumberOfSlices(),
|
|
13969
|
+
imageIndex: viewport.getSliceIndex(),
|
|
13970
|
+
};
|
|
12759
13971
|
}
|
|
12760
13972
|
function _getImageIndexToJump(numberOfSlices, imageIndex) {
|
|
12761
13973
|
const lastSliceIndex = numberOfSlices - 1;
|
|
@@ -12772,7 +13984,7 @@ function _getImageIndexToJump(numberOfSlices, imageIndex) {
|
|
|
12772
13984
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
12773
13985
|
/* harmony export */ Z: () => (/* binding */ jumpToWorld)
|
|
12774
13986
|
/* harmony export */ });
|
|
12775
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
13987
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12651);
|
|
12776
13988
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72076);
|
|
12777
13989
|
|
|
12778
13990
|
|
|
@@ -12869,8 +14081,8 @@ function _toolGroupHasActiveEnabledOrPassiveTool(toolGroup, toolName) {
|
|
|
12869
14081
|
return toolMode === Active || toolMode === Passive || toolMode === Enabled;
|
|
12870
14082
|
}
|
|
12871
14083
|
|
|
12872
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
12873
|
-
var esm = __webpack_require__(
|
|
14084
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
14085
|
+
var esm = __webpack_require__(12651);
|
|
12874
14086
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
12875
14087
|
var gl_matrix_esm = __webpack_require__(72076);
|
|
12876
14088
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewportFilters/filterViewportsWithParallelNormals.js
|
|
@@ -12922,8 +14134,8 @@ function getViewportIdsWithToolToRender(element, toolName, requireParallelNormal
|
|
|
12922
14134
|
|
|
12923
14135
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
12924
14136
|
var esm = __webpack_require__(72076);
|
|
12925
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
12926
|
-
var dist_esm = __webpack_require__(
|
|
14137
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
14138
|
+
var dist_esm = __webpack_require__(12651);
|
|
12927
14139
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/colorbar/common/isRangeValid.js
|
|
12928
14140
|
const isRangeValid_isRangeValid = (range) => {
|
|
12929
14141
|
return range && range.upper > range.lower;
|
|
@@ -13763,8 +14975,8 @@ class Colorbar extends (/* unused pure expression or super */ null && (Widget))
|
|
|
13763
14975
|
|
|
13764
14976
|
// UNUSED EXPORTS: ViewportColorbar, default
|
|
13765
14977
|
|
|
13766
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
13767
|
-
var esm = __webpack_require__(
|
|
14978
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
14979
|
+
var esm = __webpack_require__(12651);
|
|
13768
14980
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/colorbar/Colorbar.js + 10 modules
|
|
13769
14981
|
var colorbar_Colorbar = __webpack_require__(53766);
|
|
13770
14982
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewport/index.js
|
|
@@ -14045,8 +15257,8 @@ function calculateMinMaxMean(pixelLuminance, globalMin, globalMax) {
|
|
|
14045
15257
|
}
|
|
14046
15258
|
|
|
14047
15259
|
|
|
14048
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
14049
|
-
var esm = __webpack_require__(
|
|
15260
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
15261
|
+
var esm = __webpack_require__(12651);
|
|
14050
15262
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/extractWindowLevelRegionToolData.js
|
|
14051
15263
|
|
|
14052
15264
|
function extractWindowLevelRegionToolData(viewport) {
|
|
@@ -14170,8 +15382,8 @@ class ICRPolySeg {
|
|
|
14170
15382
|
}
|
|
14171
15383
|
}
|
|
14172
15384
|
|
|
14173
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
14174
|
-
var esm = __webpack_require__(
|
|
15385
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
15386
|
+
var esm = __webpack_require__(12651);
|
|
14175
15387
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/DataModel/Plane.js
|
|
14176
15388
|
var Plane = __webpack_require__(3969);
|
|
14177
15389
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js + 9 modules
|