@ohif/app 3.7.0-beta.16 → 3.7.0-beta.18

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 (20) hide show
  1. package/dist/{82.bundle.13651abb7d561fb13075.js → 82.bundle.36a3d722aebf6b806ba2.js} +2 -2
  2. package/dist/{app.bundle.3cc68334a9be5a6e6507.js → app.bundle.c9ec6ae85699a4a7f995.js} +393 -27
  3. package/dist/index.html +1 -1
  4. package/dist/sw.js +1 -1
  5. package/package.json +18 -18
  6. /package/dist/{192.bundle.d5787437d49c5b91fd74.js → 192.bundle.80c466e282bcdb5b72ac.js} +0 -0
  7. /package/dist/{199.bundle.3ccfa1af409ce91e0d1f.js → 199.bundle.0e613a24ec6143e83bbc.js} +0 -0
  8. /package/dist/{208.bundle.be570fddd8316e1c76f0.js → 208.bundle.906ff22cd208594be286.js} +0 -0
  9. /package/dist/{283.bundle.1c3029921e773a2347a0.js → 283.bundle.2bf72b0b9b94cdedbce1.js} +0 -0
  10. /package/dist/{404.bundle.b69ff378f8f6b9e39d17.js → 404.bundle.9b896bb843642ddffc20.js} +0 -0
  11. /package/dist/{50.bundle.856b2aa171a7e6e3ea17.js → 50.bundle.e1ef4456a2498b7e62cb.js} +0 -0
  12. /package/dist/{616.bundle.5c9e9f72123226c3218d.js → 616.bundle.8f1b07e988ac707600bf.js} +0 -0
  13. /package/dist/{642.bundle.86adc14a4188c51bf4ef.js → 642.bundle.b18d18ef141e16aad463.js} +0 -0
  14. /package/dist/{707.bundle.10c67cfdae61e4b4b2db.js → 707.bundle.d5d938d4857f81def2a4.js} +0 -0
  15. /package/dist/{744.bundle.5b0264e60cf19a39d01c.js → 744.bundle.dd652cc93cd99941c0e0.js} +0 -0
  16. /package/dist/{790.bundle.5a84235d113c75c41f4d.js → 790.bundle.67bb7d441bf50ab83c53.js} +0 -0
  17. /package/dist/{917.bundle.72958266713d00212e98.js → 917.bundle.86d381a97c835abc241c.js} +0 -0
  18. /package/dist/{973.bundle.d139bc687e2313cbfa57.js → 973.bundle.736ed133fd433b53c696.js} +0 -0
  19. /package/dist/{976.bundle.3716dc8b86e7cdd6ce21.js → 976.bundle.2a32442d3ef52d273ac7.js} +0 -0
  20. /package/dist/{984.bundle.c472b1a1e7c46801d1bb.js → 984.bundle.afd091fd85274c11ad0b.js} +0 -0
@@ -2149,8 +2149,8 @@ function ViewerLayout(_ref) {
2149
2149
  hotkeyDefinitions,
2150
2150
  hotkeyDefaults
2151
2151
  } = hotkeysManager;
2152
- const versionNumber = "3.7.0-beta.16";
2153
- const commitHash = "15ad8f29cdda5796ddeea92d0acabbe97681eec6";
2152
+ const versionNumber = "3.7.0-beta.18";
2153
+ const commitHash = "abe939bd2052239c35e5583e4fc8204e225a0e67";
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.16";
5115
- const commitHash = "15ad8f29cdda5796ddeea92d0acabbe97681eec6";
5114
+ const versionNumber = "3.7.0-beta.18";
5115
+ const commitHash = "abe939bd2052239c35e5583e4fc8204e225a0e67";
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
 
