@ohif/app 3.9.0-beta.64 → 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.
Files changed (26) hide show
  1. package/dist/{281.bundle.09132818b1e080674efa.js → 281.bundle.b8b7d64372d238b1bed7.js} +2 -2
  2. package/dist/{360.bundle.97bede0427d0db61582f.js → 360.bundle.e9046bdadd9127c4c283.js} +64 -42
  3. package/dist/{516.bundle.d667fe7395dbab0a990a.js → 516.bundle.693f55fcf3bb54b40468.js} +2 -2
  4. package/dist/714.bundle.9b2c17c05367d7c0d610.js +714 -0
  5. package/dist/{842.bundle.93dae17967fafa89d3b1.js → 842.bundle.a18175a4463177477ae0.js} +2 -2
  6. package/dist/app.bundle.css +2 -2
  7. package/dist/{app.bundle.e07290f3dfd6b35d53be.js → app.bundle.ebe09d60104c52d101df.js} +24 -9
  8. package/dist/index.html +1 -1
  9. package/dist/sw.js +1 -1
  10. package/package.json +18 -18
  11. package/dist/571.bundle.2b4e21bc61d7685a5fdb.js +0 -439
  12. /package/dist/{153.bundle.e33f6acedbf22c565c3c.js → 153.bundle.0ae1608ab0c459f10034.js} +0 -0
  13. /package/dist/{210.bundle.a989c821a9c56040b0cf.js → 210.bundle.257ad99561da3bcd8898.js} +0 -0
  14. /package/dist/{246.bundle.33f5cea690b329dc41e9.js → 246.bundle.fbf55ff25ff129a8803b.js} +0 -0
  15. /package/dist/{353.bundle.236671599126e97d2291.js → 353.bundle.35ad75ecf210b279b5d2.js} +0 -0
  16. /package/dist/{376.bundle.be2429dcc51fac033b88.js → 376.bundle.c07661d7af53d348e9a6.js} +0 -0
  17. /package/dist/{502.bundle.da05d1a0c98dabd98a47.js → 502.bundle.5ccd0605d5f7143e1a18.js} +0 -0
  18. /package/dist/{591.bundle.a2f336440a7a0cc963ae.js → 591.bundle.93e22748fb59e587b62c.js} +0 -0
  19. /package/dist/{65.bundle.5f5ebd4ab167fcf03d7d.js → 65.bundle.9b25384f1dd15b04c099.js} +0 -0
  20. /package/dist/{791.bundle.7744478d66a5f3b41be1.js → 791.bundle.4debb283e99b3c663b79.js} +0 -0
  21. /package/dist/{888.bundle.8954a9720b9256baac7b.js → 888.bundle.f2989b50bdb1b0d4b5da.js} +0 -0
  22. /package/dist/{913.bundle.68a94d3774aaf34dff65.js → 913.bundle.f982e2af9e7287fc3539.js} +0 -0
  23. /package/dist/{944.bundle.25f3c062db17e656559e.js → 944.bundle.c6c7ffe0ac1321ccbcea.js} +0 -0
  24. /package/dist/{962.bundle.48e6427a7366d18b8863.js → 962.bundle.85a0fcaaf3c0aeeb6789.js} +0 -0
  25. /package/dist/{978.bundle.11fc48465617fdf2133e.js → 978.bundle.56bcd4d2eea3e8622913.js} +0 -0
  26. /package/dist/{994.bundle.45e771aecbe85223d655.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.64";
2848
- const commitHash = "4368eb389616ce57ce8e23552355aef93926d19c";
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
- //BASIC_TEXT_SR:
584
+ // BASIC TEXT SR
554
585
  '1.2.840.10008.5.1.4.1.1.88.22',
555
- //ENHANCED_SR:
586
+ // ENHANCED SR
556
587
  '1.2.840.10008.5.1.4.1.1.88.33',
557
- //COMPREHENSIVE_SR:
558
- '1.2.840.10008.5.1.4.1.1.88.34' //COMPREHENSIVE_3D_SR:
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
- if (!ConceptNameCodeSequence || ConceptNameCodeSequence.CodeValue !== CodeNameCodeSequenceValues.ImagingMeasurementReport) {
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.referencedImages = _getReferencedImagesList(ContentSequence);
706
- displaySet.measurements = _getMeasurements(ContentSequence);
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
- const MeasurementGroups = _getSequenceAsArray(ImagingMeasurements.ContentSequence).filter(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues.MeasurementGroup);
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
- const ImageLibraryGroup = _getSequenceAsArray(ImageLibrary.ContentSequence).find(item => item.ConceptNameCodeSequence.CodeValue === CodeNameCodeSequenceValues.ImageLibraryGroup);
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() */ 571).then(__webpack_require__.bind(__webpack_require__, 85571));
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 + 27 modules
1147
- var utils = __webpack_require__(21551);
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();