@ohif/app 3.7.0-beta.15 → 3.7.0-beta.17

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 (21) hide show
  1. package/dist/{744.bundle.d918604b9ecf94dbecd9.js → 744.bundle.f9adc3045b3d3608e908.js} +7 -3
  2. package/dist/{799.bundle.f42a53c72bd5e9074d2b.js → 799.bundle.6fbb7a97bccfb55dc79f.js} +3 -3
  3. package/dist/{82.bundle.ce8fa41ece8f443f63d9.js → 82.bundle.775917b8089f150b350d.js} +2 -2
  4. package/dist/{app.bundle.ff6f2b8099565624138a.js → app.bundle.e22f8e462697bb04de00.js} +395 -29
  5. package/dist/index.html +1 -1
  6. package/dist/sw.js +1 -1
  7. package/package.json +18 -18
  8. /package/dist/{192.bundle.3ce5ddfb38a988becbf0.js → 192.bundle.e144d79518d81dfd347d.js} +0 -0
  9. /package/dist/{199.bundle.853fc01eb467a6b51828.js → 199.bundle.6847fd50cf715abd0230.js} +0 -0
  10. /package/dist/{208.bundle.1c43a0edd3ff883e4325.js → 208.bundle.0860d24e10a794f2d4d0.js} +0 -0
  11. /package/dist/{283.bundle.de72bd7bb6e0e40b90fc.js → 283.bundle.6382f27eff42c3ab9601.js} +0 -0
  12. /package/dist/{404.bundle.d37609a316bccab1a8b4.js → 404.bundle.2f12d83bb2ad5ca4e36a.js} +0 -0
  13. /package/dist/{50.bundle.8654cf02de80e4de8337.js → 50.bundle.d5584534ccc68e336bf6.js} +0 -0
  14. /package/dist/{616.bundle.add3f87e47354e34b036.js → 616.bundle.372ba6c548881b30b7d2.js} +0 -0
  15. /package/dist/{642.bundle.d5d3fed8a378bcf2ac45.js → 642.bundle.24a485d5f4c648e69090.js} +0 -0
  16. /package/dist/{707.bundle.cd75ab78a6c30179587a.js → 707.bundle.753ce0549c40c4a0fa6a.js} +0 -0
  17. /package/dist/{790.bundle.dc58d7dbc051610f5bde.js → 790.bundle.a81299637cfd20e1e170.js} +0 -0
  18. /package/dist/{917.bundle.14e9de4ff77da49906d2.js → 917.bundle.4685b27c10ed71e4bae0.js} +0 -0
  19. /package/dist/{973.bundle.b712bda104914bc3a28d.js → 973.bundle.5ad79ca89de61d2cb04e.js} +0 -0
  20. /package/dist/{976.bundle.b043df53dbe275d4ee3e.js → 976.bundle.c1be5b548f9425607f82.js} +0 -0
  21. /package/dist/{984.bundle.b434c6f55782bafb1322.js → 984.bundle.832ca59cc6bfe38b256c.js} +0 -0
@@ -1242,6 +1242,8 @@ var react = __webpack_require__(32735);
1242
1242
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
1243
1243
  var prop_types = __webpack_require__(60216);
1244
1244
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
1245
+ // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
1246
+ var es = __webpack_require__(21572);
1245
1247
  // EXTERNAL MODULE: ../../core/src/index.ts + 102 modules
1246
1248
  var src = __webpack_require__(62771);
1247
1249
  // EXTERNAL MODULE: ../../ui/src/index.js + 452 modules
@@ -1252,6 +1254,7 @@ var ui_src = __webpack_require__(28619);
1252
1254
 
1253
1255
 
1254
1256
 
1257
+
1255
1258
  const {
1256
1259
  formatDate
1257
1260
  } = src.utils;
@@ -1275,6 +1278,9 @@ function PanelStudyBrowserTracking(_ref) {
1275
1278
  hangingProtocolService,
1276
1279
  uiNotificationService
1277
1280
  } = servicesManager.services;
1281
+ const {
1282
+ t
1283
+ } = (0,es/* useTranslation */.$G)('Common');
1278
1284
 
1279
1285
  // Normally you nest the components so the tree isn't so deep, and the data
1280
1286
  // doesn't have to have such an intense shape. This works well enough for now.
