@ohif/app 3.7.0-beta.7 → 3.7.0-beta.71
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/{270.bundle.4564621556b0f963a004.js → 116.bundle.422d1a76d8daccfed61d.js} +1037 -823
- package/dist/{917.bundle.37f76105d2e1a70d94cf.js → 12.bundle.078c14f666c71663ae8e.js} +6 -6
- package/dist/{295.bundle.957b1159fec14b9199a1.js → 125.bundle.aeaad798561853bf6939.js} +6 -6
- package/dist/{208.bundle.21c449bf9b00123e1db3.js → 128.bundle.fdb6d1d5391b79de4936.js} +6 -6
- package/dist/{616.bundle.be469f44809e9b2485b2.js → 150.bundle.c99cc2e1df7cd4085265.js} +163 -106
- package/dist/{351.bundle.0742237651aef9694a65.js → 181.bundle.73dd6f63fe0ddc52b7eb.js} +225 -203
- package/dist/{351.css → 181.css} +1 -1
- package/dist/{606.bundle.5d876f5f3dd8287f0a28.js → 202.bundle.591726b6144882ba0ee0.js} +1459 -811
- package/dist/{926.bundle.dbc9d0e591cb9217fda2.js → 220.bundle.f7e1c96c94245e70f2be.js} +990 -400
- package/dist/{664.bundle.09abae984223969d1bde.js → 23.bundle.e008ad788170f2ed5569.js} +5 -6
- package/dist/{976.bundle.c1df3878a015cdf0e51f.js → 236.bundle.226efc38e453a4aeb7dd.js} +72 -83
- package/dist/{55.bundle.550a823e75eb608e8d5e.js → 250.bundle.8bc4553ee5c56bf7cf32.js} +51 -35
- package/dist/{973.bundle.f4b8ccf7ad2ff9f6041c.js → 281.bundle.e9554f25a9eeac2f43e6.js} +18 -14
- package/dist/{744.bundle.d07b9ad7b31de0ba4956.js → 30.bundle.c8dfb82c70ae9ff67f14.js} +185 -174
- package/dist/{192.bundle.1efc10937535a37a17f0.js → 348.bundle.e5082a6425f719eb6658.js} +43 -19
- package/dist/{404.bundle.d980e423e9670737ef12.js → 359.bundle.8da7f102410ca9c0c999.js} +13 -19
- package/dist/{790.bundle.ed28f0930111217b742a.js → 410.bundle.5d03eeef5b705198bf5e.js} +10 -7
- package/dist/{151.bundle.31ea35044218837bf73f.js → 417.bundle.6cadc61b8a455776de31.js} +49 -17
- package/dist/{569.bundle.21f8ad57c06a210448b5.js → 451.bundle.e59fcdb1f1d3fbe71cd4.js} +83 -101
- package/dist/{581.bundle.dc6197189f7c88c27d4c.js → 471.bundle.b598d406ddfc2666851b.js} +65 -93
- package/dist/{199.bundle.7cec631fcf4b8475abda.js → 506.bundle.869288177e788d808aaa.js} +86 -10
- package/dist/{935.bundle.deeffff0e4f7b528e3c3.js → 604.bundle.a51f83e64004bca5f497.js} +2 -3
- package/dist/{984.bundle.b33e9e702a96c5ae9fb7.js → 663.bundle.6a389399e5196510e0de.js} +67 -37
- package/dist/{531.bundle.2a82fb1d69e5b57cc72b.js → 677.bundle.ec5f2b4707db33bd4d8e.js} +731 -447
- package/dist/{205.bundle.b5a473c200dcf2bbcdb4.js → 686.bundle.b3dbf84eefbef768843f.js} +6 -6
- package/dist/{50.bundle.9b5c9aaaf1188ab0794a.js → 687.bundle.67d721785216e064fc52.js} +218 -9
- package/dist/{331.bundle.bd0c13931a21d53086c9.js → 754.bundle.a5c9246c77659eab2739.js} +12413 -7539
- package/dist/{728.bundle.d13856835357400fef82.js → 774.bundle.8ba82ee206266eb2da5e.js} +90 -63
- package/dist/{381.bundle.0905e683605fcbc0895f.js → 775.bundle.2285e7e0e67878948c0d.js} +16 -16
- package/dist/{283.bundle.8ffad59b5844a24b2a62.js → 782.bundle.6d57b35a056506c94352.js} +112 -62
- package/dist/{642.bundle.88a563313292ae2cdd2e.js → 814.bundle.ad8ebe6cffa96a5cfc1f.js} +6 -6
- package/dist/{799.bundle.758558e64147e5aad612.js → 822.bundle.5cdd9439a62e5c7e902f.js} +81 -34
- package/dist/{953.bundle.3b0189ebc11cf0946f18.js → 886.bundle.9e526affbd17b0ed96a6.js} +34 -29
- package/dist/{82.bundle.b824c7d8ff72de0fc149.js → 90.bundle.d7a1e818bbbd3bce5419.js} +1397 -366
- package/dist/945.min.worker.js +1 -1
- package/dist/945.min.worker.js.map +1 -1
- package/dist/{707.bundle.0b18a871c9eb8df9e992.js → 967.bundle.8b4adf9b5a7392b51d0c.js} +584 -435
- package/dist/app-config.js +7 -7
- package/dist/{app.bundle.f0885cb776ab9ae8974b.js → app.bundle.1905c07065c4b93afa5a.js} +69865 -67829
- package/dist/app.bundle.css +9 -9
- package/dist/assets/yandex-browser-manifest.json +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js → dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js} +5 -4
- package/dist/es6-shim.min.js +3569 -2
- package/dist/google.js +8 -7
- package/dist/index.html +1 -1
- package/dist/{index.worker.1c69152d710fa7b84bce.worker.js → index.worker.e62ecca63f1a2e124230.worker.js} +2 -2
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +1 -0
- package/dist/init-service-worker.js +3 -5
- package/dist/oidc-client.min.js +10857 -39
- package/dist/polyfill.min.js +184 -1
- package/dist/silent-refresh.html +18 -9
- package/dist/sw.js +1 -1
- package/package.json +19 -20
- package/dist/780.bundle.fd0f13dc92e9caa0581e.js +0 -4769
- package/dist/index.worker.1c69152d710fa7b84bce.worker.js.map +0 -1
- /package/dist/{55.css → 250.css} +0 -0
- /package/dist/{806.css → 579.css} +0 -0
- /package/dist/{707.css → 967.css} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[30],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 1053:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
|
|
@@ -12,16 +12,16 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
12
12
|
});
|
|
13
13
|
|
|
14
14
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
15
|
-
var react = __webpack_require__(
|
|
15
|
+
var react = __webpack_require__(43001);
|
|
16
16
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
17
|
-
var prop_types = __webpack_require__(
|
|
17
|
+
var prop_types = __webpack_require__(3827);
|
|
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__(
|
|
21
|
-
// EXTERNAL MODULE: ../../../node_modules/@xstate/react/
|
|
22
|
-
var
|
|
23
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
24
|
-
var src = __webpack_require__(
|
|
20
|
+
var es = __webpack_require__(261);
|
|
21
|
+
// EXTERNAL MODULE: ../../../node_modules/@xstate/react/es/index.js + 9 modules
|
|
22
|
+
var react_es = __webpack_require__(59677);
|
|
23
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
|
|
24
|
+
var src = __webpack_require__(88344);
|
|
25
25
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js
|
|
26
26
|
|
|
27
27
|
const RESPONSE = {
|
|
@@ -247,7 +247,7 @@ const defaultOptions = {
|
|
|
247
247
|
showStructuredReportDisplaySetInActiveViewport: (ctx, evt) => {
|
|
248
248
|
console.warn('showStructuredReportDisplaySetInActiveViewport: not implemented');
|
|
249
249
|
},
|
|
250
|
-
clearContext: (0,es
|
|
250
|
+
clearContext: (0,es/* assign */.f0)({
|
|
251
251
|
trackedStudy: '',
|
|
252
252
|
trackedSeries: [],
|
|
253
253
|
ignoredSeries: [],
|
|
@@ -256,7 +256,7 @@ const defaultOptions = {
|
|
|
256
256
|
prevIgnoredSeries: []
|
|
257
257
|
}),
|
|
258
258
|
// Promise resolves w/ `evt.data.*`
|
|
259
|
-
setTrackedStudyAndSeries: (0,es
|
|
259
|
+
setTrackedStudyAndSeries: (0,es/* assign */.f0)((ctx, evt) => ({
|
|
260
260
|
prevTrackedStudy: ctx.trackedStudy,
|
|
261
261
|
prevTrackedSeries: ctx.trackedSeries.slice(),
|
|
262
262
|
prevIgnoredSeries: ctx.ignoredSeries.slice(),
|
|
@@ -265,7 +265,7 @@ const defaultOptions = {
|
|
|
265
265
|
trackedSeries: [evt.data.SeriesInstanceUID],
|
|
266
266
|
ignoredSeries: []
|
|
267
267
|
})),
|
|
268
|
-
setTrackedStudyAndMultipleSeries: (0,es
|
|
268
|
+
setTrackedStudyAndMultipleSeries: (0,es/* assign */.f0)((ctx, evt) => {
|
|
269
269
|
const studyInstanceUID = evt.StudyInstanceUID || evt.data.StudyInstanceUID;
|
|
270
270
|
const seriesInstanceUIDs = evt.SeriesInstanceUIDs || evt.data.SeriesInstanceUIDs;
|
|
271
271
|
return {
|
|
@@ -278,24 +278,24 @@ const defaultOptions = {
|
|
|
278
278
|
ignoredSeries: []
|
|
279
279
|
};
|
|
280
280
|
}),
|
|
281
|
-
setIsDirtyToClean: (0,es
|
|
281
|
+
setIsDirtyToClean: (0,es/* assign */.f0)((ctx, evt) => ({
|
|
282
282
|
isDirty: false
|
|
283
283
|
})),
|
|
284
|
-
setIsDirty: (0,es
|
|
284
|
+
setIsDirty: (0,es/* assign */.f0)((ctx, evt) => ({
|
|
285
285
|
isDirty: true
|
|
286
286
|
})),
|
|
287
|
-
ignoreSeries: (0,es
|
|
287
|
+
ignoreSeries: (0,es/* assign */.f0)((ctx, evt) => ({
|
|
288
288
|
prevIgnoredSeries: [...ctx.ignoredSeries],
|
|
289
289
|
ignoredSeries: [...ctx.ignoredSeries, evt.data.SeriesInstanceUID]
|
|
290
290
|
})),
|
|
291
|
-
ignoreHydrationForSRSeries: (0,es
|
|
291
|
+
ignoreHydrationForSRSeries: (0,es/* assign */.f0)((ctx, evt) => ({
|
|
292
292
|
ignoredSRSeriesForHydration: [...ctx.ignoredSRSeriesForHydration, evt.data.srSeriesInstanceUID]
|
|
293
293
|
})),
|
|
294
|
-
addTrackedSeries: (0,es
|
|
294
|
+
addTrackedSeries: (0,es/* assign */.f0)((ctx, evt) => ({
|
|
295
295
|
prevTrackedSeries: [...ctx.trackedSeries],
|
|
296
296
|
trackedSeries: [...ctx.trackedSeries, evt.data.SeriesInstanceUID]
|
|
297
297
|
})),
|
|
298
|
-
removeTrackedSeries: (0,es
|
|
298
|
+
removeTrackedSeries: (0,es/* assign */.f0)((ctx, evt) => ({
|
|
299
299
|
prevTrackedSeries: ctx.trackedSeries.slice().filter(ser => ser !== evt.SeriesInstanceUID),
|
|
300
300
|
trackedSeries: ctx.trackedSeries.slice().filter(ser => ser !== evt.SeriesInstanceUID)
|
|
301
301
|
}))
|
|
@@ -362,21 +362,21 @@ function promptBeginTracking(_ref, ctx, evt) {
|
|
|
362
362
|
uiViewportDialogService
|
|
363
363
|
} = servicesManager.services;
|
|
364
364
|
const {
|
|
365
|
-
|
|
365
|
+
viewportId,
|
|
366
366
|
StudyInstanceUID,
|
|
367
367
|
SeriesInstanceUID
|
|
368
368
|
} = evt;
|
|
369
369
|
return new Promise(async function (resolve, reject) {
|
|
370
|
-
let promptResult = await _askTrackMeasurements(uiViewportDialogService,
|
|
370
|
+
let promptResult = await _askTrackMeasurements(uiViewportDialogService, viewportId);
|
|
371
371
|
resolve({
|
|
372
372
|
userResponse: promptResult,
|
|
373
373
|
StudyInstanceUID,
|
|
374
374
|
SeriesInstanceUID,
|
|
375
|
-
|
|
375
|
+
viewportId
|
|
376
376
|
});
|
|
377
377
|
});
|
|
378
378
|
}
|
|
379
|
-
function _askTrackMeasurements(uiViewportDialogService,
|
|
379
|
+
function _askTrackMeasurements(uiViewportDialogService, viewportId) {
|
|
380
380
|
return new Promise(function (resolve, reject) {
|
|
381
381
|
const message = 'Track measurements for this series?';
|
|
382
382
|
const actions = [{
|
|
@@ -400,7 +400,7 @@ function _askTrackMeasurements(uiViewportDialogService, viewportIndex) {
|
|
|
400
400
|
resolve(result);
|
|
401
401
|
};
|
|
402
402
|
uiViewportDialogService.show({
|
|
403
|
-
|
|
403
|
+
viewportId,
|
|
404
404
|
id: 'measurement-tracking-prompt-begin-tracking',
|
|
405
405
|
type: 'info',
|
|
406
406
|
message,
|
|
@@ -433,25 +433,25 @@ function promptTrackNewSeries(_ref, ctx, evt) {
|
|
|
433
433
|
UIViewportDialogService
|
|
434
434
|
} = servicesManager.services;
|
|
435
435
|
const {
|
|
436
|
-
|
|
436
|
+
viewportId,
|
|
437
437
|
StudyInstanceUID,
|
|
438
438
|
SeriesInstanceUID
|
|
439
439
|
} = evt;
|
|
440
440
|
return new Promise(async function (resolve, reject) {
|
|
441
|
-
let promptResult = await _askShouldAddMeasurements(UIViewportDialogService,
|
|
441
|
+
let promptResult = await _askShouldAddMeasurements(UIViewportDialogService, viewportId);
|
|
442
442
|
if (promptResult === promptTrackNewSeries_RESPONSE.CREATE_REPORT) {
|
|
443
|
-
promptResult = ctx.isDirty ? await _askSaveDiscardOrCancel(UIViewportDialogService,
|
|
443
|
+
promptResult = ctx.isDirty ? await _askSaveDiscardOrCancel(UIViewportDialogService, viewportId) : promptTrackNewSeries_RESPONSE.SET_STUDY_AND_SERIES;
|
|
444
444
|
}
|
|
445
445
|
resolve({
|
|
446
446
|
userResponse: promptResult,
|
|
447
447
|
StudyInstanceUID,
|
|
448
448
|
SeriesInstanceUID,
|
|
449
|
-
|
|
449
|
+
viewportId,
|
|
450
450
|
isBackupSave: false
|
|
451
451
|
});
|
|
452
452
|
});
|
|
453
453
|
}
|
|
454
|
-
function _askShouldAddMeasurements(uiViewportDialogService,
|
|
454
|
+
function _askShouldAddMeasurements(uiViewportDialogService, viewportId) {
|
|
455
455
|
return new Promise(function (resolve, reject) {
|
|
456
456
|
const message = 'Do you want to add this measurement to the existing report?';
|
|
457
457
|
const actions = [{
|
|
@@ -472,7 +472,7 @@ function _askShouldAddMeasurements(uiViewportDialogService, viewportIndex) {
|
|
|
472
472
|
resolve(result);
|
|
473
473
|
};
|
|
474
474
|
uiViewportDialogService.show({
|
|
475
|
-
|
|
475
|
+
viewportId,
|
|
476
476
|
type: 'info',
|
|
477
477
|
message,
|
|
478
478
|
actions,
|
|
@@ -484,7 +484,7 @@ function _askShouldAddMeasurements(uiViewportDialogService, viewportIndex) {
|
|
|
484
484
|
});
|
|
485
485
|
});
|
|
486
486
|
}
|
|
487
|
-
function _askSaveDiscardOrCancel(UIViewportDialogService,
|
|
487
|
+
function _askSaveDiscardOrCancel(UIViewportDialogService, viewportId) {
|
|
488
488
|
return new Promise(function (resolve, reject) {
|
|
489
489
|
const message = 'You have existing tracked measurements. What would you like to do with your existing tracked measurements?';
|
|
490
490
|
const actions = [{
|
|
@@ -505,7 +505,7 @@ function _askSaveDiscardOrCancel(UIViewportDialogService, viewportIndex) {
|
|
|
505
505
|
resolve(result);
|
|
506
506
|
};
|
|
507
507
|
UIViewportDialogService.show({
|
|
508
|
-
|
|
508
|
+
viewportId,
|
|
509
509
|
type: 'warning',
|
|
510
510
|
message,
|
|
511
511
|
actions,
|
|
@@ -536,25 +536,25 @@ function promptTrackNewStudy(_ref, ctx, evt) {
|
|
|
536
536
|
UIViewportDialogService
|
|
537
537
|
} = servicesManager.services;
|
|
538
538
|
const {
|
|
539
|
-
|
|
539
|
+
viewportId,
|
|
540
540
|
StudyInstanceUID,
|
|
541
541
|
SeriesInstanceUID
|
|
542
542
|
} = evt;
|
|
543
543
|
return new Promise(async function (resolve, reject) {
|
|
544
|
-
let promptResult = await promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService,
|
|
544
|
+
let promptResult = await promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewportId);
|
|
545
545
|
if (promptResult === promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES) {
|
|
546
|
-
promptResult = ctx.isDirty ? await promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService,
|
|
546
|
+
promptResult = ctx.isDirty ? await promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, viewportId) : promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES;
|
|
547
547
|
}
|
|
548
548
|
resolve({
|
|
549
549
|
userResponse: promptResult,
|
|
550
550
|
StudyInstanceUID,
|
|
551
551
|
SeriesInstanceUID,
|
|
552
|
-
|
|
552
|
+
viewportId,
|
|
553
553
|
isBackupSave: false
|
|
554
554
|
});
|
|
555
555
|
});
|
|
556
556
|
}
|
|
557
|
-
function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService,
|
|
557
|
+
function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewportId) {
|
|
558
558
|
return new Promise(function (resolve, reject) {
|
|
559
559
|
const message = 'Track measurements for this series?';
|
|
560
560
|
const actions = [{
|
|
@@ -575,7 +575,7 @@ function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewp
|
|
|
575
575
|
resolve(result);
|
|
576
576
|
};
|
|
577
577
|
UIViewportDialogService.show({
|
|
578
|
-
|
|
578
|
+
viewportId,
|
|
579
579
|
type: 'info',
|
|
580
580
|
message,
|
|
581
581
|
actions,
|
|
@@ -587,7 +587,7 @@ function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewp
|
|
|
587
587
|
});
|
|
588
588
|
});
|
|
589
589
|
}
|
|
590
|
-
function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService,
|
|
590
|
+
function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, viewportId) {
|
|
591
591
|
return new Promise(function (resolve, reject) {
|
|
592
592
|
const message = 'Measurements cannot span across multiple studies. Do you want to save your tracked measurements?';
|
|
593
593
|
const actions = [{
|
|
@@ -608,7 +608,7 @@ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, vie
|
|
|
608
608
|
resolve(result);
|
|
609
609
|
};
|
|
610
610
|
UIViewportDialogService.show({
|
|
611
|
-
|
|
611
|
+
viewportId,
|
|
612
612
|
type: 'warning',
|
|
613
613
|
message,
|
|
614
614
|
actions,
|
|
@@ -621,8 +621,8 @@ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, vie
|
|
|
621
621
|
});
|
|
622
622
|
}
|
|
623
623
|
/* harmony default export */ const TrackedMeasurementsContext_promptTrackNewStudy = (promptTrackNewStudy);
|
|
624
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
625
|
-
var core_src = __webpack_require__(
|
|
624
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
625
|
+
var core_src = __webpack_require__(78695);
|
|
626
626
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/createReportAsync.tsx
|
|
627
627
|
|
|
628
628
|
|
|
@@ -725,17 +725,23 @@ function createReportDialogPrompt(uiDialogService) {
|
|
|
725
725
|
action,
|
|
726
726
|
value
|
|
727
727
|
} = _ref;
|
|
728
|
-
uiDialogService.dismiss({
|
|
729
|
-
id: dialogId
|
|
730
|
-
});
|
|
731
728
|
switch (action.id) {
|
|
732
729
|
case 'save':
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
730
|
+
// Only save if description is not blank otherwise ignore
|
|
731
|
+
if (value.label && value.label.trim() !== '') {
|
|
732
|
+
resolve({
|
|
733
|
+
action: PROMPT_RESPONSES.CREATE_REPORT,
|
|
734
|
+
value: value.label.trim()
|
|
735
|
+
});
|
|
736
|
+
uiDialogService.dismiss({
|
|
737
|
+
id: dialogId
|
|
738
|
+
});
|
|
739
|
+
}
|
|
737
740
|
break;
|
|
738
741
|
case 'cancel':
|
|
742
|
+
uiDialogService.dismiss({
|
|
743
|
+
id: dialogId
|
|
744
|
+
});
|
|
739
745
|
resolve({
|
|
740
746
|
action: PROMPT_RESPONSES.CANCEL,
|
|
741
747
|
value: undefined
|
|
@@ -781,12 +787,12 @@ function createReportDialogPrompt(uiDialogService) {
|
|
|
781
787
|
};
|
|
782
788
|
const onKeyPressHandler = event => {
|
|
783
789
|
if (event.key === 'Enter') {
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
value
|
|
790
|
+
// Trigger form submit
|
|
791
|
+
_handleFormSubmit({
|
|
792
|
+
action: {
|
|
793
|
+
id: 'save'
|
|
794
|
+
},
|
|
795
|
+
value
|
|
790
796
|
});
|
|
791
797
|
}
|
|
792
798
|
};
|
|
@@ -796,7 +802,7 @@ function createReportDialogPrompt(uiDialogService) {
|
|
|
796
802
|
label: "Enter the report name",
|
|
797
803
|
labelClassName: "text-white grow leading-[1.2] text-[14px]",
|
|
798
804
|
autoFocus: true,
|
|
799
|
-
className: "
|
|
805
|
+
className: "border-primary-main grow bg-black",
|
|
800
806
|
type: "text",
|
|
801
807
|
value: value.label,
|
|
802
808
|
onChange: onChangeHandler,
|
|
@@ -832,7 +838,7 @@ function promptSaveReport(_ref, ctx, evt) {
|
|
|
832
838
|
measurementService,
|
|
833
839
|
displaySetService
|
|
834
840
|
} = servicesManager.services;
|
|
835
|
-
const
|
|
841
|
+
const viewportId = evt.viewportId === undefined ? evt.data.viewportId : evt.viewportId;
|
|
836
842
|
const isBackupSave = evt.isBackupSave === undefined ? evt.data.isBackupSave : evt.isBackupSave;
|
|
837
843
|
const StudyInstanceUID = evt?.data?.StudyInstanceUID;
|
|
838
844
|
const SeriesInstanceUID = evt?.data?.SeriesInstanceUID;
|
|
@@ -867,14 +873,14 @@ function promptSaveReport(_ref, ctx, evt) {
|
|
|
867
873
|
createdDisplaySetInstanceUIDs: displaySetInstanceUIDs,
|
|
868
874
|
StudyInstanceUID,
|
|
869
875
|
SeriesInstanceUID,
|
|
870
|
-
|
|
876
|
+
viewportId,
|
|
871
877
|
isBackupSave
|
|
872
878
|
});
|
|
873
879
|
});
|
|
874
880
|
}
|
|
875
881
|
/* harmony default export */ const TrackedMeasurementsContext_promptSaveReport = (promptSaveReport);
|
|
876
882
|
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/index.tsx + 15 modules
|
|
877
|
-
var cornerstone_dicom_sr_src = __webpack_require__(
|
|
883
|
+
var cornerstone_dicom_sr_src = __webpack_require__(42170);
|
|
878
884
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptHydrateStructuredReport.js
|
|
879
885
|
|
|
880
886
|
|
|
@@ -890,19 +896,20 @@ const promptHydrateStructuredReport_RESPONSE = {
|
|
|
890
896
|
function promptHydrateStructuredReport(_ref, ctx, evt) {
|
|
891
897
|
let {
|
|
892
898
|
servicesManager,
|
|
893
|
-
extensionManager
|
|
899
|
+
extensionManager,
|
|
900
|
+
appConfig
|
|
894
901
|
} = _ref;
|
|
895
902
|
const {
|
|
896
903
|
uiViewportDialogService,
|
|
897
904
|
displaySetService
|
|
898
905
|
} = servicesManager.services;
|
|
899
906
|
const {
|
|
900
|
-
|
|
907
|
+
viewportId,
|
|
901
908
|
displaySetInstanceUID
|
|
902
909
|
} = evt;
|
|
903
910
|
const srDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
|
|
904
911
|
return new Promise(async function (resolve, reject) {
|
|
905
|
-
const promptResult = await promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogService,
|
|
912
|
+
const promptResult = await promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogService, viewportId);
|
|
906
913
|
|
|
907
914
|
// Need to do action here... So we can set state...
|
|
908
915
|
let StudyInstanceUID, SeriesInstanceUIDs;
|
|
@@ -910,7 +917,8 @@ function promptHydrateStructuredReport(_ref, ctx, evt) {
|
|
|
910
917
|
console.warn('!! HYDRATING STRUCTURED REPORT');
|
|
911
918
|
const hydrationResult = (0,cornerstone_dicom_sr_src.hydrateStructuredReport)({
|
|
912
919
|
servicesManager,
|
|
913
|
-
extensionManager
|
|
920
|
+
extensionManager,
|
|
921
|
+
appConfig
|
|
914
922
|
}, displaySetInstanceUID);
|
|
915
923
|
StudyInstanceUID = hydrationResult.StudyInstanceUID;
|
|
916
924
|
SeriesInstanceUIDs = hydrationResult.SeriesInstanceUIDs;
|
|
@@ -919,13 +927,13 @@ function promptHydrateStructuredReport(_ref, ctx, evt) {
|
|
|
919
927
|
userResponse: promptResult,
|
|
920
928
|
displaySetInstanceUID: evt.displaySetInstanceUID,
|
|
921
929
|
srSeriesInstanceUID: srDisplaySet.SeriesInstanceUID,
|
|
922
|
-
|
|
930
|
+
viewportId,
|
|
923
931
|
StudyInstanceUID,
|
|
924
932
|
SeriesInstanceUIDs
|
|
925
933
|
});
|
|
926
934
|
});
|
|
927
935
|
}
|
|
928
|
-
function promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogService,
|
|
936
|
+
function promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogService, viewportId) {
|
|
929
937
|
return new Promise(function (resolve, reject) {
|
|
930
938
|
const message = 'Do you want to continue tracking measurements for this study?';
|
|
931
939
|
const actions = [{
|
|
@@ -942,7 +950,7 @@ function promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogServ
|
|
|
942
950
|
resolve(result);
|
|
943
951
|
};
|
|
944
952
|
uiViewportDialogService.show({
|
|
945
|
-
|
|
953
|
+
viewportId,
|
|
946
954
|
type: 'info',
|
|
947
955
|
message,
|
|
948
956
|
actions,
|
|
@@ -966,7 +974,7 @@ function hydrateStructuredReport(_ref, ctx, evt) {
|
|
|
966
974
|
displaySetService
|
|
967
975
|
} = servicesManager.services;
|
|
968
976
|
const {
|
|
969
|
-
|
|
977
|
+
viewportId,
|
|
970
978
|
displaySetInstanceUID
|
|
971
979
|
} = evt;
|
|
972
980
|
const srDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
|
|
@@ -980,13 +988,15 @@ function hydrateStructuredReport(_ref, ctx, evt) {
|
|
|
980
988
|
resolve({
|
|
981
989
|
displaySetInstanceUID: evt.displaySetInstanceUID,
|
|
982
990
|
srSeriesInstanceUID: srDisplaySet.SeriesInstanceUID,
|
|
983
|
-
|
|
991
|
+
viewportId,
|
|
984
992
|
StudyInstanceUID,
|
|
985
993
|
SeriesInstanceUIDs
|
|
986
994
|
});
|
|
987
995
|
});
|
|
988
996
|
}
|
|
989
997
|
/* harmony default export */ const TrackedMeasurementsContext_hydrateStructuredReport = (hydrateStructuredReport);
|
|
998
|
+
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
999
|
+
var state = __webpack_require__(62657);
|
|
990
1000
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx
|
|
991
1001
|
|
|
992
1002
|
|
|
@@ -1000,6 +1010,7 @@ function hydrateStructuredReport(_ref, ctx, evt) {
|
|
|
1000
1010
|
|
|
1001
1011
|
|
|
1002
1012
|
|
|
1013
|
+
|
|
1003
1014
|
const TrackedMeasurementsContext = /*#__PURE__*/react.createContext();
|
|
1004
1015
|
TrackedMeasurementsContext.displayName = 'TrackedMeasurementsContext';
|
|
1005
1016
|
const useTrackedMeasurements = () => (0,react.useContext)(TrackedMeasurementsContext);
|
|
@@ -1020,9 +1031,10 @@ _ref2 // Component props
|
|
|
1020
1031
|
let {
|
|
1021
1032
|
children
|
|
1022
1033
|
} = _ref2;
|
|
1034
|
+
const [appConfig] = (0,state/* useAppConfig */.M)();
|
|
1023
1035
|
const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.O_)();
|
|
1024
1036
|
const {
|
|
1025
|
-
|
|
1037
|
+
activeViewportId,
|
|
1026
1038
|
viewports
|
|
1027
1039
|
} = viewportGrid;
|
|
1028
1040
|
const {
|
|
@@ -1038,7 +1050,7 @@ _ref2 // Component props
|
|
|
1038
1050
|
} = ctx;
|
|
1039
1051
|
const measurements = measurementService.getMeasurements();
|
|
1040
1052
|
const trackedMeasurements = measurements.filter(m => trackedStudy === m.referenceStudyUID && trackedSeries.includes(m.referenceSeriesUID));
|
|
1041
|
-
console.log('jumping to measurement reset viewport', viewportGrid.
|
|
1053
|
+
console.log('jumping to measurement reset viewport', viewportGrid.activeViewportId, trackedMeasurements[0]);
|
|
1042
1054
|
const referencedDisplaySetUID = trackedMeasurements[0].displaySetInstanceUID;
|
|
1043
1055
|
const referencedDisplaySet = displaySetService.getDisplaySetByUID(referencedDisplaySetUID);
|
|
1044
1056
|
const referencedImages = referencedDisplaySet.images;
|
|
@@ -1058,7 +1070,7 @@ _ref2 // Component props
|
|
|
1058
1070
|
}
|
|
1059
1071
|
}
|
|
1060
1072
|
viewportGridService.setDisplaySetsForViewport({
|
|
1061
|
-
|
|
1073
|
+
viewportId: viewportGrid.activeViewportId,
|
|
1062
1074
|
displaySetInstanceUIDs: [referencedDisplaySetUID],
|
|
1063
1075
|
viewportOptions: {
|
|
1064
1076
|
initialImageOptions: {
|
|
@@ -1071,7 +1083,7 @@ _ref2 // Component props
|
|
|
1071
1083
|
if (evt.data.createdDisplaySetInstanceUIDs.length > 0) {
|
|
1072
1084
|
const StructuredReportDisplaySetInstanceUID = evt.data.createdDisplaySetInstanceUIDs[0].displaySetInstanceUID;
|
|
1073
1085
|
viewportGridService.setDisplaySetsForViewport({
|
|
1074
|
-
|
|
1086
|
+
viewportId: evt.data.viewportId,
|
|
1075
1087
|
displaySetInstanceUIDs: [StructuredReportDisplaySetInstanceUID]
|
|
1076
1088
|
});
|
|
1077
1089
|
}
|
|
@@ -1095,28 +1107,34 @@ _ref2 // Component props
|
|
|
1095
1107
|
machineOptions.services = Object.assign({}, machineOptions.services, {
|
|
1096
1108
|
promptBeginTracking: TrackedMeasurementsContext_promptBeginTracking.bind(null, {
|
|
1097
1109
|
servicesManager,
|
|
1098
|
-
extensionManager
|
|
1110
|
+
extensionManager,
|
|
1111
|
+
appConfig
|
|
1099
1112
|
}),
|
|
1100
1113
|
promptTrackNewSeries: TrackedMeasurementsContext_promptTrackNewSeries.bind(null, {
|
|
1101
1114
|
servicesManager,
|
|
1102
|
-
extensionManager
|
|
1115
|
+
extensionManager,
|
|
1116
|
+
appConfig
|
|
1103
1117
|
}),
|
|
1104
1118
|
promptTrackNewStudy: TrackedMeasurementsContext_promptTrackNewStudy.bind(null, {
|
|
1105
1119
|
servicesManager,
|
|
1106
|
-
extensionManager
|
|
1120
|
+
extensionManager,
|
|
1121
|
+
appConfig
|
|
1107
1122
|
}),
|
|
1108
1123
|
promptSaveReport: TrackedMeasurementsContext_promptSaveReport.bind(null, {
|
|
1109
1124
|
servicesManager,
|
|
1110
1125
|
commandsManager,
|
|
1111
|
-
extensionManager
|
|
1126
|
+
extensionManager,
|
|
1127
|
+
appConfig
|
|
1112
1128
|
}),
|
|
1113
1129
|
promptHydrateStructuredReport: TrackedMeasurementsContext_promptHydrateStructuredReport.bind(null, {
|
|
1114
1130
|
servicesManager,
|
|
1115
|
-
extensionManager
|
|
1131
|
+
extensionManager,
|
|
1132
|
+
appConfig
|
|
1116
1133
|
}),
|
|
1117
1134
|
hydrateStructuredReport: TrackedMeasurementsContext_hydrateStructuredReport.bind(null, {
|
|
1118
1135
|
servicesManager,
|
|
1119
|
-
extensionManager
|
|
1136
|
+
extensionManager,
|
|
1137
|
+
appConfig
|
|
1120
1138
|
})
|
|
1121
1139
|
});
|
|
1122
1140
|
|
|
@@ -1129,13 +1147,13 @@ _ref2 // Component props
|
|
|
1129
1147
|
// - Fix viewport border resize
|
|
1130
1148
|
// - created/destroyed hooks for extensions (cornerstone measurement subscriptions in it's `init`)
|
|
1131
1149
|
|
|
1132
|
-
const measurementTrackingMachine = (0,es
|
|
1133
|
-
const [trackedMeasurements, sendTrackedMeasurementsEvent
|
|
1150
|
+
const measurementTrackingMachine = (0,es/* Machine */.J)(machineConfiguration, machineOptions);
|
|
1151
|
+
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,react_es/* useMachine */.eO)(measurementTrackingMachine);
|
|
1134
1152
|
|
|
1135
1153
|
// ~~ Listen for changes to ViewportGrid for potential SRs hung in panes when idle
|
|
1136
1154
|
(0,react.useEffect)(() => {
|
|
1137
|
-
if (viewports.
|
|
1138
|
-
const activeViewport = viewports
|
|
1155
|
+
if (viewports.size > 0) {
|
|
1156
|
+
const activeViewport = viewports.get(activeViewportId);
|
|
1139
1157
|
if (!activeViewport || !activeViewport?.displaySetInstanceUIDs?.length) {
|
|
1140
1158
|
return;
|
|
1141
1159
|
}
|
|
@@ -1174,11 +1192,11 @@ _ref2 // Component props
|
|
|
1174
1192
|
sendTrackedMeasurementsEvent('PROMPT_HYDRATE_SR', {
|
|
1175
1193
|
displaySetInstanceUID: displaySet.displaySetInstanceUID,
|
|
1176
1194
|
SeriesInstanceUID: displaySet.SeriesInstanceUID,
|
|
1177
|
-
|
|
1195
|
+
viewportId: activeViewportId
|
|
1178
1196
|
});
|
|
1179
1197
|
}
|
|
1180
1198
|
}
|
|
1181
|
-
}, [
|
|
1199
|
+
}, [activeViewportId, sendTrackedMeasurementsEvent, servicesManager.services, viewports]);
|
|
1182
1200
|
return /*#__PURE__*/react.createElement(TrackedMeasurementsContext.Provider, {
|
|
1183
1201
|
value: [trackedMeasurements, sendTrackedMeasurementsEvent]
|
|
1184
1202
|
}, children);
|
|
@@ -1187,7 +1205,8 @@ TrackedMeasurementsContextProvider.propTypes = {
|
|
|
1187
1205
|
children: prop_types_default().oneOf([(prop_types_default()).func, (prop_types_default()).node]),
|
|
1188
1206
|
servicesManager: (prop_types_default()).object.isRequired,
|
|
1189
1207
|
commandsManager: (prop_types_default()).object.isRequired,
|
|
1190
|
-
extensionManager: (prop_types_default()).object.isRequired
|
|
1208
|
+
extensionManager: (prop_types_default()).object.isRequired,
|
|
1209
|
+
appConfig: (prop_types_default()).object
|
|
1191
1210
|
};
|
|
1192
1211
|
|
|
1193
1212
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/index.js
|
|
@@ -1218,7 +1237,7 @@ function getContextModule(_ref) {
|
|
|
1218
1237
|
|
|
1219
1238
|
/***/ }),
|
|
1220
1239
|
|
|
1221
|
-
/***/
|
|
1240
|
+
/***/ 28030:
|
|
1222
1241
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1223
1242
|
|
|
1224
1243
|
// ESM COMPAT FLAG
|
|
@@ -1230,22 +1249,28 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
1230
1249
|
});
|
|
1231
1250
|
|
|
1232
1251
|
// EXTERNAL MODULE: ../../../extensions/measurement-tracking/src/getContextModule.tsx + 14 modules
|
|
1233
|
-
var getContextModule = __webpack_require__(
|
|
1252
|
+
var getContextModule = __webpack_require__(1053);
|
|
1234
1253
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
1235
|
-
var react = __webpack_require__(
|
|
1254
|
+
var react = __webpack_require__(43001);
|
|
1236
1255
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
1237
|
-
var prop_types = __webpack_require__(
|
|
1256
|
+
var prop_types = __webpack_require__(3827);
|
|
1238
1257
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
1239
|
-
// EXTERNAL MODULE:
|
|
1240
|
-
var
|
|
1241
|
-
// EXTERNAL MODULE:
|
|
1242
|
-
var
|
|
1258
|
+
// EXTERNAL MODULE: ../node_modules/react-router-dom/dist/index.js
|
|
1259
|
+
var dist = __webpack_require__(62474);
|
|
1260
|
+
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
1261
|
+
var es = __webpack_require__(69190);
|
|
1262
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
1263
|
+
var src = __webpack_require__(78695);
|
|
1264
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
|
|
1265
|
+
var ui_src = __webpack_require__(88344);
|
|
1243
1266
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx
|
|
1244
1267
|
|
|
1245
1268
|
|
|
1246
1269
|
|
|
1247
1270
|
|
|
1248
1271
|
|
|
1272
|
+
|
|
1273
|
+
|
|
1249
1274
|
const {
|
|
1250
1275
|
formatDate
|
|
1251
1276
|
} = src.utils;
|
|
@@ -1263,12 +1288,15 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1263
1288
|
dataSource
|
|
1264
1289
|
} = _ref;
|
|
1265
1290
|
const {
|
|
1266
|
-
measurementService,
|
|
1267
1291
|
displaySetService,
|
|
1268
1292
|
uiDialogService,
|
|
1269
1293
|
hangingProtocolService,
|
|
1270
1294
|
uiNotificationService
|
|
1271
1295
|
} = servicesManager.services;
|
|
1296
|
+
const navigate = (0,dist/* useNavigate */.s0)();
|
|
1297
|
+
const {
|
|
1298
|
+
t
|
|
1299
|
+
} = (0,es/* useTranslation */.$G)('Common');
|
|
1272
1300
|
|
|
1273
1301
|
// Normally you nest the components so the tree isn't so deep, and the data
|
|
1274
1302
|
// doesn't have to have such an intense shape. This works well enough for now.
|
|
@@ -1277,10 +1305,8 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1277
1305
|
StudyInstanceUIDs
|
|
1278
1306
|
} = (0,ui_src/* useImageViewer */.zG)();
|
|
1279
1307
|
const [{
|
|
1280
|
-
|
|
1281
|
-
viewports
|
|
1282
|
-
numCols,
|
|
1283
|
-
numRows
|
|
1308
|
+
activeViewportId,
|
|
1309
|
+
viewports
|
|
1284
1310
|
}, viewportGridService] = (0,ui_src/* useViewportGrid */.O_)();
|
|
1285
1311
|
const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,getContextModule/* useTrackedMeasurements */.I)();
|
|
1286
1312
|
const [activeTabName, setActiveTabName] = (0,react.useState)('primary');
|
|
@@ -1291,9 +1317,9 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1291
1317
|
const [jumpToDisplaySet, setJumpToDisplaySet] = (0,react.useState)(null);
|
|
1292
1318
|
const onDoubleClickThumbnailHandler = displaySetInstanceUID => {
|
|
1293
1319
|
let updatedViewports = [];
|
|
1294
|
-
const
|
|
1320
|
+
const viewportId = activeViewportId;
|
|
1295
1321
|
try {
|
|
1296
|
-
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(
|
|
1322
|
+
updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportId, displaySetInstanceUID);
|
|
1297
1323
|
} catch (error) {
|
|
1298
1324
|
console.warn(error);
|
|
1299
1325
|
uiNotificationService.show({
|
|
@@ -1305,37 +1331,7 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1305
1331
|
}
|
|
1306
1332
|
viewportGridService.setDisplaySetsForViewports(updatedViewports);
|
|
1307
1333
|
};
|
|
1308
|
-
const activeViewportDisplaySetInstanceUIDs = viewports
|
|
1309
|
-
(0,react.useEffect)(() => {
|
|
1310
|
-
const added = measurementService.EVENTS.MEASUREMENT_ADDED;
|
|
1311
|
-
const addedRaw = measurementService.EVENTS.RAW_MEASUREMENT_ADDED;
|
|
1312
|
-
const subscriptions = [];
|
|
1313
|
-
[added, addedRaw].forEach(evt => {
|
|
1314
|
-
subscriptions.push(measurementService.subscribe(evt, _ref2 => {
|
|
1315
|
-
let {
|
|
1316
|
-
source,
|
|
1317
|
-
measurement
|
|
1318
|
-
} = _ref2;
|
|
1319
|
-
const {
|
|
1320
|
-
referenceSeriesUID: SeriesInstanceUID,
|
|
1321
|
-
referenceStudyUID: StudyInstanceUID
|
|
1322
|
-
} = measurement;
|
|
1323
|
-
sendTrackedMeasurementsEvent('SET_DIRTY', {
|
|
1324
|
-
SeriesInstanceUID
|
|
1325
|
-
});
|
|
1326
|
-
sendTrackedMeasurementsEvent('TRACK_SERIES', {
|
|
1327
|
-
viewportIndex: activeViewportIndex,
|
|
1328
|
-
StudyInstanceUID,
|
|
1329
|
-
SeriesInstanceUID
|
|
1330
|
-
});
|
|
1331
|
-
}).unsubscribe);
|
|
1332
|
-
});
|
|
1333
|
-
return () => {
|
|
1334
|
-
subscriptions.forEach(unsub => {
|
|
1335
|
-
unsub();
|
|
1336
|
-
});
|
|
1337
|
-
};
|
|
1338
|
-
}, [measurementService, activeViewportIndex, sendTrackedMeasurementsEvent]);
|
|
1334
|
+
const activeViewportDisplaySetInstanceUIDs = viewports.get(activeViewportId)?.displaySetInstanceUIDs;
|
|
1339
1335
|
const {
|
|
1340
1336
|
trackedSeries
|
|
1341
1337
|
} = trackedMeasurements.context;
|
|
@@ -1348,6 +1344,10 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1348
1344
|
const qidoForStudyUID = await dataSource.query.studies.search({
|
|
1349
1345
|
studyInstanceUid: StudyInstanceUID
|
|
1350
1346
|
});
|
|
1347
|
+
if (!qidoForStudyUID?.length) {
|
|
1348
|
+
navigate('/notfoundstudy', '_self');
|
|
1349
|
+
throw new Error('Invalid study URL');
|
|
1350
|
+
}
|
|
1351
1351
|
let qidoStudiesForPatient = qidoForStudyUID;
|
|
1352
1352
|
|
|
1353
1353
|
// try to fetch the prior studies based on the patientID if the
|
|
@@ -1361,7 +1361,7 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1361
1361
|
const actuallyMappedStudies = mappedStudies.map(qidoStudy => {
|
|
1362
1362
|
return {
|
|
1363
1363
|
studyInstanceUid: qidoStudy.StudyInstanceUID,
|
|
1364
|
-
date: formatDate(qidoStudy.StudyDate),
|
|
1364
|
+
date: formatDate(qidoStudy.StudyDate) || t('NoStudyDate'),
|
|
1365
1365
|
description: qidoStudy.StudyDescription,
|
|
1366
1366
|
modalities: qidoStudy.ModalitiesInStudy,
|
|
1367
1367
|
numInstances: qidoStudy.NumInstances
|
|
@@ -1394,7 +1394,7 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1394
1394
|
const imageId = imageIds[Math.floor(imageIds.length / 2)];
|
|
1395
1395
|
|
|
1396
1396
|
// TODO: Is it okay that imageIds are not returned here for SR displaysets?
|
|
1397
|
-
if (imageId) {
|
|
1397
|
+
if (imageId && !displaySet?.unsupported) {
|
|
1398
1398
|
// When the image arrives, render it and store the result in the thumbnailImgSrcMap
|
|
1399
1399
|
newImageSrcEntry[dSet.displaySetInstanceUID] = await getImageSrc(imageId);
|
|
1400
1400
|
setThumbnailImageSrcMap(prevState => {
|
|
@@ -1430,22 +1430,24 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1430
1430
|
const displaySetInstanceUID = dSet.displaySetInstanceUID;
|
|
1431
1431
|
const newImageSrcEntry = {};
|
|
1432
1432
|
const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
|
|
1433
|
-
if (
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1433
|
+
if (!displaySet?.unsupported) {
|
|
1434
|
+
if (options.madeInClient) {
|
|
1435
|
+
setJumpToDisplaySet(displaySetInstanceUID);
|
|
1436
|
+
}
|
|
1437
|
+
const imageIds = dataSource.getImageIdsForDisplaySet(displaySet);
|
|
1438
|
+
const imageId = imageIds[Math.floor(imageIds.length / 2)];
|
|
1439
|
+
|
|
1440
|
+
// TODO: Is it okay that imageIds are not returned here for SR displaysets?
|
|
1441
|
+
if (imageId) {
|
|
1442
|
+
// When the image arrives, render it and store the result in the thumbnailImgSrcMap
|
|
1443
|
+
newImageSrcEntry[displaySetInstanceUID] = await getImageSrc(imageId);
|
|
1444
|
+
setThumbnailImageSrcMap(prevState => {
|
|
1445
|
+
return {
|
|
1446
|
+
...prevState,
|
|
1447
|
+
...newImageSrcEntry
|
|
1448
|
+
};
|
|
1449
|
+
});
|
|
1450
|
+
}
|
|
1449
1451
|
}
|
|
1450
1452
|
});
|
|
1451
1453
|
});
|
|
@@ -1456,9 +1458,14 @@ function PanelStudyBrowserTracking(_ref) {
|
|
|
1456
1458
|
const mappedDisplaySets = _mapDisplaySets(changedDisplaySets, thumbnailImageSrcMap, trackedSeries, viewports, viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificationService);
|
|
1457
1459
|
setDisplaySets(mappedDisplaySets);
|
|
1458
1460
|
});
|
|
1461
|
+
const SubscriptionDisplaySetMetaDataInvalidated = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED, () => {
|
|
1462
|
+
const mappedDisplaySets = _mapDisplaySets(displaySetService.getActiveDisplaySets(), thumbnailImageSrcMap, trackedSeries, viewports, viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificationService);
|
|
1463
|
+
setDisplaySets(mappedDisplaySets);
|
|
1464
|
+
});
|
|
1459
1465
|
return () => {
|
|
1460
1466
|
SubscriptionDisplaySetsAdded.unsubscribe();
|
|
1461
1467
|
SubscriptionDisplaySetsChanged.unsubscribe();
|
|
1468
|
+
SubscriptionDisplaySetMetaDataInvalidated.unsubscribe();
|
|
1462
1469
|
};
|
|
1463
1470
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1464
1471
|
}, [displaySetService, dataSource, getImageSrc, thumbnailImageSrcMap, trackedSeries, viewports]);
|
|
@@ -1571,14 +1578,16 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1571
1578
|
const thumbnailNoImageDisplaySets = [];
|
|
1572
1579
|
displaySets.filter(ds => !ds.excludeFromThumbnailBrowser).forEach(ds => {
|
|
1573
1580
|
const imageSrc = thumbnailImageSrcMap[ds.displaySetInstanceUID];
|
|
1574
|
-
const componentType = _getComponentType(ds
|
|
1581
|
+
const componentType = _getComponentType(ds);
|
|
1575
1582
|
const numPanes = viewportGridService.getNumViewportPanes();
|
|
1576
|
-
const viewportIdentificator =
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1583
|
+
const viewportIdentificator = [];
|
|
1584
|
+
if (numPanes !== 1) {
|
|
1585
|
+
viewports.forEach(viewportData => {
|
|
1586
|
+
if (viewportData?.displaySetInstanceUIDs?.includes(ds.displaySetInstanceUID)) {
|
|
1587
|
+
viewportIdentificator.push(viewportData.viewportLabel);
|
|
1588
|
+
}
|
|
1589
|
+
});
|
|
1590
|
+
}
|
|
1582
1591
|
const array = componentType === 'thumbnailTracked' ? thumbnailDisplaySets : thumbnailNoImageDisplaySets;
|
|
1583
1592
|
const {
|
|
1584
1593
|
displaySetInstanceUID
|
|
@@ -1591,6 +1600,7 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1591
1600
|
seriesDate: formatDate(ds.SeriesDate),
|
|
1592
1601
|
numInstances: ds.numImageFrames,
|
|
1593
1602
|
countIcon: ds.countIcon,
|
|
1603
|
+
messages: ds.messages,
|
|
1594
1604
|
StudyInstanceUID: ds.StudyInstanceUID,
|
|
1595
1605
|
componentType,
|
|
1596
1606
|
imageSrc,
|
|
@@ -1601,11 +1611,12 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1601
1611
|
},
|
|
1602
1612
|
|
|
1603
1613
|
isTracked: trackedSeriesInstanceUIDs.includes(ds.SeriesInstanceUID),
|
|
1614
|
+
isHydratedForDerivedDisplaySet: ds.isHydrated,
|
|
1604
1615
|
viewportIdentificator
|
|
1605
1616
|
};
|
|
1606
1617
|
if (componentType === 'thumbnailNoImage') {
|
|
1607
1618
|
if (dataSource.reject && dataSource.reject.series) {
|
|
1608
|
-
thumbnailProps.canReject =
|
|
1619
|
+
thumbnailProps.canReject = !ds?.unsupported;
|
|
1609
1620
|
thumbnailProps.onReject = () => {
|
|
1610
1621
|
uiDialogService.create({
|
|
1611
1622
|
id: 'ds-reject-sr',
|
|
@@ -1616,7 +1627,7 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1616
1627
|
contentProps: {
|
|
1617
1628
|
title: 'Delete Report',
|
|
1618
1629
|
body: () => /*#__PURE__*/react.createElement("div", {
|
|
1619
|
-
className: "p-4 text-white
|
|
1630
|
+
className: "bg-primary-dark p-4 text-white"
|
|
1620
1631
|
}, /*#__PURE__*/react.createElement("p", null, "Are you sure you want to delete this report?"), /*#__PURE__*/react.createElement("p", null, "This action cannot be undone.")),
|
|
1621
1632
|
actions: [{
|
|
1622
1633
|
id: 'cancel',
|
|
@@ -1635,10 +1646,10 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1635
1646
|
const yesButton = document.querySelector('.reject-yes-button');
|
|
1636
1647
|
yesButton.focus();
|
|
1637
1648
|
},
|
|
1638
|
-
onSubmit: async
|
|
1649
|
+
onSubmit: async _ref2 => {
|
|
1639
1650
|
let {
|
|
1640
1651
|
action
|
|
1641
|
-
} =
|
|
1652
|
+
} = _ref2;
|
|
1642
1653
|
switch (action.id) {
|
|
1643
1654
|
case 'yes':
|
|
1644
1655
|
try {
|
|
@@ -1682,8 +1693,8 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1682
1693
|
return [...thumbnailDisplaySets, ...thumbnailNoImageDisplaySets];
|
|
1683
1694
|
}
|
|
1684
1695
|
const thumbnailNoImageModalities = ['SR', 'SEG', 'SM', 'RTSTRUCT', 'RTPLAN', 'RTDOSE', 'DOC', 'OT'];
|
|
1685
|
-
function _getComponentType(
|
|
1686
|
-
if (thumbnailNoImageModalities.includes(Modality)) {
|
|
1696
|
+
function _getComponentType(ds) {
|
|
1697
|
+
if (thumbnailNoImageModalities.includes(ds.Modality) || ds?.unsupported) {
|
|
1687
1698
|
return 'thumbnailNoImage';
|
|
1688
1699
|
}
|
|
1689
1700
|
return 'thumbnailTracked';
|
|
@@ -1880,10 +1891,8 @@ WrappedPanelStudyBrowserTracking.propTypes = {
|
|
|
1880
1891
|
servicesManager: (prop_types_default()).object.isRequired
|
|
1881
1892
|
};
|
|
1882
1893
|
/* harmony default export */ const panels_PanelStudyBrowserTracking = (WrappedPanelStudyBrowserTracking);
|
|
1883
|
-
// EXTERNAL MODULE: ./hooks/index.js +
|
|
1884
|
-
var hooks = __webpack_require__(
|
|
1885
|
-
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
1886
|
-
var es = __webpack_require__(21572);
|
|
1894
|
+
// EXTERNAL MODULE: ./hooks/index.js + 1 modules
|
|
1895
|
+
var hooks = __webpack_require__(10800);
|
|
1887
1896
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/ActionButtons.tsx
|
|
1888
1897
|
|
|
1889
1898
|
|
|
@@ -1923,7 +1932,7 @@ ActionButtons.defaultProps = {
|
|
|
1923
1932
|
};
|
|
1924
1933
|
/* harmony default export */ const PanelMeasurementTableTracking_ActionButtons = (ActionButtons);
|
|
1925
1934
|
// EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
|
|
1926
|
-
var lodash_debounce = __webpack_require__(
|
|
1935
|
+
var lodash_debounce = __webpack_require__(8324);
|
|
1927
1936
|
var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
|
|
1928
1937
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx
|
|
1929
1938
|
|
|
@@ -1955,9 +1964,9 @@ function PanelMeasurementTableTracking(_ref) {
|
|
|
1955
1964
|
servicesManager,
|
|
1956
1965
|
extensionManager
|
|
1957
1966
|
} = _ref;
|
|
1958
|
-
const [viewportGrid
|
|
1967
|
+
const [viewportGrid] = (0,ui_src/* useViewportGrid */.O_)();
|
|
1959
1968
|
const [measurementChangeTimestamp, setMeasurementsUpdated] = (0,react.useState)(Date.now().toString());
|
|
1960
|
-
const debouncedMeasurementChangeTimestamp = (0,hooks/* useDebounce */.
|
|
1969
|
+
const debouncedMeasurementChangeTimestamp = (0,hooks/* useDebounce */.N)(measurementChangeTimestamp, 200);
|
|
1961
1970
|
const {
|
|
1962
1971
|
measurementService,
|
|
1963
1972
|
uiDialogService,
|
|
@@ -2051,7 +2060,7 @@ function PanelMeasurementTableTracking(_ref) {
|
|
|
2051
2060
|
uid,
|
|
2052
2061
|
isActive
|
|
2053
2062
|
} = _ref2;
|
|
2054
|
-
measurementService.jumpToMeasurement(viewportGrid.
|
|
2063
|
+
measurementService.jumpToMeasurement(viewportGrid.activeViewportId, uid);
|
|
2055
2064
|
onMeasurementItemClickHandler({
|
|
2056
2065
|
uid,
|
|
2057
2066
|
isActive
|
|
@@ -2124,7 +2133,7 @@ function PanelMeasurementTableTracking(_ref) {
|
|
|
2124
2133
|
labelClassName: "text-white grow text-[14px] leading-[1.2]",
|
|
2125
2134
|
autoFocus: true,
|
|
2126
2135
|
id: "annotation",
|
|
2127
|
-
className: "
|
|
2136
|
+
className: "border-primary-main bg-black",
|
|
2128
2137
|
type: "text",
|
|
2129
2138
|
value: value.label,
|
|
2130
2139
|
onChange: onChangeHandler,
|
|
@@ -2160,7 +2169,7 @@ function PanelMeasurementTableTracking(_ref) {
|
|
|
2160
2169
|
const displayMeasurementsWithoutFindings = displayMeasurements.filter(dm => dm.measurementType !== measurementService.VALUE_TYPES.POINT);
|
|
2161
2170
|
const additionalFindings = displayMeasurements.filter(dm => dm.measurementType === measurementService.VALUE_TYPES.POINT);
|
|
2162
2171
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
2163
|
-
className: "
|
|
2172
|
+
className: "invisible-scrollbar overflow-y-auto overflow-x-hidden",
|
|
2164
2173
|
ref: measurementsPanelRef,
|
|
2165
2174
|
"data-cy": 'trackedMeasurements-panel'
|
|
2166
2175
|
}, displayStudySummary.key && /*#__PURE__*/react.createElement(ui_src/* StudySummary */.YL, {
|
|
@@ -2185,7 +2194,7 @@ function PanelMeasurementTableTracking(_ref) {
|
|
|
2185
2194
|
onExportClick: exportReport,
|
|
2186
2195
|
onCreateReportClick: () => {
|
|
2187
2196
|
sendTrackedMeasurementsEvent('SAVE_REPORT', {
|
|
2188
|
-
|
|
2197
|
+
viewportId: viewportGrid.activeViewportId,
|
|
2189
2198
|
isBackupSave: true
|
|
2190
2199
|
});
|
|
2191
2200
|
},
|
|
@@ -2234,7 +2243,9 @@ function _mapMeasurementToDisplay(measurement, types, displaySetService) {
|
|
|
2234
2243
|
if (findingSites) {
|
|
2235
2244
|
const siteText = [];
|
|
2236
2245
|
findingSites.forEach(site => {
|
|
2237
|
-
if (site?.text !== label)
|
|
2246
|
+
if (site?.text !== label) {
|
|
2247
|
+
siteText.push(site.text);
|
|
2248
|
+
}
|
|
2238
2249
|
});
|
|
2239
2250
|
displayText = [...siteText, ...displayText];
|
|
2240
2251
|
}
|
|
@@ -2298,7 +2309,7 @@ function getPanelModule(_ref) {
|
|
|
2298
2309
|
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); }
|
|
2299
2310
|
|
|
2300
2311
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
2301
|
-
return __webpack_require__.e(/* import() */
|
|
2312
|
+
return __webpack_require__.e(/* import() */ 822).then(__webpack_require__.bind(__webpack_require__, 86822));
|
|
2302
2313
|
});
|
|
2303
2314
|
const OHIFCornerstoneViewport = props => {
|
|
2304
2315
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|