@ohif/app 3.7.0-beta.9 → 3.7.0-beta.91

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.
Files changed (66) hide show
  1. package/dist/{917.bundle.0edb40e9d9467dd3a189.js → 12.bundle.e8d2ae45df74384fd980.js} +6 -6
  2. package/dist/{295.bundle.957b1159fec14b9199a1.js → 125.bundle.253395f320b72180da63.js} +6 -6
  3. package/dist/{351.bundle.0742237651aef9694a65.js → 181.bundle.73fc96c6b3ab1fabedc8.js} +226 -204
  4. package/dist/{351.css → 181.css} +1 -1
  5. package/dist/{744.bundle.c459c690581bc8a522d8.js → 19.bundle.839e1ef2a3468da3ae6e.js} +240 -375
  6. package/dist/{606.bundle.5d876f5f3dd8287f0a28.js → 202.bundle.96bbb4547a346fe3921f.js} +1420 -750
  7. package/dist/{926.bundle.dbc9d0e591cb9217fda2.js → 220.bundle.f7e1c96c94245e70f2be.js} +990 -400
  8. package/dist/221.bundle.39ad5abb775af5702ddb.js +1723 -0
  9. package/dist/221.css +2 -0
  10. package/dist/{664.bundle.09abae984223969d1bde.js → 23.bundle.e008ad788170f2ed5569.js} +5 -6
  11. package/dist/{976.bundle.3f8bfb620791f4508420.js → 236.bundle.a24efa76d228c38e56d0.js} +88 -104
  12. package/dist/{55.bundle.550a823e75eb608e8d5e.js → 250.bundle.4bebed43526c7e06344f.js} +52 -36
  13. package/dist/{973.bundle.5aa91607481865ead93f.js → 281.bundle.b50f5766fb3f79b2ed9d.js} +18 -14
  14. package/dist/{82.bundle.978be6f7595202cd342b.js → 342.bundle.40cf206d7cddf20933eb.js} +1765 -476
  15. package/dist/{404.bundle.83acdec604ed84f4b772.js → 359.bundle.b13a62377d68750cbf34.js} +46 -131
  16. package/dist/{192.bundle.655fc9c5aeff41110aa9.js → 370.bundle.f25928b95a42ac10c7a7.js} +113 -99
  17. package/dist/{790.bundle.08e37fd3b64af8dd8e78.js → 410.bundle.cc5008512de45d69e1cb.js} +11 -9
  18. package/dist/{151.bundle.31ea35044218837bf73f.js → 417.bundle.af0a207c29b109f84159.js} +49 -17
  19. package/dist/{569.bundle.c8e771a8d28e237b32be.js → 451.bundle.1c714bfb8b66d3a5adfb.js} +86 -106
  20. package/dist/{581.bundle.dc6197189f7c88c27d4c.js → 471.bundle.4aaec34d87b0c93687c1.js} +78 -99
  21. package/dist/{199.bundle.251f86c6e2eee85c49a5.js → 506.bundle.817e9b84a97639aa147d.js} +11 -9
  22. package/dist/{531.bundle.2a82fb1d69e5b57cc72b.js → 530.bundle.a03b6f942ace3e1baa1e.js} +726 -447
  23. package/dist/579.css +1 -0
  24. package/dist/{935.bundle.deeffff0e4f7b528e3c3.js → 604.bundle.a51f83e64004bca5f497.js} +2 -3
  25. package/dist/613.bundle.37227666b898dfdfe9c1.js +532 -0
  26. package/dist/{984.bundle.0c8b7d8388a662ad5ebc.js → 663.bundle.73495b93aa8cb540241c.js} +68 -38
  27. package/dist/{205.bundle.b5a473c200dcf2bbcdb4.js → 686.bundle.dccef1f36e4bc79bcc48.js} +6 -6
  28. package/dist/{50.bundle.bec52570fe00c2ccced8.js → 687.bundle.3d415b0f43c3e19ef6ef.js} +218 -9
  29. package/dist/{331.bundle.bd0c13931a21d53086c9.js → 743.bundle.4bfe6e562ffb2c22708f.js} +26281 -21326
  30. package/dist/{728.bundle.d13856835357400fef82.js → 774.bundle.7528cba56a1407357144.js} +95 -64
  31. package/dist/{381.bundle.0905e683605fcbc0895f.js → 775.bundle.2285e7e0e67878948c0d.js} +16 -16
  32. package/dist/{283.bundle.b43e001c27e02b0199aa.js → 782.bundle.4bf97e067cf8067f2239.js} +117 -67
  33. package/dist/{642.bundle.1ab1e9ea67caeaedb189.js → 814.bundle.9d5edb8094787e02f22f.js} +6 -6
  34. package/dist/{799.bundle.758558e64147e5aad612.js → 822.bundle.00de6455c18be0307b41.js} +81 -34
  35. package/dist/831.bundle.83658f62fcc769043605.js +16700 -0
  36. package/dist/{707.bundle.9622c314b0ea3488d69a.js → 877.bundle.b83c182be6ee497d2df7.js} +1022 -708
  37. package/dist/{953.bundle.3b0189ebc11cf0946f18.js → 886.bundle.7324d84913daffb6a4c4.js} +34 -29
  38. package/dist/945.min.worker.js +1 -1
  39. package/dist/945.min.worker.js.map +1 -1
  40. package/dist/{270.bundle.4564621556b0f963a004.js → 957.bundle.8c09a01840ab8aa32734.js} +7093 -987
  41. package/dist/{208.bundle.05451122c341d80d3c22.js → 99.bundle.e6844ea7f331fd2ae35a.js} +85 -104
  42. package/dist/_redirects +1 -1
  43. package/dist/app-config.js +35 -17
  44. package/dist/{app.bundle.d2ebd2fcc8b88864ebeb.js → app.bundle.6c7d9f72689fc7c05040.js} +71939 -66734
  45. package/dist/app.bundle.css +13 -12
  46. package/dist/assets/yandex-browser-manifest.json +1 -1
  47. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  48. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  49. package/dist/{dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js → dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js} +5 -4
  50. package/dist/es6-shim.min.js +3569 -2
  51. package/dist/google.js +8 -7
  52. package/dist/index.html +1 -1
  53. package/dist/{index.worker.1c69152d710fa7b84bce.worker.js → index.worker.e62ecca63f1a2e124230.worker.js} +2 -2
  54. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +1 -0
  55. package/dist/init-service-worker.js +3 -5
  56. package/dist/oidc-client.min.js +10857 -39
  57. package/dist/polyfill.min.js +184 -1
  58. package/dist/silent-refresh.html +18 -9
  59. package/dist/sw.js +1 -1
  60. package/package.json +20 -22
  61. package/dist/616.bundle.d0581701281977bea39b.js +0 -685
  62. package/dist/780.bundle.fd0f13dc92e9caa0581e.js +0 -4769
  63. package/dist/index.worker.1c69152d710fa7b84bce.worker.js.map +0 -1
  64. /package/dist/{806.css → 19.css} +0 -0
  65. /package/dist/{55.css → 250.css} +0 -0
  66. /package/dist/{707.css → 877.css} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[744],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[19,579],{
3
3
 
4
- /***/ 43418:
4
+ /***/ 41832:
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__(32735);
15
+ var react = __webpack_require__(43001);
16
16
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
17
- var prop_types = __webpack_require__(60216);
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__(87519);
21
- // EXTERNAL MODULE: ../../../node_modules/@xstate/react/lib/index.js
22
- var lib = __webpack_require__(38531);
23
- // EXTERNAL MODULE: ../../ui/src/index.js + 452 modules
24
- var src = __webpack_require__(28619);
20
+ var es = __webpack_require__(261);
21
+ // EXTERNAL MODULE: ../../../node_modules/@xstate/react/es/index.js + 8 modules
22
+ var react_es = __webpack_require__(44530);
23
+ // EXTERNAL MODULE: ../../ui/src/index.js + 485 modules
24
+ var src = __webpack_require__(71783);
25
25
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js
26
26
 
27
27
  const RESPONSE = {
@@ -37,6 +37,7 @@ const machineConfiguration = {
37
37
  id: 'measurementTracking',
38
38
  initial: 'idle',
39
39
  context: {
40
+ activeViewportId: null,
40
41
  trackedStudy: '',
41
42
  trackedSeries: [],
42
43
  ignoredSeries: [],
@@ -66,7 +67,12 @@ const machineConfiguration = {
66
67
  cond: 'hasNotIgnoredSRSeriesForHydration'
67
68
  },
68
69
  RESTORE_PROMPT_HYDRATE_SR: 'promptHydrateStructuredReport',
69
- HYDRATE_SR: 'hydrateStructuredReport'
70
+ HYDRATE_SR: 'hydrateStructuredReport',
71
+ UPDATE_ACTIVE_VIEWPORT_ID: {
72
+ actions: (0,es/* assign */.f0)({
73
+ activeViewportId: (_, event) => event.activeViewportId
74
+ })
75
+ }
70
76
  }
71
77
  },
72
78
  promptBeginTracking: {
@@ -247,7 +253,7 @@ const defaultOptions = {
247
253
  showStructuredReportDisplaySetInActiveViewport: (ctx, evt) => {
248
254
  console.warn('showStructuredReportDisplaySetInActiveViewport: not implemented');
249
255
  },
250
- clearContext: (0,es.assign)({
256
+ clearContext: (0,es/* assign */.f0)({
251
257
  trackedStudy: '',
252
258
  trackedSeries: [],
253
259
  ignoredSeries: [],
@@ -256,7 +262,7 @@ const defaultOptions = {
256
262
  prevIgnoredSeries: []
257
263
  }),
258
264
  // Promise resolves w/ `evt.data.*`
259
- setTrackedStudyAndSeries: (0,es.assign)((ctx, evt) => ({
265
+ setTrackedStudyAndSeries: (0,es/* assign */.f0)((ctx, evt) => ({
260
266
  prevTrackedStudy: ctx.trackedStudy,
261
267
  prevTrackedSeries: ctx.trackedSeries.slice(),
262
268
  prevIgnoredSeries: ctx.ignoredSeries.slice(),
@@ -265,7 +271,7 @@ const defaultOptions = {
265
271
  trackedSeries: [evt.data.SeriesInstanceUID],
266
272
  ignoredSeries: []
267
273
  })),
268
- setTrackedStudyAndMultipleSeries: (0,es.assign)((ctx, evt) => {
274
+ setTrackedStudyAndMultipleSeries: (0,es/* assign */.f0)((ctx, evt) => {
269
275
  const studyInstanceUID = evt.StudyInstanceUID || evt.data.StudyInstanceUID;
270
276
  const seriesInstanceUIDs = evt.SeriesInstanceUIDs || evt.data.SeriesInstanceUIDs;
271
277
  return {
@@ -278,24 +284,24 @@ const defaultOptions = {
278
284
  ignoredSeries: []
279
285
  };
280
286
  }),
281
- setIsDirtyToClean: (0,es.assign)((ctx, evt) => ({
287
+ setIsDirtyToClean: (0,es/* assign */.f0)((ctx, evt) => ({
282
288
  isDirty: false
283
289
  })),
284
- setIsDirty: (0,es.assign)((ctx, evt) => ({
290
+ setIsDirty: (0,es/* assign */.f0)((ctx, evt) => ({
285
291
  isDirty: true
286
292
  })),
287
- ignoreSeries: (0,es.assign)((ctx, evt) => ({
293
+ ignoreSeries: (0,es/* assign */.f0)((ctx, evt) => ({
288
294
  prevIgnoredSeries: [...ctx.ignoredSeries],
289
295
  ignoredSeries: [...ctx.ignoredSeries, evt.data.SeriesInstanceUID]
290
296
  })),
291
- ignoreHydrationForSRSeries: (0,es.assign)((ctx, evt) => ({
297
+ ignoreHydrationForSRSeries: (0,es/* assign */.f0)((ctx, evt) => ({
292
298
  ignoredSRSeriesForHydration: [...ctx.ignoredSRSeriesForHydration, evt.data.srSeriesInstanceUID]
293
299
  })),
294
- addTrackedSeries: (0,es.assign)((ctx, evt) => ({
300
+ addTrackedSeries: (0,es/* assign */.f0)((ctx, evt) => ({
295
301
  prevTrackedSeries: [...ctx.trackedSeries],
296
302
  trackedSeries: [...ctx.trackedSeries, evt.data.SeriesInstanceUID]
297
303
  })),
298
- removeTrackedSeries: (0,es.assign)((ctx, evt) => ({
304
+ removeTrackedSeries: (0,es/* assign */.f0)((ctx, evt) => ({
299
305
  prevTrackedSeries: ctx.trackedSeries.slice().filter(ser => ser !== evt.SeriesInstanceUID),
300
306
  trackedSeries: ctx.trackedSeries.slice().filter(ser => ser !== evt.SeriesInstanceUID)
301
307
  }))
@@ -362,36 +368,36 @@ function promptBeginTracking(_ref, ctx, evt) {
362
368
  uiViewportDialogService
363
369
  } = servicesManager.services;
364
370
  const {
365
- viewportIndex,
371
+ viewportId,
366
372
  StudyInstanceUID,
367
373
  SeriesInstanceUID
368
374
  } = evt;
369
375
  return new Promise(async function (resolve, reject) {
370
- let promptResult = await _askTrackMeasurements(uiViewportDialogService, viewportIndex);
376
+ let promptResult = await _askTrackMeasurements(uiViewportDialogService, viewportId);
371
377
  resolve({
372
378
  userResponse: promptResult,
373
379
  StudyInstanceUID,
374
380
  SeriesInstanceUID,
375
- viewportIndex
381
+ viewportId
376
382
  });
377
383
  });
378
384
  }
379
- function _askTrackMeasurements(uiViewportDialogService, viewportIndex) {
385
+ function _askTrackMeasurements(uiViewportDialogService, viewportId) {
380
386
  return new Promise(function (resolve, reject) {
381
387
  const message = 'Track measurements for this series?';
382
388
  const actions = [{
383
389
  id: 'prompt-begin-tracking-cancel',
384
- type: src/* ButtonEnums.type */.LZ.U.secondary,
390
+ type: src/* ButtonEnums.type */.LZ.dt.secondary,
385
391
  text: 'No',
386
392
  value: promptBeginTracking_RESPONSE.CANCEL
387
393
  }, {
388
394
  id: 'prompt-begin-tracking-no-do-not-ask-again',
389
- type: src/* ButtonEnums.type */.LZ.U.secondary,
395
+ type: src/* ButtonEnums.type */.LZ.dt.secondary,
390
396
  text: 'No, do not ask again',
391
397
  value: promptBeginTracking_RESPONSE.NO_NEVER
392
398
  }, {
393
399
  id: 'prompt-begin-tracking-yes',
394
- type: src/* ButtonEnums.type */.LZ.U.primary,
400
+ type: src/* ButtonEnums.type */.LZ.dt.primary,
395
401
  text: 'Yes',
396
402
  value: promptBeginTracking_RESPONSE.SET_STUDY_AND_SERIES
397
403
  }];
@@ -400,7 +406,7 @@ function _askTrackMeasurements(uiViewportDialogService, viewportIndex) {
400
406
  resolve(result);
401
407
  };
402
408
  uiViewportDialogService.show({
403
- viewportIndex,
409
+ viewportId,
404
410
  id: 'measurement-tracking-prompt-begin-tracking',
405
411
  type: 'info',
406
412
  message,
@@ -433,37 +439,37 @@ function promptTrackNewSeries(_ref, ctx, evt) {
433
439
  UIViewportDialogService
434
440
  } = servicesManager.services;
435
441
  const {
436
- viewportIndex,
442
+ viewportId,
437
443
  StudyInstanceUID,
438
444
  SeriesInstanceUID
439
445
  } = evt;
440
446
  return new Promise(async function (resolve, reject) {
441
- let promptResult = await _askShouldAddMeasurements(UIViewportDialogService, viewportIndex);
447
+ let promptResult = await _askShouldAddMeasurements(UIViewportDialogService, viewportId);
442
448
  if (promptResult === promptTrackNewSeries_RESPONSE.CREATE_REPORT) {
443
- promptResult = ctx.isDirty ? await _askSaveDiscardOrCancel(UIViewportDialogService, viewportIndex) : promptTrackNewSeries_RESPONSE.SET_STUDY_AND_SERIES;
449
+ promptResult = ctx.isDirty ? await _askSaveDiscardOrCancel(UIViewportDialogService, viewportId) : promptTrackNewSeries_RESPONSE.SET_STUDY_AND_SERIES;
444
450
  }
445
451
  resolve({
446
452
  userResponse: promptResult,
447
453
  StudyInstanceUID,
448
454
  SeriesInstanceUID,
449
- viewportIndex,
455
+ viewportId,
450
456
  isBackupSave: false
451
457
  });
452
458
  });
453
459
  }
454
- function _askShouldAddMeasurements(uiViewportDialogService, viewportIndex) {
460
+ function _askShouldAddMeasurements(uiViewportDialogService, viewportId) {
455
461
  return new Promise(function (resolve, reject) {
456
462
  const message = 'Do you want to add this measurement to the existing report?';
457
463
  const actions = [{
458
- type: src/* ButtonEnums.type */.LZ.U.secondary,
464
+ type: src/* ButtonEnums.type */.LZ.dt.secondary,
459
465
  text: 'Cancel',
460
466
  value: promptTrackNewSeries_RESPONSE.CANCEL
461
467
  }, {
462
- type: src/* ButtonEnums.type */.LZ.U.primary,
468
+ type: src/* ButtonEnums.type */.LZ.dt.primary,
463
469
  text: 'Create new report',
464
470
  value: promptTrackNewSeries_RESPONSE.CREATE_REPORT
465
471
  }, {
466
- type: src/* ButtonEnums.type */.LZ.U.primary,
472
+ type: src/* ButtonEnums.type */.LZ.dt.primary,
467
473
  text: 'Add to existing report',
468
474
  value: promptTrackNewSeries_RESPONSE.ADD_SERIES
469
475
  }];
@@ -472,7 +478,7 @@ function _askShouldAddMeasurements(uiViewportDialogService, viewportIndex) {
472
478
  resolve(result);
473
479
  };
474
480
  uiViewportDialogService.show({
475
- viewportIndex,
481
+ viewportId,
476
482
  type: 'info',
477
483
  message,
478
484
  actions,
@@ -484,7 +490,7 @@ function _askShouldAddMeasurements(uiViewportDialogService, viewportIndex) {
484
490
  });
485
491
  });
486
492
  }
487
- function _askSaveDiscardOrCancel(UIViewportDialogService, viewportIndex) {
493
+ function _askSaveDiscardOrCancel(UIViewportDialogService, viewportId) {
488
494
  return new Promise(function (resolve, reject) {
489
495
  const message = 'You have existing tracked measurements. What would you like to do with your existing tracked measurements?';
490
496
  const actions = [{
@@ -505,7 +511,7 @@ function _askSaveDiscardOrCancel(UIViewportDialogService, viewportIndex) {
505
511
  resolve(result);
506
512
  };
507
513
  UIViewportDialogService.show({
508
- viewportIndex,
514
+ viewportId,
509
515
  type: 'warning',
510
516
  message,
511
517
  actions,
@@ -536,25 +542,25 @@ function promptTrackNewStudy(_ref, ctx, evt) {
536
542
  UIViewportDialogService
537
543
  } = servicesManager.services;
538
544
  const {
539
- viewportIndex,
545
+ viewportId,
540
546
  StudyInstanceUID,
541
547
  SeriesInstanceUID
542
548
  } = evt;
543
549
  return new Promise(async function (resolve, reject) {
544
- let promptResult = await promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewportIndex);
550
+ let promptResult = await promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewportId);
545
551
  if (promptResult === promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES) {
546
- promptResult = ctx.isDirty ? await promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, viewportIndex) : promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES;
552
+ promptResult = ctx.isDirty ? await promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, viewportId) : promptTrackNewStudy_RESPONSE.SET_STUDY_AND_SERIES;
547
553
  }
548
554
  resolve({
549
555
  userResponse: promptResult,
550
556
  StudyInstanceUID,
551
557
  SeriesInstanceUID,
552
- viewportIndex,
558
+ viewportId,
553
559
  isBackupSave: false
554
560
  });
555
561
  });
556
562
  }
557
- function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewportIndex) {
563
+ function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewportId) {
558
564
  return new Promise(function (resolve, reject) {
559
565
  const message = 'Track measurements for this series?';
560
566
  const actions = [{
@@ -575,7 +581,7 @@ function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewp
575
581
  resolve(result);
576
582
  };
577
583
  UIViewportDialogService.show({
578
- viewportIndex,
584
+ viewportId,
579
585
  type: 'info',
580
586
  message,
581
587
  actions,
@@ -587,7 +593,7 @@ function promptTrackNewStudy_askTrackMeasurements(UIViewportDialogService, viewp
587
593
  });
588
594
  });
589
595
  }
590
- function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, viewportIndex) {
596
+ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, viewportId) {
591
597
  return new Promise(function (resolve, reject) {
592
598
  const message = 'Measurements cannot span across multiple studies. Do you want to save your tracked measurements?';
593
599
  const actions = [{
@@ -608,7 +614,7 @@ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, vie
608
614
  resolve(result);
609
615
  };
610
616
  UIViewportDialogService.show({
611
- viewportIndex,
617
+ viewportId,
612
618
  type: 'warning',
613
619
  message,
614
620
  actions,
@@ -621,70 +627,17 @@ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, vie
621
627
  });
622
628
  }
623
629
  /* harmony default export */ const TrackedMeasurementsContext_promptTrackNewStudy = (promptTrackNewStudy);
624
- // EXTERNAL MODULE: ../../core/src/index.ts + 101 modules
625
- var core_src = __webpack_require__(48501);
626
- ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/createReportAsync.tsx
627
-
628
-
629
-
630
- /**
631
- *
632
- * @param {*} servicesManager
633
- * @param {*} dataSource
634
- * @param {*} measurements
635
- * @param {*} options
636
- * @returns {string[]} displaySetInstanceUIDs
637
- */
638
- async function createReportAsync(servicesManager, commandsManager, dataSource, measurements, options) {
639
- const {
640
- displaySetService,
641
- uiNotificationService,
642
- uiDialogService
643
- } = servicesManager.services;
644
- const loadingDialogId = uiDialogService.create({
645
- showOverlay: true,
646
- isDraggable: false,
647
- centralize: true,
648
- // TODO: Create a loading indicator component + zeplin design?
649
- content: Loading
650
- });
651
- try {
652
- const naturalizedReport = await commandsManager.runCommand('storeMeasurements', {
653
- measurementData: measurements,
654
- dataSource,
655
- additionalFindingTypes: ['ArrowAnnotate'],
656
- options
657
- }, 'CORNERSTONE_STRUCTURED_REPORT');
658
-
659
- // The "Mode" route listens for DicomMetadataStore changes
660
- // When a new instance is added, it listens and
661
- // automatically calls makeDisplaySets
662
- core_src.DicomMetadataStore.addInstances([naturalizedReport], true);
663
- const displaySetInstanceUID = displaySetService.getMostRecentDisplaySet();
664
- uiNotificationService.show({
665
- title: 'Create Report',
666
- message: 'Measurements saved successfully',
667
- type: 'success'
668
- });
669
- return [displaySetInstanceUID];
670
- } catch (error) {
671
- uiNotificationService.show({
672
- title: 'Create Report',
673
- message: error.message || 'Failed to store measurements',
674
- type: 'error'
675
- });
676
- } finally {
677
- uiDialogService.dismiss({
678
- id: loadingDialogId
679
- });
680
- }
681
- }
682
- function Loading() {
683
- return /*#__PURE__*/react.createElement("div", {
684
- className: "text-primary-active"
685
- }, "Loading...");
630
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 76 modules
631
+ var default_src = __webpack_require__(56342);
632
+ ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js
633
+ const MIN_SR_SERIES_NUMBER = 4700;
634
+ function getNextSRSeriesNumber(displaySetService) {
635
+ const activeDisplaySets = displaySetService.getActiveDisplaySets();
636
+ const srDisplaySets = activeDisplaySets.filter(ds => ds.Modality === 'SR');
637
+ const srSeriesNumbers = srDisplaySets.map(ds => ds.SeriesNumber);
638
+ const maxSeriesNumber = Math.max(...srSeriesNumbers, MIN_SR_SERIES_NUMBER);
639
+ return maxSeriesNumber + 1;
686
640
  }
687
- /* harmony default export */ const _shared_createReportAsync = (createReportAsync);
688
641
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/PROMPT_RESPONSES.js
689
642
  const PROMPT_RESPONSES_RESPONSE = {
690
643
  NO_NEVER: -1,
@@ -695,132 +648,10 @@ const PROMPT_RESPONSES_RESPONSE = {
695
648
  NO_NOT_FOR_SERIES: 4
696
649
  };
697
650
  /* harmony default export */ const PROMPT_RESPONSES = (PROMPT_RESPONSES_RESPONSE);
698
- ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/createReportDialogPrompt.tsx
699
- /* eslint-disable react/display-name */
700
-
701
-
702
-
703
- function createReportDialogPrompt(uiDialogService) {
704
- return new Promise(function (resolve, reject) {
705
- let dialogId = undefined;
706
- const _handleClose = () => {
707
- // Dismiss dialog
708
- uiDialogService.dismiss({
709
- id: dialogId
710
- });
711
- // Notify of cancel action
712
- resolve({
713
- action: PROMPT_RESPONSES.CANCEL,
714
- value: undefined
715
- });
716
- };
717
-
718
- /**
719
- *
720
- * @param {string} param0.action - value of action performed
721
- * @param {string} param0.value - value from input field
722
- */
723
- const _handleFormSubmit = _ref => {
724
- let {
725
- action,
726
- value
727
- } = _ref;
728
- uiDialogService.dismiss({
729
- id: dialogId
730
- });
731
- switch (action.id) {
732
- case 'save':
733
- resolve({
734
- action: PROMPT_RESPONSES.CREATE_REPORT,
735
- value: value.label
736
- });
737
- break;
738
- case 'cancel':
739
- resolve({
740
- action: PROMPT_RESPONSES.CANCEL,
741
- value: undefined
742
- });
743
- break;
744
- }
745
- };
746
- dialogId = uiDialogService.create({
747
- centralize: true,
748
- isDraggable: false,
749
- content: src/* Dialog */.Vq,
750
- useLastPosition: false,
751
- showOverlay: true,
752
- contentProps: {
753
- title: 'Create Report',
754
- value: {
755
- label: ''
756
- },
757
- noCloseButton: true,
758
- onClose: _handleClose,
759
- actions: [{
760
- id: 'cancel',
761
- text: 'Cancel',
762
- type: src/* ButtonEnums.type */.LZ.U.secondary
763
- }, {
764
- id: 'save',
765
- text: 'Save',
766
- type: src/* ButtonEnums.type */.LZ.U.primary
767
- }],
768
- // TODO: Should be on button press...
769
- onSubmit: _handleFormSubmit,
770
- body: _ref2 => {
771
- let {
772
- value,
773
- setValue
774
- } = _ref2;
775
- const onChangeHandler = event => {
776
- event.persist();
777
- setValue(value => ({
778
- ...value,
779
- label: event.target.value
780
- }));
781
- };
782
- const onKeyPressHandler = event => {
783
- if (event.key === 'Enter') {
784
- uiDialogService.dismiss({
785
- id: dialogId
786
- });
787
- resolve({
788
- action: PROMPT_RESPONSES.CREATE_REPORT,
789
- value: value.label
790
- });
791
- }
792
- };
793
- return /*#__PURE__*/react.createElement("div", {
794
- className: ""
795
- }, /*#__PURE__*/react.createElement(src/* Input */.II, {
796
- label: "Enter the report name",
797
- labelClassName: "text-white grow leading-[1.2] text-[14px]",
798
- autoFocus: true,
799
- className: "bg-black border-primary-main grow",
800
- type: "text",
801
- value: value.label,
802
- onChange: onChangeHandler,
803
- onKeyPress: onKeyPressHandler
804
- }));
805
- }
806
- }
807
- });
808
- });
809
- }
810
- ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js
811
- const MIN_SR_SERIES_NUMBER = 4700;
812
- function getNextSRSeriesNumber(displaySetService) {
813
- const activeDisplaySets = displaySetService.getActiveDisplaySets();
814
- const srDisplaySets = activeDisplaySets.filter(ds => ds.Modality === 'SR');
815
- const srSeriesNumbers = srDisplaySets.map(ds => ds.SeriesNumber);
816
- const maxSeriesNumber = Math.max(...srSeriesNumbers, MIN_SR_SERIES_NUMBER);
817
- return maxSeriesNumber + 1;
818
- }
819
651
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptSaveReport.js
820
652
 
821
653
 
822
654
 
823
-
824
655
  function promptSaveReport(_ref, ctx, evt) {
825
656
  let {
826
657
  servicesManager,
@@ -832,7 +663,7 @@ function promptSaveReport(_ref, ctx, evt) {
832
663
  measurementService,
833
664
  displaySetService
834
665
  } = servicesManager.services;
835
- const viewportIndex = evt.viewportIndex === undefined ? evt.data.viewportIndex : evt.viewportIndex;
666
+ const viewportId = evt.viewportId === undefined ? evt.data.viewportId : evt.viewportId;
836
667
  const isBackupSave = evt.isBackupSave === undefined ? evt.data.isBackupSave : evt.isBackupSave;
837
668
  const StudyInstanceUID = evt?.data?.StudyInstanceUID;
838
669
  const SeriesInstanceUID = evt?.data?.SeriesInstanceUID;
@@ -843,7 +674,9 @@ function promptSaveReport(_ref, ctx, evt) {
843
674
  let displaySetInstanceUIDs;
844
675
  return new Promise(async function (resolve, reject) {
845
676
  // TODO: Fallback if (uiDialogService) {
846
- const promptResult = await createReportDialogPrompt(uiDialogService);
677
+ const promptResult = await (0,default_src.createReportDialogPrompt)(uiDialogService, {
678
+ extensionManager
679
+ });
847
680
  if (promptResult.action === PROMPT_RESPONSES.CREATE_REPORT) {
848
681
  const dataSources = extensionManager.getDataSources();
849
682
  const dataSource = dataSources[0];
@@ -855,9 +688,20 @@ function promptSaveReport(_ref, ctx, evt) {
855
688
  : promptResult.value; // provided value
856
689
 
857
690
  const SeriesNumber = getNextSRSeriesNumber(displaySetService);
858
- displaySetInstanceUIDs = await _shared_createReportAsync(servicesManager, commandsManager, dataSource, trackedMeasurements, {
859
- SeriesDescription,
860
- SeriesNumber
691
+ const getReport = async () => {
692
+ return commandsManager.runCommand('storeMeasurements', {
693
+ measurementData: trackedMeasurements,
694
+ dataSource,
695
+ additionalFindingTypes: ['ArrowAnnotate'],
696
+ options: {
697
+ SeriesDescription,
698
+ SeriesNumber
699
+ }
700
+ }, 'CORNERSTONE_STRUCTURED_REPORT');
701
+ };
702
+ displaySetInstanceUIDs = await (0,default_src.createReportAsync)({
703
+ servicesManager,
704
+ getReport
861
705
  });
862
706
  } else if (promptResult.action === PROMPT_RESPONSES.CANCEL) {
863
707
  // Do nothing
@@ -867,14 +711,14 @@ function promptSaveReport(_ref, ctx, evt) {
867
711
  createdDisplaySetInstanceUIDs: displaySetInstanceUIDs,
868
712
  StudyInstanceUID,
869
713
  SeriesInstanceUID,
870
- viewportIndex,
714
+ viewportId,
871
715
  isBackupSave
872
716
  });
873
717
  });
874
718
  }
875
719
  /* harmony default export */ const TrackedMeasurementsContext_promptSaveReport = (promptSaveReport);
876
720
  // EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/index.tsx + 15 modules
877
- var cornerstone_dicom_sr_src = __webpack_require__(65948);
721
+ var cornerstone_dicom_sr_src = __webpack_require__(42170);
878
722
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/promptHydrateStructuredReport.js
879
723
 
880
724
 
@@ -890,19 +734,20 @@ const promptHydrateStructuredReport_RESPONSE = {
890
734
  function promptHydrateStructuredReport(_ref, ctx, evt) {
891
735
  let {
892
736
  servicesManager,
893
- extensionManager
737
+ extensionManager,
738
+ appConfig
894
739
  } = _ref;
895
740
  const {
896
741
  uiViewportDialogService,
897
742
  displaySetService
898
743
  } = servicesManager.services;
899
744
  const {
900
- viewportIndex,
745
+ viewportId,
901
746
  displaySetInstanceUID
902
747
  } = evt;
903
748
  const srDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
904
749
  return new Promise(async function (resolve, reject) {
905
- const promptResult = await promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogService, viewportIndex);
750
+ const promptResult = await promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogService, viewportId);
906
751
 
907
752
  // Need to do action here... So we can set state...
908
753
  let StudyInstanceUID, SeriesInstanceUIDs;
@@ -910,7 +755,8 @@ function promptHydrateStructuredReport(_ref, ctx, evt) {
910
755
  console.warn('!! HYDRATING STRUCTURED REPORT');
911
756
  const hydrationResult = (0,cornerstone_dicom_sr_src.hydrateStructuredReport)({
912
757
  servicesManager,
913
- extensionManager
758
+ extensionManager,
759
+ appConfig
914
760
  }, displaySetInstanceUID);
915
761
  StudyInstanceUID = hydrationResult.StudyInstanceUID;
916
762
  SeriesInstanceUIDs = hydrationResult.SeriesInstanceUIDs;
@@ -919,21 +765,21 @@ function promptHydrateStructuredReport(_ref, ctx, evt) {
919
765
  userResponse: promptResult,
920
766
  displaySetInstanceUID: evt.displaySetInstanceUID,
921
767
  srSeriesInstanceUID: srDisplaySet.SeriesInstanceUID,
922
- viewportIndex,
768
+ viewportId,
923
769
  StudyInstanceUID,
924
770
  SeriesInstanceUIDs
925
771
  });
926
772
  });
927
773
  }
928
- function promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogService, viewportIndex) {
774
+ function promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogService, viewportId) {
929
775
  return new Promise(function (resolve, reject) {
930
776
  const message = 'Do you want to continue tracking measurements for this study?';
931
777
  const actions = [{
932
- type: src/* ButtonEnums.type */.LZ.U.secondary,
778
+ type: src/* ButtonEnums.type */.LZ.dt.secondary,
933
779
  text: 'No',
934
780
  value: promptHydrateStructuredReport_RESPONSE.CANCEL
935
781
  }, {
936
- type: src/* ButtonEnums.type */.LZ.U.primary,
782
+ type: src/* ButtonEnums.type */.LZ.dt.primary,
937
783
  text: 'Yes',
938
784
  value: promptHydrateStructuredReport_RESPONSE.HYDRATE_REPORT
939
785
  }];
@@ -942,7 +788,7 @@ function promptHydrateStructuredReport_askTrackMeasurements(uiViewportDialogServ
942
788
  resolve(result);
943
789
  };
944
790
  uiViewportDialogService.show({
945
- viewportIndex,
791
+ viewportId,
946
792
  type: 'info',
947
793
  message,
948
794
  actions,
@@ -966,7 +812,7 @@ function hydrateStructuredReport(_ref, ctx, evt) {
966
812
  displaySetService
967
813
  } = servicesManager.services;
968
814
  const {
969
- viewportIndex,
815
+ viewportId,
970
816
  displaySetInstanceUID
971
817
  } = evt;
972
818
  const srDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
@@ -980,13 +826,15 @@ function hydrateStructuredReport(_ref, ctx, evt) {
980
826
  resolve({
981
827
  displaySetInstanceUID: evt.displaySetInstanceUID,
982
828
  srSeriesInstanceUID: srDisplaySet.SeriesInstanceUID,
983
- viewportIndex,
829
+ viewportId,
984
830
  StudyInstanceUID,
985
831
  SeriesInstanceUIDs
986
832
  });
987
833
  });
988
834
  }
989
835
  /* harmony default export */ const TrackedMeasurementsContext_hydrateStructuredReport = (hydrateStructuredReport);
836
+ // EXTERNAL MODULE: ./state/index.js + 1 modules
837
+ var state = __webpack_require__(62657);
990
838
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/TrackedMeasurementsContext.tsx
991
839
 
992
840
 
@@ -1000,6 +848,7 @@ function hydrateStructuredReport(_ref, ctx, evt) {
1000
848
 
1001
849
 
1002
850
 
851
+
1003
852
  const TrackedMeasurementsContext = /*#__PURE__*/react.createContext();
1004
853
  TrackedMeasurementsContext.displayName = 'TrackedMeasurementsContext';
1005
854
  const useTrackedMeasurements = () => (0,react.useContext)(TrackedMeasurementsContext);
@@ -1020,9 +869,10 @@ _ref2 // Component props
1020
869
  let {
1021
870
  children
1022
871
  } = _ref2;
872
+ const [appConfig] = (0,state/* useAppConfig */.M)();
1023
873
  const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.O_)();
1024
874
  const {
1025
- activeViewportIndex,
875
+ activeViewportId,
1026
876
  viewports
1027
877
  } = viewportGrid;
1028
878
  const {
@@ -1034,11 +884,12 @@ _ref2 // Component props
1034
884
  jumpToFirstMeasurementInActiveViewport: (ctx, evt) => {
1035
885
  const {
1036
886
  trackedStudy,
1037
- trackedSeries
887
+ trackedSeries,
888
+ activeViewportId
1038
889
  } = ctx;
1039
890
  const measurements = measurementService.getMeasurements();
1040
891
  const trackedMeasurements = measurements.filter(m => trackedStudy === m.referenceStudyUID && trackedSeries.includes(m.referenceSeriesUID));
1041
- console.log('jumping to measurement reset viewport', viewportGrid.activeViewportIndex, trackedMeasurements[0]);
892
+ console.log('jumping to measurement reset viewport', activeViewportId, trackedMeasurements[0]);
1042
893
  const referencedDisplaySetUID = trackedMeasurements[0].displaySetInstanceUID;
1043
894
  const referencedDisplaySet = displaySetService.getDisplaySetByUID(referencedDisplaySetUID);
1044
895
  const referencedImages = referencedDisplaySet.images;
@@ -1058,7 +909,7 @@ _ref2 // Component props
1058
909
  }
1059
910
  }
1060
911
  viewportGridService.setDisplaySetsForViewport({
1061
- viewportIndex: viewportGrid.activeViewportIndex,
912
+ viewportId: activeViewportId,
1062
913
  displaySetInstanceUIDs: [referencedDisplaySetUID],
1063
914
  viewportOptions: {
1064
915
  initialImageOptions: {
@@ -1069,9 +920,9 @@ _ref2 // Component props
1069
920
  },
1070
921
  showStructuredReportDisplaySetInActiveViewport: (ctx, evt) => {
1071
922
  if (evt.data.createdDisplaySetInstanceUIDs.length > 0) {
1072
- const StructuredReportDisplaySetInstanceUID = evt.data.createdDisplaySetInstanceUIDs[0].displaySetInstanceUID;
923
+ const StructuredReportDisplaySetInstanceUID = evt.data.createdDisplaySetInstanceUIDs[0];
1073
924
  viewportGridService.setDisplaySetsForViewport({
1074
- viewportIndex: evt.data.viewportIndex,
925
+ viewportId: evt.data.viewportId,
1075
926
  displaySetInstanceUIDs: [StructuredReportDisplaySetInstanceUID]
1076
927
  });
1077
928
  }
@@ -1095,28 +946,34 @@ _ref2 // Component props
1095
946
  machineOptions.services = Object.assign({}, machineOptions.services, {
1096
947
  promptBeginTracking: TrackedMeasurementsContext_promptBeginTracking.bind(null, {
1097
948
  servicesManager,
1098
- extensionManager
949
+ extensionManager,
950
+ appConfig
1099
951
  }),
1100
952
  promptTrackNewSeries: TrackedMeasurementsContext_promptTrackNewSeries.bind(null, {
1101
953
  servicesManager,
1102
- extensionManager
954
+ extensionManager,
955
+ appConfig
1103
956
  }),
1104
957
  promptTrackNewStudy: TrackedMeasurementsContext_promptTrackNewStudy.bind(null, {
1105
958
  servicesManager,
1106
- extensionManager
959
+ extensionManager,
960
+ appConfig
1107
961
  }),
1108
962
  promptSaveReport: TrackedMeasurementsContext_promptSaveReport.bind(null, {
1109
963
  servicesManager,
1110
964
  commandsManager,
1111
- extensionManager
965
+ extensionManager,
966
+ appConfig
1112
967
  }),
1113
968
  promptHydrateStructuredReport: TrackedMeasurementsContext_promptHydrateStructuredReport.bind(null, {
1114
969
  servicesManager,
1115
- extensionManager
970
+ extensionManager,
971
+ appConfig
1116
972
  }),
1117
973
  hydrateStructuredReport: TrackedMeasurementsContext_hydrateStructuredReport.bind(null, {
1118
974
  servicesManager,
1119
- extensionManager
975
+ extensionManager,
976
+ appConfig
1120
977
  })
1121
978
  });
1122
979
 
@@ -1129,13 +986,19 @@ _ref2 // Component props
1129
986
  // - Fix viewport border resize
1130
987
  // - created/destroyed hooks for extensions (cornerstone measurement subscriptions in it's `init`)
1131
988
 
1132
- const measurementTrackingMachine = (0,es.Machine)(machineConfiguration, machineOptions);
1133
- const [trackedMeasurements, sendTrackedMeasurementsEvent, trackedMeasurementsService] = (0,lib.useMachine)(measurementTrackingMachine);
989
+ const measurementTrackingMachine = (0,es/* Machine */.J)(machineConfiguration, machineOptions);
990
+ const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,react_es/* useMachine */.eO)(measurementTrackingMachine);
991
+ (0,react.useEffect)(() => {
992
+ // Update the state machine with the active viewport ID
993
+ sendTrackedMeasurementsEvent('UPDATE_ACTIVE_VIEWPORT_ID', {
994
+ activeViewportId
995
+ });
996
+ }, [activeViewportId, sendTrackedMeasurementsEvent]);
1134
997
 
1135
998
  // ~~ Listen for changes to ViewportGrid for potential SRs hung in panes when idle
1136
999
  (0,react.useEffect)(() => {
1137
- if (viewports.length > 0) {
1138
- const activeViewport = viewports[activeViewportIndex];
1000
+ if (viewports.size > 0) {
1001
+ const activeViewport = viewports.get(activeViewportId);
1139
1002
  if (!activeViewport || !activeViewport?.displaySetInstanceUIDs?.length) {
1140
1003
  return;
1141
1004
  }
@@ -1174,11 +1037,11 @@ _ref2 // Component props
1174
1037
  sendTrackedMeasurementsEvent('PROMPT_HYDRATE_SR', {
1175
1038
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
1176
1039
  SeriesInstanceUID: displaySet.SeriesInstanceUID,
1177
- viewportIndex: activeViewportIndex
1040
+ viewportId: activeViewportId
1178
1041
  });
1179
1042
  }
1180
1043
  }
1181
- }, [activeViewportIndex, sendTrackedMeasurementsEvent, servicesManager.services, viewports]);
1044
+ }, [activeViewportId, sendTrackedMeasurementsEvent, servicesManager.services, viewports]);
1182
1045
  return /*#__PURE__*/react.createElement(TrackedMeasurementsContext.Provider, {
1183
1046
  value: [trackedMeasurements, sendTrackedMeasurementsEvent]
1184
1047
  }, children);
@@ -1187,7 +1050,8 @@ TrackedMeasurementsContextProvider.propTypes = {
1187
1050
  children: prop_types_default().oneOf([(prop_types_default()).func, (prop_types_default()).node]),
1188
1051
  servicesManager: (prop_types_default()).object.isRequired,
1189
1052
  commandsManager: (prop_types_default()).object.isRequired,
1190
- extensionManager: (prop_types_default()).object.isRequired
1053
+ extensionManager: (prop_types_default()).object.isRequired,
1054
+ appConfig: (prop_types_default()).object
1191
1055
  };
1192
1056
 
1193
1057
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/index.js
@@ -1218,7 +1082,7 @@ function getContextModule(_ref) {
1218
1082
 
1219
1083
  /***/ }),
1220
1084
 
1221
- /***/ 43744:
1085
+ /***/ 28030:
1222
1086
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1223
1087
 
1224
1088
  // ESM COMPAT FLAG
@@ -1229,23 +1093,29 @@ __webpack_require__.d(__webpack_exports__, {
1229
1093
  "default": () => (/* binding */ measurement_tracking_src)
1230
1094
  });
1231
1095
 
1232
- // EXTERNAL MODULE: ../../../extensions/measurement-tracking/src/getContextModule.tsx + 14 modules
1233
- var getContextModule = __webpack_require__(43418);
1096
+ // EXTERNAL MODULE: ../../../extensions/measurement-tracking/src/getContextModule.tsx + 12 modules
1097
+ var getContextModule = __webpack_require__(41832);
1234
1098
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
1235
- var react = __webpack_require__(32735);
1099
+ var react = __webpack_require__(43001);
1236
1100
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
1237
- var prop_types = __webpack_require__(60216);
1101
+ var prop_types = __webpack_require__(3827);
1238
1102
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
1239
- // EXTERNAL MODULE: ../../core/src/index.ts + 101 modules
1240
- var src = __webpack_require__(48501);
1241
- // EXTERNAL MODULE: ../../ui/src/index.js + 452 modules
1242
- var ui_src = __webpack_require__(28619);
1103
+ // EXTERNAL MODULE: ../node_modules/react-router-dom/dist/index.js
1104
+ var dist = __webpack_require__(62474);
1105
+ // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
1106
+ var es = __webpack_require__(69190);
1107
+ // EXTERNAL MODULE: ../../core/src/index.ts + 64 modules
1108
+ var src = __webpack_require__(67869);
1109
+ // EXTERNAL MODULE: ../../ui/src/index.js + 485 modules
1110
+ var ui_src = __webpack_require__(71783);
1243
1111
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx
1244
1112
 
1245
1113
 
1246
1114
 
1247
1115
 
1248
1116
 
1117
+
1118
+
1249
1119
  const {
1250
1120
  formatDate
1251
1121
  } = src.utils;
@@ -1263,12 +1133,15 @@ function PanelStudyBrowserTracking(_ref) {
1263
1133
  dataSource
1264
1134
  } = _ref;
1265
1135
  const {
1266
- measurementService,
1267
1136
  displaySetService,
1268
1137
  uiDialogService,
1269
1138
  hangingProtocolService,
1270
1139
  uiNotificationService
1271
1140
  } = servicesManager.services;
1141
+ const navigate = (0,dist/* useNavigate */.s0)();
1142
+ const {
1143
+ t
1144
+ } = (0,es/* useTranslation */.$G)('Common');
1272
1145
 
1273
1146
  // Normally you nest the components so the tree isn't so deep, and the data
1274
1147
  // doesn't have to have such an intense shape. This works well enough for now.
@@ -1277,10 +1150,8 @@ function PanelStudyBrowserTracking(_ref) {
1277
1150
  StudyInstanceUIDs
1278
1151
  } = (0,ui_src/* useImageViewer */.zG)();
1279
1152
  const [{
1280
- activeViewportIndex,
1281
- viewports,
1282
- numCols,
1283
- numRows
1153
+ activeViewportId,
1154
+ viewports
1284
1155
  }, viewportGridService] = (0,ui_src/* useViewportGrid */.O_)();
1285
1156
  const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,getContextModule/* useTrackedMeasurements */.I)();
1286
1157
  const [activeTabName, setActiveTabName] = (0,react.useState)('primary');
@@ -1291,9 +1162,9 @@ function PanelStudyBrowserTracking(_ref) {
1291
1162
  const [jumpToDisplaySet, setJumpToDisplaySet] = (0,react.useState)(null);
1292
1163
  const onDoubleClickThumbnailHandler = displaySetInstanceUID => {
1293
1164
  let updatedViewports = [];
1294
- const viewportIndex = activeViewportIndex;
1165
+ const viewportId = activeViewportId;
1295
1166
  try {
1296
- updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportIndex, displaySetInstanceUID);
1167
+ updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportId, displaySetInstanceUID);
1297
1168
  } catch (error) {
1298
1169
  console.warn(error);
1299
1170
  uiNotificationService.show({
@@ -1305,37 +1176,7 @@ function PanelStudyBrowserTracking(_ref) {
1305
1176
  }
1306
1177
  viewportGridService.setDisplaySetsForViewports(updatedViewports);
1307
1178
  };
1308
- const activeViewportDisplaySetInstanceUIDs = viewports[activeViewportIndex]?.displaySetInstanceUIDs;
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]);
1179
+ const activeViewportDisplaySetInstanceUIDs = viewports.get(activeViewportId)?.displaySetInstanceUIDs;
1339
1180
  const {
1340
1181
  trackedSeries
1341
1182
  } = trackedMeasurements.context;
@@ -1348,6 +1189,10 @@ function PanelStudyBrowserTracking(_ref) {
1348
1189
  const qidoForStudyUID = await dataSource.query.studies.search({
1349
1190
  studyInstanceUid: StudyInstanceUID
1350
1191
  });
1192
+ if (!qidoForStudyUID?.length) {
1193
+ navigate('/notfoundstudy', '_self');
1194
+ throw new Error('Invalid study URL');
1195
+ }
1351
1196
  let qidoStudiesForPatient = qidoForStudyUID;
1352
1197
 
1353
1198
  // try to fetch the prior studies based on the patientID if the
@@ -1361,7 +1206,7 @@ function PanelStudyBrowserTracking(_ref) {
1361
1206
  const actuallyMappedStudies = mappedStudies.map(qidoStudy => {
1362
1207
  return {
1363
1208
  studyInstanceUid: qidoStudy.StudyInstanceUID,
1364
- date: formatDate(qidoStudy.StudyDate),
1209
+ date: formatDate(qidoStudy.StudyDate) || t('NoStudyDate'),
1365
1210
  description: qidoStudy.StudyDescription,
1366
1211
  modalities: qidoStudy.ModalitiesInStudy,
1367
1212
  numInstances: qidoStudy.NumInstances
@@ -1393,17 +1238,18 @@ function PanelStudyBrowserTracking(_ref) {
1393
1238
  const imageIds = dataSource.getImageIdsForDisplaySet(displaySet);
1394
1239
  const imageId = imageIds[Math.floor(imageIds.length / 2)];
1395
1240
 
1396
- // TODO: Is it okay that imageIds are not returned here for SR displaysets?
1397
- if (imageId) {
1398
- // When the image arrives, render it and store the result in the thumbnailImgSrcMap
1399
- newImageSrcEntry[dSet.displaySetInstanceUID] = await getImageSrc(imageId);
1400
- setThumbnailImageSrcMap(prevState => {
1401
- return {
1402
- ...prevState,
1403
- ...newImageSrcEntry
1404
- };
1405
- });
1241
+ // TODO: Is it okay that imageIds are not returned here for SR displaySets?
1242
+ if (!imageId || displaySet?.unsupported) {
1243
+ return;
1406
1244
  }
1245
+ // When the image arrives, render it and store the result in the thumbnailImgSrcMap
1246
+ newImageSrcEntry[dSet.displaySetInstanceUID] = await getImageSrc(imageId);
1247
+ setThumbnailImageSrcMap(prevState => {
1248
+ return {
1249
+ ...prevState,
1250
+ ...newImageSrcEntry
1251
+ };
1252
+ });
1407
1253
  });
1408
1254
  }, [displaySetService, dataSource, getImageSrc]);
1409
1255
 
@@ -1430,6 +1276,9 @@ function PanelStudyBrowserTracking(_ref) {
1430
1276
  const displaySetInstanceUID = dSet.displaySetInstanceUID;
1431
1277
  const newImageSrcEntry = {};
1432
1278
  const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
1279
+ if (displaySet?.unsupported) {
1280
+ return;
1281
+ }
1433
1282
  if (options.madeInClient) {
1434
1283
  setJumpToDisplaySet(displaySetInstanceUID);
1435
1284
  }
@@ -1437,31 +1286,41 @@ function PanelStudyBrowserTracking(_ref) {
1437
1286
  const imageId = imageIds[Math.floor(imageIds.length / 2)];
1438
1287
 
1439
1288
  // TODO: Is it okay that imageIds are not returned here for SR displaysets?
1440
- if (imageId) {
1441
- // When the image arrives, render it and store the result in the thumbnailImgSrcMap
1442
- newImageSrcEntry[displaySetInstanceUID] = await getImageSrc(imageId);
1443
- setThumbnailImageSrcMap(prevState => {
1444
- return {
1445
- ...prevState,
1446
- ...newImageSrcEntry
1447
- };
1448
- });
1289
+ if (!imageId) {
1290
+ return;
1449
1291
  }
1292
+
1293
+ // When the image arrives, render it and store the result in the thumbnailImgSrcMap
1294
+ newImageSrcEntry[displaySetInstanceUID] = await getImageSrc(imageId);
1295
+ setThumbnailImageSrcMap(prevState => {
1296
+ return {
1297
+ ...prevState,
1298
+ ...newImageSrcEntry
1299
+ };
1300
+ });
1450
1301
  });
1451
1302
  });
1452
-
1303
+ return () => {
1304
+ SubscriptionDisplaySetsAdded.unsubscribe();
1305
+ };
1306
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1307
+ }, [displaySetService, dataSource, getImageSrc, thumbnailImageSrcMap, trackedSeries, viewports]);
1308
+ (0,react.useEffect)(() => {
1453
1309
  // TODO: Will this always hold _all_ the displaySets we care about?
1454
1310
  // DISPLAY_SETS_CHANGED returns `DisplaySerService.activeDisplaySets`
1455
1311
  const SubscriptionDisplaySetsChanged = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_CHANGED, changedDisplaySets => {
1456
1312
  const mappedDisplaySets = _mapDisplaySets(changedDisplaySets, thumbnailImageSrcMap, trackedSeries, viewports, viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificationService);
1457
1313
  setDisplaySets(mappedDisplaySets);
1458
1314
  });
1315
+ const SubscriptionDisplaySetMetaDataInvalidated = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED, () => {
1316
+ const mappedDisplaySets = _mapDisplaySets(displaySetService.getActiveDisplaySets(), thumbnailImageSrcMap, trackedSeries, viewports, viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificationService);
1317
+ setDisplaySets(mappedDisplaySets);
1318
+ });
1459
1319
  return () => {
1460
- SubscriptionDisplaySetsAdded.unsubscribe();
1461
1320
  SubscriptionDisplaySetsChanged.unsubscribe();
1321
+ SubscriptionDisplaySetMetaDataInvalidated.unsubscribe();
1462
1322
  };
1463
- // eslint-disable-next-line react-hooks/exhaustive-deps
1464
- }, [displaySetService, dataSource, getImageSrc, thumbnailImageSrcMap, trackedSeries, viewports]);
1323
+ }, [thumbnailImageSrcMap, trackedSeries, viewports, dataSource, displaySetService]);
1465
1324
  const tabs = _createStudyBrowserTabs(StudyInstanceUIDs, studyDisplayList, displaySets, hangingProtocolService);
1466
1325
 
1467
1326
  // TODO: Should not fire this on "close"
@@ -1571,14 +1430,16 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
1571
1430
  const thumbnailNoImageDisplaySets = [];
1572
1431
  displaySets.filter(ds => !ds.excludeFromThumbnailBrowser).forEach(ds => {
1573
1432
  const imageSrc = thumbnailImageSrcMap[ds.displaySetInstanceUID];
1574
- const componentType = _getComponentType(ds.Modality);
1433
+ const componentType = _getComponentType(ds);
1575
1434
  const numPanes = viewportGridService.getNumViewportPanes();
1576
- const viewportIdentificator = numPanes === 1 ? [] : viewports.reduce((acc, viewportData, index) => {
1577
- if (index < numPanes && viewportData?.displaySetInstanceUIDs?.includes(ds.displaySetInstanceUID)) {
1578
- acc.push(viewportData.viewportLabel);
1579
- }
1580
- return acc;
1581
- }, []);
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
+ }
1582
1443
  const array = componentType === 'thumbnailTracked' ? thumbnailDisplaySets : thumbnailNoImageDisplaySets;
1583
1444
  const {
1584
1445
  displaySetInstanceUID
@@ -1591,6 +1452,7 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
1591
1452
  seriesDate: formatDate(ds.SeriesDate),
1592
1453
  numInstances: ds.numImageFrames,
1593
1454
  countIcon: ds.countIcon,
1455
+ messages: ds.messages,
1594
1456
  StudyInstanceUID: ds.StudyInstanceUID,
1595
1457
  componentType,
1596
1458
  imageSrc,
@@ -1601,11 +1463,12 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
1601
1463
  },
1602
1464
 
1603
1465
  isTracked: trackedSeriesInstanceUIDs.includes(ds.SeriesInstanceUID),
1466
+ isHydratedForDerivedDisplaySet: ds.isHydrated,
1604
1467
  viewportIdentificator
1605
1468
  };
1606
1469
  if (componentType === 'thumbnailNoImage') {
1607
1470
  if (dataSource.reject && dataSource.reject.series) {
1608
- thumbnailProps.canReject = true;
1471
+ thumbnailProps.canReject = !ds?.unsupported;
1609
1472
  thumbnailProps.onReject = () => {
1610
1473
  uiDialogService.create({
1611
1474
  id: 'ds-reject-sr',
@@ -1616,16 +1479,18 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
1616
1479
  contentProps: {
1617
1480
  title: 'Delete Report',
1618
1481
  body: () => /*#__PURE__*/react.createElement("div", {
1619
- className: "p-4 text-white bg-primary-dark"
1620
- }, /*#__PURE__*/react.createElement("p", null, "Are you sure you want to delete this report?"), /*#__PURE__*/react.createElement("p", null, "This action cannot be undone.")),
1482
+ className: "bg-primary-dark p-4 text-white"
1483
+ }, /*#__PURE__*/react.createElement("p", null, "Are you sure you want to delete this report?"), /*#__PURE__*/react.createElement("p", {
1484
+ className: "mt-2"
1485
+ }, "This action cannot be undone.")),
1621
1486
  actions: [{
1622
1487
  id: 'cancel',
1623
1488
  text: 'Cancel',
1624
- type: ui_src/* ButtonEnums.type */.LZ.U.secondary
1489
+ type: ui_src/* ButtonEnums.type */.LZ.dt.secondary
1625
1490
  }, {
1626
1491
  id: 'yes',
1627
1492
  text: 'Yes',
1628
- type: ui_src/* ButtonEnums.type */.LZ.U.primary,
1493
+ type: ui_src/* ButtonEnums.type */.LZ.dt.primary,
1629
1494
  classes: ['reject-yes-button']
1630
1495
  }],
1631
1496
  onClose: () => uiDialogService.dismiss({
@@ -1635,10 +1500,10 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
1635
1500
  const yesButton = document.querySelector('.reject-yes-button');
1636
1501
  yesButton.focus();
1637
1502
  },
1638
- onSubmit: async _ref3 => {
1503
+ onSubmit: async _ref2 => {
1639
1504
  let {
1640
1505
  action
1641
- } = _ref3;
1506
+ } = _ref2;
1642
1507
  switch (action.id) {
1643
1508
  case 'yes':
1644
1509
  try {
@@ -1682,8 +1547,8 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
1682
1547
  return [...thumbnailDisplaySets, ...thumbnailNoImageDisplaySets];
1683
1548
  }
1684
1549
  const thumbnailNoImageModalities = ['SR', 'SEG', 'SM', 'RTSTRUCT', 'RTPLAN', 'RTDOSE', 'DOC', 'OT'];
1685
- function _getComponentType(Modality) {
1686
- if (thumbnailNoImageModalities.includes(Modality)) {
1550
+ function _getComponentType(ds) {
1551
+ if (thumbnailNoImageModalities.includes(ds.Modality) || ds?.unsupported) {
1687
1552
  return 'thumbnailNoImage';
1688
1553
  }
1689
1554
  return 'thumbnailTracked';
@@ -1880,10 +1745,8 @@ WrappedPanelStudyBrowserTracking.propTypes = {
1880
1745
  servicesManager: (prop_types_default()).object.isRequired
1881
1746
  };
1882
1747
  /* harmony default export */ const panels_PanelStudyBrowserTracking = (WrappedPanelStudyBrowserTracking);
1883
- // EXTERNAL MODULE: ./hooks/index.js + 3 modules
1884
- var hooks = __webpack_require__(39852);
1885
- // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
1886
- var es = __webpack_require__(21572);
1748
+ // EXTERNAL MODULE: ./hooks/index.js + 1 modules
1749
+ var hooks = __webpack_require__(10800);
1887
1750
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/ActionButtons.tsx
1888
1751
 
1889
1752
 
@@ -1901,13 +1764,13 @@ function ActionButtons(_ref) {
1901
1764
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
1902
1765
  onClick: onExportClick,
1903
1766
  disabled: disabled,
1904
- type: ui_src/* ButtonEnums.type */.LZ.U.secondary,
1905
- size: ui_src/* ButtonEnums.size */.LZ.d.small
1767
+ type: ui_src/* ButtonEnums.type */.LZ.dt.secondary,
1768
+ size: ui_src/* ButtonEnums.size */.LZ.dp.small
1906
1769
  }, t('Export')), /*#__PURE__*/react.createElement(ui_src/* Button */.zx, {
1907
1770
  className: "ml-2",
1908
1771
  onClick: onCreateReportClick,
1909
- type: ui_src/* ButtonEnums.type */.LZ.U.secondary,
1910
- size: ui_src/* ButtonEnums.size */.LZ.d.small,
1772
+ type: ui_src/* ButtonEnums.type */.LZ.dt.secondary,
1773
+ size: ui_src/* ButtonEnums.size */.LZ.dp.small,
1911
1774
  disabled: disabled
1912
1775
  }, t('Create Report')));
1913
1776
  }
@@ -1923,7 +1786,7 @@ ActionButtons.defaultProps = {
1923
1786
  };
1924
1787
  /* harmony default export */ const PanelMeasurementTableTracking_ActionButtons = (ActionButtons);
1925
1788
  // EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
1926
- var lodash_debounce = __webpack_require__(40001);
1789
+ var lodash_debounce = __webpack_require__(8324);
1927
1790
  var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
1928
1791
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.tsx
1929
1792
 
@@ -1955,9 +1818,9 @@ function PanelMeasurementTableTracking(_ref) {
1955
1818
  servicesManager,
1956
1819
  extensionManager
1957
1820
  } = _ref;
1958
- const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.O_)();
1821
+ const [viewportGrid] = (0,ui_src/* useViewportGrid */.O_)();
1959
1822
  const [measurementChangeTimestamp, setMeasurementsUpdated] = (0,react.useState)(Date.now().toString());
1960
- const debouncedMeasurementChangeTimestamp = (0,hooks/* useDebounce */.Nr)(measurementChangeTimestamp, 200);
1823
+ const debouncedMeasurementChangeTimestamp = (0,hooks/* useDebounce */.N)(measurementChangeTimestamp, 200);
1961
1824
  const {
1962
1825
  measurementService,
1963
1826
  uiDialogService,
@@ -2051,7 +1914,7 @@ function PanelMeasurementTableTracking(_ref) {
2051
1914
  uid,
2052
1915
  isActive
2053
1916
  } = _ref2;
2054
- measurementService.jumpToMeasurement(viewportGrid.activeViewportIndex, uid);
1917
+ measurementService.jumpToMeasurement(viewportGrid.activeViewportId, uid);
2055
1918
  onMeasurementItemClickHandler({
2056
1919
  uid,
2057
1920
  isActive
@@ -2124,7 +1987,7 @@ function PanelMeasurementTableTracking(_ref) {
2124
1987
  labelClassName: "text-white grow text-[14px] leading-[1.2]",
2125
1988
  autoFocus: true,
2126
1989
  id: "annotation",
2127
- className: "bg-black border-primary-main",
1990
+ className: "border-primary-main bg-black",
2128
1991
  type: "text",
2129
1992
  value: value.label,
2130
1993
  onChange: onChangeHandler,
@@ -2134,11 +1997,11 @@ function PanelMeasurementTableTracking(_ref) {
2134
1997
  actions: [{
2135
1998
  id: 'cancel',
2136
1999
  text: 'Cancel',
2137
- type: ui_src/* ButtonEnums.type */.LZ.U.secondary
2000
+ type: ui_src/* ButtonEnums.type */.LZ.dt.secondary
2138
2001
  }, {
2139
2002
  id: 'save',
2140
2003
  text: 'Save',
2141
- type: ui_src/* ButtonEnums.type */.LZ.U.primary
2004
+ type: ui_src/* ButtonEnums.type */.LZ.dt.primary
2142
2005
  }],
2143
2006
  onSubmit: onSubmitHandler
2144
2007
  }
@@ -2160,7 +2023,7 @@ function PanelMeasurementTableTracking(_ref) {
2160
2023
  const displayMeasurementsWithoutFindings = displayMeasurements.filter(dm => dm.measurementType !== measurementService.VALUE_TYPES.POINT);
2161
2024
  const additionalFindings = displayMeasurements.filter(dm => dm.measurementType === measurementService.VALUE_TYPES.POINT);
2162
2025
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
2163
- className: "overflow-x-hidden overflow-y-auto invisible-scrollbar",
2026
+ className: "invisible-scrollbar overflow-y-auto overflow-x-hidden",
2164
2027
  ref: measurementsPanelRef,
2165
2028
  "data-cy": 'trackedMeasurements-panel'
2166
2029
  }, displayStudySummary.key && /*#__PURE__*/react.createElement(ui_src/* StudySummary */.YL, {
@@ -2185,7 +2048,7 @@ function PanelMeasurementTableTracking(_ref) {
2185
2048
  onExportClick: exportReport,
2186
2049
  onCreateReportClick: () => {
2187
2050
  sendTrackedMeasurementsEvent('SAVE_REPORT', {
2188
- viewportIndex: viewportGrid.activeViewportIndex,
2051
+ viewportId: viewportGrid.activeViewportId,
2189
2052
  isBackupSave: true
2190
2053
  });
2191
2054
  },
@@ -2234,7 +2097,9 @@ function _mapMeasurementToDisplay(measurement, types, displaySetService) {
2234
2097
  if (findingSites) {
2235
2098
  const siteText = [];
2236
2099
  findingSites.forEach(site => {
2237
- if (site?.text !== label) siteText.push(site.text);
2100
+ if (site?.text !== label) {
2101
+ siteText.push(site.text);
2102
+ }
2238
2103
  });
2239
2104
  displayText = [...siteText, ...displayText];
2240
2105
  }
@@ -2273,7 +2138,7 @@ function getPanelModule(_ref) {
2273
2138
  } = _ref;
2274
2139
  return [{
2275
2140
  name: 'seriesList',
2276
- iconName: 'group-layers',
2141
+ iconName: 'tab-studies',
2277
2142
  iconLabel: 'Studies',
2278
2143
  label: 'Studies',
2279
2144
  component: panels_PanelStudyBrowserTracking.bind(null, {
@@ -2298,7 +2163,7 @@ function getPanelModule(_ref) {
2298
2163
  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
2164
 
2300
2165
  const Component = /*#__PURE__*/react.lazy(() => {
2301
- return __webpack_require__.e(/* import() */ 799).then(__webpack_require__.bind(__webpack_require__, 91799));
2166
+ return __webpack_require__.e(/* import() */ 822).then(__webpack_require__.bind(__webpack_require__, 86822));
2302
2167
  });
2303
2168
  const OHIFCornerstoneViewport = props => {
2304
2169
  return /*#__PURE__*/react.createElement(react.Suspense, {