@ohif/app 3.12.0-beta.52 → 3.12.0-beta.54
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/{1447.bundle.f58681b8a8c6746c3256.js → 1447.bundle.b15051ce6a9bcec1ac6a.js} +2 -2
- package/dist/{1919.bundle.b1390ab4c85106c069e2.js → 1919.bundle.7c1b4166b95e7dffe973.js} +1 -0
- package/dist/{2243.bundle.92d2afd8756bda5e2ca3.js → 2243.bundle.727d1f866dda05467f19.js} +1 -0
- package/dist/{2518.bundle.fbbfa351f8e8c446599b.js → 2518.bundle.57c229a14e22d23db384.js} +1 -0
- package/dist/{2974.bundle.ec95e58b346dbe30a362.js → 2974.bundle.a90a9df917b90bc02c69.js} +1 -0
- package/dist/{4019.bundle.c5b332003e3cd00868ce.js → 4019.bundle.13e7f662a9e489b74a27.js} +70 -3
- package/dist/{4759.bundle.8686abdd7bcf4aa7d107.js → 4759.bundle.c3bfca952eea20a0d6f9.js} +1 -0
- package/dist/{5674.bundle.24de237ef15879b25714.js → 5674.bundle.8c34228471ff9e53b8c3.js} +1 -0
- package/dist/{6991.bundle.d0c8eb5e352477b0d42e.js → 6991.bundle.48929c562b9d3012e468.js} +1 -0
- package/dist/{7412.bundle.80f68b38041e891c64a8.js → 7412.bundle.c7950ea929406915ba33.js} +342 -84
- package/dist/{8558.bundle.9ee1f10769f9cac46bb3.js → 8558.bundle.9f596952dd6a5fa6f629.js} +1 -0
- package/dist/{934.bundle.d028841173058da9793c.js → 934.bundle.cce2fe2754a928b8cd6d.js} +1 -0
- package/dist/{9819.bundle.f9a684737e748002f1c2.js → 9819.bundle.d029289c240373cfb898.js} +16 -6
- package/dist/{9856.bundle.8e21e8c0322a0837862b.js → 9856.bundle.9a1396fddc3af67dcaf4.js} +169 -14
- package/dist/{9892.bundle.83de6c11c8a9eb4bba25.js → 9892.bundle.14e773b29e191babc8e4.js} +326 -79
- package/dist/{app.bundle.7ea0ea630b0467e32f40.js → app.bundle.3759d6a4606059b97022.js} +11 -4
- package/dist/{compute.bundle.f176731b761d630f358c.js → compute.bundle.afdef7ac00941da4dd32.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.1ab7dd310985596b4098.js → polySeg.bundle.ba4364ed21d03c7a9df1.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +21 -21
- /package/dist/{1459.bundle.26bd313381a55ecd59f7.js → 1459.bundle.d4ef552f8dec2c8b15fc.js} +0 -0
- /package/dist/{1604.bundle.813a49f279de52122def.js → 1604.bundle.ba4b8c8f64d258a40850.js} +0 -0
- /package/dist/{1807.bundle.9609cc9a5502d3c5c4ba.js → 1807.bundle.ddc2996069271a8652a5.js} +0 -0
- /package/dist/{213.bundle.844009eea53b5e7b71bf.js → 213.bundle.d174db20fab2fdfed4f8.js} +0 -0
- /package/dist/{2424.bundle.d3c0fa7cda17e7a40fc9.js → 2424.bundle.132b9ea62e24599d01f7.js} +0 -0
- /package/dist/{3409.bundle.c756a8ccaa7faa1d9235.js → 3409.bundle.257f7edb1585ea06ba3c.js} +0 -0
- /package/dist/{4113.bundle.31fe4e2a2956ce6c5d2d.js → 4113.bundle.85916db39290d43aa53b.js} +0 -0
- /package/dist/{414.bundle.113bc87916aa22d4cccc.js → 414.bundle.6f9b2a00f06626f05c27.js} +0 -0
- /package/dist/{5457.bundle.1d6b074af89e69a54dde.js → 5457.bundle.51285f55e1389d654257.js} +0 -0
- /package/dist/{5485.bundle.ae87fca794a3248efdaa.js → 5485.bundle.371660cf6663e90cd622.js} +0 -0
- /package/dist/{6027.bundle.2b0e82eb38b6a028a255.js → 6027.bundle.f220a72a6e4232c38a87.js} +0 -0
- /package/dist/{6201.bundle.0d8aa2fba299a8cc92a9.js → 6201.bundle.40aca7bfb7513a6ebda7.js} +0 -0
- /package/dist/{7197.bundle.7cc9bb98050e4ae0294d.js → 7197.bundle.52da128e3f00a7ad7902.js} +0 -0
- /package/dist/{7639.bundle.fb8c61c6588c528d336f.js → 7639.bundle.1226ddb2bc46f5cae750.js} +0 -0
- /package/dist/{810.bundle.04da3bf08f7df9589091.js → 810.bundle.4f3a7ca74971239c1498.js} +0 -0
- /package/dist/{85.bundle.72ca9e62d8bcef003e42.js → 85.bundle.cc4e5b3a9acca13007a5.js} +0 -0
- /package/dist/{8815.bundle.c5c714fe2a3ff31aacad.js → 8815.bundle.525c88f93f5bd57e4980.js} +0 -0
|
@@ -3348,9 +3348,11 @@ class FrameOfReferenceSpecificAnnotationManager {
|
|
|
3348
3348
|
}
|
|
3349
3349
|
if (toolName) {
|
|
3350
3350
|
const annotationsForTool = annotations[groupKey][toolName];
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3351
|
+
if (annotationsForTool) {
|
|
3352
|
+
for (const annotation of annotationsForTool) {
|
|
3353
|
+
this.removeAnnotation(annotation.annotationUID);
|
|
3354
|
+
removedAnnotations.push(annotation);
|
|
3355
|
+
}
|
|
3354
3356
|
}
|
|
3355
3357
|
}
|
|
3356
3358
|
else {
|
|
@@ -12163,6 +12165,9 @@ OverlayGridTool.toolName = 'OverlayGrid';
|
|
|
12163
12165
|
class PanTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .BaseTool */ .oS {
|
|
12164
12166
|
constructor(toolProps = {}, defaultToolProps = {
|
|
12165
12167
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
12168
|
+
configuration: {
|
|
12169
|
+
limitToViewport: false,
|
|
12170
|
+
},
|
|
12166
12171
|
}) {
|
|
12167
12172
|
super(toolProps, defaultToolProps);
|
|
12168
12173
|
}
|
|
@@ -12172,17 +12177,77 @@ class PanTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .BaseTool */ .oS {
|
|
|
12172
12177
|
mouseDragCallback(evt) {
|
|
12173
12178
|
this._dragCallback(evt);
|
|
12174
12179
|
}
|
|
12180
|
+
_checkImageInViewport(viewport, deltaPointsCanvas) {
|
|
12181
|
+
const { canvas } = viewport;
|
|
12182
|
+
const ratio = window.devicePixelRatio;
|
|
12183
|
+
const viewportLeft = 0;
|
|
12184
|
+
const viewportRight = canvas.width / ratio;
|
|
12185
|
+
const viewportTop = 0;
|
|
12186
|
+
const viewportBottom = canvas.height / ratio;
|
|
12187
|
+
const defaultActor = viewport.getDefaultActor();
|
|
12188
|
+
const renderer = viewport.getRenderer();
|
|
12189
|
+
let bounds;
|
|
12190
|
+
if (defaultActor && _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.isImageActor(defaultActor)) {
|
|
12191
|
+
const imageData = defaultActor.actor.getMapper().getInputData();
|
|
12192
|
+
bounds = imageData.getBounds();
|
|
12193
|
+
}
|
|
12194
|
+
else {
|
|
12195
|
+
bounds = renderer.computeVisiblePropBounds();
|
|
12196
|
+
}
|
|
12197
|
+
const [imageLeft, imageTop] = viewport.worldToCanvas([
|
|
12198
|
+
bounds[0],
|
|
12199
|
+
bounds[2],
|
|
12200
|
+
bounds[4],
|
|
12201
|
+
]);
|
|
12202
|
+
const [imageRight, imageBottom] = viewport.worldToCanvas([
|
|
12203
|
+
bounds[1],
|
|
12204
|
+
bounds[3],
|
|
12205
|
+
bounds[5],
|
|
12206
|
+
]);
|
|
12207
|
+
const zoom = viewport.getZoom();
|
|
12208
|
+
if (zoom <= 1) {
|
|
12209
|
+
if ((imageLeft + deltaPointsCanvas[0] < viewportLeft &&
|
|
12210
|
+
deltaPointsCanvas[0] < 0) ||
|
|
12211
|
+
(imageRight + deltaPointsCanvas[0] > viewportRight &&
|
|
12212
|
+
deltaPointsCanvas[0] > 0) ||
|
|
12213
|
+
(imageTop + deltaPointsCanvas[1] < viewportTop &&
|
|
12214
|
+
deltaPointsCanvas[1] < 0) ||
|
|
12215
|
+
(imageBottom + deltaPointsCanvas[1] > viewportBottom &&
|
|
12216
|
+
deltaPointsCanvas[1] > 0)) {
|
|
12217
|
+
return false;
|
|
12218
|
+
}
|
|
12219
|
+
}
|
|
12220
|
+
else {
|
|
12221
|
+
if ((imageLeft + deltaPointsCanvas[0] > viewportLeft &&
|
|
12222
|
+
deltaPointsCanvas[0] > 0) ||
|
|
12223
|
+
(imageRight + deltaPointsCanvas[0] < viewportRight &&
|
|
12224
|
+
deltaPointsCanvas[0] < 0) ||
|
|
12225
|
+
(imageTop + deltaPointsCanvas[1] > viewportTop &&
|
|
12226
|
+
deltaPointsCanvas[1] > 0) ||
|
|
12227
|
+
(imageBottom + deltaPointsCanvas[1] < viewportBottom &&
|
|
12228
|
+
deltaPointsCanvas[1] < 0)) {
|
|
12229
|
+
return false;
|
|
12230
|
+
}
|
|
12231
|
+
}
|
|
12232
|
+
return true;
|
|
12233
|
+
}
|
|
12175
12234
|
_dragCallback(evt) {
|
|
12176
12235
|
const { element, deltaPoints } = evt.detail;
|
|
12177
12236
|
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
|
|
12178
12237
|
const deltaPointsWorld = deltaPoints.world;
|
|
12238
|
+
const deltaPointsCanvas = deltaPoints.canvas;
|
|
12179
12239
|
if (deltaPointsWorld[0] === 0 &&
|
|
12180
12240
|
deltaPointsWorld[1] === 0 &&
|
|
12181
12241
|
deltaPointsWorld[2] === 0) {
|
|
12182
12242
|
return;
|
|
12183
12243
|
}
|
|
12184
|
-
const
|
|
12244
|
+
const viewport = enabledElement.viewport;
|
|
12245
|
+
const camera = viewport.getCamera();
|
|
12185
12246
|
const { focalPoint, position } = camera;
|
|
12247
|
+
if (this.configuration.limitToViewport &&
|
|
12248
|
+
!this._checkImageInViewport(viewport, deltaPointsCanvas)) {
|
|
12249
|
+
return;
|
|
12250
|
+
}
|
|
12186
12251
|
const updatedPosition = [
|
|
12187
12252
|
position[0] - deltaPointsWorld[0],
|
|
12188
12253
|
position[1] - deltaPointsWorld[1],
|
|
@@ -12193,11 +12258,11 @@ class PanTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .BaseTool */ .oS {
|
|
|
12193
12258
|
focalPoint[1] - deltaPointsWorld[1],
|
|
12194
12259
|
focalPoint[2] - deltaPointsWorld[2],
|
|
12195
12260
|
];
|
|
12196
|
-
|
|
12261
|
+
viewport.setCamera({
|
|
12197
12262
|
focalPoint: updatedFocalPoint,
|
|
12198
12263
|
position: updatedPosition,
|
|
12199
12264
|
});
|
|
12200
|
-
|
|
12265
|
+
viewport.render();
|
|
12201
12266
|
}
|
|
12202
12267
|
}
|
|
12203
12268
|
PanTool.toolName = 'Pan';
|
|
@@ -21442,68 +21507,79 @@ class EllipticalROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .Annotation
|
|
|
21442
21507
|
pos1Index[0] = Math.floor(pos1Index[0]);
|
|
21443
21508
|
pos1Index[1] = Math.floor(pos1Index[1]);
|
|
21444
21509
|
pos1Index[2] = Math.floor(pos1Index[2]);
|
|
21445
|
-
const
|
|
21446
|
-
|
|
21447
|
-
|
|
21448
|
-
|
|
21449
|
-
|
|
21450
|
-
|
|
21451
|
-
|
|
21452
|
-
|
|
21453
|
-
|
|
21454
|
-
|
|
21455
|
-
|
|
21456
|
-
|
|
21457
|
-
|
|
21458
|
-
|
|
21459
|
-
|
|
21460
|
-
|
|
21461
|
-
|
|
21462
|
-
|
|
21463
|
-
|
|
21464
|
-
|
|
21465
|
-
|
|
21466
|
-
|
|
21467
|
-
|
|
21468
|
-
|
|
21469
|
-
|
|
21470
|
-
|
|
21471
|
-
|
|
21472
|
-
|
|
21473
|
-
|
|
21474
|
-
|
|
21475
|
-
|
|
21476
|
-
|
|
21477
|
-
|
|
21478
|
-
scale;
|
|
21479
|
-
|
|
21480
|
-
|
|
21481
|
-
|
|
21482
|
-
|
|
21483
|
-
|
|
21484
|
-
|
|
21485
|
-
|
|
21486
|
-
|
|
21487
|
-
|
|
21488
|
-
|
|
21489
|
-
|
|
21490
|
-
|
|
21491
|
-
|
|
21510
|
+
const pos2Index = transformWorldToIndex(imageData, worldPos2);
|
|
21511
|
+
pos2Index[0] = Math.floor(pos2Index[0]);
|
|
21512
|
+
pos2Index[1] = Math.floor(pos2Index[1]);
|
|
21513
|
+
pos2Index[2] = Math.floor(pos2Index[2]);
|
|
21514
|
+
if (this._isInsideVolume(pos1Index, pos2Index, dimensions)) {
|
|
21515
|
+
const iMin = Math.min(pos1Index[0], pos2Index[0]);
|
|
21516
|
+
const iMax = Math.max(pos1Index[0], pos2Index[0]);
|
|
21517
|
+
const jMin = Math.min(pos1Index[1], pos2Index[1]);
|
|
21518
|
+
const jMax = Math.max(pos1Index[1], pos2Index[1]);
|
|
21519
|
+
const kMin = Math.min(pos1Index[2], pos2Index[2]);
|
|
21520
|
+
const kMax = Math.max(pos1Index[2], pos2Index[2]);
|
|
21521
|
+
const boundsIJK = [
|
|
21522
|
+
[iMin, iMax],
|
|
21523
|
+
[jMin, jMax],
|
|
21524
|
+
[kMin, kMax],
|
|
21525
|
+
];
|
|
21526
|
+
const center = [
|
|
21527
|
+
(topLeftWorld[0] + bottomRightWorld[0]) / 2,
|
|
21528
|
+
(topLeftWorld[1] + bottomRightWorld[1]) / 2,
|
|
21529
|
+
(topLeftWorld[2] + bottomRightWorld[2]) / 2,
|
|
21530
|
+
];
|
|
21531
|
+
const xRadius = Math.abs(topLeftWorld[0] - bottomRightWorld[0]) / 2;
|
|
21532
|
+
const yRadius = Math.abs(topLeftWorld[1] - bottomRightWorld[1]) / 2;
|
|
21533
|
+
const zRadius = Math.abs(topLeftWorld[2] - bottomRightWorld[2]) / 2;
|
|
21534
|
+
const ellipseObj = {
|
|
21535
|
+
center,
|
|
21536
|
+
xRadius: xRadius < _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.EPSILON / 2 ? 0 : xRadius,
|
|
21537
|
+
yRadius: yRadius < _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.EPSILON / 2 ? 0 : yRadius,
|
|
21538
|
+
zRadius: zRadius < _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.EPSILON / 2 ? 0 : zRadius,
|
|
21539
|
+
};
|
|
21540
|
+
const { worldWidth, worldHeight } = (0,_utilities_planar_getWorldWidthAndHeightFromTwoPoints__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .A)(viewPlaneNormal, viewUp, worldPos1, worldPos2);
|
|
21541
|
+
const isEmptyArea = worldWidth === 0 && worldHeight === 0;
|
|
21542
|
+
const handles = [pos1Index, pos2Index];
|
|
21543
|
+
const { scale, unit, areaUnit } = (0,_utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_2__/* .getCalibratedLengthUnitsAndScale */ .Op)(image, handles);
|
|
21544
|
+
const aspect = (0,_utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_2__/* .getCalibratedAspect */ .CQ)(image);
|
|
21545
|
+
const area = Math.abs(Math.PI *
|
|
21546
|
+
(worldWidth / scale / 2) *
|
|
21547
|
+
(worldHeight / aspect / scale / 2));
|
|
21548
|
+
const pixelUnitsOptions = {
|
|
21549
|
+
isPreScaled: (0,_utilities_viewport_isViewportPreScaled__WEBPACK_IMPORTED_MODULE_18__/* .isViewportPreScaled */ .u)(viewport, targetId),
|
|
21550
|
+
isSuvScaled: this.isSuvScaled(viewport, targetId, annotation.metadata.referencedImageId),
|
|
21551
|
+
};
|
|
21552
|
+
const modalityUnit = (0,_utilities_getPixelValueUnits__WEBPACK_IMPORTED_MODULE_17__/* .getPixelValueUnits */ .j)(metadata.Modality, annotation.metadata.referencedImageId, pixelUnitsOptions);
|
|
21553
|
+
let pointsInShape;
|
|
21554
|
+
if (voxelManager) {
|
|
21555
|
+
pointsInShape = voxelManager.forEach(this.configuration.statsCalculator.statsCallback, {
|
|
21556
|
+
isInObject: (pointLPS) => (0,_utilities_math_ellipse__WEBPACK_IMPORTED_MODULE_14__.pointInEllipse)(ellipseObj, pointLPS, { fast: true }),
|
|
21557
|
+
boundsIJK,
|
|
21558
|
+
imageData,
|
|
21559
|
+
returnPoints: this.configuration.storePointData,
|
|
21560
|
+
});
|
|
21561
|
+
}
|
|
21562
|
+
const stats = this.configuration.statsCalculator.getStatistics();
|
|
21563
|
+
cachedStats[targetId] = {
|
|
21564
|
+
Modality: metadata.Modality,
|
|
21565
|
+
area,
|
|
21566
|
+
mean: stats.mean?.value,
|
|
21567
|
+
max: stats.max?.value,
|
|
21568
|
+
min: stats.min?.value,
|
|
21569
|
+
stdDev: stats.stdDev?.value,
|
|
21570
|
+
statsArray: stats.array,
|
|
21571
|
+
pointsInShape,
|
|
21572
|
+
isEmptyArea,
|
|
21573
|
+
areaUnit,
|
|
21574
|
+
modalityUnit,
|
|
21575
|
+
};
|
|
21576
|
+
}
|
|
21577
|
+
else {
|
|
21578
|
+
this.isHandleOutsideImage = true;
|
|
21579
|
+
cachedStats[targetId] = {
|
|
21580
|
+
Modality: metadata.Modality,
|
|
21581
|
+
};
|
|
21492
21582
|
}
|
|
21493
|
-
const stats = this.configuration.statsCalculator.getStatistics();
|
|
21494
|
-
cachedStats[targetId] = {
|
|
21495
|
-
Modality: metadata.Modality,
|
|
21496
|
-
area,
|
|
21497
|
-
mean: stats.mean?.value,
|
|
21498
|
-
max: stats.max?.value,
|
|
21499
|
-
min: stats.min?.value,
|
|
21500
|
-
stdDev: stats.stdDev?.value,
|
|
21501
|
-
statsArray: stats.array,
|
|
21502
|
-
pointsInShape,
|
|
21503
|
-
isEmptyArea,
|
|
21504
|
-
areaUnit,
|
|
21505
|
-
modalityUnit,
|
|
21506
|
-
};
|
|
21507
21583
|
}
|
|
21508
21584
|
const invalidated = annotation.invalidated;
|
|
21509
21585
|
annotation.invalidated = false;
|
|
@@ -29996,6 +30072,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
29996
30072
|
},
|
|
29997
30073
|
}) {
|
|
29998
30074
|
super(toolProps, defaultToolProps);
|
|
30075
|
+
this._lastDragInfo = null;
|
|
29999
30076
|
this.onSetToolPassive = (evt) => {
|
|
30000
30077
|
this.disableCursor();
|
|
30001
30078
|
};
|
|
@@ -30007,14 +30084,24 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
30007
30084
|
};
|
|
30008
30085
|
this.preMouseDownCallback = (evt) => {
|
|
30009
30086
|
const eventData = evt.detail;
|
|
30010
|
-
const { element } = eventData;
|
|
30087
|
+
const { element, currentPoints } = eventData;
|
|
30011
30088
|
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
|
|
30089
|
+
const { viewport } = enabledElement;
|
|
30012
30090
|
this._editData = this.createEditData(element);
|
|
30013
30091
|
this._activateDraw(element);
|
|
30014
30092
|
(0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__.hideElementCursor)(element);
|
|
30015
30093
|
evt.preventDefault();
|
|
30016
30094
|
this._previewData.isDrag = false;
|
|
30017
30095
|
this._previewData.timerStart = Date.now();
|
|
30096
|
+
const canvasPoint = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.clone */ .Zc.clone(currentPoints.canvas);
|
|
30097
|
+
const worldPoint = viewport.canvasToWorld([
|
|
30098
|
+
canvasPoint[0],
|
|
30099
|
+
canvasPoint[1],
|
|
30100
|
+
]);
|
|
30101
|
+
this._lastDragInfo = {
|
|
30102
|
+
canvas: canvasPoint,
|
|
30103
|
+
world: gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.clone */ .eR.clone(worldPoint),
|
|
30104
|
+
};
|
|
30018
30105
|
const hoverData = this._hoverData || this.createHoverData(element);
|
|
30019
30106
|
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(hoverData.viewportIdsToRender);
|
|
30020
30107
|
const operationData = this.getOperationData(element);
|
|
@@ -30089,6 +30176,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
30089
30176
|
const eventData = evt.detail;
|
|
30090
30177
|
const { element, currentPoints } = eventData;
|
|
30091
30178
|
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
|
|
30179
|
+
const { viewport } = enabledElement;
|
|
30092
30180
|
this.updateCursor(evt);
|
|
30093
30181
|
const { viewportIdsToRender } = this._hoverData;
|
|
30094
30182
|
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(viewportIdsToRender);
|
|
@@ -30103,11 +30191,39 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
30103
30191
|
window.clearTimeout(this._previewData.timer);
|
|
30104
30192
|
this._previewData.timer = null;
|
|
30105
30193
|
}
|
|
30106
|
-
|
|
30194
|
+
if (!this._lastDragInfo) {
|
|
30195
|
+
const startCanvas = this._previewData.startPoint;
|
|
30196
|
+
const startWorld = viewport.canvasToWorld([
|
|
30197
|
+
startCanvas[0],
|
|
30198
|
+
startCanvas[1],
|
|
30199
|
+
]);
|
|
30200
|
+
this._lastDragInfo = {
|
|
30201
|
+
canvas: gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.clone */ .Zc.clone(startCanvas),
|
|
30202
|
+
world: gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.clone */ .eR.clone(startWorld),
|
|
30203
|
+
};
|
|
30204
|
+
}
|
|
30205
|
+
const currentCanvas = currentPoints.canvas;
|
|
30206
|
+
const currentWorld = viewport.canvasToWorld([
|
|
30207
|
+
currentCanvas[0],
|
|
30208
|
+
currentCanvas[1],
|
|
30209
|
+
]);
|
|
30210
|
+
this._hoverData = this.createHoverData(element, currentCanvas);
|
|
30211
|
+
this._calculateCursor(element, currentCanvas);
|
|
30212
|
+
const operationData = this.getOperationData(element);
|
|
30213
|
+
operationData.strokePointsWorld = [
|
|
30214
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.clone */ .eR.clone(this._lastDragInfo.world),
|
|
30215
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.clone */ .eR.clone(currentWorld),
|
|
30216
|
+
];
|
|
30217
|
+
this._previewData.preview = this.applyActiveStrategy(enabledElement, operationData);
|
|
30218
|
+
const currentCanvasClone = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.clone */ .Zc.clone(currentCanvas);
|
|
30219
|
+
this._lastDragInfo = {
|
|
30220
|
+
canvas: currentCanvasClone,
|
|
30221
|
+
world: gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.clone */ .eR.clone(currentWorld),
|
|
30222
|
+
};
|
|
30107
30223
|
this._previewData.element = element;
|
|
30108
30224
|
this._previewData.timerStart = Date.now() + dragTimeMs;
|
|
30109
30225
|
this._previewData.isDrag = true;
|
|
30110
|
-
this._previewData.startPoint =
|
|
30226
|
+
this._previewData.startPoint = currentCanvasClone;
|
|
30111
30227
|
};
|
|
30112
30228
|
this._endCallback = (evt) => {
|
|
30113
30229
|
const eventData = evt.detail;
|
|
@@ -30122,6 +30238,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
30122
30238
|
(0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__.resetElementCursor)(element);
|
|
30123
30239
|
this.updateCursor(evt);
|
|
30124
30240
|
this._editData = null;
|
|
30241
|
+
this._lastDragInfo = null;
|
|
30125
30242
|
this.applyActiveStrategyCallback(enabledElement, operationData, _enums__WEBPACK_IMPORTED_MODULE_2__.StrategyCallbacks.OnInteractionEnd);
|
|
30126
30243
|
if (!this._previewData.isDrag) {
|
|
30127
30244
|
this.acceptPreview(element);
|
|
@@ -31152,6 +31269,7 @@ class LabelMapEditWithContourTool extends _annotation_PlanarFreehandContourSegme
|
|
|
31152
31269
|
_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.eventTarget.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_0__.Events.ANNOTATION_COMPLETED, this.annotationCompleted);
|
|
31153
31270
|
_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.eventTarget.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_0__.Events.TOOLGROUP_VIEWPORT_ADDED, this.onViewportAddedToToolGroupBinded);
|
|
31154
31271
|
_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.eventTarget.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_0__.Events.SEGMENTATION_MODIFIED, this.onSegmentationModifiedBinded);
|
|
31272
|
+
_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.eventTarget.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_0__.Events.SEGMENTATION_REPRESENTATION_MODIFIED, this.onSegmentationModifiedBinded);
|
|
31155
31273
|
}
|
|
31156
31274
|
cleanUpListeners() {
|
|
31157
31275
|
LabelMapEditWithContourTool.annotationsToViewportMap.clear();
|
|
@@ -31160,6 +31278,7 @@ class LabelMapEditWithContourTool extends _annotation_PlanarFreehandContourSegme
|
|
|
31160
31278
|
_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.eventTarget.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_0__.Events.ANNOTATION_COMPLETED, this.annotationCompleted);
|
|
31161
31279
|
_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.eventTarget.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_0__.Events.TOOLGROUP_VIEWPORT_ADDED, this.onViewportAddedToToolGroup.bind(this));
|
|
31162
31280
|
_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.eventTarget.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_0__.Events.SEGMENTATION_MODIFIED, this.onSegmentationModified.bind(this));
|
|
31281
|
+
_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.eventTarget.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_0__.Events.SEGMENTATION_REPRESENTATION_MODIFIED, this.onSegmentationModified.bind(this));
|
|
31163
31282
|
}
|
|
31164
31283
|
async checkContourSegmentation(viewportId) {
|
|
31165
31284
|
if (LabelMapEditWithContourTool.viewportIdsChecked.includes(viewportId)) {
|
|
@@ -33307,7 +33426,7 @@ SphereScissorsTool.toolName = 'SphereScissor';
|
|
|
33307
33426
|
/* harmony export */ pB: () => (/* binding */ CIRCLE_STRATEGY),
|
|
33308
33427
|
/* harmony export */ q: () => (/* binding */ thresholdInsideCircle)
|
|
33309
33428
|
/* harmony export */ });
|
|
33310
|
-
/* unused harmony
|
|
33429
|
+
/* unused harmony exports CIRCLE_THRESHOLD_STRATEGY, createPointInEllipse */
|
|
33311
33430
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3823);
|
|
33312
33431
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15327);
|
|
33313
33432
|
/* harmony import */ var _utilities_boundingBox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72282);
|
|
@@ -33322,7 +33441,7 @@ SphereScissorsTool.toolName = 'SphereScissor';
|
|
|
33322
33441
|
|
|
33323
33442
|
|
|
33324
33443
|
|
|
33325
|
-
const { transformWorldToIndex, isEqual } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities;
|
|
33444
|
+
const { transformWorldToIndex, transformIndexToWorld, isEqual } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities;
|
|
33326
33445
|
function getEllipseCornersFromCanvasCoordinates(canvasCoordinates) {
|
|
33327
33446
|
const [bottom, top, left, right] = canvasCoordinates;
|
|
33328
33447
|
const topLeft = [left[0], top[1]];
|
|
@@ -33331,9 +33450,82 @@ function getEllipseCornersFromCanvasCoordinates(canvasCoordinates) {
|
|
|
33331
33450
|
const topRight = [right[0], top[1]];
|
|
33332
33451
|
return [topLeft, bottomRight, bottomLeft, topRight];
|
|
33333
33452
|
}
|
|
33453
|
+
function createCircleCornersForCenter(center, viewUp, viewRight, radius) {
|
|
33454
|
+
const centerVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .eR.fromValues(center[0], center[1], center[2]);
|
|
33455
|
+
const top = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
33456
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.scaleAndAdd */ .eR.scaleAndAdd(top, centerVec, viewUp, radius);
|
|
33457
|
+
const bottom = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
33458
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.scaleAndAdd */ .eR.scaleAndAdd(bottom, centerVec, viewUp, -radius);
|
|
33459
|
+
const right = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
33460
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.scaleAndAdd */ .eR.scaleAndAdd(right, centerVec, viewRight, radius);
|
|
33461
|
+
const left = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
33462
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.scaleAndAdd */ .eR.scaleAndAdd(left, centerVec, viewRight, -radius);
|
|
33463
|
+
return [
|
|
33464
|
+
bottom,
|
|
33465
|
+
top,
|
|
33466
|
+
left,
|
|
33467
|
+
right,
|
|
33468
|
+
];
|
|
33469
|
+
}
|
|
33470
|
+
function createStrokePredicate(centers, radius) {
|
|
33471
|
+
if (!centers.length || radius <= 0) {
|
|
33472
|
+
return null;
|
|
33473
|
+
}
|
|
33474
|
+
const radiusSquared = radius * radius;
|
|
33475
|
+
const centerVecs = centers.map((point) => [point[0], point[1], point[2]]);
|
|
33476
|
+
const segments = [];
|
|
33477
|
+
for (let i = 1; i < centerVecs.length; i++) {
|
|
33478
|
+
const start = centerVecs[i - 1];
|
|
33479
|
+
const end = centerVecs[i];
|
|
33480
|
+
const dx = end[0] - start[0];
|
|
33481
|
+
const dy = end[1] - start[1];
|
|
33482
|
+
const dz = end[2] - start[2];
|
|
33483
|
+
const lengthSquared = dx * dx + dy * dy + dz * dz;
|
|
33484
|
+
segments.push({ start, vector: [dx, dy, dz], lengthSquared });
|
|
33485
|
+
}
|
|
33486
|
+
return (worldPoint) => {
|
|
33487
|
+
if (!worldPoint) {
|
|
33488
|
+
return false;
|
|
33489
|
+
}
|
|
33490
|
+
for (const centerVec of centerVecs) {
|
|
33491
|
+
const dx = worldPoint[0] - centerVec[0];
|
|
33492
|
+
const dy = worldPoint[1] - centerVec[1];
|
|
33493
|
+
const dz = worldPoint[2] - centerVec[2];
|
|
33494
|
+
if (dx * dx + dy * dy + dz * dz <= radiusSquared) {
|
|
33495
|
+
return true;
|
|
33496
|
+
}
|
|
33497
|
+
}
|
|
33498
|
+
for (const { start, vector, lengthSquared } of segments) {
|
|
33499
|
+
if (lengthSquared === 0) {
|
|
33500
|
+
const dx = worldPoint[0] - start[0];
|
|
33501
|
+
const dy = worldPoint[1] - start[1];
|
|
33502
|
+
const dz = worldPoint[2] - start[2];
|
|
33503
|
+
if (dx * dx + dy * dy + dz * dz <= radiusSquared) {
|
|
33504
|
+
return true;
|
|
33505
|
+
}
|
|
33506
|
+
continue;
|
|
33507
|
+
}
|
|
33508
|
+
const dx = worldPoint[0] - start[0];
|
|
33509
|
+
const dy = worldPoint[1] - start[1];
|
|
33510
|
+
const dz = worldPoint[2] - start[2];
|
|
33511
|
+
const dot = dx * vector[0] + dy * vector[1] + dz * vector[2];
|
|
33512
|
+
const t = Math.max(0, Math.min(1, dot / lengthSquared));
|
|
33513
|
+
const projX = start[0] + vector[0] * t;
|
|
33514
|
+
const projY = start[1] + vector[1] * t;
|
|
33515
|
+
const projZ = start[2] + vector[2] * t;
|
|
33516
|
+
const distX = worldPoint[0] - projX;
|
|
33517
|
+
const distY = worldPoint[1] - projY;
|
|
33518
|
+
const distZ = worldPoint[2] - projZ;
|
|
33519
|
+
if (distX * distX + distY * distY + distZ * distZ <= radiusSquared) {
|
|
33520
|
+
return true;
|
|
33521
|
+
}
|
|
33522
|
+
}
|
|
33523
|
+
return false;
|
|
33524
|
+
};
|
|
33525
|
+
}
|
|
33334
33526
|
const initializeCircle = {
|
|
33335
33527
|
[_enums__WEBPACK_IMPORTED_MODULE_4__.StrategyCallbacks.Initialize]: (operationData) => {
|
|
33336
|
-
const { points, viewport, segmentationImageData, } = operationData;
|
|
33528
|
+
const { points, viewport, segmentationImageData, viewUp, viewPlaneNormal, } = operationData;
|
|
33337
33529
|
if (!points) {
|
|
33338
33530
|
return;
|
|
33339
33531
|
}
|
|
@@ -33347,18 +33539,35 @@ const initializeCircle = {
|
|
|
33347
33539
|
}
|
|
33348
33540
|
operationData.centerWorld = center;
|
|
33349
33541
|
operationData.centerIJK = transformWorldToIndex(segmentationImageData, center);
|
|
33542
|
+
const brushRadius = points.length >= 2 ? gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.distance */ .eR.distance(points[0], points[1]) / 2 : 0;
|
|
33350
33543
|
const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
|
|
33351
33544
|
const corners = getEllipseCornersFromCanvasCoordinates(canvasCoordinates);
|
|
33352
33545
|
const cornersInWorld = corners.map((corner) => viewport.canvasToWorld(corner));
|
|
33353
|
-
const
|
|
33354
|
-
|
|
33355
|
-
|
|
33546
|
+
const normalizedViewUp = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .eR.fromValues(viewUp[0], viewUp[1], viewUp[2]);
|
|
33547
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.normalize */ .eR.normalize(normalizedViewUp, normalizedViewUp);
|
|
33548
|
+
const normalizedPlaneNormal = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .eR.fromValues(viewPlaneNormal[0], viewPlaneNormal[1], viewPlaneNormal[2]);
|
|
33549
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.normalize */ .eR.normalize(normalizedPlaneNormal, normalizedPlaneNormal);
|
|
33550
|
+
const viewRight = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
33551
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.cross */ .eR.cross(viewRight, normalizedViewUp, normalizedPlaneNormal);
|
|
33552
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.normalize */ .eR.normalize(viewRight, viewRight);
|
|
33553
|
+
const strokeCentersSource = operationData.strokePointsWorld &&
|
|
33554
|
+
operationData.strokePointsWorld.length > 0
|
|
33555
|
+
? operationData.strokePointsWorld
|
|
33556
|
+
: [operationData.centerWorld];
|
|
33557
|
+
const strokeCenters = strokeCentersSource.map((point) => gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.clone */ .eR.clone(point));
|
|
33558
|
+
const strokeCornersWorld = strokeCenters.flatMap((centerPoint) => createCircleCornersForCenter(centerPoint, normalizedViewUp, viewRight, brushRadius));
|
|
33559
|
+
const circleCornersIJK = strokeCornersWorld.map((world) => transformWorldToIndex(segmentationImageData, world));
|
|
33356
33560
|
const boundsIJK = (0,_utilities_boundingBox__WEBPACK_IMPORTED_MODULE_2__.getBoundingBoxAroundShapeIJK)(circleCornersIJK, segmentationImageData.getDimensions());
|
|
33357
|
-
operationData.
|
|
33561
|
+
operationData.strokePointsWorld = strokeCenters;
|
|
33562
|
+
operationData.isInObject = createPointInEllipse(cornersInWorld, {
|
|
33563
|
+
strokePointsWorld: strokeCenters,
|
|
33564
|
+
segmentationImageData,
|
|
33565
|
+
radius: brushRadius,
|
|
33566
|
+
});
|
|
33358
33567
|
operationData.isInObjectBoundsIJK = boundsIJK;
|
|
33359
33568
|
},
|
|
33360
33569
|
};
|
|
33361
|
-
function createPointInEllipse(cornersInWorld = []) {
|
|
33570
|
+
function createPointInEllipse(cornersInWorld = [], options = {}) {
|
|
33362
33571
|
if (!cornersInWorld || cornersInWorld.length !== 4) {
|
|
33363
33572
|
throw new Error('createPointInEllipse: cornersInWorld must have 4 points');
|
|
33364
33573
|
}
|
|
@@ -33377,6 +33586,8 @@ function createPointInEllipse(cornersInWorld = []) {
|
|
|
33377
33586
|
const normal = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
33378
33587
|
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.cross */ .eR.cross(normal, majorAxisVec, minorAxisVec);
|
|
33379
33588
|
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.normalize */ .eR.normalize(normal, normal);
|
|
33589
|
+
const radiusForStroke = options.radius ?? Math.max(xRadius, yRadius);
|
|
33590
|
+
const strokePredicate = createStrokePredicate(options.strokePointsWorld || [], radiusForStroke);
|
|
33380
33591
|
if (isEqual(xRadius, yRadius)) {
|
|
33381
33592
|
const radius = xRadius;
|
|
33382
33593
|
const sphereObj = {
|
|
@@ -33384,11 +33595,33 @@ function createPointInEllipse(cornersInWorld = []) {
|
|
|
33384
33595
|
radius,
|
|
33385
33596
|
radius2: radius * radius,
|
|
33386
33597
|
};
|
|
33387
|
-
return (pointLPS) =>
|
|
33598
|
+
return (pointLPS, pointIJK) => {
|
|
33599
|
+
let worldPoint = pointLPS;
|
|
33600
|
+
if (!worldPoint && pointIJK && options.segmentationImageData) {
|
|
33601
|
+
worldPoint = transformIndexToWorld(options.segmentationImageData, pointIJK);
|
|
33602
|
+
}
|
|
33603
|
+
if (!worldPoint) {
|
|
33604
|
+
return false;
|
|
33605
|
+
}
|
|
33606
|
+
if (strokePredicate?.(worldPoint)) {
|
|
33607
|
+
return true;
|
|
33608
|
+
}
|
|
33609
|
+
return (0,_utilities_math_sphere__WEBPACK_IMPORTED_MODULE_6__/* .pointInSphere */ .d)(sphereObj, worldPoint);
|
|
33610
|
+
};
|
|
33388
33611
|
}
|
|
33389
|
-
return (pointLPS) => {
|
|
33612
|
+
return (pointLPS, pointIJK) => {
|
|
33613
|
+
let worldPoint = pointLPS;
|
|
33614
|
+
if (!worldPoint && pointIJK && options.segmentationImageData) {
|
|
33615
|
+
worldPoint = transformIndexToWorld(options.segmentationImageData, pointIJK);
|
|
33616
|
+
}
|
|
33617
|
+
if (!worldPoint) {
|
|
33618
|
+
return false;
|
|
33619
|
+
}
|
|
33620
|
+
if (strokePredicate?.(worldPoint)) {
|
|
33621
|
+
return true;
|
|
33622
|
+
}
|
|
33390
33623
|
const pointVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
33391
|
-
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.subtract */ .eR.subtract(pointVec,
|
|
33624
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.subtract */ .eR.subtract(pointVec, worldPoint, center);
|
|
33392
33625
|
const distToPlane = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.dot */ .eR.dot(pointVec, normal);
|
|
33393
33626
|
const proj = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
33394
33627
|
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.scaleAndAdd */ .eR.scaleAndAdd(proj, pointVec, normal, -distToPlane);
|
|
@@ -35075,14 +35308,21 @@ function addSegmentInSegmentation(segmentation, { segmentIndex, label, color })
|
|
|
35075
35308
|
if (!segmentation?.segments) {
|
|
35076
35309
|
return;
|
|
35077
35310
|
}
|
|
35078
|
-
segmentation.segments[segmentIndex]
|
|
35311
|
+
const segmentData = segmentation.segments[segmentIndex] ?? {
|
|
35079
35312
|
active: false,
|
|
35080
35313
|
locked: false,
|
|
35081
|
-
label,
|
|
35082
35314
|
segmentIndex,
|
|
35083
35315
|
cachedStats: {},
|
|
35316
|
+
label,
|
|
35084
35317
|
color,
|
|
35085
35318
|
};
|
|
35319
|
+
if (label !== undefined) {
|
|
35320
|
+
segmentData.label = label;
|
|
35321
|
+
}
|
|
35322
|
+
if (color !== undefined) {
|
|
35323
|
+
segmentData.color = color;
|
|
35324
|
+
}
|
|
35325
|
+
segmentation.segments[segmentIndex] = segmentData;
|
|
35086
35326
|
}
|
|
35087
35327
|
function removeAnnotations(annotationUIDList) {
|
|
35088
35328
|
annotationUIDList.forEach((annotationUID) => {
|
|
@@ -42353,6 +42593,8 @@ function setAnnotationLabel(annotation, element, updatedLabel) {
|
|
|
42353
42593
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15327);
|
|
42354
42594
|
/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30045);
|
|
42355
42595
|
/* harmony import */ var _stackPrefetchUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94762);
|
|
42596
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(99737);
|
|
42597
|
+
|
|
42356
42598
|
|
|
42357
42599
|
|
|
42358
42600
|
|
|
@@ -42460,6 +42702,13 @@ function prefetch(element, priority = 0) {
|
|
|
42460
42702
|
}
|
|
42461
42703
|
}
|
|
42462
42704
|
}
|
|
42705
|
+
if (stackPrefetch.indicesToRequest.length === 0) {
|
|
42706
|
+
const eventDetail = {
|
|
42707
|
+
element: element,
|
|
42708
|
+
lastPrefetchedImageId: imageId,
|
|
42709
|
+
};
|
|
42710
|
+
(0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.STACK_PREFETCH_COMPLETE, eventDetail);
|
|
42711
|
+
}
|
|
42463
42712
|
}
|
|
42464
42713
|
const requestFn = (imageId, options) => {
|
|
42465
42714
|
const { retrieveOptions = {} } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.metaData.get(imageRetrieveMetadataProvider.IMAGE_RETRIEVE_CONFIGURATION, imageId, 'stack') || {};
|
|
@@ -42597,6 +42846,8 @@ const stackContextPrefetch = {
|
|
|
42597
42846
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15327);
|
|
42598
42847
|
/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30045);
|
|
42599
42848
|
/* harmony import */ var _stackPrefetchUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94762);
|
|
42849
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(99737);
|
|
42850
|
+
|
|
42600
42851
|
|
|
42601
42852
|
|
|
42602
42853
|
|
|
@@ -42659,6 +42910,13 @@ function prefetch(element) {
|
|
|
42659
42910
|
console.log('prefetch done: %s', imageId);
|
|
42660
42911
|
const imageIdIndex = stack.imageIds.indexOf(imageId);
|
|
42661
42912
|
removeFromList(imageIdIndex);
|
|
42913
|
+
if (stackPrefetch.indicesToRequest.length === 0) {
|
|
42914
|
+
const eventDetail = {
|
|
42915
|
+
element: element,
|
|
42916
|
+
lastPrefetchedImageId: imageId,
|
|
42917
|
+
};
|
|
42918
|
+
(0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.STACK_PREFETCH_COMPLETE, eventDetail);
|
|
42919
|
+
}
|
|
42662
42920
|
}
|
|
42663
42921
|
let lowerIndex = nearest.low;
|
|
42664
42922
|
let higherIndex = nearest.high;
|
|
@@ -43798,7 +44056,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
43798
44056
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
43799
44057
|
/* harmony export */ r: () => (/* binding */ version)
|
|
43800
44058
|
/* harmony export */ });
|
|
43801
|
-
const version = '4.3
|
|
44059
|
+
const version = '4.5.3';
|
|
43802
44060
|
|
|
43803
44061
|
|
|
43804
44062
|
/***/ }),
|
|
@@ -39,6 +39,7 @@ var Events;
|
|
|
39
39
|
Events["CROSSHAIR_TOOL_CENTER_CHANGED"] = "CORNERSTONE_TOOLS_CROSSHAIR_TOOL_CENTER_CHANGED";
|
|
40
40
|
Events["VOLUMECROPPINGCONTROL_TOOL_CHANGED"] = "CORNERSTONE_TOOLS_VOLUMECROPPINGCONTROL_TOOL_CHANGED";
|
|
41
41
|
Events["VOLUMECROPPING_TOOL_CHANGED"] = "CORNERSTONE_TOOLS_VOLUMECROPPING_TOOL_CHANGED";
|
|
42
|
+
Events["STACK_PREFETCH_COMPLETE"] = "CORNERSTONE_TOOLS_STACK_PREFETCH_COMPLETE";
|
|
42
43
|
Events["ANNOTATION_ADDED"] = "CORNERSTONE_TOOLS_ANNOTATION_ADDED";
|
|
43
44
|
Events["ANNOTATION_COMPLETED"] = "CORNERSTONE_TOOLS_ANNOTATION_COMPLETED";
|
|
44
45
|
Events["ANNOTATION_MODIFIED"] = "CORNERSTONE_TOOLS_ANNOTATION_MODIFIED";
|
|
@@ -39,6 +39,7 @@ var Events;
|
|
|
39
39
|
Events["CROSSHAIR_TOOL_CENTER_CHANGED"] = "CORNERSTONE_TOOLS_CROSSHAIR_TOOL_CENTER_CHANGED";
|
|
40
40
|
Events["VOLUMECROPPINGCONTROL_TOOL_CHANGED"] = "CORNERSTONE_TOOLS_VOLUMECROPPINGCONTROL_TOOL_CHANGED";
|
|
41
41
|
Events["VOLUMECROPPING_TOOL_CHANGED"] = "CORNERSTONE_TOOLS_VOLUMECROPPING_TOOL_CHANGED";
|
|
42
|
+
Events["STACK_PREFETCH_COMPLETE"] = "CORNERSTONE_TOOLS_STACK_PREFETCH_COMPLETE";
|
|
42
43
|
Events["ANNOTATION_ADDED"] = "CORNERSTONE_TOOLS_ANNOTATION_ADDED";
|
|
43
44
|
Events["ANNOTATION_COMPLETED"] = "CORNERSTONE_TOOLS_ANNOTATION_COMPLETED";
|
|
44
45
|
Events["ANNOTATION_MODIFIED"] = "CORNERSTONE_TOOLS_ANNOTATION_MODIFIED";
|