@ohif/app 3.9.0-beta.2 → 3.9.0-beta.21

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 (46) hide show
  1. package/dist/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.772ce244eee25d9b7316.js} +50 -15
  2. package/dist/{121.bundle.a6063e0272df61cefccc.js → 121.bundle.b582314ec0024fdf2d15.js} +1 -0
  3. package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.3221590f5e6855086889.js} +318 -41
  4. package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.d3a631d79ee8952e3c60.js} +388 -55
  5. package/dist/{188.bundle.b31173cb165eb21c3ec6.js → 243.bundle.866dc990219240efa81f.js} +8 -8
  6. package/dist/{325.bundle.47f5b8a085837ee6b512.js → 325.bundle.d8bf863ddebb832dcaab.js} +10 -11
  7. package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.67c49f2e52829a5696a4.js} +7 -0
  8. package/dist/{473.bundle.6cd4be953853f35b29c3.js → 367.bundle.6a0746aeca702ae6eba6.js} +279 -29
  9. package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.baa389d217c390b0e92b.js} +81 -10
  10. package/dist/{206.bundle.e98e6ba9bfd9f36dc508.js → 390.bundle.504391bda56219cc9ef9.js} +37 -26
  11. package/dist/{448.bundle.94a6da9fac68fc69f8c2.js → 448.bundle.67539d1552db51aaca85.js} +2 -2
  12. package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
  13. package/dist/{487.bundle.71a2893d94d214741e13.js → 487.bundle.3f0e64e16189f92fcebc.js} +2 -2
  14. package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.7d5003758fa3ffbb344b.js} +750 -247
  15. package/dist/{530.bundle.207b38c15c4c01e4db0e.js → 530.bundle.17b9a34fefff133e5379.js} +3 -3
  16. package/dist/{544.bundle.b005b8c8b9b08aaa3324.js → 544.bundle.4d1fb477b572f50f4220.js} +3 -3
  17. package/dist/{321.bundle.07e853e559665d6e15b6.js → 550.bundle.41e6a1eacc49db2358c5.js} +50 -19
  18. package/dist/{574.bundle.88b619217339b5e93d3e.js → 574.bundle.0bcd9d70f4b1eea48082.js} +35 -32
  19. package/dist/{41.bundle.faaf3b05d1083e3c8831.js → 682.bundle.066197792e6a0d01b669.js} +26 -6
  20. package/dist/{699.bundle.8210579412d62beafa91.js → 699.bundle.428f20dd60662f1e5edd.js} +32 -3
  21. package/dist/{669.bundle.84745782e36f25eb05bc.js → 721.bundle.d21827d733e8811e0b18.js} +73 -73
  22. package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
  23. package/dist/{724.bundle.519141a0c4d0d1a3192a.js → 776.bundle.981d8227b59f97f11dd8.js} +17 -12
  24. package/dist/{862.bundle.4a0bd82b803ba158018f.js → 862.bundle.7a102f04ef4d12686894.js} +1 -1
  25. package/dist/{889.bundle.9fbab4f0bbf643306879.js → 889.bundle.ed8937ba0c5455ed894d.js} +8 -8
  26. package/dist/{905.bundle.7e940707e10096970ca1.js → 905.bundle.b101088a20887c27945d.js} +2 -2
  27. package/dist/{907.bundle.f5aa0414d0f77e575a1f.js → 907.bundle.e8d22a858051cd255c9c.js} +2 -2
  28. package/dist/{94.bundle.ecaaba845625d93bad6b.js → 94.bundle.b4f45b237188a8550a35.js} +38 -8
  29. package/dist/{961.bundle.ff7da8afd7d8495d0bbe.js → 961.bundle.b86b71c712fa83e526d3.js} +2 -2
  30. package/dist/{7.bundle.3a17fe8266b2149334a6.js → 981.bundle.7b03f5a200c7dbcbaf1d.js} +10 -9
  31. package/dist/{594.bundle.01b124740b2b3f8a6d20.js → 989.bundle.e81da55a6954a12e5ea1.js} +5 -5
  32. package/dist/{633.bundle.ff1a1d0bdb0d1ef143af.js → 998.bundle.37015da90e590043cda0.js} +7 -7
  33. package/dist/app-config.js +5 -1
  34. package/dist/{app.bundle.c53b289734d5f7178a39.js → app.bundle.a6bfec031243c17f92e9.js} +686 -555
  35. package/dist/app.bundle.css +1 -1
  36. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  37. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  38. package/dist/google.js +1 -0
  39. package/dist/index.html +1 -1
  40. package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.b0392069f29e128b4efa.js} +3 -3
  41. package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.f823d84fae4ce6865f9a.js} +3 -3
  42. package/dist/sw.js +1 -1
  43. package/package.json +20 -19
  44. /package/dist/{321.css → 550.css} +0 -0
  45. /package/dist/{783.bundle.86c38ee55f4d01b111ca.js → 783.bundle.c5b7e2433ecb9d8e2541.js} +0 -0
  46. /package/dist/{633.css → 998.css} +0 -0
