@ohif/app 3.12.0-beta.105 → 3.12.0-beta.107
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/{1403.bundle.e558236251c496bf5b87.js → 1403.bundle.723dc2c9d02fa9285252.js} +2 -0
- package/dist/{1730.bundle.09b8dafc3f9bde8e3c4f.js → 1730.bundle.15162827cbb96ee94ed7.js} +2 -0
- package/dist/{1927.bundle.019331c266d306772371.js → 1927.bundle.3050588e95f43cf57cdd.js} +1 -1
- package/dist/{2842.bundle.7852a204d3510fca8b27.js → 2842.bundle.72b8e407027b26a34584.js} +68 -101
- package/dist/{3081.bundle.192e10961178ac5077cc.js → 3081.bundle.cf7239e7b030e2d6d68f.js} +14 -4
- package/dist/{3343.bundle.f8fe9316b0ff68d087f7.js → 3343.bundle.d7578ce8f75d158c0bab.js} +2 -0
- package/dist/{3353.bundle.a0f1654c642395bbbbbc.js → 3353.bundle.7d5f628fe7eb8fe738ce.js} +146 -144
- package/dist/{4019.bundle.01f63d5dd5b96ded0c00.js → 4019.bundle.cdb81fb4777792f6175d.js} +132 -10
- package/dist/{4775.bundle.16fc2ed5bd3c9fc90001.js → 4775.bundle.3ac5a927447b149ba482.js} +2 -0
- package/dist/{5400.bundle.de97508611da1c00d58a.js → 5400.bundle.be4bdac337da734fdcd3.js} +1 -0
- package/dist/{5448.bundle.9a36e001169ea3bfeb6c.js → 5448.bundle.2a82fcfac24d62355154.js} +22 -6
- package/dist/{5462.bundle.a81a691eeef782ab95b9.js → 5462.bundle.21beddaca145b7465c72.js} +2 -0
- package/dist/{5549.bundle.d5def6a3124a3a481b7c.js → 5549.bundle.4d086f8682a317140e65.js} +159 -155
- package/dist/{6163.bundle.8145a6c7394d0ffa60f4.js → 6163.bundle.f64fca2cfb173bae58f3.js} +2 -0
- package/dist/{7412.bundle.aec4834a71fc27c4ce06.js → 7412.bundle.7b062eda3b01de135817.js} +119 -151
- package/dist/{7639.bundle.ff51bb4280f3d33869fd.js → 7639.bundle.5f3f7eb1614866bfbad8.js} +9 -5
- package/dist/{8558.bundle.5d584fd9fb1bcb89ea93.js → 8558.bundle.dc24e7f5dfe0116c409a.js} +30 -0
- package/dist/{9195.bundle.3f97c0156c3da14e62c8.js → 9195.bundle.860c516e4b9171ca47ab.js} +2 -2
- package/dist/{app.bundle.afb8f18ed44df91b4ea6.js → app.bundle.c7088253ef2bf42bec77.js} +66 -15
- package/dist/app.bundle.css +1 -1
- package/dist/{compute.bundle.fdee4a0f193ee2e1b6da.js → compute.bundle.6f1bd84d7c7116ff82a4.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.11f9746cd60c9811a412.js → polySeg.bundle.d4bcf15986821b88dec9.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +21 -21
- /package/dist/{1459.bundle.ce2fcc7f893b66723c0a.js → 1459.bundle.f27242a2c7f6307e4fb1.js} +0 -0
- /package/dist/{1933.bundle.373e04f9eebb70186ae1.js → 1933.bundle.7b61aad2e86fe144b849.js} +0 -0
- /package/dist/{2018.bundle.d6b41648adeda2be5e42.js → 2018.bundle.f877a0a76ee1779346c0.js} +0 -0
- /package/dist/{213.bundle.a856837fe85a0c3d80fa.js → 213.bundle.6965a3c4a1367855fc9f.js} +0 -0
- /package/dist/{2424.bundle.170efb7c5fe559d8155f.js → 2424.bundle.c0ce0ad5fb44b7e3bb99.js} +0 -0
- /package/dist/{3461.bundle.02c3e5d65610076cee3e.js → 3461.bundle.6f29abe6ac601020dd11.js} +0 -0
- /package/dist/{4819.bundle.2a36c7376610495e0618.js → 4819.bundle.cb3b4a58c03eb3082f74.js} +0 -0
- /package/dist/{5028.bundle.3d86226f1245834bcb9a.js → 5028.bundle.ed6b4c31f479cc643d7c.js} +0 -0
- /package/dist/{5457.bundle.14acfe3d1f3c03d37036.js → 5457.bundle.ee5f923bfb133b9e224d.js} +0 -0
- /package/dist/{5485.bundle.b840c31f59f0e661efa3.js → 5485.bundle.0c8ac9fd761e35dc94b6.js} +0 -0
- /package/dist/{5858.bundle.d5f4bf849aaeebf5025c.js → 5858.bundle.ff6b340cf7457db76a1a.js} +0 -0
- /package/dist/{6027.bundle.090813925edfa95aaabe.js → 6027.bundle.f7a3ea557fa1499abf1e.js} +0 -0
- /package/dist/{8305.bundle.ab84f3246234aa0e4a8e.js → 8305.bundle.f40d14f3c5582d39ac70.js} +0 -0
- /package/dist/{85.bundle.a3e030a8efe2c1061025.js → 85.bundle.c298c4d5e71309ba0553.js} +0 -0
- /package/dist/{8583.bundle.659f3cf4b4c64a985dd8.js → 8583.bundle.848889e9b845174b92c6.js} +0 -0
- /package/dist/{9927.bundle.f6af980e75c32a8bfd93.js → 9927.bundle.daf54f42abe4b519c2b1.js} +0 -0
|
@@ -109,6 +109,8 @@ var SegmentationRepresentations;
|
|
|
109
109
|
/* harmony export */ });
|
|
110
110
|
var StrategyCallbacks;
|
|
111
111
|
(function (StrategyCallbacks) {
|
|
112
|
+
StrategyCallbacks["CalculateCursorGeometry"] = "calculateCursorGeometry";
|
|
113
|
+
StrategyCallbacks["RenderCursor"] = "renderCursor";
|
|
112
114
|
StrategyCallbacks["OnInteractionStart"] = "onInteractionStart";
|
|
113
115
|
StrategyCallbacks["OnInteractionEnd"] = "onInteractionEnd";
|
|
114
116
|
StrategyCallbacks["Preview"] = "preview";
|
|
@@ -109,6 +109,8 @@ var SegmentationRepresentations;
|
|
|
109
109
|
/* harmony export */ });
|
|
110
110
|
var StrategyCallbacks;
|
|
111
111
|
(function (StrategyCallbacks) {
|
|
112
|
+
StrategyCallbacks["CalculateCursorGeometry"] = "calculateCursorGeometry";
|
|
113
|
+
StrategyCallbacks["RenderCursor"] = "renderCursor";
|
|
112
114
|
StrategyCallbacks["OnInteractionStart"] = "onInteractionStart";
|
|
113
115
|
StrategyCallbacks["OnInteractionEnd"] = "onInteractionEnd";
|
|
114
116
|
StrategyCallbacks["Preview"] = "preview";
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
/******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
|
|
171
171
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
172
172
|
/******/ // return url for filenames based on template
|
|
173
|
-
/******/ return "" + chunkId + ".bundle." + {"732":"6978ac30a1e36abf06db","5858":"
|
|
173
|
+
/******/ return "" + chunkId + ".bundle." + {"732":"6978ac30a1e36abf06db","5858":"ff6b340cf7457db76a1a","8094":"5c44190a325ac23e3e5c"}[chunkId] + ".js";
|
|
174
174
|
/******/ };
|
|
175
175
|
/******/ })();
|
|
176
176
|
/******/
|
|
@@ -2057,8 +2057,40 @@ function buildMetadata(image) {
|
|
|
2057
2057
|
|
|
2058
2058
|
|
|
2059
2059
|
|
|
2060
|
+
const DEFAULT_THICKNESS_SINGLE_SLICE = 1;
|
|
2061
|
+
function getPixelSpacingForCubicVoxel(metadata) {
|
|
2062
|
+
if (metadata.columnPixelSpacing !== undefined) {
|
|
2063
|
+
return metadata.columnPixelSpacing;
|
|
2064
|
+
}
|
|
2065
|
+
if (metadata.rowPixelSpacing !== undefined) {
|
|
2066
|
+
return metadata.rowPixelSpacing;
|
|
2067
|
+
}
|
|
2068
|
+
if (metadata.pixelSpacing?.[1] !== undefined) {
|
|
2069
|
+
return metadata.pixelSpacing[1];
|
|
2070
|
+
}
|
|
2071
|
+
if (metadata.pixelSpacing?.[0] !== undefined) {
|
|
2072
|
+
return metadata.pixelSpacing[0];
|
|
2073
|
+
}
|
|
2074
|
+
return undefined;
|
|
2075
|
+
}
|
|
2060
2076
|
function calculateSpacingBetweenImageIds(imageIds) {
|
|
2061
2077
|
const { imagePositionPatient: referenceImagePositionPatient, imageOrientationPatient, } = _metaData__WEBPACK_IMPORTED_MODULE_1__.get('imagePlaneModule', imageIds[0]);
|
|
2078
|
+
if (imageIds.length === 1) {
|
|
2079
|
+
const { sliceThickness, spacingBetweenSlices, columnPixelSpacing, rowPixelSpacing, pixelSpacing, } = _metaData__WEBPACK_IMPORTED_MODULE_1__.get('imagePlaneModule', imageIds[0]);
|
|
2080
|
+
if (sliceThickness)
|
|
2081
|
+
return sliceThickness;
|
|
2082
|
+
if (spacingBetweenSlices)
|
|
2083
|
+
return spacingBetweenSlices;
|
|
2084
|
+
const pixelSpacingValue = getPixelSpacingForCubicVoxel({
|
|
2085
|
+
columnPixelSpacing,
|
|
2086
|
+
rowPixelSpacing,
|
|
2087
|
+
pixelSpacing,
|
|
2088
|
+
});
|
|
2089
|
+
if (pixelSpacingValue !== undefined) {
|
|
2090
|
+
return pixelSpacingValue;
|
|
2091
|
+
}
|
|
2092
|
+
return DEFAULT_THICKNESS_SINGLE_SLICE;
|
|
2093
|
+
}
|
|
2062
2094
|
const rowCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .eR.fromValues(imageOrientationPatient[0], imageOrientationPatient[1], imageOrientationPatient[2]);
|
|
2063
2095
|
const colCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .eR.fromValues(imageOrientationPatient[3], imageOrientationPatient[4], imageOrientationPatient[5]);
|
|
2064
2096
|
const scanAxisNormal = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .eR.create();
|
|
@@ -2093,8 +2125,6 @@ function calculateSpacingBetweenImageIds(imageIds) {
|
|
|
2093
2125
|
imageIds[0],
|
|
2094
2126
|
imageIds[Math.floor(imageIds.length / 2)],
|
|
2095
2127
|
];
|
|
2096
|
-
const firstImageDistance = getDistance(prefetchedImageIds[0]);
|
|
2097
|
-
const middleImageDistance = getDistance(prefetchedImageIds[1]);
|
|
2098
2128
|
const metadataForMiddleImage = _metaData__WEBPACK_IMPORTED_MODULE_1__.get('imagePlaneModule', prefetchedImageIds[1]);
|
|
2099
2129
|
if (!metadataForMiddleImage) {
|
|
2100
2130
|
throw new Error('Incomplete metadata required for volume construction.');
|
|
@@ -2107,7 +2137,7 @@ function calculateSpacingBetweenImageIds(imageIds) {
|
|
|
2107
2137
|
Math.abs(distanceBetweenFirstAndMiddleImages) /
|
|
2108
2138
|
Math.floor(imageIds.length / 2);
|
|
2109
2139
|
}
|
|
2110
|
-
const { sliceThickness, spacingBetweenSlices } = _metaData__WEBPACK_IMPORTED_MODULE_1__.get('imagePlaneModule', imageIds[0]);
|
|
2140
|
+
const { sliceThickness, spacingBetweenSlices, columnPixelSpacing, rowPixelSpacing, pixelSpacing, } = _metaData__WEBPACK_IMPORTED_MODULE_1__.get('imagePlaneModule', imageIds[0]);
|
|
2111
2141
|
const { strictZSpacingForVolumeViewport } = (0,_init__WEBPACK_IMPORTED_MODULE_2__/* .getConfiguration */ .D0)().rendering;
|
|
2112
2142
|
if ((spacing === 0 || isNaN(spacing)) && !strictZSpacingForVolumeViewport) {
|
|
2113
2143
|
if (spacingBetweenSlices) {
|
|
@@ -2119,8 +2149,18 @@ function calculateSpacingBetweenImageIds(imageIds) {
|
|
|
2119
2149
|
spacing = sliceThickness;
|
|
2120
2150
|
}
|
|
2121
2151
|
else {
|
|
2122
|
-
|
|
2123
|
-
|
|
2152
|
+
const pixelSpacingValue = getPixelSpacingForCubicVoxel({
|
|
2153
|
+
columnPixelSpacing,
|
|
2154
|
+
rowPixelSpacing,
|
|
2155
|
+
pixelSpacing,
|
|
2156
|
+
});
|
|
2157
|
+
if (pixelSpacingValue) {
|
|
2158
|
+
spacing = pixelSpacingValue;
|
|
2159
|
+
}
|
|
2160
|
+
else {
|
|
2161
|
+
console.debug(`Could not calculate spacing and no pixel spacing found. Using default thickness (${DEFAULT_THICKNESS_SINGLE_SLICE} mm)`);
|
|
2162
|
+
spacing = DEFAULT_THICKNESS_SINGLE_SLICE;
|
|
2163
|
+
}
|
|
2124
2164
|
}
|
|
2125
2165
|
}
|
|
2126
2166
|
return spacing;
|
|
@@ -4279,7 +4319,7 @@ var isEqual = __webpack_require__(74638);
|
|
|
4279
4319
|
|
|
4280
4320
|
|
|
4281
4321
|
function isValidVolume(imageIds) {
|
|
4282
|
-
if (imageIds.length
|
|
4322
|
+
if (!imageIds.length) {
|
|
4283
4323
|
return false;
|
|
4284
4324
|
}
|
|
4285
4325
|
const imageId0 = imageIds[0];
|
|
@@ -4877,6 +4917,8 @@ function scroll_scroll(viewport, options) {
|
|
|
4877
4917
|
function scrollVolume(viewport, volumeId, delta, scrollSlabs = false) {
|
|
4878
4918
|
const useSlabThickness = scrollSlabs;
|
|
4879
4919
|
const { numScrollSteps, currentStepIndex, sliceRangeInfo } = (0,getVolumeViewportScrollInfo/* default */.A)(viewport, volumeId, useSlabThickness);
|
|
4920
|
+
if (numScrollSteps === 0)
|
|
4921
|
+
return;
|
|
4880
4922
|
if (!sliceRangeInfo) {
|
|
4881
4923
|
return;
|
|
4882
4924
|
}
|
|
@@ -8808,12 +8850,10 @@ function defaultGetTextLines(data, targetId) {
|
|
|
8808
8850
|
/* harmony import */ var _strategies_eraseSphere__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1989);
|
|
8809
8851
|
/* harmony import */ var _strategies_fillCircle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(56789);
|
|
8810
8852
|
/* harmony import */ var _strategies_eraseCircle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33852);
|
|
8811
|
-
/* harmony import */ var
|
|
8812
|
-
/* harmony import */ var
|
|
8813
|
-
/* harmony import */ var
|
|
8814
|
-
/* harmony import */ var
|
|
8815
|
-
/* harmony import */ var _strategies_utils_getStrategyData__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(40905);
|
|
8816
|
-
|
|
8853
|
+
/* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7001);
|
|
8854
|
+
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(58640);
|
|
8855
|
+
/* harmony import */ var _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23631);
|
|
8856
|
+
/* harmony import */ var _strategies_utils_getStrategyData__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(40905);
|
|
8817
8857
|
|
|
8818
8858
|
|
|
8819
8859
|
|
|
@@ -8825,7 +8865,7 @@ function defaultGetTextLines(data, targetId) {
|
|
|
8825
8865
|
|
|
8826
8866
|
|
|
8827
8867
|
|
|
8828
|
-
class BrushTool extends
|
|
8868
|
+
class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A {
|
|
8829
8869
|
constructor(toolProps = {}, defaultToolProps = {
|
|
8830
8870
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
8831
8871
|
configuration: {
|
|
@@ -8912,7 +8952,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
8912
8952
|
const { viewport } = enabledElement;
|
|
8913
8953
|
this._editData = this.createEditData(element);
|
|
8914
8954
|
this._activateDraw(element);
|
|
8915
|
-
(0,
|
|
8955
|
+
(0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__.hideElementCursor)(element);
|
|
8916
8956
|
evt.preventDefault();
|
|
8917
8957
|
this._previewData.isDrag = false;
|
|
8918
8958
|
this._previewData.timerStart = Date.now();
|
|
@@ -8926,7 +8966,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
8926
8966
|
world: gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.clone */ .eR.clone(worldPoint),
|
|
8927
8967
|
};
|
|
8928
8968
|
const hoverData = this._hoverData || this.createHoverData(element);
|
|
8929
|
-
(0,
|
|
8969
|
+
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(hoverData.viewportIdsToRender);
|
|
8930
8970
|
const operationData = this.getOperationData(element);
|
|
8931
8971
|
if (!operationData) {
|
|
8932
8972
|
return false;
|
|
@@ -8935,6 +8975,9 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
8935
8975
|
return true;
|
|
8936
8976
|
};
|
|
8937
8977
|
this.mouseMoveCallback = (evt) => {
|
|
8978
|
+
if (!this.isPrimary) {
|
|
8979
|
+
return;
|
|
8980
|
+
}
|
|
8938
8981
|
if (this.mode === _enums__WEBPACK_IMPORTED_MODULE_2__.ToolModes.Active) {
|
|
8939
8982
|
this.updateCursor(evt);
|
|
8940
8983
|
if (!this.configuration.preview.enabled) {
|
|
@@ -8983,7 +9026,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
8983
9026
|
}
|
|
8984
9027
|
const { viewport } = enabledElement;
|
|
8985
9028
|
const activeStrategy = this.configuration.activeStrategy;
|
|
8986
|
-
const strategyData = (0,
|
|
9029
|
+
const strategyData = (0,_strategies_utils_getStrategyData__WEBPACK_IMPORTED_MODULE_10__/* .getStrategyData */ .S)({
|
|
8987
9030
|
operationData,
|
|
8988
9031
|
viewport,
|
|
8989
9032
|
strategy: activeStrategy,
|
|
@@ -9005,7 +9048,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
9005
9048
|
const { viewport } = enabledElement;
|
|
9006
9049
|
this.updateCursor(evt);
|
|
9007
9050
|
const { viewportIdsToRender } = this._hoverData;
|
|
9008
|
-
(0,
|
|
9051
|
+
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(viewportIdsToRender);
|
|
9009
9052
|
const delta = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec2.distance */ .Zc.distance(currentPoints.canvas, this._previewData.startPoint);
|
|
9010
9053
|
const { dragTimeMs, dragMoveDistance } = this.configuration.preview;
|
|
9011
9054
|
if (!this._previewData.isDrag &&
|
|
@@ -9067,7 +9110,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
9067
9110
|
}
|
|
9068
9111
|
this.doneEditMemo();
|
|
9069
9112
|
this._deactivateDraw(element);
|
|
9070
|
-
(0,
|
|
9113
|
+
(0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__.resetElementCursor)(element);
|
|
9071
9114
|
this.updateCursor(evt);
|
|
9072
9115
|
this._editData = null;
|
|
9073
9116
|
this._lastDragInfo = null;
|
|
@@ -9101,55 +9144,12 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
9101
9144
|
if (!this._hoverData) {
|
|
9102
9145
|
return;
|
|
9103
9146
|
}
|
|
9104
|
-
|
|
9147
|
+
BrushTool.activeCursorTool = this;
|
|
9148
|
+
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this._hoverData.viewportIdsToRender);
|
|
9105
9149
|
}
|
|
9106
9150
|
_calculateCursor(element, centerCanvas) {
|
|
9107
9151
|
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
|
|
9108
|
-
|
|
9109
|
-
const { canvasToWorld } = viewport;
|
|
9110
|
-
const camera = viewport.getCamera();
|
|
9111
|
-
const { brushSize } = this.configuration;
|
|
9112
|
-
const viewUp = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.fromValues */ .eR.fromValues(camera.viewUp[0], camera.viewUp[1], camera.viewUp[2]);
|
|
9113
|
-
const viewPlaneNormal = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.fromValues */ .eR.fromValues(camera.viewPlaneNormal[0], camera.viewPlaneNormal[1], camera.viewPlaneNormal[2]);
|
|
9114
|
-
const viewRight = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
|
|
9115
|
-
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.cross */ .eR.cross(viewRight, viewUp, viewPlaneNormal);
|
|
9116
|
-
const centerCursorInWorld = canvasToWorld([
|
|
9117
|
-
centerCanvas[0],
|
|
9118
|
-
centerCanvas[1],
|
|
9119
|
-
]);
|
|
9120
|
-
const bottomCursorInWorld = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
|
|
9121
|
-
const topCursorInWorld = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
|
|
9122
|
-
const leftCursorInWorld = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
|
|
9123
|
-
const rightCursorInWorld = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
|
|
9124
|
-
for (let i = 0; i <= 2; i++) {
|
|
9125
|
-
bottomCursorInWorld[i] = centerCursorInWorld[i] - viewUp[i] * brushSize;
|
|
9126
|
-
topCursorInWorld[i] = centerCursorInWorld[i] + viewUp[i] * brushSize;
|
|
9127
|
-
leftCursorInWorld[i] = centerCursorInWorld[i] - viewRight[i] * brushSize;
|
|
9128
|
-
rightCursorInWorld[i] = centerCursorInWorld[i] + viewRight[i] * brushSize;
|
|
9129
|
-
}
|
|
9130
|
-
if (!this._hoverData) {
|
|
9131
|
-
return;
|
|
9132
|
-
}
|
|
9133
|
-
const { brushCursor } = this._hoverData;
|
|
9134
|
-
const { data } = brushCursor;
|
|
9135
|
-
if (data.handles === undefined) {
|
|
9136
|
-
data.handles = {};
|
|
9137
|
-
}
|
|
9138
|
-
data.handles.points = [
|
|
9139
|
-
bottomCursorInWorld,
|
|
9140
|
-
topCursorInWorld,
|
|
9141
|
-
leftCursorInWorld,
|
|
9142
|
-
rightCursorInWorld,
|
|
9143
|
-
];
|
|
9144
|
-
const activeStrategy = this.configuration.activeStrategy;
|
|
9145
|
-
const strategy = this.configuration.strategies[activeStrategy];
|
|
9146
|
-
if (typeof strategy?.computeInnerCircleRadius === 'function') {
|
|
9147
|
-
strategy.computeInnerCircleRadius({
|
|
9148
|
-
configuration: this.configuration,
|
|
9149
|
-
viewport,
|
|
9150
|
-
});
|
|
9151
|
-
}
|
|
9152
|
-
data.invalidated = false;
|
|
9152
|
+
this.applyActiveStrategyCallback(enabledElement, this.getOperationData(element), _enums__WEBPACK_IMPORTED_MODULE_2__.StrategyCallbacks.CalculateCursorGeometry);
|
|
9153
9153
|
}
|
|
9154
9154
|
getStatistics(element, segmentIndices) {
|
|
9155
9155
|
if (!element) {
|
|
@@ -9197,7 +9197,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
9197
9197
|
this._hoverData.brushCursor.metadata.segmentColor = segmentColor;
|
|
9198
9198
|
}
|
|
9199
9199
|
renderAnnotation(enabledElement, svgDrawingHelper) {
|
|
9200
|
-
if (!this._hoverData) {
|
|
9200
|
+
if (!this._hoverData || BrushTool.activeCursorTool !== this) {
|
|
9201
9201
|
return;
|
|
9202
9202
|
}
|
|
9203
9203
|
const { viewport } = enabledElement;
|
|
@@ -9211,40 +9211,7 @@ class BrushTool extends _LabelmapBaseTool__WEBPACK_IMPORTED_MODULE_10__/* ["defa
|
|
|
9211
9211
|
const { element } = viewport;
|
|
9212
9212
|
this._calculateCursor(element, centerCanvas);
|
|
9213
9213
|
}
|
|
9214
|
-
|
|
9215
|
-
if (!toolMetadata) {
|
|
9216
|
-
return;
|
|
9217
|
-
}
|
|
9218
|
-
const annotationUID = toolMetadata.brushCursorUID;
|
|
9219
|
-
const data = brushCursor.data;
|
|
9220
|
-
const { points } = data.handles;
|
|
9221
|
-
const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
|
|
9222
|
-
const bottom = canvasCoordinates[0];
|
|
9223
|
-
const top = canvasCoordinates[1];
|
|
9224
|
-
const center = [
|
|
9225
|
-
Math.floor((bottom[0] + top[0]) / 2),
|
|
9226
|
-
Math.floor((bottom[1] + top[1]) / 2),
|
|
9227
|
-
];
|
|
9228
|
-
const radius = Math.abs(bottom[1] - Math.floor((bottom[1] + top[1]) / 2));
|
|
9229
|
-
const color = `rgb(${toolMetadata.segmentColor?.slice(0, 3) || [0, 0, 0]})`;
|
|
9230
|
-
if (!viewport.getRenderingEngine()) {
|
|
9231
|
-
console.warn('Rendering Engine has been destroyed');
|
|
9232
|
-
return;
|
|
9233
|
-
}
|
|
9234
|
-
const circleUID = '0';
|
|
9235
|
-
(0,_drawingSvg__WEBPACK_IMPORTED_MODULE_7__.drawCircle)(svgDrawingHelper, annotationUID, circleUID, center, radius, {
|
|
9236
|
-
color,
|
|
9237
|
-
lineDash: this.centerSegmentIndexInfo.segmentIndex === 0 ? [1, 2] : null,
|
|
9238
|
-
});
|
|
9239
|
-
const { dynamicRadiusInCanvas } = this.configuration?.threshold || {
|
|
9240
|
-
dynamicRadiusInCanvas: 0,
|
|
9241
|
-
};
|
|
9242
|
-
if (dynamicRadiusInCanvas) {
|
|
9243
|
-
const circleUID1 = '1';
|
|
9244
|
-
(0,_drawingSvg__WEBPACK_IMPORTED_MODULE_7__.drawCircle)(svgDrawingHelper, annotationUID, circleUID1, center, dynamicRadiusInCanvas, {
|
|
9245
|
-
color,
|
|
9246
|
-
});
|
|
9247
|
-
}
|
|
9214
|
+
this.applyActiveStrategyCallback(enabledElement, this.getOperationData(viewport.element), _enums__WEBPACK_IMPORTED_MODULE_2__.StrategyCallbacks.RenderCursor, svgDrawingHelper);
|
|
9248
9215
|
}
|
|
9249
9216
|
}
|
|
9250
9217
|
BrushTool.toolName = 'Brush';
|
|
@@ -9269,7 +9236,7 @@ BrushTool.toolName = 'Brush';
|
|
|
9269
9236
|
/* harmony import */ var _utilities_boundingBox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72282);
|
|
9270
9237
|
/* harmony import */ var _BrushStrategy__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55887);
|
|
9271
9238
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29857);
|
|
9272
|
-
/* harmony import */ var _compositions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
9239
|
+
/* harmony import */ var _compositions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(64664);
|
|
9273
9240
|
/* harmony import */ var _utilities_math_sphere__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62783);
|
|
9274
9241
|
|
|
9275
9242
|
|
|
@@ -9492,7 +9459,7 @@ function fillOutsideCircle() {
|
|
|
9492
9459
|
/* harmony import */ var _utilities_boundingBox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72282);
|
|
9493
9460
|
/* harmony import */ var _BrushStrategy__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55887);
|
|
9494
9461
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29857);
|
|
9495
|
-
/* harmony import */ var _compositions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
9462
|
+
/* harmony import */ var _compositions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(64664);
|
|
9496
9463
|
|
|
9497
9464
|
|
|
9498
9465
|
|
|
@@ -23645,16 +23645,17 @@ const workerFn = () => {
|
|
|
23645
23645
|
name: 'histogram-worker' // name used by the browser to name the worker
|
|
23646
23646
|
});
|
|
23647
23647
|
};
|
|
23648
|
+
|
|
23649
|
+
// Register worker once at module load time
|
|
23650
|
+
workerManager.registerWorker('histogram-worker', workerFn, WorkerOptions);
|
|
23648
23651
|
const getViewportVolumeHistogram = async (viewport, volume, options) => {
|
|
23649
|
-
workerManager.registerWorker('histogram-worker', workerFn, WorkerOptions);
|
|
23650
23652
|
const volumeImageData = viewport.getImageData(volume.volumeId);
|
|
23651
23653
|
if (!volumeImageData) {
|
|
23652
23654
|
return undefined;
|
|
23653
23655
|
}
|
|
23654
23656
|
let scalarData = volume.scalarData;
|
|
23655
23657
|
if (volume.numTimePoints > 1) {
|
|
23656
|
-
|
|
23657
|
-
scalarData = volume.voxelManager.getTimePointScalarData(targetTimePoint);
|
|
23658
|
+
scalarData = volume.voxelManager.getDimensionGroupScalarData(volume.numTimePoints);
|
|
23658
23659
|
} else {
|
|
23659
23660
|
scalarData = volume.voxelManager.getCompleteScalarDataArray();
|
|
23660
23661
|
}
|
|
@@ -23703,6 +23704,9 @@ const getViewportVolumeHistogram = async (viewport, volume, options) => {
|
|
|
23703
23704
|
* Gets node opacity from volume actor
|
|
23704
23705
|
*/
|
|
23705
23706
|
const getNodeOpacity = (volumeActor, nodeIndex) => {
|
|
23707
|
+
if (!volumeActor) {
|
|
23708
|
+
return undefined;
|
|
23709
|
+
}
|
|
23706
23710
|
const volumeOpacity = volumeActor.getProperty().getScalarOpacity(0);
|
|
23707
23711
|
const nodeValue = [];
|
|
23708
23712
|
volumeOpacity.getNodeValue(nodeIndex, nodeValue);
|
|
@@ -23713,6 +23717,9 @@ const getNodeOpacity = (volumeActor, nodeIndex) => {
|
|
|
23713
23717
|
* Checks if the opacity applied to the PET volume follows a specific pattern
|
|
23714
23718
|
*/
|
|
23715
23719
|
const isPetVolumeWithDefaultOpacity = (volumeId, volumeActor) => {
|
|
23720
|
+
if (!volumeActor) {
|
|
23721
|
+
return false;
|
|
23722
|
+
}
|
|
23716
23723
|
const volume = esm.cache.getVolume(volumeId);
|
|
23717
23724
|
if (!volume || volume.metadata.Modality !== 'PT') {
|
|
23718
23725
|
return false;
|
|
@@ -23744,6 +23751,9 @@ const isPetVolumeWithDefaultOpacity = (volumeId, volumeActor) => {
|
|
|
23744
23751
|
* Checks if volume has constant opacity
|
|
23745
23752
|
*/
|
|
23746
23753
|
const isVolumeWithConstantOpacity = volumeActor => {
|
|
23754
|
+
if (!volumeActor) {
|
|
23755
|
+
return false;
|
|
23756
|
+
}
|
|
23747
23757
|
const volumeOpacity = volumeActor.getProperty().getScalarOpacity(0);
|
|
23748
23758
|
const opacitySize = volumeOpacity.getSize();
|
|
23749
23759
|
const firstNodeValue = [];
|
|
@@ -23770,7 +23780,7 @@ const getWindowLevelsData = async (viewport, viewportInfo, getVolumeOpacity) =>
|
|
|
23770
23780
|
const viewportProperties = viewport.getProperties();
|
|
23771
23781
|
const {
|
|
23772
23782
|
voiRange
|
|
23773
|
-
} = viewportProperties;
|
|
23783
|
+
} = viewportProperties || {};
|
|
23774
23784
|
const viewportVoi = voiRange ? {
|
|
23775
23785
|
windowWidth: voiRange.upper - voiRange.lower,
|
|
23776
23786
|
windowCenter: voiRange.lower + (voiRange.upper - voiRange.lower) / 2
|
|
@@ -109,6 +109,8 @@ var SegmentationRepresentations;
|
|
|
109
109
|
/* harmony export */ });
|
|
110
110
|
var StrategyCallbacks;
|
|
111
111
|
(function (StrategyCallbacks) {
|
|
112
|
+
StrategyCallbacks["CalculateCursorGeometry"] = "calculateCursorGeometry";
|
|
113
|
+
StrategyCallbacks["RenderCursor"] = "renderCursor";
|
|
112
114
|
StrategyCallbacks["OnInteractionStart"] = "onInteractionStart";
|
|
113
115
|
StrategyCallbacks["OnInteractionEnd"] = "onInteractionEnd";
|
|
114
116
|
StrategyCallbacks["Preview"] = "preview";
|