@ohif/app 3.13.0-beta.40 → 3.13.0-beta.42

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 (34) hide show
  1. package/dist/{3461.bundle.26426ccbc93481bb8c20.js → 3461.bundle.d418652280863f312da3.js} +79 -33
  2. package/dist/{5028.bundle.2f266002b5375a26263b.js → 5028.bundle.1778b95ef2d721eff71c.js} +2 -2
  3. package/dist/{7537.bundle.b784154ebd4c85946642.js → 7537.bundle.1c612642a1e8a96179ed.js} +2 -2
  4. package/dist/{8305.bundle.085bef96ad35f6e5e198.js → 8305.bundle.d907ab2a252d536ac865.js} +2 -2
  5. package/dist/{8583.bundle.22768d85d2e69ed1fcac.js → 8583.bundle.6b74cee293a1a1e950af.js} +2 -2
  6. package/dist/{581.bundle.f48ce2a0f0dae080154c.js → 8963.bundle.bc2e871cbd92e9fdbbf5.js} +190 -13
  7. package/dist/{9039.bundle.fd54c15934103ff3fd3b.js → 9039.bundle.6c84d903d5baaecf2f3a.js} +7 -1
  8. package/dist/{9195.bundle.64cb955402f0d9d52d79.js → 9195.bundle.5c8fc381c7a8b1b81c43.js} +2 -2
  9. package/dist/{9205.bundle.7c4a29705386dcefd999.js → 9205.bundle.383aa4d06e768ee004b5.js} +7 -1
  10. package/dist/{app.bundle.1d64a27b61cd298e8ef8.js → app.bundle.ced82ce0abbd3feb867e.js} +11 -10
  11. package/dist/{compute.bundle.47da6b38c64751bdb9c4.js → compute.bundle.ba3878791df68055b11d.js} +1 -1
  12. package/dist/index.html +1 -1
  13. package/dist/{polySeg.bundle.8954fb59f99daeb3f0b0.js → polySeg.bundle.70369a8c69b843375431.js} +1 -1
  14. package/dist/sw.js +1 -1
  15. package/package.json +21 -21
  16. /package/dist/{1459.bundle.129c34a106b853ca1ca6.js → 1459.bundle.725b4e9d2776ac9063c5.js} +0 -0
  17. /package/dist/{1933.bundle.ac892bb2a5f729ae52f5.js → 1933.bundle.928939cb97edcea28e7b.js} +0 -0
  18. /package/dist/{2018.bundle.a269991b4454a3c56338.js → 2018.bundle.4b011332d36e85206cad.js} +0 -0
  19. /package/dist/{213.bundle.2b1cde5520a024b8762b.js → 213.bundle.9ef487e1b9adb9381590.js} +0 -0
  20. /package/dist/{2424.bundle.4c2f3947db7544d13c17.js → 2424.bundle.9fbd98a379415bcd4ba9.js} +0 -0
  21. /package/dist/{3138.bundle.b980cdc615f992144552.js → 3138.bundle.55d79e6af7d392cef911.js} +0 -0
  22. /package/dist/{4507.bundle.5cca32ed9cc28446ccd7.js → 4507.bundle.f78fab196e3f5ed59403.js} +0 -0
  23. /package/dist/{4688.bundle.eb4e9e11901461f6ddce.js → 4688.bundle.114adcc40c407ed7d18c.js} +0 -0
  24. /package/dist/{4819.bundle.3de16f1740bb7ccce3d4.js → 4819.bundle.0cd1049e47d4d46ef63a.js} +0 -0
  25. /package/dist/{5015.bundle.3067a7a531110311307f.js → 5015.bundle.34a8788caa0bf258d194.js} +0 -0
  26. /package/dist/{5457.bundle.96e277326b7faed55a1c.js → 5457.bundle.ee27e2890a04e64a44bf.js} +0 -0
  27. /package/dist/{5485.bundle.d2a5f0b1f493cffaf44f.js → 5485.bundle.079cc5bd705f725c8f5d.js} +0 -0
  28. /package/dist/{5802.bundle.a3a398ddaac222cf08f7.js → 5802.bundle.832845b6f3d277dc874d.js} +0 -0
  29. /package/dist/{6027.bundle.9f95f7641bf5450c7691.js → 6027.bundle.ce0fd76251e773c5d5e4.js} +0 -0
  30. /package/dist/{7639.bundle.42309bec0ee018751c3b.js → 7639.bundle.d2d03567252e749428a6.js} +0 -0
  31. /package/dist/{8499.bundle.db7b67b905705e5227fa.js → 8499.bundle.4cbe5e98f5046cd25fc6.js} +0 -0
  32. /package/dist/{85.bundle.719c1982ddaf97064586.js → 85.bundle.79c5681051a031061e4d.js} +0 -0
  33. /package/dist/{8558.bundle.e450c208d6ad29d78d4c.js → 8558.bundle.8124019bdb429709a049.js} +0 -0
  34. /package/dist/{9927.bundle.d94ebde499608a1632ba.js → 9927.bundle.7af41804c41122527790.js} +0 -0
@@ -10,7 +10,7 @@
10
10
  /* harmony export */ sh: () => (/* binding */ SCOORDTypes)
11
11
  /* harmony export */ });
12
12
  /* unused harmony export RelationshipType */
13
- /* harmony import */ var _cornerstonejs_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80581);
13
+ /* harmony import */ var _cornerstonejs_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28963);
14
14
 
15
15
  const {
16
16
  CodeScheme: Cornerstone3DCodeScheme
@@ -74,8 +74,8 @@ var src = __webpack_require__(42356);
74
74
  var i18n_src = __webpack_require__(89010);
75
75
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 194 modules
76
76
  var cornerstone_src = __webpack_require__(24688);
77
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 75 modules
78
- var esm = __webpack_require__(80581);
77
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 76 modules
78
+ var esm = __webpack_require__(28963);
79
79
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
80
80
  var dist_esm = __webpack_require__(4667);
81
81
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
@@ -1393,7 +1393,7 @@ function hydrateStructuredReport({
1393
1393
  frameNumber = 1
1394
1394
  } = measurement;
1395
1395
  const key = `${ReferencedSOPInstanceUID}:${frameNumber}`;
1396
- if (!sopInstanceUIDToImageId[key]) {
1396
+ if (imageId && !sopInstanceUIDToImageId[key]) {
1397
1397
  sopInstanceUIDToImageId[key] = imageId;
1398
1398
  }
1399
1399
  });
@@ -1424,32 +1424,12 @@ function hydrateStructuredReport({
1424
1424
  hydratableMeasurementsInSR[key] = storedMeasurementByAnnotationType[key];
1425
1425
  }
1426
1426
  });
1427
-
1428
- // Set the series touched as tracked.
1429
- const imageIds = [];
1430
-
1431
- // TODO: notification if no hydratable?
1432
- Object.keys(hydratableMeasurementsInSR).forEach(annotationType => {
1433
- const toolDataForAnnotationType = hydratableMeasurementsInSR[annotationType];
1434
- toolDataForAnnotationType.forEach(toolData => {
1435
- // Add the measurement to toolState
1436
- // dcmjs and Cornerstone3D has structural defect in supporting multi-frame
1437
- // files, and looking up the imageId from sopInstanceUIDToImageId results
1438
- // in the wrong value.
1439
- const frameNumber = toolData.annotation.data?.frameNumber || 1;
1440
- const imageId = sopInstanceUIDToImageId[`${toolData.sopInstanceUid}:${frameNumber}`];
1441
- if (!imageIds.includes(imageId)) {
1442
- imageIds.push(imageId);
1443
- }
1444
- });
1445
- });
1446
1427
  let targetStudyInstanceUID;
1447
1428
  const SeriesInstanceUIDs = [];
