@ohif/app 3.7.0-beta.53 → 3.7.0-beta.55

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 (27) hide show
  1. package/dist/{12.bundle.09ba36c6ceda3bc22278.js → 12.bundle.ca7a24d331b606d9ca10.js} +2 -2
  2. package/dist/{128.bundle.048d594cecedf6b447c6.js → 128.bundle.b31521216b013d9b9796.js} +2 -2
  3. package/dist/{150.bundle.abf35493ddb72903930c.js → 150.bundle.2f14b8168308c78da2da.js} +2 -2
  4. package/dist/{181.bundle.1705c0775d72e671dede.js → 181.bundle.478d912299d128704269.js} +10 -3
  5. package/dist/{236.bundle.d9f580b7d2769556502e.js → 236.bundle.b0539dc4a0c77ec85c45.js} +3 -3
  6. package/dist/{250.bundle.a523e899f4fb640949f9.js → 250.bundle.390cb28f078d9c4b2995.js} +4 -4
  7. package/dist/{281.bundle.6f75763dfc0bc240f8ba.js → 281.bundle.39ac590a6fe5ecc651b8.js} +2 -2
  8. package/dist/{30.bundle.8e4fee7f2e20f1d6d1ab.js → 30.bundle.67698f353903b49324b2.js} +33 -25
  9. package/dist/{348.bundle.c1c983322736015ba732.js → 348.bundle.5943d65f9eb1b2e0ebb0.js} +2 -2
  10. package/dist/{359.bundle.30dfbfe03df620835f40.js → 359.bundle.4d9bd4a4662735d644ee.js} +2 -2
  11. package/dist/{410.bundle.dbc0c425e9b9df98b881.js → 410.bundle.aa6155752bc25f014971.js} +2 -2
  12. package/dist/{451.bundle.9941d9134fcf747d452a.js → 451.bundle.353be6110631bf74541b.js} +2 -2
  13. package/dist/{471.bundle.c9e618aeda78362776aa.js → 471.bundle.26a7b18545380999bf15.js} +2 -2
  14. package/dist/{506.bundle.e72cad01f325d5590fc1.js → 506.bundle.e29274fc7c7eaf63870b.js} +2 -2
  15. package/dist/{260.bundle.25de55d10fa0c377dd22.js → 654.bundle.1faeb72b7f4c02dcceef.js} +70 -26
  16. package/dist/{663.bundle.d8bab8112bbff8fa8073.js → 663.bundle.1a6e44438e332f9e33a0.js} +4 -4
  17. package/dist/{678.bundle.e5c2d809571c5e507ab2.js → 678.bundle.b85860f14e6863b98b36.js} +12 -2
  18. package/dist/{782.bundle.96410527cef2fbcb5d17.js → 782.bundle.7f8f484e071edf4c064e.js} +2 -2
  19. package/dist/{814.bundle.525befb144b0b1fdf2e6.js → 814.bundle.5274d0603448396e0bb0.js} +2 -2
  20. package/dist/{822.bundle.34b2c7e2f175dc797380.js → 822.bundle.19500eed01bd57ee812e.js} +1 -1
  21. package/dist/{886.bundle.09fc0e8c8aa227b70351.js → 886.bundle.0ebaa84a7952a2e1b780.js} +1 -1
  22. package/dist/{app.bundle.620470253277785e5cc2.js → app.bundle.98c9c0231de30d41e2ae.js} +171 -95
  23. package/dist/app.bundle.css +1 -1
  24. package/dist/index.html +1 -1
  25. package/dist/sw.js +1 -1
  26. package/package.json +18 -18
  27. /package/dist/{378.bundle.582962d731d783c4d6cd.js → 378.bundle.6409ef71b62857d24425.js} +0 -0
@@ -21,8 +21,8 @@ const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-dicom-video"}
21
21
  const id = package_namespaceObject.u2;
22
22
  const SOPClassHandlerId = `${id}.sopClassHandlerModule.dicom-video`;
23
23
 
24
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
25
- var src = __webpack_require__(24966);
24
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
25
+ var src = __webpack_require__(61529);
26
26
  ;// CONCATENATED MODULE: ../../../extensions/dicom-video/src/getSopClassHandlerModule.js