@@ -12,10 +12,10 @@ __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__(41766);
14
14
  /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80619);
15
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55411);
15
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8633);
16
16
  /* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74334);
17
17
  /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5085);
18
- /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(77089);
18
+ /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(31808);
19
19
  /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15575);
20
20
  /* harmony import */ var _utils_createReferencedImageDisplaySet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(92643);
21
21
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -330,7 +330,7 @@ OHIFCornerstoneSRViewport.propTypes = {
330
330
  viewportLabel: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),
331
331
  customProps: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object),
332
332
  viewportOptions: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object),
333
- servicesManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ServicesManager */ .CS).isRequired,
333
+ servicesManager: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object).isRequired,
334
334
  extensionManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ExtensionManager */ .nH).isRequired
335
335
  };
336
336
  OHIFCornerstoneSRViewport.defaultProps = {
@@ -256,10 +256,10 @@ const itemGenerator = props => {
256
256
  }, content.value)));
257
257
  };
258
258
  /* harmony default export */ const ViewportOverlay = (generateFromConfig({}));
259
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
260
- var core_src = __webpack_require__(55411);
259
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
260
+ var core_src = __webpack_require__(8633);
261
261
  // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 85 modules
262
- var default_src = __webpack_require__(7206);
262
+ var default_src = __webpack_require__(47390);
263
263
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/dicomWebClient.ts
264
264
 
265
265
 
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[321],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[550],{
3
3
 
4
4
  /***/ 76255:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -141,7 +141,7 @@ const useViewportActionCornersContext = () => (0,react__WEBPACK_IMPORTED_MODULE_
141
141
 
142
142
  /***/ }),
143
143
 
144
- /***/ 12702:
144
+ /***/ 550:
145
145
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
146
146
 
147
147
  // ESM COMPAT FLAG
@@ -181,8 +181,8 @@ var esm = __webpack_require__(92136);
181
181
  var dist_esm = __webpack_require__(39371);
182
182
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
183
183
  var streaming_image_volume_loader_dist_esm = __webpack_require__(23722);
184
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
185
- var src = __webpack_require__(55411);
184
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
185
+ var src = __webpack_require__(8633);
186
186
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js
187
187
  var cornerstoneDICOMImageLoader_min = __webpack_require__(54578);
188
188
  var cornerstoneDICOMImageLoader_min_default = /*#__PURE__*/__webpack_require__.n(cornerstoneDICOMImageLoader_min);