@@ -13460,6 +13825,7 @@ class HangingProtocolService extends PubSubService {
13460
13825
  const studyMatchDetails = this.protocolEngine.findMatch(study, studyMatchingRules, {
13461
13826
  studies: this.studies,
13462
13827
  displaySets: studyDisplaySets,
13828
+ allDisplaySets: this.displaySets,
13463
13829
  displaySetMatchDetails: this.displaySetMatchDetails
13464
13830
  });
13465
13831
 
@@ -19984,7 +20350,7 @@ const detectionOptions = {
19984
20350
  }
19985
20351
  });
19986
20352
  ;// CONCATENATED MODULE: ../../i18n/package.json
19987
- const package_namespaceObject = JSON.parse('{"i8":"3.7.0-beta.15"}');
20353
+ const package_namespaceObject = JSON.parse('{"i8":"3.7.0-beta.17"}');
19988
20354
  ;// CONCATENATED MODULE: ../../i18n/src/utils.js
19989
20355
  const languagesMap = {
19990
20356
  ar: 'Arabic',
@@ -154043,7 +154409,7 @@ var selectOrdinal = function selectOrdinal() {
154043
154409
  /******/ // This function allow to reference async chunks
154044
154410
  /******/ __webpack_require__.u = (chunkId) => {
154045
154411
  /******/ // return url for filenames based on template
154046
- /******/ return "" + (chunkId === 18 ? "dicom-microscopy-viewer" : chunkId) + ".bundle." + {"18":"aa60bdf008c32c39cfd7","50":"856b2aa171a7e6e3ea17","55":"e9bf24eb17d84049c640","82":"13651abb7d561fb13075","151":"31ea35044218837bf73f","192":"d5787437d49c5b91fd74","199":"3ccfa1af409ce91e0d1f","205":"b5a473c200dcf2bbcdb4","208":"be570fddd8316e1c76f0","270":"cddac4adcfdf8d1082a3","283":"1c3029921e773a2347a0","295":"957b1159fec14b9199a1","331":"af86275686a78739ec4c","351":"bbd6e3b383ac731edc94","381":"0905e683605fcbc0895f","404":"b69ff378f8f6b9e39d17","531":"2a82fb1d69e5b57cc72b","569":"a014357d3ff0c926d1a8","581":"0b1b8273eb694c11366d","606":"5d876f5f3dd8287f0a28","616":"5c9e9f72123226c3218d","642":"86adc14a4188c51bf4ef","664":"09abae984223969d1bde","707":"10c67cfdae61e4b4b2db","728":"d13856835357400fef82","744":"5b0264e60cf19a39d01c","780":"fd0f13dc92e9caa0581e","790":"5a84235d113c75c41f4d","799":"6fbb7a97bccfb55dc79f","806":"2e7934d0833c4315c292","917":"72958266713d00212e98","926":"dbc9d0e591cb9217fda2","935":"deeffff0e4f7b528e3c3","953":"bad442420f62f5ab0c4b","973":"d139bc687e2313cbfa57","976":"3716dc8b86e7cdd6ce21","984":"c472b1a1e7c46801d1bb"}[chunkId] + ".js";
154412
+ /******/ return "" + (chunkId === 18 ? "dicom-microscopy-viewer" : chunkId) + ".bundle." + {"18":"aa60bdf008c32c39cfd7","50":"e1ef4456a2498b7e62cb","55":"e9bf24eb17d84049c640","82":"36a3d722aebf6b806ba2","151":"31ea35044218837bf73f","192":"80c466e282bcdb5b72ac","199":"0e613a24ec6143e83bbc","205":"b5a473c200dcf2bbcdb4","208":"906ff22cd208594be286","270":"cddac4adcfdf8d1082a3","283":"2bf72b0b9b94cdedbce1","295":"957b1159fec14b9199a1","331":"af86275686a78739ec4c","351":"bbd6e3b383ac731edc94","381":"0905e683605fcbc0895f","404":"9b896bb843642ddffc20","531":"2a82fb1d69e5b57cc72b","569":"a014357d3ff0c926d1a8","581":"0b1b8273eb694c11366d","606":"5d876f5f3dd8287f0a28","616":"8f1b07e988ac707600bf","642":"b18d18ef141e16aad463","664":"09abae984223969d1bde","707":"d5d938d4857f81def2a4","728":"d13856835357400fef82","744":"dd652cc93cd99941c0e0","780":"fd0f13dc92e9caa0581e","790":"67bb7d441bf50ab83c53","799":"6fbb7a97bccfb55dc79f","806":"2e7934d0833c4315c292","917":"86d381a97c835abc241c","926":"dbc9d0e591cb9217fda2","935":"deeffff0e4f7b528e3c3","953":"bad442420f62f5ab0c4b","973":"736ed133fd433b53c696","976":"2a32442d3ef52d273ac7","984":"afd091fd85274c11ad0b"}[chunkId] + ".js";
154047
154413
  /******/ };
154048
154414
  /******/ })();
