@ohif/app 3.9.0-beta.63 → 3.9.0-beta.65
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/{281.bundle.7c7901a50253c44b7442.js → 281.bundle.b8b7d64372d238b1bed7.js} +2 -2
- package/dist/{360.bundle.8a8f7bd0f6abe249c0bf.js → 360.bundle.e9046bdadd9127c4c283.js} +64 -42
- package/dist/{516.bundle.2ef0b13819eba82a074a.js → 516.bundle.693f55fcf3bb54b40468.js} +2 -2
- package/dist/714.bundle.9b2c17c05367d7c0d610.js +714 -0
- package/dist/{842.bundle.1f7c1ed6e3fc4b3d6c0d.js → 842.bundle.a18175a4463177477ae0.js} +2 -2
- package/dist/app.bundle.css +2 -2
- package/dist/{app.bundle.7f68c3bf1b59a4296eb8.js → app.bundle.ebe09d60104c52d101df.js} +24 -9
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- package/dist/571.bundle.2b4e21bc61d7685a5fdb.js +0 -439
- /package/dist/{153.bundle.afe3ef7a718e10fe4dad.js → 153.bundle.0ae1608ab0c459f10034.js} +0 -0
- /package/dist/{210.bundle.ab7a30ddd8918c2430c0.js → 210.bundle.257ad99561da3bcd8898.js} +0 -0
- /package/dist/{246.bundle.56cb7242fd5fffa7e162.js → 246.bundle.fbf55ff25ff129a8803b.js} +0 -0
- /package/dist/{353.bundle.f24a9a5a6c132b064183.js → 353.bundle.35ad75ecf210b279b5d2.js} +0 -0
- /package/dist/{376.bundle.ba616b300f3928c0ff01.js → 376.bundle.c07661d7af53d348e9a6.js} +0 -0
- /package/dist/{502.bundle.ebdcf21b4235a0467291.js → 502.bundle.5ccd0605d5f7143e1a18.js} +0 -0
- /package/dist/{591.bundle.f10188994bacf4ea603f.js → 591.bundle.93e22748fb59e587b62c.js} +0 -0
- /package/dist/{65.bundle.51f001957a96f638b829.js → 65.bundle.9b25384f1dd15b04c099.js} +0 -0
- /package/dist/{791.bundle.4b3194aec51358ee63b5.js → 791.bundle.4debb283e99b3c663b79.js} +0 -0
- /package/dist/{888.bundle.e4baf21a08c731ff0cde.js → 888.bundle.f2989b50bdb1b0d4b5da.js} +0 -0
- /package/dist/{913.bundle.92c848a924160e13ea85.js → 913.bundle.f982e2af9e7287fc3539.js} +0 -0
- /package/dist/{944.bundle.4cae5a299a033b49d859.js → 944.bundle.c6c7ffe0ac1321ccbcea.js} +0 -0
- /package/dist/{962.bundle.716a1bdba3c497f813d3.js → 962.bundle.85a0fcaaf3c0aeeb6789.js} +0 -0
- /package/dist/{978.bundle.b4c917071818698e2d80.js → 978.bundle.56bcd4d2eea3e8622913.js} +0 -0
- /package/dist/{994.bundle.69e100d89d343c11903d.js → 994.bundle.ceeeed48891cf977dd14.js} +0 -0
|
@@ -2844,8 +2844,8 @@ function ViewerHeader({
|
|
|
2844
2844
|
hotkeyDefinitions,
|
|
2845
2845
|
hotkeyDefaults
|
|
2846
2846
|
} = hotkeysManager;
|
|
2847
|
-
const versionNumber = "3.9.0-beta.
|
|
2848
|
-
const commitHash = "
|
|
2847
|
+
const versionNumber = "3.9.0-beta.65";
|
|
2848
|
+
const commitHash = "246ebab6ebf5431a704a1861a5804045b9644ba4";
|
|
2849
2849
|
const menuOptions = [{
|
|
2850
2850
|
title: t('Header:About'),
|
|
2851
2851
|
icon: 'info',
|
|
@@ -1,6 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[360],{
|
|
3
3
|
|
|
4
|
+
/***/ 91851:
|
|
5
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
|
+
|
|
7
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8
|
+
/* harmony export */ Z: () => (/* binding */ CodeNameCodeSequenceValues)
|
|
9
|
+
/* harmony export */ });
|
|
10
|
+
/* harmony import */ var _cornerstonejs_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91202);
|
|
11
|
+
|
|
12
|
+
const {
|
|
13
|
+
CodeScheme: Cornerstone3DCodeScheme
|
|
14
|
+
} = _cornerstonejs_adapters__WEBPACK_IMPORTED_MODULE_0__.adaptersSR.Cornerstone3D;
|
|
15
|
+
const CodeNameCodeSequenceValues = {
|
|
16
|
+
ImagingMeasurementReport: '126000',
|
|
17
|
+
ImageLibrary: '111028',
|
|
18
|
+
ImagingMeasurements: '126010',
|
|
19
|
+
MeasurementGroup: '125007',
|
|
20
|
+
ImageLibraryGroup: '126200',
|
|
21
|
+
TrackingUniqueIdentifier: '112040',
|
|
22
|
+
TrackingIdentifier: '112039',
|
|
23
|
+
Finding: '121071',
|
|
24
|
+
FindingSite: 'G-C0E3',
|
|
25
|
+
// SRT
|
|
26
|
+
CornerstoneFreeText: Cornerstone3DCodeScheme.codeValues.CORNERSTONEFREETEXT
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
/***/ }),
|
|
31
|
+
|
|
4
32
|
/***/ 97360:
|
|
5
33
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
34
|
|
|
@@ -530,12 +558,15 @@ function isRehydratable(displaySet, mappings) {
|
|
|
530
558
|
console.log('No measurements found which were rehydratable');
|
|
531
559
|
return false;
|
|
532
560
|
}
|
|
561
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/constants/CodeNameCodeSequenceValues.ts
|
|
562
|
+
var CodeNameCodeSequenceValues = __webpack_require__(91851);
|
|
533
563
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/getSopClassHandlerModule.ts
|
|
534
564
|
|
|
535
565
|
|
|
536
566
|
|
|
537
567
|
|
|
538
568
|
|
|
569
|
+
|
|
539
570
|
const {
|
|
540
571
|
CodeScheme: Cornerstone3DCodeScheme
|
|
541
572
|
} = adapters_es.adaptersSR.Cornerstone3D;
|
|
@@ -550,12 +581,13 @@ const {
|
|
|
550
581
|
// Get stacks from referenced displayInstanceUID and load into wrapped CornerStone viewport.
|
|
551
582
|
|
|
552
583
|
const sopClassUids = ['1.2.840.10008.5.1.4.1.1.88.11',
|
|
553
|
-
//
|
|
584
|
+
// BASIC TEXT SR
|
|
554
585
|
'1.2.840.10008.5.1.4.1.1.88.22',
|
|
555
|
-
//
|
|
586
|
+
// ENHANCED SR
|
|
556
587
|
'1.2.840.10008.5.1.4.1.1.88.33',
|
|
557
|
-
//
|
|
558
|
-
'1.2.840.10008.5.1.4.1.1.88.34' //
|
|
588
|
+
// COMPREHENSIVE SR
|
|
589
|
+
'1.2.840.10008.5.1.4.1.1.88.34' // Comprehensive 3D SR
|
|
590
|
+
// '1.2.840.10008.5.1.4.1.1.88.50', // Mammography CAD SR
|
|
559
591
|
];
|
|
560
592
|
const CORNERSTONE_3D_TOOLS_SOURCE_NAME = 'Cornerstone3DTools';
|
|
561
593
|
const CORNERSTONE_3D_TOOLS_SOURCE_VERSION = '0.1';
|
|
@@ -567,19 +599,6 @@ const validateSameStudyUID = (uid, instances) => {
|
|
|
567
599
|
}
|
|
568
600
|
});
|
|
569
601
|
};
|
|
570
|
-
const CodeNameCodeSequenceValues = {
|
|
571
|
-
ImagingMeasurementReport: '126000',
|
|
572
|
-
ImageLibrary: '111028',
|
|
573
|
-
ImagingMeasurements: '126010',
|
|
574
|
-
MeasurementGroup: '125007',
|
|
575
|
-
ImageLibraryGroup: '126200',
|
|
576
|
-
TrackingUniqueIdentifier: '112040',
|
|
577
|
-
TrackingIdentifier: '112039',
|
|
578
|
-
Finding: '121071',
|
|
579
|
-
FindingSite: 'G-C0E3',
|
|
580
|
-
// SRT
|
|
581
|
-
CornerstoneFreeText: Cornerstone3DCodeScheme.codeValues.CORNERSTONEFREETEXT //
|
|
582
|
-
};
|
|
583
602
|
const CodingSchemeDesignators = {
|
|
584
603
|
SRT: 'SRT',
|
|
585
604
|
CornerstoneCodeSchemes: [Cornerstone3DCodeScheme.CodingSchemeDesignator, 'CST4']
|
|
@@ -637,17 +656,8 @@ function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager)
|
|
|
637
656
|
SOPClassUID
|
|
638
657
|
} = instance;
|
|
639
658
|
validateSameStudyUID(instance.StudyInstanceUID, instances);
|
|
640
|
-
|
|
641
|
-
servicesManager.services.uiNotificationService.show({
|
|
642
|
-
title: 'DICOM SR',
|
|
643
|
-
message: 'OHIF only supports TID1500 Imaging Measurement Report Structured Reports. The SR you’re trying to view is not supported.',
|
|
644
|
-
type: 'warning',
|
|
645
|
-
duration: 6000
|
|
646
|
-
});
|
|
647
|
-
return [];
|
|
648
|
-
}
|
|
659
|
+
const isImagingMeasurementReport = ConceptNameCodeSequence?.CodeValue === CodeNameCodeSequenceValues/* default */.Z.ImagingMeasurementReport;
|
|
649
660
|
const displaySet = {
|
|
650
|
-
//plugin: id,
|
|
651
661
|
Modality: 'SR',
|
|
652
662
|
displaySetInstanceUID: src.utils.guid(),
|
|
653
663
|
SeriesDescription,
|
|
@@ -663,6 +673,7 @@ function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager)
|
|
|
663
673
|
measurements: null,
|
|
664
674
|
isDerivedDisplaySet: true,
|
|
665
675
|
isLoaded: false,
|
|
676
|
+
isImagingMeasurementReport,
|
|
666
677
|
sopClassUids,
|
|
667
678
|
instance,
|
|
668
679
|
addInstances
|
|
@@ -702,8 +713,13 @@ async function _load(displaySet, servicesManager, extensionManager) {
|
|
|
702
713
|
if (displaySet.isLoaded !== true) {
|
|
703
714
|
await retrieveBulkData(ContentSequence);
|
|
704
715
|
}
|
|
705
|
-
displaySet.
|
|
706
|
-
|
|
716
|
+
if (displaySet.isImagingMeasurementReport) {
|
|
717
|
+
displaySet.referencedImages = _getReferencedImagesList(ContentSequence);
|
|
718
|
+
displaySet.measurements = _getMeasurements(ContentSequence);
|
|
719
|
+
} else {
|
|
720
|
+
displaySet.referencedImages = [];
|
|
721
|
+
displaySet.measurements = [];
|
|
722
|
+
}
|
|
707
723
|
const mappings = measurementService.getSourceMappings(CORNERSTONE_3D_TOOLS_SOURCE_NAME, CORNERSTONE_3D_TOOLS_SOURCE_VERSION);
|
|
708
724
|
displaySet.isHydrated = false;
|
|
709
725
|
displaySet.isRehydratable = isRehydratable(displaySet, mappings);
|
|
@@ -839,8 +855,11 @@ function getSopClassHandlerModule({
|
|
|
839
855
|
}];
|
|
840
856
|
}
|
|
841
857
|
function _getMeasurements(ImagingMeasurementReportContentSequence) {
|
|
842
|
-
const ImagingMeasurements = ImagingMeasurementReportContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues.ImagingMeasurements);
|
|
843
|
-
|
|
858
|
+
const ImagingMeasurements = ImagingMeasurementReportContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.ImagingMeasurements);
|
|
859
|
+
if (!ImagingMeasurements) {
|
|
860
|
+
return [];
|
|
861
|
+
}
|
|
862
|
+
const MeasurementGroups = _getSequenceAsArray(ImagingMeasurements.ContentSequence).filter(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.MeasurementGroup);
|
|
844
863
|
const mergedContentSequencesByTrackingUniqueIdentifiers = _getMergedContentSequencesByTrackingUniqueIdentifiers(MeasurementGroups);
|
|
845
864
|
const measurements = [];
|
|
846
865
|
Object.keys(mergedContentSequencesByTrackingUniqueIdentifiers).forEach(trackingUniqueIdentifier => {
|
|
@@ -856,7 +875,7 @@ function _getMergedContentSequencesByTrackingUniqueIdentifiers(MeasurementGroups
|
|
|
856
875
|
const mergedContentSequencesByTrackingUniqueIdentifiers = {};
|
|
857
876
|
MeasurementGroups.forEach(MeasurementGroup => {
|
|
858
877
|
const ContentSequence = _getSequenceAsArray(MeasurementGroup.ContentSequence);
|
|
859
|
-
const TrackingUniqueIdentifierItem = ContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues.TrackingUniqueIdentifier);
|
|
878
|
+
const TrackingUniqueIdentifierItem = ContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.TrackingUniqueIdentifier);
|
|
860
879
|
if (!TrackingUniqueIdentifierItem) {
|
|
861
880
|
console.warn('No Tracking Unique Identifier, skipping ambiguous measurement.');
|
|
862
881
|
}
|
|
@@ -868,7 +887,7 @@ function _getMergedContentSequencesByTrackingUniqueIdentifiers(MeasurementGroups
|
|
|
868
887
|
// Add the ContentSequence minus the tracking identifier, as we have this
|
|
869
888
|
// Information in the merged ContentSequence anyway.
|
|
870
889
|
ContentSequence.forEach(item => {
|
|
871
|
-
if (item.ConceptNameCodeSequence.CodeValue !== CodeNameCodeSequenceValues.TrackingUniqueIdentifier) {
|
|
890
|
+
if (item.ConceptNameCodeSequence.CodeValue !== CodeNameCodeSequenceValues/* default */.Z.TrackingUniqueIdentifier) {
|
|
872
891
|
mergedContentSequencesByTrackingUniqueIdentifiers[trackingUniqueIdentifier].push(item);
|
|
873
892
|
}
|
|
874
893
|
});
|
|
@@ -888,7 +907,7 @@ function _processTID1410Measurement(mergedContentSequence) {
|
|
|
888
907
|
|
|
889
908
|
const graphicItem = mergedContentSequence.find(group => group.ValueType === 'SCOORD');
|
|
890
909
|
const UIDREFContentItem = mergedContentSequence.find(group => group.ValueType === 'UIDREF');
|
|
891
|
-
const TrackingIdentifierContentItem = mergedContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues.TrackingIdentifier);
|
|
910
|
+
const TrackingIdentifierContentItem = mergedContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.TrackingIdentifier);
|
|
892
911
|
if (!graphicItem) {
|
|
893
912
|
console.warn(`graphic ValueType ${graphicItem.ValueType} not currently supported, skipping annotation.`);
|
|
894
913
|
return;
|
|
@@ -915,9 +934,9 @@ function _processTID1410Measurement(mergedContentSequence) {
|
|
|
915
934
|
function _processNonGeometricallyDefinedMeasurement(mergedContentSequence) {
|
|
916
935
|
const NUMContentItems = mergedContentSequence.filter(group => group.ValueType === 'NUM');
|
|
917
936
|
const UIDREFContentItem = mergedContentSequence.find(group => group.ValueType === 'UIDREF');
|
|
918
|
-
const TrackingIdentifierContentItem = mergedContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues.TrackingIdentifier);
|
|
919
|
-
const finding = mergedContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues.Finding);
|
|
920
|
-
const findingSites = mergedContentSequence.filter(item => item.ConceptNameCodeSequence.CodingSchemeDesignator === CodingSchemeDesignators.SRT && item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues.FindingSite);
|
|
937
|
+
const TrackingIdentifierContentItem = mergedContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.TrackingIdentifier);
|
|
938
|
+
const finding = mergedContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.Finding);
|
|
939
|
+
const findingSites = mergedContentSequence.filter(item => item.ConceptNameCodeSequence.CodingSchemeDesignator === CodingSchemeDesignators.SRT && item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.FindingSite);
|
|
921
940
|
const measurement = {
|
|
922
941
|
loaded: false,
|
|
923
942
|
labels: [],
|
|
@@ -925,7 +944,7 @@ function _processNonGeometricallyDefinedMeasurement(mergedContentSequence) {
|
|
|
925
944
|
TrackingUniqueIdentifier: UIDREFContentItem.UID,
|
|
926
945
|
TrackingIdentifier: TrackingIdentifierContentItem.TextValue
|
|
927
946
|
};
|
|
928
|
-
if (finding && CodingSchemeDesignators.CornerstoneCodeSchemes.includes(finding.ConceptCodeSequence.CodingSchemeDesignator) && finding.ConceptCodeSequence.CodeValue === CodeNameCodeSequenceValues.CornerstoneFreeText) {
|
|
947
|
+
if (finding && CodingSchemeDesignators.CornerstoneCodeSchemes.includes(finding.ConceptCodeSequence.CodingSchemeDesignator) && finding.ConceptCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.CornerstoneFreeText) {
|
|
929
948
|
measurement.labels.push({
|
|
930
949
|
label: CORNERSTONE_FREETEXT_CODE_VALUE,
|
|
931
950
|
value: finding.ConceptCodeSequence.CodeMeaning
|
|
@@ -934,7 +953,7 @@ function _processNonGeometricallyDefinedMeasurement(mergedContentSequence) {
|
|
|
934
953
|
|
|
935
954
|
// TODO -> Eventually hopefully support SNOMED or some proper code library, just free text for now.
|
|
936
955
|
if (findingSites.length) {
|
|
937
|
-
const cornerstoneFreeTextFindingSite = findingSites.find(FindingSite => CodingSchemeDesignators.CornerstoneCodeSchemes.includes(FindingSite.ConceptCodeSequence.CodingSchemeDesignator) && FindingSite.ConceptCodeSequence.CodeValue === CodeNameCodeSequenceValues.CornerstoneFreeText);
|
|
956
|
+
const cornerstoneFreeTextFindingSite = findingSites.find(FindingSite => CodingSchemeDesignators.CornerstoneCodeSchemes.includes(FindingSite.ConceptCodeSequence.CodingSchemeDesignator) && FindingSite.ConceptCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.CornerstoneFreeText);
|
|
938
957
|
if (cornerstoneFreeTextFindingSite) {
|
|
939
958
|
measurement.labels.push({
|
|
940
959
|
label: CORNERSTONE_FREETEXT_CODE_VALUE,
|
|
@@ -1014,8 +1033,11 @@ function _getLabelFromMeasuredValueSequence(ConceptNameCodeSequence, MeasuredVal
|
|
|
1014
1033
|
}; // E.g. Long Axis: 31.0 mm
|
|
1015
1034
|
}
|
|
1016
1035
|
function _getReferencedImagesList(ImagingMeasurementReportContentSequence) {
|
|
1017
|
-
const ImageLibrary = ImagingMeasurementReportContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues.ImageLibrary);
|
|
1018
|
-
|
|
1036
|
+
const ImageLibrary = ImagingMeasurementReportContentSequence.find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.ImageLibrary);
|
|
1037
|
+
if (!ImageLibrary) {
|
|
1038
|
+
return [];
|
|
1039
|
+
}
|
|
1040
|
+
const ImageLibraryGroup = _getSequenceAsArray(ImageLibrary.ContentSequence).find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues/* default */.Z.ImageLibraryGroup);
|
|
1019
1041
|
const referencedImages = [];
|
|
1020
1042
|
_getSequenceAsArray(ImageLibraryGroup.ContentSequence).forEach(item => {
|
|
1021
1043
|
const {
|
|
@@ -1417,7 +1439,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
|
|
|
1417
1439
|
|
|
1418
1440
|
|
|
1419
1441
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
1420
|
-
return __webpack_require__.e(/* import() */
|
|
1442
|
+
return __webpack_require__.e(/* import() */ 714).then(__webpack_require__.bind(__webpack_require__, 78714));
|
|
1421
1443
|
});
|
|
1422
1444
|
const OHIFCornerstoneSRViewport = props => {
|
|
1423
1445
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -1143,8 +1143,8 @@ function onCompletedCalibrationLine(servicesManager, csToolsEvent) {
|
|
|
1143
1143
|
});
|
|
1144
1144
|
});
|
|
1145
1145
|
}
|
|
1146
|
-
// EXTERNAL MODULE: ../../core/src/utils/index.ts +
|
|
1147
|
-
var utils = __webpack_require__(
|
|
1146
|
+
// EXTERNAL MODULE: ../../core/src/utils/index.ts + 28 modules
|
|
1147
|
+
var utils = __webpack_require__(42895);
|
|
1148
1148
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/tools/OverlayPlaneModuleProvider.ts
|
|
1149
1149
|
|
|
1150
1150
|
const _cachedOverlayMetadata = new Map();
|