@@ -861,6 +861,7 @@ function initCornerstoneTools(configuration = {}) {
861
861
  (0,dist_esm.addTool)(dist_esm.SplineROITool);
862
862
  (0,dist_esm.addTool)(dist_esm.LivewireContourTool);
863
863
  (0,dist_esm.addTool)(dist_esm.OrientationMarkerTool);
864
+ (0,dist_esm.addTool)(dist_esm.PlanarFreehandContourSegmentationTool);
864
865
 
865
866
  // Modify annotation tools to use dashed lines on SR
866
867
  const annotationStyle = {
@@ -911,7 +912,8 @@ const toolNames = {
911
912
  SplineROI: dist_esm.SplineROITool.toolName,
912
913
  LivewireContour: dist_esm.LivewireContourTool.toolName,
913
914
  PlanarFreehandROI: dist_esm.PlanarFreehandROITool.toolName,
914
- OrientationMarker: dist_esm.OrientationMarkerTool.toolName
915
+ OrientationMarker: dist_esm.OrientationMarkerTool.toolName,
916
+ PlanarFreehandContourSegmentation: dist_esm.PlanarFreehandContourSegmentationTool.toolName
915
917
  };
916
918
 
917
919
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js
@@ -3590,7 +3592,7 @@ const measurementServiceMappingsFactory = (measurementService, displaySetService
3590
3592
  return factories;
3591
3593
  };
3592
3594
  /* harmony default export */ const measurementServiceMappings_measurementServiceMappingsFactory = (measurementServiceMappingsFactory);
3593
- ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/initMeasurementService.js
3595
+ ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/initMeasurementService.ts
3594
3596
 
3595
3597
 
3596
3598
 
@@ -5037,9 +5039,13 @@ async function init({
5037
5039
  const {
5038
5040
  element
5039
5041
  } = evt.detail;
5042
+ const enabledElement = (0,esm.getEnabledElement)(element);
5043
+ if (!enabledElement) {
5044
+ return;
5045
+ }
5040
5046
  const {
5041
5047
  viewportId
5042
- } = (0,esm.getEnabledElement)(element);
5048
+ } = enabledElement;
5043
5049
  commandsManager.runCommand('resetCrosshairs', {
5044
5050
  viewportId
5045
5051
  });
@@ -5791,6 +5797,11 @@ const tools = {
5791
5797
  }],
5792
5798
  enabled: [{
5793
5799
  toolName: toolNames.SegmentationDisplay
5800
+ }, {
5801
+ toolName: toolNames.PlanarFreehandContourSegmentation,
5802
+ configuration: {
5803
+ displayOnePointAsCrosshairs: true
5804
+ }
5794
5805
  }]
5795
5806
  };
5796
5807
  function getCustomizationModule() {
@@ -6068,7 +6079,9 @@ const CornerstoneViewportDownloadForm = ({
6068
6079
  // for some reason we need a reset camera here, and I don't know why
6069
6080
  downloadViewport.resetCamera();
6070
6081
  const presentation = activeViewport.getViewPresentation();
6071
- downloadViewport.setView(activeViewport.getViewReference(), presentation);
6082
+ if (downloadViewport.setView) {
6083
+ downloadViewport.setView(activeViewport.getViewReference(), presentation);
6084
+ }
6072
6085
  downloadViewport.render();
6073
6086
  });
6074
6087
  });
@@ -8602,8 +8615,11 @@ const ToolGroupService_EVENTS = {
8602
8615
  PRIMARY_TOOL_ACTIVATED: 'event::cornerstone::toolgroupservice:primarytoolactivated'
8603
8616
  };
