@ohif/app 3.8.0-beta.5 → 3.8.0-beta.51
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/{12.bundle.1c0fcebb2e63f538b03b.js → 12.bundle.505ff8d33e3b91db6c4b.js} +9 -11
- package/dist/{125.bundle.253395f320b72180da63.js → 125.bundle.df666cb677e5a8982157.js} +4 -5
- package/dist/{663.bundle.68a67d3504dc24cccc1a.js → 170.bundle.3364dca0af95fde51ec6.js} +97 -89
- package/dist/{181.bundle.2ddc6f90740895a3949c.js → 181.bundle.aff453c348111303ceac.js} +107 -74
- package/dist/181.css +1 -1
- package/dist/{370.bundle.085badd6055e8feea84f.js → 185.bundle.892c8cbfeaaa14540821.js} +338 -209
- package/dist/{19.bundle.05ccf775cb70682dfcdf.js → 19.bundle.15ee26f7912d361e90b6.js} +127 -136
- package/dist/{99.bundle.51efd3493cd1de6bf63c.js → 199.bundle.a6fc393364e32b43a307.js} +215 -162
- package/dist/202.bundle.495cba6bbee744cf8f72.js +18239 -0
- package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
- package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 223.bundle.d4ac6ef2cfe47a9c4afc.js} +4422 -3671
- package/dist/{23.bundle.e008ad788170f2ed5569.js → 23.bundle.9d989522a6e4fdcb9c72.js} +1 -1
- package/dist/{250.bundle.8084960e3318cda37317.js → 250.bundle.577da106dd763c7bf9d0.js} +22 -27
- package/dist/{281.bundle.64640869327edc0d2cae.js → 281.bundle.849a5e58fb2c0a9012dc.js} +23 -25
- package/dist/{82.bundle.9e269153bafc15562988.js → 290.bundle.744ac8d04daee807702f.js} +1244 -695
- package/dist/{359.bundle.e2f5680a854894c32944.js → 359.bundle.59878f46325c60f5d603.js} +27 -30
- package/dist/{410.bundle.8bb12b01e1f838340950.js → 410.bundle.ac46ff16910fa2785bcc.js} +24 -28
- package/dist/{417.bundle.af0a207c29b109f84159.js → 417.bundle.5c66801d23d0e98c00e6.js} +2 -2
- package/dist/{451.bundle.9fd36f52ff69594f0669.js → 451.bundle.311cd3be9916e08450e9.js} +28 -41
- package/dist/{221.bundle.da7732c6f158b6f2b0d8.js → 466.bundle.43f3b29a2e1665bb9a65.js} +161 -151
- package/dist/{471.bundle.b3d77b83b1593c09a504.js → 471.bundle.eeb78105b59e688832a6.js} +31 -35
- package/dist/{788.bundle.428c065311327135d817.js → 483.bundle.3a3d61f78d5f1f8ad574.js} +131 -180
- package/dist/{506.bundle.c3d01c4b6cc01096ce9e.js → 506.bundle.97b3dd0fd0f4467dc21c.js} +13 -18
- package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 530.bundle.f904325ef4195d69ac0e.js} +10 -3
- package/dist/{613.bundle.de79995392c3fd2e9637.js → 613.bundle.72d635ed76fa208309f7.js} +76 -50
- package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 661.bundle.949c984fe2f9f753b65c.js} +1851 -8944
- package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 686.bundle.62c827fe4f0d054c164e.js} +4 -5
- package/dist/{687.bundle.763e03b2624b6cc03ad2.js → 687.bundle.a0c6c77073595745e58e.js} +19 -35
- package/dist/{342.bundle.22d2df5cf6d83b24acee.js → 738.bundle.bf1d2c76e385a091999d.js} +938 -571
- package/dist/{814.bundle.d45ba7f8b856fbd4e75d.js → 814.bundle.477d51b23a2fe79a5b96.js} +9 -11
- package/dist/{822.bundle.891f2e57b1b7bc2f4cb4.js → 822.bundle.8b745e28bc9eb9afbc61.js} +14 -16
- package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 831.bundle.127a3064e8844d6d2c82.js} +1 -368
- package/dist/{886.bundle.d5116d9b8ea4964b68a0.js → 886.bundle.94a4536167d0f8cae1ae.js} +19 -23
- package/dist/95.bundle.2236101be3cc36b322e8.js +8769 -0
- package/dist/{236.bundle.09d155c6f44b5a44e4bf.js → 965.bundle.5a31aeb079b7e72cec9c.js} +104 -126
- package/dist/app.bundle.css +11 -11
- package/dist/{app.bundle.671d2bb084d88c0cf3b7.js → app.bundle.ef06991fb9bbafce36ed.js} +185194 -61390
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.a7d5060eead13771e784.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
- package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
- package/dist/serve.json +12 -0
- package/dist/sw.js +1 -1
- package/package.json +21 -21
- package/dist/202.bundle.d3490836f71e001dd30f.js +0 -6336
- package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
- package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
- package/dist/75788f12450d4c5ed494.wasm +0 -0
- package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
- package/dist/957.bundle.9ea4506963ef8b2d84ba.js +0 -30077
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
- /package/dist/{82.css → 290.css} +0 -0
- /package/dist/{221.css → 466.css} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[814],{
|
|
3
3
|
|
|
4
4
|
/***/ 92814:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -90,11 +90,10 @@ const _getDisplaySetsFromSeries = (instances, servicesManager, extensionManager)
|
|
|
90
90
|
return displaySet;
|
|
91
91
|
});
|
|
92
92
|
};
|
|
93
|
-
function getSopClassHandlerModule(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
} = _ref;
|
|
93
|
+
function getSopClassHandlerModule({
|
|
94
|
+
servicesManager,
|
|
95
|
+
extensionManager
|
|
96
|
+
}) {
|
|
98
97
|
const getDisplaySetsFromSeries = instances => {
|
|
99
98
|
return _getDisplaySetsFromSeries(instances, servicesManager, extensionManager);
|
|
100
99
|
};
|
|
@@ -132,11 +131,10 @@ const dicomPDFExtension = {
|
|
|
132
131
|
* @param {object} [configuration={}]
|
|
133
132
|
* @param {object|array} [configuration.csToolsConfig] - Passed directly to `initCornerstoneTools`
|
|
134
133
|
*/
|
|
135
|
-
getViewportModule(
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
} = _ref;
|
|
134
|
+
getViewportModule({
|
|
135
|
+
servicesManager,
|
|
136
|
+
extensionManager
|
|
137
|
+
}) {
|
|
140
138
|
const ExtendedOHIFCornerstonePdfViewport = props => {
|
|
141
139
|
return /*#__PURE__*/react.createElement(OHIFCornerstonePdfViewport, _extends({
|
|
142
140
|
servicesManager: servicesManager,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[822],{
|
|
3
3
|
|
|
4
4
|
/***/ 86822:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -12,11 +12,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
12
12
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3827);
|
|
13
13
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
14
14
|
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71771);
|
|
15
|
-
/* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
15
|
+
/* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18414);
|
|
16
16
|
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69190);
|
|
17
|
-
/* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
17
|
+
/* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(76634);
|
|
18
18
|
/* harmony import */ var _getContextModule__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41832);
|
|
19
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
|
|
19
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(64225);
|
|
20
20
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
21
|
|
|
22
22
|
|
|
@@ -145,11 +145,10 @@ function TrackedCornerstoneViewport(props) {
|
|
|
145
145
|
const addedRaw = measurementService.EVENTS.RAW_MEASUREMENT_ADDED;
|
|
146
146
|
const subscriptions = [];
|
|
147
147
|
[added, addedRaw].forEach(evt => {
|
|
148
|
-
subscriptions.push(measurementService.subscribe(evt,
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
} = _ref;
|
|
148
|
+
subscriptions.push(measurementService.subscribe(evt, ({
|
|
149
|
+
source,
|
|
150
|
+
measurement
|
|
151
|
+
}) => {
|
|
153
152
|
const {
|
|
154
153
|
activeViewportId
|
|
155
154
|
} = viewportGridService.getState();
|
|
@@ -216,8 +215,8 @@ function TrackedCornerstoneViewport(props) {
|
|
|
216
215
|
patientAge: PatientAge || '',
|
|
217
216
|
MRN: PatientID || '',
|
|
218
217
|
thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}` : '',
|
|
219
|
-
thicknessUnits: 'mm',
|
|
220
|
-
spacing: SpacingBetweenSlices !== undefined ? `${parseFloat(SpacingBetweenSlices).toFixed(2)}mm` : '',
|
|
218
|
+
thicknessUnits: t('mm'),
|
|
219
|
+
spacing: SpacingBetweenSlices !== undefined ? `${parseFloat(SpacingBetweenSlices).toFixed(2)}${t('mm')}` : '',
|
|
221
220
|
scanner: ManufacturerModelName || ''
|
|
222
221
|
}
|
|
223
222
|
}
|
|
@@ -285,6 +284,9 @@ function _getNextMeasurementUID(direction, servicesManager, trackedMeasurementId
|
|
|
285
284
|
return newTrackedMeasurementId;
|
|
286
285
|
}
|
|
287
286
|
function _getStatusComponent(isTracked) {
|
|
287
|
+
const {
|
|
288
|
+
t
|
|
289
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .useTranslation */ .$G)('TrackedCornerstoneViewport');
|
|
288
290
|
const trackedIcon = isTracked ? 'status-tracked' : 'status-untracked';
|
|
289
291
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
|
290
292
|
className: "relative"
|
|
@@ -301,11 +303,7 @@ function _getStatusComponent(isTracked) {
|
|
|
301
303
|
className: "ml-4 flex"
|
|
302
304
|
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
|
|
303
305
|
className: "text-common-light text-base"
|
|
304
|
-
}, isTracked ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,
|
|
305
|
-
className: "font-bold text-white"
|
|
306
|
-
}, " tracked"), " and can be viewed ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), ' ', "in the measurement panel") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, "Measurements for", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
|
|
307
|
-
className: "font-bold text-white"
|
|
308
|
-
}, " untracked "), "series ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " will not be shown in the ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " measurements panel"))))
|
|
306
|
+
}, isTracked ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, t('Series is tracked and can be viewed in the measurement panel')) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, t('Measurements for untracked series will not be shown in the measurements panel')))))
|
|
309
307
|
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .Icon */ .JO, {
|
|
310
308
|
name: trackedIcon,
|
|
311
309
|
className: "text-aqua-pale"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(
|
|
1
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[831],{
|
|
2
2
|
|
|
3
3
|
/***/ 82803:
|
|
4
4
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
@@ -90,373 +90,6 @@ exports.Z = function (_ref) {
|
|
|
90
90
|
);
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
/***/ }),
|
|
94
|
-
|
|
95
|
-
/***/ 49399:
|
|
96
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
97
|
-
|
|
98
|
-
"use strict";
|
|
99
|
-
|
|
100
|
-
// EXPORTS
|
|
101
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
102
|
-
ZP: () => (/* binding */ vtkImageMarchingSquares$1)
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
// UNUSED EXPORTS: extend, newInstance
|
|
106
|
-
|
|
107
|
-
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/macros.js + 6 modules
|
|
108
|
-
var macros = __webpack_require__(41168);
|
|
109
|
-
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/DataModel/PolyData.js + 9 modules
|
|
110
|
-
var PolyData = __webpack_require__(1299);
|
|
111
|
-
// EXTERNAL MODULE: ../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js
|
|
112
|
-
var classCallCheck = __webpack_require__(72688);
|
|
113
|
-
// EXTERNAL MODULE: ../../../node_modules/@babel/runtime/helpers/esm/createClass.js
|
|
114
|
-
var createClass = __webpack_require__(75755);
|
|
115
|
-
;// CONCATENATED MODULE: ../../../node_modules/@kitware/vtk.js/Common/DataModel/EdgeLocator.js
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
var EdgeLocator = /*#__PURE__*/function () {
|
|
120
|
-
function EdgeLocator() {
|
|
121
|
-
var oriented = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
122
|
-
|
|
123
|
-
(0,classCallCheck/* default */.Z)(this, EdgeLocator);
|
|
124
|
-
|
|
125
|
-
this.oriented = oriented;
|
|
126
|
-
this.edgeMap = new Map();
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
(0,createClass/* default */.Z)(EdgeLocator, [{
|
|
130
|
-
key: "initialize",
|
|
131
|
-
value: function initialize() {
|
|
132
|
-
this.edgeMap.clear();
|
|
133
|
-
}
|
|
134
|
-
}, {
|
|
135
|
-
key: "computeEdgeKey",
|
|
136
|
-
value: function computeEdgeKey(pointId0, pointId1) {
|
|
137
|
-
return this.oriented || pointId0 < pointId1 ? // Cantor pairing function:
|
|
138
|
-
0.5 * (pointId0 * pointId1) * (pointId0 * pointId1 + 1) + pointId1 : 0.5 * (pointId1 * pointId0) * (pointId1 * pointId0 + 1) + pointId0;
|
|
139
|
-
}
|
|
140
|
-
}, {
|
|
141
|
-
key: "insertUniqueEdge",
|
|
142
|
-
value: function insertUniqueEdge(pointId0, pointId1, newEdgeValue) {
|
|
143
|
-
// Generate a unique key
|
|
144
|
-
var key = this.computeEdgeKey(pointId0, pointId1);
|
|
145
|
-
var node = this.edgeMap.get(key);
|
|
146
|
-
|
|
147
|
-
if (!node) {
|
|
148
|
-
// Didn't find key, so add a new edge entry
|
|
149
|
-
node = {
|
|
150
|
-
key: key,
|
|
151
|
-
edgeId: this.edgeMap.size,
|
|
152
|
-
value: newEdgeValue
|
|
153
|
-
};
|
|
154
|
-
this.edgeMap.set(key, node);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return node;
|
|
158
|
-
}
|
|
159
|
-
}, {
|
|
160
|
-
key: "insertEdge",
|
|
161
|
-
value: function insertEdge(pointId0, pointId1, newEdgeValue) {
|
|
162
|
-
// Generate a unique key
|
|
163
|
-
var key = this.computeEdgeKey(pointId0, pointId1);
|
|
164
|
-
var node = {
|
|
165
|
-
key: key,
|
|
166
|
-
edgeId: this.edgeMap.size,
|
|
167
|
-
value: newEdgeValue
|
|
168
|
-
};
|
|
169
|
-
this.edgeMap.set(key, node);
|
|
170
|
-
return node;
|
|
171
|
-
}
|
|
172
|
-
}, {
|
|
173
|
-
key: "isInsertedEdge",
|
|
174
|
-
value: function isInsertedEdge(pointId0, pointId1) {
|
|
175
|
-
var key = this.computeEdgeKey(pointId0, pointId1);
|
|
176
|
-
return this.edgeMap.get(key);
|
|
177
|
-
}
|
|
178
|
-
}], [{
|
|
179
|
-
key: "getEdgePointIds",
|
|
180
|
-
value: function getEdgePointIds(node) {
|
|
181
|
-
var n = 0.5 * (-1 + Math.sqrt(8 * node.key + 1));
|
|
182
|
-
var pointId0 = node.key - 0.5 * (n + 1) * n;
|
|
183
|
-
var pointId1 = n - pointId0;
|
|
184
|
-
return [pointId0, pointId1];
|
|
185
|
-
}
|
|
186
|
-
}]);
|
|
187
|
-
|
|
188
|
-
return EdgeLocator;
|
|
189
|
-
}();
|
|
190
|
-
|
|
191
|
-
function newInstance() {
|
|
192
|
-
var initialValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
193
|
-
return new EdgeLocator(initialValues.oriented);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
var vtkEdgeLocator = {
|
|
197
|
-
newInstance: newInstance
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
;// CONCATENATED MODULE: ../../../node_modules/@kitware/vtk.js/Filters/General/ImageMarchingSquares/caseTable.js
|
|
203
|
-
// ----------------------------------------------------------------------------
|
|
204
|
-
// Marching squares case functions (using lines to generate the 2D tessellation).
|
|
205
|
-
// For each case, a list of edge ids that form the triangles. A -1 marks the
|
|
206
|
-
// end of the list of edges. Edges are taken three at a time to generate
|
|
207
|
-
// triangle points.
|
|
208
|
-
// ----------------------------------------------------------------------------
|
|
209
|
-
var MARCHING_SQUARES_CASES = [[-1, -1, -1, -1, -1]
|
|
210
|
-
/* 0 */
|
|
211
|
-
, [0, 3, -1, -1, -1]
|
|
212
|
-
/* 1 */
|
|
213
|
-
, [1, 0, -1, -1, -1]
|
|
214
|
-
/* 2 */
|
|
215
|
-
, [1, 3, -1, -1, -1]
|
|
216
|
-
/* 3 */
|
|
217
|
-
, [2, 1, -1, -1, -1]
|
|
218
|
-
/* 4 */
|
|
219
|
-
, [0, 3, 2, 1, -1]
|
|
220
|
-
/* 5 */
|
|
221
|
-
, [2, 0, -1, -1, -1]
|
|
222
|
-
/* 6 */
|
|
223
|
-
, [2, 3, -1, -1, -1]
|
|
224
|
-
/* 7 */
|
|
225
|
-
, [3, 2, -1, -1, -1]
|
|
226
|
-
/* 8 */
|
|
227
|
-
, [0, 2, -1, -1, -1]
|
|
228
|
-
/* 9 */
|
|
229
|
-
, [1, 0, 3, 2, -1]
|
|
230
|
-
/* 10 */
|
|
231
|
-
, [1, 2, -1, -1, -1]
|
|
232
|
-
/* 11 */
|
|
233
|
-
, [3, 1, -1, -1, -1]
|
|
234
|
-
/* 12 */
|
|
235
|
-
, [0, 1, -1, -1, -1]
|
|
236
|
-
/* 13 */
|
|
237
|
-
, [3, 0, -1, -1, -1]
|
|
238
|
-
/* 14 */
|
|
239
|
-
, [-1, -1, -1, -1, -1]
|
|
240
|
-
/* 15 */
|
|
241
|
-
];
|
|
242
|
-
var EDGES = [[0, 1], [1, 3], [2, 3], [0, 2]];
|
|
243
|
-
|
|
244
|
-
function getCase(index) {
|
|
245
|
-
return MARCHING_SQUARES_CASES[index];
|
|
246
|
-
} // Define the four edges of the pixel by the following pairs of vertices
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
function getEdge(eid) {
|
|
250
|
-
return EDGES[eid];
|
|
251
|
-
} // ----------------------------------------------------------------------------
|
|
252
|
-
// Static API
|
|
253
|
-
// ----------------------------------------------------------------------------
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
var vtkCaseTable = {
|
|
257
|
-
getCase: getCase,
|
|
258
|
-
getEdge: getEdge
|
|
259
|
-
};
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
;// CONCATENATED MODULE: ../../../node_modules/@kitware/vtk.js/Filters/General/ImageMarchingSquares.js
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
var vtkErrorMacro = macros["default"].vtkErrorMacro,
|
|
270
|
-
vtkDebugMacro = macros["default"].vtkDebugMacro; // ----------------------------------------------------------------------------
|
|
271
|
-
// vtkImageMarchingSquares methods
|
|
272
|
-
// ----------------------------------------------------------------------------
|
|
273
|
-
|
|
274
|
-
function vtkImageMarchingSquares(publicAPI, model) {
|
|
275
|
-
// Set our className
|
|
276
|
-
model.classHierarchy.push('vtkImageMarchingSquares');
|
|
277
|
-
|
|
278
|
-
publicAPI.getContourValues = function () {
|
|
279
|
-
return model.contourValues;
|
|
280
|
-
};
|
|
281
|
-
|
|
282
|
-
publicAPI.setContourValues = function (cValues) {
|
|
283
|
-
model.contourValues = cValues;
|
|
284
|
-
publicAPI.modified();
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
var ids = [];
|
|
288
|
-
var pixelScalars = [];
|
|
289
|
-
var pixelPts = [];
|
|
290
|
-
var edgeLocator = vtkEdgeLocator.newInstance(); // Retrieve scalars and pixel coordinates. i-j-k is origin of pixel.
|
|
291
|
-
|
|
292
|
-
publicAPI.getPixelScalars = function (i, j, k, slice, dims, origin, spacing, s) {
|
|
293
|
-
// First get the indices for the pixel
|
|
294
|
-
ids[0] = k * slice + j * dims[0] + i; // i, j, k
|
|
295
|
-
|
|
296
|
-
ids[1] = ids[0] + 1; // i+1, j, k
|
|
297
|
-
|
|
298
|
-
ids[2] = ids[0] + dims[0]; // i, j+1, k
|
|
299
|
-
|
|
300
|
-
ids[3] = ids[2] + 1; // i+1, j+1, k
|
|
301
|
-
// Now retrieve the scalars
|
|
302
|
-
|
|
303
|
-
for (var ii = 0; ii < 4; ++ii) {
|
|
304
|
-
pixelScalars[ii] = s[ids[ii]];
|
|
305
|
-
}
|
|
306
|
-
}; // Retrieve pixel coordinates. i-j-k is origin of pixel.
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
publicAPI.getPixelPoints = function (i, j, k, dims, origin, spacing) {
|
|
310
|
-
// (i,i+1),(j,j+1),(k,k+1) - i varies fastest; then j; then k
|
|
311
|
-
pixelPts[0] = origin[0] + i * spacing[0]; // 0
|
|
312
|
-
|
|
313
|
-
pixelPts[1] = origin[1] + j * spacing[1];
|
|
314
|
-
pixelPts[2] = pixelPts[0] + spacing[0]; // 1
|
|
315
|
-
|
|
316
|
-
pixelPts[3] = pixelPts[1];
|
|
317
|
-
pixelPts[4] = pixelPts[0]; // 2
|
|
318
|
-
|
|
319
|
-
pixelPts[5] = pixelPts[1] + spacing[1];
|
|
320
|
-
pixelPts[6] = pixelPts[2]; // 3
|
|
321
|
-
|
|
322
|
-
pixelPts[7] = pixelPts[5];
|
|
323
|
-
};
|
|
324
|
-
|
|
325
|
-
publicAPI.produceLines = function (cVal, i, j, k, slice, dims, origin, spacing, scalars, points, lines) {
|
|
326
|
-
var CASE_MASK = [1, 2, 8, 4]; // case table is actually for quad
|
|
327
|
-
|
|
328
|
-
var xyz = [];
|
|
329
|
-
var pId;
|
|
330
|
-
publicAPI.getPixelScalars(i, j, k, slice, dims, origin, spacing, scalars);
|
|
331
|
-
var index = 0;
|
|
332
|
-
|
|
333
|
-
for (var idx = 0; idx < 4; idx++) {
|
|
334
|
-
if (pixelScalars[idx] >= cVal) {
|
|
335
|
-
index |= CASE_MASK[idx]; // eslint-disable-line no-bitwise
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
var pixelLines = vtkCaseTable.getCase(index);
|
|
340
|
-
|
|
341
|
-
if (pixelLines[0] < 0) {
|
|
342
|
-
return; // don't get the pixel coordinates, nothing to do
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
publicAPI.getPixelPoints(i, j, k, dims, origin, spacing);
|
|
346
|
-
var z = origin[2] + k * spacing[2];
|
|
347
|
-
|
|
348
|
-
for (var _idx = 0; pixelLines[_idx] >= 0; _idx += 3) {
|
|
349
|
-
lines.push(2);
|
|
350
|
-
|
|
351
|
-
for (var eid = 0; eid < 2; eid++) {
|
|
352
|
-
var edgeVerts = vtkCaseTable.getEdge(pixelLines[_idx + eid]);
|
|
353
|
-
pId = undefined;
|
|
354
|
-
|
|
355
|
-
if (model.mergePoints) {
|
|
356
|
-
var _edgeLocator$isInsert;
|
|
357
|
-
|
|
358
|
-
pId = (_edgeLocator$isInsert = edgeLocator.isInsertedEdge(ids[edgeVerts[0]], ids[edgeVerts[1]])) === null || _edgeLocator$isInsert === void 0 ? void 0 : _edgeLocator$isInsert.value;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
if (pId === undefined) {
|
|
362
|
-
var t = (cVal - pixelScalars[edgeVerts[0]]) / (pixelScalars[edgeVerts[1]] - pixelScalars[edgeVerts[0]]);
|
|
363
|
-
var x0 = pixelPts.slice(edgeVerts[0] * 2, (edgeVerts[0] + 1) * 2);
|
|
364
|
-
var x1 = pixelPts.slice(edgeVerts[1] * 2, (edgeVerts[1] + 1) * 2);
|
|
365
|
-
xyz[0] = x0[0] + t * (x1[0] - x0[0]);
|
|
366
|
-
xyz[1] = x0[1] + t * (x1[1] - x0[1]);
|
|
367
|
-
pId = points.length / 3;
|
|
368
|
-
points.push(xyz[0], xyz[1], z);
|
|
369
|
-
|
|
370
|
-
if (model.mergePoints) {
|
|
371
|
-
edgeLocator.insertEdge(ids[edgeVerts[0]], ids[edgeVerts[1]], pId);
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
lines.push(pId);
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
};
|
|
379
|
-
|
|
380
|
-
publicAPI.requestData = function (inData, outData) {
|
|
381
|
-
// implement requestData
|
|
382
|
-
var input = inData[0];
|
|
383
|
-
|
|
384
|
-
if (!input) {
|
|
385
|
-
vtkErrorMacro('Invalid or missing input');
|
|
386
|
-
return;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
console.time('msquares'); // Retrieve output and volume data
|
|
390
|
-
|
|
391
|
-
var origin = input.getOrigin();
|
|
392
|
-
var spacing = input.getSpacing();
|
|
393
|
-
var dims = input.getDimensions();
|
|
394
|
-
var s = input.getPointData().getScalars().getData(); // Points - dynamic array
|
|
395
|
-
|
|
396
|
-
var pBuffer = []; // Cells - dynamic array
|
|
397
|
-
|
|
398
|
-
var lBuffer = []; // Ensure slice is valid
|
|
399
|
-
|
|
400
|
-
var slice = dims[0] * dims[1];
|
|
401
|
-
var k = Math.round(model.slice);
|
|
402
|
-
|
|
403
|
-
if (k >= dims[2]) {
|
|
404
|
-
k = 0;
|
|
405
|
-
} // Loop over all contour values, and then pixels, determine case and process
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
for (var cv = 0; cv < model.contourValues.length; ++cv) {
|
|
409
|
-
for (var j = 0; j < dims[1] - 1; ++j) {
|
|
410
|
-
for (var i = 0; i < dims[0] - 1; ++i) {
|
|
411
|
-
publicAPI.produceLines(model.contourValues[cv], i, j, k, slice, dims, origin, spacing, s, pBuffer, lBuffer);
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
edgeLocator.initialize();
|
|
416
|
-
} // Update output
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
var polydata = PolyData/* default.newInstance */.ZP.newInstance();
|
|
420
|
-
polydata.getPoints().setData(new Float32Array(pBuffer), 3);
|
|
421
|
-
polydata.getLines().setData(new Uint32Array(lBuffer));
|
|
422
|
-
outData[0] = polydata;
|
|
423
|
-
vtkDebugMacro('Produced output');
|
|
424
|
-
console.timeEnd('msquares');
|
|
425
|
-
};
|
|
426
|
-
} // ----------------------------------------------------------------------------
|
|
427
|
-
// Object factory
|
|
428
|
-
// ----------------------------------------------------------------------------
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
var DEFAULT_VALUES = {
|
|
432
|
-
contourValues: [],
|
|
433
|
-
slice: 0,
|
|
434
|
-
mergePoints: false
|
|
435
|
-
}; // ----------------------------------------------------------------------------
|
|
436
|
-
|
|
437
|
-
function extend(publicAPI, model) {
|
|
438
|
-
var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
439
|
-
Object.assign(model, DEFAULT_VALUES, initialValues); // Make this a VTK object
|
|
440
|
-
|
|
441
|
-
macros["default"].obj(publicAPI, model); // Also make it an algorithm with one input and one output
|
|
442
|
-
|
|
443
|
-
macros["default"].algo(publicAPI, model, 1, 1);
|
|
444
|
-
macros["default"].setGet(publicAPI, model, ['slice', 'mergePoints']); // Object specific methods
|
|
445
|
-
|
|
446
|
-
macros["default"].algo(publicAPI, model, 1, 1);
|
|
447
|
-
vtkImageMarchingSquares(publicAPI, model);
|
|
448
|
-
} // ----------------------------------------------------------------------------
|
|
449
|
-
|
|
450
|
-
var ImageMarchingSquares_newInstance = macros["default"].newInstance(extend, 'vtkImageMarchingSquares'); // ----------------------------------------------------------------------------
|
|
451
|
-
|
|
452
|
-
var vtkImageMarchingSquares$1 = {
|
|
453
|
-
newInstance: ImageMarchingSquares_newInstance,
|
|
454
|
-
extend: extend
|
|
455
|
-
};
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
93
|
/***/ }),
|
|
461
94
|
|
|
462
95
|
/***/ 55187:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[886],{
|
|
3
3
|
|
|
4
4
|
/***/ 48886:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -14,7 +14,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
14
14
|
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69190);
|
|
15
15
|
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71771);
|
|
16
16
|
/* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64035);
|
|
17
|
-
/* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
17
|
+
/* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18414);
|
|
18
18
|
/* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38965);
|
|
19
19
|
/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(62657);
|
|
20
20
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -78,10 +78,9 @@ function OHIFCornerstoneSRViewport(props) {
|
|
|
78
78
|
if (!sendTrackedMeasurementsEvent) {
|
|
79
79
|
// if no panels from measurement-tracking extension is used, this code will run
|
|
80
80
|
trackedMeasurements = null;
|
|
81
|
-
sendTrackedMeasurementsEvent = (eventName,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
} = _ref;
|
|
81
|
+
sendTrackedMeasurementsEvent = (eventName, {
|
|
82
|
+
displaySetInstanceUID
|
|
83
|
+
}) => {
|
|
85
84
|
measurementService.clearMeasurements();
|
|
86
85
|
const {
|
|
87
86
|
SeriesInstanceUIDs
|
|
@@ -135,11 +134,10 @@ function OHIFCornerstoneSRViewport(props) {
|
|
|
135
134
|
// not throwing an error?
|
|
136
135
|
console.warn('More than one SOPClassUID in the same series is not yet supported.');
|
|
137
136
|
}
|
|
138
|
-
_getViewportReferencedDisplaySetData(srDisplaySet, newMeasurementSelected, displaySetService).then(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
} = _ref2;
|
|
137
|
+
_getViewportReferencedDisplaySetData(srDisplaySet, newMeasurementSelected, displaySetService).then(({
|
|
138
|
+
referencedDisplaySet,
|
|
139
|
+
referencedDisplaySetMetadata
|
|
140
|
+
}) => {
|
|
143
141
|
setMeasurementSelected(newMeasurementSelected);
|
|
144
142
|
setActiveImageDisplaySetData(referencedDisplaySet);
|
|
145
143
|
setReferencedDisplaySetMetadata(referencedDisplaySetMetadata);
|
|
@@ -221,10 +219,9 @@ function OHIFCornerstoneSRViewport(props) {
|
|
|
221
219
|
Cleanup the SR viewport when the viewport is destroyed
|
|
222
220
|
*/
|
|
223
221
|
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
|
|
224
|
-
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED,
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
} = _ref3;
|
|
222
|
+
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, ({
|
|
223
|
+
displaySetInstanceUIDs
|
|
224
|
+
}) => {
|
|
228
225
|
const activeViewport = viewports.get(activeViewportId);
|
|
229
226
|
if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
|
|
230
227
|
viewportGridService.setDisplaySetsForViewport({
|
|
@@ -385,14 +382,13 @@ async function _getViewportReferencedDisplaySetData(displaySet, measurementSelec
|
|
|
385
382
|
referencedDisplaySet
|
|
386
383
|
};
|
|
387
384
|
}
|
|
388
|
-
function _getStatusComponent(
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
} = _ref4;
|
|
385
|
+
function _getStatusComponent({
|
|
386
|
+
srDisplaySet,
|
|
387
|
+
viewportId,
|
|
388
|
+
isRehydratable,
|
|
389
|
+
isLocked,
|
|
390
|
+
sendTrackedMeasurementsEvent
|
|
391
|
+
}) {
|
|
396
392
|
const handleMouseUp = () => {
|
|
397
393
|
sendTrackedMeasurementsEvent('HYDRATE_SR', {
|
|
398
394
|
displaySetInstanceUID: srDisplaySet.displaySetInstanceUID,
|