@ohif/app 3.8.0-beta.8 → 3.8.0-beta.80
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/{220.bundle.f7e1c96c94245e70f2be.js → 109.bundle.b4fee2a22b622839baf5.js} +4466 -3715
- package/dist/{471.bundle.49c8d281adbae4a2c4df.js → 121.bundle.787f5a848ed632a4d5fc.js} +90 -112
- package/dist/141.bundle.556b4c1e4cab770417ac.js +8620 -0
- package/dist/{687.bundle.9065db35c01823286f08.js → 164.bundle.d4598e491783753a8b6b.js} +22 -38
- package/dist/17dd54813d5acc10bf8f.wasm +0 -0
- package/dist/183.bundle.72bf18ad23ee6624986d.js +30394 -0
- package/dist/{506.bundle.5731bb4349e266491225.js → 188.bundle.b80554ec7df7dcd435a5.js} +23 -28
- package/dist/{342.bundle.e7c3d500f86fdfcc62b5.js → 206.bundle.f957e0d1cdff66dbac69.js} +1963 -1142
- package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
- package/dist/217.bundle.be1cc412f8e26be87d21.js +115079 -0
- package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.6f734abf8fa85b1a310d.js} +107 -127
- package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
- package/dist/{19.bundle.f77c5787b6d8ac0b638b.js → 325.bundle.84909a08305556e9f924.js} +479 -371
- package/dist/335.bundle.c39d4aefe33aecab958f.js +2590 -0
- package/dist/{202.bundle.d3490836f71e001dd30f.js → 342.bundle.e6d0bba29351b5650a8c.js} +566 -868
- package/dist/{776.bundle.a2dedb405a12ffd7699b.js → 41.bundle.7c943bb857ed37831905.js} +7295 -3536
- package/dist/422.bundle.bd6529c536f59807fbee.js +881 -0
- package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 433.bundle.4c77c1fe8fc90ac14218.js} +14737 -27555
- package/dist/445.bundle.38c6d2af64e41cd7c614.js +7835 -0
- package/dist/{126.bundle.6e7111d58bcc937ffd80.js → 448.bundle.deedeff5744e77510734.js} +362 -430
- package/dist/487.bundle.7890ca42826941ebcd60.js +1875 -0
- package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.7c94543955552475c56a.js} +98 -127
- package/dist/{663.bundle.d7be28450db14266cdd0.js → 540.bundle.079d43a6717e95c24392.js} +225 -188
- package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1c1f57118560046649c1.js} +37 -62
- package/dist/574.bundle.be075ac52fb52b442a8b.js +2641 -0
- package/dist/{181.css → 574.css} +1 -1
- package/dist/{410.bundle.15c855b0ff4a1a674fb8.js → 594.bundle.0b1165661dd638820082.js} +183 -221
- package/dist/{221.bundle.aef554202c58483cb34e.js → 633.bundle.c1658e76f104cbd14cab.js} +349 -552
- package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
- package/dist/699.bundle.4f01772e7ce6637de339.js +768 -0
- package/dist/702.bundle.963481fbf871984b646f.js +8426 -0
- package/dist/722.bundle.afab1fe6bfcd569130ac.js +1083 -0
- package/dist/{359.bundle.45ecb3d28e8c22142606.js → 724.bundle.e5794460c391ee9cba2c.js} +164 -259
- package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 726.bundle.0b3d9277d22fe7e15b89.js} +512 -879
- package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 835.bundle.15aff0b7433bb0dd6d6d.js} +37 -30
- package/dist/{822.bundle.82cdc418f8f56da6060b.js → 862.bundle.c0ee6e1d4d97e1353213.js} +77 -96
- package/dist/{236.bundle.4e9924934a747afac132.js → 889.bundle.7858e4b7ca1a2b12b64f.js} +207 -199
- package/dist/{281.bundle.deb7492d143e7768d8bf.js → 905.bundle.170908fe660fc6b40649.js} +157 -124
- package/dist/{814.bundle.c8c951d20039b63b865a.js → 907.bundle.dee4e30420caf07caea6.js} +16 -30
- package/dist/{417.bundle.af0a207c29b109f84159.js → 931.bundle.d270a1fda9a2836c3cc5.js} +26 -26
- package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 939.bundle.9d93b2e47c52338747a2.js} +7 -8
- package/dist/94.bundle.c452d9b0645277c2cf4e.js +784 -0
- package/dist/{12.bundle.b5ca13e5363f170ecb3b.js → 961.bundle.aaaaaba0ec015a3b85d8.js} +20 -33
- package/dist/app-config.js +1 -0
- package/dist/{app.bundle.a978edc59b9d82f2eb22.js → app.bundle.6c090a2d6d3ccc97a81d.js} +183240 -87650
- package/dist/app.bundle.css +16 -13
- package/dist/assets/images/CT-AAA.png +0 -0
- package/dist/assets/images/CT-AAA2.png +0 -0
- package/dist/assets/images/CT-Air.png +0 -0
- package/dist/assets/images/CT-Bone.png +0 -0
- package/dist/assets/images/CT-Bones.png +0 -0
- package/dist/assets/images/CT-Cardiac.png +0 -0
- package/dist/assets/images/CT-Cardiac2.png +0 -0
- package/dist/assets/images/CT-Cardiac3.png +0 -0
- package/dist/assets/images/CT-Chest-Contrast-Enhanced.png +0 -0
- package/dist/assets/images/CT-Chest-Vessels.png +0 -0
- package/dist/assets/images/CT-Coronary-Arteries-2.png +0 -0
- package/dist/assets/images/CT-Coronary-Arteries-3.png +0 -0
- package/dist/assets/images/CT-Coronary-Arteries.png +0 -0
- package/dist/assets/images/CT-Cropped-Volume-Bone.png +0 -0
- package/dist/assets/images/CT-Fat.png +0 -0
- package/dist/assets/images/CT-Liver-Vasculature.png +0 -0
- package/dist/assets/images/CT-Lung.png +0 -0
- package/dist/assets/images/CT-MIP.png +0 -0
- package/dist/assets/images/CT-Muscle.png +0 -0
- package/dist/assets/images/CT-Pulmonary-Arteries.png +0 -0
- package/dist/assets/images/CT-Soft-Tissue.png +0 -0
- package/dist/assets/images/DTI-FA-Brain.png +0 -0
- package/dist/assets/images/MR-Angio.png +0 -0
- package/dist/assets/images/MR-Default.png +0 -0
- package/dist/assets/images/MR-MIP.png +0 -0
- package/dist/assets/images/MR-T2-Brain.png +0 -0
- package/dist/assets/images/VolumeRendering.png +0 -0
- 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.d3a56dc9f62df5e11019.js} +3 -3
- package/dist/histogram-worker.bundle.829e14ec12c2b41a4323.js +359 -0
- 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/polySeg.bundle.63011312c3c79e717ea9.js +249 -0
- package/dist/serve.json +12 -0
- package/dist/sw.js +1 -1
- package/package.json +26 -22
- package/dist/181.bundle.a62b9f0ec692299acb35.js +0 -1527
- package/dist/23.bundle.e008ad788170f2ed5569.js +0 -900
- package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
- package/dist/613.bundle.9e7072e5b575354fe51e.js +0 -532
- package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
- package/dist/75788f12450d4c5ed494.wasm +0 -0
- package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
- package/dist/788.bundle.207ac23c0dfa70cbe3fb.js +0 -2682
- package/dist/82.bundle.d6fdcca0f67540bb226a.js +0 -1049
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
- /package/dist/{19.css → 325.css} +0 -0
- /package/dist/{776.css → 41.css} +0 -0
- /package/dist/{579.css → 481.css} +0 -0
- /package/dist/{250.css → 544.css} +0 -0
- /package/dist/{221.css → 633.css} +0 -0
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[325,481],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 219:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
// EXPORTS
|
|
9
9
|
__webpack_require__.d(__webpack_exports__, {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
A: () => (/* binding */ src_getContextModule),
|
|
11
|
+
B: () => (/* reexport */ useTrackedMeasurements)
|
|
12
12
|
});
|
|
13
13
|
|
|
14
14
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
15
|
-
var react = __webpack_require__(
|
|
15
|
+
var react = __webpack_require__(41766);
|
|
16
16
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
17
|
-
var prop_types = __webpack_require__(
|
|
17
|
+
var prop_types = __webpack_require__(11374);
|
|
18
18
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
19
19
|
// EXTERNAL MODULE: ../../../node_modules/xstate/es/index.js + 22 modules
|
|
20
|
-
var es = __webpack_require__(
|
|
20
|
+
var es = __webpack_require__(57593);
|
|
21
21
|
// EXTERNAL MODULE: ../../../node_modules/@xstate/react/es/index.js + 8 modules
|
|
22
|
-
var react_es = __webpack_require__(
|
|
23
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
24
|
-
var src = __webpack_require__(
|
|
22
|
+
var react_es = __webpack_require__(6835);
|
|
23
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
|
|
24
|
+
var src = __webpack_require__(5085);
|
|
25
25
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js
|
|
26
26
|
|
|
27
27
|
const RESPONSE = {
|
|
@@ -53,10 +53,27 @@ const machineConfiguration = {
|
|
|
53
53
|
off: {
|
|
54
54
|
type: 'final'
|
|
55
55
|
},
|
|
56
|
+
labellingOnly: {
|
|
57
|
+
on: {
|
|
58
|
+
TRACK_SERIES: [{
|
|
59
|
+
target: 'promptLabelAnnotation',
|
|
60
|
+
actions: ['setPreviousState']
|
|
61
|
+
}, {
|
|
62
|
+
target: 'off'
|
|
63
|
+
}]
|
|
64
|
+
}
|
|
65
|
+
},
|
|
56
66
|
idle: {
|
|
57
67
|
entry: 'clearContext',
|
|
58
68
|
on: {
|
|
59
|
-
TRACK_SERIES:
|
|
69
|
+
TRACK_SERIES: [{
|
|
70
|
+
target: 'promptLabelAnnotation',
|
|
71
|
+
cond: 'isLabelOnMeasure',
|
|
72
|
+
actions: ['setPreviousState']
|
|
73
|
+
}, {
|
|
74
|
+
target: 'promptBeginTracking',
|
|
75
|
+
actions: ['setPreviousState']
|
|
76
|
+
}],
|
|
60
77
|
// Unused? We may only do PROMPT_HYDRATE_SR now?
|
|
61
78
|
SET_TRACKED_SERIES: [{
|
|
62
79
|
target: 'tracking',
|
|
@@ -69,7 +86,7 @@ const machineConfiguration = {
|
|
|
69
86
|
RESTORE_PROMPT_HYDRATE_SR: 'promptHydrateStructuredReport',
|
|
70
87
|
HYDRATE_SR: 'hydrateStructuredReport',
|
|
71
88
|
UPDATE_ACTIVE_VIEWPORT_ID: {
|
|
72
|
-
actions: (0,es/* assign */.
|
|
89
|
+
actions: (0,es/* assign */.kp)({
|
|
73
90
|
activeViewportId: (_, event) => event.activeViewportId
|
|
74
91
|
})
|
|
75
92
|
}
|
|
@@ -82,6 +99,9 @@ const machineConfiguration = {
|
|
|
82
99
|
target: 'tracking',
|
|
83
100
|
actions: ['setTrackedStudyAndSeries', 'setIsDirty'],
|
|
84
101
|
cond: 'shouldSetStudyAndSeries'
|
|
102
|
+
}, {
|
|
103
|
+
target: 'labellingOnly',
|
|
104
|
+
cond: 'isLabelOnMeasureAndShouldKillMachine'
|
|
85
105
|
}, {
|
|
86
106
|
target: 'off',
|
|
87
107
|
cond: 'shouldKillMachine'
|
|
@@ -96,6 +116,10 @@ const machineConfiguration = {
|
|
|
96
116
|
tracking: {
|
|
97
117
|
on: {
|
|
98
118
|
TRACK_SERIES: [{
|
|
119
|
+
target: 'promptLabelAnnotation',
|
|
120
|
+
cond: 'isLabelOnMeasure',
|
|
121
|
+
actions: ['setPreviousState']
|
|
122
|
+
}, {
|
|
99
123
|
target: 'promptTrackNewStudy',
|
|
100
124
|
cond: 'isNewStudy'
|
|
101
125
|
}, {
|
|
@@ -224,6 +248,29 @@ const machineConfiguration = {
|
|
|
224
248
|
target: 'idle'
|
|
225
249
|
}
|
|
226
250
|
}
|
|
251
|
+
},
|
|
252
|
+
promptLabelAnnotation: {
|
|
253
|
+
invoke: {
|
|
254
|
+
src: 'promptLabelAnnotation',
|
|
255
|
+
onDone: [{
|
|
256
|
+
target: 'labellingOnly',
|
|
257
|
+
cond: 'wasLabellingOnly'
|
|
258
|
+
}, {
|
|
259
|
+
target: 'promptBeginTracking',
|
|
260
|
+
cond: 'wasIdle'
|
|
261
|
+
}, {
|
|
262
|
+
target: 'promptTrackNewStudy',
|
|
263
|
+
cond: 'wasTrackingAndIsNewStudy'
|
|
264
|
+
}, {
|
|
265
|
+
target: 'promptTrackNewSeries',
|
|
266
|
+
cond: 'wasTrackingAndIsNewSeries'
|
|
267
|
+
}, {
|
|
268
|
+
target: 'tracking',
|
|
269
|
+
cond: 'wasTracking'
|
|
270
|
+
}, {
|
|
271
|
+
target: 'off'
|
|
272
|
+
}]
|
|
273
|
+
}
|
|
227
274
|
}
|
|
228
275
|
},
|
|
229
276
|
strict: true
|
|
@@ -253,7 +300,7 @@ const defaultOptions = {
|
|
|
253
300
|
showStructuredReportDisplaySetInActiveViewport: (ctx, evt) => {
|
|
254
301
|
console.warn('showStructuredReportDisplaySetInActiveViewport: not implemented');
|
|
255
302
|
},
|
|
256
|
-
clearContext: (0,es/* assign */.
|
|
303
|
+
clearContext: (0,es/* assign */.kp)({
|
|
257
304
|
trackedStudy: '',
|
|
258
305
|
trackedSeries: [],
|
|
259
306
|
ignoredSeries: [],
|
|
@@ -262,7 +309,7 @@ const defaultOptions = {
|
|
|
262
309
|
prevIgnoredSeries: []
|
|
263
310
|
}),
|
|
264
311
|
// Promise resolves w/ `evt.data.*`
|
|
265
|
-
setTrackedStudyAndSeries: (0,es/* assign */.
|
|
312
|
+
setTrackedStudyAndSeries: (0,es/* assign */.kp)((ctx, evt) => ({
|
|
266
313
|
prevTrackedStudy: ctx.trackedStudy,
|
|
267
314
|
prevTrackedSeries: ctx.trackedSeries.slice(),
|
|
268
315
|
prevIgnoredSeries: ctx.ignoredSeries.slice(),
|
|
@@ -271,7 +318,7 @@ const defaultOptions = {
|
|
|
271
318
|
trackedSeries: [evt.data.SeriesInstanceUID],
|
|
272
319
|
ignoredSeries: []
|
|
273
320
|
})),
|
|
274
|
-
setTrackedStudyAndMultipleSeries: (0,es/* assign */.
|
|
321
|
+
setTrackedStudyAndMultipleSeries: (0,es/* assign */.kp)((ctx, evt) => {
|
|
275
322
|
const studyInstanceUID = evt.StudyInstanceUID || evt.data.StudyInstanceUID;
|
|
276
323
|
const seriesInstanceUIDs = evt.SeriesInstanceUIDs || evt.data.SeriesInstanceUIDs;
|
|
277
324
|
return {
|
|
@@ -284,27 +331,32 @@ const defaultOptions = {
|
|
|
284
331
|
ignoredSeries: []
|
|
285
332
|
};
|
|
286
333
|
}),
|
|
287
|
-
setIsDirtyToClean: (0,es/* assign */.
|
|
334
|
+
setIsDirtyToClean: (0,es/* assign */.kp)((ctx, evt) => ({
|
|
288
335
|
isDirty: false
|
|
289
336
|
})),
|
|
290
|
-
setIsDirty: (0,es/* assign */.
|
|
337
|
+
setIsDirty: (0,es/* assign */.kp)((ctx, evt) => ({
|
|
291
338
|
isDirty: true
|
|
292
339
|
})),
|
|
293
|
-
ignoreSeries: (0,es/* assign */.
|
|
340
|
+
ignoreSeries: (0,es/* assign */.kp)((ctx, evt) => ({
|
|
294
341
|
prevIgnoredSeries: [...ctx.ignoredSeries],
|
|
295
342
|
ignoredSeries: [...ctx.ignoredSeries, evt.data.SeriesInstanceUID]
|
|
296
343
|
})),
|
|
297
|
-
ignoreHydrationForSRSeries: (0,es/* assign */.
|
|
344
|
+
ignoreHydrationForSRSeries: (0,es/* assign */.kp)((ctx, evt) => ({
|
|
298
345
|
ignoredSRSeriesForHydration: [...ctx.ignoredSRSeriesForHydration, evt.data.srSeriesInstanceUID]
|
|
299
346
|
})),
|
|
300
|
-
addTrackedSeries: (0,es/* assign */.
|
|
347
|
+
addTrackedSeries: (0,es/* assign */.kp)((ctx, evt) => ({
|
|
301
348
|
prevTrackedSeries: [...ctx.trackedSeries],
|
|
302
349
|
trackedSeries: [...ctx.trackedSeries, evt.data.SeriesInstanceUID]
|
|
303
350
|
})),
|
|
304
|
-
removeTrackedSeries: (0,es/* assign */.
|
|
351
|
+
removeTrackedSeries: (0,es/* assign */.kp)((ctx, evt) => ({
|
|
305
352
|
prevTrackedSeries: ctx.trackedSeries.slice().filter(ser => ser !== evt.SeriesInstanceUID),
|
|
306
353
|
trackedSeries: ctx.trackedSeries.slice().filter(ser => ser !== evt.SeriesInstanceUID)
|
|
307
|
-
}))
|
|
354
|
+
})),
|
|
355
|
+
setPreviousState: (0,es/* assign */.kp)((ctx, evt, meta) => {
|
|
356
|
+
return {
|
|
357
|
+
prevState: meta.state.value
|
|
358
|
+
};
|
|
359
|
+
})
|
|
308
360
|
},
|
|
309
361
|
guards: {
|
|
310
362
|
// We set dirty any time we performan an action that:
|
|
@@ -330,6 +382,21 @@ const defaultOptions = {
|
|
|
330
382
|
evt.SeriesInstanceUID === undefined || ctx.trackedSeries.includes(evt.SeriesInstanceUID)
|
|
331
383
|
);
|
|
332
384
|
},
|
|
385
|
+
wasLabellingOnly: (ctx, evt, condMeta) => {
|
|
386
|
+
return ctx.prevState === 'labellingOnly';
|
|
387
|
+
},
|
|
388
|
+
wasIdle: (ctx, evt, condMeta) => {
|
|
389
|
+
return ctx.prevState === 'idle';
|
|
390
|
+
},
|
|
391
|
+
wasTracking: (ctx, evt, condMeta) => {
|
|
392
|
+
return ctx.prevState === 'tracking';
|
|
393
|
+
},
|
|
394
|
+
wasTrackingAndIsNewStudy: (ctx, evt, condMeta) => {
|
|
395
|
+
return ctx.prevState === 'tracking' && !ctx.ignoredSeries.includes(evt.data.SeriesInstanceUID) && ctx.trackedStudy !== evt.data.StudyInstanceUID;
|
|
396
|
+
},
|
|
397
|
+
wasTrackingAndIsNewSeries: (ctx, evt, condMeta) => {
|
|
398
|
+
return ctx.prevState === 'tracking' && !ctx.ignoredSeries.includes(evt.data.SeriesInstanceUID) && !ctx.trackedSeries.includes(evt.data.SeriesInstanceUID);
|
|
399
|
+
},
|
|
333
400
|
shouldKillMachine: (ctx, evt) => evt.data && evt.data.userResponse === RESPONSE.NO_NEVER,
|
|
334
401
|
shouldAddSeries: (ctx, evt) => evt.data && evt.data.userResponse === RESPONSE.ADD_SERIES,
|
|
335
402
|
shouldSetStudyAndSeries: (ctx, evt) => evt.data && evt.data.userResponse === RESPONSE.SET_STUDY_AND_SERIES,
|
|
@@ -350,8 +417,11 @@ const defaultOptions = {
|
|
|
350
417
|
}
|
|
351
418
|
};
|
|
352
419
|
|
|
420
|
+
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
|
|
421
|
+
var i18next = __webpack_require__(92344);
|
|
353
422
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptBeginTracking.js
|
|
354
423
|
|
|
424
|
+
|
|
355
425
|
const promptBeginTracking_RESPONSE = {
|
|
356
426
|
NO_NEVER: -1,
|
|
357
427
|
CANCEL: 0,
|
|
@@ -359,19 +429,20 @@ const promptBeginTracking_RESPONSE = {
|
|
|
359
429
|
ADD_SERIES: 2,
|
|
360
430
|
SET_STUDY_AND_SERIES: 3
|
|
361
431
|
};
|
|
362
|
-
function promptBeginTracking(
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
} = _ref;
|
|
432
|
+
function promptBeginTracking({
|
|
433
|
+
servicesManager,
|
|
434
|
+
extensionManager
|
|
435
|
+
}, ctx, evt) {
|
|
367
436
|
const {
|
|
368
437
|
uiViewportDialogService
|
|
369
438
|
} = servicesManager.services;
|
|
439
|
+
// When the state change happens after a promise, the state machine sends the retult in evt.data;
|
|
440
|
+
// In case of direct transition to the state, the state machine sends the data in evt;
|
|
370
441
|
const {
|
|
371
442
|
viewportId,
|
|
372
443
|
StudyInstanceUID,
|
|
373
444
|
SeriesInstanceUID
|
|
374
|
-
} = evt;
|
|
445
|
+
} = evt.data || evt;
|
|
375
446
|
return new Promise(async function (resolve, reject) {
|
|
376
447
|
let promptResult = await _askTrackMeasurements(uiViewportDialogService, viewportId);
|
|
377
448
|
resolve({
|
|
@@ -384,21 +455,21 @@ function promptBeginTracking(_ref, ctx, evt) {
|
|
|
384
455
|
}
|
|
385
456
|
function _askTrackMeasurements(uiViewportDialogService, viewportId) {
|
|
386
457
|
return new Promise(function (resolve, reject) {
|
|
387
|
-
const message = 'Track measurements for this series?';
|
|
458
|
+
const message = i18next/* default */.A.t('MeasurementTable:Track measurements for this series?');
|
|
388
459
|
const actions = [{
|
|
389
460
|
id: 'prompt-begin-tracking-cancel',
|
|
390
|
-
type: src/* ButtonEnums.type */.
|
|
391
|
-
text: 'No',
|
|
461
|
+
type: src/* ButtonEnums.type */.Ny.NW.secondary,
|
|
462
|
+
text: i18next/* default */.A.t('Common:No'),
|
|
392
463
|
value: promptBeginTracking_RESPONSE.CANCEL
|
|
393
464
|
}, {
|
|
394
465
|
id: 'prompt-begin-tracking-no-do-not-ask-again',
|
|
395
|
-
type: src/* ButtonEnums.type */.
|
|
396
|
-
text: 'No, do not ask again',
|
|
466
|
+
type: src/* ButtonEnums.type */.Ny.NW.secondary,
|
|
467
|
+
text: i18next/* default */.A.t('MeasurementTable:No, do not ask again'),
|
|
397
468
|
value: promptBeginTracking_RESPONSE.NO_NEVER
|
|
398
469
|
}, {
|
|
399
470
|
id: 'prompt-begin-tracking-yes',
|
|
400
|
-
type: src/* ButtonEnums.type */.
|
|
401
|
-
text: 'Yes',
|
|
471
|
+
type: src/* ButtonEnums.type */.Ny.NW.primary,
|
|
472
|
+
text: i18next/* default */.A.t('Common:Yes'),
|
|
402
473
|
value: promptBeginTracking_RESPONSE.SET_STUDY_AND_SERIES
|
|
403
474
|
}];
|
|
404
475
|
const onSubmit = result => {
|
|
@@ -415,6 +486,12 @@ function _askTrackMeasurements(uiViewportDialogService, viewportId) {
|
|
|
415
486
|
onOutsideClick: () => {
|
|
416
487
|
uiViewportDialogService.hide();
|
|
417
488
|
resolve(promptBeginTracking_RESPONSE.CANCEL);
|
|
489
|
+
},
|
|
490
|
+
onKeyPress: event => {
|
|
491
|
+
if (event.key === 'Enter') {
|
|
492
|
+
const action = actions.find(action => action.id === 'prompt-begin-tracking-yes');
|
|
493
|
+
onSubmit(action.value);
|
|
494
|
+
}
|
|
418
495
|
}
|
|
419
496
|
});
|
|
420
497
|
});
|
|
@@ -430,19 +507,20 @@ const promptTrackNewSeries_RESPONSE = {
|
|
|
430
507
|
SET_STUDY_AND_SERIES: 3,
|
|
431
508
|
NO_NOT_FOR_SERIES: 4
|
|
432
509
|
};
|
|
433
|
-
function promptTrackNewSeries(
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
} = _ref;
|
|
510
|
+
function promptTrackNewSeries({
|
|
511
|
+
servicesManager,
|
|
512
|
+
extensionManager
|
|
513
|
+
}, ctx, evt) {
|
|
438
514
|
const {
|
|
439
515
|
UIViewportDialogService
|
|
440
516
|
} = servicesManager.services;
|
|
517
|
+
// When the state change happens after a promise, the state machine sends the retult in evt.data;
|
|
518
|
+
// In case of direct transition to the state, the state machine sends the data in evt;
|
|
441
519
|
const {
|
|
442
520
|
viewportId,
|
|
443
521
|
StudyInstanceUID,
|
|
444
522
|
SeriesInstanceUID
|
|
445
|
-
} = evt;
|
|
523
|
+
} = evt.data || evt;
|
|
446
524
|
return new Promise(async function (resolve, reject) {
|
|
447
525
|
let promptResult = await _askShouldAddMeasurements(UIViewportDialogService, viewportId);
|
|
448
526
|
if (promptResult === promptTrackNewSeries_RESPONSE.CREATE_REPORT) {
|
|
@@ -461,15 +539,15 @@ function _askShouldAddMeasurements(uiViewportDialogService, viewportId) {
|
|
|
461
539
|
return new Promise(function (resolve, reject) {
|
|
462
540
|
const message = 'Do you want to add this measurement to the existing report?';
|
|
463
541
|
const actions = [{
|
|
464
|
-
type: src/* ButtonEnums.type */.
|
|
542
|
+
type: src/* ButtonEnums.type */.Ny.NW.secondary,
|
|
465
543
|
text: 'Cancel',
|
|
466
544
|
value: promptTrackNewSeries_RESPONSE.CANCEL
|
|
467
545
|
}, {
|
|
468
|
-
type: src/* ButtonEnums.type */.
|
|
546
|
+
type: src/* ButtonEnums.type */.Ny.NW.primary,
|
|
469
547
|
text: 'Create new report',
|
|
470
548
|
value: promptTrackNewSeries_RESPONSE.CREATE_REPORT
|
|
471
549
|
}, {
|
|
472
|
-
type: src/* ButtonEnums.type */.
|
|
550
|
+
type: src/* ButtonEnums.type */.Ny.NW.primary,
|
|
473
551
|
text: 'Add to existing report',
|
|
474
552
|
value: promptTrackNewSeries_RESPONSE.ADD_SERIES
|
|
475
553
|
}];
|
|
@@ -525,6 +603,7 @@ function _askSaveDiscardOrCancel(UIViewportDialogService, viewportId) {
|
|
|
525
603
|
}
|
|
526
604
|
/* harmony default export */ const TrackedMeasurementsContext_promptTrackNewSeries = (promptTrackNewSeries);
|
|
527
605
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptTrackNewStudy.js
|
|
606
|
+
|
|
528
607
|
const promptTrackNewStudy_RESPONSE = {
|
|
529
608
|
NO_NEVER: -1,
|
|
530
609
|
CANCEL: 0,
|
|
@@ -533,19 +612,20 @@ const promptTrackNewStudy_RESPONSE = {
|
|
|
533
612
|
SET_STUDY_AND_SERIES: 3,
|
|
534
613
|
NO_NOT_FOR_SERIES: 4
|
|
535
614
|
};
|
|
536
|
-
function promptTrackNewStudy(
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
} = _ref;
|
|
615
|
+
function promptTrackNewStudy({
|
|
616
|
+
servicesManager,
|
|
617
|
+
extensionManager
|
|
618
|
+
}, ctx, evt) {
|
|
541
619
|
const {
|
|
542
620
|
UIViewportDialogService
|
|
543
621
|
} = servicesManager.services;
|
|
622
|
+
// When the state change happens after a promise, the state machine sends the retult in evt.data;
|
|
623
|
+
// In case of direct transition to the state, the state machine sends the data in evt;
|
|
544
624
|
const {
|
|
545
625
|
viewportId,
|
|
546
626
|
StudyInstanceUID,
|
|
547
627
|
SeriesInstanceUID
|
|
548
|
-
} = evt;
|
|
628
|
+
} = evt.data || evt;
|
|
549
629
|
return new Promise(async function (resolve, reject) {
|
|
550
630
|
let promptResult = await promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewportId);
|
|
551
631
|
if (promptResult === promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES) {
|
|
@@ -562,18 +642,18 @@ function promptTrackNewStudy(_ref, ctx, evt) {
|
|
|
562
642
|
}
|
|
563
643
|
function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewportId) {
|
|
564
644
|
return new Promise(function (resolve, reject) {
|
|
565
|
-
const message = 'Track measurements for this series?';
|
|
645
|
+
const message = i18next/* default */.A.t('MeasurementTable:Track measurements for this series?');
|
|
566
646
|
const actions = [{
|
|
567
647
|
type: 'cancel',
|
|
568
|
-
text: 'No',
|
|
648
|
+
text: i18next/* default */.A.t('MeasurementTable:No'),
|
|
569
649
|
value: promptTrackNewStudy_RESPONSE.CANCEL
|
|
570
650
|
}, {
|
|
571
651
|
type: 'secondary',
|
|
572
|
-
text: 'No, do not ask again
|
|
652
|
+
text: i18next/* default */.A.t('MeasurementTable:No, do not ask again'),
|
|
573
653
|
value: promptTrackNewStudy_RESPONSE.NO_NOT_FOR_SERIES
|
|
574
654
|
}, {
|
|
575
655
|
type: 'primary',
|
|
576
|
-
text: 'Yes',
|
|
656
|
+
text: i18next/* default */.A.t('MeasurementTable:Yes'),
|
|
577
657
|
value: promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES
|
|
578
658
|
}];
|
|
579
659
|
const onSubmit = result => {
|
|
@@ -589,6 +669,12 @@ function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewp
|
|
|
589
669
|
onOutsideClick: () => {
|
|
590
670
|
UIViewportDialogService.hide();
|
|
591
671
|
resolve(promptTrackNewStudy_RESPONSE.CANCEL);
|
|
672
|
+
},
|
|
673
|
+
onKeyPress: event => {
|
|
674
|
+
if (event.key === 'Enter') {
|
|
675
|
+
const action = actions.find(action => action.value === promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES);
|
|
676
|
+
onSubmit(action.value);
|
|
677
|
+
}
|
|
592
678
|
}
|
|
593
679
|
});
|
|
594
680
|
});
|
|
@@ -627,8 +713,8 @@ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, vie
|
|
|
627
713
|
});
|
|
628
714
|
}
|
|
629
715
|
/* harmony default export */ const TrackedMeasurementsContext_promptTrackNewStudy = (promptTrackNewStudy);
|
|
630
|
-
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts +
|
|
631
|
-
var default_src = __webpack_require__(
|
|
716
|
+
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 85 modules
|
|
717
|
+
var default_src = __webpack_require__(7206);
|
|
632
718
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js
|
|
633
719
|
const MIN_SR_SERIES_NUMBER = 4700;
|
|
634
720
|
function getNextSRSeriesNumber(displaySetService) {
|
|
@@ -652,12 +738,11 @@ const PROMPT_RESPONSES_RESPONSE = {
|
|
|
652
738
|
|
|
653
739
|
|
|
654
740
|
|
|
655
|
-
function promptSaveReport(
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
} = _ref;
|
|
741
|
+
function promptSaveReport({
|
|
742
|
+
servicesManager,
|
|
743
|
+
commandsManager,
|
|
744
|
+
extensionManager
|
|
745
|
+
}, ctx, evt) {
|
|
661
746
|
const {
|
|
662
747
|
uiDialogService,
|
|
663
748
|
measurementService,
|
|
@@ -718,7 +803,7 @@ function promptSaveReport(_ref, ctx, evt) {
|
|
|
718
803
|
}
|
|
719
804
|
/* harmony default export */ const TrackedMeasurementsContext_promptSaveReport = (promptSaveReport);
|
|
720
805
|
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/index.tsx + 15 modules
|
|
721
|
-
var cornerstone_dicom_sr_src = __webpack_require__(
|
|
806
|
+
var cornerstone_dicom_sr_src = __webpack_require__(53540);
|
|
722
807
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptHydrateStructuredReport.js
|
|
723
808
|
|
|
724
809
|
|
|
@@ -731,12 +816,11 @@ const promptHydrateStructuredReport_RESPONSE = {
|
|
|
731
816
|
NO_NOT_FOR_SERIES: 4,
|
|
732
817
|
HYDRATE_REPORT: 5
|
|
733
818
|
};
|
|
734
|
-
function promptHydrateStructuredReport(
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
} = _ref;
|
|
819
|
+
function promptHydrateStructuredReport({
|
|
820
|
+
servicesManager,
|
|
821
|
+
extensionManager,
|
|
822
|
+
appConfig
|
|
823
|
+
}, ctx, evt) {
|
|
740
824
|
const {
|
|
741
825
|
uiViewportDialogService,
|
|
742
826
|
displaySetService
|
|
@@ -775,11 +859,11 @@ function promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogServ
|
|
|
775
859
|
return new Promise(function (resolve, reject) {
|
|
776
860
|
const message = 'Do you want to continue tracking measurements for this study?';
|
|
777
861
|
const actions = [{
|
|
778
|
-
type: src/* ButtonEnums.type */.
|
|
862
|
+
type: src/* ButtonEnums.type */.Ny.NW.secondary,
|
|
779
863
|
text: 'No',
|
|
780
864
|
value: promptHydrateStructuredReport_RESPONSE.CANCEL
|
|
781
865
|
}, {
|
|
782
|
-
type: src/* ButtonEnums.type */.
|
|
866
|
+
type: src/* ButtonEnums.type */.Ny.NW.primary,
|
|
783
867
|
text: 'Yes',
|
|
784
868
|
value: promptHydrateStructuredReport_RESPONSE.HYDRATE_REPORT
|
|
785
869
|
}];
|
|
@@ -796,6 +880,12 @@ function promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogServ
|
|
|
796
880
|
onOutsideClick: () => {
|
|
797
881
|
uiViewportDialogService.hide();
|
|
798
882
|
resolve(promptHydrateStructuredReport_RESPONSE.CANCEL);
|
|
883
|
+
},
|
|
884
|
+
onKeyPress: event => {
|
|
885
|
+
if (event.key === 'Enter') {
|
|
886
|
+
const action = actions.find(action => action.value === promptHydrateStructuredReport_RESPONSE.HYDRATE_REPORT);
|
|
887
|
+
onSubmit(action.value);
|
|
888
|
+
}
|
|
799
889
|
}
|
|
800
890
|
});
|
|
801
891
|
});
|
|
@@ -803,11 +893,11 @@ function promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogServ
|
|
|
803
893
|
/* harmony default export */ const TrackedMeasurementsContext_promptHydrateStructuredReport = (promptHydrateStructuredReport);
|
|
804
894
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/hydrateStructuredReport.tsx
|
|
805
895
|
|
|
806
|
-
function hydrateStructuredReport(
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
896
|
+
function hydrateStructuredReport({
|
|
897
|
+
servicesManager,
|
|
898
|
+
extensionManager,
|
|
899
|
+
appConfig
|
|
900
|
+
}, ctx, evt) {
|
|
811
901
|
const {
|
|
812
902
|
displaySetService
|
|
813
903
|
} = servicesManager.services;
|
|
@@ -819,7 +909,8 @@ function hydrateStructuredReport(_ref, ctx, evt) {
|
|
|
819
909
|
return new Promise((resolve, reject) => {
|
|
820
910
|
const hydrationResult = (0,cornerstone_dicom_sr_src.hydrateStructuredReport)({
|
|
821
911
|
servicesManager,
|
|
822
|
-
extensionManager
|
|
912
|
+
extensionManager,
|
|
913
|
+
appConfig
|
|
823
914
|
}, displaySetInstanceUID);
|
|
824
915
|
const StudyInstanceUID = hydrationResult.StudyInstanceUID;
|
|
825
916
|
const SeriesInstanceUIDs = hydrationResult.SeriesInstanceUIDs;
|
|
@@ -834,7 +925,41 @@ function hydrateStructuredReport(_ref, ctx, evt) {
|
|
|
834
925
|
}
|
|
835
926
|
/* harmony default export */ const TrackedMeasurementsContext_hydrateStructuredReport = (hydrateStructuredReport);
|
|
836
927
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
837
|
-
var state = __webpack_require__(
|
|
928
|
+
var state = __webpack_require__(15575);
|
|
929
|
+
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptLabelAnnotation.js
|
|
930
|
+
function promptLabelAnnotation({
|
|
931
|
+
servicesManager,
|
|
932
|
+
extensionManager
|
|
933
|
+
}, ctx, evt) {
|
|
934
|
+
const {
|
|
935
|
+
measurementService,
|
|
936
|
+
customizationService
|
|
937
|
+
} = servicesManager.services;
|
|
938
|
+
const {
|
|
939
|
+
viewportId,
|
|
940
|
+
StudyInstanceUID,
|
|
941
|
+
SeriesInstanceUID,
|
|
942
|
+
measurementId
|
|
943
|
+
} = evt;
|
|
944
|
+
const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.common');
|
|
945
|
+
const {
|
|
946
|
+
showLabelAnnotationPopup
|
|
947
|
+
} = utilityModule.exports;
|
|
948
|
+
return new Promise(async function (resolve) {
|
|
949
|
+
const labelConfig = customizationService.get('measurementLabels');
|
|
950
|
+
const measurement = measurementService.getMeasurement(measurementId);
|
|
951
|
+
const value = await showLabelAnnotationPopup(measurement, servicesManager.services.uiDialogService, labelConfig);
|
|
952
|
+
measurementService.update(measurementId, {
|
|
953
|
+
...value
|
|
954
|
+
}, true);
|
|
955
|
+
resolve({
|
|
956
|
+
StudyInstanceUID,
|
|
957
|
+
SeriesInstanceUID,
|
|
958
|
+
viewportId
|
|
959
|
+
});
|
|
960
|
+
});
|
|
961
|
+
}
|
|
962
|
+
/* harmony default export */ const TrackedMeasurementsContext_promptLabelAnnotation = (promptLabelAnnotation);
|
|
838
963
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx
|
|
839
964
|
|
|
840
965
|
|
|
@@ -849,6 +974,7 @@ var state = __webpack_require__(62657);
|
|
|
849
974
|
|
|
850
975
|
|
|
851
976
|
|
|
977
|
+
|
|
852
978
|
const TrackedMeasurementsContext = /*#__PURE__*/react.createContext();
|
|
853
979
|
TrackedMeasurementsContext.displayName = 'TrackedMeasurementsContext';
|
|
854
980
|
const useTrackedMeasurements = () => (0,react.useContext)(TrackedMeasurementsContext);
|
|
@@ -858,26 +984,26 @@ const SR_SOPCLASSHANDLERID = '@ohif/extension-cornerstone-dicom-sr.sopClassHandl
|
|
|
858
984
|
*
|
|
859
985
|
* @param {*} param0
|
|
860
986
|
*/
|
|
861
|
-
function TrackedMeasurementsContextProvider(
|
|
862
|
-
|
|
987
|
+
function TrackedMeasurementsContextProvider({
|
|
988
|
+
servicesManager,
|
|
989
|
+
commandsManager,
|
|
990
|
+
extensionManager
|
|
991
|
+
},
|
|
992
|
+
// Bound by consumer
|
|
993
|
+
{
|
|
994
|
+
children
|
|
995
|
+
} // Component props
|
|
863
996
|
) {
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
commandsManager,
|
|
867
|
-
extensionManager
|
|
868
|
-
} = _ref;
|
|
869
|
-
let {
|
|
870
|
-
children
|
|
871
|
-
} = _ref2;
|
|
872
|
-
const [appConfig] = (0,state/* useAppConfig */.M)();
|
|
873
|
-
const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.O_)();
|
|
997
|
+
const [appConfig] = (0,state/* useAppConfig */.r)();
|
|
998
|
+
const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.ih)();
|
|
874
999
|
const {
|
|
875
1000
|
activeViewportId,
|
|
876
1001
|
viewports
|
|
877
1002
|
} = viewportGrid;
|
|
878
1003
|
const {
|
|
879
1004
|
measurementService,
|
|
880
|
-
displaySetService
|
|
1005
|
+
displaySetService,
|
|
1006
|
+
customizationService
|
|
881
1007
|
} = servicesManager.services;
|
|
882
1008
|
const machineOptions = Object.assign({}, defaultOptions);
|
|
883
1009
|
machineOptions.actions = Object.assign({}, machineOptions.actions, {
|
|
@@ -974,8 +1100,22 @@ _ref2 // Component props
|
|
|
974
1100
|
servicesManager,
|
|
975
1101
|
extensionManager,
|
|
976
1102
|
appConfig
|
|
1103
|
+
}),
|
|
1104
|
+
promptLabelAnnotation: TrackedMeasurementsContext_promptLabelAnnotation.bind(null, {
|
|
1105
|
+
servicesManager,
|
|
1106
|
+
extensionManager
|
|
977
1107
|
})
|
|
978
1108
|
});
|
|
1109
|
+
machineOptions.guards = Object.assign({}, machineOptions.guards, {
|
|
1110
|
+
isLabelOnMeasure: (ctx, evt, condMeta) => {
|
|
1111
|
+
const labelConfig = customizationService.get('measurementLabels');
|
|
1112
|
+
return labelConfig?.labelOnMeasure;
|
|
1113
|
+
},
|
|
1114
|
+
isLabelOnMeasureAndShouldKillMachine: (ctx, evt, condMeta) => {
|
|
1115
|
+
const labelConfig = customizationService.get('measurementLabels');
|
|
1116
|
+
return evt.data && evt.data.userResponse === RESPONSE.NO_NEVER && labelConfig?.labelOnMeasure;
|
|
1117
|
+
}
|
|
1118
|
+
});
|
|
979
1119
|
|
|
980
1120
|
// TODO: IMPROVE
|
|
981
1121
|
// - Add measurement_updated to cornerstone; debounced? (ext side, or consumption?)
|
|
@@ -986,8 +1126,8 @@ _ref2 // Component props
|
|
|
986
1126
|
// - Fix viewport border resize
|
|
987
1127
|
// - created/destroyed hooks for extensions (cornerstone measurement subscriptions in it's `init`)
|
|
988
1128
|
|
|
989
|
-
const measurementTrackingMachine = (0,es/* Machine */.
|
|
990
|
-
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,react_es/* useMachine */.
|
|
1129
|
+
const measurementTrackingMachine = (0,es/* Machine */.u5)(machineConfiguration, machineOptions);
|
|
1130
|
+
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,react_es/* useMachine */.zl)(measurementTrackingMachine);
|
|
991
1131
|
(0,react.useEffect)(() => {
|
|
992
1132
|
// Update the state machine with the active viewport ID
|
|
993
1133
|
sendTrackedMeasurementsEvent('UPDATE_ACTIVE_VIEWPORT_ID', {
|
|
@@ -997,51 +1137,54 @@ _ref2 // Component props
|
|
|
997
1137
|
|
|
998
1138
|
// ~~ Listen for changes to ViewportGrid for potential SRs hung in panes when idle
|
|
999
1139
|
(0,react.useEffect)(() => {
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1140
|
+
const triggerPromptHydrateFlow = async () => {
|
|
1141
|
+
if (viewports.size > 0) {
|
|
1142
|
+
const activeViewport = viewports.get(activeViewportId);
|
|
1143
|
+
if (!activeViewport || !activeViewport?.displaySetInstanceUIDs?.length) {
|
|
1144
|
+
return;
|
|
1145
|
+
}
|
|
1005
1146
|
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1147
|
+
// Todo: Getting the first displaySetInstanceUID is wrong, but we don't have
|
|
1148
|
+
// tracking fusion viewports yet. This should change when we do.
|
|
1149
|
+
const {
|
|
1150
|
+
displaySetService
|
|
1151
|
+
} = servicesManager.services;
|
|
1152
|
+
const displaySet = displaySetService.getDisplaySetByUID(activeViewport.displaySetInstanceUIDs[0]);
|
|
1153
|
+
if (!displaySet) {
|
|
1154
|
+
return;
|
|
1155
|
+
}
|
|
1015
1156
|
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1157
|
+
// If this is an SR produced by our SR SOPClassHandler,
|
|
1158
|
+
// and it hasn't been loaded yet, do that now so we
|
|
1159
|
+
// can check if it can be rehydrated or not.
|
|
1160
|
+
//
|
|
1161
|
+
// Note: This happens:
|
|
1162
|
+
// - If the viewport is not currently an OHIFCornerstoneSRViewport
|
|
1163
|
+
// - If the displaySet has never been hung
|
|
1164
|
+
//
|
|
1165
|
+
// Otherwise, the displaySet will be loaded by the useEffect handler
|
|
1166
|
+
// listening to displaySet changes inside OHIFCornerstoneSRViewport.
|
|
1167
|
+
// The issue here is that this handler in TrackedMeasurementsContext
|
|
1168
|
+
// ends up occurring before the Viewport is created, so the displaySet
|
|
1169
|
+
// is not loaded yet, and isRehydratable is undefined unless we call load().
|
|
1170
|
+
if (displaySet.SOPClassHandlerId === SR_SOPCLASSHANDLERID && !displaySet.isLoaded && displaySet.load) {
|
|
1171
|
+
await displaySet.load();
|
|
1172
|
+
}
|
|
1032
1173
|
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1174
|
+
// Magic string
|
|
1175
|
+
// load function added by our sopClassHandler module
|
|
1176
|
+
if (displaySet.SOPClassHandlerId === SR_SOPCLASSHANDLERID && displaySet.isRehydratable === true) {
|
|
1177
|
+
console.log('sending event...', trackedMeasurements);
|
|
1178
|
+
sendTrackedMeasurementsEvent('PROMPT_HYDRATE_SR', {
|
|
1179
|
+
displaySetInstanceUID: displaySet.displaySetInstanceUID,
|
|
1180
|
+
SeriesInstanceUID: displaySet.SeriesInstanceUID,
|
|
1181
|
+
viewportId: activeViewportId
|
|
1182
|
+
});
|
|
1183
|
+
}
|
|
1042
1184
|
}
|
|
1043
|
-
}
|
|
1044
|
-
|
|
1185
|
+
};
|
|
1186
|
+
triggerPromptHydrateFlow();
|
|
1187
|
+
}, [trackedMeasurements, activeViewportId, sendTrackedMeasurementsEvent, servicesManager.services, viewports]);
|
|
1045
1188
|
return /*#__PURE__*/react.createElement(TrackedMeasurementsContext.Provider, {
|
|
1046
1189
|
value: [trackedMeasurements, sendTrackedMeasurementsEvent]
|
|
1047
1190
|
}, children);
|
|
@@ -1060,12 +1203,11 @@ TrackedMeasurementsContextProvider.propTypes = {
|
|
|
1060
1203
|
|
|
1061
1204
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/getContextModule.tsx
|
|
1062
1205
|
|
|
1063
|
-
function getContextModule(
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
} = _ref;
|
|
1206
|
+
function getContextModule({
|
|
1207
|
+
servicesManager,
|
|
1208
|
+
extensionManager,
|
|
1209
|
+
commandsManager
|
|
1210
|
+
}) {
|
|
1069
1211
|
const BoundTrackedMeasurementsContextProvider = TrackedMeasurementsContextProvider.bind(null, {
|
|
1070
1212
|
servicesManager,
|
|
1071
1213
|
extensionManager,
|
|
@@ -1082,7 +1224,7 @@ function getContextModule(_ref) {
|
|
|
1082
1224
|
|
|
1083
1225
|
/***/ }),
|
|
1084
1226
|
|
|
1085
|
-
/***/
|
|
1227
|
+
/***/ 84284:
|
|
1086
1228
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1087
1229
|
|
|
1088
1230
|
// ESM COMPAT FLAG
|
|
@@ -1093,21 +1235,21 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1093
1235
|
"default": () => (/* binding */ measurement_tracking_src)
|
|
1094
1236
|
});
|
|
1095
1237
|
|
|
1096
|
-
// EXTERNAL MODULE: ../../../extensions/measurement-tracking/src/getContextModule.tsx +
|
|
1097
|
-
var getContextModule = __webpack_require__(
|
|
1238
|
+
// EXTERNAL MODULE: ../../../extensions/measurement-tracking/src/getContextModule.tsx + 13 modules
|
|
1239
|
+
var getContextModule = __webpack_require__(219);
|
|
1098
1240
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
1099
|
-
var react = __webpack_require__(
|
|
1241
|
+
var react = __webpack_require__(41766);
|
|
1100
1242
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
1101
|
-
var prop_types = __webpack_require__(
|
|
1243
|
+
var prop_types = __webpack_require__(11374);
|
|
1102
1244
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
1103
1245
|
// EXTERNAL MODULE: ../node_modules/react-router-dom/dist/index.js
|
|
1104
|
-
var dist = __webpack_require__(
|
|
1246
|
+
var dist = __webpack_require__(37396);
|
|
1105
1247
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
1106
|
-
var es = __webpack_require__(
|
|
1107
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
1108
|
-
var src = __webpack_require__(
|
|
1109
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
1110
|
-
var ui_src = __webpack_require__(
|
|
1248
|
+
var es = __webpack_require__(80619);
|
|
1249
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
|
|
1250
|
+
var src = __webpack_require__(55411);
|
|
1251
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
|
|
1252
|
+
var ui_src = __webpack_require__(5085);
|
|
1111
1253
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx
|
|
1112
1254
|
|
|
1113
1255
|
|
|
@@ -1124,36 +1266,36 @@ const {
|
|
|
1124
1266
|
*
|
|
1125
1267
|
* @param {*} param0
|
|
1126
1268
|
*/
|
|
1127
|
-
function PanelStudyBrowserTracking(
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
} = _ref;
|
|
1269
|
+
function PanelStudyBrowserTracking({
|
|
1270
|
+
servicesManager,
|
|
1271
|
+
getImageSrc,
|
|
1272
|
+
getStudiesForPatientByMRN,
|
|
1273
|
+
requestDisplaySetCreationForStudy,
|
|
1274
|
+
dataSource
|
|
1275
|
+
}) {
|
|
1135
1276
|
const {
|
|
1136
1277
|
displaySetService,
|
|
1137
1278
|
uiDialogService,
|
|
1138
1279
|
hangingProtocolService,
|
|
1139
|
-
uiNotificationService
|
|
1280
|
+
uiNotificationService,
|
|
1281
|
+
measurementService
|
|
1140
1282
|
} = servicesManager.services;
|
|
1141
|
-
const navigate = (0,dist/* useNavigate */.
|
|
1283
|
+
const navigate = (0,dist/* useNavigate */.Zp)();
|
|
1142
1284
|
const {
|
|
1143
1285
|
t
|
|
1144
|
-
} = (0,es/* useTranslation
|
|
1286
|
+
} = (0,es/* useTranslation */.Bd)('Common');
|
|
1145
1287
|
|
|
1146
1288
|
// Normally you nest the components so the tree isn't so deep, and the data
|
|
1147
1289
|
// doesn't have to have such an intense shape. This works well enough for now.
|
|
1148
1290
|
// Tabs --> Studies --> DisplaySets --> Thumbnails
|
|
1149
1291
|
const {
|
|
1150
1292
|
StudyInstanceUIDs
|
|
1151
|
-
} = (0,ui_src/* useImageViewer */.
|
|
1293
|
+
} = (0,ui_src/* useImageViewer */.Bz)();
|
|
1152
1294
|
const [{
|
|
1153
1295
|
activeViewportId,
|
|
1154
1296
|
viewports
|
|
1155
|
-
}, viewportGridService] = (0,ui_src/* useViewportGrid */.
|
|
1156
|
-
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,getContextModule/* useTrackedMeasurements */.
|
|
1297
|
+
}, viewportGridService] = (0,ui_src/* useViewportGrid */.ih)();
|
|
1298
|
+
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,getContextModule/* useTrackedMeasurements */.B)();
|
|
1157
1299
|
const [activeTabName, setActiveTabName] = (0,react.useState)('primary');
|
|
1158
1300
|
const [expandedStudyInstanceUIDs, setExpandedStudyInstanceUIDs] = (0,react.useState)([...StudyInstanceUIDs]);
|
|
1159
1301
|
const [studyDisplayList, setStudyDisplayList] = (0,react.useState)([]);
|
|
@@ -1236,7 +1378,7 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1236
1378
|
const newImageSrcEntry = {};
|
|
1237
1379
|
const displaySet = displaySetService.getDisplaySetByUID(dSet.displaySetInstanceUID);
|
|
1238
1380
|
const imageIds = dataSource.getImageIdsForDisplaySet(displaySet);
|
|
1239
|
-
const imageId =
|
|
1381
|
+
const imageId = getImageIdForThumbnail(displaySet, imageIds);
|
|
1240
1382
|
|
|
1241
1383
|
// TODO: Is it okay that imageIds are not returned here for SR displaySets?
|
|
1242
1384
|
if (!imageId || displaySet?.unsupported) {
|
|
@@ -1283,7 +1425,7 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1283
1425
|
setJumpToDisplaySet(displaySetInstanceUID);
|
|
1284
1426
|
}
|
|
1285
1427
|
const imageIds = dataSource.getImageIdsForDisplaySet(displaySet);
|
|
1286
|
-
const imageId =
|
|
1428
|
+
const imageId = getImageIdForThumbnail(displaySet, imageIds);
|
|
1287
1429
|
|
|
1288
1430
|
// TODO: Is it okay that imageIds are not returned here for SR displaysets?
|
|
1289
1431
|
if (!imageId) {
|
|
@@ -1369,7 +1511,66 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1369
1511
|
setExpandedStudyInstanceUIDs(updatedExpandedStudyInstanceUIDs);
|
|
1370
1512
|
}
|
|
1371
1513
|
}, [expandedStudyInstanceUIDs, jumpToDisplaySet, tabs]);
|
|
1372
|
-
|
|
1514
|
+
const onClickUntrack = displaySetInstanceUID => {
|
|
1515
|
+
const onConfirm = () => {
|
|
1516
|
+
const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
|
|
1517
|
+
sendTrackedMeasurementsEvent('UNTRACK_SERIES', {
|
|
1518
|
+
SeriesInstanceUID: displaySet.SeriesInstanceUID
|
|
1519
|
+
});
|
|
1520
|
+
const measurements = measurementService.getMeasurements();
|
|
1521
|
+
measurements.forEach(m => {
|
|
1522
|
+
if (m.referenceSeriesUID === displaySet.SeriesInstanceUID) {
|
|
1523
|
+
measurementService.remove(m.uid);
|
|
1524
|
+
}
|
|
1525
|
+
});
|
|
1526
|
+
};
|
|
1527
|
+
uiDialogService.create({
|
|
1528
|
+
id: 'untrack-series',
|
|
1529
|
+
centralize: true,
|
|
1530
|
+
isDraggable: false,
|
|
1531
|
+
showOverlay: true,
|
|
1532
|
+
content: ui_src/* Dialog */.lG,
|
|
1533
|
+
contentProps: {
|
|
1534
|
+
title: 'Untrack Series',
|
|
1535
|
+
body: () => /*#__PURE__*/react.createElement("div", {
|
|
1536
|
+
className: "bg-primary-dark p-4 text-white"
|
|
1537
|
+
}, /*#__PURE__*/react.createElement("p", null, "Are you sure you want to untrack this series?"), /*#__PURE__*/react.createElement("p", {
|
|
1538
|
+
className: "mt-2"
|
|
1539
|
+
}, "This action cannot be undone and will delete all your existing measurements.")),
|
|
1540
|
+
actions: [{
|
|
1541
|
+
id: 'cancel',
|
|
1542
|
+
text: 'Cancel',
|
|
1543
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.secondary
|
|
1544
|
+
}, {
|
|
1545
|
+
id: 'yes',
|
|
1546
|
+
text: 'Yes',
|
|
1547
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.primary,
|
|
1548
|
+
classes: ['untrack-yes-button']
|
|
1549
|
+
}],
|
|
1550
|
+
onClose: () => uiDialogService.dismiss({
|
|
1551
|
+
id: 'untrack-series'
|
|
1552
|
+
}),
|
|
1553
|
+
onSubmit: async ({
|
|
1554
|
+
action
|
|
1555
|
+
}) => {
|
|
1556
|
+
switch (action.id) {
|
|
1557
|
+
case 'yes':
|
|
1558
|
+
onConfirm();
|
|
1559
|
+
uiDialogService.dismiss({
|
|
1560
|
+
id: 'untrack-series'
|
|
1561
|
+
});
|
|
1562
|
+
break;
|
|
1563
|
+
case 'cancel':
|
|
1564
|
+
uiDialogService.dismiss({
|
|
1565
|
+
id: 'untrack-series'
|
|
1566
|
+
});
|
|
1567
|
+
break;
|
|
1568
|
+
}
|
|
1569
|
+
}
|
|
1570
|
+
}
|
|
1571
|
+
});
|
|
1572
|
+
};
|
|
1573
|
+
return /*#__PURE__*/react.createElement(ui_src/* StudyBrowser */.M4, {
|
|
1373
1574
|
tabs: tabs,
|
|
1374
1575
|
servicesManager: servicesManager,
|
|
1375
1576
|
activeTabName: activeTabName,
|
|
@@ -1379,12 +1580,7 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1379
1580
|
setActiveTabName(clickedTabName);
|
|
1380
1581
|
},
|
|
1381
1582
|
onClickUntrack: displaySetInstanceUID => {
|
|
1382
|
-
|
|
1383
|
-
// TODO: shift this somewhere else where we're centralizing this logic?
|
|
1384
|
-
// Potentially a helper from displaySetInstanceUID to this
|
|
1385
|
-
sendTrackedMeasurementsEvent('UNTRACK_SERIES', {
|
|
1386
|
-
SeriesInstanceUID: displaySet.SeriesInstanceUID
|
|
1387
|
-
});
|
|
1583
|
+
onClickUntrack(displaySetInstanceUID);
|
|
1388
1584
|
},
|
|
1389
1585
|
onClickThumbnail: () => {},
|
|
1390
1586
|
onDoubleClickThumbnail: onDoubleClickThumbnailHandler,
|
|
@@ -1401,6 +1597,18 @@ PanelStudyBrowserTracking.propTypes = {
|
|
|
1401
1597
|
requestDisplaySetCreationForStudy: (prop_types_default()).func.isRequired
|
|
1402
1598
|
};
|
|
1403
1599
|
/* harmony default export */ const PanelStudyBrowserTracking_PanelStudyBrowserTracking = (PanelStudyBrowserTracking);
|
|
1600
|
+
function getImageIdForThumbnail(displaySet, imageIds) {
|
|
1601
|
+
let imageId;
|
|
1602
|
+
if (displaySet.isDynamicVolume) {
|
|
1603
|
+
const timePoints = displaySet.dynamicVolumeInfo.timePoints;
|
|
1604
|
+
const middleIndex = Math.floor(timePoints.length / 2);
|
|
1605
|
+
const middleTimePointImageIds = timePoints[middleIndex];
|
|
1606
|
+
imageId = middleTimePointImageIds[Math.floor(middleTimePointImageIds.length / 2)];
|
|
1607
|
+
} else {
|
|
1608
|
+
imageId = imageIds[Math.floor(imageIds.length / 2)];
|
|
1609
|
+
}
|
|
1610
|
+
return imageId;
|
|
1611
|
+
}
|
|
1404
1612
|
|
|
1405
1613
|
/**
|
|
1406
1614
|
* Maps from the DataSource's format to a naturalized object
|
|
@@ -1432,14 +1640,6 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1432
1640
|
const imageSrc = thumbnailImageSrcMap[ds.displaySetInstanceUID];
|
|
1433
1641
|
const componentType = _getComponentType(ds);
|
|
1434
1642
|
const numPanes = viewportGridService.getNumViewportPanes();
|
|
1435
|
-
const viewportIdentificator = [];
|
|
1436
|
-
if (numPanes !== 1) {
|
|
1437
|
-
viewports.forEach(viewportData => {
|
|
1438
|
-
if (viewportData?.displaySetInstanceUIDs?.includes(ds.displaySetInstanceUID)) {
|
|
1439
|
-
viewportIdentificator.push(viewportData.viewportLabel);
|
|
1440
|
-
}
|
|
1441
|
-
});
|
|
1442
|
-
}
|
|
1443
1643
|
const array = componentType === 'thumbnailTracked' ? thumbnailDisplaySets : thumbnailNoImageDisplaySets;
|
|
1444
1644
|
const {
|
|
1445
1645
|
displaySetInstanceUID
|
|
@@ -1461,10 +1661,8 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1461
1661
|
displaySetInstanceUID
|
|
1462
1662
|
// .. Any other data to pass
|
|
1463
1663
|
},
|
|
1464
|
-
|
|
1465
1664
|
isTracked: trackedSeriesInstanceUIDs.includes(ds.SeriesInstanceUID),
|
|
1466
|
-
isHydratedForDerivedDisplaySet: ds.isHydrated
|
|
1467
|
-
viewportIdentificator
|
|
1665
|
+
isHydratedForDerivedDisplaySet: ds.isHydrated
|
|
1468
1666
|
};
|
|
1469
1667
|
if (componentType === 'thumbnailNoImage') {
|
|
1470
1668
|
if (dataSource.reject && dataSource.reject.series) {
|
|
@@ -1475,7 +1673,7 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1475
1673
|
centralize: true,
|
|
1476
1674
|
isDraggable: false,
|
|
1477
1675
|
showOverlay: true,
|
|
1478
|
-
content: ui_src/* Dialog */.
|
|
1676
|
+
content: ui_src/* Dialog */.lG,
|
|
1479
1677
|
contentProps: {
|
|
1480
1678
|
title: 'Delete Report',
|
|
1481
1679
|
body: () => /*#__PURE__*/react.createElement("div", {
|
|
@@ -1486,11 +1684,11 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1486
1684
|
actions: [{
|
|
1487
1685
|
id: 'cancel',
|
|
1488
1686
|
text: 'Cancel',
|
|
1489
|
-
type: ui_src/* ButtonEnums.type */.
|
|
1687
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.secondary
|
|
1490
1688
|
}, {
|
|
1491
1689
|
id: 'yes',
|
|
1492
1690
|
text: 'Yes',
|
|
1493
|
-
type: ui_src/* ButtonEnums.type */.
|
|
1691
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.primary,
|
|
1494
1692
|
classes: ['reject-yes-button']
|
|
1495
1693
|
}],
|
|
1496
1694
|
onClose: () => uiDialogService.dismiss({
|
|
@@ -1500,10 +1698,9 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1500
1698
|
const yesButton = document.querySelector('.reject-yes-button');
|
|
1501
1699
|
yesButton.focus();
|
|
1502
1700
|
},
|
|
1503
|
-
onSubmit: async
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
} = _ref2;
|
|
1701
|
+
onSubmit: async ({
|
|
1702
|
+
action
|
|
1703
|
+
}) => {
|
|
1507
1704
|
switch (action.id) {
|
|
1508
1705
|
case 'yes':
|
|
1509
1706
|
try {
|
|
@@ -1657,6 +1854,11 @@ function _findTabAndStudyOfDisplaySet(displaySetInstanceUID, tabs) {
|
|
|
1657
1854
|
function getImageSrcFromImageId(cornerstone, imageId) {
|
|
1658
1855
|
return new Promise((resolve, reject) => {
|
|
1659
1856
|
const canvas = document.createElement('canvas');
|
|
1857
|
+
// Note: the default width and height of the canvas is 300x150
|
|
1858
|
+
// but we need to set the width and height to the same number since
|
|
1859
|
+
// the thumbnails are usually square and we want to maintain the aspect ratio
|
|
1860
|
+
canvas.width = 128 / window.devicePixelRatio;
|
|
1861
|
+
canvas.height = 128 / window.devicePixelRatio;
|
|
1660
1862
|
cornerstone.utilities.loadImageToCanvas({
|
|
1661
1863
|
canvas,
|
|
1662
1864
|
imageId
|
|
@@ -1699,16 +1901,15 @@ function _getStudyForPatientUtility(extensionManager) {
|
|
|
1699
1901
|
* @param {object} commandsManager
|
|
1700
1902
|
* @param {object} extensionManager
|
|
1701
1903
|
*/
|
|
1702
|
-
function WrappedPanelStudyBrowserTracking(
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
} = _ref;
|
|
1904
|
+
function WrappedPanelStudyBrowserTracking({
|
|
1905
|
+
commandsManager,
|
|
1906
|
+
extensionManager,
|
|
1907
|
+
servicesManager
|
|
1908
|
+
}) {
|
|
1708
1909
|
const dataSource = extensionManager.getActiveDataSource()[0];
|
|
1709
1910
|
const getStudiesForPatientByMRN = _getStudyForPatientUtility(extensionManager);
|
|
1710
1911
|
const _getStudiesForPatientByMRN = getStudiesForPatientByMRN.bind(null, dataSource);
|
|
1711
|
-
const _getImageSrcFromImageId = _createGetImageSrcFromImageIdFn(extensionManager);
|
|
1912
|
+
const _getImageSrcFromImageId = (0,react.useCallback)(_createGetImageSrcFromImageIdFn(extensionManager), []);
|
|
1712
1913
|
const _requestDisplaySetCreationForStudy = PanelStudyBrowserTracking_requestDisplaySetCreationForStudy.bind(null, dataSource);
|
|
1713
1914
|
return /*#__PURE__*/react.createElement(PanelStudyBrowserTracking_PanelStudyBrowserTracking, {
|
|
1714
1915
|
servicesManager: servicesManager,
|
|
@@ -1746,47 +1947,11 @@ WrappedPanelStudyBrowserTracking.propTypes = {
|
|
|
1746
1947
|
};
|
|
1747
1948
|
/* harmony default export */ const panels_PanelStudyBrowserTracking = (WrappedPanelStudyBrowserTracking);
|
|
1748
1949
|
// EXTERNAL MODULE: ./hooks/index.js + 1 modules
|
|
1749
|
-
var hooks = __webpack_require__(
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
function ActionButtons(_ref) {
|
|
1756
|
-
let {
|
|
1757
|
-
onExportClick,
|
|
1758
|
-
onCreateReportClick,
|
|
1759
|
-
disabled
|
|
1760
|
-
} = _ref;
|
|
1761
|
-
const {
|
|
1762
|
-
t
|
|
1763
|
-
} = (0,es/* useTranslation */.$G)('MeasurementTable');
|
|
1764
|
-
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
|
|
1765
|
-
onClick: onExportClick,
|
|
1766
|
-
disabled: disabled,
|
|
1767
|
-
type: ui_src/* ButtonEnums.type */.LZ.dt.secondary,
|
|
1768
|
-
size: ui_src/* ButtonEnums.size */.LZ.dp.small
|
|
1769
|
-
}, t('Export')), /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
|
|
1770
|
-
className: "ml-2",
|
|
1771
|
-
onClick: onCreateReportClick,
|
|
1772
|
-
type: ui_src/* ButtonEnums.type */.LZ.dt.secondary,
|
|
1773
|
-
size: ui_src/* ButtonEnums.size */.LZ.dp.small,
|
|
1774
|
-
disabled: disabled
|
|
1775
|
-
}, t('Create Report')));
|
|
1776
|
-
}
|
|
1777
|
-
ActionButtons.propTypes = {
|
|
1778
|
-
onExportClick: (prop_types_default()).func,
|
|
1779
|
-
onCreateReportClick: (prop_types_default()).func,
|
|
1780
|
-
disabled: (prop_types_default()).bool
|
|
1781
|
-
};
|
|
1782
|
-
ActionButtons.defaultProps = {
|
|
1783
|
-
onExportClick: () => alert('Export'),
|
|
1784
|
-
onCreateReportClick: () => alert('Create Report'),
|
|
1785
|
-
disabled: false
|
|
1786
|
-
};
|
|
1787
|
-
/* harmony default export */ const PanelMeasurementTableTracking_ActionButtons = (ActionButtons);
|
|
1950
|
+
var hooks = __webpack_require__(25103);
|
|
1951
|
+
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
1952
|
+
var state = __webpack_require__(15575);
|
|
1788
1953
|
// EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
|
|
1789
|
-
var lodash_debounce = __webpack_require__(
|
|
1954
|
+
var lodash_debounce = __webpack_require__(14771);
|
|
1790
1955
|
var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
|
|
1791
1956
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx
|
|
1792
1957
|
|
|
@@ -1797,6 +1962,7 @@ var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce
|
|
|
1797
1962
|
|
|
1798
1963
|
|
|
1799
1964
|
|
|
1965
|
+
|
|
1800
1966
|
const {
|
|
1801
1967
|
downloadCSVReport
|
|
1802
1968
|
} = src.utils;
|
|
@@ -1812,21 +1978,23 @@ const DISPLAY_STUDY_SUMMARY_INITIAL_VALUE = {
|
|
|
1812
1978
|
// 'CT',
|
|
1813
1979
|
description: '' // 'CHEST/ABD/PELVIS W CONTRAST',
|
|
1814
1980
|
};
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1981
|
+
function PanelMeasurementTableTracking({
|
|
1982
|
+
servicesManager,
|
|
1983
|
+
extensionManager
|
|
1984
|
+
}) {
|
|
1985
|
+
const [viewportGrid] = (0,ui_src/* useViewportGrid */.ih)();
|
|
1986
|
+
const {
|
|
1987
|
+
t
|
|
1988
|
+
} = (0,es/* useTranslation */.Bd)('MeasurementTable');
|
|
1822
1989
|
const [measurementChangeTimestamp, setMeasurementsUpdated] = (0,react.useState)(Date.now().toString());
|
|
1823
|
-
const debouncedMeasurementChangeTimestamp = (0,hooks/* useDebounce */.
|
|
1990
|
+
const debouncedMeasurementChangeTimestamp = (0,hooks/* useDebounce */.d)(measurementChangeTimestamp, 200);
|
|
1824
1991
|
const {
|
|
1825
1992
|
measurementService,
|
|
1826
1993
|
uiDialogService,
|
|
1827
|
-
displaySetService
|
|
1994
|
+
displaySetService,
|
|
1995
|
+
customizationService
|
|
1828
1996
|
} = servicesManager.services;
|
|
1829
|
-
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,getContextModule/* useTrackedMeasurements */.
|
|
1997
|
+
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,getContextModule/* useTrackedMeasurements */.B)();
|
|
1830
1998
|
const {
|
|
1831
1999
|
trackedStudy,
|
|
1832
2000
|
trackedSeries
|
|
@@ -1834,6 +2002,7 @@ function PanelMeasurementTableTracking(_ref) {
|
|
|
1834
2002
|
const [displayStudySummary, setDisplayStudySummary] = (0,react.useState)(DISPLAY_STUDY_SUMMARY_INITIAL_VALUE);
|
|
1835
2003
|
const [displayMeasurements, setDisplayMeasurements] = (0,react.useState)([]);
|
|
1836
2004
|
const measurementsPanelRef = (0,react.useRef)(null);
|
|
2005
|
+
const [appConfig] = (0,state/* useAppConfig */.r)();
|
|
1837
2006
|
(0,react.useEffect)(() => {
|
|
1838
2007
|
const measurements = measurementService.getMeasurements();
|
|
1839
2008
|
const filteredMeasurements = measurements.filter(m => trackedStudy === m.referenceStudyUID && trackedSeries.includes(m.referenceSeriesUID));
|
|
@@ -1909,109 +2078,40 @@ function PanelMeasurementTableTracking(_ref) {
|
|
|
1909
2078
|
const trackedMeasurements = measurements.filter(m => trackedStudy === m.referenceStudyUID && trackedSeries.includes(m.referenceSeriesUID));
|
|
1910
2079
|
downloadCSVReport(trackedMeasurements, measurementService);
|
|
1911
2080
|
}
|
|
1912
|
-
const jumpToImage =
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
} = _ref2;
|
|
2081
|
+
const jumpToImage = ({
|
|
2082
|
+
uid,
|
|
2083
|
+
isActive
|
|
2084
|
+
}) => {
|
|
1917
2085
|
measurementService.jumpToMeasurement(viewportGrid.activeViewportId, uid);
|
|
1918
2086
|
onMeasurementItemClickHandler({
|
|
1919
2087
|
uid,
|
|
1920
2088
|
isActive
|
|
1921
2089
|
});
|
|
1922
2090
|
};
|
|
1923
|
-
const onMeasurementItemEditHandler =
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
} = _ref3;
|
|
1928
|
-
const measurement = measurementService.getMeasurement(uid);
|
|
2091
|
+
const onMeasurementItemEditHandler = ({
|
|
2092
|
+
uid,
|
|
2093
|
+
isActive
|
|
2094
|
+
}) => {
|
|
1929
2095
|
jumpToImage({
|
|
1930
2096
|
uid,
|
|
1931
2097
|
isActive
|
|
1932
2098
|
});
|
|
1933
|
-
const
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
...value
|
|
1944
|
-
}, true);
|
|
1945
|
-
}
|
|
1946
|
-
}
|
|
1947
|
-
uiDialogService.dismiss({
|
|
1948
|
-
id: 'enter-annotation'
|
|
1949
|
-
});
|
|
1950
|
-
};
|
|
1951
|
-
uiDialogService.create({
|
|
1952
|
-
id: 'enter-annotation',
|
|
1953
|
-
centralize: true,
|
|
1954
|
-
isDraggable: false,
|
|
1955
|
-
showOverlay: true,
|
|
1956
|
-
content: ui_src/* Dialog */.Vq,
|
|
1957
|
-
contentProps: {
|
|
1958
|
-
title: 'Annotation',
|
|
1959
|
-
noCloseButton: true,
|
|
1960
|
-
value: {
|
|
1961
|
-
label: measurement.label || ''
|
|
1962
|
-
},
|
|
1963
|
-
body: _ref5 => {
|
|
1964
|
-
let {
|
|
1965
|
-
value,
|
|
1966
|
-
setValue
|
|
1967
|
-
} = _ref5;
|
|
1968
|
-
const onChangeHandler = event => {
|
|
1969
|
-
event.persist();
|
|
1970
|
-
setValue(value => ({
|
|
1971
|
-
...value,
|
|
1972
|
-
label: event.target.value
|
|
1973
|
-
}));
|
|
1974
|
-
};
|
|
1975
|
-
const onKeyPressHandler = event => {
|
|
1976
|
-
if (event.key === 'Enter') {
|
|
1977
|
-
onSubmitHandler({
|
|
1978
|
-
value,
|
|
1979
|
-
action: {
|
|
1980
|
-
id: 'save'
|
|
1981
|
-
}
|
|
1982
|
-
});
|
|
1983
|
-
}
|
|
1984
|
-
};
|
|
1985
|
-
return /*#__PURE__*/react.createElement(ui_src/* Input */.II, {
|
|
1986
|
-
label: "Enter your annotation",
|
|
1987
|
-
labelClassName: "text-white grow text-[14px] leading-[1.2]",
|
|
1988
|
-
autoFocus: true,
|
|
1989
|
-
id: "annotation",
|
|
1990
|
-
className: "border-primary-main bg-black",
|
|
1991
|
-
type: "text",
|
|
1992
|
-
value: value.label,
|
|
1993
|
-
onChange: onChangeHandler,
|
|
1994
|
-
onKeyPress: onKeyPressHandler
|
|
1995
|
-
});
|
|
1996
|
-
},
|
|
1997
|
-
actions: [{
|
|
1998
|
-
id: 'cancel',
|
|
1999
|
-
text: 'Cancel',
|
|
2000
|
-
type: ui_src/* ButtonEnums.type */.LZ.dt.secondary
|
|
2001
|
-
}, {
|
|
2002
|
-
id: 'save',
|
|
2003
|
-
text: 'Save',
|
|
2004
|
-
type: ui_src/* ButtonEnums.type */.LZ.dt.primary
|
|
2005
|
-
}],
|
|
2006
|
-
onSubmit: onSubmitHandler
|
|
2007
|
-
}
|
|
2099
|
+
const labelConfig = customizationService.get('measurementLabels');
|
|
2100
|
+
const measurement = measurementService.getMeasurement(uid);
|
|
2101
|
+
const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.common');
|
|
2102
|
+
const {
|
|
2103
|
+
showLabelAnnotationPopup
|
|
2104
|
+
} = utilityModule.exports;
|
|
2105
|
+
showLabelAnnotationPopup(measurement, uiDialogService, labelConfig).then(val => {
|
|
2106
|
+
measurementService.update(uid, {
|
|
2107
|
+
...val
|
|
2108
|
+
}, true);
|
|
2008
2109
|
});
|
|
2009
2110
|
};
|
|
2010
|
-
const onMeasurementItemClickHandler =
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
} = _ref6;
|
|
2111
|
+
const onMeasurementItemClickHandler = ({
|
|
2112
|
+
uid,
|
|
2113
|
+
isActive
|
|
2114
|
+
}) => {
|
|
2015
2115
|
if (!isActive) {
|
|
2016
2116
|
const measurements = [...displayMeasurements];
|
|
2017
2117
|
const measurement = measurements.find(m => m.uid === uid);
|
|
@@ -2022,37 +2122,44 @@ function PanelMeasurementTableTracking(_ref) {
|
|
|
2022
2122
|
};
|
|
2023
2123
|
const displayMeasurementsWithoutFindings = displayMeasurements.filter(dm => dm.measurementType !== measurementService.VALUE_TYPES.POINT);
|
|
2024
2124
|
const additionalFindings = displayMeasurements.filter(dm => dm.measurementType === measurementService.VALUE_TYPES.POINT);
|
|
2125
|
+
const disabled = additionalFindings.length === 0 && displayMeasurementsWithoutFindings.length === 0;
|
|
2025
2126
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
2026
2127
|
className: "invisible-scrollbar overflow-y-auto overflow-x-hidden",
|
|
2027
2128
|
ref: measurementsPanelRef,
|
|
2028
2129
|
"data-cy": 'trackedMeasurements-panel'
|
|
2029
|
-
}, displayStudySummary.key && /*#__PURE__*/react.createElement(ui_src/* StudySummary */.
|
|
2130
|
+
}, displayStudySummary.key && /*#__PURE__*/react.createElement(ui_src/* StudySummary */.u3, {
|
|
2030
2131
|
date: PanelMeasurementTableTracking_formatDate(displayStudySummary.date),
|
|
2031
2132
|
modality: displayStudySummary.modality,
|
|
2032
2133
|
description: displayStudySummary.description
|
|
2033
|
-
}), /*#__PURE__*/react.createElement(ui_src/* MeasurementTable */.
|
|
2134
|
+
}), /*#__PURE__*/react.createElement(ui_src/* MeasurementTable */.V, {
|
|
2034
2135
|
title: "Measurements",
|
|
2035
2136
|
data: displayMeasurementsWithoutFindings,
|
|
2036
2137
|
servicesManager: servicesManager,
|
|
2037
2138
|
onClick: jumpToImage,
|
|
2038
2139
|
onEdit: onMeasurementItemEditHandler
|
|
2039
|
-
}), additionalFindings.length !== 0 && /*#__PURE__*/react.createElement(ui_src/* MeasurementTable */.
|
|
2140
|
+
}), additionalFindings.length !== 0 && /*#__PURE__*/react.createElement(ui_src/* MeasurementTable */.V, {
|
|
2040
2141
|
title: "Additional Findings",
|
|
2041
2142
|
data: additionalFindings,
|
|
2042
2143
|
servicesManager: servicesManager,
|
|
2043
2144
|
onClick: jumpToImage,
|
|
2044
2145
|
onEdit: onMeasurementItemEditHandler
|
|
2045
|
-
})), /*#__PURE__*/react.createElement("div", {
|
|
2146
|
+
})), !appConfig?.disableEditing && /*#__PURE__*/react.createElement("div", {
|
|
2046
2147
|
className: "flex justify-center p-4"
|
|
2047
|
-
}, /*#__PURE__*/react.createElement(
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2148
|
+
}, /*#__PURE__*/react.createElement(ui_src/* ActionButtons */.wr, {
|
|
2149
|
+
t: t,
|
|
2150
|
+
actions: [{
|
|
2151
|
+
label: 'Export',
|
|
2152
|
+
onClick: exportReport
|
|
2153
|
+
}, {
|
|
2154
|
+
label: 'Create Report',
|
|
2155
|
+
onClick: () => {
|
|
2156
|
+
sendTrackedMeasurementsEvent('SAVE_REPORT', {
|
|
2157
|
+
viewportId: viewportGrid.activeViewportId,
|
|
2158
|
+
isBackupSave: true
|
|
2159
|
+
});
|
|
2160
|
+
}
|
|
2161
|
+
}],
|
|
2162
|
+
disabled: disabled
|
|
2056
2163
|
})));
|
|
2057
2164
|
}
|
|
2058
2165
|
PanelMeasurementTableTracking.propTypes = {
|
|
@@ -2123,24 +2230,26 @@ function _mapMeasurementToDisplay(measurement, types, displaySetService) {
|
|
|
2123
2230
|
|
|
2124
2231
|
|
|
2125
2232
|
|
|
2233
|
+
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
|
|
2234
|
+
var i18next = __webpack_require__(92344);
|
|
2126
2235
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/getPanelModule.tsx
|
|
2127
2236
|
|
|
2128
2237
|
|
|
2238
|
+
|
|
2129
2239
|
// TODO:
|
|
2130
2240
|
// - No loading UI exists yet
|
|
2131
2241
|
// - cancel promises when component is destroyed
|
|
2132
2242
|
// - show errors in UI for thumbnails if promise fails
|
|
2133
|
-
function getPanelModule(
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
} = _ref;
|
|
2243
|
+
function getPanelModule({
|
|
2244
|
+
commandsManager,
|
|
2245
|
+
extensionManager,
|
|
2246
|
+
servicesManager
|
|
2247
|
+
}) {
|
|
2139
2248
|
return [{
|
|
2140
2249
|
name: 'seriesList',
|
|
2141
2250
|
iconName: 'tab-studies',
|
|
2142
2251
|
iconLabel: 'Studies',
|
|
2143
|
-
label: 'Studies',
|
|
2252
|
+
label: i18next/* default */.A.t('SidePanel:Studies'),
|
|
2144
2253
|
component: panels_PanelStudyBrowserTracking.bind(null, {
|
|
2145
2254
|
commandsManager,
|
|
2146
2255
|
extensionManager,
|
|
@@ -2150,7 +2259,7 @@ function getPanelModule(_ref) {
|
|
|
2150
2259
|
name: 'trackedMeasurements',
|
|
2151
2260
|
iconName: 'tab-linear',
|
|
2152
2261
|
iconLabel: 'Measure',
|
|
2153
|
-
label: 'Measurements',
|
|
2262
|
+
label: i18next/* default */.A.t('SidePanel:Measurements'),
|
|
2154
2263
|
component: panels_PanelMeasurementTableTracking.bind(null, {
|
|
2155
2264
|
commandsManager,
|
|
2156
2265
|
extensionManager,
|
|
@@ -2163,19 +2272,18 @@ function getPanelModule(_ref) {
|
|
|
2163
2272
|
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); }
|
|
2164
2273
|
|
|
2165
2274
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
2166
|
-
return __webpack_require__.e(/* import() */
|
|
2275
|
+
return __webpack_require__.e(/* import() */ 862).then(__webpack_require__.bind(__webpack_require__, 49862));
|
|
2167
2276
|
});
|
|
2168
2277
|
const OHIFCornerstoneViewport = props => {
|
|
2169
2278
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
2170
2279
|
fallback: /*#__PURE__*/react.createElement("div", null, "Loading...")
|
|
2171
2280
|
}, /*#__PURE__*/react.createElement(Component, props));
|
|
2172
2281
|
};
|
|
2173
|
-
function getViewportModule(
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
} = _ref;
|
|
2282
|
+
function getViewportModule({
|
|
2283
|
+
servicesManager,
|
|
2284
|
+
commandsManager,
|
|
2285
|
+
extensionManager
|
|
2286
|
+
}) {
|
|
2179
2287
|
const ExtendedOHIFCornerstoneTrackingViewport = props => {
|
|
2180
2288
|
return /*#__PURE__*/react.createElement(OHIFCornerstoneViewport, _extends({
|
|
2181
2289
|
servicesManager: servicesManager,
|
|
@@ -2190,10 +2298,10 @@ function getViewportModule(_ref) {
|
|
|
2190
2298
|
}
|
|
2191
2299
|
/* harmony default export */ const src_getViewportModule = (getViewportModule);
|
|
2192
2300
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/package.json
|
|
2193
|
-
const package_namespaceObject = JSON.parse('{"
|
|
2301
|
+
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-measurement-tracking"}');
|
|
2194
2302
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/id.js
|
|
2195
2303
|
|
|
2196
|
-
const id = package_namespaceObject.
|
|
2304
|
+
const id = package_namespaceObject.UU;
|
|
2197
2305
|
|
|
2198
2306
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/index.tsx
|
|
2199
2307
|
|
|
@@ -2205,7 +2313,7 @@ const measurementTrackingExtension = {
|
|
|
2205
2313
|
* Only required property. Should be a unique value across all extensions.
|
|
2206
2314
|
*/
|
|
2207
2315
|
id: id,
|
|
2208
|
-
getContextModule: getContextModule/* default */.
|
|
2316
|
+
getContextModule: getContextModule/* default */.A,
|
|
2209
2317
|
getPanelModule: src_getPanelModule,
|
|
2210
2318
|
getViewportModule: src_getViewportModule
|
|
2211
2319
|
};
|