@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.
- package/dist/{744.bundle.d918604b9ecf94dbecd9.js → 744.bundle.f9adc3045b3d3608e908.js} +7 -3
- package/dist/{799.bundle.f42a53c72bd5e9074d2b.js → 799.bundle.6fbb7a97bccfb55dc79f.js} +3 -3
- package/dist/{82.bundle.ce8fa41ece8f443f63d9.js → 82.bundle.775917b8089f150b350d.js} +2 -2
- package/dist/{app.bundle.ff6f2b8099565624138a.js → app.bundle.e22f8e462697bb04de00.js} +395 -29
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- /package/dist/{192.bundle.3ce5ddfb38a988becbf0.js → 192.bundle.e144d79518d81dfd347d.js} +0 -0
- /package/dist/{199.bundle.853fc01eb467a6b51828.js → 199.bundle.6847fd50cf715abd0230.js} +0 -0
- /package/dist/{208.bundle.1c43a0edd3ff883e4325.js → 208.bundle.0860d24e10a794f2d4d0.js} +0 -0
- /package/dist/{283.bundle.de72bd7bb6e0e40b90fc.js → 283.bundle.6382f27eff42c3ab9601.js} +0 -0
- /package/dist/{404.bundle.d37609a316bccab1a8b4.js → 404.bundle.2f12d83bb2ad5ca4e36a.js} +0 -0
- /package/dist/{50.bundle.8654cf02de80e4de8337.js → 50.bundle.d5584534ccc68e336bf6.js} +0 -0
- /package/dist/{616.bundle.add3f87e47354e34b036.js → 616.bundle.372ba6c548881b30b7d2.js} +0 -0
- /package/dist/{642.bundle.d5d3fed8a378bcf2ac45.js → 642.bundle.24a485d5f4c648e69090.js} +0 -0
- /package/dist/{707.bundle.cd75ab78a6c30179587a.js → 707.bundle.753ce0549c40c4a0fa6a.js} +0 -0
- /package/dist/{790.bundle.dc58d7dbc051610f5bde.js → 790.bundle.a81299637cfd20e1e170.js} +0 -0
- /package/dist/{917.bundle.14e9de4ff77da49906d2.js → 917.bundle.4685b27c10ed71e4bae0.js} +0 -0
- /package/dist/{973.bundle.b712bda104914bc3a28d.js → 973.bundle.5ad79ca89de61d2cb04e.js} +0 -0
- /package/dist/{976.bundle.b043df53dbe275d4ee3e.js → 976.bundle.c1be5b548f9425607f82.js} +0 -0
- /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)('
|
|
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.
|
|
2153
|
-
const commitHash = "
|
|
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.
|
|
5115
|
-
const commitHash = "
|
|
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
|
-
|
|
10462
|
-
|
|
10463
|
-
|
|
10464
|
-
|
|
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
|
|
10469
|
-
|
|
10470
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
10514
|
-
|
|
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
|
-
|
|
10519
|
-
|
|
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
|
-
|
|
10524
|
-
|
|
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
|
-
|
|
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
|
|
10531
|
-
return key
|
|
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
|
-
|
|
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 (
|
|
10537
|
-
|
|
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
|
-
|
|
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.
|
|
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":"
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
56
|
-
"@ohif/extension-cornerstone": "3.7.0-beta.
|
|
57
|
-
"@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.
|
|
58
|
-
"@ohif/extension-cornerstone-dicom-seg": "3.7.0-beta.
|
|
59
|
-
"@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.
|
|
60
|
-
"@ohif/extension-default": "3.7.0-beta.
|
|
61
|
-
"@ohif/extension-dicom-microscopy": "3.7.0-beta.
|
|
62
|
-
"@ohif/extension-dicom-pdf": "3.7.0-beta.
|
|
63
|
-
"@ohif/extension-dicom-video": "3.7.0-beta.
|
|
64
|
-
"@ohif/extension-test": "3.7.0-beta.
|
|
65
|
-
"@ohif/i18n": "3.7.0-beta.
|
|
66
|
-
"@ohif/mode-basic-dev-mode": "3.7.0-beta.
|
|
67
|
-
"@ohif/mode-longitudinal": "3.7.0-beta.
|
|
68
|
-
"@ohif/mode-microscopy": "3.7.0-beta.
|
|
69
|
-
"@ohif/mode-test": "3.7.0-beta.
|
|
70
|
-
"@ohif/ui": "3.7.0-beta.
|
|
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": "
|
|
110
|
+
"gitHead": "4d4dd45c23bd2f398e99c5124b709ffff2067eda"
|
|
111
111
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|