1448
- for (let i = 0; i < imageIds.length; i++) {
1449
- const imageId = imageIds[i];
1450
- if (!imageId) {
1451
- continue;
1452
- }
1429
+
1430
+ // Set the series touched as tracked.
1431
+ const imageIds = getImageIds(hydratableMeasurementsInSR, sopInstanceUIDToImageId);
1432
+ for (const imageId of imageIds) {
1453
1433
  const {
1454
1434
  SeriesInstanceUID,
1455
1435
  StudyInstanceUID
@@ -1464,6 +1444,25 @@ function hydrateStructuredReport({
1464
1444
  }
1465
1445
  }
1466
1446
 
1447
+ // For 3d annotations there are no image IDs,
1448
+ // so we need to find the display sets by frame of reference to get the SeriesInstanceUIDs
1449
+ const frameOfReferenceUIDs = getFrameOfReferenceUIDs(hydratableMeasurementsInSR, sopInstanceUIDToImageId);
1450
+ for (const FrameOfReferenceUID of frameOfReferenceUIDs) {
1451
+ const displaySetsFOR = displaySetService.getDisplaySetsBy(ds => ds.FrameOfReferenceUID === FrameOfReferenceUID && !ds.isDerivedDisplaySet);
1452
+ const ds = chooseDisplaySet(displaySetsFOR, FrameOfReferenceUID);
1453
+ if (!ds) {
1454
+ continue;
1455
+ }
1456
+ if (!SeriesInstanceUIDs.includes(ds.SeriesInstanceUID)) {
1457
+ SeriesInstanceUIDs.push(ds.SeriesInstanceUID);
1458
+ }
1459
+ if (!targetStudyInstanceUID) {
1460
+ targetStudyInstanceUID = ds.StudyInstanceUID;
1461
+ } else if (targetStudyInstanceUID !== ds.StudyInstanceUID) {
1462
+ console.warn('NO SUPPORT FOR SRs THAT HAVE MEASUREMENTS FROM MULTIPLE STUDIES.');
1463
+ }
1464
+ }
1465
+
1467
1466
  /**
1468
1467
  * Gets reference data for what frame of reference and the referenced
1469
1468
  * image id, or for 3d measurements, the volumeId to apply this annotation to.
@@ -1496,7 +1495,7 @@ function hydrateStructuredReport({
1496
1495
  toolData.uid = guid();
1497
1496
  const referenceData = getReferenceData(toolData);
1498
1497
  const {
1499
- imageId
1498
+ referencedImageId
1500
1499
  } = referenceData;
1501
1500
  const annotation = {
1502
1501
  annotationUID: toolData.annotation.annotationUID,
@@ -1528,8 +1527,8 @@ function hydrateStructuredReport({
1528
1527
  if (disableEditing) {
1529
1528
  locking.setAnnotationLocked(newAnnotationUID, true);
1530
1529
  }
1531
- if (imageId && !imageIds.includes(imageId)) {
1532
- imageIds.push(imageId);
1530
+ if (referencedImageId && !imageIds.includes(referencedImageId)) {
1531
+ imageIds.push(referencedImageId);
1533
1532
  }
1534
1533
  });
1535
1534
  });
@@ -1540,15 +1539,62 @@ function hydrateStructuredReport({
1540
1539
  };
1541
1540
  }
1542
1541
 
1542
+ /**
1543
+ * Gets the unique imageIds from hydratable measurements that have an imageId reference
1544
+ * (i.e., 2D/SCOORD annotations).
1545
+ */
1546
+ function getImageIds(hydratableMeasurementsInSR, sopInstanceUIDToImageId) {
1547
+ const imageIds = [];
1548
+ Object.keys(hydratableMeasurementsInSR).forEach(annotationType => {
1549
+ const toolDataForAnnotationType = hydratableMeasurementsInSR[annotationType];
1550
+ toolDataForAnnotationType.forEach(toolData => {
1551
+ // Add the measurement to toolState
1552
+ // dcmjs and Cornerstone3D has structural defect in supporting multi-frame
1553
+ // files, and looking up the imageId from sopInstanceUIDToImageId results
1554
+ // in the wrong value.
1555
+ const frameNumber = toolData.annotation.data?.frameNumber || 1;
1556
+ const imageId = sopInstanceUIDToImageId[`${toolData.sopInstanceUid}:${frameNumber}`];
1557
+ if (imageId && !imageIds.includes(imageId)) {
1558
+ imageIds.push(imageId);
1559
+ }
1560
+ });
1561
+ });
1562
+ return imageIds;
1563
+ }
1564
+
1565
+ /**
1566
+ * Gets the unique FrameOfReferenceUIDs from hydratable measurements that have no imageId reference
1567
+ * (i.e., 3D/SCOORD3D annotations). This excludes annotations handled by the getImageIds function.
1568
+ */
1569
+ function getFrameOfReferenceUIDs(hydratableMeasurementsInSR, sopInstanceUIDToImageId) {
1570
+ const frameOfReferenceUIDs = [];
1571
+ Object.keys(hydratableMeasurementsInSR).forEach(annotationType => {
1572
+ const toolDataForAnnotationType = hydratableMeasurementsInSR[annotationType];
1573
+ toolDataForAnnotationType.forEach(toolData => {
1574
+ const frameNumber = toolData.annotation.data?.frameNumber || 1;
1575
+ const imageId = sopInstanceUIDToImageId[`${toolData.sopInstanceUid}:${frameNumber}`];
1576
+ if (!imageId) {
1577
+ const {
1578
+ FrameOfReferenceUID
1579
+ } = toolData.annotation.metadata;
1580
+ if (FrameOfReferenceUID && !frameOfReferenceUIDs.includes(FrameOfReferenceUID)) {
1581
+ frameOfReferenceUIDs.push(FrameOfReferenceUID);
1582
+ }
1583
+ }
1584
+ });
1585
+ });
1586
+ return frameOfReferenceUIDs;
1587
+ }
1588
+
1543
1589
  /**
1544
1590
  * For 3d annotations, there are often several display sets which could
1545
1591
  * be used to display the annotation. Choose the first annotation with the
1546
1592
  * same frame of reference that is reconstructable, or the first display set
1547
1593
  * otherwise.
1548
1594
  */
1549
- function chooseDisplaySet(displaySets, annotation) {
1595
+ function chooseDisplaySet(displaySets, reference) {
1550
1596
  if (!displaySets?.length) {
1551
- console.warn('No display set found for', annotation);
1597
+ console.warn('No display set found for', reference);
1552
1598
  return;
1553
1599
  }
1554
1600
  if (displaySets.length === 1) {
@@ -26,8 +26,8 @@ var src = __webpack_require__(42356);
26
26
  var i18n_src = __webpack_require__(89010);
27
27
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
28
28
  var esm = __webpack_require__(15327);
29
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 75 modules
30
- var dist_esm = __webpack_require__(80581);
29
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 76 modules
30
+ var dist_esm = __webpack_require__(28963);
31
31
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 194 modules
32
32
  var cornerstone_src = __webpack_require__(24688);
33
33
  ;// ../../../extensions/cornerstone-dicom-pmap/src/getSopClassHandlerModule.ts
@@ -4134,7 +4134,7 @@ class StackViewport extends Viewport/* default */.A {
4134
4134
  this.modality = null;
4135
4135
  this.useCPURendering = (0,init/* getShouldUseCPURendering */.LH)();
4136
4136
  this._configureRenderingPipeline();
4137
- const result = this.useCPURendering
4137
+ this.useCPURendering
4138
4138
  ? this._resetCPUFallbackElement()
4139
4139
  : this._resetGPUViewport();
4140
4140
  this.currentImageIdIndex = 0;
@@ -36328,7 +36328,7 @@ function uuidv4() {
36328
36328
 
36329
36329
  "use strict";
36330
36330
  /* unused harmony export version */
36331
- const version = '4.19.0';
36331
+ const version = '4.20.0';
36332
36332
 
36333
36333
 
36334
36334
  /***/ },
@@ -28,8 +28,8 @@ var i18n_src = __webpack_require__(89010);
28
28
  var esm = __webpack_require__(15327);
29
29
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
30
30
  var dist_esm = __webpack_require__(4667);
31
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 75 modules
32
- var adapters_dist_esm = __webpack_require__(80581);
31
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 76 modules
32
+ var adapters_dist_esm = __webpack_require__(28963);
33
33
  // EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
34
34
  var dcmjs_es = __webpack_require__(5842);
35
35
  ;// ../../../extensions/cornerstone-dicom-seg/src/utils/dicomlabToRGB.ts
@@ -1471,8 +1471,8 @@ function createAndDownloadTMTVReport(segReport, additionalReportRows, options =
1471
1471
  }
1472
1472
  // EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
1473
1473
  var dcmjs_es = __webpack_require__(5842);
1474
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 75 modules
1475
- var adapters_dist_esm = __webpack_require__(80581);
1474
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 76 modules
1475
+ var adapters_dist_esm = __webpack_require__(28963);
1476
1476
  ;// ../../../extensions/tmtv/src/utils/dicomRTAnnotationExport/RTStructureSet/dicomRTAnnotationExport.js
1477
1477
 
1478
1478
 
@@ -1,6 +1,6 @@
1
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[581],{
1
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[8963],{
2
2
 
3
- /***/ 80581
3
+ /***/ 28963
4
4
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5
5
 
6
6
  "use strict";
@@ -3528,6 +3528,16 @@ const TEXT_ANNOTATION_POSITION = {
3528
3528
  meaning: 'Text Annotation Position',
3529
3529
  value: 'TextPosition'
3530
3530
  };
3531
+ const CONTROL_POINTS_CODE = {
3532
+ schemeDesignator: CS3D_DESIGNATOR,
3533
+ meaning: 'Control Points',
3534
+ value: 'ControlPoints'
3535
+ };
3536
+ const SPLINE_TYPE_CODE = {
3537
+ schemeDesignator: CS3D_DESIGNATOR,
3538
+ meaning: 'Spline Type',
3539
+ value: 'SplineType'
3540
+ };
3531
3541
  const COMMENT_CODE = {
3532
3542
  schemeDesignator: 'DCM',
3533
3543
  meaning: 'Comment',
@@ -3627,6 +3637,7 @@ class LabelData {
3627
3637
  contentItem() {
3628
3638
  var _handles$textBox;
3629
3639
  const contentEntries = this.tid300Item.contentItem();
3640
+ this.fixScoordRelationships(contentEntries);
3630
3641
  const {
3631
3642
  label,
3632
3643
  handles
@@ -3640,6 +3651,24 @@ class LabelData {
3640
3651
  }
3641
3652
  return contentEntries;
3642
3653
  }
3654
+ fixScoordRelationships(contentEntries) {
3655
+ const INFERRED_FROM = valueTypes.RelationshipTypes.INFERRED_FROM;
3656
+ for (const entry of contentEntries) {
3657
+ const item = entry;
3658
+ const contentSeq = item.ContentSequence;
3659
+ const children = this.normalizeContentSequence(contentSeq);
3660
+ for (const child of children) {
3661
+ if ((child.ValueType === 'SCOORD' || child.ValueType === 'SCOORD3D') && (child.RelationshipType === 'CONTAINS' || child.RelationshipType === 'Contains')) {
3662
+ child.RelationshipType = INFERRED_FROM;
3663
+ }
3664
+ }
3665
+ }
3666
+ }
3667
+ normalizeContentSequence(contentSeq) {
3668
+ if (!contentSeq) return [];
3669
+ if (Array.isArray(contentSeq)) return contentSeq;
3670
+ return [contentSeq];
3671
+ }
3643
3672
  filterCornerstoneFreeText(contentEntries) {
3644
3673
  const {
3645
3674
  codeValues
@@ -3761,6 +3790,10 @@ const COMMENT_POSITION = {
3761
3790
  CodingSchemeDesignator: TEXT_ANNOTATION_POSITION.schemeDesignator,
3762
3791
  CodeValue: TEXT_ANNOTATION_POSITION.value
3763
3792
  };
3793
+ const CONTROL_POINTS = {
3794
+ CodingSchemeDesignator: CONTROL_POINTS_CODE.schemeDesignator,
3795
+ CodeValue: CONTROL_POINTS_CODE.value
3796
+ };
3764
3797
  const MeasurementReport_FINDING_SITE = {
3765
3798
  CodingSchemeDesignator: 'SCT',
3766
3799
  CodeValue: '363698007'
@@ -3769,6 +3802,14 @@ const MeasurementReport_FINDING_SITE_OLD = {
3769
3802
  CodingSchemeDesignator: 'SRT',
3770
3803
  CodeValue: 'G-C0E3'
3771
3804
  };
3805
+ function isSecondaryScoordGroup(group) {
3806
+ if (group.ValueType !== 'SCOORD' && group.ValueType !== 'SCOORD3D') {
3807
+ return false;
3808
+ }
3809
+ const conceptNameCodeSequence = group.ConceptNameCodeSequence;
3810
+ const conceptCode = Array.isArray(conceptNameCodeSequence) ? conceptNameCodeSequence[0] : conceptNameCodeSequence;
3811
+ return !!conceptCode && conceptCode.CodingSchemeDesignator === CONTROL_POINTS.CodingSchemeDesignator && conceptCode.CodeValue === CONTROL_POINTS.CodeValue;
3812
+ }
3772
3813
  class MeasurementReport_MeasurementReport {
3773
3814
  static getTID300ContentItem(tool, ReferencedSOPSequence, toolClass, is3DMeasurement) {
3774
3815
  const args = toolClass.getTID300RepresentationArguments(tool, is3DMeasurement);
@@ -3893,6 +3934,7 @@ class MeasurementReport_MeasurementReport {
3893
3934
  return toolData;
3894
3935
  }
3895
3936
  static getSpatialCoordinatesState(_ref3) {
3937
+ var _contentSequenceArr$f, _contentSequenceArr$f2;
3896
3938
  let {
3897
3939
  NUMGroup,
3898
3940
  sopInstanceUIDToImageIdMap,
@@ -3900,8 +3942,8 @@ class MeasurementReport_MeasurementReport {
3900
3942
  toolType
3901
3943
  } = _ref3;
3902
3944
  const contentSequenceArr = toArray(NUMGroup.ContentSequence);
3903
- const SCOORDGroup = contentSequenceArr.find(group => group.ValueType === 'SCOORD');
3904
- const SCOORD3DGroup = contentSequenceArr.find(group => group.ValueType === 'SCOORD3D');
3945
+ const SCOORDGroup = (_contentSequenceArr$f = contentSequenceArr.find(group => group.ValueType === 'SCOORD' && !isSecondaryScoordGroup(group))) !== null && _contentSequenceArr$f !== void 0 ? _contentSequenceArr$f : contentSequenceArr.find(group => group.ValueType === 'SCOORD');
3946
+ const SCOORD3DGroup = (_contentSequenceArr$f2 = contentSequenceArr.find(group => group.ValueType === 'SCOORD3D' && !isSecondaryScoordGroup(group))) !== null && _contentSequenceArr$f2 !== void 0 ? _contentSequenceArr$f2 : contentSequenceArr.find(group => group.ValueType === 'SCOORD3D');
3905
3947
  const result = SCOORD3DGroup && this.processSCOORD3DGroup({
3906
3948
  SCOORD3DGroup,
3907
3949
  toolType
@@ -3925,6 +3967,7 @@ class MeasurementReport_MeasurementReport {
3925
3967
  findingSiteGroups,
3926
3968
  commentGroup,
3927
3969
  commentPositionGroup,
3970
+ controlPointsGroup,
3928
3971
  toolType
3929
3972
  } = _ref4;
3930
3973
  const {
@@ -3958,6 +4001,13 @@ class MeasurementReport_MeasurementReport {
3958
4001
  worldPosition: textBoxCoords[0]
3959
4002
  };
3960
4003
  }
4004
+ if (controlPointsGroup) {
4005
+ const controlPoints = scoordToWorld({
4006
+ is3DMeasurement: !referencedImageId,
4007
+ referencedImageId
4008
+ }, controlPointsGroup);
4009
+ state.annotation.data.handles.points = controlPoints;
4010
+ }
3961
4011
  state.finding = finding;
3962
4012
  state.findingSites = findingSites;
3963
4013
  state.commentGroup = commentGroup;
@@ -3989,8 +4039,13 @@ class MeasurementReport_MeasurementReport {
3989
4039
  const findingGroup = contentSequenceArr.find(group => this.codeValueMatch(group, MeasurementReport_FINDING));
3990
4040
  const commentGroup = contentSequenceArr.find(group => this.codeValueMatch(group, COMMENT));
3991
4041
  const commentPositionGroup = contentSequenceArr.find(group => this.codeValueMatch(group, COMMENT_POSITION));
4042
+ let controlPointsGroup = contentSequenceArr.find(group => this.codeValueMatch(group, CONTROL_POINTS));
4043
+ const NUMGroupForLookup = contentSequenceArr.find(group => group.ValueType === 'NUM');
4044
+ if (!controlPointsGroup && NUMGroupForLookup !== null && NUMGroupForLookup !== void 0 && NUMGroupForLookup.ContentSequence) {
4045
+ controlPointsGroup = toArray(NUMGroupForLookup.ContentSequence).find(item => this.codeValueMatch(item, CONTROL_POINTS));
4046
+ }
3992
4047
  const findingSiteGroups = contentSequenceArr.filter(group => this.codeValueMatch(group, MeasurementReport_FINDING_SITE, MeasurementReport_FINDING_SITE_OLD)) || [];
3993
- const NUMGroup = contentSequenceArr.find(group => group.ValueType === 'NUM') || {
4048
+ const NUMGroup = NUMGroupForLookup || {
3994
4049
  ContentSequence: contentSequenceArr.filter(group => group.ValueType === 'SCOORD' || group.ValueType === 'SCOORD3D')
3995
4050
  };
3996
4051
  const spatialGroup = this.processSpatialCoordinatesGroup({
@@ -4001,6 +4056,7 @@ class MeasurementReport_MeasurementReport {
4001
4056
  findingSiteGroups,
4002
4057
  commentGroup,
4003
4058
  commentPositionGroup,
4059
+ controlPointsGroup,
4004
4060
  toolType
4005
4061
  });
4006
4062
  const {
@@ -4243,10 +4299,14 @@ _MeasurementReport.codeValueMatch = (group, code, oldCode) => {
4243
4299
  if (!ConceptNameCodeSequence) {
4244
4300
  return;
4245
4301
  }
4302
+ const seq = Array.isArray(ConceptNameCodeSequence) ? ConceptNameCodeSequence[0] : ConceptNameCodeSequence;
4303
+ if (!seq) {
4304
+ return;
4305
+ }
4246
4306
  const {
4247
4307
  CodingSchemeDesignator,
4248
4308
  CodeValue
4249
- } = ConceptNameCodeSequence;
4309
+ } = seq;
4250
4310
  return CodingSchemeDesignator == code.CodingSchemeDesignator && CodeValue == code.CodeValue || oldCode && CodingSchemeDesignator == oldCode.CodingSchemeDesignator && CodeValue == oldCode.CodeValue;
4251
4311
  };
4252
4312
  _MeasurementReport.generateDerivationSourceDataset = instance => {
@@ -5267,6 +5327,100 @@ _Length = Length_Length;
5267
5327
 
5268
5328
  // EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
5269
5329
  var gl_matrix_esm = __webpack_require__(3823);
5330
+ ;// ../../../node_modules/@cornerstonejs/adapters/dist/esm/adapters/Cornerstone3D/ControlPointPolyline.js
5331
+
5332
+
5333
+
5334
+ const {
5335
+ valueTypes: ControlPointPolyline_valueTypes
5336
+ } = dcmjs_es.sr;
5337
+ const {
5338
+ Polyline: ControlPointPolyline_TID300Polyline
5339
+ } = dcmjs_es/* utilities */.BF.TID300;
5340
+ class ControlPointPolyline extends ControlPointPolyline_TID300Polyline {
5341
+ contentItem() {
5342
+ const contentEntries = super.contentItem();
5343
+ const self = this;
5344
+ const {
5345
+ controlPoints,
5346
+ use3DSpatialCoordinates,
5347
+ ReferencedSOPSequence,
5348
+ ReferencedFrameOfReferenceUID,
5349
+ use3DSpatialCoordinates: is3DMeasurement
5350
+ } = self.props;
5351
+ if (!(controlPoints !== null && controlPoints !== void 0 && controlPoints.length)) {
5352
+ return contentEntries;
5353
+ }
5354
+ const GraphicData = self.flattenPoints({
5355
+ points: controlPoints,
5356
+ use3DSpatialCoordinates
5357
+ });
5358
+ const GraphicType = ControlPointPolyline_valueTypes.GraphicTypes.MULTIPOINT;
5359
+ const scoordPlain = is3DMeasurement ? {
5360
+ RelationshipType: ControlPointPolyline_valueTypes.RelationshipTypes.CONTAINS,
5361
+ ValueType: 'SCOORD3D',
5362
+ ConceptNameCodeSequence: [{
5363
+ CodeValue: CONTROL_POINTS_CODE.value,
5364
+ CodingSchemeDesignator: CONTROL_POINTS_CODE.schemeDesignator,
5365
+ CodeMeaning: CONTROL_POINTS_CODE.meaning
5366
+ }],
5367
+ GraphicType,
5368
+ GraphicData,
5369
+ ReferencedFrameOfReferenceUID,
5370
+ ContentSequence: [{
5371
+ RelationshipType: ControlPointPolyline_valueTypes.RelationshipTypes.SELECTED_FROM,
5372
+ ValueType: ControlPointPolyline_valueTypes.ValueTypes.IMAGE,
5373
+ ReferencedSOPSequence
5374
+ }]
5375
+ } : {
5376
+ RelationshipType: ControlPointPolyline_valueTypes.RelationshipTypes.CONTAINS,
5377
+ ValueType: 'SCOORD',
5378
+ ConceptNameCodeSequence: [{
5379
+ CodeValue: CONTROL_POINTS_CODE.value,
5380
+ CodingSchemeDesignator: CONTROL_POINTS_CODE.schemeDesignator,
5381
+ CodeMeaning: CONTROL_POINTS_CODE.meaning
5382
+ }],
5383
+ GraphicType,
5384
+ GraphicData,
5385
+ ContentSequence: [{
5386
+ RelationshipType: ControlPointPolyline_valueTypes.RelationshipTypes.SELECTED_FROM,
5387
+ ValueType: ControlPointPolyline_valueTypes.ValueTypes.IMAGE,
5388
+ ReferencedSOPSequence
5389
+ }]
5390
+ };
5391
+ const {
5392
+ splineType
5393
+ } = self.props;
5394
+ const entries = contentEntries;
5395
+ const numEntry = entries.find(e => e.ValueType === 'NUM');
5396
+ if (numEntry) {
5397
+ const inner = numEntry.ContentSequence;
5398
+ const innerArray = Array.isArray(inner) ? inner : inner ? [inner] : [];
5399
+ numEntry.ContentSequence = [...innerArray, scoordPlain];
5400
+ } else {
5401
+ entries.push(scoordPlain);
5402
+ }
5403
+ if (splineType) {
5404
+ const splineTypeObsContext = {
5405
+ RelationshipType: ControlPointPolyline_valueTypes.RelationshipTypes.HAS_OBS_CONTEXT,
5406
+ ValueType: 'TEXT',
5407
+ ConceptNameCodeSequence: {
5408
+ CodeValue: SPLINE_TYPE_CODE.value,
5409
+ CodingSchemeDesignator: SPLINE_TYPE_CODE.schemeDesignator,
5410
+ CodeMeaning: SPLINE_TYPE_CODE.meaning
5411
+ },
5412
+ TextValue: splineType
5413
+ };
5414
+ const hasObsContextIndex = entries.findIndex(e => e.RelationshipType === ControlPointPolyline_valueTypes.RelationshipTypes.HAS_OBS_CONTEXT);
5415
+ const insertIndex = hasObsContextIndex >= 0 ? hasObsContextIndex + 2 : 2;
5416
+ entries.splice(insertIndex, 0, splineTypeObsContext);
5417
+ }
5418
+ return entries;
5419
+ }
5420
+ }
5421
+
5422
+
5423
+
5270
5424
  ;// ../../../node_modules/@cornerstonejs/adapters/dist/esm/adapters/Cornerstone3D/PlanarFreehandROI.js
5271
5425
 
5272
5426
 
@@ -5277,14 +5431,15 @@ var gl_matrix_esm = __webpack_require__(3823);
5277
5431
 
5278
5432
 
5279
5433
 
5434
+
5435
+
5436
+
5280
5437
  var _PlanarFreehandROI;
5281
5438
  function PlanarFreehandROI_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5282
5439
  function PlanarFreehandROI_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? PlanarFreehandROI_ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : PlanarFreehandROI_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5283
- const {
5284
- Polyline: PlanarFreehandROI_TID300Polyline
5285
- } = dcmjs_es/* utilities */.BF.TID300;
5286
5440
  class PlanarFreehandROI extends BaseAdapter3D {
5287
5441
  static getMeasurementData(MeasurementGroup, sopInstanceUIDToImageIdMap, metadata) {
5442
+ var _state$annotation$dat, _state$annotation$dat2, _numSeq$find;
5288
5443
  const {
5289
5444
  state,
5290
5445
  NUMGroup,
@@ -5298,13 +5453,20 @@ class PlanarFreehandROI extends BaseAdapter3D {
5298
5453
  worldCoords.pop();
5299
5454
  isOpenContour = false;
5300
5455
  }
5301
- const points = [];
5302
- if (isOpenContour) {
5303
- points.push(worldCoords[0], worldCoords[worldCoords.length - 1]);
5456
+ let points = (_state$annotation$dat = (_state$annotation$dat2 = state.annotation.data.handles) === null || _state$annotation$dat2 === void 0 ? void 0 : _state$annotation$dat2.points) !== null && _state$annotation$dat !== void 0 ? _state$annotation$dat : [];
5457
+ if (isOpenContour && points.length === 0) {
5458
+ points = [worldCoords[0], worldCoords[worldCoords.length - 1]];
5304
5459
  }
5305
5460
  const referencedSOPInstanceUID = state.sopInstanceUid;
5306
5461
  const allNUMGroups = extractAllNUMGroups(MeasurementGroup, referencedSOPInstanceUID);
5307
5462
  const measurementNUMGroups = allNUMGroups[referencedSOPInstanceUID] || {};
5463
+ const SPLINE_TYPE = {
5464
+ CodingSchemeDesignator: SPLINE_TYPE_CODE.schemeDesignator,
5465
+ CodeValue: SPLINE_TYPE_CODE.value
5466
+ };
5467
+ const numSeq = NUMGroup ? toArray(NUMGroup.ContentSequence) : [];
5468
+ const mgContentSeq = toArray(MeasurementGroup.ContentSequence);
5469
+ const splineTypeItem = (_numSeq$find = numSeq.find(item => MeasurementReport_MeasurementReport.codeValueMatch(item, SPLINE_TYPE))) !== null && _numSeq$find !== void 0 ? _numSeq$find : mgContentSeq.find(item => MeasurementReport_MeasurementReport.codeValueMatch(item, SPLINE_TYPE));
5308
5470
  state.annotation.data = PlanarFreehandROI_objectSpread(PlanarFreehandROI_objectSpread({}, state.annotation.data), {}, {
5309
5471
  contour: {
5310
5472
  polyline: worldCoords,
@@ -5314,6 +5476,10 @@ class PlanarFreehandROI extends BaseAdapter3D {
5314
5476
  points
5315
5477
  }),
5316
5478
  frameNumber: ReferencedFrameNumber
5479
+ }, splineTypeItem && {
5480
+ spline: {
5481
+ type: splineTypeItem.TextValue
5482
+ }
5317
5483
  });
5318
5484
  if (referencedImageId) {
5319
5485
  state.annotation.data.cachedStats = {
@@ -5325,6 +5491,7 @@ class PlanarFreehandROI extends BaseAdapter3D {
5325
5491
  return state;
5326
5492
  }
5327
5493
  static getTID300RepresentationArguments(tool) {
5494
+ var _handles$points, _data$spline;
5328
5495
  let is3DMeasurement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
5329
5496
  const {
5330
5497
  data,
@@ -5332,6 +5499,9 @@ class PlanarFreehandROI extends BaseAdapter3D {
5332
5499
  findingSites,
5333
5500
  metadata
5334
5501
  } = tool;
5502
+ const {
5503
+ handles
5504
+ } = data;
5335
5505
  const {
5336
5506
  polyline,
5337
5507
  closed
@@ -5349,6 +5519,7 @@ class PlanarFreehandROI extends BaseAdapter3D {
5349
5519
  const firstPoint = points[0];
5350
5520
  points.push(firstPoint);
5351
5521
  }
5522
+ const controlPoints = (handles === null || handles === void 0 || (_handles$points = handles.points) === null || _handles$points === void 0 ? void 0 : _handles$points.length) && toScoords(scoordProps, handles.points);
5352
5523
  const {
5353
5524
  area,
5354
5525
  areaUnit,
@@ -5361,6 +5532,7 @@ class PlanarFreehandROI extends BaseAdapter3D {
5361
5532
  } = data.cachedStats["imageId:".concat(referencedImageId)] || {};
5362
5533
  return {
5363
5534
  points,
5535
+ controlPoints,
5364
5536
  area,
5365
5537
  areaUnit,
5366
5538
  perimeter: perimeter !== null && perimeter !== void 0 ? perimeter : length,
@@ -5368,6 +5540,7 @@ class PlanarFreehandROI extends BaseAdapter3D {
5368
5540
  mean,
5369
5541
  max,
5370
5542
  stdDev,
5543
+ splineType: (_data$spline = data.spline) === null || _data$spline === void 0 ? void 0 : _data$spline.type,
5371
5544
  trackingIdentifierTextValue: this.trackingIdentifierTextValue,
5372
5545
  finding,
5373
5546
  findingSites: findingSites || [],
@@ -5378,7 +5551,11 @@ class PlanarFreehandROI extends BaseAdapter3D {
5378
5551
  }
5379
5552
  _PlanarFreehandROI = PlanarFreehandROI;
5380
5553
  _PlanarFreehandROI.closedContourThreshold = 1e-5;
5381
- _PlanarFreehandROI.init("PlanarFreehandROI", PlanarFreehandROI_TID300Polyline);
5554
+ (() => {
5555
+ _PlanarFreehandROI.init('PlanarFreehandROI', ControlPointPolyline);
5556
+ _PlanarFreehandROI.registerSubType(_PlanarFreehandROI, 'LivewireContour');
5557
+ _PlanarFreehandROI.registerSubType(_PlanarFreehandROI, 'SplineROI');
5558
+ })();
5382
5559
 
5383
5560
 
5384
5561
 
@@ -7306,7 +7306,7 @@ var COLOR_LUT = __webpack_require__(93952);
7306
7306
 
7307
7307
 
7308
7308
  ;// ../../../node_modules/@cornerstonejs/tools/dist/esm/version.js
7309
- const version = '4.19.0';
7309
+ const version = '4.20.0';
7310
7310
 
7311
7311
  ;// ../../../node_modules/@cornerstonejs/tools/dist/esm/synchronizers/callbacks/cameraSyncCallback.js
7312
7312
  /* unused harmony import specifier */ var cameraSyncCallback_getRenderingEngine;
@@ -22440,6 +22440,9 @@ class SplineROITool extends ContourSegmentationBaseTool/* default */.A {
22440
22440
  this.fireChangeOnUpdate = null;
22441
22441
  this.isPointNearTool = (element, annotation, canvasCoords, proximity) => {
22442
22442
  const { instance: spline } = annotation.data.spline;
22443
+ if (!spline) {
22444
+ return false;
22445
+ }
22443
22446
  return spline.isPointNearCurve(canvasCoords, proximity);
22444
22447
  };
22445
22448
  this.toolSelectedCallback = (evt, annotation) => {
@@ -22906,6 +22909,9 @@ class SplineROITool extends ContourSegmentationBaseTool/* default */.A {
22906
22909
  const { lineWidth, lineDash, color, locked: annotationLocked, } = annotationStyle;
22907
22910
  const canvasCoordinates = controlPoints.map((p) => worldToCanvas(p));
22908
22911
  const { drawPreviewEnabled } = this.configuration.spline;
22912
+ if (annotation.data.spline && !annotation.data.spline.instance) {
22913
+ annotation.data.spline.instance = new (this._getSplineConfig(annotation.data.spline.type).Class)();
22914
+ }
22909
22915
  const splineType = annotation.data.spline.type;
22910
22916
  const splineConfig = this._getSplineConfig(splineType);
22911
22917
  const spline = annotation.data.spline.instance;
@@ -10402,8 +10402,8 @@ function AboutModalDefault() {
10402
10402
  name
10403
10403
  } = (0,browser_detect_es5/* default */.A)();
10404
10404
  const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
10405
- const versionNumber = "3.13.0-beta.40";
10406
- const commitHash = "d8d376edaf9c2b7af237182657e3e2203cca5abb";
10405
+ const versionNumber = "3.13.0-beta.42";
10406
+ const commitHash = "1df671e9ab67d43f98bf09f6838ddc0a5f220277";
10407
10407
  const [main, beta] = versionNumber.split('-');
10408
10408
  return /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU, {
10409
10409
  className: "w-[400px]"
@@ -26047,6 +26047,9 @@ class SplineROITool extends _base_ContourSegmentationBaseTool__WEBPACK_IMPORTED_
26047
26047
  this.fireChangeOnUpdate = null;
26048
26048
  this.isPointNearTool = (element, annotation, canvasCoords, proximity) => {
26049
26049
  const { instance: spline } = annotation.data.spline;
26050
+ if (!spline) {
26051
+ return false;
26052
+ }
26050
26053
  return spline.isPointNearCurve(canvasCoords, proximity);
26051
26054
  };
26052
26055
  this.toolSelectedCallback = (evt, annotation) => {
@@ -26513,6 +26516,9 @@ class SplineROITool extends _base_ContourSegmentationBaseTool__WEBPACK_IMPORTED_
26513
26516
  const { lineWidth, lineDash, color, locked: annotationLocked, } = annotationStyle;
26514
26517
  const canvasCoordinates = controlPoints.map((p) => worldToCanvas(p));
26515
26518
  const { drawPreviewEnabled } = this.configuration.spline;
26519
+ if (annotation.data.spline && !annotation.data.spline.instance) {
26520
+ annotation.data.spline.instance = new (this._getSplineConfig(annotation.data.spline.type).Class)();
26521
+ }
26516
26522
  const splineType = annotation.data.spline.type;
26517
26523
  const splineConfig = this._getSplineConfig(splineType);
26518
26524
  const spline = annotation.data.spline.instance;
@@ -47390,7 +47396,7 @@ __webpack_require__.r(__webpack_exports__);
47390
47396
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
47391
47397
  /* harmony export */ r: () => (/* binding */ version)
47392
47398
  /* harmony export */ });
47393
- const version = '4.19.0';
47399
+ const version = '4.20.0';
47394
47400
 
47395
47401
 
47396
47402
  /***/ },
@@ -7820,7 +7820,7 @@ class StackViewport extends Viewport/* default */.A {
7820
7820
  this.modality = null;
7821
7821
  this.useCPURendering = (0,init/* getShouldUseCPURendering */.LH)();
7822
7822
  this._configureRenderingPipeline();
7823
- const result = this.useCPURendering
7823
+ this.useCPURendering
7824
7824
  ? this._resetCPUFallbackElement()
7825
7825
  : this._resetGPUViewport();
7826
7826
  this.currentImageIdIndex = 0;
@@ -46425,7 +46425,7 @@ function toLowHighRange(windowWidth, windowCenter, voiLUTFunction = _enums_VOILU
46425
46425
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
46426
46426
  /* harmony export */ r: () => (/* binding */ version)
46427
46427
  /* harmony export */ });
46428
- const version = '4.19.0';
46428
+ const version = '4.20.0';
46429
46429
 
46430
46430
 
46431
46431
  /***/ },
@@ -80732,7 +80732,7 @@ const detectionOptions = {
80732
80732
  }
80733
80733
  });
80734
80734
  ;// ../../i18n/package.json
80735
- const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.13.0-beta.39"}');
80735
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.13.0-beta.41"}');
80736
80736
  ;// ../../i18n/src/utils.js
80737
80737
  const languagesMap = {
80738
80738
  ar: 'Arabic',
@@ -241567,19 +241567,19 @@ async function loadModule(module) {
241567
241567
  return imported.default;
241568
241568
  }
241569
241569
  if (module === "@ohif/extension-measurement-tracking") {
241570
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(581), __webpack_require__.e(5261), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(4819)]).then(__webpack_require__.bind(__webpack_require__, 8877));
241570
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(8963), __webpack_require__.e(5261), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(4819)]).then(__webpack_require__.bind(__webpack_require__, 8877));
241571
241571
  return imported.default;
241572
241572
  }
241573
241573
  if (module === "@ohif/extension-cornerstone-dicom-sr") {
241574
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(581), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(7829)]).then(__webpack_require__.bind(__webpack_require__, 93461));
241574
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(8963), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(7829)]).then(__webpack_require__.bind(__webpack_require__, 93461));
241575
241575
  return imported.default;
241576
241576
  }
241577
241577
  if (module === "@ohif/extension-cornerstone-dicom-seg") {
241578
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(581), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(8305)]).then(__webpack_require__.bind(__webpack_require__, 9099));
241578
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(8963), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(8305)]).then(__webpack_require__.bind(__webpack_require__, 9099));
241579
241579
  return imported.default;
241580
241580
  }
241581
241581
  if (module === "@ohif/extension-cornerstone-dicom-pmap") {
241582
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(581), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(5028)]).then(__webpack_require__.bind(__webpack_require__, 82098));
241582
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(8963), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(5028)]).then(__webpack_require__.bind(__webpack_require__, 82098));
241583
241583
  return imported.default;
241584
241584
  }
241585
241585
  if (module === "@ohif/extension-cornerstone-dynamic-volume") {
@@ -241599,7 +241599,7 @@ async function loadModule(module) {
241599
241599
  return imported.default;
241600
241600
  }
241601
241601
  if (module === "@ohif/extension-tmtv") {
241602
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(581), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(8583)]).then(__webpack_require__.bind(__webpack_require__, 57289));
241602
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(8963), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(8583)]).then(__webpack_require__.bind(__webpack_require__, 57289));
241603
241603
  return imported.default;
241604
241604
  }
241605
241605
  if (module === "@ohif/extension-test") {
@@ -249251,9 +249251,10 @@ function addEventListener(target, eventName, listener, options) {
249251
249251
  /* harmony export */ Rm: () => (/* binding */ log),
249252
249252
  /* harmony export */ h4: () => (/* binding */ derivations),
249253
249253
  /* harmony export */ p: () => (/* binding */ data),
249254
+ /* harmony export */ sr: () => (/* binding */ sr),
249254
249255
  /* harmony export */ z8: () => (/* binding */ normalizers)
249255
249256
  /* harmony export */ });
249256
- /* unused harmony exports DICOMWEB, adapters, anonymizer, async, constants, sr */
249257
+ /* unused harmony exports DICOMWEB, adapters, anonymizer, async, constants */
249257
249258
  /* provided dependency */ var Buffer = __webpack_require__(81429)["hp"];
249258
249259
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : {};
249259
249260
 
@@ -396689,7 +396690,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
396689
396690
  /******/ // This function allow to reference async chunks
396690
396691
  /******/ __webpack_require__.u = (chunkId) => {
396691
396692
  /******/ // return url for filenames based on template
396692
- /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"719c1982ddaf97064586","147":"f71d384c49f50e23f795","213":"2b1cde5520a024b8762b","572":"8954fb59f99daeb3f0b0","581":"f48ce2a0f0dae080154c","732":"ea6f9d8504e37e01a208","1459":"129c34a106b853ca1ca6","1608":"c10d9aef452fe5a86d77","1927":"be67b3aafe238ca9f191","1933":"ac892bb2a5f729ae52f5","2007":"53073c15cca1c5a41ae4","2018":"a269991b4454a3c56338","2075":"0e69a126a39539ff8e9a","2108":"f1ef8e8746eb3936bb47","2424":"4c2f3947db7544d13c17","2701":"28b3ca0e6ae5a13f78b3","3054":"a2a50c4674d99c619ca7","3138":"b980cdc615f992144552","3461":"26426ccbc93481bb8c20","3694":"47da6b38c64751bdb9c4","4202":"f11f02596e30a22d1105","4287":"b7840e7b94cbbc102236","4406":"573d234b4641d23cf8db","4507":"5cca32ed9cc28446ccd7","4688":"eb4e9e11901461f6ddce","4819":"3de16f1740bb7ccce3d4","5015":"3067a7a531110311307f","5028":"2f266002b5375a26263b","5261":"2655560097e9250eac44","5457":"96e277326b7faed55a1c","5485":"d2a5f0b1f493cffaf44f","5802":"a3a398ddaac222cf08f7","6027":"9f95f7641bf5450c7691","6939":"41fbdef87597b5172ec6","7159":"fb9df255868960f69765","7431":"e5a9b628c993b78ff7db","7639":"42309bec0ee018751c3b","8094":"148a66619607e37cbf19","8305":"085bef96ad35f6e5e198","8499":"db7b67b905705e5227fa","8558":"e450c208d6ad29d78d4c","8583":"22768d85d2e69ed1fcac","9195":"64cb955402f0d9d52d79","9205":"7c4a29705386dcefd999","9567":"be350438bed4e656f278","9845":"36b3563ae1dba65b6b9a","9862":"f59f3a574a92024c8823","9927":"d94ebde499608a1632ba"}[chunkId] + ".js";
396693
+ /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"79c5681051a031061e4d","147":"f71d384c49f50e23f795","213":"9ef487e1b9adb9381590","572":"70369a8c69b843375431","732":"ea6f9d8504e37e01a208","1459":"725b4e9d2776ac9063c5","1608":"c10d9aef452fe5a86d77","1927":"be67b3aafe238ca9f191","1933":"928939cb97edcea28e7b","2007":"53073c15cca1c5a41ae4","2018":"4b011332d36e85206cad","2075":"0e69a126a39539ff8e9a","2108":"f1ef8e8746eb3936bb47","2424":"9fbd98a379415bcd4ba9","2701":"28b3ca0e6ae5a13f78b3","3054":"a2a50c4674d99c619ca7","3138":"55d79e6af7d392cef911","3461":"d418652280863f312da3","3694":"ba3878791df68055b11d","4202":"f11f02596e30a22d1105","4287":"b7840e7b94cbbc102236","4406":"573d234b4641d23cf8db","4507":"f78fab196e3f5ed59403","4688":"114adcc40c407ed7d18c","4819":"0cd1049e47d4d46ef63a","5015":"34a8788caa0bf258d194","5028":"1778b95ef2d721eff71c","5261":"2655560097e9250eac44","5457":"ee27e2890a04e64a44bf","5485":"079cc5bd705f725c8f5d","5802":"832845b6f3d277dc874d","6027":"ce0fd76251e773c5d5e4","6939":"41fbdef87597b5172ec6","7159":"fb9df255868960f69765","7431":"e5a9b628c993b78ff7db","7639":"d2d03567252e749428a6","8094":"148a66619607e37cbf19","8305":"d907ab2a252d536ac865","8499":"4cbe5e98f5046cd25fc6","8558":"8124019bdb429709a049","8583":"6b74cee293a1a1e950af","8963":"bc2e871cbd92e9fdbbf5","9195":"5c8fc381c7a8b1b81c43","9205":"383aa4d06e768ee004b5","9567":"be350438bed4e656f278","9845":"36b3563ae1dba65b6b9a","9862":"f59f3a574a92024c8823","9927":"7af41804c41122527790"}[chunkId] + ".js";
396693
396694
  /******/ };
396694
396695
  /******/ })();
396695
396696
  /******/
@@ -136,7 +136,7 @@
136
136
  /******/ // This function allow to reference async chunks and chunks that the entrypoint depends on
137
137
  /******/ __webpack_require__.u = (chunkId) => {
138
138
  /******/ // return url for filenames based on template
139
- /******/ return "" + chunkId + ".bundle." + {"2075":"0e69a126a39539ff8e9a","4287":"b7840e7b94cbbc102236","6354":"929febcf6d326e582e00","6386":"e75a2f70039dfe42f935","7537":"b784154ebd4c85946642"}[chunkId] + ".js";
139
+ /******/ return "" + chunkId + ".bundle." + {"2075":"0e69a126a39539ff8e9a","4287":"b7840e7b94cbbc102236","6354":"929febcf6d326e582e00","6386":"e75a2f70039dfe42f935","7537":"1c612642a1e8a96179ed"}[chunkId] + ".js";
140
140
  /******/ };
141
141
  /******/ })();
142
142
  /******/
package/dist/index.html CHANGED
@@ -3,4 +3,4 @@
3
3
  return import(moduleId);
4
4
  }
5
5
 
6
- window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.1d64a27b61cd298e8ef8.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
6
+ window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.ced82ce0abbd3feb867e.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
@@ -136,7 +136,7 @@
136
136
  /******/ // This function allow to reference async chunks and chunks that the entrypoint depends on
137
137
  /******/ __webpack_require__.u = (chunkId) => {
138
138
  /******/ // return url for filenames based on template
139
- /******/ return "" + (chunkId === 3694 ? "compute" : chunkId) + ".bundle." + {"3694":"47da6b38c64751bdb9c4","4287":"b7840e7b94cbbc102236","6354":"929febcf6d326e582e00","7537":"b784154ebd4c85946642","7758":"c8d106364298e7d288f0","9039":"fd54c15934103ff3fd3b","9567":"be350438bed4e656f278"}[chunkId] + ".js";
139
+ /******/ return "" + (chunkId === 3694 ? "compute" : chunkId) + ".bundle." + {"3694":"ba3878791df68055b11d","4287":"b7840e7b94cbbc102236","6354":"929febcf6d326e582e00","7537":"1c612642a1e8a96179ed","7758":"c8d106364298e7d288f0","9039":"6c84d903d5baaecf2f3a","9567":"be350438bed4e656f278"}[chunkId] + ".js";
140
140
  /******/ };
141
141
  /******/ })();
142
142
  /******/
package/dist/sw.js CHANGED
@@ -50,7 +50,7 @@ self.addEventListener('message', event => {
50
50
  }
51
51
  }
52
52
  });
53
- workbox.precaching.precacheAndRoute([{'revision':null,'url':'/1459.bundle.129c34a106b853ca1ca6.js'},{'revision':null,'url':'/147.bundle.f71d384c49f50e23f795.js'},{'revision':'e0cfcadcf2c2fbc1f117196b9f62bf3e','url':'/147.css'},{'revision':null,'url':'/1608.bundle.c10d9aef452fe5a86d77.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1608.css'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/1927.bundle.be67b3aafe238ca9f191.js'},{'revision':null,'url':'/1933.bundle.ac892bb2a5f729ae52f5.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1933.css'},{'revision':null,'url':'/2018.bundle.a269991b4454a3c56338.js'},{'revision':null,'url':'/2075.bundle.0e69a126a39539ff8e9a.js'},{'revision':null,'url':'/2108.bundle.f1ef8e8746eb3936bb47.js'},{'revision':null,'url':'/213.bundle.2b1cde5520a024b8762b.js'},{'revision':null,'url':'/2424.bundle.4c2f3947db7544d13c17.js'},{'revision':null,'url':'/2516.bundle.f62228e9a800de8d4b31.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/2591.css'},{'revision':null,'url':'/2701.bundle.28b3ca0e6ae5a13f78b3.js'},{'revision':null,'url':'/3138.bundle.b980cdc615f992144552.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/3138.css'},{'revision':null,'url':'/31fb9346313fc3740d7b.woff2'},{'revision':null,'url':'/3461.bundle.26426ccbc93481bb8c20.js'},{'revision':null,'url':'/4202.bundle.f11f02596e30a22d1105.js'},{'revision':null,'url':'/4287.bundle.b7840e7b94cbbc102236.js'},{'revision':null,'url':'/4406.bundle.573d234b4641d23cf8db.js'},{'revision':null,'url':'/4507.bundle.5cca32ed9cc28446ccd7.js'},{'revision':null,'url':'/4688.bundle.eb4e9e11901461f6ddce.js'},{'revision':null,'url':'/4819.bundle.3de16f1740bb7ccce3d4.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4819.css'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4972.css'},{'revision':null,'url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/5015.bundle.3067a7a531110311307f.js'},{'revision':null,'url':'/5028.bundle.2f266002b5375a26263b.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/5028.css'},{'revision':null,'url':'/5261.bundle.2655560097e9250eac44.js'},{'revision':null,'url':'/5457.bundle.96e277326b7faed55a1c.js'},{'revision':null,'url':'/5485.bundle.d2a5f0b1f493cffaf44f.js'},{'revision':null,'url':'/5491.bundle.4866d2ecb20dd089e071.js'},{'revision':null,'url':'/5802.bundle.a3a398ddaac222cf08f7.js'},{'revision':'db90dfc1361c5dfac355bf8067ab4371','url':'/5802.css'},{'revision':null,'url':'/581.bundle.f48ce2a0f0dae080154c.js'},{'revision':null,'url':'/5830.bundle.791019deddd536980a11.js'},{'revision':null,'url':'/5858.bundle.466e58128de344ab53f3.js'},{'revision':null,'url':'/6027.bundle.9f95f7641bf5450c7691.js'},{'revision':null,'url':'/6354.bundle.929febcf6d326e582e00.js'},{'revision':null,'url':'/6376.bundle.839c708f2fc41e76ee58.js'},{'revision':null,'url':'/6386.bundle.e75a2f70039dfe42f935.js'},{'revision':null,'url':'/6939.bundle.41fbdef87597b5172ec6.js'},{'revision':null,'url':'/7159.bundle.fb9df255868960f69765.js'},{'revision':'20a92cf14c2d8be6cd580f68780cc7fa','url':'/7159.css'},{'revision':null,'url':'/7190.bundle.6314b558746e394aeb0e.js'},{'revision':null,'url':'/732.bundle.ea6f9d8504e37e01a208.js'},{'revision':null,'url':'/7431.bundle.e5a9b628c993b78ff7db.js'},{'revision':null,'url':'/7537.bundle.b784154ebd4c85946642.js'},{'revision':null,'url':'/7639.bundle.42309bec0ee018751c3b.js'},{'revision':null,'url':'/7758.bundle.c8d106364298e7d288f0.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/7829.css'},{'revision':null,'url':'/8094.bundle.148a66619607e37cbf19.js'},{'revision':null,'url':'/8305.bundle.085bef96ad35f6e5e198.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8305.css'},{'revision':null,'url':'/8499.bundle.db7b67b905705e5227fa.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8499.css'},{'revision':null,'url':'/85.bundle.719c1982ddaf97064586.js'},{'revision':null,'url':'/8558.bundle.e450c208d6ad29d78d4c.js'},{'revision':null,'url':'/8583.bundle.22768d85d2e69ed1fcac.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8583.css'},{'revision':null,'url':'/9039.bundle.fd54c15934103ff3fd3b.js'},{'revision':null,'url':'/9195.bundle.64cb955402f0d9d52d79.js'},{'revision':null,'url':'/9205.bundle.7c4a29705386dcefd999.js'},{'revision':null,'url':'/9567.bundle.be350438bed4e656f278.js'},{'revision':null,'url':'/982b0633e475d94949df.wasm'},{'revision':null,'url':'/9845.bundle.36b3563ae1dba65b6b9a.js'},{'revision':null,'url':'/9862.bundle.f59f3a574a92024c8823.js'},{'revision':null,'url':'/9927.bundle.d94ebde499608a1632ba.js'},{'revision':'d41d8cd98f00b204e9800998ecf8427e','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':null,'url':'/a957c5cd315f89b6feb1.wasm'},{'revision':'c11dc68cde4925f1ce47ab53247b4c97','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.1d64a27b61cd298e8ef8.js'},{'revision':'3222f79932379aaa0893deaabcc3fbc6','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':'2547879ee2928a5fd56dca483bcbd967','url':'/assets/images/CT-AAA.png'},{'revision':'245628fb9d18d6c5cd529615079f8e86','url':'/assets/images/CT-AAA2.png'},{'revision':'997a9c8b57e7b4e46d8f01fb49d078c6','url':'/assets/images/CT-Air.png'},{'revision':'e7ed89711f63348d49898da3a2b73ab9','url':'/assets/images/CT-Bone.png'},{'revision':'09d1dc6efebb10a60cdf85ed74a10214','url':'/assets/images/CT-Bones.png'},{'revision':'f8ae9bafd3b90ba3efbdcbe8901db187','url':'/assets/images/CT-Cardiac.png'},{'revision':'ed0cc538aba90d6a1c029923ca9b47db','url':'/assets/images/CT-Cardiac2.png'},{'revision':'dfdaf4e4889aefbf09514545f45726bb','url':'/assets/images/CT-Cardiac3.png'},{'revision':'5d4b9a331136a1a5d7ce7ccf7dfcca36','url':'/assets/images/CT-Chest-Contrast-Enhanced.png'},{'revision':'5fb264499a5bb42487663b00e42d1513','url':'/assets/images/CT-Chest-Vessels.png'},{'revision':'ab8f0e569c972388ddaaa61b92449fac','url':'/assets/images/CT-Coronary-Arteries-2.png'},{'revision':'e4e7e2e3cc09bc8c4fb03b6441bd2845','url':'/assets/images/CT-Coronary-Arteries-3.png'},{'revision':'79a2962a2d3cbe4bd3b675b5ca83c659','url':'/assets/images/CT-Coronary-Arteries.png'},{'revision':'6502a6bdab1c70e2188c3bf12ce5d4e4','url':'/assets/images/CT-Cropped-Volume-Bone.png'},{'revision':'e28ad3cf5ed2006fc5a7cffd602736fc','url':'/assets/images/CT-Fat.png'},{'revision':'ca1c5be76053edee27e68ffbf9105101','url':'/assets/images/CT-Liver-Vasculature.png'},{'revision':'d6c9ab857ed2ad19f1ff20bea02b6655','url':'/assets/images/CT-Lung.png'},{'revision':'ddb599c6a163bdf28ece8de1a337470a','url':'/assets/images/CT-MIP.png'},{'revision':'0b0dcf7940a555e2a9a0900f7f84d4d3','url':'/assets/images/CT-Muscle.png'},{'revision':'6082d383f9ce375a5873e2a00fc4d372','url':'/assets/images/CT-Pulmonary-Arteries.png'},{'revision':'b317366149ee2607bec95d63eb4d7661','url':'/assets/images/CT-Soft-Tissue.png'},{'revision':'4b0cd5a673ebb71da22a91ed608d6695','url':'/assets/images/DTI-FA-Brain.png'},{'revision':'3ea1cbee022af5b94710b73726308832','url':'/assets/images/MR-Angio.png'},{'revision':'bd25ca7b166193547f34950eed440e5c','url':'/assets/images/MR-Default.png'},{'revision':'2e50a49b859aeb316a1c23f911fce9ad','url':'/assets/images/MR-MIP.png'},{'revision':'6ba74de6961e08652ff9e2f1871b473d','url':'/assets/images/MR-T2-Brain.png'},{'revision':'42406bb474f0f87cf04a5afbbcd5e389','url':'/assets/images/VolumeRendering.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':'dd001f21b3970d5a7f3e245cc10d21df','url':'/assets/yandex-browser-manifest.json'},{'revision':null,'url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':null,'url':'/compute.bundle.47da6b38c64751bdb9c4.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/dicom-microscopy-viewer/charlswasm_decode.wasm'},{'revision':'9214592a1edd456ad2ef69772201398e','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js'},{'revision':'813dee9adb3a3478dedc6dfe1479e15b','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js.map'},{'revision':'fb088ddc5ec5de63aa6095f70baa2d45','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js'},{'revision':'cdf943673c34e8dd6be85b026bdffc70','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.map'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/dicom-microscopy-viewer/dicomiccwasm.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/dicom-microscopy-viewer/libjpegturbowasm_decode.wasm'},{'revision':'54a25d82a224dfd401569baffc8b478d','url':'/dicom-microscopy-viewer/openjpegwasm_decode.wasm'},{'revision':'4acdd19a35d759ec2669f1ba9490937d','url':'/es6-shim.min.js'},{'revision':'92b01d0a387d59841e02cc3a4c994657','url':'/google.js'},{'revision':null,'url':'/histogram-worker.bundle.a2a50c4674d99c619ca7.js'},{'revision':'1bdee3269b2c42236d0eb18d421d802f','url':'/index.html'},{'revision':'31c0367ca4160b2c6373e905739c5719','url':'/init-service-worker.js'},{'revision':null,'url':'/interpolation.bundle.53073c15cca1c5a41ae4.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'eadf8bf1d85032a029e2c0df4b8938b0','url':'/oidc-client.min.js'},{'revision':'242abae066a3d4717e09f218703f1923','url':'/ort/cjs/ort.all.min.js'},{'revision':'039ea411b3b655094035e85bb2e245d4','url':'/ort/cjs/ort.all.min.js.map'},{'revision':'fb509ab752acf788c3cc25459ae72e62','url':'/ort/cjs/ort.min.js'},{'revision':'30087ad61fc31272eb6094962e3a0451','url':'/ort/cjs/ort.min.js.map'},{'revision':'0fad6d8ca65291350ca8a1751659a536','url':'/ort/cjs/ort.training.wasm.min.js'},{'revision':'da692fb2cd7f67223b92a90955b87cb3','url':'/ort/cjs/ort.training.wasm.min.js.map'},{'revision':'f471b605fb03df54c63d5bc77a32226b','url':'/ort/cjs/ort.wasm-core.min.js'},{'revision':'cc4475faebff69233b4fdc1a78eb0399','url':'/ort/cjs/ort.wasm-core.min.js.map'},{'revision':'d228221765171d0a4cf3cb3909dd0be3','url':'/ort/cjs/ort.wasm.min.js'},{'revision':'6d132c02e5eeadf4da54c8bcc0c15200','url':'/ort/cjs/ort.wasm.min.js.map'},{'revision':'9a463e37f9550d7a23f5a47076b6b3d8','url':'/ort/cjs/ort.webgl.min.js'},{'revision':'26e251b6aee08c91a3d6e1af1410659d','url':'/ort/cjs/ort.webgl.min.js.map'},{'revision':'5cd623012201d7c5ddbbdb57224ac26d','url':'/ort/cjs/ort.webgpu.min.js'},{'revision':'e53c54f9663a5d7573b66dd3d25fb93a','url':'/ort/cjs/ort.webgpu.min.js.map'},{'revision':'a6b7eb31b5dcf3835a90ea0d201f21e3','url':'/ort/cjs/package.json'},{'revision':'2ccbe0c4397149108dd0d7ced00b5879','url':'/ort/esm/ort.all.min.js'},{'revision':'2b2ff793ba11a59563a504067aa1e469','url':'/ort/esm/ort.all.min.js.map'},{'revision':'978e978337e66e848c2351da61fd7e8e','url':'/ort/esm/ort.min.js'},{'revision':'add9f88f20194b214c8a97b200c4eac0','url':'/ort/esm/ort.min.js.map'},{'revision':'61471773b94ac06d0d814b49cf619233','url':'/ort/esm/ort.training.wasm.min.js'},{'revision':'60057feb2e9c1d39d7e52b165e450e72','url':'/ort/esm/ort.training.wasm.min.js.map'},{'revision':'12635093e14a67921565de89f678c470','url':'/ort/esm/ort.wasm-core.min.js'},{'revision':'1d2c905465e8b47dc023beaf715bb6ae','url':'/ort/esm/ort.wasm-core.min.js.map'},{'revision':'f2780d73ea108c5728b4c4fb6bd1e8df','url':'/ort/esm/ort.wasm.min.js'},{'revision':'e1af0f0e8befaa973a9192cdc1a882fb','url':'/ort/esm/ort.wasm.min.js.map'},{'revision':'c5a2e8ed939ccfb0211336d8b385d81a','url':'/ort/esm/ort.webgl.min.js'},{'revision':'9e0198bc10517578066aed6c8baef1a3','url':'/ort/esm/ort.webgl.min.js.map'},{'revision':'0c96a22438d8ffdf94f13b1693dbed8b','url':'/ort/esm/ort.webgpu.min.js'},{'revision':'24126f825e1c2dd678b4b85cde6c4e3a','url':'/ort/esm/ort.webgpu.min.js.map'},{'revision':'b305354b5d3207dc798e87449005a1de','url':'/ort/esm/package.json'},{'revision':'10ba4d1a5289405cff7d9b5f453b60b4','url':'/ort/ort-training-wasm-simd.wasm'},{'revision':'f7380fb5928344460bac0e5833ee4a82','url':'/ort/ort-wasm-simd-threaded.jsep.wasm'},{'revision':'068e15f5aba004197782c011a782c500','url':'/ort/ort-wasm-simd-threaded.wasm'},{'revision':'8a468bda81bfb9e375907f0b6da8ffee','url':'/ort/ort-wasm-simd.jsep.wasm'},{'revision':'27a8292511e77fc50ced64326875ca4a','url':'/ort/ort-wasm-simd.wasm'},{'revision':'c9cf2d09cfabe6ea517c87620091a2fb','url':'/ort/ort-wasm-threaded.wasm'},{'revision':'88cb0475e8c4228b29dd201646223f0c','url':'/ort/ort-wasm.wasm'},{'revision':'708def774c211a2b036384d9e14dbfe7','url':'/ort/ort.all.js'},{'revision':'32e292212f5767983e5433f0a88d3425','url':'/ort/ort.all.min.js'},{'revision':'c4a4b66af400491c83591ab732dac868','url':'/ort/ort.all.min.js.map'},{'revision':'5d78ec66bcab8a26756d43b8c63a8f1e','url':'/ort/ort.js'},{'revision':'d552a78742409520bd30fb824a88a266','url':'/ort/ort.min.js'},{'revision':'a1fdb4abef4a6130f72148fe469ca114','url':'/ort/ort.min.js.map'},{'revision':'e3b420cb98f192d8755934dde7c014db','url':'/ort/ort.node.min.js'},{'revision':'9b0c2098e6c9b0f6d6e54e8cb434ed76','url':'/ort/ort.node.min.js.map'},{'revision':'722dabcfbb18772ca80ef96ef9b9a036','url':'/ort/ort.training.wasm.min.js'},{'revision':'de35b3d2e302163bdcb80d3e20c84266','url':'/ort/ort.training.wasm.min.js.map'},{'revision':'f92b62229fc36d346f720b2410e63576','url':'/ort/ort.wasm-core.min.js'},{'revision':'8f56640956155afecadc318d8a32e0f6','url':'/ort/ort.wasm-core.min.js.map'},{'revision':'5ac1ffe964e3bd1f0d2e6a3a18a5a1ba','url':'/ort/ort.wasm.min.js'},{'revision':'9b0a74e48529a07b61428b1a48233b39','url':'/ort/ort.wasm.min.js.map'},{'revision':'4591c9c641ab0151b9a8cdc1ce110286','url':'/ort/ort.webgl.min.js'},{'revision':'77e632e10b98c8d10e17bb3071d5cba4','url':'/ort/ort.webgl.min.js.map'},{'revision':'027aca68552f5081e90a08f7fb064fb7','url':'/ort/ort.webgpu.min.js'},{'revision':'12dc9d5c577bac166f0f74590e4d27dd','url':'/ort/ort.webgpu.min.js.map'},{'revision':null,'url':'/polySeg.bundle.8954fb59f99daeb3f0b0.js'},{'revision':'a1aef5311245f5864315443d12246c37','url':'/polyfill.min.js'},{'revision':'981ac7f7543b8330e3826aff72c33382','url':'/serve.json'},{'revision':'b1e488d9955b62bd2858874df11d5223','url':'/silent-refresh.html'}]);
53
+ workbox.precaching.precacheAndRoute([{'revision':null,'url':'/1459.bundle.725b4e9d2776ac9063c5.js'},{'revision':null,'url':'/147.bundle.f71d384c49f50e23f795.js'},{'revision':'e0cfcadcf2c2fbc1f117196b9f62bf3e','url':'/147.css'},{'revision':null,'url':'/1608.bundle.c10d9aef452fe5a86d77.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1608.css'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/1927.bundle.be67b3aafe238ca9f191.js'},{'revision':null,'url':'/1933.bundle.928939cb97edcea28e7b.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1933.css'},{'revision':null,'url':'/2018.bundle.4b011332d36e85206cad.js'},{'revision':null,'url':'/2075.bundle.0e69a126a39539ff8e9a.js'},{'revision':null,'url':'/2108.bundle.f1ef8e8746eb3936bb47.js'},{'revision':null,'url':'/213.bundle.9ef487e1b9adb9381590.js'},{'revision':null,'url':'/2424.bundle.9fbd98a379415bcd4ba9.js'},{'revision':null,'url':'/2516.bundle.f62228e9a800de8d4b31.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/2591.css'},{'revision':null,'url':'/2701.bundle.28b3ca0e6ae5a13f78b3.js'},{'revision':null,'url':'/3138.bundle.55d79e6af7d392cef911.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/3138.css'},{'revision':null,'url':'/31fb9346313fc3740d7b.woff2'},{'revision':null,'url':'/3461.bundle.d418652280863f312da3.js'},{'revision':null,'url':'/4202.bundle.f11f02596e30a22d1105.js'},{'revision':null,'url':'/4287.bundle.b7840e7b94cbbc102236.js'},{'revision':null,'url':'/4406.bundle.573d234b4641d23cf8db.js'},{'revision':null,'url':'/4507.bundle.f78fab196e3f5ed59403.js'},{'revision':null,'url':'/4688.bundle.114adcc40c407ed7d18c.js'},{'revision':null,'url':'/4819.bundle.0cd1049e47d4d46ef63a.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4819.css'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4972.css'},{'revision':null,'url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/5015.bundle.34a8788caa0bf258d194.js'},{'revision':null,'url':'/5028.bundle.1778b95ef2d721eff71c.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/5028.css'},{'revision':null,'url':'/5261.bundle.2655560097e9250eac44.js'},{'revision':null,'url':'/5457.bundle.ee27e2890a04e64a44bf.js'},{'revision':null,'url':'/5485.bundle.079cc5bd705f725c8f5d.js'},{'revision':null,'url':'/5491.bundle.4866d2ecb20dd089e071.js'},{'revision':null,'url':'/5802.bundle.832845b6f3d277dc874d.js'},{'revision':'db90dfc1361c5dfac355bf8067ab4371','url':'/5802.css'},{'revision':null,'url':'/5830.bundle.791019deddd536980a11.js'},{'revision':null,'url':'/5858.bundle.466e58128de344ab53f3.js'},{'revision':null,'url':'/6027.bundle.ce0fd76251e773c5d5e4.js'},{'revision':null,'url':'/6354.bundle.929febcf6d326e582e00.js'},{'revision':null,'url':'/6376.bundle.839c708f2fc41e76ee58.js'},{'revision':null,'url':'/6386.bundle.e75a2f70039dfe42f935.js'},{'revision':null,'url':'/6939.bundle.41fbdef87597b5172ec6.js'},{'revision':null,'url':'/7159.bundle.fb9df255868960f69765.js'},{'revision':'20a92cf14c2d8be6cd580f68780cc7fa','url':'/7159.css'},{'revision':null,'url':'/7190.bundle.6314b558746e394aeb0e.js'},{'revision':null,'url':'/732.bundle.ea6f9d8504e37e01a208.js'},{'revision':null,'url':'/7431.bundle.e5a9b628c993b78ff7db.js'},{'revision':null,'url':'/7537.bundle.1c612642a1e8a96179ed.js'},{'revision':null,'url':'/7639.bundle.d2d03567252e749428a6.js'},{'revision':null,'url':'/7758.bundle.c8d106364298e7d288f0.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/7829.css'},{'revision':null,'url':'/8094.bundle.148a66619607e37cbf19.js'},{'revision':null,'url':'/8305.bundle.d907ab2a252d536ac865.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8305.css'},{'revision':null,'url':'/8499.bundle.4cbe5e98f5046cd25fc6.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8499.css'},{'revision':null,'url':'/85.bundle.79c5681051a031061e4d.js'},{'revision':null,'url':'/8558.bundle.8124019bdb429709a049.js'},{'revision':null,'url':'/8583.bundle.6b74cee293a1a1e950af.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8583.css'},{'revision':null,'url':'/8963.bundle.bc2e871cbd92e9fdbbf5.js'},{'revision':null,'url':'/9039.bundle.6c84d903d5baaecf2f3a.js'},{'revision':null,'url':'/9195.bundle.5c8fc381c7a8b1b81c43.js'},{'revision':null,'url':'/9205.bundle.383aa4d06e768ee004b5.js'},{'revision':null,'url':'/9567.bundle.be350438bed4e656f278.js'},{'revision':null,'url':'/982b0633e475d94949df.wasm'},{'revision':null,'url':'/9845.bundle.36b3563ae1dba65b6b9a.js'},{'revision':null,'url':'/9862.bundle.f59f3a574a92024c8823.js'},{'revision':null,'url':'/9927.bundle.7af41804c41122527790.js'},{'revision':'d41d8cd98f00b204e9800998ecf8427e','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':null,'url':'/a957c5cd315f89b6feb1.wasm'},{'revision':'c11dc68cde4925f1ce47ab53247b4c97','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.ced82ce0abbd3feb867e.js'},{'revision':'3222f79932379aaa0893deaabcc3fbc6','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':'2547879ee2928a5fd56dca483bcbd967','url':'/assets/images/CT-AAA.png'},{'revision':'245628fb9d18d6c5cd529615079f8e86','url':'/assets/images/CT-AAA2.png'},{'revision':'997a9c8b57e7b4e46d8f01fb49d078c6','url':'/assets/images/CT-Air.png'},{'revision':'e7ed89711f63348d49898da3a2b73ab9','url':'/assets/images/CT-Bone.png'},{'revision':'09d1dc6efebb10a60cdf85ed74a10214','url':'/assets/images/CT-Bones.png'},{'revision':'f8ae9bafd3b90ba3efbdcbe8901db187','url':'/assets/images/CT-Cardiac.png'},{'revision':'ed0cc538aba90d6a1c029923ca9b47db','url':'/assets/images/CT-Cardiac2.png'},{'revision':'dfdaf4e4889aefbf09514545f45726bb','url':'/assets/images/CT-Cardiac3.png'},{'revision':'5d4b9a331136a1a5d7ce7ccf7dfcca36','url':'/assets/images/CT-Chest-Contrast-Enhanced.png'},{'revision':'5fb264499a5bb42487663b00e42d1513','url':'/assets/images/CT-Chest-Vessels.png'},{'revision':'ab8f0e569c972388ddaaa61b92449fac','url':'/assets/images/CT-Coronary-Arteries-2.png'},{'revision':'e4e7e2e3cc09bc8c4fb03b6441bd2845','url':'/assets/images/CT-Coronary-Arteries-3.png'},{'revision':'79a2962a2d3cbe4bd3b675b5ca83c659','url':'/assets/images/CT-Coronary-Arteries.png'},{'revision':'6502a6bdab1c70e2188c3bf12ce5d4e4','url':'/assets/images/CT-Cropped-Volume-Bone.png'},{'revision':'e28ad3cf5ed2006fc5a7cffd602736fc','url':'/assets/images/CT-Fat.png'},{'revision':'ca1c5be76053edee27e68ffbf9105101','url':'/assets/images/CT-Liver-Vasculature.png'},{'revision':'d6c9ab857ed2ad19f1ff20bea02b6655','url':'/assets/images/CT-Lung.png'},{'revision':'ddb599c6a163bdf28ece8de1a337470a','url':'/assets/images/CT-MIP.png'},{'revision':'0b0dcf7940a555e2a9a0900f7f84d4d3','url':'/assets/images/CT-Muscle.png'},{'revision':'6082d383f9ce375a5873e2a00fc4d372','url':'/assets/images/CT-Pulmonary-Arteries.png'},{'revision':'b317366149ee2607bec95d63eb4d7661','url':'/assets/images/CT-Soft-Tissue.png'},{'revision':'4b0cd5a673ebb71da22a91ed608d6695','url':'/assets/images/DTI-FA-Brain.png'},{'revision':'3ea1cbee022af5b94710b73726308832','url':'/assets/images/MR-Angio.png'},{'revision':'bd25ca7b166193547f34950eed440e5c','url':'/assets/images/MR-Default.png'},{'revision':'2e50a49b859aeb316a1c23f911fce9ad','url':'/assets/images/MR-MIP.png'},{'revision':'6ba74de6961e08652ff9e2f1871b473d','url':'/assets/images/MR-T2-Brain.png'},{'revision':'42406bb474f0f87cf04a5afbbcd5e389','url':'/assets/images/VolumeRendering.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':'dd001f21b3970d5a7f3e245cc10d21df','url':'/assets/yandex-browser-manifest.json'},{'revision':null,'url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':null,'url':'/compute.bundle.ba3878791df68055b11d.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/dicom-microscopy-viewer/charlswasm_decode.wasm'},{'revision':'9214592a1edd456ad2ef69772201398e','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js'},{'revision':'813dee9adb3a3478dedc6dfe1479e15b','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js.map'},{'revision':'fb088ddc5ec5de63aa6095f70baa2d45','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js'},{'revision':'cdf943673c34e8dd6be85b026bdffc70','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.map'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/dicom-microscopy-viewer/dicomiccwasm.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/dicom-microscopy-viewer/libjpegturbowasm_decode.wasm'},{'revision':'54a25d82a224dfd401569baffc8b478d','url':'/dicom-microscopy-viewer/openjpegwasm_decode.wasm'},{'revision':'4acdd19a35d759ec2669f1ba9490937d','url':'/es6-shim.min.js'},{'revision':'92b01d0a387d59841e02cc3a4c994657','url':'/google.js'},{'revision':null,'url':'/histogram-worker.bundle.a2a50c4674d99c619ca7.js'},{'revision':'5ac33f93cd7f7f5b892de694c2d6689f','url':'/index.html'},{'revision':'31c0367ca4160b2c6373e905739c5719','url':'/init-service-worker.js'},{'revision':null,'url':'/interpolation.bundle.53073c15cca1c5a41ae4.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'eadf8bf1d85032a029e2c0df4b8938b0','url':'/oidc-client.min.js'},{'revision':'242abae066a3d4717e09f218703f1923','url':'/ort/cjs/ort.all.min.js'},{'revision':'039ea411b3b655094035e85bb2e245d4','url':'/ort/cjs/ort.all.min.js.map'},{'revision':'fb509ab752acf788c3cc25459ae72e62','url':'/ort/cjs/ort.min.js'},{'revision':'30087ad61fc31272eb6094962e3a0451','url':'/ort/cjs/ort.min.js.map'},{'revision':'0fad6d8ca65291350ca8a1751659a536','url':'/ort/cjs/ort.training.wasm.min.js'},{'revision':'da692fb2cd7f67223b92a90955b87cb3','url':'/ort/cjs/ort.training.wasm.min.js.map'},{'revision':'f471b605fb03df54c63d5bc77a32226b','url':'/ort/cjs/ort.wasm-core.min.js'},{'revision':'cc4475faebff69233b4fdc1a78eb0399','url':'/ort/cjs/ort.wasm-core.min.js.map'},{'revision':'d228221765171d0a4cf3cb3909dd0be3','url':'/ort/cjs/ort.wasm.min.js'},{'revision':'6d132c02e5eeadf4da54c8bcc0c15200','url':'/ort/cjs/ort.wasm.min.js.map'},{'revision':'9a463e37f9550d7a23f5a47076b6b3d8','url':'/ort/cjs/ort.webgl.min.js'},{'revision':'26e251b6aee08c91a3d6e1af1410659d','url':'/ort/cjs/ort.webgl.min.js.map'},{'revision':'5cd623012201d7c5ddbbdb57224ac26d','url':'/ort/cjs/ort.webgpu.min.js'},{'revision':'e53c54f9663a5d7573b66dd3d25fb93a','url':'/ort/cjs/ort.webgpu.min.js.map'},{'revision':'a6b7eb31b5dcf3835a90ea0d201f21e3','url':'/ort/cjs/package.json'},{'revision':'2ccbe0c4397149108dd0d7ced00b5879','url':'/ort/esm/ort.all.min.js'},{'revision':'2b2ff793ba11a59563a504067aa1e469','url':'/ort/esm/ort.all.min.js.map'},{'revision':'978e978337e66e848c2351da61fd7e8e','url':'/ort/esm/ort.min.js'},{'revision':'add9f88f20194b214c8a97b200c4eac0','url':'/ort/esm/ort.min.js.map'},{'revision':'61471773b94ac06d0d814b49cf619233','url':'/ort/esm/ort.training.wasm.min.js'},{'revision':'60057feb2e9c1d39d7e52b165e450e72','url':'/ort/esm/ort.training.wasm.min.js.map'},{'revision':'12635093e14a67921565de89f678c470','url':'/ort/esm/ort.wasm-core.min.js'},{'revision':'1d2c905465e8b47dc023beaf715bb6ae','url':'/ort/esm/ort.wasm-core.min.js.map'},{'revision':'f2780d73ea108c5728b4c4fb6bd1e8df','url':'/ort/esm/ort.wasm.min.js'},{'revision':'e1af0f0e8befaa973a9192cdc1a882fb','url':'/ort/esm/ort.wasm.min.js.map'},{'revision':'c5a2e8ed939ccfb0211336d8b385d81a','url':'/ort/esm/ort.webgl.min.js'},{'revision':'9e0198bc10517578066aed6c8baef1a3','url':'/ort/esm/ort.webgl.min.js.map'},{'revision':'0c96a22438d8ffdf94f13b1693dbed8b','url':'/ort/esm/ort.webgpu.min.js'},{'revision':'24126f825e1c2dd678b4b85cde6c4e3a','url':'/ort/esm/ort.webgpu.min.js.map'},{'revision':'b305354b5d3207dc798e87449005a1de','url':'/ort/esm/package.json'},{'revision':'10ba4d1a5289405cff7d9b5f453b60b4','url':'/ort/ort-training-wasm-simd.wasm'},{'revision':'f7380fb5928344460bac0e5833ee4a82','url':'/ort/ort-wasm-simd-threaded.jsep.wasm'},{'revision':'068e15f5aba004197782c011a782c500','url':'/ort/ort-wasm-simd-threaded.wasm'},{'revision':'8a468bda81bfb9e375907f0b6da8ffee','url':'/ort/ort-wasm-simd.jsep.wasm'},{'revision':'27a8292511e77fc50ced64326875ca4a','url':'/ort/ort-wasm-simd.wasm'},{'revision':'c9cf2d09cfabe6ea517c87620091a2fb','url':'/ort/ort-wasm-threaded.wasm'},{'revision':'88cb0475e8c4228b29dd201646223f0c','url':'/ort/ort-wasm.wasm'},{'revision':'708def774c211a2b036384d9e14dbfe7','url':'/ort/ort.all.js'},{'revision':'32e292212f5767983e5433f0a88d3425','url':'/ort/ort.all.min.js'},{'revision':'c4a4b66af400491c83591ab732dac868','url':'/ort/ort.all.min.js.map'},{'revision':'5d78ec66bcab8a26756d43b8c63a8f1e','url':'/ort/ort.js'},{'revision':'d552a78742409520bd30fb824a88a266','url':'/ort/ort.min.js'},{'revision':'a1fdb4abef4a6130f72148fe469ca114','url':'/ort/ort.min.js.map'},{'revision':'e3b420cb98f192d8755934dde7c014db','url':'/ort/ort.node.min.js'},{'revision':'9b0c2098e6c9b0f6d6e54e8cb434ed76','url':'/ort/ort.node.min.js.map'},{'revision':'722dabcfbb18772ca80ef96ef9b9a036','url':'/ort/ort.training.wasm.min.js'},{'revision':'de35b3d2e302163bdcb80d3e20c84266','url':'/ort/ort.training.wasm.min.js.map'},{'revision':'f92b62229fc36d346f720b2410e63576','url':'/ort/ort.wasm-core.min.js'},{'revision':'8f56640956155afecadc318d8a32e0f6','url':'/ort/ort.wasm-core.min.js.map'},{'revision':'5ac1ffe964e3bd1f0d2e6a3a18a5a1ba','url':'/ort/ort.wasm.min.js'},{'revision':'9b0a74e48529a07b61428b1a48233b39','url':'/ort/ort.wasm.min.js.map'},{'revision':'4591c9c641ab0151b9a8cdc1ce110286','url':'/ort/ort.webgl.min.js'},{'revision':'77e632e10b98c8d10e17bb3071d5cba4','url':'/ort/ort.webgl.min.js.map'},{'revision':'027aca68552f5081e90a08f7fb064fb7','url':'/ort/ort.webgpu.min.js'},{'revision':'12dc9d5c577bac166f0f74590e4d27dd','url':'/ort/ort.webgpu.min.js.map'},{'revision':null,'url':'/polySeg.bundle.70369a8c69b843375431.js'},{'revision':'a1aef5311245f5864315443d12246c37','url':'/polyfill.min.js'},{'revision':'981ac7f7543b8330e3826aff72c33382','url':'/serve.json'},{'revision':'b1e488d9955b62bd2858874df11d5223','url':'/silent-refresh.html'}]);
54
54
 
55
55
  // TODO: Cache API
56
56
  // 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.13.0-beta.40",
3
+ "version": "3.13.0-beta.42",
4
4
  "productVersion": "3.4.0",
5
5
  "description": "OHIF Viewer",
6
6
  "author": "OHIF Contributors",
@@ -54,27 +54,27 @@
54
54
  "@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
55
55
  "@cornerstonejs/codec-openjpeg": "1.3.0",
56
56
  "@cornerstonejs/codec-openjph": "2.4.7",
57
- "@cornerstonejs/dicom-image-loader": "4.19.0",
57
+ "@cornerstonejs/dicom-image-loader": "4.20.0",
58
58
  "@emotion/serialize": "1.3.3",
59
- "@ohif/core": "3.13.0-beta.40",
60
- "@ohif/extension-cornerstone": "3.13.0-beta.40",
61
- "@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.40",
62
- "@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.40",
63
- "@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.40",
64
- "@ohif/extension-default": "3.13.0-beta.40",
65
- "@ohif/extension-dicom-microscopy": "3.13.0-beta.40",
66
- "@ohif/extension-dicom-pdf": "3.13.0-beta.40",
67
- "@ohif/extension-dicom-video": "3.13.0-beta.40",
68
- "@ohif/extension-test": "3.13.0-beta.40",
69
- "@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.40",
70
- "@ohif/i18n": "3.13.0-beta.40",
71
- "@ohif/mode-basic-dev-mode": "3.13.0-beta.40",
72
- "@ohif/mode-longitudinal": "3.13.0-beta.40",
73
- "@ohif/mode-microscopy": "3.13.0-beta.40",
74
- "@ohif/mode-test": "3.13.0-beta.40",
75
- "@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.40",
76
- "@ohif/ui": "3.13.0-beta.40",
77
- "@ohif/ui-next": "3.13.0-beta.40",
59
+ "@ohif/core": "3.13.0-beta.42",
60
+ "@ohif/extension-cornerstone": "3.13.0-beta.42",
61
+ "@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.42",
62
+ "@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.42",
63
+ "@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.42",
64
+ "@ohif/extension-default": "3.13.0-beta.42",
65
+ "@ohif/extension-dicom-microscopy": "3.13.0-beta.42",
66
+ "@ohif/extension-dicom-pdf": "3.13.0-beta.42",
67
+ "@ohif/extension-dicom-video": "3.13.0-beta.42",
68
+ "@ohif/extension-test": "3.13.0-beta.42",
69
+ "@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.42",
70
+ "@ohif/i18n": "3.13.0-beta.42",
71
+ "@ohif/mode-basic-dev-mode": "3.13.0-beta.42",
72
+ "@ohif/mode-longitudinal": "3.13.0-beta.42",
73
+ "@ohif/mode-microscopy": "3.13.0-beta.42",
74
+ "@ohif/mode-test": "3.13.0-beta.42",
75
+ "@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.42",
76
+ "@ohif/ui": "3.13.0-beta.42",
77
+ "@ohif/ui-next": "3.13.0-beta.42",
78
78
  "@svgr/webpack": "8.1.0",
79
79
  "@types/react": "18.3.23",
80
80
  "classnames": "2.5.1",