154049
154415
  /******/
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.3cc68334a9be5a6e6507.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.c9ec6ae85699a4a7f995.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.d5787437d49c5b91fd74.js'},{'revision':null,'url':'/199.bundle.3ccfa1af409ce91e0d1f.js'},{'revision':null,'url':'/205.bundle.b5a473c200dcf2bbcdb4.js'},{'revision':null,'url':'/208.bundle.be570fddd8316e1c76f0.js'},{'revision':null,'url':'/270.bundle.cddac4adcfdf8d1082a3.js'},{'revision':null,'url':'/283.bundle.1c3029921e773a2347a0.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.b69ff378f8f6b9e39d17.js'},{'revision':null,'url':'/50.bundle.856b2aa171a7e6e3ea17.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.5c9e9f72123226c3218d.js'},{'revision':'5800265b6831396572fb5d32c6bd8eef','url':'/62ab5d58a2bea7b5a1dc.wasm'},{'revision':null,'url':'/642.bundle.86adc14a4188c51bf4ef.js'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/664.bundle.09abae984223969d1bde.js'},{'revision':null,'url':'/707.bundle.10c67cfdae61e4b4b2db.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/707.css'},{'revision':null,'url':'/728.bundle.d13856835357400fef82.js'},{'revision':null,'url':'/744.bundle.5b0264e60cf19a39d01c.js'},{'revision':'cf3e4d4fa8884275461c195421812256','url':'/75788f12450d4c5ed494.wasm'},{'revision':'cc4a3a4da4ac1b863a714f93c66c6ef2','url':'/75a0c2dfe07b824c7d21.wasm'},{'revision':null,'url':'/780.bundle.fd0f13dc92e9caa0581e.js'},{'revision':null,'url':'/790.bundle.5a84235d113c75c41f4d.js'},{'revision':null,'url':'/799.bundle.6fbb7a97bccfb55dc79f.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/806.css'},{'revision':null,'url':'/82.bundle.13651abb7d561fb13075.js'},{'revision':null,'url':'/917.bundle.72958266713d00212e98.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.d139bc687e2313cbfa57.js'},{'revision':null,'url':'/976.bundle.3716dc8b86e7cdd6ce21.js'},{'revision':null,'url':'/984.bundle.c472b1a1e7c46801d1bb.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':'54404e6e7f1fcaccee307df3fc98b520','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.80c466e282bcdb5b72ac.js'},{'revision':null,'url':'/199.bundle.0e613a24ec6143e83bbc.js'},{'revision':null,'url':'/205.bundle.b5a473c200dcf2bbcdb4.js'},{'revision':null,'url':'/208.bundle.906ff22cd208594be286.js'},{'revision':null,'url':'/270.bundle.cddac4adcfdf8d1082a3.js'},{'revision':null,'url':'/283.bundle.2bf72b0b9b94cdedbce1.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.9b896bb843642ddffc20.js'},{'revision':null,'url':'/50.bundle.e1ef4456a2498b7e62cb.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.8f1b07e988ac707600bf.js'},{'revision':'5800265b6831396572fb5d32c6bd8eef','url':'/62ab5d58a2bea7b5a1dc.wasm'},{'revision':null,'url':'/642.bundle.b18d18ef141e16aad463.js'},{'revision':'ce10eced3ce34e663d86569b27f5bffb','url':'/65916ef3def695744bda.wasm'},{'revision':null,'url':'/664.bundle.09abae984223969d1bde.js'},{'revision':null,'url':'/707.bundle.d5d938d4857f81def2a4.js'},{'revision':'185e5e0a10fa6ab2fc7b3c38e63d550b','url':'/707.css'},{'revision':null,'url':'/728.bundle.d13856835357400fef82.js'},{'revision':null,'url':'/744.bundle.dd652cc93cd99941c0e0.js'},{'revision':'cf3e4d4fa8884275461c195421812256','url':'/75788f12450d4c5ed494.wasm'},{'revision':'cc4a3a4da4ac1b863a714f93c66c6ef2','url':'/75a0c2dfe07b824c7d21.wasm'},{'revision':null,'url':'/780.bundle.fd0f13dc92e9caa0581e.js'},{'revision':null,'url':'/790.bundle.67bb7d441bf50ab83c53.js'},{'revision':null,'url':'/799.bundle.6fbb7a97bccfb55dc79f.js'},{'revision':'51b8ed55f5b8d448837222f03bdd6de8','url':'/806.css'},{'revision':null,'url':'/82.bundle.36a3d722aebf6b806ba2.js'},{'revision':null,'url':'/917.bundle.86d381a97c835abc241c.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.736ed133fd433b53c696.js'},{'revision':null,'url':'/976.bundle.2a32442d3ef52d273ac7.js'},{'revision':null,'url':'/984.bundle.afd091fd85274c11ad0b.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':'7015e2fdcf8876994faf2e585cce15d1','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.16",
3
+ "version": "3.7.0-beta.18",
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.16",
56
- "@ohif/extension-cornerstone": "3.7.0-beta.16",
57
- "@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.16",
58
- "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.16",
59
- "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.16",
60
- "@ohif/extension-default": "3.7.0-beta.16",
61
- "@ohif/extension-dicom-microscopy": "3.7.0-beta.16",
62
- "@ohif/extension-dicom-pdf": "3.7.0-beta.16",
63
- "@ohif/extension-dicom-video": "3.7.0-beta.16",
64
- "@ohif/extension-test": "3.7.0-beta.16",
65
- "@ohif/i18n": "3.7.0-beta.16",
66
- "@ohif/mode-basic-dev-mode": "3.7.0-beta.16",
67
- "@ohif/mode-longitudinal": "3.7.0-beta.16",
68
- "@ohif/mode-microscopy": "3.7.0-beta.16",
69
- "@ohif/mode-test": "3.7.0-beta.16",
70
- "@ohif/ui": "3.7.0-beta.16",
55
+ "@ohif/core": "3.7.0-beta.18",
56
+ "@ohif/extension-cornerstone": "3.7.0-beta.18",
57
+ "@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.18",
58
+ "@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.18",
59
+ "@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.18",
60
+ "@ohif/extension-default": "3.7.0-beta.18",
61
+ "@ohif/extension-dicom-microscopy": "3.7.0-beta.18",
62
+ "@ohif/extension-dicom-pdf": "3.7.0-beta.18",
63
+ "@ohif/extension-dicom-video": "3.7.0-beta.18",
64
+ "@ohif/extension-test": "3.7.0-beta.18",
65
+ "@ohif/i18n": "3.7.0-beta.18",
66
+ "@ohif/mode-basic-dev-mode": "3.7.0-beta.18",
67
+ "@ohif/mode-longitudinal": "3.7.0-beta.18",
68
+ "@ohif/mode-microscopy": "3.7.0-beta.18",
69
+ "@ohif/mode-test": "3.7.0-beta.18",
70
+ "@ohif/ui": "3.7.0-beta.18",
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": "aeb61f40daab4217c93df30e865097a817d1aec3"
110
+ "gitHead": "b4dbe5656b4d068eaaa7b980c2781e44259f952b"
111
111
  }