27
27
 
28
28
 
@@ -12,8 +12,8 @@ __webpack_require__.d(__webpack_exports__, {
12
12
  "default": () => (/* binding */ basic_test_mode_src)
13
13
  });
14
14
 
15
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
16
- var src = __webpack_require__(24966);
15
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
16
+ var src = __webpack_require__(61529);
17
17
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
18
18
  var ui_src = __webpack_require__(60082);
19
19
  ;// CONCATENATED MODULE: ../../../modes/basic-test-mode/src/toolbarButtons.js
@@ -23,8 +23,8 @@ const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
23
23
 
24
24
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
25
25
  var react = __webpack_require__(43001);
26
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
27
- var src = __webpack_require__(24966);
26
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
27
+ var src = __webpack_require__(61529);
28
28
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 337 modules
29
29
  var esm = __webpack_require__(45754);
30
30
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/adapters.es.js
@@ -23,8 +23,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
23
23
  var esm = __webpack_require__(26925);
24
24
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 337 modules
25
25
  var dist_esm = __webpack_require__(45754);
26
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
27
- var src = __webpack_require__(24966);
26
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
27
+ var src = __webpack_require__(61529);
28
28
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
29
29
  var ui_src = __webpack_require__(60082);
30
30
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
@@ -1233,7 +1233,14 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
1233
1233
  (0,react.useEffect)(() => {
1234
1234
  const {
1235
1235
  unsubscribe
1236
- } = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED, async invalidatedDisplaySetInstanceUID => {
1236
+ } = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED, async _ref => {
1237
+ let {
1238
+ displaySetInstanceUID: invalidatedDisplaySetInstanceUID,
1239
+ invalidateData
1240
+ } = _ref;
1241
+ if (!invalidateData) {
1242
+ return;
1243
+ }
1237
1244
  const viewportInfo = cornerstoneViewportService.getViewportInfoByIndex(viewportIndex);
1238
1245
  if (viewportInfo.hasDisplaySet(invalidatedDisplaySetInstanceUID)) {
1239
1246
  const viewportData = viewportInfo.getViewportData();
@@ -22,8 +22,8 @@ const id = package_namespaceObject.u2;
22
22
  var react = __webpack_require__(43001);
23
23
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
24
24
  var src = __webpack_require__(60082);
25
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
26
- var core_src = __webpack_require__(24966);
25
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
26
+ var core_src = __webpack_require__(61529);
27
27
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
28
28
  var es = __webpack_require__(69190);
29
29
  // EXTERNAL MODULE: ../../../node_modules/mathjs/lib/esm/index.js + 982 modules
@@ -2627,7 +2627,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
2627
2627
 
2628
2628
 
2629
2629
  const Component = /*#__PURE__*/react.lazy(() => {
2630
- return Promise.all(/* import() */[__webpack_require__.e(754), __webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(23), __webpack_require__.e(260), __webpack_require__.e(250)]).then(__webpack_require__.bind(__webpack_require__, 76516));
2630
+ return Promise.all(/* import() */[__webpack_require__.e(754), __webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(23), __webpack_require__.e(654), __webpack_require__.e(250)]).then(__webpack_require__.bind(__webpack_require__, 76516));
2631
2631
  });
2632
2632
  const MicroscopyViewport = props => {
2633
2633
  return /*#__PURE__*/react.createElement(react.Suspense, {
@@ -261,8 +261,8 @@ const itemGenerator = props => {
261
261
  /* harmony default export */ const ViewportOverlay = (generateFromConfig({}));
262
262
  // EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
263
263
  var dicomweb_client_es = __webpack_require__(97604);
264
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
265
- var core_src = __webpack_require__(24966);
264
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
265
+ var core_src = __webpack_require__(61529);
266
266
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/dicomWebClient.ts
267
267
 
268
268
 
@@ -343,8 +343,8 @@ function getDicomWebClient(_ref) {
343
343
  }
344
344
  // EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
345
345
  var dcmjs_es = __webpack_require__(67540);
346
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 68 modules
347
- var default_src = __webpack_require__(78260);
346
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 69 modules
347
+ var default_src = __webpack_require__(75654);
348
348
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/cleanDenaturalizedDataset.ts
349
349
 
350
350
  function isPrimitive(v) {
@@ -13,8 +13,8 @@ __webpack_require__.d(__webpack_exports__, {
13
13
  "default": () => (/* binding */ microscopy_src)
14
14
  });
15
15
 
16
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
17
- var src = __webpack_require__(24966);
16
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
17
+ var src = __webpack_require__(61529);
18
18
  ;// CONCATENATED MODULE: ../../../modes/microscopy/package.json
19
19
  const package_namespaceObject = JSON.parse('{"u2":"@ohif/mode-microscopy"}');
20
20
  ;// CONCATENATED MODULE: ../../../modes/microscopy/src/id.js
@@ -621,8 +621,8 @@ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, vie
621
621
  });
622
622
  }
623
623
  /* harmony default export */ const TrackedMeasurementsContext_promptTrackNewStudy = (promptTrackNewStudy);
624
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
625
- var core_src = __webpack_require__(24966);
624
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
625
+ var core_src = __webpack_require__(61529);
626
626
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/createReportAsync.tsx
627
627
 
628
628
 
@@ -1259,8 +1259,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
1259
1259
  var dist = __webpack_require__(62474);
1260
1260
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
1261
1261
  var es = __webpack_require__(69190);
1262
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
1263
- var src = __webpack_require__(24966);
1262
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
1263
+ var src = __webpack_require__(61529);
1264
1264
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
1265
1265
  var ui_src = __webpack_require__(60082);
1266
1266
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx
@@ -1394,7 +1394,7 @@ function PanelStudyBrowserTracking(_ref) {
1394
1394
  const imageId = imageIds[Math.floor(imageIds.length / 2)];
1395
1395
 
1396
1396
  // TODO: Is it okay that imageIds are not returned here for SR displaysets?
1397
- if (imageId) {
1397
+ if (imageId && !displaySet?.unsupported) {
1398
1398
  // When the image arrives, render it and store the result in the thumbnailImgSrcMap
1399
1399
  newImageSrcEntry[dSet.displaySetInstanceUID] = await getImageSrc(imageId);
1400
1400
  setThumbnailImageSrcMap(prevState => {
@@ -1430,22 +1430,24 @@ function PanelStudyBrowserTracking(_ref) {
1430
1430
  const displaySetInstanceUID = dSet.displaySetInstanceUID;
1431
1431
  const newImageSrcEntry = {};
1432
1432
  const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
1433
- if (options.madeInClient) {
1434
- setJumpToDisplaySet(displaySetInstanceUID);
1435
- }
1436
- const imageIds = dataSource.getImageIdsForDisplaySet(displaySet);
1437
- const imageId = imageIds[Math.floor(imageIds.length / 2)];
1438
-
1439
- // TODO: Is it okay that imageIds are not returned here for SR displaysets?
1440
- if (imageId) {
1441
- // When the image arrives, render it and store the result in the thumbnailImgSrcMap
1442
- newImageSrcEntry[displaySetInstanceUID] = await getImageSrc(imageId);
1443
- setThumbnailImageSrcMap(prevState => {
1444
- return {
1445
- ...prevState,
1446
- ...newImageSrcEntry
1447
- };
1448
- });
1433
+ if (!displaySet?.unsupported) {
1434
+ if (options.madeInClient) {
1435
+ setJumpToDisplaySet(displaySetInstanceUID);
1436
+ }
1437
+ const imageIds = dataSource.getImageIdsForDisplaySet(displaySet);
1438
+ const imageId = imageIds[Math.floor(imageIds.length / 2)];
1439
+
1440
+ // TODO: Is it okay that imageIds are not returned here for SR displaysets?
1441
+ if (imageId) {
1442
+ // When the image arrives, render it and store the result in the thumbnailImgSrcMap
1443
+ newImageSrcEntry[displaySetInstanceUID] = await getImageSrc(imageId);
1444
+ setThumbnailImageSrcMap(prevState => {
1445
+ return {
1446
+ ...prevState,
1447
+ ...newImageSrcEntry
1448
+ };
1449
+ });
1450
+ }
1449
1451
  }
1450
1452
  });
1451
1453
  });
@@ -1456,9 +1458,14 @@ function PanelStudyBrowserTracking(_ref) {
1456
1458
  const mappedDisplaySets = _mapDisplaySets(changedDisplaySets, thumbnailImageSrcMap, trackedSeries, viewports, viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificationService);
1457
1459
  setDisplaySets(mappedDisplaySets);
1458
1460
  });
1461
+ const SubscriptionDisplaySetMetaDataInvalidated = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED, () => {
1462
+ const mappedDisplaySets = _mapDisplaySets(displaySetService.getActiveDisplaySets(), thumbnailImageSrcMap, trackedSeries, viewports, viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificationService);
1463
+ setDisplaySets(mappedDisplaySets);
1464
+ });
1459
1465
  return () => {
1460
1466
  SubscriptionDisplaySetsAdded.unsubscribe();
1461
1467
  SubscriptionDisplaySetsChanged.unsubscribe();
1468
+ SubscriptionDisplaySetMetaDataInvalidated.unsubscribe();
1462
1469
  };
1463
1470
  // eslint-disable-next-line react-hooks/exhaustive-deps
1464
1471
  }, [displaySetService, dataSource, getImageSrc, thumbnailImageSrcMap, trackedSeries, viewports]);
@@ -1571,7 +1578,7 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
1571
1578
  const thumbnailNoImageDisplaySets = [];
1572
1579
  displaySets.filter(ds => !ds.excludeFromThumbnailBrowser).forEach(ds => {
1573
1580
  const imageSrc = thumbnailImageSrcMap[ds.displaySetInstanceUID];
1574
- const componentType = _getComponentType(ds.Modality);
1581
+ const componentType = _getComponentType(ds);
1575
1582
  const numPanes = viewportGridService.getNumViewportPanes();
1576
1583
  const viewportIdentificator = numPanes === 1 ? [] : viewports.reduce((acc, viewportData, index) => {
1577
1584
  if (index < numPanes && viewportData?.displaySetInstanceUIDs?.includes(ds.displaySetInstanceUID)) {
@@ -1602,11 +1609,12 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
1602
1609
  },
1603
1610
 
1604
1611
  isTracked: trackedSeriesInstanceUIDs.includes(ds.SeriesInstanceUID),
1612
+ isHydratedForDerivedDisplaySet: ds.isHydrated,
1605
1613
  viewportIdentificator
1606
1614
  };
1607
1615
  if (componentType === 'thumbnailNoImage') {
1608
1616
  if (dataSource.reject && dataSource.reject.series) {
1609
- thumbnailProps.canReject = true;
1617
+ thumbnailProps.canReject = !ds?.unsupported;
1610
1618
  thumbnailProps.onReject = () => {
1611
1619
  uiDialogService.create({
1612
1620
  id: 'ds-reject-sr',
@@ -1683,8 +1691,8 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
1683
1691
  return [...thumbnailDisplaySets, ...thumbnailNoImageDisplaySets];
1684
1692
  }
1685
1693
  const thumbnailNoImageModalities = ['SR', 'SEG', 'SM', 'RTSTRUCT', 'RTPLAN', 'RTDOSE', 'DOC', 'OT'];
1686
- function _getComponentType(Modality) {
1687
- if (thumbnailNoImageModalities.includes(Modality)) {
1694
+ function _getComponentType(ds) {
1695
+ if (thumbnailNoImageModalities.includes(ds.Modality) || ds?.unsupported) {
1688
1696
  return 'thumbnailNoImage';
1689
1697
  }
1690
1698
  return 'thumbnailTracked';
@@ -14,8 +14,8 @@ __webpack_require__.d(__webpack_exports__, {
14
14
  toolbarButtons: () => (/* reexport */ src_toolbarButtons)
15
15
  });
16
16
 
17
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
18
- var src = __webpack_require__(24966);
17
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
18
+ var src = __webpack_require__(61529);
19
19
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
20
20
  var ui_src = __webpack_require__(60082);
21
21
  ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/toolbarButtons.js
@@ -12,8 +12,8 @@ __webpack_require__.d(__webpack_exports__, {
12
12
  "default": () => (/* binding */ tmtv_src)
13
13
  });
14
14
 
15
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
16
- var src = __webpack_require__(24966);
15
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
16
+ var src = __webpack_require__(61529);
17
17
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
18
18
  var ui_src = __webpack_require__(60082);
19
19
  ;// CONCATENATED MODULE: ../../../modes/tmtv/src/initToolGroups.js
@@ -14,8 +14,8 @@ __webpack_require__.d(__webpack_exports__, {
14
14
 
15
15
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
16
16
  var src = __webpack_require__(60082);
17
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
18
- var core_src = __webpack_require__(24966);
17
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
18
+ var core_src = __webpack_require__(61529);
19
19
  ;// CONCATENATED MODULE: ../../../modes/basic-dev-mode/src/toolbarButtons.js
20
20
  // TODO: torn, can either bake this here; or have to create a whole new button type
21
21
  // Only ways that you can pass in a custom React component for render :l
@@ -19,8 +19,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
19
19
  var react = __webpack_require__(43001);
20
20
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
21
21
  var es = __webpack_require__(69190);
22
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
23
- var src = __webpack_require__(24966);
22
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
23
+ var src = __webpack_require__(61529);
24
24
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
25
25
  var ui_src = __webpack_require__(60082);
26
26
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/initSEGToolGroup.ts
@@ -17,8 +17,8 @@ var react = __webpack_require__(43001);
17
17
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
18
18
  var prop_types = __webpack_require__(3827);
19
19
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
20
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
21
- var src = __webpack_require__(24966);
20
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
21
+ var src = __webpack_require__(61529);
22
22
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
23
23
  var ui_src = __webpack_require__(60082);
24
24
  // EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/_hydrateRT.ts
@@ -23,8 +23,8 @@ const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
23
23
 
24
24
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
25
25
  var react = __webpack_require__(43001);
26
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
27
- var src = __webpack_require__(24966);
26
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
27
+ var src = __webpack_require__(61529);
28
28
  // EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
29
29
  var dcmjs_es = __webpack_require__(67540);
30
30
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/loadRTStruct.js
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[260],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[654],{
3
3
 
4
- /***/ 78260:
4
+ /***/ 75654:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -29,8 +29,8 @@ __webpack_require__.d(utils_namespaceObject, {
29
29
 
30
30
  // EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
31
31
  var dicomweb_client_es = __webpack_require__(97604);
32
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
33
- var src = __webpack_require__(24966);
32
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
33
+ var src = __webpack_require__(61529);
34
34
  // EXTERNAL MODULE: ../../core/src/utils/sortStudy.ts
35
35
  var sortStudy = __webpack_require__(62971);
36
36
  ;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/qido.js
@@ -2211,8 +2211,8 @@ function ViewerLayout(_ref) {
2211
2211
  hotkeyDefinitions,
2212
2212
  hotkeyDefaults
2213
2213
  } = hotkeysManager;
2214
- const versionNumber = "3.7.0-beta.53";
2215
- const commitHash = "ed0b01cd39930bb24f827608857adc0799fac3bf";
2214
+ const versionNumber = "3.7.0-beta.55";
2215
+ const commitHash = "0f9b36906f6f67580879d76cb12f2a320883d4a9";
2216
2216
  const menuOptions = [{
2217
2217
  title: t('Header:About'),
2218
2218
  icon: 'info',
@@ -2545,7 +2545,7 @@ function PanelStudyBrowser(_ref) {
2545
2545
  const imageId = imageIds[Math.floor(imageIds.length / 2)];
2546
2546
 
2547
2547
  // TODO: Is it okay that imageIds are not returned here for SR displaySets?
2548
- if (imageId) {
2548
+ if (imageId && !displaySet?.unsupported) {
2549
2549
  // When the image arrives, render it and store the result in the thumbnailImgSrcMap
2550
2550
  newImageSrcEntry[dSet.displaySetInstanceUID] = await getImageSrc(imageId);
2551
2551
  if (isMounted.current) {
@@ -2584,20 +2584,22 @@ function PanelStudyBrowser(_ref) {
2584
2584
  displaySetsAdded.forEach(async dSet => {
2585
2585
  const newImageSrcEntry = {};
2586
2586
  const displaySet = displaySetService.getDisplaySetByUID(dSet.displaySetInstanceUID);
2587
- const imageIds = dataSource.getImageIdsForDisplaySet(displaySet);
2588
- const imageId = imageIds[Math.floor(imageIds.length / 2)];
2589
-
2590
- // TODO: Is it okay that imageIds are not returned here for SR displaysets?
2591
- if (imageId) {
2592
- // When the image arrives, render it and store the result in the thumbnailImgSrcMap
2593
- newImageSrcEntry[dSet.displaySetInstanceUID] = await getImageSrc(imageId, dSet.initialViewport);
2594
- if (isMounted.current) {
2595
- setThumbnailImageSrcMap(prevState => {
2596
- return {
2597
- ...prevState,
2598
- ...newImageSrcEntry
2599
- };
2600
- });
2587
+ if (!displaySet?.unsupported) {
2588
+ const imageIds = dataSource.getImageIdsForDisplaySet(displaySet);
2589
+ const imageId = imageIds[Math.floor(imageIds.length / 2)];
2590
+
2591
+ // TODO: Is it okay that imageIds are not returned here for SR displaysets?
2592
+ if (imageId) {
2593
+ // When the image arrives, render it and store the result in the thumbnailImgSrcMap
2594
+ newImageSrcEntry[dSet.displaySetInstanceUID] = await getImageSrc(imageId, dSet.initialViewport);
2595
+ if (isMounted.current) {
2596
+ setThumbnailImageSrcMap(prevState => {
2597
+ return {
2598
+ ...prevState,
2599
+ ...newImageSrcEntry
2600
+ };
2601
+ });
2602
+ }
2601
2603
  }
2602
2604
  }
2603
2605
  });
@@ -2609,9 +2611,14 @@ function PanelStudyBrowser(_ref) {
2609
2611
  const mappedDisplaySets = _mapDisplaySets(changedDisplaySets, thumbnailImageSrcMap);
2610
2612
  setDisplaySets(mappedDisplaySets);
2611
2613
  });
2614
+ const SubscriptionDisplaySetMetaDataInvalidated = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED, () => {
2615
+ const mappedDisplaySets = _mapDisplaySets(displaySetService.getActiveDisplaySets(), thumbnailImageSrcMap);
2616
+ setDisplaySets(mappedDisplaySets);
2617
+ });
2612
2618
  return () => {
2613
2619
  SubscriptionDisplaySetsAdded.unsubscribe();
2614
2620
  SubscriptionDisplaySetsChanged.unsubscribe();
2621
+ SubscriptionDisplaySetMetaDataInvalidated.unsubscribe();
2615
2622
  };
2616
2623
  // eslint-disable-next-line react-hooks/exhaustive-deps
2617
2624
  }, []);
@@ -2680,7 +2687,7 @@ function _mapDisplaySets(displaySets, thumbnailImageSrcMap) {
2680
2687
  const thumbnailNoImageDisplaySets = [];
2681
2688
  displaySets.filter(ds => !ds.excludeFromThumbnailBrowser).forEach(ds => {
2682
2689
  const imageSrc = thumbnailImageSrcMap[ds.displaySetInstanceUID];
2683
- const componentType = _getComponentType(ds.Modality);
2690
+ const componentType = _getComponentType(ds);
2684
2691
  const array = componentType === 'thumbnail' ? thumbnailDisplaySets : thumbnailNoImageDisplaySets;
2685
2692
  array.push({
2686
2693
  displaySetInstanceUID: ds.displaySetInstanceUID,
@@ -2699,15 +2706,16 @@ function _mapDisplaySets(displaySets, thumbnailImageSrcMap) {
2699
2706
  type: 'displayset',
2700
2707
  displaySetInstanceUID: ds.displaySetInstanceUID
2701
2708
  // .. Any other data to pass
2702
- }
2709
+ },
2710
+
2711
+ isHydratedForDerivedDisplaySet: ds.isHydrated
2703
2712
  });
2704
2713
  });
2705
-
2706
2714
  return [...thumbnailDisplaySets, ...thumbnailNoImageDisplaySets];
2707
2715
  }
2708
2716
  const thumbnailNoImageModalities = ['SR', 'SEG', 'SM', 'RTSTRUCT', 'RTPLAN', 'RTDOSE'];
2709
- function _getComponentType(Modality) {
2710
- if (thumbnailNoImageModalities.includes(Modality)) {
2717
+ function _getComponentType(ds) {
2718
+ if (thumbnailNoImageModalities.includes(ds.Modality) || ds?.unsupported) {
2711
2719
  // TODO probably others.
2712
2720
  return 'thumbnailNoImage';
2713
2721
  }
@@ -3765,6 +3773,37 @@ function getDisplaySetMessages(instances, isReconstructable) {
3765
3773
  }
3766
3774
  return messages;
3767
3775
  }
3776
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/getDisplaySetsFromUnsupportedSeries.js
3777
+
3778
+
3779
+ /**
3780
+ * Default handler for a instance list with an unsupported sopClassUID
3781
+ */
3782
+ function getDisplaySetsFromUnsupportedSeries(instances) {
3783
+ const imageSet = new ImageSet/* default */.Z(instances);
3784
+ const messages = new src/* DisplaySetMessageList */.iK();
3785
+ messages.addMessage(src/* DisplaySetMessage */.Lt.CODES.UNSUPPORTED_DISPLAYSET);
3786
+ const instance = instances[0];
3787
+ imageSet.setAttributes({
3788
+ displaySetInstanceUID: imageSet.uid,
3789
+ // create a local alias for the imageSet UID
3790
+ SeriesDate: instance.SeriesDate,
3791
+ SeriesTime: instance.SeriesTime,
3792
+ SeriesInstanceUID: instance.SeriesInstanceUID,
3793
+ StudyInstanceUID: instance.StudyInstanceUID,
3794
+ SeriesNumber: instance.SeriesNumber || 0,
3795
+ FrameRate: instance.FrameTime,
3796
+ SOPClassUID: instance.SOPClassUID,
3797
+ SeriesDescription: instance.SeriesDescription || '',
3798
+ Modality: instance.Modality,
3799
+ numImageFrames: instances.length,
3800
+ unsupported: true,
3801
+ SOPClassHandlerId: 'unsupported',
3802
+ isReconstructable: false,
3803
+ messages
3804
+ });
3805
+ return [imageSet];
3806
+ }
3768
3807
  ;// CONCATENATED MODULE: ../../../extensions/default/src/getSopClassHandlerModule.js
3769
3808
 
3770
3809
 
@@ -3772,6 +3811,7 @@ function getDisplaySetMessages(instances, isReconstructable) {
3772
3811
 
3773
3812
 
3774
3813
 
3814
+
3775
3815
  const sopClassHandlerName = 'stack';
3776
3816
  const isMultiFrame = instance => {
3777
3817
  return instance.NumberOfFrames > 1;
@@ -3909,6 +3949,10 @@ function getSopClassHandlerModule() {
3909
3949
  name: sopClassHandlerName,
3910
3950
  sopClassUids,
3911
3951
  getDisplaySetsFromSeries
3952
+ }, {
3953
+ name: 'not-supported-display-sets-handler',
3954
+ sopClassUids: [],
3955
+ getDisplaySetsFromSeries: getDisplaySetsFromUnsupportedSeries
3912
3956
  }];
3913
3957
  }
3914
3958
  /* harmony default export */ const src_getSopClassHandlerModule = (getSopClassHandlerModule);
@@ -25,8 +25,8 @@ const id = package_namespaceObject.u2;
25
25
  const SOPClassHandlerName = 'dicom-sr';
26
26
  const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
27
27
 
28
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
29
- var src = __webpack_require__(24966);
28
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
29
+ var src = __webpack_require__(61529);
30
30
  // EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 10 modules
31
31
  var esm = __webpack_require__(45451);
32
32
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 323 modules
@@ -1596,8 +1596,8 @@ __webpack_require__.d(__webpack_exports__, {
1596
1596
 
1597
1597
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 337 modules
1598
1598
  var esm = __webpack_require__(45754);
1599
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
1600
- var src = __webpack_require__(24966);
1599
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
1600
+ var src = __webpack_require__(61529);
1601
1601
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/getLabelFromDCMJSImportedToolData.js
1602
1602
  /**
1603
1603
  * Extracts the label from the toolData imported from dcmjs. We need to do this
@@ -37,8 +37,8 @@ var react = __webpack_require__(43001);
37
37
  var esm = __webpack_require__(45754);
38
38
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 323 modules
39
39
  var dist_esm = __webpack_require__(26925);
40
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
41
- var src = __webpack_require__(24966);
40
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
41
+ var src = __webpack_require__(61529);
42
42
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
43
43
  var streaming_image_volume_loader_dist_esm = __webpack_require__(7087);
44
44
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js
@@ -6194,6 +6194,7 @@ class SegmentationService extends src/* PubSubService */.hC {
6194
6194
  if (!segmentation) {
6195
6195
  throw new Error(`Segmentation with segmentationId ${segmentationId} not found.`);
6196
6196
  }
6197
+ _this._setDisplaySetIsHydrated(segmentationId, true);
6197
6198
  segmentation.hydrated = true;
6198
6199
  if (!suppressEvents) {
6199
6200
  _this._broadcastEvent(_this.EVENTS.SEGMENTATION_UPDATED, {
@@ -7040,6 +7041,14 @@ class SegmentationService extends src/* PubSubService */.hC {
7040
7041
  const adjustedAlpha = type === LABELMAP ? alpha : 1 - alpha;
7041
7042
  highlightFn(segmentIndex, adjustedAlpha, hideOthers, segments, toolGroupId, animationLength, segmentationRepresentation);
7042
7043
  }
7044
+ _setDisplaySetIsHydrated(displaySetUID, isHydrated) {
7045
+ const {
7046
+ DisplaySetService: displaySetService
7047
+ } = this.servicesManager.services;
7048
+ const displaySet = displaySetService.getDisplaySetByUID(displaySetUID);
7049
+ displaySet.isHydrated = isHydrated;
7050
+ displaySetService.setDisplaySetMetadataInvalidated(displaySetUID, false);
7051
+ }
7043
7052
  _highlightLabelmap(segmentIndex, alpha, hideOthers, segments, toolGroupId, animationLength, segmentationRepresentation) {
7044
7053
  const newSegmentSpecificConfig = {
7045
7054
  [segmentIndex]: {
@@ -7149,6 +7158,7 @@ class SegmentationService extends src/* PubSubService */.hC {
7149
7158
  this._setActiveSegmentationForToolGroup(id, this._getFirstToolGroupId(), false);
7150
7159
  }
7151
7160
  }
7161
+ this._setDisplaySetIsHydrated(segmentationId, false);
7152
7162
  this._broadcastEvent(this.EVENTS.SEGMENTATION_REMOVED, {
7153
7163
  segmentationId
7154
7164
  });
@@ -677,8 +677,8 @@ var prop_types = __webpack_require__(3827);
677
677
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
678
678
  // EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
679
679
  var src = __webpack_require__(60082);
680
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
681
- var core_src = __webpack_require__(24966);
680
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
681
+ var core_src = __webpack_require__(61529);
682
682
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
683
683
  var es = __webpack_require__(69190);
684
684
  ;// CONCATENATED MODULE: ../../../extensions/tmtv/src/Panels/PanelPetSUV.tsx
@@ -21,8 +21,8 @@ const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-dicom-pdf"}')
21
21
  const id = package_namespaceObject.u2;
22
22
  const SOPClassHandlerId = `${id}.sopClassHandlerModule.dicom-pdf`;
23
23
 
24
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
25
- var src = __webpack_require__(24966);
24
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
25
+ var src = __webpack_require__(61529);
26
26
  ;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/src/getSopClassHandlerModule.js
27
27
 
28
28
 
@@ -11,7 +11,7 @@ __webpack_require__.r(__webpack_exports__);
11
11
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43001);
12
12
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3827);
13
13
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
14
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24966);
14
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61529);
15
15
  /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60082);
16
16
  /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69190);
17
17
  /* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26925);
@@ -12,7 +12,7 @@ __webpack_require__.r(__webpack_exports__);
12
12
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);
13
13
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43001);
14
14
  /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69190);
15
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24966);
15
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(61529);
16
16
  /* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64035);
17
17
  /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60082);
18
18
  /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38965);