@@ -1367,7 +1373,7 @@ function PanelStudyBrowserTracking(_ref) {
1367
1373
  const actuallyMappedStudies = mappedStudies.map(qidoStudy => {
1368
1374
  return {
1369
1375
  studyInstanceUid: qidoStudy.StudyInstanceUID,
1370
- date: formatDate(qidoStudy.StudyDate),
1376
+ date: formatDate(qidoStudy.StudyDate) || t('NoStudyDate'),
1371
1377
  description: qidoStudy.StudyDescription,
1372
1378
  modalities: qidoStudy.ModalitiesInStudy,
1373
1379
  numInstances: qidoStudy.NumInstances
@@ -1888,8 +1894,6 @@ WrappedPanelStudyBrowserTracking.propTypes = {
1888
1894
  /* harmony default export */ const panels_PanelStudyBrowserTracking = (WrappedPanelStudyBrowserTracking);
1889
1895
  // EXTERNAL MODULE: ./hooks/index.js + 3 modules
1890
1896
  var hooks = __webpack_require__(39852);
1891
- // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
1892
- var es = __webpack_require__(21572);
1893
1897
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/ActionButtons.tsx
1894
1898
 
1895
1899
 
@@ -40,7 +40,7 @@ function TrackedCornerstoneViewport(props) {
40
40
  } = props;
41
41
  const {
42
42
  t
43
- } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .useTranslation */ .$G)('TrackedViewport');
43
+ } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .useTranslation */ .$G)('Common');
44
44
  const {
45
45
  measurementService,
46
46
  cornerstoneViewportService
@@ -69,6 +69,7 @@ function TrackedCornerstoneViewport(props) {
69
69
  PatientAge,
70
70
  SliceThickness,
71
71
  SpacingBetweenSlices,
72
+ StudyDate,
72
73
  ManufacturerModelName
73
74
  } = displaySet.images[0];
74
75
  const updateIsTracked = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
@@ -159,8 +160,7 @@ function TrackedCornerstoneViewport(props) {
159
160
  getStatusComponent: () => _getStatusComponent(isTracked),
160
161
  studyData: {
161
162
  label: viewportLabel,
162
- studyDate: formatDate(SeriesDate),
163
- // TODO: This is series date. Is that ok?
163
+ studyDate: formatDate(SeriesDate) || formatDate(StudyDate) || t('NoStudyDate'),
164
164
  currentSeries: SeriesNumber,
165
165
  // TODO - switch entire currentSeries to be UID based or actual position based
166
166
  seriesDescription: SeriesDescription,
@@ -2149,8 +2149,8 @@ function ViewerLayout(_ref) {
2149
2149
  hotkeyDefinitions,
2150
2150
  hotkeyDefaults
2151
2151
  } = hotkeysManager;
2152
- const versionNumber = "3.7.0-beta.15";
2153
- const commitHash = "b5b7d323c880f8d288762e0f0e2697fd313df12f";
2152
+ const versionNumber = "3.7.0-beta.17";
2153
+ const commitHash = "e6539618583b1f34e131435f16e1817328fb1297";
2154
2154
  const menuOptions = [{
2155
2155
  title: t('Header:About'),
2156
2156
  icon: 'info',
@@ -5111,8 +5111,8 @@ function WorkList(_ref) {
5111
5111
  };
5112
5112
  });
5113
5113
  const hasStudies = numOfStudies > 0;
5114
- const versionNumber = "3.7.0-beta.15";
5115
- const commitHash = "b5b7d323c880f8d288762e0f0e2697fd313df12f";
5114
+ const versionNumber = "3.7.0-beta.17";
5115
+ const commitHash = "e6539618583b1f34e131435f16e1817328fb1297";
5116
5116
  const menuOptions = [{
5117
5117
  title: t('Header:About'),
5118
5118
  icon: 'info',
@@ -10458,23 +10458,176 @@ var validate = __webpack_require__(7315);
10458
10458
  var validate_default = /*#__PURE__*/__webpack_require__.n(validate);
10459
10459
  ;// CONCATENATED MODULE: ../../core/src/services/HangingProtocolService/lib/validator.js
10460
10460
 
10461
- (validate_default()).validators.equals = function (value, options, key, attributes) {
10462
- const testValue = options?.value ?? options;
10463
- if (value !== testValue) {
10464
- return key + 'must equal ' + testValue;
10461
+ /**
10462
+ * check if the value is strictly equal to options
10463
+ *
10464
+ * @example
10465
+ * value = ['abc', 'def', 'GHI']
10466
+ * testValue = 'abc' (Fail)
10467
+ * = ['abc'] (Fail)
10468
+ * = ['abc', 'def', 'GHI'] (Valid)
10469
+ * = ['abc', 'GHI', 'def'] (Fail)
10470
+ * = ['abc', 'def'] (Fail)
10471
+ *
10472
+ * value = 'Attenuation Corrected'
10473
+ * testValue = 'Attenuation Corrected' (Valid)
10474
+ * testValue = 'Attenuation' (Fail)
10475
+ *
10476
+ * value = ['Attenuation Corrected']
10477
+ * testValue = ['Attenuation Corrected'] (Valid)
10478
+ * = 'Attenuation Corrected' (Valid)
10479
+ * = 'Attenuation' (Fail)
10480
+ *
10481
+ * */
10482
+ (validate_default()).validators.equals = function (value, options, key) {
10483
+ const testValue = getTestValue(options);
10484
+ const dicomArrayValue = dicomTagToArray(value);
10485
+
10486
+ // If options is an array, then we need to validate each element in the array
10487
+ if (Array.isArray(testValue)) {
10488
+ // If the array has only one element, then we need to compare the value to that element
10489
+ if (testValue.length !== dicomArrayValue.length) {
10490
+ return `${key} must be an array of length ${testValue.length}`;
10491
+ } else {
10492
+ for (let i = 0; i < testValue.length; i++) {
10493
+ if (testValue[i] !== dicomArrayValue[i]) {
10494
+ return `${key} ${testValue[i]} must equal ${dicomArrayValue[i]}`;
10495
+ }
10496
+ }
10497
+ }
10498
+ } else if (testValue !== dicomArrayValue[0]) {
10499
+ return `${key} must equal ${testValue}`;
10465
10500
  }
10466
10501
  };
10502
+ /**
10503
+ * check if the value is not equal to options
10504
+ *
10505
+ * @example
10506
+ * value = ['abc', 'def', 'GHI']
10507
+ * testValue = 'abc' (Valid)
10508
+ * = ['abc'] (Valid)
10509
+ * = ['abc', 'def', 'GHI'] (Fail)
10510
+ * = ['abc', 'GHI', 'def'] (Valid)
10511
+ * = ['abc', 'def'] (Valid)
10512
+ *
10513
+ * value = 'Attenuation Corrected'
10514
+ * = 'Attenuation Corrected' (Fail)
10515
+ * = 'Attenuation' (Valid)
10516
+ *
10517
+ * value = ['Attenuation Corrected']
10518
+ * testValue = ['Attenuation Corrected'] (Fail)
10519
+ * = 'Attenuation Corrected' (Fail)
10520
+ * = 'Attenuation' (Fail)
10521
+ * */
10467
10522
  (validate_default()).validators.doesNotEqual = function (value, options, key) {
10468
- const testValue = options?.value ?? options;
10469
- if (value === testValue) {
10470
- return key + 'cannot equal ' + testValue;
10523
+ const testValue = getTestValue(options);
10524
+ const dicomArrayValue = dicomTagToArray(value);
10525
+ if (Array.isArray(testValue)) {
10526
+ if (testValue.length === dicomArrayValue.length) {
10527
+ let score = 0;
10528
+ testValue.forEach((x, i) => {
10529
+ if (x === dicomArrayValue[i]) {
10530
+ score++;
10531
+ }
10532
+ });
10533
+ if (score === testValue.length) {
10534
+ return `${key} must not equal to ${testValue}`;
10535
+ }
10536
+ }
10537
+ } else if (testValue === dicomArrayValue[0]) {
10538
+ console.debug(dicomArrayValue, testValue);
10539
+ return `${key} must not equal to ${testValue}`;
10471
10540
  }
10472
10541
  };
10473
10542
 
10543
+ /**
10544
+ * Check if a value includes one or more specified options.
10545
+ *
10546
+ * @example
10547
+ * value = ['abc', 'def', 'GHI']
10548
+ * testValue = ‘abc’ (Fail)
10549
+ * = ‘dog’ (Fail)
10550
+ * = [‘abc’] (Valid)
10551
+ * = [‘att’, ‘abc’] (Valid)
10552
+ * = ['abc', 'def', 'dog'] (Valid)
10553
+ * = ['cat', 'dog'] (Fail)
10554
+ *
10555
+ * value = ['Attenuation Corrected']
10556
+ * testValue = 'Attenuation Corrected' (Fail)
10557
+ * = ['Attenuation Corrected', 'Corrected'] (Valid)
10558
+ * = ['Attenuation', 'Corrected'] (Fail)
10559
+ *
10560
+ * value = 'Attenuation Corrected'
10561
+ * testValue = ['Attenuation Corrected', 'Corrected'] (Valid)
10562
+ * = ['Attenuation', 'Corrected'] (Fail)
10563
+ * */
10564
+ (validate_default()).validators.includes = function (value, options, key) {
10565
+ const testValue = getTestValue(options);
10566
+ const dicomArrayValue = dicomTagToArray(value);
10567
+ if (Array.isArray(testValue)) {
10568
+ const includedValues = testValue.filter(el => dicomArrayValue.includes(el));
10569
+ if (includedValues.length === 0) {
10570
+ return `${key} must include at least one of the following values: ${testValue.join(', ')}`;
10571
+ }
10572
+ } else return `${key} ${testValue} must be an array`;
10573
+ // else if (!value.includes(testValue)) {
10574
+ // return `${key} ${value} must include ${testValue}`;
10575
+ // }
10576
+ };
10577
+ /**
10578
+ * Check if a value does not include one or more specified options.
10579
+ *
10580
+ * @example
10581
+ * value = ['abc', 'def', 'GHI']
10582
+ * testValue = ['Corr'] (Valid)
10583
+ * = 'abc' (Fail)
10584
+ * = ['abc'] (Fail)
10585
+ * = [‘att’, ‘cor’] (Valid)
10586
+ * = ['abc', 'def', 'dog'] (Fail)
10587
+ *
10588
+ * value = ['Attenuation Corrected']
10589
+ * testValue = 'Attenuation Corrected' (Fail)
10590
+ * = ['Attenuation Corrected', 'Corrected'] (Fail)
10591
+ * = ['Attenuation', 'Corrected'] (Valid)
10592
+ *
10593
+ * value = 'Attenuation Corrected'
10594
+ * testValue = ['Attenuation Corrected', 'Corrected'] (Fail)
10595
+ * = ['Attenuation', 'Corrected'] (Valid)
10596
+ * */
10597
+ (validate_default()).validators.doesNotInclude = function (value, options, key) {
10598
+ const testValue = getTestValue(options);
10599
+ const dicomArrayValue = dicomTagToArray(value);
10600
+
10601
+ // if (!Array.isArray(value) || value.length === 1) {
10602
+ // return `${key} is not allowed as a single value`;
10603
+ // }
10604
+ if (Array.isArray(testValue)) {
10605
+ const includedValues = testValue.filter(el => dicomArrayValue.includes(el));
10606
+ if (includedValues.length > 0) {
10607
+ return `${key} must not include the following value: ${includedValues}`;
10608
+ }
10609
+ } else return `${key} ${testValue} must be an array`;
10610
+ };
10474
10611
  // Ignore case contains.
10475
10612
  // options testValue MUST be in lower case already, otherwise it won't match
10613
+ /**
10614
+ * @example
10615
+ * value = 'Attenuation Corrected'
10616
+ * testValue = ‘Corr’ (Valid)
10617
+ * = ‘corr’ (Valid)
10618
+ * = [‘att’, ‘cor’] (Valid)
10619
+ * = [‘Att’, ‘Wall’] (Valid)
10620
+ * = [‘cat’, ‘dog’] (Fail)
10621
+ *
10622
+ * value = ['abc', 'def', 'GHI']
10623
+ * testValue = 'def' (Valid)
10624
+ * = 'dog' (Fail)
10625
+ * = ['gh', 'de'] (Valid)
10626
+ * = ['cat', 'dog'] (Fail)
10627
+ *
10628
+ * */
10476
10629
  (validate_default()).validators.containsI = function (value, options, key) {
10477
- const testValue = options?.value ?? options;
10630
+ const testValue = getTestValue(options);
10478
10631
  if (Array.isArray(value)) {
10479
10632
  if (value.some(item => !validate_default().validators.containsI(item.toLowerCase(), options, key))) {
10480
10633
  return undefined;
@@ -10482,17 +10635,33 @@ var validate_default = /*#__PURE__*/__webpack_require__.n(validate);
10482
10635
  return `No item of ${value.join(',')} contains ${JSON.stringify(testValue)}`;
10483
10636
  }
10484
10637
  if (Array.isArray(testValue)) {
10485
- if (testValue.some(subTest => !validate_default().validators.containsI(value, subTest, key))) {
10638
+ if (testValue.some(subTest => !validate_default().validators.containsI(value, subTest.toLowerCase(), key))) {
10486
10639
  return;
10487
10640
  }
10488
10641
  return `${key} must contain at least one of ${testValue.join(',')}`;
10489
10642
  }
10490
- if (testValue && value.indexOf && value.toLowerCase().indexOf(testValue) === -1) {
10643
+ if (testValue && value.indexOf && value.toLowerCase().indexOf(testValue.toLowerCase()) === -1) {
10491
10644
  return key + 'must contain any case of' + testValue;
10492
10645
  }
10493
10646
  };
10647
+ /**
10648
+ * @example
10649
+ * value = 'Attenuation Corrected'
10650
+ * testValue = ‘Corr’ (Valid)
10651
+ * = ‘corr’ (Fail)
10652
+ * = [‘att’, ‘cor’] (Fail)
10653
+ * = [‘Att’, ‘Wall’] (Valid)
10654
+ * = [‘cat’, ‘dog’] (Fail)
10655
+ *
10656
+ * value = ['abc', 'def', 'GHI']
10657
+ * testValue = 'def' (Valid)
10658
+ * = 'dog' (Fail)
10659
+ * = ['cat', 'de'] (Valid)
10660
+ * = ['cat', 'dog'] (Fail)
10661
+ *
10662
+ * */
10494
10663
  (validate_default()).validators.contains = function (value, options, key) {
10495
- const testValue = options?.value ?? options;
10664
+ const testValue = getTestValue(options);
10496
10665
  if (Array.isArray(value)) {
10497
10666
  if (value.some(item => !validate_default().validators.contains(item, options, key))) {
10498
10667
  return undefined;
@@ -10509,35 +10678,231 @@ var validate_default = /*#__PURE__*/__webpack_require__.n(validate);
10509
10678
  return key + 'must contain ' + testValue;
10510
10679
  }
10511
10680
  };
10681
+ /**
10682
+ * @example
10683
+ * value = 'Attenuation Corrected'
10684
+ * testValue = ‘Corr’ (Fail)
10685
+ * = ‘corr’ (Valid)
10686
+ * = [‘att’, ‘cor’] (Valid)
10687
+ * = [‘Att’, ‘Wall’] (Fail)
10688
+ * = [‘cat’, ‘dog’] (Valid)
10689
+ *
10690
+ * value = ['abc', 'def', 'GHI']
10691
+ * testValue = 'def' (Fail)
10692
+ * = 'dog' (Valid)
10693
+ * = ['cat', 'de'] (Fail)
10694
+ * = ['cat', 'dog'] (Valid)
10695
+ *
10696
+ * */
10512
10697
  (validate_default()).validators.doesNotContain = function (value, options, key) {
10513
- if (options && value.indexOf && value.indexOf(options.value) !== -1) {
10514
- return key + 'cannot contain ' + options.value;
10698
+ const containsResult = validate_default().validators.contains(value, options, key);
10699
+ if (!containsResult) {
10700
+ return `No item of ${value} should contain ${getTestValue(options)}`;
10701
+ }
10702
+ };
10703
+
10704
+ /**
10705
+ * @example
10706
+ * value = 'Attenuation Corrected'
10707
+ * testValue = ‘Corr’ (Fail)
10708
+ * = ‘corr’ (Fail)
10709
+ * = [‘att’, ‘cor’] (Fail)
10710
+ * = [‘Att’, ‘Wall’] (Fail)
10711
+ * = [‘cat’, ‘dog’] (Valid)
10712
+ *
10713
+ * value = ['abc', 'def', 'GHI']
10714
+ * testValue = 'DEF' (Fail)
10715
+ * = 'dog' (Valid)
10716
+ * = ['cat', 'gh'] (Fail)
10717
+ * = ['cat', 'dog'] (Valid)
10718
+ *
10719
+ * */
10720
+ (validate_default()).validators.doesNotContainI = function (value, options, key) {
10721
+ const containsResult = validate_default().validators.containsI(value, options, key);
10722
+ if (!containsResult) {
10723
+ return `No item of ${value} should not contain ${getTestValue(options)}`;
10515
10724
  }
10516
10725
  };
10726
+ /**
10727
+ * @example
10728
+ * value = 'Attenuation Corrected'
10729
+ * testValue = ‘Corr’ (Fail)
10730
+ * = ‘Att’ (Fail)
10731
+ * = ['cat', 'dog', 'Att'] (Valid)
10732
+ * = [‘cat’, ‘dog’] (Fail)
10733
+ *
10734
+ * value = ['abc', 'def', 'GHI']
10735
+ * testValue = 'deg' (Valid)
10736
+ * = ['cat', 'GH'] (Valid)
10737
+ * = ['cat', 'gh'] (Fail)
10738
+ * = ['cat', 'dog'] (Fail)
10739
+ *
10740
+ * */
10517
10741
  (validate_default()).validators.startsWith = function (value, options, key) {
10518
- if (options && value.startsWith && !value.startsWith(options.value)) {
10519
- return key + 'must start with ' + options.value;
10742
+ let testValues = getTestValue(options);
10743
+ if (typeof testValues === 'string') {
10744
+ testValues = [testValues];
10745
+ }
10746
+ if (typeof value === 'string') {
10747
+ if (!testValues.some(testValue => value.startsWith(testValue))) {
10748
+ return key + ' must start with any of these values: ' + testValues;
10749
+ }
10750
+ } else if (Array.isArray(value)) {
10751
+ let valid = false;
10752
+ for (let i = 0; i < value.length; i++) {
10753
+ for (let j = 0; j < testValues.length; j++) {
10754
+ if (value[i].startsWith(testValues[j])) {
10755
+ valid = true; // set valid flag to true if a match is found
10756
+ break;
10757
+ }
10758
+ }
10759
+ if (valid) {
10760
+ return undefined; // break out of loop if a match is found
10761
+ }
10762
+ }
10763
+
10764
+ if (!valid) {
10765
+ return key + ' must start with any of these values: ' + testValues; // return undefined if no match is found
10766
+ }
10767
+ } else {
10768
+ return 'Value must be a string or an array';
10520
10769
  }
10521
10770
  };
10771
+
10772
+ /**
10773
+ * @example
10774
+ * value = 'Attenuation Corrected'
10775
+ * testValue = ‘TED’ (Fail)
10776
+ * = ‘ted’ (Valid)
10777
+ * = ['cat', 'dog', 'ted'] (Valid)
10778
+ * = [‘cat’, ‘dog’] (Fail)
10779
+ *
10780
+ * value = ['abc', 'def', 'GHI']
10781
+ * testValue = 'deg' (Valid)
10782
+ * = ['cat', 'HI'] (Valid)
10783
+ * = ['cat', 'hi'] (Fail)
10784
+ * = ['cat', 'dog'] (Fail)
10785
+ *
10786
+ * */
10522
10787
  (validate_default()).validators.endsWith = function (value, options, key) {
10523
- if (options && value.endsWith && !value.endsWith(options.value)) {
10524
- return key + 'must end with ' + options.value;
10788
+ let testValues = getTestValue(options);
10789
+ if (typeof testValues === 'string') {
10790
+ testValues = [testValues];
10791
+ }
10792
+ if (typeof value === 'string') {
10793
+ if (!testValues.some(testValue => value.endsWith(testValue))) {
10794
+ return key + ' must end with any of these values: ' + testValues;
10795
+ }
10796
+ } else if (Array.isArray(value)) {
10797
+ let valid = false;
10798
+ for (let i = 0; i < value.length; i++) {
10799
+ for (let j = 0; j < testValues.length; j++) {
10800
+ if (value[i].endsWith(testValues[j])) {
10801
+ valid = true; // set valid flag to true if a match is found
10802
+ break;
10803
+ }
10804
+ }
10805
+ if (valid) {
10806
+ return undefined; // break out of loop if a match is found
10807
+ }
10808
+ }
10809
+
10810
+ if (!valid) {
10811
+ return key + ' must end with any of these values: ' + testValues; // return undefined if no match is found
10812
+ }
10813
+ } else {
10814
+ return key + ' must be a string or an array';
10525
10815
  }
10526
10816
  };
10527
- const getTestValue = options => options?.value ?? options;
10817
+ /**
10818
+ * @example
10819
+ * value = 30
10820
+ * testValue = 20 (Valid)
10821
+ * = 40 (Fail)
10822
+ *
10823
+ * */
10528
10824
  (validate_default()).validators.greaterThan = function (value, options, key) {
10529
10825
  const testValue = getTestValue(options);
10530
- if (value === undefined || value === null || value <= testValue) {
10531
- return key + 'with value ' + value + ' must be greater than ' + testValue;
10826
+ if (Array.isArray(value) || typeof value === 'string') {
10827
+ return `${key} is not allowed as an array or string`;
10828
+ }
10829
+ if (Array.isArray(testValue)) {
10830
+ if (testValue.length === 1) {
10831
+ if (!(value >= testValue[0])) {
10832
+ return `${key} must be greater than or equal to ${testValue[0]}, but was ${value}`;
10833
+ }
10834
+ } else if (testValue.length > 1) {
10835
+ return key + ' must be an array of length 1';
10836
+ }
10837
+ } else {
10838
+ if (!(value >= testValue)) {
10839
+ return key + ' must be greater than ' + testValue;
10840
+ }
10532
10841
  }
10533
10842
  };
10534
- (validate_default()).validators.range = function (value, options, key) {
10843
+ /**
10844
+ * @example
10845
+ * value = 30
10846
+ * testValue = 40 (Valid)
10847
+ * = 20 (Fail)
10848
+ *
10849
+ * */
10850
+ (validate_default()).validators.lessThan = function (value, options, key) {
10535
10851
  const testValue = getTestValue(options);
10536
- if (value === undefined || value < testValue[0] || value > testValue[1]) {
10537
- return key + 'with value ' + value + ' must be between ' + testValue[0] + ' and ' + testValue[1];
10852
+ if (Array.isArray(testValue)) {
10853
+ if (testValue.length === 1) {
10854
+ if (!(value <= testValue[0])) {
10855
+ return `${key} must be less than or equal to ${testValue[0]}, but was ${value}`;
10856
+ }
10857
+ } else if (testValue.length > 1) {
10858
+ return key + ' must be an array of length 1';
10859
+ }
10860
+ } else {
10861
+ if (!(value <= testValue)) {
10862
+ return key + ' must be less than ' + testValue;
10863
+ }
10538
10864
  }
10539
10865
  };
10866
+ /**
10867
+ * @example
10868
+
10869
+ *
10870
+ * value = 50
10871
+ * testValue = [10,60] (Valid)
10872
+ * = [60, 10] (Valid)
10873
+ * = [0, 10] (Fail)
10874
+ * = [70, 80] (Fail)
10875
+ * = 45 (Fail)
10876
+ * = [45] (Fail)
10877
+ *
10878
+ * */
10879
+ (validate_default()).validators.range = function (value, options, key) {
10880
+ const testValue = getTestValue(options);
10881
+ if (Array.isArray(testValue) && testValue.length === 2) {
10882
+ const min = Math.min(testValue[0], testValue[1]);
10883
+ const max = Math.max(testValue[0], testValue[1]);
10884
+ if (value === undefined || value < min || value > max) {
10885
+ return `${key} with value ${value} must be between ${min} and ${max}`;
10886
+ }
10887
+ } else return `${key} must be an array of length 2`;
10888
+ };
10540
10889
  (validate_default()).validators.notNull = value => value === null || value === undefined ? 'Value is null' : undefined;
10890
+ const getTestValue = options => {
10891
+ if (Array.isArray(options)) {
10892
+ return options.map(option => option?.value ?? option);
10893
+ } else {
10894
+ return options?.value ?? options;
10895
+ }
10896
+ };
10897
+ const dicomTagToArray = value => {
10898
+ let dicomArrayValue;
10899
+ if (!Array.isArray(value)) {
10900
+ dicomArrayValue = [value];
10901
+ } else {
10902
+ dicomArrayValue = [...value];
10903
+ }
10904
+ return dicomArrayValue;
10905
+ };
10541
10906
  /* harmony default export */ const validator = ((validate_default()));
10542
10907
  ;// CONCATENATED MODULE: ../../core/src/services/HangingProtocolService/HPMatcher.js
10543
10908
 
@@ -11404,7 +11769,8 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
11404
11769
  */
11405
11770
  /* harmony default export */ const formatDate = (function (date) {
11406
11771
  let format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'DD-MMM-YYYY';
11407
- return moment_default()(date).format(format);
11772
+ // moment(undefined) returns the current date, so return the empty string instead
11773
+ return date ? moment_default()(date).format(format) : '';
11408
11774
  });
11409
11775
  ;// CONCATENATED MODULE: ../../core/src/utils/formatPN.js
11410
11776
  /**
@@ -19983,7 +20349,7 @@ const detectionOptions = {
19983
20349
  }
19984
20350
  });
19985
20351
  ;// CONCATENATED MODULE: ../../i18n/package.json
19986
- const package_namespaceObject = JSON.parse('{"i8":"3.7.0-beta.14"}');
20352
+ const package_namespaceObject = JSON.parse('{"i8":"3.7.0-beta.16"}');
19987
20353
  ;// CONCATENATED MODULE: ../../i18n/src/utils.js
19988
20354
  const languagesMap = {
19989
20355
  ar: 'Arabic',
@@ -20073,7 +20439,7 @@ const Buttons_namespaceObject = JSON.parse('{"Acquired":"Acquired","Angle":"Angl
20073
20439
  ;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/CineDialog.json
20074
20440
  const CineDialog_namespaceObject = JSON.parse('{"Next image":"$t(Common:Next) $t(Common:Image)","Play / Stop":"$t(Common:Play) / $t(Common:Stop)","Previous image":"$t(Common:Previous) $t(Common:Image)","Skip to first image":"Skip to first $t(Common:Image)","Skip to last image":"Skip to last $t(Common:Image)","fps":"fps"}');
20075
20441
  ;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/Common.json
20076
- const Common_namespaceObject = JSON.parse('{"Close":"Close","Image":"Image","Layout":"Layout","LOAD":"LOAD","Measurements":"Measurements","More":"More","Next":"Next","Play":"Play","Previous":"Previous","Reset":"Reset","RowsPerPage":"rows per page","Series":"Series","Show":"Show","Stop":"Stop","StudyDate":"Study Date"}');
20442
+ const Common_namespaceObject = JSON.parse('{"Close":"Close","Image":"Image","Layout":"Layout","LOAD":"LOAD","Measurements":"Measurements","More":"More","Next":"Next","NoStudyDate":"No Study Date","Play":"Play","Previous":"Previous","Reset":"Reset","RowsPerPage":"rows per page","Series":"Series","Show":"Show","Stop":"Stop","StudyDate":"Study Date"}');
20077
20443
  ;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/DatePicker.json
20078
20444
  const DatePicker_namespaceObject = JSON.parse('{"Clear dates":"Clear dates","End Date":"End Date","Start Date":"Start Date"}');
20079
20445
  ;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/Header.json
@@ -154042,7 +154408,7 @@ var selectOrdinal = function selectOrdinal() {
154042
154408
  /******/ // This function allow to reference async chunks
154043
154409
  /******/ __webpack_require__.u = (chunkId) => {
154044
154410
  /******/ // return url for filenames based on template
154045
- /******/ return "" + (chunkId === 18 ? "dicom-microscopy-viewer" : chunkId) + ".bundle." + {"18":"aa60bdf008c32c39cfd7","50":"8654cf02de80e4de8337","55":"e9bf24eb17d84049c640","82":"ce8fa41ece8f443f63d9","151":"31ea35044218837bf73f","192":"3ce5ddfb38a988becbf0","199":"853fc01eb467a6b51828","205":"b5a473c200dcf2bbcdb4","208":"1c43a0edd3ff883e4325","270":"cddac4adcfdf8d1082a3","283":"de72bd7bb6e0e40b90fc","295":"957b1159fec14b9199a1","331":"af86275686a78739ec4c","351":"bbd6e3b383ac731edc94","381":"0905e683605fcbc0895f","404":"d37609a316bccab1a8b4","531":"2a82fb1d69e5b57cc72b","569":"a014357d3ff0c926d1a8","581":"0b1b8273eb694c11366d","606":"5d876f5f3dd8287f0a28","616":"add3f87e47354e34b036","642":"d5d3fed8a378bcf2ac45","664":"09abae984223969d1bde","707":"cd75ab78a6c30179587a","728":"d13856835357400fef82","744":"d918604b9ecf94dbecd9","780":"fd0f13dc92e9caa0581e","790":"dc58d7dbc051610f5bde","799":"f42a53c72bd5e9074d2b","806":"2e7934d0833c4315c292","917":"14e9de4ff77da49906d2","926":"dbc9d0e591cb9217fda2","935":"deeffff0e4f7b528e3c3","953":"bad442420f62f5ab0c4b","973":"b712bda104914bc3a28d","976":"b043df53dbe275d4ee3e","984":"b434c6f55782bafb1322"}[chunkId] + ".js";
154411
+ /******/ return "" + (chunkId === 18 ? "dicom-microscopy-viewer" : chunkId) + ".bundle." + {"18":"aa60bdf008c32c39cfd7","50":"d5584534ccc68e336bf6","55":"e9bf24eb17d84049c640","82":"775917b8089f150b350d","151":"31ea35044218837bf73f","192":"e144d79518d81dfd347d","199":"6847fd50cf715abd0230","205":"b5a473c200dcf2bbcdb4","208":"0860d24e10a794f2d4d0","270":"cddac4adcfdf8d1082a3","283":"6382f27eff42c3ab9601","295":"957b1159fec14b9199a1","331":"af86275686a78739ec4c","351":"bbd6e3b383ac731edc94","381":"0905e683605fcbc0895f","404":"2f12d83bb2ad5ca4e36a","531":"2a82fb1d69e5b57cc72b","569":"a014357d3ff0c926d1a8","581":"0b1b8273eb694c11366d","606":"5d876f5f3dd8287f0a28","616":"372ba6c548881b30b7d2","642":"24a485d5f4c648e69090","664":"09abae984223969d1bde","707":"753ce0549c40c4a0fa6a","728":"d13856835357400fef82","744":"f9adc3045b3d3608e908","780":"fd0f13dc92e9caa0581e","790":"a81299637cfd20e1e170","799":"6fbb7a97bccfb55dc79f","806":"2e7934d0833c4315c292","917":"4685b27c10ed71e4bae0","926":"dbc9d0e591cb9217fda2","935":"deeffff0e4f7b528e3c3","953":"bad442420f62f5ab0c4b","973":"5ad79ca89de61d2cb04e","976":"c1be5b548f9425607f82","984":"832ca59cc6bfe38b256c"}[chunkId] + ".js";
154046
154412
  /******/ };
154047
154413
  /******/ })();
154048
154414
  /******/
package/dist/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><meta name="mobile-web-app-capable" content="yes"/><meta name="application-name" content="OHIF Viewer"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta name="apple-mobile-web-app-title" content="@ohif/app"/><meta name="msapplication-TileColor" content="#fff"/><meta name="msapplication-TileImage" content="/assets/mstile-144x144.png"/><meta name="msapplication-config" content="/assets/browserconfig.xml"/><link rel="manifest" href="/manifest.json"/><link rel="shortcut icon" href="/assets/favicon.ico"/><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"/><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"/><link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-touch-icon-152x152.png"/><link rel="apple-touch-icon" sizes="167x167" href="/assets/apple-touch-icon-167x167.png"/><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon-180x180.png"/><link rel="apple-touch-icon" sizes="1024x1024" href="/assets/apple-touch-icon-1024x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-320x460.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x920.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x1096.png"/><link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-750x1294.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1182x2208.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1242x2148.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-748x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-768x1004.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1496x2048.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1536x2008.png"/><link rel="icon" type="image/png" sizes="228x228" href="/assets/coast-228x228.png"/><link rel="yandex-tableau-widget" href="/assets/yandex-browser-manifest.json"/><script>window.PUBLIC_URL = '/';</script><script rel="preload" as="script" src="/app-config.js"></script><script rel="preload" as="script" type="module" src="/init-service-worker.js"></script><title>OHIF Viewer</title><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css?family=Inter:100,300,400,500,700&display=swap" rel="stylesheet" rel="preload" as="style"/><script defer="defer" src="/app.bundle.ff6f2b8099565624138a.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><meta name="mobile-web-app-capable" content="yes"/><meta name="application-name" content="OHIF Viewer"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta name="apple-mobile-web-app-title" content="@ohif/app"/><meta name="msapplication-TileColor" content="#fff"/><meta name="msapplication-TileImage" content="/assets/mstile-144x144.png"/><meta name="msapplication-config" content="/assets/browserconfig.xml"/><link rel="manifest" href="/manifest.json"/><link rel="shortcut icon" href="/assets/favicon.ico"/><link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon-16x16.png"/><link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon-32x32.png"/><link rel="apple-touch-icon" sizes="57x57" href="/assets/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon" sizes="60x60" href="/assets/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon" sizes="72x72" href="/assets/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon" sizes="76x76" href="/assets/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon" sizes="114x114" href="/assets/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon" sizes="120x120" href="/assets/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon" sizes="144x144" href="/assets/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon" sizes="152x152" href="/assets/apple-touch-icon-152x152.png"/><link rel="apple-touch-icon" sizes="167x167" href="/assets/apple-touch-icon-167x167.png"/><link rel="apple-touch-icon" sizes="180x180" href="/assets/apple-touch-icon-180x180.png"/><link rel="apple-touch-icon" sizes="1024x1024" href="/assets/apple-touch-icon-1024x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-320x460.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x920.png"/><link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-640x1096.png"/><link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-750x1294.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1182x2208.png"/><link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 3)" href="/assets/apple-touch-startup-image-1242x2148.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-748x1024.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)" href="/assets/apple-touch-startup-image-768x1004.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1496x2048.png"/><link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="/assets/apple-touch-startup-image-1536x2008.png"/><link rel="icon" type="image/png" sizes="228x228" href="/assets/coast-228x228.png"/><link rel="yandex-tableau-widget" href="/assets/yandex-browser-manifest.json"/><script>window.PUBLIC_URL = '/';</script><script rel="preload" as="script" src="/app-config.js"></script><script rel="preload" as="script" type="module" src="/init-service-worker.js"></script><title>OHIF Viewer</title><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/><link href="https://fonts.googleapis.com/css?family=Inter:100,300,400,500,700&display=swap" rel="stylesheet" rel="preload" as="style"/><script defer="defer" src="/app.bundle.e22f8e462697bb04de00.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
package/dist/sw.js CHANGED
@@ -51,7 +51,7 @@ self.addEventListener('message', event => {
51
51
  }
52
52
  }
53
53
  });
54
- workbox.precaching.precacheAndRoute([{'revision':null,'url':'/151.bundle.31ea35044218837bf73f.js'},{'revision':null,'url':'/192.bundle.3ce5ddfb38a988becbf0.js'},{'revision':null,'url':'/199.bundle.853fc01eb467a6b51828.js'},{'revision':null,'url':'/205.bundle.b5a473c200dcf2bbcdb4.js'},{'revision':null,'url':'/208.bundle.1c43a0edd3ff883e4325.js'},{'revision':null,'url':'/270.bundle.cddac4adcfdf8d1082a3.js'},{'revision':null,'url':'/283.bundle.de72bd7bb6e0e40b90fc.js'},{'revision':null,'url':'/295.bundle.957b1159fec14b9199a1.js'},{'revision':null,'url':'/331.bundle.af86275686a78739ec4c.js'},{'revision':null,'url':'/351.bundle.bbd6e3b383ac731edc94.js'},{'revision':'a04a2f233dc569826f5f6e21b65bc87b','url':'/351.css'},{'revision':'c4ea120c6da08aa75348edfa3e57ece9','url':'/36785fbd89b0e17f6099.wasm'},{'revision':null,'url':'/381.bundle.0905e683605fcbc0895f.js'},{'revision':null,'url':'/404.bundle.d37609a316bccab1a8b4.js'},{'revision':null,'url':'/50.bundle.8654cf02de80e4de8337.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/531.bundle.2a82fb1d69e5b57cc72b.js'},{'revision':null,'url':'/55.bundle.e9bf24eb17d84049c640.js'},{'revision':'0afb25509c7f072fbd7eda42c6895dbf','url':'/55.css'},{'revision':null,'url':'/569.bundle.a014357d3ff0c926d1a8.js'},{'revision':null,'url':'/581.bundle.0b1b8273eb694c11366d.js'},{'revision':null,'url':'/606.bundle.5d876f5f3dd8287f0a28.js'},{'revision':'62b4ae8445d191d5aab5503ce475724d','url':'/610.min.worker.js'},{'revision':'3c2206525c18cd87dd28082949a4e43e','url':'/610.min.worker.js.map'},{'revision':null,'url':'/616.bundle.add3f87e47354e34b036.js'},{'revision':'5800265b6831396572fb5d32c6bd8eef','url':'/62ab5d58a2bea7b5a1dc.wasm'},{'revision':null,'url':'/642.bundle.d5d3fed8a378bcf2ac45.js'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/664.bundle.09abae984223969d1bde.js'},{'revision':null,'url':'/707.bundle.cd75ab78a6c30179587a.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/707.css'},{'revision':null,'url':'/728.bundle.d13856835357400fef82.js'},{'revision':null,'url':'/744.bundle.d918604b9ecf94dbecd9.js'},{'revision':'cf3e4d4fa8884275461c195421812256','url':'/75788f12450d4c5ed494.wasm'},{'revision':'cc4a3a4da4ac1b863a714f93c66c6ef2','url':'/75a0c2dfe07b824c7d21.wasm'},{'revision':null,'url':'/780.bundle.fd0f13dc92e9caa0581e.js'},{'revision':null,'url':'/790.bundle.dc58d7dbc051610f5bde.js'},{'revision':null,'url':'/799.bundle.f42a53c72bd5e9074d2b.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/806.css'},{'revision':null,'url':'/82.bundle.ce8fa41ece8f443f63d9.js'},{'revision':null,'url':'/917.bundle.14e9de4ff77da49906d2.js'},{'revision':null,'url':'/926.bundle.dbc9d0e591cb9217fda2.js'},{'revision':null,'url':'/935.bundle.deeffff0e4f7b528e3c3.js'},{'revision':'b12abc3008862bb7daf6a91d2a13cf6a','url':'/945.min.worker.js'},{'revision':'3aba0a4898e93871a7cd61b4d0216a18','url':'/945.min.worker.js.map'},{'revision':null,'url':'/953.bundle.bad442420f62f5ab0c4b.js'},{'revision':null,'url':'/973.bundle.b712bda104914bc3a28d.js'},{'revision':null,'url':'/976.bundle.b043df53dbe275d4ee3e.js'},{'revision':null,'url':'/984.bundle.b434c6f55782bafb1322.js'},{'revision':'d1895aa7a4595dc279c382e5a31ef9f4','url':'/_headers'},{'revision':'6839a719b6810111d8097998b11293a1','url':'/_redirects'},{'revision':'52e767cf35feb8ca59c009582b8b0575','url':'/app-config.js'},{'revision':'0871da67d87443bacdeeb07df0a5c282','url':'/app.bundle.css'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/android-chrome-144x144.png'},{'revision':'5cde390de8a619ebe55a669d2ac3effd','url':'/assets/android-chrome-192x192.png'},{'revision':'e7466a67e90471de05401e53b8fe20be','url':'/assets/android-chrome-256x256.png'},{'revision':'9bbe9b80156e930d19a4e1725aa9ddae','url':'/assets/android-chrome-36x36.png'},{'revision':'5698b2ac0c82fe06d84521fc5482df04','url':'/assets/android-chrome-384x384.png'},{'revision':'56bef3fceec344d9747f8abe9c0bba27','url':'/assets/android-chrome-48x48.png'},{'revision':'3e8b8a01290992e82c242557417b0596','url':'/assets/android-chrome-512x512.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/android-chrome-72x72.png'},{'revision':'4c3289bc690f8519012686888e08da71','url':'/assets/android-chrome-96x96.png'},{'revision':'cf464289183184df09292f581df0fb4f','url':'/assets/apple-touch-icon-1024x1024.png'},{'revision':'0857c5282c594e4900e8b31e3bade912','url':'/assets/apple-touch-icon-114x114.png'},{'revision':'4208f41a28130a67e9392a9dfcee6011','url':'/assets/apple-touch-icon-120x120.png'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/apple-touch-icon-144x144.png'},{'revision':'977d293982af7e9064ba20806b45cf35','url':'/assets/apple-touch-icon-152x152.png'},{'revision':'6de91b4d2a30600b410758405cb567b4','url':'/assets/apple-touch-icon-167x167.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-180x180.png'},{'revision':'647386c34e75f1213830ea9a38913525','url':'/assets/apple-touch-icon-57x57.png'},{'revision':'0c200fe83953738b330ea431083e7a86','url':'/assets/apple-touch-icon-60x60.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/apple-touch-icon-72x72.png'},{'revision':'c9989a807bb18633f6dcf254b5b56124','url':'/assets/apple-touch-icon-76x76.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-precomposed.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon.png'},{'revision':'05fa74ea9c1c0c3931ba96467999081d','url':'/assets/apple-touch-startup-image-1182x2208.png'},{'revision':'9e2cd03e1e6fd0520eea6846f4278018','url':'/assets/apple-touch-startup-image-1242x2148.png'},{'revision':'5591e3a1822cbc8439b99c1a40d53425','url':'/assets/apple-touch-startup-image-1496x2048.png'},{'revision':'337de578c5ca04bd7d2be19d24d83821','url':'/assets/apple-touch-startup-image-1536x2008.png'},{'revision':'cafb4ab4eafe6ef946bd229a1d88e7de','url':'/assets/apple-touch-startup-image-320x460.png'},{'revision':'d9bb9e558d729eeac5efb8be8d6111cc','url':'/assets/apple-touch-startup-image-640x1096.png'},{'revision':'038b5b02bac8b82444bf9a87602ac216','url':'/assets/apple-touch-startup-image-640x920.png'},{'revision':'2177076eb07b1d64d663d7c03268be00','url':'/assets/apple-touch-startup-image-748x1024.png'},{'revision':'4fc097443815fe92503584c4bd73c630','url':'/assets/apple-touch-startup-image-750x1294.png'},{'revision':'2e29914062dce5c5141ab47eea2fc5d9','url':'/assets/apple-touch-startup-image-768x1004.png'},{'revision':'f692ec286b3a332c17985f4ed38b1076','url':'/assets/browserconfig.xml'},{'revision':'f3d9a3b647853c45b0e132e4acd0cc4a','url':'/assets/coast-228x228.png'},{'revision':'ad6e1def5c66193d649a31474bbfe45d','url':'/assets/favicon-16x16.png'},{'revision':'84d1dcdb6cdfa55e2f46be0c80fa5698','url':'/assets/favicon-32x32.png'},{'revision':'95fb44c4998a46109e49d724c060db24','url':'/assets/favicon.ico'},{'revision':'5df2a5b0cee399ac0bc40af74ba3c2cb','url':'/assets/firefox_app_128x128.png'},{'revision':'11fd9098c4b07c8a07e1d2a1e309e046','url':'/assets/firefox_app_512x512.png'},{'revision':'27cddfc922dca3bfa27b4a00fc2f5e36','url':'/assets/firefox_app_60x60.png'},{'revision':'2017d95fae79dcf34b5a5b52586d4763','url':'/assets/manifest.webapp'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/mstile-144x144.png'},{'revision':'334895225e16a7777e45d81964725a97','url':'/assets/mstile-150x150.png'},{'revision':'e295cca4af6ed0365cf7b014d91b0e9d','url':'/assets/mstile-310x150.png'},{'revision':'cbefa8c42250e5f2443819fe2c69d91e','url':'/assets/mstile-310x310.png'},{'revision':'aa411a69df2b33a1362fa38d1257fa9d','url':'/assets/mstile-70x70.png'},{'revision':'5609af4f69e40e33471aee770ea1d802','url':'/assets/yandex-browser-50x50.png'},{'revision':'cfea70d7ddc8f06f276ea0c85c4b2adf','url':'/assets/yandex-browser-manifest.json'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/b6b803111e2d06a825bd.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':'3c03abb7976d9dd2f0958e1c56654102','url':'/cornerstoneDICOMImageLoader.min.js'},{'revision':'f85de7fd8a9a8d95833085a001a19345','url':'/cornerstoneDICOMImageLoader.min.js.map'},{'revision':null,'url':'/dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js'},{'revision':'9d8c85b42d04bb117a3b583d654fbb08','url':'/dicomMicroscopyViewer.min.js'},{'revision':'450494c199cf8dd8e8c34d5e98bf5334','url':'/dicomMicroscopyViewer.min.js.LICENSE.txt'},{'revision':'0ca44a1b8719e835645ffa804a9d1395','url':'/es6-shim.min.js'},{'revision':'9de58b497a43167958927602cb68cd30','url':'/google.js'},{'revision':'ad52ae815641a4eeff85032984e48064','url':'/index.html'},{'revision':'0d0886e5f1fdb4a209a9065dfb542c22','url':'/index.worker.1c69152d710fa7b84bce.worker.js'},{'revision':'066fd130de42b02857b634de1dc49a73','url':'/index.worker.1c69152d710fa7b84bce.worker.js.map'},{'revision':'71cec55513e051f0778ad89be760c11a','url':'/index.worker.min.worker.js'},{'revision':'fd1116add443fee52a935df926396e0f','url':'/index.worker.min.worker.js.map'},{'revision':'c4c4be134438c4cc55613210f3913526','url':'/init-service-worker.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'754d698a7b334af57c00f29723fd9751','url':'/oidc-client.min.js'},{'revision':'d05a380d50b74e629738ae6f62fb7e78','url':'/polyfill.min.js'},{'revision':'f528b6861c82ee4415fce0821fd695c1','url':'/silent-refresh.html'}]);
54
+ workbox.precaching.precacheAndRoute([{'revision':null,'url':'/151.bundle.31ea35044218837bf73f.js'},{'revision':null,'url':'/192.bundle.e144d79518d81dfd347d.js'},{'revision':null,'url':'/199.bundle.6847fd50cf715abd0230.js'},{'revision':null,'url':'/205.bundle.b5a473c200dcf2bbcdb4.js'},{'revision':null,'url':'/208.bundle.0860d24e10a794f2d4d0.js'},{'revision':null,'url':'/270.bundle.cddac4adcfdf8d1082a3.js'},{'revision':null,'url':'/283.bundle.6382f27eff42c3ab9601.js'},{'revision':null,'url':'/295.bundle.957b1159fec14b9199a1.js'},{'revision':null,'url':'/331.bundle.af86275686a78739ec4c.js'},{'revision':null,'url':'/351.bundle.bbd6e3b383ac731edc94.js'},{'revision':'a04a2f233dc569826f5f6e21b65bc87b','url':'/351.css'},{'revision':'c4ea120c6da08aa75348edfa3e57ece9','url':'/36785fbd89b0e17f6099.wasm'},{'revision':null,'url':'/381.bundle.0905e683605fcbc0895f.js'},{'revision':null,'url':'/404.bundle.2f12d83bb2ad5ca4e36a.js'},{'revision':null,'url':'/50.bundle.d5584534ccc68e336bf6.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/531.bundle.2a82fb1d69e5b57cc72b.js'},{'revision':null,'url':'/55.bundle.e9bf24eb17d84049c640.js'},{'revision':'0afb25509c7f072fbd7eda42c6895dbf','url':'/55.css'},{'revision':null,'url':'/569.bundle.a014357d3ff0c926d1a8.js'},{'revision':null,'url':'/581.bundle.0b1b8273eb694c11366d.js'},{'revision':null,'url':'/606.bundle.5d876f5f3dd8287f0a28.js'},{'revision':'62b4ae8445d191d5aab5503ce475724d','url':'/610.min.worker.js'},{'revision':'3c2206525c18cd87dd28082949a4e43e','url':'/610.min.worker.js.map'},{'revision':null,'url':'/616.bundle.372ba6c548881b30b7d2.js'},{'revision':'5800265b6831396572fb5d32c6bd8eef','url':'/62ab5d58a2bea7b5a1dc.wasm'},{'revision':null,'url':'/642.bundle.24a485d5f4c648e69090.js'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/664.bundle.09abae984223969d1bde.js'},{'revision':null,'url':'/707.bundle.753ce0549c40c4a0fa6a.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/707.css'},{'revision':null,'url':'/728.bundle.d13856835357400fef82.js'},{'revision':null,'url':'/744.bundle.f9adc3045b3d3608e908.js'},{'revision':'cf3e4d4fa8884275461c195421812256','url':'/75788f12450d4c5ed494.wasm'},{'revision':'cc4a3a4da4ac1b863a714f93c66c6ef2','url':'/75a0c2dfe07b824c7d21.wasm'},{'revision':null,'url':'/780.bundle.fd0f13dc92e9caa0581e.js'},{'revision':null,'url':'/790.bundle.a81299637cfd20e1e170.js'},{'revision':null,'url':'/799.bundle.6fbb7a97bccfb55dc79f.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/806.css'},{'revision':null,'url':'/82.bundle.775917b8089f150b350d.js'},{'revision':null,'url':'/917.bundle.4685b27c10ed71e4bae0.js'},{'revision':null,'url':'/926.bundle.dbc9d0e591cb9217fda2.js'},{'revision':null,'url':'/935.bundle.deeffff0e4f7b528e3c3.js'},{'revision':'b12abc3008862bb7daf6a91d2a13cf6a','url':'/945.min.worker.js'},{'revision':'3aba0a4898e93871a7cd61b4d0216a18','url':'/945.min.worker.js.map'},{'revision':null,'url':'/953.bundle.bad442420f62f5ab0c4b.js'},{'revision':null,'url':'/973.bundle.5ad79ca89de61d2cb04e.js'},{'revision':null,'url':'/976.bundle.c1be5b548f9425607f82.js'},{'revision':null,'url':'/984.bundle.832ca59cc6bfe38b256c.js'},{'revision':'d1895aa7a4595dc279c382e5a31ef9f4','url':'/_headers'},{'revision':'6839a719b6810111d8097998b11293a1','url':'/_redirects'},{'revision':'52e767cf35feb8ca59c009582b8b0575','url':'/app-config.js'},{'revision':'0871da67d87443bacdeeb07df0a5c282','url':'/app.bundle.css'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/android-chrome-144x144.png'},{'revision':'5cde390de8a619ebe55a669d2ac3effd','url':'/assets/android-chrome-192x192.png'},{'revision':'e7466a67e90471de05401e53b8fe20be','url':'/assets/android-chrome-256x256.png'},{'revision':'9bbe9b80156e930d19a4e1725aa9ddae','url':'/assets/android-chrome-36x36.png'},{'revision':'5698b2ac0c82fe06d84521fc5482df04','url':'/assets/android-chrome-384x384.png'},{'revision':'56bef3fceec344d9747f8abe9c0bba27','url':'/assets/android-chrome-48x48.png'},{'revision':'3e8b8a01290992e82c242557417b0596','url':'/assets/android-chrome-512x512.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/android-chrome-72x72.png'},{'revision':'4c3289bc690f8519012686888e08da71','url':'/assets/android-chrome-96x96.png'},{'revision':'cf464289183184df09292f581df0fb4f','url':'/assets/apple-touch-icon-1024x1024.png'},{'revision':'0857c5282c594e4900e8b31e3bade912','url':'/assets/apple-touch-icon-114x114.png'},{'revision':'4208f41a28130a67e9392a9dfcee6011','url':'/assets/apple-touch-icon-120x120.png'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/apple-touch-icon-144x144.png'},{'revision':'977d293982af7e9064ba20806b45cf35','url':'/assets/apple-touch-icon-152x152.png'},{'revision':'6de91b4d2a30600b410758405cb567b4','url':'/assets/apple-touch-icon-167x167.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-180x180.png'},{'revision':'647386c34e75f1213830ea9a38913525','url':'/assets/apple-touch-icon-57x57.png'},{'revision':'0c200fe83953738b330ea431083e7a86','url':'/assets/apple-touch-icon-60x60.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/apple-touch-icon-72x72.png'},{'revision':'c9989a807bb18633f6dcf254b5b56124','url':'/assets/apple-touch-icon-76x76.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-precomposed.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon.png'},{'revision':'05fa74ea9c1c0c3931ba96467999081d','url':'/assets/apple-touch-startup-image-1182x2208.png'},{'revision':'9e2cd03e1e6fd0520eea6846f4278018','url':'/assets/apple-touch-startup-image-1242x2148.png'},{'revision':'5591e3a1822cbc8439b99c1a40d53425','url':'/assets/apple-touch-startup-image-1496x2048.png'},{'revision':'337de578c5ca04bd7d2be19d24d83821','url':'/assets/apple-touch-startup-image-1536x2008.png'},{'revision':'cafb4ab4eafe6ef946bd229a1d88e7de','url':'/assets/apple-touch-startup-image-320x460.png'},{'revision':'d9bb9e558d729eeac5efb8be8d6111cc','url':'/assets/apple-touch-startup-image-640x1096.png'},{'revision':'038b5b02bac8b82444bf9a87602ac216','url':'/assets/apple-touch-startup-image-640x920.png'},{'revision':'2177076eb07b1d64d663d7c03268be00','url':'/assets/apple-touch-startup-image-748x1024.png'},{'revision':'4fc097443815fe92503584c4bd73c630','url':'/assets/apple-touch-startup-image-750x1294.png'},{'revision':'2e29914062dce5c5141ab47eea2fc5d9','url':'/assets/apple-touch-startup-image-768x1004.png'},{'revision':'f692ec286b3a332c17985f4ed38b1076','url':'/assets/browserconfig.xml'},{'revision':'f3d9a3b647853c45b0e132e4acd0cc4a','url':'/assets/coast-228x228.png'},{'revision':'ad6e1def5c66193d649a31474bbfe45d','url':'/assets/favicon-16x16.png'},{'revision':'84d1dcdb6cdfa55e2f46be0c80fa5698','url':'/assets/favicon-32x32.png'},{'revision':'95fb44c4998a46109e49d724c060db24','url':'/assets/favicon.ico'},{'revision':'5df2a5b0cee399ac0bc40af74ba3c2cb','url':'/assets/firefox_app_128x128.png'},{'revision':'11fd9098c4b07c8a07e1d2a1e309e046','url':'/assets/firefox_app_512x512.png'},{'revision':'27cddfc922dca3bfa27b4a00fc2f5e36','url':'/assets/firefox_app_60x60.png'},{'revision':'2017d95fae79dcf34b5a5b52586d4763','url':'/assets/manifest.webapp'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/mstile-144x144.png'},{'revision':'334895225e16a7777e45d81964725a97','url':'/assets/mstile-150x150.png'},{'revision':'e295cca4af6ed0365cf7b014d91b0e9d','url':'/assets/mstile-310x150.png'},{'revision':'cbefa8c42250e5f2443819fe2c69d91e','url':'/assets/mstile-310x310.png'},{'revision':'aa411a69df2b33a1362fa38d1257fa9d','url':'/assets/mstile-70x70.png'},{'revision':'5609af4f69e40e33471aee770ea1d802','url':'/assets/yandex-browser-50x50.png'},{'revision':'cfea70d7ddc8f06f276ea0c85c4b2adf','url':'/assets/yandex-browser-manifest.json'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/b6b803111e2d06a825bd.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':'3c03abb7976d9dd2f0958e1c56654102','url':'/cornerstoneDICOMImageLoader.min.js'},{'revision':'f85de7fd8a9a8d95833085a001a19345','url':'/cornerstoneDICOMImageLoader.min.js.map'},{'revision':null,'url':'/dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js'},{'revision':'9d8c85b42d04bb117a3b583d654fbb08','url':'/dicomMicroscopyViewer.min.js'},{'revision':'450494c199cf8dd8e8c34d5e98bf5334','url':'/dicomMicroscopyViewer.min.js.LICENSE.txt'},{'revision':'0ca44a1b8719e835645ffa804a9d1395','url':'/es6-shim.min.js'},{'revision':'9de58b497a43167958927602cb68cd30','url':'/google.js'},{'revision':'1eee8396820e869147840919d255f4a2','url':'/index.html'},{'revision':'0d0886e5f1fdb4a209a9065dfb542c22','url':'/index.worker.1c69152d710fa7b84bce.worker.js'},{'revision':'066fd130de42b02857b634de1dc49a73','url':'/index.worker.1c69152d710fa7b84bce.worker.js.map'},{'revision':'71cec55513e051f0778ad89be760c11a','url':'/index.worker.min.worker.js'},{'revision':'fd1116add443fee52a935df926396e0f','url':'/index.worker.min.worker.js.map'},{'revision':'c4c4be134438c4cc55613210f3913526','url':'/init-service-worker.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'754d698a7b334af57c00f29723fd9751','url':'/oidc-client.min.js'},{'revision':'d05a380d50b74e629738ae6f62fb7e78','url':'/polyfill.min.js'},{'revision':'f528b6861c82ee4415fce0821fd695c1','url':'/silent-refresh.html'}]);
55
55
 
56
56
  // TODO: Cache API
57
57
  // https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/cache-api
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ohif/app",
3
- "version": "3.7.0-beta.15",
3
+ "version": "3.7.0-beta.17",
4
4
  "productVersion": "3.4.0",
5
5
  "description": "OHIF Viewer",
6
6
  "author": "OHIF Contributors",
@@ -52,22 +52,22 @@
52
52
  "@cornerstonejs/codec-openjpeg": "^1.2.2",
53
53
  "@cornerstonejs/codec-openjph": "^2.4.2",
54
54
  "@cornerstonejs/dicom-image-loader": "^1.2.4",
55
- "@ohif/core": "3.7.0-beta.15",
56
- "@ohif/extension-cornerstone": "3.7.0-beta.15",
57
- "@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.15",
58
- "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.15",
59
- "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.15",
60
- "@ohif/extension-default": "3.7.0-beta.15",
61
- "@ohif/extension-dicom-microscopy": "3.7.0-beta.15",
62
- "@ohif/extension-dicom-pdf": "3.7.0-beta.15",
63
- "@ohif/extension-dicom-video": "3.7.0-beta.15",
64
- "@ohif/extension-test": "3.7.0-beta.15",
65
- "@ohif/i18n": "3.7.0-beta.15",
66
- "@ohif/mode-basic-dev-mode": "3.7.0-beta.15",
67
- "@ohif/mode-longitudinal": "3.7.0-beta.15",
68
- "@ohif/mode-microscopy": "3.7.0-beta.15",
69
- "@ohif/mode-test": "3.7.0-beta.15",
70
- "@ohif/ui": "3.7.0-beta.15",
55
+ "@ohif/core": "3.7.0-beta.17",
56
+ "@ohif/extension-cornerstone": "3.7.0-beta.17",
57
+ "@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.17",
58
+ "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.17",
59
+ "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.17",
60
+ "@ohif/extension-default": "3.7.0-beta.17",
61
+ "@ohif/extension-dicom-microscopy": "3.7.0-beta.17",
62
+ "@ohif/extension-dicom-pdf": "3.7.0-beta.17",
63
+ "@ohif/extension-dicom-video": "3.7.0-beta.17",
64
+ "@ohif/extension-test": "3.7.0-beta.17",
65
+ "@ohif/i18n": "3.7.0-beta.17",
66
+ "@ohif/mode-basic-dev-mode": "3.7.0-beta.17",
67
+ "@ohif/mode-longitudinal": "3.7.0-beta.17",
68
+ "@ohif/mode-microscopy": "3.7.0-beta.17",
69
+ "@ohif/mode-test": "3.7.0-beta.17",
70
+ "@ohif/ui": "3.7.0-beta.17",
71
71
  "@types/react": "^17.0.38",
72
72
  "classnames": "^2.3.2",
73
73
  "core-js": "^3.16.1",
@@ -107,5 +107,5 @@
107
107
  "webpack-cli": "^4.7.2",
108
108
  "webpack-merge": "^5.7.3"
109
109
  },
110
- "gitHead": "fa37593696307c71b7f827b52333f2a0cea9c9e7"
110
+ "gitHead": "4d4dd45c23bd2f398e99c5124b709ffff2067eda"
111
111
  }