@ohif/app 3.8.0 → 3.8.2

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.77cc4e62d0de5d843e2e.js → 117.bundle.17ae130d2bb21ef9d31f.js} +75 -80
  2. package/dist/{121.bundle.47f05840a5b3cdf75543.js → 121.bundle.27d181784f24551bc546.js} +2 -1
  3. package/dist/{164.bundle.b101cb64d04a22453984.js → 164.bundle.e30009bee13acb6967da.js} +554 -311
  4. package/dist/{236.bundle.f774cdc955890e6cdac9.js → 236.bundle.79a374f5fdf7fde431f4.js} +753 -140
  5. package/dist/{188.bundle.f2b81ec70ae344f57183.js → 243.bundle.7891b41d969264043783.js} +8 -8
  6. package/dist/{325.bundle.5012b0285b6baadd1884.js → 325.bundle.bfb7de5a397beae16d24.js} +11 -11
  7. package/dist/{342.bundle.36ee082163b01284eeba.js → 342.bundle.17f0c50a27c0ba1f3846.js} +7 -0
  8. package/dist/{203.bundle.3581da3a32a0b720d3a7.js → 370.bundle.e4cd6c20d3496c949374.js} +614 -455
  9. package/dist/{448.bundle.35b8f8e262fa954026df.js → 448.bundle.375bbf6d00a23e35f229.js} +2 -2
  10. package/dist/{483.bundle.581b242d7b90866fdfb9.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
  11. package/dist/{487.bundle.79aff4db7df5f383b423.js → 487.bundle.205821cf073b4d0d2e71.js} +2 -2
  12. package/dist/{416.bundle.9b0d7559344fd02c9e08.js → 501.bundle.de519580f8ba42802378.js} +1206 -305
  13. package/dist/{530.bundle.207b38c15c4c01e4db0e.js → 530.bundle.17b9a34fefff133e5379.js} +3 -3
  14. package/dist/{544.bundle.3542927ec15c3f688c8d.js → 544.bundle.170c67e76a6900a9a644.js} +4 -4
  15. package/dist/{206.bundle.e1ea316389b21006d3df.js → 545.bundle.c9cc3bd30adc9904cf64.js} +28 -24
  16. package/dist/{321.bundle.39a76114e54cd9833c43.js → 550.bundle.53604ec87839bd9b4a49.js} +82 -49
  17. package/dist/{574.bundle.4b059c95cd34efdc9cb3.js → 574.bundle.b369b11b04c3e080f0b3.js} +40 -37
  18. package/dist/{41.bundle.64e0da470e235cfac4bb.js → 682.bundle.fdd752d2920107f695fb.js} +26 -6
  19. package/dist/{699.bundle.b9666b1d4ddf7e8577ee.js → 699.bundle.fee3d1c6609ecc557a9a.js} +32 -3
  20. package/dist/{669.bundle.64309c677c5ca188348c.js → 721.bundle.d01a6829ac9b0abef67d.js} +73 -73
  21. package/dist/{722.bundle.52eb61926d08a08793fe.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
  22. package/dist/{724.bundle.72aef9dfca69ae057d37.js → 776.bundle.bb8a64b917ff1e559734.js} +13 -15
  23. package/dist/{862.bundle.9897a9b748078d53f9ab.js → 862.bundle.59bb164ca7e871a33e44.js} +1 -1
  24. package/dist/{889.bundle.b6231f995fd098f7e3f9.js → 889.bundle.5b10c495e1442d648ffc.js} +8 -8
  25. package/dist/{905.bundle.cd3e2b347340dd47a1b0.js → 905.bundle.1ba21a0406473fc92696.js} +2 -2
  26. package/dist/{907.bundle.723a425dedf8147243d2.js → 907.bundle.b199f25916a94c4ebb97.js} +2 -2
  27. package/dist/{473.bundle.11f707c8170ade2eb56a.js → 914.bundle.2b3a856b7d41ac8298e6.js} +510 -272
  28. package/dist/{94.bundle.33ca3bc10aa42716dbbb.js → 94.bundle.ae3ca435b134c95aea2e.js} +38 -8
  29. package/dist/{961.bundle.2c4663737c970764a41e.js → 961.bundle.d1b25d8f354bde3be17c.js} +2 -2
  30. package/dist/{7.bundle.94692aed50fe4ba2e2f5.js → 981.bundle.808058a6555d322675e1.js} +15 -15
  31. package/dist/{594.bundle.c292423defd9581bfbe3.js → 989.bundle.b929ddc23c16980560de.js} +5 -5
  32. package/dist/{633.bundle.e258ba4843985e67336a.js → 998.bundle.df083f740270855652bd.js} +21 -20
  33. package/dist/app-config.js +5 -1
  34. package/dist/{app.bundle.a05edb830ad2ecd67aac.js → app.bundle.7fa3782f7fa236cc53a8.js} +791 -568
  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.4442dd3318266fddf4d0.js → polySeg.bundle.36ddebc98d8b109edf33.js} +3 -3
  41. package/dist/{suv-peak-worker.bundle.348c016f7f973d05f2d2.js → suv-peak-worker.bundle.f4df597fab47d977d7f3.js} +3 -3
  42. package/dist/sw.js +1 -1
  43. package/package.json +18 -18
  44. /package/dist/{321.css → 550.css} +0 -0
  45. /package/dist/{783.bundle.11d774eb13ffc74cdca5.js → 783.bundle.f4f09b94ebe4d1a466b1.js} +0 -0
  46. /package/dist/{633.css → 998.css} +0 -0
@@ -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
@@ -83,7 +83,7 @@ function CornerstoneImageScrollbar({
83
83
  const imageIndex = viewport.getCurrentImageIdIndex();
84
84
  setImageSliceData({
85
85
  imageIndex: imageIndex,
86
- numberOfSlices: viewportData.data.imageIds.length
86
+ numberOfSlices: viewportData.data[0].imageIds.length
87
87
  });
88
88
  return;
89
89
  }
@@ -113,7 +113,7 @@ function CornerstoneImageScrollbar({
113
113
  // find the index of imageId in the imageIds
114
114
  setImageSliceData({
115
115
  imageIndex: newImageIdIndex,
116
- numberOfSlices: viewportData.data.imageIds.length
116
+ numberOfSlices: viewportData.data[0].imageIds.length
117
117
  });
118
118
  };
119
119
  element.addEventListener(dist_esm.Enums.Events.STACK_VIEWPORT_SCROLL, updateStackIndex);
@@ -480,7 +480,7 @@ function CustomizableViewportOverlay({
480
480
  function _getViewportInstances(viewportData) {
481
481
  const imageIds = [];
482
482
  if (viewportData.viewportType === dist_esm.Enums.ViewportType.STACK) {
483
- imageIds.push(viewportData.data.imageIds[0]);
483
+ imageIds.push(viewportData.data[0].imageIds[0]);
484
484
  } else if (viewportData.viewportType === dist_esm.Enums.ViewportType.ORTHOGRAPHIC) {
485
485
  const volumes = viewportData.data;
486
486
  volumes.forEach(volume => {
@@ -510,7 +510,7 @@ const getInstanceNumber = (viewportData, viewportId, imageIndex, cornerstoneView
510
510
  return instanceNumber ?? null;
511
511
  };
512
512
  function _getInstanceNumberFromStack(viewportData, imageIndex) {
513
- const imageIds = viewportData.data.imageIds;
513
+ const imageIds = viewportData.data[0].imageIds;
514
514
  const imageId = imageIds[imageIndex];
515
515
  if (!imageId) {
516
516
  return;
@@ -706,7 +706,7 @@ function ViewportOrientationMarkers({
706
706
  let rowCosines, columnCosines;
707
707
  if (viewportData.viewportType === 'stack') {
708
708
  const imageIndex = imageSliceData.imageIndex;
709
- const imageId = viewportData.data.imageIds?.[imageIndex];
709
+ const imageId = viewportData.data[0].imageIds?.[imageIndex];
710
710
 
711
711
  // Workaround for below TODO stub
712
712
  if (!imageId) {
@@ -1245,11 +1245,11 @@ function Colormap({
1245
1245
  viewportId,
1246
1246
  displaySets,
1247
1247
  commandsManager,
1248
- serviceManager
1248
+ servicesManager
1249
1249
  }) {
1250
1250
  const {
1251
1251
  cornerstoneViewportService
1252
- } = serviceManager.services;
1252
+ } = servicesManager.services;
1253
1253
  const [activeDisplaySet, setActiveDisplaySet] = (0,react.useState)(displaySets[0]);
1254
1254
  const [showPreview, setShowPreview] = (0,react.useState)(false);
1255
1255
  const [prePreviewColormap, setPrePreviewColormap] = (0,react.useState)(null);
@@ -1375,10 +1375,10 @@ function Colormap({
1375
1375
 
1376
1376
 
1377
1377
 
1378
- function setViewportColorbar(viewportId, displaySets, commandsManager, serviceManager, colorbarOptions) {
1378
+ function setViewportColorbar(viewportId, displaySets, commandsManager, servicesManager, colorbarOptions) {
1379
1379
  const {
1380
1380
  cornerstoneViewportService
1381
- } = serviceManager.services;
1381
+ } = servicesManager.services;
1382
1382
  const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
1383
1383
  const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
1384
1384
  const backgroundColor = viewportInfo.getViewportOptions().background;
@@ -1419,12 +1419,12 @@ function Colorbar({
1419
1419
  viewportId,
1420
1420
  displaySets,
1421
1421
  commandsManager,
1422
- serviceManager,
1422
+ servicesManager,
1423
1423
  colorbarProperties
1424
1424
  }) {
1425
1425
  const {
1426
1426
  colorbarService
1427
- } = serviceManager.services;
1427
+ } = servicesManager.services;
1428
1428
  const {
1429
1429
  width: colorbarWidth,
1430
1430
  colorbarTickPosition,
@@ -1434,7 +1434,7 @@ function Colorbar({
1434
1434
  } = colorbarProperties;
1435
1435
  const [showColorbar, setShowColorbar] = (0,react.useState)(colorbarService.hasColorbar(viewportId));
1436
1436
  const onSetColorbar = (0,react.useCallback)(() => {
1437
- setViewportColorbar(viewportId, displaySets, commandsManager, serviceManager, {
1437
+ setViewportColorbar(viewportId, displaySets, commandsManager, servicesManager, {
1438
1438
  viewportId,
1439
1439
  colormaps,
1440
1440
  ticks: {
@@ -1578,13 +1578,13 @@ function VolumeRenderingPresetsContent({
1578
1578
 
1579
1579
  function VolumeRenderingPresets({
1580
1580
  viewportId,
1581
- serviceManager,
1581
+ servicesManager,
1582
1582
  commandsManager,
1583
1583
  volumeRenderingPresets
1584
1584
  }) {
1585
1585
  const {
1586
1586
  uiModalService
1587
- } = serviceManager.services;
1587
+ } = servicesManager.services;
1588
1588
  const onClickPresets = () => {
1589
1589
  uiModalService.show({
1590
1590
  content: VolumeRenderingPresetsContent,
@@ -1616,12 +1616,12 @@ function VolumeRenderingPresets({
1616
1616
  function VolumeRenderingQuality({
1617
1617
  volumeRenderingQualityRange,
1618
1618
  commandsManager,
1619
- serviceManager,
1619
+ servicesManager,
1620
1620
  viewportId
1621
1621
  }) {
1622
1622
  const {
1623
1623
  cornerstoneViewportService
1624
- } = serviceManager.services;
1624
+ } = servicesManager.services;
1625
1625
  const {
1626
1626
  min,
1627
1627
  max,
@@ -1681,11 +1681,11 @@ function VolumeRenderingQuality({
1681
1681
  function VolumeShift({
1682
1682
  viewportId,
1683
1683
  commandsManager,
1684
- serviceManager
1684
+ servicesManager
1685
1685
  }) {
1686
1686
  const {
1687
1687
  cornerstoneViewportService
1688
- } = serviceManager.services;
1688
+ } = servicesManager.services;
1689
1689
  const [minShift, setMinShift] = (0,react.useState)(null);
1690
1690
  const [maxShift, setMaxShift] = (0,react.useState)(null);
1691
1691
  const [shift, setShift] = (0,react.useState)(cornerstoneViewportService.getCornerstoneViewport(viewportId)?.shiftedBy || 0);
@@ -1752,13 +1752,13 @@ function VolumeShift({
1752
1752
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/WindowLevelActionMenu/VolumeLighting.tsx
1753
1753
 
1754
1754
  function VolumeLighting({
1755
- serviceManager,
1755
+ servicesManager,
1756
1756
  commandsManager,
1757
1757
  viewportId
1758
1758
  }) {
1759
1759
  const {
1760
1760
  cornerstoneViewportService
1761
- } = serviceManager.services;
1761
+ } = servicesManager.services;
1762
1762
  const [ambient, setAmbient] = (0,react.useState)(null);
1763
1763
  const [diffuse, setDiffuse] = (0,react.useState)(null);
1764
1764
  const [specular, setSpecular] = (0,react.useState)(null);
@@ -1876,11 +1876,11 @@ function VolumeLighting({
1876
1876
  function VolumeShade({
1877
1877
  commandsManager,
1878
1878
  viewportId,
1879
- serviceManager
1879
+ servicesManager
1880
1880
  }) {
1881
1881
  const {
1882
1882
  cornerstoneViewportService
1883
- } = serviceManager.services;
1883
+ } = servicesManager.services;
1884
1884
  const [shade, setShade] = (0,react.useState)(true);
1885
1885
  const [key, setKey] = (0,react.useState)(0);
1886
1886
  const onShadeChange = (0,react.useCallback)(checked => {
@@ -1921,17 +1921,17 @@ function VolumeRenderingOptions({
1921
1921
  viewportId,
1922
1922
  commandsManager,
1923
1923
  volumeRenderingQualityRange,
1924
- serviceManager
1924
+ servicesManager
1925
1925
  }) {
1926
1926
  return /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.ItemPanel */.se.cV, null, /*#__PURE__*/react.createElement(VolumeRenderingQuality, {
1927
1927
  viewportId: viewportId,
1928
1928
  commandsManager: commandsManager,
1929
- serviceManager: serviceManager,
1929
+ servicesManager: servicesManager,
1930
1930
  volumeRenderingQualityRange: volumeRenderingQualityRange
1931
1931
  }), /*#__PURE__*/react.createElement(VolumeShift, {
1932
1932
  viewportId: viewportId,
1933
1933
  commandsManager: commandsManager,
1934
- serviceManager: serviceManager
1934
+ servicesManager: servicesManager
1935
1935
  }), /*#__PURE__*/react.createElement("div", {
1936
1936
  className: "all-in-one-menu-item mt-2 flex !h-[20px] w-full justify-start"
1937
1937
  }, /*#__PURE__*/react.createElement("div", {
@@ -1942,12 +1942,12 @@ function VolumeRenderingOptions({
1942
1942
  className: "all-in-one-menu-item flex w-full justify-center"
1943
1943
  }, /*#__PURE__*/react.createElement(VolumeShade, {
1944
1944
  commandsManager: commandsManager,
1945
- serviceManager: serviceManager,
1945
+ servicesManager: servicesManager,
1946
1946
  viewportId: viewportId
1947
1947
  })), /*#__PURE__*/react.createElement(VolumeLighting, {
1948
1948
  viewportId: viewportId,
1949
1949
  commandsManager: commandsManager,
1950
- serviceManager: serviceManager
1950
+ servicesManager: servicesManager
1951
1951
  }));
1952
1952
  }
1953
1953
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/WindowLevelActionMenu/WindowLevelActionMenu.tsx
@@ -1970,7 +1970,7 @@ function WindowLevelActionMenu({
1970
1970
  verticalDirection,
1971
1971
  horizontalDirection,
1972
1972
  commandsManager,
1973
- serviceManager,
1973
+ servicesManager,
1974
1974
  colorbarProperties,
1975
1975
  displaySets,
1976
1976
  volumeRenderingPresets,
@@ -1986,7 +1986,7 @@ function WindowLevelActionMenu({
1986
1986
  const {
1987
1987
  colorbarService,
1988
1988
  cornerstoneViewportService
1989
- } = serviceManager.services;
1989
+ } = servicesManager.services;
1990
1990
  const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);
1991
1991
  const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
1992
1992
  const backgroundColor = viewportInfo.getViewportOptions().background;
@@ -2003,7 +2003,7 @@ function WindowLevelActionMenu({
2003
2003
  const [menuKey, setMenuKey] = (0,react.useState)(0);
2004
2004
  const [is3DVolume, setIs3DVolume] = (0,react.useState)(false);
2005
2005
  const onSetColorbar = (0,react.useCallback)(() => {
2006
- setViewportColorbar(viewportId, displaySets, commandsManager, serviceManager, {
2006
+ setViewportColorbar(viewportId, displaySets, commandsManager, servicesManager, {
2007
2007
  colormaps,
2008
2008
  ticks: {
2009
2009
  position: colorbarTickPosition
@@ -2056,7 +2056,7 @@ function WindowLevelActionMenu({
2056
2056
  viewportId: viewportId,
2057
2057
  displaySets: displaySets.filter(ds => !nonImageModalities.includes(ds.Modality)),
2058
2058
  commandsManager: commandsManager,
2059
- serviceManager: serviceManager,
2059
+ servicesManager: servicesManager,
2060
2060
  colorbarProperties: colorbarProperties
2061
2061
  }), colormaps && !is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.se.g8, {
2062
2062
  key: "colorLUTPresets",
@@ -2067,7 +2067,7 @@ function WindowLevelActionMenu({
2067
2067
  viewportId: viewportId,
2068
2068
  displaySets: displaySets.filter(ds => !nonImageModalities.includes(ds.Modality)),
2069
2069
  commandsManager: commandsManager,
2070
- serviceManager: serviceManager
2070
+ servicesManager: servicesManager
2071
2071
  })), presets && presets.length > 0 && !is3DVolume && /*#__PURE__*/react.createElement(ui_src/* AllInOneMenu.SubMenu */.se.g8, {
2072
2072
  key: "windowLevelPresets",
2073
2073
  itemLabel: t('Modality Window Presets'),
@@ -2077,7 +2077,7 @@ function WindowLevelActionMenu({
2077
2077
  commandsManager: commandsManager,
2078
2078
  presets: presets
2079
2079
  })), volumeRenderingPresets && is3DVolume && /*#__PURE__*/react.createElement(VolumeRenderingPresets, {
2080
- serviceManager: serviceManager,
2080
+ servicesManager: servicesManager,
2081
2081
  viewportId: viewportId,
2082
2082
  commandsManager: commandsManager,
2083
2083
  volumeRenderingPresets: volumeRenderingPresets
@@ -2087,7 +2087,7 @@ function WindowLevelActionMenu({
2087
2087
  viewportId: viewportId,
2088
2088
  commandsManager: commandsManager,
2089
2089
  volumeRenderingQualityRange: volumeRenderingQualityRange,
2090
- serviceManager: serviceManager
2090
+ servicesManager: servicesManager
2091
2091
  }))));
2092
2092
  }
2093
2093
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/WindowLevelActionMenu/getWindowLevelActionMenu.tsx
@@ -2125,7 +2125,7 @@ function getWindowLevelActionMenu({
2125
2125
  verticalDirection: verticalDirection,
2126
2126
  horizontalDirection: horizontalDirection,
2127
2127
  commandsManager: commandsManager,
2128
- serviceManager: servicesManager,
2128
+ servicesManager: servicesManager,
2129
2129
  colorbarProperties: colorbarProperties,
2130
2130
  displaySets: displaySets,
2131
2131
  volumeRenderingPresets: volumeRenderingPresets,
@@ -2213,11 +2213,13 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
2213
2213
  displaySetOptions,
2214
2214
  servicesManager,
2215
2215
  onElementEnabled,
2216
+ // eslint-disable-next-line react/prop-types
2216
2217
  onElementDisabled,
2217
2218
  isJumpToMeasurementDisabled,
2218
2219
  // Note: you SHOULD NOT use the initialImageIdOrIndex for manipulation
2219
2220
  // of the imageData in the OHIFCornerstoneViewport. This prop is used
2220
2221
  // to set the initial state of the viewport's first image to render
2222
+ // eslint-disable-next-line react/prop-types
2221
2223
  initialImageIndex,
2222
2224
  // if the viewport is part of a hanging protocol layout
2223
2225
  // we should not really rely on the old synchronizers and
@@ -2225,6 +2227,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
2225
2227
  // is not part of the hanging protocol layout. HPs should
2226
2228
  // define their own synchronizers. Since the synchronizers are
2227
2229
  // viewportId dependent and
2230
+ // eslint-disable-next-line react/prop-types
2228
2231
  isHangingProtocolLayout
2229
2232
  } = props;
2230
2233
  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
@@ -101,6 +101,11 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage
101
101
  toolName: toolNames.SegmentationDisplay
102
102
  }, {
103
103
  toolName: toolNames.CalibrationLine
104
+ }, {
105
+ toolName: toolNames.PlanarFreehandContourSegmentation,
106
+ configuration: {
107
+ displayOnePointAsCrosshairs: true
108
+ }
104
109
  }, {
105
110
  toolName: toolNames.UltrasoundDirectional
106
111
  }, {
@@ -168,6 +173,11 @@ function initSRToolGroup(extensionManager, toolGroupService) {
168
173
  toolName: SRToolNames.SRPlanarFreehandROI
169
174
  }, {
170
175
  toolName: SRToolNames.SRRectangleROI
176
+ }, {
177
+ toolName: SRToolNames.SRPlanarFreehandContourSegmentation,
178
+ configuration: {
179
+ displayOnePointAsCrosshairs: true
180
+ }
171
181
  }],
172
182
  enabled: [{
173
183
  toolName: SRToolNames.DICOMSRDisplay,
@@ -251,11 +261,21 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager, m
251
261
  toolName: toolNames.PlanarFreehandROI
252
262
  }, {
253
263
  toolName: toolNames.SegmentationDisplay
264
+ }, {
265
+ toolName: toolNames.PlanarFreehandContourSegmentation,
266
+ configuration: {
267
+ displayOnePointAsCrosshairs: true
268
+ }
254
269
  }],
255
270
  disabled: [{
256
271
  toolName: toolNames.Crosshairs,
257
272
  configuration: {
258
- viewportIndicators: false,
273
+ viewportIndicators: true,
274
+ viewportIndicatorsConfig: {
275
+ circleRadius: 5,
276
+ xOffset: 0.95,
277
+ yOffset: 0.05
278
+ },
259
279
  disableOnPassive: true,
260
280
  autoPan: {
261
281
  enabled: false,
@@ -646,7 +666,7 @@ const moreTools = [{
646
666
  }
647
667
  }];
648
668
  /* harmony default export */ const src_moreTools = (moreTools);
649
- ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/index.js
669
+ ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/index.ts
650
670
 
651
671
 
652
672
 
@@ -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
  }, {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[669],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[721],{
3
3
 
4
- /***/ 61669:
4
+ /***/ 14721:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -25,8 +25,8 @@ const id = package_namespaceObject.UU;
25
25
  const SOPClassHandlerName = 'dicom-sr';
26
26
  const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
27
27
 
28
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
29
- var src = __webpack_require__(55411);
28
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
29
+ var src = __webpack_require__(8633);
30
30
  // EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
31
31
  var esm = __webpack_require__(44753);
32
32
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
@@ -1212,7 +1212,7 @@ function getFilteredCornerstoneToolState(measurementData, additionalFindingTypes
1212
1212
  return filteredToolState;
1213
1213
  }
1214
1214
  /* harmony default export */ const utils_getFilteredCornerstoneToolState = (getFilteredCornerstoneToolState);
1215
- ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/commandsModule.js
1215
+ ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/commandsModule.ts
1216
1216
 
1217
1217
 
1218
1218
 
@@ -1272,7 +1272,7 @@ const commandsModule = props => {
1272
1272
  const reportBlob = dcmjs_es/* default.data */.Ay.data.datasetToBlob(srDataset);
1273
1273
 
1274
1274
  //Create a URL for the binary.
1275
- var objectUrl = URL.createObjectURL(reportBlob);
1275
+ const objectUrl = URL.createObjectURL(reportBlob);
1276
1276
  window.location.assign(objectUrl);
1277
1277
  },
1278
1278
  /**
@@ -1400,8 +1400,8 @@ function init({
1400
1400
  global: {}
1401
1401
  });
1402
1402
  }
1403
- // EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.js + 1 modules
1404
- var hydrateStructuredReport = __webpack_require__(77089);
1403
+ // EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.ts + 1 modules
1404
+ var hydrateStructuredReport = __webpack_require__(31808);
1405
1405
  // EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/createReferencedImageDisplaySet.ts
1406
1406
  var createReferencedImageDisplaySet = __webpack_require__(92643);
1407
1407
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/index.tsx
@@ -1483,7 +1483,7 @@ const dicomSRExtension = {
1483
1483
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1484
1484
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
1485
1485
  /* harmony export */ });
1486
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55411);
1486
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8633);
1487
1487
 
1488
1488
  const ImageSet = _ohif_core__WEBPACK_IMPORTED_MODULE_0__.classes.ImageSet;
1489
1489
  const findInstance = (measurement, displaySetService) => {
@@ -1571,67 +1571,7 @@ const createReferencedImageDisplaySet = (displaySetService, displaySet) => {
1571
1571
 
1572
1572
  /***/ }),
1573
1573
 
1574
- /***/ 74334:
1575
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1576
-
1577
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1578
- /* harmony export */ eF: () => (/* binding */ getTrackingUniqueIdentifiersForElement),
1579
- /* harmony export */ m1: () => (/* binding */ setTrackingUniqueIdentifiersForElement)
1580
- /* harmony export */ });
1581
- /* unused harmony export setActiveTrackingUniqueIdentifierForElement */
1582
- /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
1583
-
1584
- const state = {
1585
- TrackingUniqueIdentifier: null,
1586
- trackingIdentifiersByViewportId: {}
1587
- };
1588
-
1589
- /**
1590
- * This file is being used to store the per-viewport state of the SR tools,
1591
- * Since, all the toolStates are added to the cornerstoneTools, when displaying the SRTools,
1592
- * if there are two viewports rendering the same imageId, we don't want to show
1593
- * the same SR annotation twice on irrelevant viewport, hence, we are storing the state
1594
- * of the SR tools in state here, so that we can filter them later.
1595
- */
1596
-
1597
- function setTrackingUniqueIdentifiersForElement(element, trackingUniqueIdentifiers, activeIndex = 0) {
1598
- const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
1599
- const {
1600
- viewport
1601
- } = enabledElement;
1602
- state.trackingIdentifiersByViewportId[viewport.id] = {
1603
- trackingUniqueIdentifiers,
1604
- activeIndex
1605
- };
1606
- }
1607
- function setActiveTrackingUniqueIdentifierForElement(element, TrackingUniqueIdentifier) {
1608
- const enabledElement = getEnabledElement(element);
1609
- const {
1610
- viewport
1611
- } = enabledElement;
1612
- const trackingIdentifiersForElement = state.trackingIdentifiersByViewportId[viewport.id];
1613
- if (trackingIdentifiersForElement) {
1614
- const activeIndex = trackingIdentifiersForElement.trackingUniqueIdentifiers.findIndex(tuid => tuid === TrackingUniqueIdentifier);
1615
- trackingIdentifiersForElement.activeIndex = activeIndex;
1616
- }
1617
- }
1618
- function getTrackingUniqueIdentifiersForElement(element) {
1619
- const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
1620
- const {
1621
- viewport
1622
- } = enabledElement;
1623
- if (state.trackingIdentifiersByViewportId[viewport.id]) {
1624
- return state.trackingIdentifiersByViewportId[viewport.id];
1625
- }
1626
- return {
1627
- trackingUniqueIdentifiers: []
1628
- };
1629
- }
1630
-
1631
-
1632
- /***/ }),
1633
-
1634
- /***/ 77089:
1574
+ /***/ 31808:
1635
1575
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1636
1576
 
1637
1577
 
@@ -1642,8 +1582,8 @@ __webpack_require__.d(__webpack_exports__, {
1642
1582
 
1643
1583
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
1644
1584
  var esm = __webpack_require__(92136);
1645
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
1646
- var src = __webpack_require__(55411);
1585
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
1586
+ var src = __webpack_require__(8633);
1647
1587
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/getLabelFromDCMJSImportedToolData.js
1648
1588
  /**
1649
1589
  * Extracts the label from the toolData imported from dcmjs. We need to do this
@@ -1670,7 +1610,7 @@ function getLabelFromDCMJSImportedToolData(toolData) {
1670
1610
  var adapters_es = __webpack_require__(83342);
1671
1611
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
1672
1612
  var dist_esm = __webpack_require__(39371);
1673
- ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.js
1613
+ ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/hydrateStructuredReport.ts
1674
1614
 
1675
1615
 
1676
1616
 
@@ -1912,6 +1852,66 @@ const codeMeaningEquals = codeMeaningName => {
1912
1852
  };
1913
1853
  };
1914
1854
 
1855
+ /***/ }),
1856
+
1857
+ /***/ 74334:
1858
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1859
+
1860
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1861
+ /* harmony export */ eF: () => (/* binding */ getTrackingUniqueIdentifiersForElement),
1862
+ /* harmony export */ m1: () => (/* binding */ setTrackingUniqueIdentifiersForElement)
1863
+ /* harmony export */ });
1864
+ /* unused harmony export setActiveTrackingUniqueIdentifierForElement */
1865
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
1866
+
1867
+ const state = {
1868
+ TrackingUniqueIdentifier: null,
1869
+ trackingIdentifiersByViewportId: {}
1870
+ };
1871
+
1872
+ /**
1873
+ * This file is being used to store the per-viewport state of the SR tools,
1874
+ * Since, all the toolStates are added to the cornerstoneTools, when displaying the SRTools,
1875
+ * if there are two viewports rendering the same imageId, we don't want to show
1876
+ * the same SR annotation twice on irrelevant viewport, hence, we are storing the state
1877
+ * of the SR tools in state here, so that we can filter them later.
1878
+ */
1879
+
1880
+ function setTrackingUniqueIdentifiersForElement(element, trackingUniqueIdentifiers, activeIndex = 0) {
1881
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
1882
+ const {
1883
+ viewport
1884
+ } = enabledElement;
1885
+ state.trackingIdentifiersByViewportId[viewport.id] = {
1886
+ trackingUniqueIdentifiers,
1887
+ activeIndex
1888
+ };
1889
+ }
1890
+ function setActiveTrackingUniqueIdentifierForElement(element, TrackingUniqueIdentifier) {
1891
+ const enabledElement = getEnabledElement(element);
1892
+ const {
1893
+ viewport
1894
+ } = enabledElement;
1895
+ const trackingIdentifiersForElement = state.trackingIdentifiersByViewportId[viewport.id];
1896
+ if (trackingIdentifiersForElement) {
1897
+ const activeIndex = trackingIdentifiersForElement.trackingUniqueIdentifiers.findIndex(tuid => tuid === TrackingUniqueIdentifier);
1898
+ trackingIdentifiersForElement.activeIndex = activeIndex;
1899
+ }
1900
+ }
1901
+ function getTrackingUniqueIdentifiersForElement(element) {
1902
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
1903
+ const {
1904
+ viewport
1905
+ } = enabledElement;
1906
+ if (state.trackingIdentifiersByViewportId[viewport.id]) {
1907
+ return state.trackingIdentifiersByViewportId[viewport.id];
1908
+ }
1909
+ return {
1910
+ trackingUniqueIdentifiers: []
1911
+ };
1912
+ }
1913
+
1914
+
1915
1915
  /***/ })
1916
1916
 
1917
1917
  }]);