@ohif/app 3.9.0-beta.46 → 3.9.0-beta.48
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/031089e563a18ada8441.wasm +0 -0
- package/dist/{445.bundle.38c6d2af64e41cd7c614.js → 10.bundle.c626810bd199ab63f3a2.js} +3 -3
- package/dist/{501.bundle.2f703ca4598a3be0d748.js → 129.bundle.3102eccbd5c78524c3dd.js} +6036 -11592
- package/dist/{140.bundle.57e0e190f83d686c7d84.js → 153.bundle.c5c3111fa78764c5960d.js} +7 -4
- package/dist/{139.bundle.09e5af0a9ae8a285af77.js → 169.bundle.eeb9614e7b06f896c70f.js} +65 -535
- package/dist/{139.css → 169.css} +0 -1
- package/dist/{164.bundle.2b23bfbcb23497d7c87a.js → 196.bundle.cf8c2311aafb5312bbf7.js} +15562 -8539
- package/dist/{342.bundle.fcb2038060a062129d34.js → 202.bundle.bb0e8196739bb896dc9e.js} +238 -276
- package/dist/{129.bundle.ef2824b9d3145e620069.js → 210.bundle.8d89ad148ee420ac573f.js} +46 -46
- package/dist/{363.bundle.b09eeacf1db06eac578f.js → 217.bundle.2e3eceda916aa4ec4039.js} +2099 -195
- package/dist/{363.css → 217.css} +1 -0
- package/dist/{14.bundle.afc14c0e2e6bdb9c03fb.js → 246.bundle.1069b026e904b03943f0.js} +11 -11
- package/dist/250.bundle.4743b359797751102600.js +663 -0
- package/dist/{851.bundle.1d974a1affa602a3db35.js → 281.bundle.34009e8337141e4b8f26.js} +211 -243
- package/dist/{727.bundle.7b7f3962207601643615.js → 286.bundle.985c5ebbb2158c7e59ab.js} +4 -4
- package/dist/29.bundle.976319462f33868497c2.js +12347 -0
- package/dist/{675.bundle.c9720f40fd7c7e9b7e54.js → 315.bundle.92d7aefc4dc9cfd951bd.js} +18 -18
- package/dist/{218.bundle.0d88a96c091e70b87ada.js → 353.bundle.ed24422ba6b77b3a1e6d.js} +8 -8
- package/dist/{799.bundle.b0278dd5010f2cbdbac5.js → 360.bundle.8500a439cff45926abf1.js} +62 -62
- package/dist/{555.bundle.d731e79ced564bce2167.js → 372.bundle.c9a475b03f1490357165.js} +50 -50
- package/dist/{211.bundle.c99f8ae0fb317d76eb84.js → 376.bundle.9ce6f93540d667c57ef7.js} +8 -8
- package/dist/{612.bundle.297a033523539e0b47f9.js → 412.bundle.836f106f6e2896dc42a5.js} +4 -4
- package/dist/{931.bundle.058f8de4606f27b31f4f.js → 417.bundle.abf8bcee0f246002acb9.js} +25 -25
- package/dist/{370.bundle.bd9884c274c26a54dfae.js → 428.bundle.744fc5865b2d747de88a.js} +829 -1511
- package/dist/{483.bundle.0f1848f6a2cf34829fef.js → 497.bundle.ee102d6243f984113f08.js} +141 -141
- package/dist/{323.bundle.955cc8f5eb5c01295118.js → 498.bundle.bb47c493dd02451f77ef.js} +17 -17
- package/dist/{552.bundle.38207568073bcd238dda.js → 502.bundle.643d0af06b6c354537f5.js} +8 -9
- package/dist/{835.bundle.5d1951da8bbc6afdf3e0.js → 530.bundle.87f8b13ff55bf7b2a6d1.js} +28 -28
- package/dist/{121.bundle.8646909d0f76791d8aee.js → 552.bundle.ed2be5e57376b8c6cc68.js} +733 -62
- package/dist/{265.bundle.61b0e1ce9d444704a976.js → 571.bundle.a80609c9815339516d77.js} +24 -24
- package/dist/{853.bundle.beae65b8de389f8ee983.js → 591.bundle.c93fbabf5840b8f0ded3.js} +8 -8
- package/dist/604.bundle.83f50929b208c60e48da.js +1950 -0
- package/dist/610.min.worker.js +1 -1
- package/dist/610.min.worker.js.map +1 -1
- package/dist/{792.bundle.485ad2f98823a4b3feb1.js → 658.bundle.219ed199728759098008.js} +17 -17
- package/dist/{989.bundle.eec61b62860e730cf23d.js → 791.bundle.eb41e31a5bf389639612.js} +11 -11
- package/dist/{722.bundle.1242e0348afc63ca4f5e.js → 793.bundle.c92f52ddff0e3bf506e6.js} +13 -13
- package/dist/{914.bundle.e15be8089bf422ed7b51.js → 818.bundle.cda4e369fdee5459a544.js} +1239 -627
- package/dist/{726.bundle.90d63d40a19b058034ee.js → 831.bundle.9e1a3495947e5bb49756.js} +512 -512
- package/dist/{382.bundle.2788481abeaaf6afbca9.js → 842.bundle.76740a57f690e753802e.js} +11 -11
- package/dist/{806.bundle.3b50260239f93b7787b6.js → 888.bundle.36415d4c9c396df1b83d.js} +14 -14
- package/dist/{702.bundle.963481fbf871984b646f.js → 909.bundle.1fbb8bb4c41d0bb2994d.js} +119 -381
- package/dist/{109.bundle.b4fee2a22b622839baf5.js → 931.bundle.f6fa2a436ace89ebf60f.js} +5036 -4642
- package/dist/{141.bundle.556b4c1e4cab770417ac.js → 937.bundle.cc709c922731f9496810.js} +86 -478
- package/dist/{444.bundle.7adebacc6760f45bf58b.js → 944.bundle.eb9723ea5f0a42cf8aa0.js} +9 -10
- package/dist/945.min.worker.js +1 -1
- package/dist/945.min.worker.js.map +1 -1
- package/dist/{194.bundle.31de18ad9ea9b05f21ea.js → 962.bundle.e63d19fabce8b7d85974.js} +33 -37
- package/dist/{920.bundle.d7c555d415240c7d3829.js → 978.bundle.7c0b275e22e6060fc893.js} +6 -6
- package/dist/{236.bundle.34db90a140e37d34fd71.js → 993.bundle.aa31ebda5a5f62c44de5.js} +2363 -2351
- package/dist/{717.bundle.96160aa973fbb4cb3f1e.js → 994.bundle.23f3108d0dfc114db43f.js} +90 -164
- package/dist/app-config.js +2 -3
- package/dist/app.bundle.css +3 -3
- package/dist/{app.bundle.3551ec3a588fe3841a9d.js → app.bundle.ee7962276756acbd637e.js} +52547 -36094
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/dicom-microscopy-viewer/5004fdc02f329ce53b69.wasm +0 -0
- package/dist/dicom-microscopy-viewer/c22b37c3488e1d6c3aa4.wasm +0 -0
- package/dist/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js +3 -0
- package/dist/{dicomMicroscopyViewer.min.js.LICENSE.txt → dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.LICENSE.txt} +11 -0
- package/dist/dicom-microscopy-viewer/index.worker.min.worker.js +2 -0
- package/dist/dicom-microscopy-viewer/index.worker.min.worker.js.map +1 -0
- package/dist/{histogram-worker.bundle.6b31e5ed4c4a7a6998f2.js → histogram-worker.bundle.e7e9fea2c3236b0e747a.js} +12 -16
- package/dist/index.html +1 -1
- package/dist/index.worker.5a5a581362c14598c3d9.worker.js +2 -0
- package/dist/index.worker.5a5a581362c14598c3d9.worker.js.map +1 -0
- package/dist/{polySeg.bundle.df492df5042827938ba4.js → polySeg.bundle.b25c61224998018d0f79.js} +24 -5
- package/dist/{suv-peak-worker.bundle.8f4b505fad3d371489fe.js → suv-peak-worker.bundle.eb11e71db02e52601ecf.js} +40 -21
- package/dist/sw.js +1 -1
- package/package.json +25 -33
- package/dist/117.bundle.1f7b56504d506e7259e3.js +0 -6552
- package/dist/172.bundle.19e8ff4bbcadcf7ec6ba.js +0 -662
- package/dist/36785fbd89b0e17f6099.wasm +0 -0
- package/dist/62ab5d58a2bea7b5a1dc.wasm +0 -0
- package/dist/644.bundle.1e77691d2eeb96a423b0.js +0 -19159
- package/dist/75a0c2dfe07b824c7d21.wasm +0 -0
- package/dist/dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js +0 -13
- package/dist/dicomMicroscopyViewer.min.js +0 -3
- package/dist/index.worker.f4bda803c15bc6359d5f.worker.js +0 -2
- package/dist/index.worker.f4bda803c15bc6359d5f.worker.js.map +0 -1
- package/dist/index.worker.min.worker.js +0 -2
- package/dist/index.worker.min.worker.js.map +0 -1
- /package/dist/{129.css → 210.css} +0 -0
- /package/dist/{727.css → 286.css} +0 -0
- /package/dist/{172.css → 552.css} +0 -0
- /package/dist/{404.css → 757.css} +0 -0
- /package/dist/{717.css → 994.css} +0 -0
- /package/dist/{65916ef3def695744bda.wasm → dicom-microscopy-viewer/65916ef3def695744bda.wasm} +0 -0
- /package/dist/{b6b803111e2d06a825bd.wasm → dicom-microscopy-viewer/b6b803111e2d06a825bd.wasm} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[169],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 31169:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -13,22 +13,22 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
16
|
-
var react = __webpack_require__(
|
|
16
|
+
var react = __webpack_require__(43001);
|
|
17
17
|
// EXTERNAL MODULE: ../../../node_modules/react-resize-detector/build/index.esm.js
|
|
18
|
-
var index_esm = __webpack_require__(
|
|
18
|
+
var index_esm = __webpack_require__(7023);
|
|
19
19
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
20
|
-
var prop_types = __webpack_require__(
|
|
20
|
+
var prop_types = __webpack_require__(3827);
|
|
21
21
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
22
22
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
23
|
-
var esm = __webpack_require__(
|
|
23
|
+
var esm = __webpack_require__(93725);
|
|
24
24
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
|
|
25
|
-
var dist_esm = __webpack_require__(
|
|
25
|
+
var dist_esm = __webpack_require__(62709);
|
|
26
26
|
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
27
|
-
var src = __webpack_require__(
|
|
28
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
29
|
-
var ui_src = __webpack_require__(
|
|
27
|
+
var src = __webpack_require__(63810);
|
|
28
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 784 modules
|
|
29
|
+
var ui_src = __webpack_require__(38604);
|
|
30
30
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
|
|
31
|
-
var state = __webpack_require__(
|
|
31
|
+
var state = __webpack_require__(13000);
|
|
32
32
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.css
|
|
33
33
|
// extracted by mini-css-extract-plugin
|
|
34
34
|
|
|
@@ -141,7 +141,7 @@ function CornerstoneImageScrollbar({
|
|
|
141
141
|
element.removeEventListener(dist_esm.Enums.Events.VOLUME_NEW_IMAGE, updateVolumeIndex);
|
|
142
142
|
};
|
|
143
143
|
}, [viewportData, element]);
|
|
144
|
-
return /*#__PURE__*/react.createElement(ui_src/* ImageScrollbar */.
|
|
144
|
+
return /*#__PURE__*/react.createElement(ui_src/* ImageScrollbar */.Ln, {
|
|
145
145
|
onChange: evt => onImageScrollbarChange(evt, viewportId),
|
|
146
146
|
max: imageSliceData.numberOfSlices ? imageSliceData.numberOfSlices - 1 : 0,
|
|
147
147
|
height: scrollbarHeight,
|
|
@@ -158,483 +158,13 @@ CornerstoneImageScrollbar.propTypes = {
|
|
|
158
158
|
servicesManager: (prop_types_default()).object.isRequired
|
|
159
159
|
};
|
|
160
160
|
/* harmony default export */ const ViewportImageScrollbar = (CornerstoneImageScrollbar);
|
|
161
|
-
// EXTERNAL MODULE: ../../../
|
|
162
|
-
var
|
|
163
|
-
// EXTERNAL MODULE: ../../../node_modules/moment/moment.js
|
|
164
|
-
var moment = __webpack_require__(8291);
|
|
165
|
-
var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
|
|
166
|
-
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/Viewport/Overlays/utils.ts
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Checks if value is valid.
|
|
172
|
-
*
|
|
173
|
-
* @param {number} value
|
|
174
|
-
* @returns {boolean} is valid.
|
|
175
|
-
*/
|
|
176
|
-
function isValidNumber(value) {
|
|
177
|
-
return typeof value === 'number' && !isNaN(value);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Formats number precision.
|
|
182
|
-
*
|
|
183
|
-
* @param {number} number
|
|
184
|
-
* @param {number} precision
|
|
185
|
-
* @returns {number} formatted number.
|
|
186
|
-
*/
|
|
187
|
-
function formatNumberPrecision(number, precision = 0) {
|
|
188
|
-
if (number !== null) {
|
|
189
|
-
return parseFloat(number).toFixed(precision);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Formats DICOM date.
|
|
195
|
-
*
|
|
196
|
-
* @param {string} date
|
|
197
|
-
* @param {string} strFormat
|
|
198
|
-
* @returns {string} formatted date.
|
|
199
|
-
*/
|
|
200
|
-
function formatDICOMDate(date, strFormat = 'MMM D, YYYY') {
|
|
201
|
-
return moment_default()(date, 'YYYYMMDD').format(strFormat);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* DICOM Time is stored as HHmmss.SSS, where:
|
|
206
|
-
* HH 24 hour time:
|
|
207
|
-
* m mm 0..59 Minutes
|
|
208
|
-
* s ss 0..59 Seconds
|
|
209
|
-
* S SS SSS 0..999 Fractional seconds
|
|
210
|
-
*
|
|
211
|
-
* Goal: '24:12:12'
|
|
212
|
-
*
|
|
213
|
-
* @param {*} time
|
|
214
|
-
* @param {string} strFormat
|
|
215
|
-
* @returns {string} formatted name.
|
|
216
|
-
*/
|
|
217
|
-
function formatDICOMTime(time, strFormat = 'HH:mm:ss') {
|
|
218
|
-
return moment_default()(time, 'HH:mm:ss').format(strFormat);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Formats a patient name for display purposes
|
|
223
|
-
*
|
|
224
|
-
* @param {string} name
|
|
225
|
-
* @returns {string} formatted name.
|
|
226
|
-
*/
|
|
227
|
-
function formatPN(name) {
|
|
228
|
-
if (!name) {
|
|
229
|
-
return '';
|
|
230
|
-
}
|
|
231
|
-
const cleaned = name.split('^').filter(s => !!s).join(', ').trim();
|
|
232
|
-
return cleaned === ',' || cleaned === '' ? '' : cleaned;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Gets compression type
|
|
237
|
-
*
|
|
238
|
-
* @param {number} imageId
|
|
239
|
-
* @returns {string} compression type.
|
|
240
|
-
*/
|
|
241
|
-
function getCompression(imageId) {
|
|
242
|
-
const generalImageModule = metaData.get('generalImageModule', imageId) || {};
|
|
243
|
-
const {
|
|
244
|
-
lossyImageCompression,
|
|
245
|
-
lossyImageCompressionRatio,
|
|
246
|
-
lossyImageCompressionMethod
|
|
247
|
-
} = generalImageModule;
|
|
248
|
-
if (lossyImageCompression === '01' && lossyImageCompressionRatio !== '') {
|
|
249
|
-
const compressionMethod = lossyImageCompressionMethod || 'Lossy: ';
|
|
250
|
-
const compressionRatio = formatNumberPrecision(lossyImageCompressionRatio, 2);
|
|
251
|
-
return compressionMethod + compressionRatio + ' : 1';
|
|
252
|
-
}
|
|
253
|
-
return 'Lossless / Uncompressed';
|
|
254
|
-
}
|
|
255
|
-
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.css
|
|
256
|
-
// extracted by mini-css-extract-plugin
|
|
257
|
-
|
|
258
|
-
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
const EPSILON = 1e-4;
|
|
267
|
-
const OverlayItemComponents = {
|
|
268
|
-
'ohif.overlayItem.windowLevel': VOIOverlayItem,
|
|
269
|
-
'ohif.overlayItem.zoomLevel': ZoomOverlayItem,
|
|
270
|
-
'ohif.overlayItem.instanceNumber': InstanceNumberOverlayItem
|
|
271
|
-
};
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Customizable Viewport Overlay
|
|
275
|
-
*/
|
|
276
|
-
function CustomizableViewportOverlay({
|
|
277
|
-
element,
|
|
278
|
-
viewportData,
|
|
279
|
-
imageSliceData,
|
|
280
|
-
viewportId,
|
|
281
|
-
servicesManager
|
|
282
|
-
}) {
|
|
283
|
-
const {
|
|
284
|
-
cornerstoneViewportService,
|
|
285
|
-
customizationService,
|
|
286
|
-
toolGroupService
|
|
287
|
-
} = servicesManager.services;
|
|
288
|
-
const [voi, setVOI] = (0,react.useState)({
|
|
289
|
-
windowCenter: null,
|
|
290
|
-
windowWidth: null
|
|
291
|
-
});
|
|
292
|
-
const [scale, setScale] = (0,react.useState)(1);
|
|
293
|
-
const {
|
|
294
|
-
imageIndex
|
|
295
|
-
} = imageSliceData;
|
|
296
|
-
const topLeftCustomization = customizationService.getModeCustomization('cornerstoneOverlayTopLeft');
|
|
297
|
-
const topRightCustomization = customizationService.getModeCustomization('cornerstoneOverlayTopRight');
|
|
298
|
-
const bottomLeftCustomization = customizationService.getModeCustomization('cornerstoneOverlayBottomLeft');
|
|
299
|
-
const bottomRightCustomization = customizationService.getModeCustomization('cornerstoneOverlayBottomRight');
|
|
300
|
-
const instances = (0,react.useMemo)(() => {
|
|
301
|
-
if (viewportData != null) {
|
|
302
|
-
return _getViewportInstances(viewportData);
|
|
303
|
-
} else {
|
|
304
|
-
return null;
|
|
305
|
-
}
|
|
306
|
-
}, [viewportData, imageIndex]);
|
|
307
|
-
const instanceNumber = (0,react.useMemo)(() => viewportData ? getInstanceNumber(viewportData, viewportId, imageIndex, cornerstoneViewportService) : null, [viewportData, viewportId, imageIndex, cornerstoneViewportService]);
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* Updating the VOI when the viewport changes its voi
|
|
311
|
-
*/
|
|
312
|
-
(0,react.useEffect)(() => {
|
|
313
|
-
const updateVOI = eventDetail => {
|
|
314
|
-
const {
|
|
315
|
-
range
|
|
316
|
-
} = eventDetail.detail;
|
|
317
|
-
if (!range) {
|
|
318
|
-
return;
|
|
319
|
-
}
|
|
320
|
-
const {
|
|
321
|
-
lower,
|
|
322
|
-
upper
|
|
323
|
-
} = range;
|
|
324
|
-
const {
|
|
325
|
-
windowWidth,
|
|
326
|
-
windowCenter
|
|
327
|
-
} = dist_esm.utilities.windowLevel.toWindowLevel(lower, upper);
|
|
328
|
-
setVOI({
|
|
329
|
-
windowCenter,
|
|
330
|
-
windowWidth
|
|
331
|
-
});
|
|
332
|
-
};
|
|
333
|
-
element.addEventListener(dist_esm.Enums.Events.VOI_MODIFIED, updateVOI);
|
|
334
|
-
return () => {
|
|
335
|
-
element.removeEventListener(dist_esm.Enums.Events.VOI_MODIFIED, updateVOI);
|
|
336
|
-
};
|
|
337
|
-
}, [viewportId, viewportData, voi, element]);
|
|
338
|
-
|
|
339
|
-
/**
|
|
340
|
-
* Updating the scale when the viewport changes its zoom
|
|
341
|
-
*/
|
|
342
|
-
(0,react.useEffect)(() => {
|
|
343
|
-
const updateScale = eventDetail => {
|
|
344
|
-
const {
|
|
345
|
-
previousCamera,
|
|
346
|
-
camera
|
|
347
|
-
} = eventDetail.detail;
|
|
348
|
-
if (previousCamera.parallelScale !== camera.parallelScale || previousCamera.scale !== camera.scale) {
|
|
349
|
-
const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
|
350
|
-
if (!viewport) {
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
|
-
const scale = viewport.getZoom();
|
|
354
|
-
setScale(scale);
|
|
355
|
-
}
|
|
356
|
-
};
|
|
357
|
-
element.addEventListener(dist_esm.Enums.Events.CAMERA_MODIFIED, updateScale);
|
|
358
|
-
return () => {
|
|
359
|
-
element.removeEventListener(dist_esm.Enums.Events.CAMERA_MODIFIED, updateScale);
|
|
360
|
-
};
|
|
361
|
-
}, [viewportId, viewportData, cornerstoneViewportService, element]);
|
|
362
|
-
const _renderOverlayItem = (0,react.useCallback)(item => {
|
|
363
|
-
const overlayItemProps = {
|
|
364
|
-
element,
|
|
365
|
-
viewportData,
|
|
366
|
-
imageSliceData,
|
|
367
|
-
viewportId,
|
|
368
|
-
servicesManager,
|
|
369
|
-
customization: item,
|
|
370
|
-
formatters: {
|
|
371
|
-
formatPN: formatPN,
|
|
372
|
-
formatDate: formatDICOMDate,
|
|
373
|
-
formatTime: formatDICOMTime,
|
|
374
|
-
formatNumberPrecision: formatNumberPrecision
|
|
375
|
-
},
|
|
376
|
-
instance: instances ? instances[item?.instanceIndex] : null,
|
|
377
|
-
voi,
|
|
378
|
-
scale,
|
|
379
|
-
instanceNumber
|
|
380
|
-
};
|
|
381
|
-
if (!item) {
|
|
382
|
-
return null;
|
|
383
|
-
}
|
|
384
|
-
const {
|
|
385
|
-
customizationType
|
|
386
|
-
} = item;
|
|
387
|
-
const OverlayItemComponent = OverlayItemComponents[customizationType];
|
|
388
|
-
if (OverlayItemComponent) {
|
|
389
|
-
return /*#__PURE__*/react.createElement(OverlayItemComponent, overlayItemProps);
|
|
390
|
-
} else {
|
|
391
|
-
const renderItem = customizationService.transform(item);
|
|
392
|
-
if (typeof renderItem.content === 'function') {
|
|
393
|
-
return renderItem.content(overlayItemProps);
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
}, [element, viewportData, imageSliceData, viewportId, servicesManager, customizationService, instances, voi, scale, instanceNumber]);
|
|
397
|
-
const getContent = (0,react.useCallback)((customization, defaultItems, keyPrefix) => {
|
|
398
|
-
const items = customization?.items ?? defaultItems;
|
|
399
|
-
return /*#__PURE__*/react.createElement(react.Fragment, null, items.map((item, index) => /*#__PURE__*/react.createElement("div", {
|
|
400
|
-
key: `${keyPrefix}_${index}`
|
|
401
|
-
}, item?.condition ? item.condition({
|
|
402
|
-
instance: instances ? instances[item?.instanceIndex] : null,
|
|
403
|
-
formatters: {
|
|
404
|
-
formatDate: formatDICOMDate
|
|
405
|
-
}
|
|
406
|
-
}) ? _renderOverlayItem(item) : null : _renderOverlayItem(item))));
|
|
407
|
-
}, [_renderOverlayItem]);
|
|
408
|
-
const studyDateItem = {
|
|
409
|
-
id: 'StudyDate',
|
|
410
|
-
customizationType: 'ohif.overlayItem',
|
|
411
|
-
label: '',
|
|
412
|
-
title: 'Study date',
|
|
413
|
-
condition: ({
|
|
414
|
-
instance
|
|
415
|
-
}) => instance && instance.StudyDate,
|
|
416
|
-
contentF: ({
|
|
417
|
-
instance,
|
|
418
|
-
formatters: {
|
|
419
|
-
formatDate
|
|
420
|
-
}
|
|
421
|
-
}) => formatDate(instance.StudyDate)
|
|
422
|
-
};
|
|
423
|
-
const seriesDescriptionItem = {
|
|
424
|
-
id: 'SeriesDescription',
|
|
425
|
-
customizationType: 'ohif.overlayItem',
|
|
426
|
-
label: '',
|
|
427
|
-
title: 'Series description',
|
|
428
|
-
attribute: 'SeriesDescription',
|
|
429
|
-
condition: ({
|
|
430
|
-
instance
|
|
431
|
-
}) => {
|
|
432
|
-
return instance && instance.SeriesDescription;
|
|
433
|
-
}
|
|
434
|
-
};
|
|
435
|
-
const topLeftItems = instances ? instances.map((instance, index) => {
|
|
436
|
-
return [{
|
|
437
|
-
...studyDateItem,
|
|
438
|
-
instanceIndex: index
|
|
439
|
-
}, {
|
|
440
|
-
...seriesDescriptionItem,
|
|
441
|
-
instanceIndex: index
|
|
442
|
-
}];
|
|
443
|
-
}).flat() : [];
|
|
444
|
-
return /*#__PURE__*/react.createElement(ui_src/* ViewportOverlay */.pU, {
|
|
445
|
-
topLeft:
|
|
446
|
-
/**
|
|
447
|
-
* Inline default overlay items for a more standard expansion
|
|
448
|
-
*/
|
|
449
|
-
getContent(topLeftCustomization, [...topLeftItems], 'topLeftOverlayItem'),
|
|
450
|
-
topRight: getContent(topRightCustomization, [], 'topRightOverlayItem'),
|
|
451
|
-
bottomLeft: getContent(bottomLeftCustomization, [{
|
|
452
|
-
id: 'WindowLevel',
|
|
453
|
-
customizationType: 'ohif.overlayItem.windowLevel'
|
|
454
|
-
}, {
|
|
455
|
-
id: 'ZoomLevel',
|
|
456
|
-
customizationType: 'ohif.overlayItem.zoomLevel',
|
|
457
|
-
condition: () => {
|
|
458
|
-
const activeToolName = toolGroupService.getActiveToolForViewport(viewportId);
|
|
459
|
-
return activeToolName === 'Zoom';
|
|
460
|
-
}
|
|
461
|
-
}], 'bottomLeftOverlayItem'),
|
|
462
|
-
bottomRight: getContent(bottomRightCustomization, [{
|
|
463
|
-
id: 'InstanceNumber',
|
|
464
|
-
customizationType: 'ohif.overlayItem.instanceNumber'
|
|
465
|
-
}], 'bottomRightOverlayItem')
|
|
466
|
-
});
|
|
467
|
-
}
|
|
468
|
-
function _getViewportInstances(viewportData) {
|
|
469
|
-
const imageIds = [];
|
|
470
|
-
if (viewportData.viewportType === dist_esm.Enums.ViewportType.STACK) {
|
|
471
|
-
imageIds.push(viewportData.data[0].imageIds[0]);
|
|
472
|
-
} else if (viewportData.viewportType === dist_esm.Enums.ViewportType.ORTHOGRAPHIC) {
|
|
473
|
-
const volumes = viewportData.data;
|
|
474
|
-
volumes.forEach(volume => {
|
|
475
|
-
if (!volume?.imageIds || volume.imageIds.length === 0) {
|
|
476
|
-
return;
|
|
477
|
-
}
|
|
478
|
-
imageIds.push(volume.imageIds[0]);
|
|
479
|
-
});
|
|
480
|
-
}
|
|
481
|
-
const instances = [];
|
|
482
|
-
imageIds.forEach(imageId => {
|
|
483
|
-
const instance = dist_esm.metaData.get('instance', imageId) || {};
|
|
484
|
-
instances.push(instance);
|
|
485
|
-
});
|
|
486
|
-
return instances;
|
|
487
|
-
}
|
|
488
|
-
const getInstanceNumber = (viewportData, viewportId, imageIndex, cornerstoneViewportService) => {
|
|
489
|
-
let instanceNumber;
|
|
490
|
-
switch (viewportData.viewportType) {
|
|
491
|
-
case dist_esm.Enums.ViewportType.STACK:
|
|
492
|
-
instanceNumber = _getInstanceNumberFromStack(viewportData, imageIndex);
|
|
493
|
-
break;
|
|
494
|
-
case dist_esm.Enums.ViewportType.ORTHOGRAPHIC:
|
|
495
|
-
instanceNumber = _getInstanceNumberFromVolume(viewportData, viewportId, cornerstoneViewportService, imageIndex);
|
|
496
|
-
break;
|
|
497
|
-
}
|
|
498
|
-
return instanceNumber ?? null;
|
|
499
|
-
};
|
|
500
|
-
function _getInstanceNumberFromStack(viewportData, imageIndex) {
|
|
501
|
-
const imageIds = viewportData.data[0].imageIds;
|
|
502
|
-
const imageId = imageIds[imageIndex];
|
|
503
|
-
if (!imageId) {
|
|
504
|
-
return;
|
|
505
|
-
}
|
|
506
|
-
const generalImageModule = dist_esm.metaData.get('generalImageModule', imageId) || {};
|
|
507
|
-
const {
|
|
508
|
-
instanceNumber
|
|
509
|
-
} = generalImageModule;
|
|
510
|
-
const stackSize = imageIds.length;
|
|
511
|
-
if (stackSize <= 1) {
|
|
512
|
-
return;
|
|
513
|
-
}
|
|
514
|
-
return parseInt(instanceNumber);
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
// Since volume viewports can be in any view direction, they can render
|
|
518
|
-
// a reconstructed image which don't have imageIds; therefore, no instance and instanceNumber
|
|
519
|
-
// Here we check if viewport is in the acquisition direction and if so, we get the instanceNumber
|
|
520
|
-
function _getInstanceNumberFromVolume(viewportData, viewportId, cornerstoneViewportService, imageIndex) {
|
|
521
|
-
const volumes = viewportData.data;
|
|
522
|
-
if (!volumes) {
|
|
523
|
-
return;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
// Todo: support fusion of acquisition plane which has instanceNumber
|
|
527
|
-
const {
|
|
528
|
-
volume
|
|
529
|
-
} = volumes[0];
|
|
530
|
-
const {
|
|
531
|
-
direction,
|
|
532
|
-
imageIds
|
|
533
|
-
} = volume;
|
|
534
|
-
const cornerstoneViewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
|
|
535
|
-
if (!cornerstoneViewport) {
|
|
536
|
-
return;
|
|
537
|
-
}
|
|
538
|
-
const camera = cornerstoneViewport.getCamera();
|
|
539
|
-
const {
|
|
540
|
-
viewPlaneNormal
|
|
541
|
-
} = camera;
|
|
542
|
-
// checking if camera is looking at the acquisition plane (defined by the direction on the volume)
|
|
543
|
-
|
|
544
|
-
const scanAxisNormal = direction.slice(6, 9);
|
|
545
|
-
|
|
546
|
-
// check if viewPlaneNormal is parallel to scanAxisNormal
|
|
547
|
-
const cross = gl_matrix_esm/* vec3.cross */.eR.cross(gl_matrix_esm/* vec3.create */.eR.create(), viewPlaneNormal, scanAxisNormal);
|
|
548
|
-
const isAcquisitionPlane = gl_matrix_esm/* vec3.length */.eR.length(cross) < EPSILON;
|
|
549
|
-
if (isAcquisitionPlane) {
|
|
550
|
-
const imageId = imageIds[imageIndex];
|
|
551
|
-
if (!imageId) {
|
|
552
|
-
return {};
|
|
553
|
-
}
|
|
554
|
-
const {
|
|
555
|
-
instanceNumber
|
|
556
|
-
} = dist_esm.metaData.get('generalImageModule', imageId) || {};
|
|
557
|
-
return parseInt(instanceNumber);
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
/**
|
|
562
|
-
* Window Level / Center Overlay item
|
|
563
|
-
*/
|
|
564
|
-
function VOIOverlayItem({
|
|
565
|
-
voi,
|
|
566
|
-
customization
|
|
567
|
-
}) {
|
|
568
|
-
const {
|
|
569
|
-
windowWidth,
|
|
570
|
-
windowCenter
|
|
571
|
-
} = voi;
|
|
572
|
-
if (typeof windowCenter !== 'number' || typeof windowWidth !== 'number') {
|
|
573
|
-
return null;
|
|
574
|
-
}
|
|
575
|
-
return /*#__PURE__*/react.createElement("div", {
|
|
576
|
-
className: "overlay-item flex flex-row",
|
|
577
|
-
style: {
|
|
578
|
-
color: customization && customization.color || undefined
|
|
579
|
-
}
|
|
580
|
-
}, /*#__PURE__*/react.createElement("span", {
|
|
581
|
-
className: "mr-1 shrink-0"
|
|
582
|
-
}, "W:"), /*#__PURE__*/react.createElement("span", {
|
|
583
|
-
className: "ml-1 mr-2 shrink-0"
|
|
584
|
-
}, windowWidth.toFixed(0)), /*#__PURE__*/react.createElement("span", {
|
|
585
|
-
className: "mr-1 shrink-0"
|
|
586
|
-
}, "L:"), /*#__PURE__*/react.createElement("span", {
|
|
587
|
-
className: "ml-1 shrink-0"
|
|
588
|
-
}, windowCenter.toFixed(0)));
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
/**
|
|
592
|
-
* Zoom Level Overlay item
|
|
593
|
-
*/
|
|
594
|
-
function ZoomOverlayItem({
|
|
595
|
-
scale,
|
|
596
|
-
customization
|
|
597
|
-
}) {
|
|
598
|
-
return /*#__PURE__*/react.createElement("div", {
|
|
599
|
-
className: "overlay-item flex flex-row",
|
|
600
|
-
style: {
|
|
601
|
-
color: customization && customization.color || undefined
|
|
602
|
-
}
|
|
603
|
-
}, /*#__PURE__*/react.createElement("span", {
|
|
604
|
-
className: "mr-1 shrink-0"
|
|
605
|
-
}, "Zoom:"), /*#__PURE__*/react.createElement("span", null, scale.toFixed(2), "x"));
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
/**
|
|
609
|
-
* Instance Number Overlay Item
|
|
610
|
-
*/
|
|
611
|
-
function InstanceNumberOverlayItem({
|
|
612
|
-
instanceNumber,
|
|
613
|
-
imageSliceData,
|
|
614
|
-
customization
|
|
615
|
-
}) {
|
|
616
|
-
const {
|
|
617
|
-
imageIndex,
|
|
618
|
-
numberOfSlices
|
|
619
|
-
} = imageSliceData;
|
|
620
|
-
return /*#__PURE__*/react.createElement("div", {
|
|
621
|
-
className: "overlay-item flex flex-row",
|
|
622
|
-
style: {
|
|
623
|
-
color: customization && customization.color || undefined
|
|
624
|
-
}
|
|
625
|
-
}, /*#__PURE__*/react.createElement("span", null, instanceNumber !== undefined && instanceNumber !== null ? /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("span", {
|
|
626
|
-
className: "mr-1 shrink-0"
|
|
627
|
-
}, "I:"), /*#__PURE__*/react.createElement("span", null, `${instanceNumber} (${imageIndex + 1}/${numberOfSlices})`)) : `${imageIndex + 1}/${numberOfSlices}`));
|
|
628
|
-
}
|
|
629
|
-
CustomizableViewportOverlay.propTypes = {
|
|
630
|
-
viewportData: (prop_types_default()).object,
|
|
631
|
-
imageIndex: (prop_types_default()).number,
|
|
632
|
-
viewportId: (prop_types_default()).string
|
|
633
|
-
};
|
|
634
|
-
/* harmony default export */ const Overlays_CustomizableViewportOverlay = (CustomizableViewportOverlay);
|
|
161
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/Viewport/Overlays/CustomizableViewportOverlay.tsx + 2 modules
|
|
162
|
+
var CustomizableViewportOverlay = __webpack_require__(34);
|
|
635
163
|
// EXTERNAL MODULE: ../../../node_modules/classnames/index.js
|
|
636
|
-
var classnames = __webpack_require__(
|
|
164
|
+
var classnames = __webpack_require__(33901);
|
|
637
165
|
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
|
|
166
|
+
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
167
|
+
var gl_matrix_esm = __webpack_require__(72076);
|
|
638
168
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/Viewport/Overlays/ViewportOrientationMarkers.css
|
|
639
169
|
// extracted by mini-css-extract-plugin
|
|
640
170
|
|
|
@@ -714,8 +244,8 @@ function ViewportOrientationMarkers({
|
|
|
714
244
|
viewUp,
|
|
715
245
|
viewPlaneNormal
|
|
716
246
|
} = viewport.getCamera();
|
|
717
|
-
const viewRight = gl_matrix_esm/* vec3.create */.
|
|
718
|
-
gl_matrix_esm/* vec3.cross */.
|
|
247
|
+
const viewRight = gl_matrix_esm/* vec3.create */.R3.create();
|
|
248
|
+
gl_matrix_esm/* vec3.cross */.R3.cross(viewRight, viewUp, viewPlaneNormal);
|
|
719
249
|
columnCosines = [-viewUp[0], -viewUp[1], -viewUp[2]];
|
|
720
250
|
rowCosines = viewRight;
|
|
721
251
|
}
|
|
@@ -922,7 +452,7 @@ function CornerstoneOverlays(props) {
|
|
|
922
452
|
setImageSliceData: setImageSliceData,
|
|
923
453
|
scrollbarHeight: scrollbarHeight,
|
|
924
454
|
servicesManager: servicesManager
|
|
925
|
-
}), /*#__PURE__*/react.createElement(
|
|
455
|
+
}), /*#__PURE__*/react.createElement(CustomizableViewportOverlay/* default */.ZP, {
|
|
926
456
|
imageSliceData: imageSliceData,
|
|
927
457
|
viewportData: viewportData,
|
|
928
458
|
viewportId: viewportId,
|
|
@@ -941,11 +471,11 @@ function CornerstoneOverlays(props) {
|
|
|
941
471
|
}
|
|
942
472
|
/* harmony default export */ const Overlays_CornerstoneOverlays = (CornerstoneOverlays);
|
|
943
473
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/utils/getSOPInstanceAttributes.js
|
|
944
|
-
var getSOPInstanceAttributes = __webpack_require__(
|
|
474
|
+
var getSOPInstanceAttributes = __webpack_require__(90927);
|
|
945
475
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
|
|
946
|
-
var streaming_image_volume_loader_dist_esm = __webpack_require__(
|
|
476
|
+
var streaming_image_volume_loader_dist_esm = __webpack_require__(15793);
|
|
947
477
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
948
|
-
var state_0 = __webpack_require__(
|
|
478
|
+
var state_0 = __webpack_require__(52490);
|
|
949
479
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/CinePlayer/CinePlayer.tsx
|
|
950
480
|
|
|
951
481
|
|
|
@@ -965,10 +495,10 @@ function WrappedCinePlayer({
|
|
|
965
495
|
const [{
|
|
966
496
|
isCineEnabled,
|
|
967
497
|
cines
|
|
968
|
-
}, cineService] = (0,ui_src/* useCine */.
|
|
498
|
+
}, cineService] = (0,ui_src/* useCine */.vQ)();
|
|
969
499
|
const [newStackFrameRate, setNewStackFrameRate] = (0,react.useState)(24);
|
|
970
500
|
const [dynamicInfo, setDynamicInfo] = (0,react.useState)(null);
|
|
971
|
-
const [appConfig] = (0,state_0/* useAppConfig */.
|
|
501
|
+
const [appConfig] = (0,state_0/* useAppConfig */.M)();
|
|
972
502
|
const isMountedRef = (0,react.useRef)(null);
|
|
973
503
|
const cineHandler = () => {
|
|
974
504
|
if (!cines?.[viewportId] || !enabledVPElement) {
|
|
@@ -1100,7 +630,7 @@ function RenderCinePlayer({
|
|
|
1100
630
|
customizationService
|
|
1101
631
|
}) {
|
|
1102
632
|
const {
|
|
1103
|
-
component: CinePlayerComponent = ui_src/* CinePlayer */.
|
|
633
|
+
component: CinePlayerComponent = ui_src/* CinePlayer */.H6
|
|
1104
634
|
} = customizationService.get('cinePlayer') ?? {};
|
|
1105
635
|
const [dynamicInfo, setDynamicInfo] = (0,react.useState)(dynamicInfoProp);
|
|
1106
636
|
(0,react.useEffect)(() => {
|
|
@@ -1128,9 +658,9 @@ function RenderCinePlayer({
|
|
|
1128
658
|
label: splittingTag
|
|
1129
659
|
});
|
|
1130
660
|
};
|
|
1131
|
-
dist_esm.eventTarget.addEventListener(streaming_image_volume_loader_dist_esm/* Enums.Events */.
|
|
661
|
+
dist_esm.eventTarget.addEventListener(streaming_image_volume_loader_dist_esm/* Enums.Events */.Yb.z.DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED, handleTimePointIndexChange);
|
|
1132
662
|
return () => {
|
|
1133
|
-
dist_esm.eventTarget.removeEventListener(streaming_image_volume_loader_dist_esm/* Enums.Events */.
|
|
663
|
+
dist_esm.eventTarget.removeEventListener(streaming_image_volume_loader_dist_esm/* Enums.Events */.Yb.z.DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED, handleTimePointIndexChange);
|
|
1134
664
|
};
|
|
1135
665
|
}, [dynamicInfo]);
|
|
1136
666
|
(0,react.useEffect)(() => {
|
|
@@ -1191,7 +721,7 @@ function RenderCinePlayer({
|
|
|
1191
721
|
|
|
1192
722
|
/* harmony default export */ const components_CinePlayer = (CinePlayer);
|
|
1193
723
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/contextProviders/ViewportActionCornersProvider.tsx
|
|
1194
|
-
var ViewportActionCornersProvider = __webpack_require__(
|
|
724
|
+
var ViewportActionCornersProvider = __webpack_require__(71645);
|
|
1195
725
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/OHIFViewportActionCorners.tsx
|
|
1196
726
|
|
|
1197
727
|
|
|
@@ -1199,17 +729,17 @@ var ViewportActionCornersProvider = __webpack_require__(40684);
|
|
|
1199
729
|
function OHIFViewportActionCorners({
|
|
1200
730
|
viewportId
|
|
1201
731
|
}) {
|
|
1202
|
-
const [viewportActionCornersState] = (0,ViewportActionCornersProvider/* useViewportActionCornersContext */.
|
|
732
|
+
const [viewportActionCornersState] = (0,ViewportActionCornersProvider/* useViewportActionCornersContext */.HC)();
|
|
1203
733
|
if (!viewportActionCornersState[viewportId]) {
|
|
1204
734
|
return null;
|
|
1205
735
|
}
|
|
1206
|
-
return /*#__PURE__*/react.createElement(ui_src/* ViewportActionCorners */.
|
|
736
|
+
return /*#__PURE__*/react.createElement(ui_src/* ViewportActionCorners */.wq, {
|
|
1207
737
|
cornerComponents: viewportActionCornersState[viewportId]
|
|
1208
738
|
});
|
|
1209
739
|
}
|
|
1210
740
|
/* harmony default export */ const components_OHIFViewportActionCorners = (OHIFViewportActionCorners);
|
|
1211
741
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
1212
|
-
var es = __webpack_require__(
|
|
742
|
+
var es = __webpack_require__(69190);
|
|
1213
743
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/WindowLevelActionMenu/Colormap.tsx
|
|
1214
744
|
|
|
1215
745
|
|
|
@@ -1290,7 +820,7 @@ function Colormap({
|
|
|
1290
820
|
}, [displaySets]);
|
|
1291
821
|
return /*#__PURE__*/react.createElement(react.Fragment, null, buttons.length > 1 && /*#__PURE__*/react.createElement("div", {
|
|
1292
822
|
className: "all-in-one-menu-item flex w-full justify-center"
|
|
1293
|
-
}, /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.
|
|
823
|
+
}, /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.hE, {
|
|
1294
824
|
onActiveIndexChange: index => {
|
|
1295
825
|
setActiveDisplaySet(displaySets[index]);
|
|
1296
826
|
setPrePreviewColormap(null);
|
|
@@ -1306,13 +836,13 @@ function Colormap({
|
|
|
1306
836
|
style: style
|
|
1307
837
|
}, children)))), /*#__PURE__*/react.createElement("div", {
|
|
1308
838
|
className: "all-in-one-menu-item flex w-full justify-center"
|
|
1309
|
-
}, /*#__PURE__*/react.createElement(ui_src/* SwitchButton */.
|
|
839
|
+
}, /*#__PURE__*/react.createElement(ui_src/* SwitchButton */.U3, {
|
|
1310
840
|
label: "Preview in viewport",
|
|
1311
841
|
checked: showPreview,
|
|
1312
842
|
onChange: checked => {
|
|
1313
843
|
setShowPreview(checked);
|
|
1314
844
|
}
|
|
1315
|
-
})), /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.DividerItem */.
|
|
845
|
+
})), /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.DividerItem */.yZ.P7, null), /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.ItemPanel */.yZ.qZ, null, colormaps.map((colormap, index) => /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.Item */.yZ.ck, {
|
|
1316
846
|
key: index,
|
|
1317
847
|
label: colormap.description,
|
|
1318
848
|
onClick: () => {
|
|
@@ -1434,7 +964,7 @@ function Colorbar({
|
|
|
1434
964
|
className: "all-in-one-menu-item flex w-full justify-center"
|
|
1435
965
|
}, /*#__PURE__*/react.createElement("div", {
|
|
1436
966
|
className: "mr-2 w-[28px]"
|
|
1437
|
-
}), /*#__PURE__*/react.createElement(ui_src/* SwitchButton */.
|
|
967
|
+
}), /*#__PURE__*/react.createElement(ui_src/* SwitchButton */.U3, {
|
|
1438
968
|
label: "Display Color bar",
|
|
1439
969
|
checked: showColorbar,
|
|
1440
970
|
onChange: () => {
|
|
@@ -1453,7 +983,7 @@ function WindowLevel({
|
|
|
1453
983
|
}) {
|
|
1454
984
|
const {
|
|
1455
985
|
t
|
|
1456
|
-
} = (0,es/* useTranslation
|
|
986
|
+
} = (0,es/* useTranslation */.$G)('WindowLevelActionMenu');
|
|
1457
987
|
const onSetWindowLevel = (0,react.useCallback)(props => {
|
|
1458
988
|
commandsManager.run({
|
|
1459
989
|
commandName: 'setViewportWindowLevel',
|
|
@@ -1464,13 +994,13 @@ function WindowLevel({
|
|
|
1464
994
|
context: 'CORNERSTONE'
|
|
1465
995
|
});
|
|
1466
996
|
}, [commandsManager, viewportId]);
|
|
1467
|
-
return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.ItemPanel */.
|
|
997
|
+
return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.ItemPanel */.yZ.qZ, null, presets.map((modalityPresets, modalityIndex) => /*#__PURE__*/react.createElement(react.Fragment, {
|
|
1468
998
|
key: modalityIndex
|
|
1469
999
|
}, Object.entries(modalityPresets).map(([modality, presetsArray]) => /*#__PURE__*/react.createElement(react.Fragment, {
|
|
1470
1000
|
key: modality
|
|
1471
|
-
}, /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.HeaderItem */.
|
|
1001
|
+
}, /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.HeaderItem */.yZ.Km, null, t('Modality Presets', {
|
|
1472
1002
|
modality
|
|
1473
|
-
})), presetsArray.map((preset, index) => /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.Item */.
|
|
1003
|
+
})), presetsArray.map((preset, index) => /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.Item */.yZ.ck, {
|
|
1474
1004
|
key: `${modality}-${index}`,
|
|
1475
1005
|
label: preset.description,
|
|
1476
1006
|
secondaryLabel: `${preset.window} / ${preset.level}`,
|
|
@@ -1512,7 +1042,7 @@ function VolumeRenderingPresetsContent({
|
|
|
1512
1042
|
className: "flex h-[46px] w-full items-center justify-start"
|
|
1513
1043
|
}, /*#__PURE__*/react.createElement("div", {
|
|
1514
1044
|
className: "h-[26px] w-[200px]"
|
|
1515
|
-
}, /*#__PURE__*/react.createElement(ui_src/* InputFilterText */.
|
|
1045
|
+
}, /*#__PURE__*/react.createElement(ui_src/* InputFilterText */.Xe, {
|
|
1516
1046
|
value: searchValue,
|
|
1517
1047
|
onDebounceChange: handleSearchChange,
|
|
1518
1048
|
placeholder: 'Search all'
|
|
@@ -1530,7 +1060,7 @@ function VolumeRenderingPresetsContent({
|
|
|
1530
1060
|
viewportId
|
|
1531
1061
|
});
|
|
1532
1062
|
}
|
|
1533
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
1063
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
1534
1064
|
name: preset.name,
|
|
1535
1065
|
className: selectedPreset?.name === preset.name ? 'border-primary-light h-[75px] w-[95px] max-w-none rounded border-2' : 'hover:border-primary-light h-[75px] w-[95px] max-w-none rounded border-2 border-black'
|
|
1536
1066
|
}), /*#__PURE__*/react.createElement("label", {
|
|
@@ -1539,10 +1069,10 @@ function VolumeRenderingPresetsContent({
|
|
|
1539
1069
|
className: "flex h-[60px] w-full items-center justify-end"
|
|
1540
1070
|
}, /*#__PURE__*/react.createElement("div", {
|
|
1541
1071
|
className: "flex"
|
|
1542
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Button
|
|
1072
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
|
|
1543
1073
|
name: "Cancel",
|
|
1544
|
-
size: ui_src/* ButtonEnums.size */.
|
|
1545
|
-
type: ui_src/* ButtonEnums.type */.
|
|
1074
|
+
size: ui_src/* ButtonEnums.size */.LZ.dp.medium,
|
|
1075
|
+
type: ui_src/* ButtonEnums.type */.LZ.dt.secondary,
|
|
1546
1076
|
onClick: onClose
|
|
1547
1077
|
}, ' ', "Cancel", ' '))));
|
|
1548
1078
|
}
|
|
@@ -1574,12 +1104,12 @@ function VolumeRenderingPresets({
|
|
|
1574
1104
|
contentDimensions: 'h-[493px] w-[460px] pl-[12px] pr-[12px]'
|
|
1575
1105
|
});
|
|
1576
1106
|
};
|
|
1577
|
-
return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.Item */.
|
|
1107
|
+
return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.Item */.yZ.ck, {
|
|
1578
1108
|
label: "Rendering Presets",
|
|
1579
|
-
icon: /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
1109
|
+
icon: /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
1580
1110
|
name: "VolumeRendering"
|
|
1581
1111
|
}),
|
|
1582
|
-
rightIcon: /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
1112
|
+
rightIcon: /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
1583
1113
|
name: "action-new-dialog"
|
|
1584
1114
|
}),
|
|
1585
1115
|
onClick: onClickPresets
|
|
@@ -1874,7 +1404,7 @@ function VolumeShade({
|
|
|
1874
1404
|
setShade(shade);
|
|
1875
1405
|
setKey(key + 1);
|
|
1876
1406
|
}, [viewportId, cornerstoneViewportService]);
|
|
1877
|
-
return /*#__PURE__*/react.createElement(ui_src/* SwitchButton */.
|
|
1407
|
+
return /*#__PURE__*/react.createElement(ui_src/* SwitchButton */.U3, {
|
|
1878
1408
|
key: key,
|
|
1879
1409
|
label: "Shade",
|
|
1880
1410
|
checked: shade,
|
|
@@ -1897,7 +1427,7 @@ function VolumeRenderingOptions({
|
|
|
1897
1427
|
volumeRenderingQualityRange,
|
|
1898
1428
|
servicesManager
|
|
1899
1429
|
}) {
|
|
1900
|
-
return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.ItemPanel */.
|
|
1430
|
+
return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.ItemPanel */.yZ.qZ, null, /*#__PURE__*/react.createElement(VolumeRenderingQuality, {
|
|
1901
1431
|
viewportId: viewportId,
|
|
1902
1432
|
commandsManager: commandsManager,
|
|
1903
1433
|
servicesManager: servicesManager,
|
|
@@ -1968,8 +1498,8 @@ function WindowLevelActionMenu({
|
|
|
1968
1498
|
const nonImageModalities = ['SR', 'SEG', 'SM', 'RTSTRUCT', 'RTPLAN', 'RTDOSE'];
|
|
1969
1499
|
const {
|
|
1970
1500
|
t
|
|
1971
|
-
} = (0,es/* useTranslation
|
|
1972
|
-
const [viewportGrid] = (0,ui_src/* useViewportGrid */.
|
|
1501
|
+
} = (0,es/* useTranslation */.$G)('WindowLevelActionMenu');
|
|
1502
|
+
const [viewportGrid] = (0,ui_src/* useViewportGrid */.O_)();
|
|
1973
1503
|
const {
|
|
1974
1504
|
activeViewportId
|
|
1975
1505
|
} = viewportGrid;
|
|
@@ -2011,7 +1541,7 @@ function WindowLevelActionMenu({
|
|
|
2011
1541
|
setIs3DVolume(false);
|
|
2012
1542
|
}
|
|
2013
1543
|
}, [displaySets, viewportId, presets, volumeRenderingQualityRange, volumeRenderingPresets, colorbarProperties, activeViewportId, viewportGrid]);
|
|
2014
|
-
return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.IconMenu */.
|
|
1544
|
+
return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.IconMenu */.yZ.dc, {
|
|
2015
1545
|
icon: "viewport-window-level",
|
|
2016
1546
|
verticalDirection: verticalDirection,
|
|
2017
1547
|
horizontalDirection: horizontalDirection,
|
|
@@ -2026,13 +1556,13 @@ function WindowLevelActionMenu({
|
|
|
2026
1556
|
setVpHeight(element.clientHeight);
|
|
2027
1557
|
},
|
|
2028
1558
|
menuKey: menuKey
|
|
2029
|
-
}, /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.ItemPanel */.
|
|
1559
|
+
}, /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.ItemPanel */.yZ.qZ, null, !is3DVolume && /*#__PURE__*/react.createElement(Colorbar, {
|
|
2030
1560
|
viewportId: viewportId,
|
|
2031
1561
|
displaySets: displaySets.filter(ds => !nonImageModalities.includes(ds.Modality)),
|
|
2032
1562
|
commandsManager: commandsManager,
|
|
2033
1563
|
servicesManager: servicesManager,
|
|
2034
1564
|
colorbarProperties: colorbarProperties
|
|
2035
|
-
}), colormaps && !is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.
|
|
1565
|
+
}), colormaps && !is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.yZ.Wd, {
|
|
2036
1566
|
key: "colorLUTPresets",
|
|
2037
1567
|
itemLabel: "Color LUT",
|
|
2038
1568
|
itemIcon: "icon-color-lut"
|
|
@@ -2042,7 +1572,7 @@ function WindowLevelActionMenu({
|
|
|
2042
1572
|
displaySets: displaySets.filter(ds => !nonImageModalities.includes(ds.Modality)),
|
|
2043
1573
|
commandsManager: commandsManager,
|
|
2044
1574
|
servicesManager: servicesManager
|
|
2045
|
-
})), presets && presets.length > 0 && !is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.
|
|
1575
|
+
})), presets && presets.length > 0 && !is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.yZ.Wd, {
|
|
2046
1576
|
key: "windowLevelPresets",
|
|
2047
1577
|
itemLabel: t('Modality Window Presets'),
|
|
2048
1578
|
itemIcon: "viewport-window-level"
|
|
@@ -2055,7 +1585,7 @@ function WindowLevelActionMenu({
|
|
|
2055
1585
|
viewportId: viewportId,
|
|
2056
1586
|
commandsManager: commandsManager,
|
|
2057
1587
|
volumeRenderingPresets: volumeRenderingPresets
|
|
2058
|
-
}), volumeRenderingQualityRange && is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.
|
|
1588
|
+
}), volumeRenderingQualityRange && is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.yZ.Wd, {
|
|
2059
1589
|
itemLabel: "Rendering Options"
|
|
2060
1590
|
}, /*#__PURE__*/react.createElement(VolumeRenderingOptions, {
|
|
2061
1591
|
viewportId: viewportId,
|
|
@@ -2216,7 +1746,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
|
|
|
2216
1746
|
const [scrollbarHeight, setScrollbarHeight] = (0,react.useState)('100px');
|
|
2217
1747
|
const [enabledVPElement, setEnabledVPElement] = (0,react.useState)(null);
|
|
2218
1748
|
const elementRef = (0,react.useRef)();
|
|
2219
|
-
const [appConfig] = (0,state_0/* useAppConfig */.
|
|
1749
|
+
const [appConfig] = (0,state_0/* useAppConfig */.M)();
|
|
2220
1750
|
const {
|
|
2221
1751
|
measurementService,
|
|
2222
1752
|
displaySetService,
|
|
@@ -2229,7 +1759,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
|
|
|
2229
1759
|
stateSyncService,
|
|
2230
1760
|
viewportActionCornersService
|
|
2231
1761
|
} = servicesManager.services;
|
|
2232
|
-
const [viewportDialogState] = (0,ui_src/* useViewportDialog */.
|
|
1762
|
+
const [viewportDialogState] = (0,ui_src/* useViewportDialog */.en)();
|
|
2233
1763
|
// useCallback for scroll bar height calculation
|
|
2234
1764
|
const setImageScrollBarHeight = (0,react.useCallback)(() => {
|
|
2235
1765
|
const scrollbarHeight = `${elementRef.current.clientHeight - 40}px`;
|
|
@@ -2260,7 +1790,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
|
|
|
2260
1790
|
element
|
|
2261
1791
|
} = evt.detail;
|
|
2262
1792
|
const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
|
|
2263
|
-
(0,state/* setEnabledElement */.
|
|
1793
|
+
(0,state/* setEnabledElement */.Yc)(viewportId, element);
|
|
2264
1794
|
setEnabledVPElement(element);
|
|
2265
1795
|
const renderingEngineId = viewportInfo.getRenderingEngineId();
|
|
2266
1796
|
const toolGroupId = viewportInfo.getToolGroupId();
|
|
@@ -2414,8 +1944,8 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
|
|
|
2414
1944
|
displaySets,
|
|
2415
1945
|
servicesManager,
|
|
2416
1946
|
commandsManager,
|
|
2417
|
-
verticalDirection: ui_src/* AllInOneMenu.VerticalDirection */.
|
|
2418
|
-
horizontalDirection: ui_src/* AllInOneMenu.HorizontalDirection */.
|
|
1947
|
+
verticalDirection: ui_src/* AllInOneMenu.VerticalDirection */.yZ.HO.TopToBottom,
|
|
1948
|
+
horizontalDirection: ui_src/* AllInOneMenu.HorizontalDirection */.yZ.po.RightToLeft
|
|
2419
1949
|
});
|
|
2420
1950
|
viewportActionCornersService.setComponent({
|
|
2421
1951
|
viewportId,
|
|
@@ -2427,7 +1957,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
|
|
|
2427
1957
|
}, [displaySets, viewportId, viewportActionCornersService, servicesManager, commandsManager]);
|
|
2428
1958
|
const {
|
|
2429
1959
|
ref: resizeRef
|
|
2430
|
-
} = (0,index_esm/* useResizeDetector */.
|
|
1960
|
+
} = (0,index_esm/* useResizeDetector */.N)({
|
|
2431
1961
|
onResize
|
|
2432
1962
|
});
|
|
2433
1963
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
@@ -2456,7 +1986,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
|
|
|
2456
1986
|
servicesManager: servicesManager
|
|
2457
1987
|
})), /*#__PURE__*/react.createElement("div", {
|
|
2458
1988
|
className: "absolute top-[24px] w-full"
|
|
2459
|
-
}, viewportDialogState.viewportId === viewportId && /*#__PURE__*/react.createElement(ui_src/* Notification */.
|
|
1989
|
+
}, viewportDialogState.viewportId === viewportId && /*#__PURE__*/react.createElement(ui_src/* Notification */.P_, {
|
|
2460
1990
|
id: "viewport-notification",
|
|
2461
1991
|
message: viewportDialogState.message,
|
|
2462
1992
|
type: viewportDialogState.type,
|
|
@@ -2549,7 +2079,7 @@ function _jumpToMeasurement(measurement, targetElementRef, viewportId, measureme
|
|
|
2549
2079
|
const {
|
|
2550
2080
|
SOPInstanceUID: aSOPInstanceUID,
|
|
2551
2081
|
frameNumber: aFrameNumber
|
|
2552
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
2082
|
+
} = (0,getSOPInstanceAttributes/* default */.Z)(imageId);
|
|
2553
2083
|
return aSOPInstanceUID === SOPInstanceUID && (!frameNumber || frameNumber === aFrameNumber);
|
|
2554
2084
|
});
|
|
2555
2085
|
} else {
|