@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
@@ -104,8 +104,8 @@ Compose.propTypes = {
104
104
  var ui_src = __webpack_require__(60082);
105
105
  // EXTERNAL MODULE: ./state/index.js + 1 modules
106
106
  var state = __webpack_require__(62657);
107
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
108
- var core_src = __webpack_require__(24966);
107
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
108
+ var core_src = __webpack_require__(61529);
109
109
  // EXTERNAL MODULE: ../node_modules/react-router/dist/index.js
110
110
  var react_router_dist = __webpack_require__(85066);
111
111
  // EXTERNAL MODULE: ./hooks/useSearchParams.ts
@@ -959,8 +959,8 @@ function WorkList(_ref) {
959
959
  };
960
960
  });
961
961
  const hasStudies = numOfStudies > 0;
962
- const versionNumber = "3.7.0-beta.53";
963
- const commitHash = "ed0b01cd39930bb24f827608857adc0799fac3bf";
962
+ const versionNumber = "3.7.0-beta.55";
963
+ const commitHash = "0f9b36906f6f67580879d76cb12f2a320883d4a9";
964
964
  const menuOptions = [{
965
965
  title: t('Header:About'),
966
966
  icon: 'info',
@@ -1715,6 +1715,8 @@ function ViewerViewportGrid(props) {
1715
1715
  // This is causing the viewport components re-render when the activeViewportIndex changes
1716
1716
  const displaySets = displaySetInstanceUIDsToUse.map(displaySetInstanceUID => {
1717
1717
  return displaySetService.getDisplaySetByUID(displaySetInstanceUID) || {};
1718
+ }).filter(displaySet => {
1719
+ return !displaySet?.unsupported;
1718
1720
  });
1719
1721
  const ViewportComponent = _getViewportComponent(displaySets, viewportComponents, uiNotificationService);
1720
1722
 
@@ -1901,7 +1903,7 @@ modes.push("@ohif/mode-microscopy");
1901
1903
  async function loadModule(module) {
1902
1904
  if (typeof module !== 'string') return module;
1903
1905
  if (module === "@ohif/extension-default") {
1904
- const imported = await Promise.all(/* import() */[__webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(260), __webpack_require__.e(579)]).then(__webpack_require__.bind(__webpack_require__, 78260));
1906
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(654), __webpack_require__.e(579)]).then(__webpack_require__.bind(__webpack_require__, 75654));
1905
1907
  return imported.default;
1906
1908
  }
1907
1909
  if (module === "@ohif/extension-cornerstone") {
@@ -7039,7 +7041,7 @@ const detectionOptions = {
7039
7041
  }
7040
7042
  });
7041
7043
  ;// CONCATENATED MODULE: ../../i18n/package.json
7042
- const package_namespaceObject = JSON.parse('{"i8":"3.7.0-beta.52"}');
7044
+ const package_namespaceObject = JSON.parse('{"i8":"3.7.0-beta.54"}');
7043
7045
  ;// CONCATENATED MODULE: ../../i18n/src/utils.js
7044
7046
  const languagesMap = {
7045
7047
  ar: 'Arabic',
@@ -7147,7 +7149,7 @@ const en_US_UserPreferencesModal_namespaceObject = JSON.parse('{"Cancel":"$t(But
7147
7149
  ;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/ViewportDownloadForm.json
7148
7150
  const ViewportDownloadForm_namespaceObject = JSON.parse('{"emptyFilenameError":"The file name cannot be empty.","fileType":"File Type","filename":"File Name","formTitle":"Please specify the dimensions, filename, and desired type for the output image.","imageHeight":"Image height (px)","imagePreview":"Image Preview","imageWidth":"Image width (px)","keepAspectRatio":"Keep aspect ratio","loadingPreview":"Loading Image Preview...","minHeightError":"The minimum valid height is 100px.","minWidthError":"The minimum valid width is 100px.","showAnnotations":"Show Annotations"}');
7149
7151
  ;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/Messages.json
7150
- const Messages_namespaceObject = JSON.parse('{"1":"No valid instances found in series.","2":"DisplaySet has missing position information.","3":"DisplaySet is not a reconstructable 3D volume.","4":"Multi frame displaySet don\'t have pixel measurement information.","5":"Multi frame displaySet don\'t have orientation information.","6":"Multi frame displaySet don\'t have position information.","7":"DisplaySet has missing frames.","8":"DisplaySet has irregular spacing.","9":"DisplaySet has inconsistent dimensions between frames.","10":"DisplaySet has frames with inconsistent number of components.","11":"DisplaySet has frames with inconsistent orientations.","12":"DisplaySet has inconsistent position information."}');
7152
+ const Messages_namespaceObject = JSON.parse('{"1":"No valid instances found in series.","2":"DisplaySet has missing position information.","3":"DisplaySet is not a reconstructable 3D volume.","4":"Multi frame displaySet don\'t have pixel measurement information.","5":"Multi frame displaySet don\'t have orientation information.","6":"Multi frame displaySet don\'t have position information.","7":"DisplaySet has missing frames.","8":"DisplaySet has irregular spacing.","9":"DisplaySet has inconsistent dimensions between frames.","10":"DisplaySet has frames with inconsistent number of components.","11":"DisplaySet has frames with inconsistent orientations.","12":"DisplaySet has inconsistent position information.","13":"Unsupported displaySet."}');
7151
7153
  ;// CONCATENATED MODULE: ../../i18n/src/locales/en-US/index.js
7152
7154
 
7153
7155
 
@@ -7316,7 +7318,7 @@ const pt_BR_UserPreferencesModal_namespaceObject = JSON.parse('{"Cancel":"Cancel
7316
7318
  ;// CONCATENATED MODULE: ../../i18n/src/locales/pt-BR/MeasurementTable.json
7317
7319
  const pt_BR_MeasurementTable_namespaceObject = JSON.parse('{"Export":"Exportar","Create Report":"Criar relatório"}');
7318
7320
  ;// CONCATENATED MODULE: ../../i18n/src/locales/pt-BR/Messages.json
7319
- const pt_BR_Messages_namespaceObject = JSON.parse('{"1":"Série sem imagens.","2":"Série nao possui informação de posição.","3":"Serie não é reconstruível.","4":"Série nulti frame não possui informação de medidas.","5":"Série multi frame não possui informação de orientação.","6":"Série multi frame não possui informação de posição.","7":"Série não possui algumas imagens.","8":"Série possui espaçamento irregular.","9":"Série possui dimensões inconsistentes entre frames.","10":"Série possui frames com componentes inconsistentes.","11":"Série possui frames com orientações inconsistentes.","12":"Série possui informação de posição inconsistentes."}');
7321
+ const pt_BR_Messages_namespaceObject = JSON.parse('{"1":"Série sem imagens.","2":"Série nao possui informação de posição.","3":"Serie não é reconstruível.","4":"Série nulti frame não possui informação de medidas.","5":"Série multi frame não possui informação de orientação.","6":"Série multi frame não possui informação de posição.","7":"Série não possui algumas imagens.","8":"Série possui espaçamento irregular.","9":"Série possui dimensões inconsistentes entre frames.","10":"Série possui frames com componentes inconsistentes.","11":"Série possui frames com orientações inconsistentes.","12":"Série possui informação de posição inconsistentes.","13":"Série não suportada."}');
7320
7322
  ;// CONCATENATED MODULE: ../../i18n/src/locales/pt-BR/index.js
7321
7323
 
7322
7324
 
@@ -17912,8 +17914,8 @@ ViewportDialogProvider.propTypes = {
17912
17914
  // EXTERNAL MODULE: ../../../node_modules/lodash.isequal/index.js
17913
17915
  var lodash_isequal = __webpack_require__(10311);
17914
17916
  var lodash_isequal_default = /*#__PURE__*/__webpack_require__.n(lodash_isequal);
17915
- // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
17916
- var src = __webpack_require__(24966);
17917
+ // EXTERNAL MODULE: ../../core/src/index.ts + 105 modules
17918
+ var src = __webpack_require__(61529);
17917
17919
  ;// CONCATENATED MODULE: ../../ui/src/utils/viewportLabels.ts
17918
17920
  const viewportLabels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
17919
17921
  /* harmony default export */ const utils_viewportLabels = (viewportLabels);
@@ -43158,7 +43160,7 @@ const DisplaySetMessageListTooltip = _ref => {
43158
43160
  t
43159
43161
  } = (0,es/* useTranslation */.$G)('Messages');
43160
43162
  const [isOpen, setIsOpen] = (0,react.useState)(false);
43161
- if (messages.size()) {
43163
+ if (messages?.size()) {
43162
43164
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Icon/* default */.Z, {
43163
43165
  id: id,
43164
43166
  onMouseOver: () => setIsOpen(true),
@@ -43172,7 +43174,7 @@ const DisplaySetMessageListTooltip = _ref => {
43172
43174
  arrow: "center",
43173
43175
  parent: `#${id}`
43174
43176
  }, /*#__PURE__*/react.createElement("div", {
43175
- className: "bg-primary-dark border border-secondary-light text-white text-base rounded text-left max-w-40"
43177
+ className: "bg-primary-dark border border-secondary-light text-white text-base rounded text-left max-w-64"
43176
43178
  }, /*#__PURE__*/react.createElement("div", {
43177
43179
  className: "break-normal text-base text-blue-300 font-bold",
43178
43180
  style: {
@@ -43181,7 +43183,8 @@ const DisplaySetMessageListTooltip = _ref => {
43181
43183
  }
43182
43184
  }, "DisplaySet Messages"), /*#__PURE__*/react.createElement("ol", {
43183
43185
  style: {
43184
- marginLeft: '12px'
43186
+ marginLeft: '12px',
43187
+ marginRight: '12px'
43185
43188
  }
43186
43189
  }, messages.messages.map((message, index) => /*#__PURE__*/react.createElement("li", {
43187
43190
  style: {
@@ -43273,7 +43276,7 @@ const Thumbnail = _ref => {
43273
43276
  className: "w-3 mr-2"
43274
43277
  }), ` ${numInstances}`), /*#__PURE__*/react.createElement(components_DisplaySetMessageListTooltip, {
43275
43278
  messages: messages,
43276
- id: `display-set-tooltip-${seriesNumber}`
43279
+ id: `display-set-tooltip-${displaySetInstanceUID}`
43277
43280
  })), /*#__PURE__*/react.createElement("div", {
43278
43281
  className: "text-base text-white break-all"
43279
43282
  }, description)));
@@ -43317,6 +43320,7 @@ Thumbnail.defaultProps = {
43317
43320
 
43318
43321
 
43319
43322
 
43323
+
43320
43324
  const ThumbnailNoImage = _ref => {
43321
43325
  let {
43322
43326
  displaySetInstanceUID,
@@ -43330,7 +43334,8 @@ const ThumbnailNoImage = _ref => {
43330
43334
  onReject,
43331
43335
  messages,
43332
43336
  dragData,
43333
- isActive
43337
+ isActive,
43338
+ isHydratedForDerivedDisplaySet
43334
43339
  } = _ref;
43335
43340
  const [collectedProps, drag, dragPreview] = useDrag({
43336
43341
  type: 'displayset',
@@ -43342,7 +43347,7 @@ const ThumbnailNoImage = _ref => {
43342
43347
  }
43343
43348
  });
43344
43349
  return /*#__PURE__*/react.createElement("div", {
43345
- className: classnames_default()('flex flex-row flex-1 cursor-pointer outline-none border-transparent hover:border-blue-300 focus:border-blue-300 rounded select-none', isActive ? 'border-2 border-primary-light' : 'border'),
43350
+ className: classnames_default()('flex flex-row flex-1 cursor-pointer outline-none hover:border-blue-300 focus:border-blue-300 rounded select-none', isActive ? 'border-2 border-primary-light' : 'border border-transparent'),
43346
43351
  style: {
43347
43352
  padding: isActive ? '11px' : '12px'
43348
43353
  },
@@ -43360,24 +43365,18 @@ const ThumbnailNoImage = _ref => {
43360
43365
  className: "flex flex-row items-center flex-1 mb-2"
43361
43366
  }, /*#__PURE__*/react.createElement(Icon/* default */.Z, {
43362
43367
  name: "list-bullets",
43363
- className: "w-12 text-secondary-light"
43368
+ className: classnames_default()('w-12', isHydratedForDerivedDisplaySet ? 'text-primary-light' : 'text-secondary-light')
43364
43369
  }), /*#__PURE__*/react.createElement(components_Tooltip, {
43365
43370
  position: "bottom",
43366
43371
  content: /*#__PURE__*/react.createElement(Typography/* default */.Z, null, modalityTooltip)
43367
43372
  }, /*#__PURE__*/react.createElement("div", {
43368
- className: "px-3 text-lg text-white rounded-sm bg-primary-main"
43373
+ className: classnames_default()('px-3 text-lg rounded-sm', isHydratedForDerivedDisplaySet ? 'text-black bg-primary-light' : 'text-white bg-primary-main')
43369
43374
  }, modality)), /*#__PURE__*/react.createElement("span", {
43370
43375
  className: "ml-4 text-base text-blue-300"
43371
- }, seriesDate), messages?.size() ? /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement(components_Tooltip, {
43372
- position: "left",
43373
- tight: true,
43374
- content: /*#__PURE__*/react.createElement("div", {
43375
- className: "text-left max-w-40"
43376
- }, messages.thumbnailContents())
43377
- }, /*#__PURE__*/react.createElement(Icon/* default */.Z, {
43378
- name: "notifications-warning",
43379
- className: "w-3 h-3"
43380
- }))) : /*#__PURE__*/react.createElement(react.Fragment, null)), /*#__PURE__*/react.createElement("div", {
43376
+ }, seriesDate), /*#__PURE__*/react.createElement(components_DisplaySetMessageListTooltip, {
43377
+ messages: messages,
43378
+ id: `display-set-tooltip-${displaySetInstanceUID}`
43379
+ })), /*#__PURE__*/react.createElement("div", {
43381
43380
  className: "flex flex-row"
43382
43381
  }, canReject && /*#__PURE__*/react.createElement(Icon/* default */.Z, {
43383
43382
  name: "old-trash",
@@ -43403,7 +43402,7 @@ ThumbnailNoImage.propTypes = {
43403
43402
  /** Must match the "type" a dropTarget expects */
43404
43403
  type: (prop_types_default()).string.isRequired
43405
43404
  }),
43406
- description: (prop_types_default()).string.isRequired,
43405
+ description: (prop_types_default()).string,
43407
43406
  modality: (prop_types_default()).string.isRequired,
43408
43407
  /* Tooltip message to display when modality text is hovered */
43409
43408
  modalityTooltip: (prop_types_default()).string.isRequired,
@@ -43411,7 +43410,8 @@ ThumbnailNoImage.propTypes = {
43411
43410
  onClick: (prop_types_default()).func.isRequired,
43412
43411
  onDoubleClick: (prop_types_default()).func.isRequired,
43413
43412
  messages: (prop_types_default()).object,
43414
- isActive: (prop_types_default()).bool.isRequired
43413
+ isActive: (prop_types_default()).bool.isRequired,
43414
+ isHydratedForDerivedDisplaySet: (prop_types_default()).bool
43415
43415
  };
43416
43416
  /* harmony default export */ const ThumbnailNoImage_ThumbnailNoImage = (ThumbnailNoImage);
43417
43417
  ;// CONCATENATED MODULE: ../../ui/src/components/ThumbnailNoImage/index.js
@@ -43581,7 +43581,8 @@ const ThumbnailList = _ref => {
43581
43581
  onReject,
43582
43582
  imageSrc,
43583
43583
  messages,
43584
- imageAltText
43584
+ imageAltText,
43585
+ isHydratedForDerivedDisplaySet
43585
43586
  } = _ref2;
43586
43587
  const isActive = activeDisplaySetInstanceUIDs.includes(displaySetInstanceUID);
43587
43588
  switch (componentType) {
@@ -43636,7 +43637,8 @@ const ThumbnailList = _ref => {
43636
43637
  onReject: onReject,
43637
43638
  onClick: () => onThumbnailClick(displaySetInstanceUID),
43638
43639
  onDoubleClick: () => onThumbnailDoubleClick(displaySetInstanceUID),
43639
- viewportIdentificator: viewportIdentificator
43640
+ viewportIdentificator: viewportIdentificator,
43641
+ isHydratedForDerivedDisplaySet: isHydratedForDerivedDisplaySet
43640
43642
  });
43641
43643
  default:
43642
43644
  return /*#__PURE__*/react.createElement(react.Fragment, null);
@@ -43683,7 +43685,7 @@ function _getModalityTooltip(modality) {
43683
43685
  const _modalityTooltips = {
43684
43686
  SR: 'Structured Report',
43685
43687
  SEG: 'Segmentation',
43686
- RT: 'RT Structure Set'
43688
+ RTSTRUCT: 'RT Structure Set'
43687
43689
  };
43688
43690
  /* harmony default export */ const ThumbnailList_ThumbnailList = (ThumbnailList);
43689
43691
  ;// CONCATENATED MODULE: ../../ui/src/components/ThumbnailList/index.js
@@ -46503,7 +46505,7 @@ ViewportActionBar.propTypes = {
46503
46505
  patientAge: (prop_types_default()).string.isRequired,
46504
46506
  MRN: (prop_types_default()).string.isRequired,
46505
46507
  thickness: (prop_types_default()).string.isRequired,
46506
- thicknessUnits: (prop_types_default()).string.isRequired,
46508
+ thicknessUnits: (prop_types_default()).string,
46507
46509
  spacing: (prop_types_default()).string.isRequired,
46508
46510
  scanner: (prop_types_default()).string.isRequired
46509
46511
  })
@@ -46814,7 +46816,7 @@ function _getImageOrientationPatient(image) {
46814
46816
 
46815
46817
  /***/ }),
46816
46818
 
46817
- /***/ 24966:
46819
+ /***/ 61529:
46818
46820
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
46819
46821
 
46820
46822
  "use strict";
@@ -48457,6 +48459,64 @@ const DicomMetadataStore = Object.assign(
48457
48459
 
48458
48460
 
48459
48461
  /* harmony default export */ const services_DicomMetadataStore = (DicomMetadataStore_DicomMetadataStore);
48462
+ ;// CONCATENATED MODULE: ../../core/src/types/HangingProtocol.ts
48463
+
48464
+
48465
+ // EXTERNAL MODULE: ../../core/src/types/Services.ts
48466
+ var Services = __webpack_require__(58309);
48467
+ // EXTERNAL MODULE: ../../core/src/classes/Hotkey.ts
48468
+ var Hotkey = __webpack_require__(88323);
48469
+ ;// CONCATENATED MODULE: ../../core/src/types/DataSource.ts
48470
+
48471
+
48472
+ ;// CONCATENATED MODULE: ../../core/src/services/CustomizationService/types.ts
48473
+
48474
+
48475
+ ;// CONCATENATED MODULE: ../../core/src/types/AppConfig.ts
48476
+
48477
+
48478
+ ;// CONCATENATED MODULE: ../../core/src/types/Consumer.ts
48479
+
48480
+
48481
+ ;// CONCATENATED MODULE: ../../core/src/types/Command.ts
48482
+
48483
+
48484
+ ;// CONCATENATED MODULE: ../../core/src/types/DisplaySet.ts
48485
+
48486
+
48487
+ ;// CONCATENATED MODULE: ../../core/src/types/StudyMetadata.ts
48488
+
48489
+
48490
+ ;// CONCATENATED MODULE: ../../core/src/types/PanelModule.ts
48491
+
48492
+
48493
+ // EXTERNAL MODULE: ../../core/src/types/IPubSub.ts
48494
+ var IPubSub = __webpack_require__(4235);
48495
+ ;// CONCATENATED MODULE: ../../core/src/types/Color.ts
48496
+
48497
+
48498
+ ;// CONCATENATED MODULE: ../../core/src/types/index.ts
48499
+
48500
+
48501
+
48502
+
48503
+
48504
+
48505
+ // Separate out some generic types
48506
+
48507
+
48508
+
48509
+
48510
+
48511
+
48512
+
48513
+
48514
+
48515
+ /**
48516
+ * Export the types used within the various services and managers, but
48517
+ * not the services/managers themselves, which are exported at the top level.
48518
+ */
48519
+
48460
48520
  ;// CONCATENATED MODULE: ../../core/src/services/DisplaySetService/EVENTS.js
48461
48521
  const EVENTS_EVENTS = {
48462
48522
  DISPLAY_SETS_ADDED: 'event::displaySetService:displaySetsAdded',
@@ -48468,6 +48528,7 @@ const EVENTS_EVENTS = {
48468
48528
  ;// CONCATENATED MODULE: ../../core/src/services/DisplaySetService/DisplaySetService.ts
48469
48529
 
48470
48530
 
48531
+
48471
48532
  const displaySetCache = new Map();
48472
48533
 
48473
48534
  /**
@@ -48492,6 +48553,7 @@ class DisplaySetService extends PubSubService {
48492
48553
  super(DisplaySetService_EVENTS);
48493
48554
  _this = this;
48494
48555
  this.activeDisplaySets = [];
48556
+ this.unsuportedSOPClassHandler = void 0;
48495
48557
  this.extensionManager = void 0;
48496
48558
  this.activeDisplaySetsMap = new Map();
48497
48559
  // Record if the active display sets changed - used to group change events so
@@ -48554,6 +48616,7 @@ class DisplaySetService extends PubSubService {
48554
48616
  return displaySetsAdded;
48555
48617
  }
48556
48618
  };
48619
+ this.unsuportedSOPClassHandler = '@ohif/extension-default.sopClassHandlerModule.not-supported-display-sets-handler';
48557
48620
  }
48558
48621
  init(extensionManager, SOPClassHandlerIds) {
48559
48622
  this.extensionManager = extensionManager;
@@ -48580,6 +48643,14 @@ class DisplaySetService extends PubSubService {
48580
48643
  });
48581
48644
  }
48582
48645
 
48646
+ /**
48647
+ * Sets the handler for unsupported sop classes
48648
+ * @param sopClassHandlerUID
48649
+ */
48650
+ setUnsuportedSOPClassHandler(sopClassHandler) {
48651
+ this.unsuportedSOPClassHandler = sopClassHandler;
48652
+ }
48653
+
48583
48654
  /**
48584
48655
  * Adds new display sets directly, as specified.
48585
48656
  * Use this function when the display sets are created externally directly
@@ -48620,13 +48691,17 @@ class DisplaySetService extends PubSubService {
48620
48691
  return displaySet;
48621
48692
  }
48622
48693
  setDisplaySetMetadataInvalidated(displaySetInstanceUID) {
48694
+ let invalidateData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
48623
48695
  const displaySet = this.getDisplaySetByUID(displaySetInstanceUID);
48624
48696
  if (!displaySet) {
48625
48697
  return;
48626
48698
  }
48627
48699
 
48628
48700
  // broadcast event to update listeners with the new displaySets
48629
- this._broadcastEvent(DisplaySetService_EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED, displaySetInstanceUID);
48701
+ this._broadcastEvent(DisplaySetService_EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED, {
48702
+ displaySetInstanceUID,
48703
+ invalidateData
48704
+ });
48630
48705
  }
48631
48706
  deleteDisplaySet(displaySetInstanceUID) {
48632
48707
  if (!displaySetInstanceUID) {
@@ -48657,6 +48732,38 @@ class DisplaySetService extends PubSubService {
48657
48732
  this.activeDisplaySetsMap.clear();
48658
48733
  }
48659
48734
 
48735
+ /**
48736
+ * This function hides the old makeDisplaySetForInstances function to first
48737
+ * separate the instances by sopClassUID so each call have only instances
48738
+ * with the same sopClassUID, to avoid a series composed by different
48739
+ * sopClassUIDs be filtered inside one of the SOPClassHandler functions and
48740
+ * didn't appear in the series list.
48741
+ * @param instancesSrc
48742
+ * @param settings
48743
+ * @returns
48744
+ */
48745
+ makeDisplaySetForInstances(instancesSrc, settings) {
48746
+ // creating a sopClassUID list and for each sopClass associate its respective
48747
+ // instance list
48748
+ const instancesForSetSOPClasses = instancesSrc.reduce((sopClassList, instance) => {
48749
+ if (!(instance.SOPClassUID in sopClassList)) {
48750
+ sopClassList[instance.SOPClassUID] = [];
48751
+ }
48752
+ sopClassList[instance.SOPClassUID].push(instance);
48753
+ return sopClassList;
48754
+ }, {});
48755
+ // for each sopClassUID, call the old makeDisplaySetForInstances with a
48756
+ // instance list composed only by instances with the same sopClassUID and
48757
+ // accumulate the displaySets in the variable allDisplaySets
48758
+ const sopClasses = Object.keys(instancesForSetSOPClasses);
48759
+ let allDisplaySets = [];
48760
+ sopClasses.forEach(sopClass => {
48761
+ const displaySets = this._makeDisplaySetForInstances(instancesForSetSOPClasses[sopClass], settings);
48762
+ allDisplaySets = [...allDisplaySets, ...displaySets];
48763
+ });
48764
+ return allDisplaySets;
48765
+ }
48766
+
48660
48767
  /**
48661
48768
  * Creates new display sets for the instances contained in instancesSrc
48662
48769
  * according to the sop class handlers registered.
@@ -48673,7 +48780,7 @@ class DisplaySetService extends PubSubService {
48673
48780
  * @param settings are settings to add
48674
48781
  * @returns Array of the display sets added.
48675
48782
  */
48676
- makeDisplaySetForInstances(instancesSrc, settings) {
48783
+ _makeDisplaySetForInstances(instancesSrc, settings) {
48677
48784
  // Some of the sop class handlers take a direct reference to instances
48678
48785
  // so make sure it gets copied here so that they have their own ref
48679
48786
  let instances = [...instancesSrc];
@@ -48740,6 +48847,22 @@ class DisplaySetService extends PubSubService {
48740
48847
  allDisplaySets.push(...displaySets);
48741
48848
  }
48742
48849
  }
48850
+ // applying the default sopClassUID handler
48851
+ if (allDisplaySets.length === 0) {
48852
+ // applying hp-defined viewport settings to the displaysets
48853
+ const handler = this.extensionManager.getModuleEntry(this.unsuportedSOPClassHandler);
48854
+ const displaySets = handler.getDisplaySetsFromSeries(instances);
48855
+ if (displaySets?.length) {
48856
+ displaySets.forEach(ds => {
48857
+ Object.keys(settings).forEach(key => {
48858
+ ds[key] = settings[key];
48859
+ });
48860
+ });
48861
+ this._addDisplaySetsToCache(displaySets);
48862
+ this._addActiveDisplaySets(displaySets);
48863
+ allDisplaySets.push(...displaySets);
48864
+ }
48865
+ }
48743
48866
  return allDisplaySets;
48744
48867
  }
48745
48868
 
@@ -48798,7 +48921,8 @@ DisplaySetMessage.CODES = {
48798
48921
  INCONSISTENT_DIMENSIONS: 9,
48799
48922
  INCONSISTENT_COMPONENTS: 10,
48800
48923
  INCONSISTENT_ORIENTATIONS: 11,
48801
- INCONSISTENT_POSITION_INFORMATION: 12
48924
+ INCONSISTENT_POSITION_INFORMATION: 12,
48925
+ UNSUPPORTED_DISPLAYSET: 13
48802
48926
  };
48803
48927
  class DisplaySetMessageList {
48804
48928
  constructor() {
@@ -52281,6 +52405,13 @@ class HangingProtocolService extends PubSubService {
52281
52405
  };
52282
52406
  }
52283
52407
  getViewportsRequireUpdate(viewportIndex, displaySetInstanceUID) {
52408
+ const {
52409
+ displaySetService
52410
+ } = this._servicesManager.services;
52411
+ const displaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
52412
+ if (displaySet?.unsupported) {
52413
+ throw new Error('Unsupported displaySet');
52414
+ }
52284
52415
  const newDisplaySetInstanceUID = displaySetInstanceUID;
52285
52416
  const protocol = this.protocol;
52286
52417
  const protocolStage = protocol.stages[this.stageIndex];
@@ -52974,7 +53105,7 @@ class HangingProtocolService extends PubSubService {
52974
53105
  if (matchActiveOnly && this.activeStudy !== study) {
52975
53106
  return;
52976
53107
  }
52977
- const studyDisplaySets = this.displaySets.filter(it => it.StudyInstanceUID === study.StudyInstanceUID);
53108
+ const studyDisplaySets = this.displaySets.filter(it => it.StudyInstanceUID === study.StudyInstanceUID && !it?.unsupported);
52978
53109
  const studyMatchDetails = this.protocolEngine.findMatch(study, studyMatchingRules, {
52979
53110
  studies: this.studies,
52980
53111
  displaySets: studyDisplaySets,
@@ -53519,8 +53650,6 @@ CustomizationService.REGISTRATION = {
53519
53650
  ;// CONCATENATED MODULE: ../../core/src/services/CustomizationService/index.ts
53520
53651
 
53521
53652
  /* harmony default export */ const services_CustomizationService = (CustomizationService);
53522
- // EXTERNAL MODULE: ../../core/src/types/Services.ts
53523
- var Services = __webpack_require__(58309);
53524
53653
  ;// CONCATENATED MODULE: ../../core/src/services/StateSyncService/StateSyncService.ts
53525
53654
 
53526
53655
  const StateSyncService_EVENTS = {};
@@ -55884,59 +56013,6 @@ const bindings = [{
55884
56013
  hotkeyBindings: hotkeyBindings,
55885
56014
  windowLevelPresets: windowLevelPresets
55886
56015
  });
55887
- ;// CONCATENATED MODULE: ../../core/src/types/HangingProtocol.ts
55888
-
55889
-
55890
- // EXTERNAL MODULE: ../../core/src/classes/Hotkey.ts
55891
- var Hotkey = __webpack_require__(88323);
55892
- ;// CONCATENATED MODULE: ../../core/src/types/DataSource.ts
55893
-
55894
-
55895
- ;// CONCATENATED MODULE: ../../core/src/services/CustomizationService/types.ts
55896
-
55897
-
55898
- ;// CONCATENATED MODULE: ../../core/src/types/AppConfig.ts
55899
-
55900
-
55901
- ;// CONCATENATED MODULE: ../../core/src/types/Consumer.ts
55902
-
55903
-
55904
- ;// CONCATENATED MODULE: ../../core/src/types/Command.ts
55905
-
55906
-
55907
- ;// CONCATENATED MODULE: ../../core/src/types/StudyMetadata.ts
55908
-
55909
-
55910
- ;// CONCATENATED MODULE: ../../core/src/types/PanelModule.ts
55911
-
55912
-
55913
- // EXTERNAL MODULE: ../../core/src/types/IPubSub.ts
55914
- var IPubSub = __webpack_require__(4235);
55915
- ;// CONCATENATED MODULE: ../../core/src/types/Color.ts
55916
-
55917
-
55918
- ;// CONCATENATED MODULE: ../../core/src/types/index.ts
55919
-
55920
-
55921
-
55922
-
55923
-
55924
-
55925
-
55926
- // Separate out some generic types
55927
-
55928
-
55929
-
55930
-
55931
-
55932
-
55933
-
55934
-
55935
- /**
55936
- * Export the types used within the various services and managers, but
55937
- * not the services/managers themselves, which are exported at the top level.
55938
- */
55939
-
55940
56016
  ;// CONCATENATED MODULE: ../../core/src/DataSources/IWebApiDataSource.js
55941
56017
  // TODO: Use above to inject so dependent datasources don't need to import or
55942
56018
  // depend on @ohif/core?
@@ -153653,7 +153729,7 @@ var selectOrdinal = function selectOrdinal() {
153653
153729
  /******/ // This function allow to reference async chunks
153654
153730
  /******/ __webpack_require__.u = (chunkId) => {
153655
153731
  /******/ // return url for filenames based on template
153656
- /******/ return "" + (chunkId === 18 ? "dicom-microscopy-viewer" : chunkId) + ".bundle." + {"12":"09ba36c6ceda3bc22278","18":"44f7fedc03a58d5911d1","23":"e008ad788170f2ed5569","30":"8e4fee7f2e20f1d6d1ab","125":"1ae4c6313c31cd0502cc","128":"048d594cecedf6b447c6","150":"abf35493ddb72903930c","181":"1705c0775d72e671dede","202":"ac1e5e25d4daf54581b1","220":"f7e1c96c94245e70f2be","236":"d9f580b7d2769556502e","250":"a523e899f4fb640949f9","260":"25de55d10fa0c377dd22","281":"6f75763dfc0bc240f8ba","348":"c1c983322736015ba732","359":"30dfbfe03df620835f40","378":"582962d731d783c4d6cd","410":"dbc0c425e9b9df98b881","417":"720dc8f3a6e99f378aa9","451":"9941d9134fcf747d452a","471":"c9e618aeda78362776aa","506":"e72cad01f325d5590fc1","579":"8fc434a0c13d3f662d42","604":"a51f83e64004bca5f497","663":"d8bab8112bbff8fa8073","677":"ec5f2b4707db33bd4d8e","678":"e5c2d809571c5e507ab2","686":"70565410179f1e7d22e6","754":"8a16fc8ad21fe00c2e15","774":"8ba82ee206266eb2da5e","775":"2285e7e0e67878948c0d","782":"96410527cef2fbcb5d17","814":"525befb144b0b1fdf2e6","822":"34b2c7e2f175dc797380","886":"09fc0e8c8aa227b70351","925":"22f021ff05c44ae74f24"}[chunkId] + ".js";
153732
+ /******/ return "" + (chunkId === 18 ? "dicom-microscopy-viewer" : chunkId) + ".bundle." + {"12":"ca7a24d331b606d9ca10","18":"44f7fedc03a58d5911d1","23":"e008ad788170f2ed5569","30":"67698f353903b49324b2","125":"1ae4c6313c31cd0502cc","128":"b31521216b013d9b9796","150":"2f14b8168308c78da2da","181":"478d912299d128704269","202":"ac1e5e25d4daf54581b1","220":"f7e1c96c94245e70f2be","236":"b0539dc4a0c77ec85c45","250":"390cb28f078d9c4b2995","281":"39ac590a6fe5ecc651b8","348":"5943d65f9eb1b2e0ebb0","359":"4d9bd4a4662735d644ee","378":"6409ef71b62857d24425","410":"aa6155752bc25f014971","417":"720dc8f3a6e99f378aa9","451":"353be6110631bf74541b","471":"26a7b18545380999bf15","506":"e29274fc7c7eaf63870b","579":"8fc434a0c13d3f662d42","604":"a51f83e64004bca5f497","654":"1faeb72b7f4c02dcceef","663":"1a6e44438e332f9e33a0","677":"ec5f2b4707db33bd4d8e","678":"b85860f14e6863b98b36","686":"70565410179f1e7d22e6","754":"8a16fc8ad21fe00c2e15","774":"8ba82ee206266eb2da5e","775":"2285e7e0e67878948c0d","782":"7f8f484e071edf4c064e","814":"5274d0603448396e0bb0","822":"19500eed01bd57ee812e","886":"0ebaa84a7952a2e1b780","925":"22f021ff05c44ae74f24"}[chunkId] + ".js";
153657
153733
  /******/ };
153658
153734
  /******/ })();
153659
153735
  /******/