8604
8617
  class ToolGroupService {
8605
- constructor(serviceManager) {
8606
- this.serviceManager = void 0;
8618
+ constructor(servicesManager) {
8619
+ this.servicesManager = void 0;
8620
+ this.cornerstoneViewportService = void 0;
8621
+ this.viewportGridService = void 0;
8622
+ this.uiNotificationService = void 0;
8607
8623
  this.toolGroupIds = new Set();
8608
8624
  /**
8609
8625
  * Service-specific
@@ -8631,7 +8647,7 @@ class ToolGroupService {
8631
8647
  cornerstoneViewportService,
8632
8648
  viewportGridService,
8633
8649
  uiNotificationService
8634
- } = serviceManager.services;
8650
+ } = servicesManager.services;
8635
8651
  this.cornerstoneViewportService = cornerstoneViewportService;
8636
8652
  this.viewportGridService = viewportGridService;
8637
8653
  this.uiNotificationService = uiNotificationService;
@@ -8892,7 +8908,7 @@ const asSyncGroup = syncGroup => typeof syncGroup === 'string' ? {
8892
8908
  type: syncGroup
8893
8909
  } : syncGroup;
8894
8910
  class SyncGroupService {
8895
- constructor(serviceManager) {
8911
+ constructor(servicesManager) {
8896
8912
  this.servicesManager = void 0;
8897
8913
  this.listeners = {};
8898
8914
  this.EVENTS = void 0;
@@ -8906,7 +8922,7 @@ class SyncGroupService {
8906
8922
  [IMAGE_SLICE]: dist_esm.synchronizers.createImageSliceSynchronizer
8907
8923
  };
8908
8924
  this.synchronizersByType = {};
8909
- this.servicesManager = serviceManager;
8925
+ this.servicesManager = servicesManager;
8910
8926
  this.listeners = {};
8911
8927
  this.EVENTS = SyncGroupService_EVENTS;
8912
8928
  //
@@ -9348,6 +9364,7 @@ class SegmentationService extends src/* PubSubService */.Rc {
9348
9364
  };
9349
9365
  this.addSegmentationRepresentationToToolGroup = async (toolGroupId, segmentationId, hydrateSegmentation = false, representationType = dist_esm.Enums.SegmentationRepresentations.Labelmap, suppressEvents = false) => {
9350
9366
  const segmentation = this.getSegmentation(segmentationId);
9367
+ toolGroupId = toolGroupId || this._getApplicableToolGroupId();
9351
9368
  if (!segmentation) {
9352
9369
  throw new Error(`Segmentation with segmentationId ${segmentationId} not found.`);
9353
9370
  }
@@ -10781,7 +10798,23 @@ class CornerstoneCacheService {
10781
10798
  }
10782
10799
  async invalidateViewportData(viewportData, invalidatedDisplaySetInstanceUID, dataSource, displaySetService) {
10783
10800
  if (viewportData.viewportType === esm.Enums.ViewportType.STACK) {
10784
- return this._getCornerstoneStackImageIds(displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID), dataSource);
10801
+ const displaySet = displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID);
10802
+ const imageIds = this._getCornerstoneStackImageIds(displaySet, dataSource);
10803
+
10804
+ // remove images from the cache to be able to re-load them
10805
+ imageIds.forEach(imageId => {
10806
+ if (esm.cache.getImageLoadObject(imageId)) {
10807
+ esm.cache.removeImageLoadObject(imageId);
10808
+ }
10809
+ });
10810
+ return {
10811
+ viewportType: esm.Enums.ViewportType.STACK,
10812
+ data: {
10813
+ StudyInstanceUID: displaySet.StudyInstanceUID,
10814
+ displaySetInstanceUID: invalidatedDisplaySetInstanceUID,
10815
+ imageIds
10816
+ }
10817
+ };
10785
10818
  }
10786
10819
 
10787
10820
  // Todo: grab the volume and get the id from the viewport itself
@@ -12712,7 +12745,6 @@ const getViewportVolumeHistogram = async (viewport, volume, options) => {
12712
12745
 
12713
12746
 
12714
12747
 
12715
-
12716
12748
  const {
12717
12749
  Events
12718
12750
  } = esm.Enums;
@@ -13002,7 +13034,7 @@ const ViewportWindowLevel = ({
13002
13034
  }));
13003
13035
  };
13004
13036
  ViewportWindowLevel.propTypes = {
13005
- servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS),
13037
+ servicesManager: (prop_types_default()).object.isRequired,
13006
13038
  viewportId: (prop_types_default()).string.isRequired
13007
13039
  };
13008
13040
  /* harmony default export */ const ViewportWindowLevel_ViewportWindowLevel = (ViewportWindowLevel);
@@ -13011,7 +13043,6 @@ ViewportWindowLevel.propTypes = {
13011
13043
 
13012
13044
 
13013
13045
 
13014
-
13015
13046
  const ActiveViewportWindowLevel = ({
13016
13047
  servicesManager
13017
13048
  }) => {
@@ -13025,7 +13056,7 @@ const ActiveViewportWindowLevel = ({
13025
13056
  }));
13026
13057
  };
13027
13058
  ActiveViewportWindowLevel.propTypes = {
13028
- servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS)
13059
+ servicesManager: (prop_types_default()).object.isRequired
13029
13060
  };
13030
13061
  /* harmony default export */ const ActiveViewportWindowLevel_ActiveViewportWindowLevel = (ActiveViewportWindowLevel);
13031
13062
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/ActiveViewportWindowLevel/index.js
@@ -13215,7 +13246,7 @@ const cornerstoneExtension = {
13215
13246
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13216
13247
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
13217
13248
  /* harmony export */ });
13218
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55411);
13249
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8633);
13219
13250
  /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5085);
13220
13251
  var _ViewportActionCornersService;
13221
13252
 
@@ -23,8 +23,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
23
23
  var esm = __webpack_require__(39371);
24
24
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
25
25
  var dist_esm = __webpack_require__(92136);
26
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
27
- var src = __webpack_require__(55411);
26
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
27
+ var src = __webpack_require__(8633);
28
28
  // EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
29
29
  var ui_src = __webpack_require__(5085);
30
30
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
@@ -1233,11 +1233,11 @@ function Colormap({
1233
1233
  viewportId,
1234
1234
  displaySets,
1235
1235
  commandsManager,
1236
- serviceManager
1236
+ servicesManager
1237
1237
  }) {
1238
1238
  const {
1239
1239
  cornerstoneViewportService
1240
- } = serviceManager.services;
1240
+ } = servicesManager.services;
1241
1241
  const [activeDisplaySet, setActiveDisplaySet] = (0,react.useState)(displaySets[0]);
1242
1242
  const [showPreview, setShowPreview] = (0,react.useState)(false);
1243
1243
  const [prePreviewColormap, setPrePreviewColormap] = (0,react.useState)(null);
@@ -1363,10 +1363,10 @@ function Colormap({
1363
1363
 
1364
1364
 
1365
1365
 
1366
- function setViewportColorbar(viewportId, displaySets, commandsManager, serviceManager, colorbarOptions) {
1366
+ function setViewportColorbar(viewportId, displaySets, commandsManager, servicesManager, colorbarOptions) {
1367
1367
  const {
1368
1368
  cornerstoneViewportService
1369
- } = serviceManager.services;
1369
+ } = servicesManager.services;
1370
1370
  const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
1371
1371
  const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
1372
1372
  const backgroundColor = viewportInfo.getViewportOptions().background;
@@ -1407,12 +1407,12 @@ function Colorbar({
1407
1407
  viewportId,
1408
1408
  displaySets,
1409
1409
  commandsManager,
1410
- serviceManager,
1410
+ servicesManager,
1411
1411
  colorbarProperties
1412
1412
  }) {
1413
1413
  const {
1414
1414
  colorbarService
1415
- } = serviceManager.services;
1415
+ } = servicesManager.services;
1416
1416
  const {
1417
1417
  width: colorbarWidth,
1418
1418
  colorbarTickPosition,
@@ -1422,7 +1422,7 @@ function Colorbar({
1422
1422
  } = colorbarProperties;
1423
1423
  const [showColorbar, setShowColorbar] = (0,react.useState)(colorbarService.hasColorbar(viewportId));
1424
1424
  const onSetColorbar = (0,react.useCallback)(() => {
1425
- setViewportColorbar(viewportId, displaySets, commandsManager, serviceManager, {
1425
+ setViewportColorbar(viewportId, displaySets, commandsManager, servicesManager, {
1426
1426
  viewportId,
1427
1427
  colormaps,
1428
1428
  ticks: {
@@ -1566,13 +1566,13 @@ function VolumeRenderingPresetsContent({
1566
1566
 
1567
1567
  function VolumeRenderingPresets({
1568
1568
  viewportId,
1569
- serviceManager,
1569
+ servicesManager,
1570
1570
  commandsManager,
1571
1571
  volumeRenderingPresets
1572
1572
  }) {
1573
1573
  const {
1574
1574
  uiModalService
1575
- } = serviceManager.services;
1575
+ } = servicesManager.services;
1576
1576
  const onClickPresets = () => {
1577
1577
  uiModalService.show({
1578
1578
  content: VolumeRenderingPresetsContent,
@@ -1604,12 +1604,12 @@ function VolumeRenderingPresets({
1604
1604
  function VolumeRenderingQuality({
1605
1605
  volumeRenderingQualityRange,
1606
1606
  commandsManager,
1607
- serviceManager,
1607
+ servicesManager,
1608
1608
  viewportId
1609
1609
  }) {
1610
1610
  const {
1611
1611
  cornerstoneViewportService
1612
- } = serviceManager.services;
1612
+ } = servicesManager.services;
1613
1613
  const {
1614
1614
  min,
1615
1615
  max,
@@ -1669,11 +1669,11 @@ function VolumeRenderingQuality({
1669
1669
  function VolumeShift({
1670
1670
  viewportId,
1671
1671
  commandsManager,
1672
- serviceManager
1672
+ servicesManager
1673
1673
  }) {
1674
1674
  const {
1675
1675
  cornerstoneViewportService
1676
- } = serviceManager.services;
1676
+ } = servicesManager.services;
1677
1677
  const [minShift, setMinShift] = (0,react.useState)(null);
1678
1678
  const [maxShift, setMaxShift] = (0,react.useState)(null);
1679
1679
  const [shift, setShift] = (0,react.useState)(cornerstoneViewportService.getCornerstoneViewport(viewportId)?.shiftedBy || 0);
@@ -1740,13 +1740,13 @@ function VolumeShift({
1740
1740
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeLighting.tsx
1741
1741
 
1742
1742
  function VolumeLighting({
1743
- serviceManager,
1743
+ servicesManager,
1744
1744
  commandsManager,
1745
1745
  viewportId
1746
1746
  }) {
1747
1747
  const {
1748
1748
  cornerstoneViewportService
1749
- } = serviceManager.services;
1749
+ } = servicesManager.services;
1750
1750
  const [ambient, setAmbient] = (0,react.useState)(null);
1751
1751
  const [diffuse, setDiffuse] = (0,react.useState)(null);
1752
1752
  const [specular, setSpecular] = (0,react.useState)(null);
@@ -1864,11 +1864,11 @@ function VolumeLighting({
1864
1864
  function VolumeShade({
1865
1865
  commandsManager,
1866
1866
  viewportId,
1867
- serviceManager
1867
+ servicesManager
1868
1868
  }) {
1869
1869
  const {
1870
1870
  cornerstoneViewportService
1871
- } = serviceManager.services;
1871
+ } = servicesManager.services;
1872
1872
  const [shade, setShade] = (0,react.useState)(true);
1873
1873
  const [key, setKey] = (0,react.useState)(0);
1874
1874
  const onShadeChange = (0,react.useCallback)(checked => {
@@ -1909,17 +1909,17 @@ function VolumeRenderingOptions({
1909
1909
  viewportId,
1910
1910
  commandsManager,
1911
1911
  volumeRenderingQualityRange,
1912
- serviceManager
1912
+ servicesManager
1913
1913
  }) {
1914
1914
  return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.ItemPanel */.se.cV, null, /*#__PURE__*/react.createElement(VolumeRenderingQuality, {
1915
1915
  viewportId: viewportId,
1916
1916
  commandsManager: commandsManager,
1917
- serviceManager: serviceManager,
1917
+ servicesManager: servicesManager,
1918
1918
  volumeRenderingQualityRange: volumeRenderingQualityRange
1919
1919
  }), /*#__PURE__*/react.createElement(VolumeShift, {
1920
1920
  viewportId: viewportId,
1921
1921
  commandsManager: commandsManager,
1922
- serviceManager: serviceManager
1922
+ servicesManager: servicesManager
1923
1923
  }), /*#__PURE__*/react.createElement("div", {
1924
1924
  className: "all-in-one-menu-item mt-2 flex !h-[20px] w-full justify-start"
1925
1925
  }, /*#__PURE__*/react.createElement("div", {
@@ -1930,12 +1930,12 @@ function VolumeRenderingOptions({
1930
1930
  className: "all-in-one-menu-item flex w-full justify-center"
1931
1931
  }, /*#__PURE__*/react.createElement(VolumeShade, {
1932
1932
  commandsManager: commandsManager,
1933
- serviceManager: serviceManager,
1933
+ servicesManager: servicesManager,
1934
1934
  viewportId: viewportId
1935
1935
  })), /*#__PURE__*/react.createElement(VolumeLighting, {
1936
1936
  viewportId: viewportId,
1937
1937
  commandsManager: commandsManager,
1938
- serviceManager: serviceManager
1938
+ servicesManager: servicesManager
1939
1939
  }));
1940
1940
  }
1941
1941
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevelActionMenu.tsx
@@ -1958,7 +1958,7 @@ function WindowLevelActionMenu({
1958
1958
  verticalDirection,
1959
1959
  horizontalDirection,
1960
1960
  commandsManager,
1961
- serviceManager,
1961
+ servicesManager,
1962
1962
  colorbarProperties,
1963
1963
  displaySets,
1964
1964
  volumeRenderingPresets,
@@ -1974,7 +1974,7 @@ function WindowLevelActionMenu({
1974
1974
  const {
1975
1975
  colorbarService,
1976
1976
  cornerstoneViewportService
1977
- } = serviceManager.services;
1977
+ } = servicesManager.services;
1978
1978
  const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
1979
1979
  const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
1980
1980
  const backgroundColor = viewportInfo.getViewportOptions().background;
@@ -1991,7 +1991,7 @@ function WindowLevelActionMenu({
1991
1991
  const [menuKey, setMenuKey] = (0,react.useState)(0);
1992
1992
  const [is3DVolume, setIs3DVolume] = (0,react.useState)(false);
1993
1993
  const onSetColorbar = (0,react.useCallback)(() => {
1994
- setViewportColorbar(viewportId, displaySets, commandsManager, serviceManager, {
1994
+ setViewportColorbar(viewportId, displaySets, commandsManager, servicesManager, {
1995
1995
  colormaps,
1996
1996
  ticks: {
1997
1997
  position: colorbarTickPosition
@@ -2044,7 +2044,7 @@ function WindowLevelActionMenu({
2044
2044
  viewportId: viewportId,
2045
2045
  displaySets: displaySets.filter(ds => !nonImageModalities.includes(ds.Modality)),
2046
2046
  commandsManager: commandsManager,
2047
- serviceManager: serviceManager,
2047
+ servicesManager: servicesManager,
2048
2048
  colorbarProperties: colorbarProperties
2049
2049
  }), colormaps && !is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.se.g8, {
2050
2050
  key: "colorLUTPresets",
@@ -2055,7 +2055,7 @@ function WindowLevelActionMenu({
2055
2055
  viewportId: viewportId,
2056
2056
  displaySets: displaySets.filter(ds => !nonImageModalities.includes(ds.Modality)),
2057
2057
  commandsManager: commandsManager,
2058
- serviceManager: serviceManager
2058
+ servicesManager: servicesManager
2059
2059
  })), presets && presets.length > 0 && !is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.se.g8, {
2060
2060
  key: "windowLevelPresets",
2061
2061
  itemLabel: t('Modality Window Presets'),
@@ -2065,7 +2065,7 @@ function WindowLevelActionMenu({
2065
2065
  commandsManager: commandsManager,
2066
2066
  presets: presets
2067
2067
  })), volumeRenderingPresets && is3DVolume && /*#__PURE__*/react.createElement(VolumeRenderingPresets, {
2068
- serviceManager: serviceManager,
2068
+ servicesManager: servicesManager,
2069
2069
  viewportId: viewportId,
2070
2070
  commandsManager: commandsManager,
2071
2071
  volumeRenderingPresets: volumeRenderingPresets
@@ -2075,7 +2075,7 @@ function WindowLevelActionMenu({
2075
2075
  viewportId: viewportId,
2076
2076
  commandsManager: commandsManager,
2077
2077
  volumeRenderingQualityRange: volumeRenderingQualityRange,
2078
- serviceManager: serviceManager
2078
+ servicesManager: servicesManager
2079
2079
  }))));
2080
2080
  }
2081
2081
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/WindowLevelActionMenu/getWindowLevelActionMenu.tsx
@@ -2113,7 +2113,7 @@ function getWindowLevelActionMenu({
2113
2113
  verticalDirection: verticalDirection,
2114
2114
  horizontalDirection: horizontalDirection,
2115
2115
  commandsManager: commandsManager,
2116
- serviceManager: servicesManager,
2116
+ servicesManager: servicesManager,
2117
2117
  colorbarProperties: colorbarProperties,
2118
2118
  displaySets: displaySets,
2119
2119
  volumeRenderingPresets: volumeRenderingPresets,
@@ -2201,11 +2201,13 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
2201
2201
  displaySetOptions,
2202
2202
  servicesManager,
2203
2203
  onElementEnabled,
2204
+ // eslint-disable-next-line react/prop-types
2204
2205
  onElementDisabled,
2205
2206
  isJumpToMeasurementDisabled,
2206
2207
  // Note: you SHOULD NOT use the initialImageIdOrIndex for manipulation
2207
2208
  // of the imageData in the OHIFCornerstoneViewport. This prop is used
2208
2209
  // to set the initial state of the viewport's first image to render
2210
+ // eslint-disable-next-line react/prop-types
2209
2211
  initialImageIndex,
2210
2212
  // if the viewport is part of a hanging protocol layout
2211
2213
  // we should not really rely on the old synchronizers and
@@ -2213,6 +2215,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
2213
2215
  // is not part of the hanging protocol layout. HPs should
2214
2216
  // define their own synchronizers. Since the synchronizers are
2215
2217
  // viewportId dependent and
2218
+ // eslint-disable-next-line react/prop-types
2216
2219
  isHangingProtocolLayout
2217
2220
  } = props;
2218
2221
  const viewportId = viewportOptions.viewportId;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[41],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[682],{
3
3
 
4
- /***/ 97041:
4
+ /***/ 82682:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -15,8 +15,8 @@ __webpack_require__.d(__webpack_exports__, {
15
15
  toolbarButtons: () => (/* reexport */ src_toolbarButtons)
16
16
  });
17
17
 
18
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
19
- var src = __webpack_require__(55411);
18
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
19
+ var src = __webpack_require__(8633);
20
20
  // EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
21
21
  var i18next = __webpack_require__(92344);
22
22
  ;// CONCATENATED MODULE: ../../../modes/longitudinal/package.json
@@ -111,6 +111,11 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage
111
111
  toolName: toolNames.SegmentationDisplay
112
112
  }, {
113
113
  toolName: toolNames.CalibrationLine
114
+ }, {
115
+ toolName: toolNames.PlanarFreehandContourSegmentation,
116
+ configuration: {
117
+ displayOnePointAsCrosshairs: true
118
+ }
114
119
  }, {
115
120
  toolName: toolNames.UltrasoundDirectional
116
121
  }, {
@@ -178,6 +183,11 @@ function initSRToolGroup(extensionManager, toolGroupService) {
178
183
  toolName: SRToolNames.SRPlanarFreehandROI
179
184
  }, {
180
185
  toolName: SRToolNames.SRRectangleROI
186
+ }, {
187
+ toolName: SRToolNames.SRPlanarFreehandContourSegmentation,
188
+ configuration: {
189
+ displayOnePointAsCrosshairs: true
190
+ }
181
191
  }],
182
192
  enabled: [{
183
193
  toolName: SRToolNames.DICOMSRDisplay,
@@ -265,11 +275,21 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager, m
265
275
  toolName: toolNames.PlanarFreehandROI
266
276
  }, {
267
277
  toolName: toolNames.SegmentationDisplay
278
+ }, {
279
+ toolName: toolNames.PlanarFreehandContourSegmentation,
280
+ configuration: {
281
+ displayOnePointAsCrosshairs: true
282
+ }
268
283
  }],
269
284
  disabled: [{
270
285
  toolName: toolNames.Crosshairs,
271
286
  configuration: {
272
- viewportIndicators: false,
287
+ viewportIndicators: true,
288
+ viewportIndicatorsConfig: {
289
+ circleRadius: 5,
290
+ xOffset: 0.95,
291
+ yOffset: 0.05
292
+ },
273
293
  disableOnPassive: true,
274
294
  autoPan: {
275
295
  enabled: false,
@@ -677,7 +697,7 @@ const moreTools = [{
677
697
  }
678
698
  }];
679
699
  /* harmony default export */ const src_moreTools = (moreTools);
680
- ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/index.js
700
+ ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/index.ts
681
701
 
682
702
 
683
703
 
@@ -12,8 +12,8 @@ __webpack_require__.d(__webpack_exports__, {
12
12
  "default": () => (/* binding */ segmentation_src)
13
13
  });
14
14
 
15
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
16
- var src = __webpack_require__(55411);
15
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
16
+ var src = __webpack_require__(8633);
17
17
  ;// CONCATENATED MODULE: ../../../modes/segmentation/package.json
18
18
  const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/mode-segmentation"}');
19
19
  ;// CONCATENATED MODULE: ../../../modes/segmentation/src/id.js
@@ -446,6 +446,16 @@ const segmentationButtons_toolbarButtons = [{
446
446
  }];
447
447
  /* harmony default export */ const segmentationButtons = (segmentationButtons_toolbarButtons);
448
448
  ;// CONCATENATED MODULE: ../../../modes/segmentation/src/initToolGroups.ts
449
+ const colours = {
450
+ 'viewport-0': 'rgb(200, 0, 0)',
451
+ 'viewport-1': 'rgb(200, 200, 0)',
452
+ 'viewport-2': 'rgb(0, 200, 0)'
453
+ };
454
+ const colorsByOrientation = {
455
+ axial: 'rgb(200, 0, 0)',
456
+ sagittal: 'rgb(200, 200, 0)',
457
+ coronal: 'rgb(0, 200, 0)'
458
+ };
449
459
  function createTools(utilityModule) {
450
460
  const {
451
461
  toolNames,
@@ -554,15 +564,34 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage
554
564
  }
555
565
  function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
556
566
  const utilityModule = extensionManager.getModuleEntry('@ohif/extension-cornerstone.utilityModule.tools');
567
+ const servicesManager = extensionManager._servicesManager;
568
+ const {
569
+ cornerstoneViewportService
570
+ } = servicesManager.services;
557
571
  const tools = createTools(utilityModule);
558
572
  tools.disabled.push({
559
573
  toolName: utilityModule.exports.toolNames.Crosshairs,
560
574
  configuration: {
561
- viewportIndicators: false,
575
+ viewportIndicators: true,
576
+ viewportIndicatorsConfig: {
577
+ circleRadius: 5,
578
+ xOffset: 0.95,
579
+ yOffset: 0.05
580
+ },
562
581
  disableOnPassive: true,
563
582
  autoPan: {
564
583
  enabled: false,
565
584
  panSize: 10
585
+ },
586
+ getReferenceLineColor: viewportId => {
587
+ const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
588
+ const viewportOptions = viewportInfo?.viewportOptions;
589
+ if (viewportOptions) {
590
+ return colours[viewportOptions.id] || colorsByOrientation[viewportOptions.orientation] || '#0c0';
591
+ } else {
592
+ console.warn('missing viewport?', viewportId);
593
+ return '#0c0';
594
+ }
566
595
  }
567
596
  }
568
597
  }, {