@ohif/app 3.9.0-beta.76 → 3.9.0-beta.78

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 (44) hide show
  1. package/dist/{1169.bundle.a3d3d310f1d8d7e335bf.js → 1169.bundle.d32f38ab5aa329346850.js} +46 -106
  2. package/dist/{1202.bundle.1468f0e71fea0c593081.js → 1202.bundle.55f140afb05e1ad5512c.js} +503 -153
  3. package/dist/{2568.css → 1540.css} +1 -0
  4. package/dist/{1994.bundle.d347a831c1be751d0627.js → 1994.bundle.083fb36bc0648f2dbda6.js} +3 -3
  5. package/dist/{9824.bundle.e16a5ef35eedfa74b3be.js → 2119.bundle.3446480f91f1200cd45c.js} +4 -4
  6. package/dist/{9824.css → 2119.css} +1 -0
  7. package/dist/{2650.bundle.1f7d90198b9e361dfb9c.js → 2650.bundle.feb3b241748314884ae4.js} +57 -35
  8. package/dist/{3117.bundle.c83d0f403d17104a7c4c.js → 3117.bundle.463d5fa4671a93939d36.js} +8 -7
  9. package/dist/{4210.bundle.fb376c67d110f8177eea.js → 4210.bundle.38eb5056ac41a0b04d21.js} +2 -2
  10. package/dist/{4842.bundle.619edd60983634d9f8dd.js → 4842.bundle.0427b8aa1b52aa050ed2.js} +12 -8
  11. package/dist/{5888.bundle.91227a2efe569869fdd0.js → 5888.bundle.ebca6329037cf353968f.js} +14 -7
  12. package/dist/{2417.bundle.4a0334c8c4047005979e.js → 5898.bundle.be696e0b355efc1c7f05.js} +1947 -1
  13. package/dist/{2281.bundle.216a0d86eaed7f4870ae.js → 655.bundle.28f107410332c62993a3.js} +170 -66
  14. package/dist/{6591.bundle.ace15b11ac7df3edf1bb.js → 6591.bundle.92a28f98c3f45ac3b3f1.js} +15 -1
  15. package/dist/{7502.bundle.abf1ade64f101ba01596.js → 7502.bundle.550aee57ecd221eab7c1.js} +4 -6
  16. package/dist/{3424.bundle.1b6101d721148c04242b.js → 79.bundle.b03daeeef3e6faf9dca3.js} +5 -47
  17. package/dist/{8993.bundle.256bb3c84d2564a5f3cf.js → 8993.bundle.23cd5f8560800a97d798.js} +39 -32
  18. package/dist/{2065.bundle.5d8f4c26b1fa393e26a4.js → 8999.bundle.e23beb310b14ca9ded76.js} +13 -133
  19. package/dist/{9579.bundle.7212d7a737a71bb61502.js → 9579.bundle.f9c9be0c5ab6cddbde3d.js} +8 -7
  20. package/dist/{5516.bundle.074fac92088b103bf0e3.js → 962.bundle.04afab064299df16f869.js} +408 -179
  21. package/dist/app-config.js +1 -0
  22. package/dist/{app.bundle.016cbb7783086e131b26.js → app.bundle.53faac5b01b67714fad2.js} +658 -352
  23. package/dist/index.html +1 -1
  24. package/dist/{polySeg.bundle.40b9a8c9006bb15691ee.js → polySeg.bundle.0a70e65fe89169ec7508.js} +1 -1
  25. package/dist/{suv-peak-worker.bundle.a70e70b9ef87c18b896c.js → suv-peak-worker.bundle.54d68bc1808ad3d77994.js} +1 -1
  26. package/dist/sw.js +1 -1
  27. package/package.json +18 -18
  28. package/dist/7604.bundle.42d3f08efb3a9eae4581.js +0 -1950
  29. package/dist/{1498.bundle.d8f5281952d09c57ef87.js → 1498.bundle.a2d05ac1f27d0c2d2c9f.js} +0 -0
  30. package/dist/{153.bundle.35f9f8c81db7a40221cf.js → 153.bundle.3ba838ef3c08a266ae35.js} +0 -0
  31. package/dist/{2791.bundle.29069810b8cf85d6aa0f.js → 2791.bundle.cfa27e4347069ab301b7.js} +0 -0
  32. package/dist/{3497.bundle.a04a2444975bf50fddf8.js → 3497.bundle.512610422a2862584c55.js} +0 -0
  33. package/dist/{3962.bundle.9a463bda1035e46ebbba.js → 3962.bundle.31bfadcde7f5a2dd8932.js} +0 -0
  34. package/dist/{4353.bundle.ac8577aa909c2c56db16.js → 4353.bundle.c13a0c72c607850ea3c0.js} +0 -0
  35. package/dist/{4978.bundle.19b43e91a7fe302599c6.js → 4978.bundle.655344cfd52d9f0641e5.js} +0 -0
  36. package/dist/{5793.bundle.eed3fe9019c31999efff.js → 5793.bundle.d1b4e887564bbb98752d.js} +0 -0
  37. package/dist/{6904.bundle.27abf08c0f2e4fe5e06d.js → 6904.bundle.da0d83fcd48a48cfaac1.js} +0 -0
  38. package/dist/{7246.bundle.11a6fa77c63c0df329bc.js → 7246.bundle.f1cbdd5ec9387bb6f8fe.js} +0 -0
  39. package/dist/{7360.bundle.114b1294460b2d9bfeb9.js → 7360.bundle.d0bdb43af1494bccc433.js} +0 -0
  40. package/dist/{7376.bundle.e9fea4789985d4409171.js → 7376.bundle.d6b445de2d468ab2e8b3.js} +0 -0
  41. package/dist/{3424.css → 79.css} +1 -1
  42. /package/dist/{7913.bundle.dc45c449f89985c7dd7c.js → 7913.bundle.353baac2e2a5b4bb330d.js} +0 -0
  43. /package/dist/{818.bundle.b64fae7e982e16a82ca2.js → 818.bundle.b6027359846cc90e32ff.js} +0 -0
  44. /package/dist/{8944.bundle.a3cecebcc7b2ca3c7259.js → 8944.bundle.29926bb653a467c7e7d8.js} +0 -0
@@ -79,73 +79,44 @@ function CornerstoneImageScrollbar({
79
79
  if (!viewport) {
80
80
  return;
81
81
  }
82
- if (viewportData.viewportType === dist_esm.Enums.ViewportType.STACK) {
83
- const imageIndex = viewport.getCurrentImageIdIndex();
84
- setImageSliceData({
85
- imageIndex: imageIndex,
86
- numberOfSlices: viewportData.data[0].imageIds.length
87
- });
88
- return;
89
- }
90
- if (viewportData.viewportType === dist_esm.Enums.ViewportType.ORTHOGRAPHIC) {
91
- const sliceData = dist_esm.utilities.getImageSliceDataForVolumeViewport(viewport);
92
- if (!sliceData) {
93
- return;
94
- }
95
- const {
96
- imageIndex,
97
- numberOfSlices
98
- } = sliceData;
99
- setImageSliceData({
100
- imageIndex,
101
- numberOfSlices
102
- });
103
- }
82
+ const imageIndex = viewport.getCurrentImageIdIndex();
83
+ const numberOfSlices = viewport.getNumberOfSlices();
84
+ setImageSliceData({
85
+ imageIndex: imageIndex,
86
+ numberOfSlices
87
+ });
104
88
  }, [viewportId, viewportData]);
105
89
  (0,react.useEffect)(() => {
106
- if (viewportData?.viewportType !== dist_esm.Enums.ViewportType.STACK) {
107
- return;
108
- }
109
- const updateStackIndex = event => {
110
- const {
111
- newImageIdIndex
112
- } = event.detail;
113
- // find the index of imageId in the imageIds
114
- setImageSliceData({
115
- imageIndex: newImageIdIndex,
116
- numberOfSlices: viewportData.data[0].imageIds.length
117
- });
118
- };
119
- element.addEventListener(dist_esm.Enums.Events.STACK_VIEWPORT_SCROLL, updateStackIndex);
120
- return () => {
121
- element.removeEventListener(dist_esm.Enums.Events.STACK_VIEWPORT_SCROLL, updateStackIndex);
122
- };
123
- }, [viewportData, element]);
124
- (0,react.useEffect)(() => {
125
- if (viewportData?.viewportType !== dist_esm.Enums.ViewportType.ORTHOGRAPHIC) {
90
+ if (!viewportData) {
126
91
  return;
127
92
  }
128
- const updateVolumeIndex = event => {
93
+ const {
94
+ viewportType
95
+ } = viewportData;
96
+ const eventId = viewportType === dist_esm.Enums.ViewportType.STACK && dist_esm.Enums.Events.STACK_VIEWPORT_SCROLL || viewportType === dist_esm.Enums.ViewportType.ORTHOGRAPHIC && dist_esm.Enums.Events.VOLUME_NEW_IMAGE || dist_esm.Enums.Events.IMAGE_RENDERED;
97
+ const updateIndex = event => {
98
+ const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
129
99
  const {
130
100
  imageIndex,
131
- numberOfSlices
101
+ newImageIdIndex = imageIndex
132
102
  } = event.detail;
103
+ const numberOfSlices = viewport.getNumberOfSlices();
133
104
  // find the index of imageId in the imageIds
134
105
  setImageSliceData({
135
- imageIndex,
106
+ imageIndex: newImageIdIndex,
136
107
  numberOfSlices
137
108
  });
138
109
  };
139
- element.addEventListener(dist_esm.Enums.Events.VOLUME_NEW_IMAGE, updateVolumeIndex);
110
+ element.addEventListener(eventId, updateIndex);
140
111
  return () => {
141
- element.removeEventListener(dist_esm.Enums.Events.VOLUME_NEW_IMAGE, updateVolumeIndex);
112
+ element.removeEventListener(eventId, updateIndex);
142
113
  };
143
114
  }, [viewportData, element]);
144
115
  return /*#__PURE__*/react.createElement(ui_src/* ImageScrollbar */.Ln, {
145
116
  onChange: evt => onImageScrollbarChange(evt, viewportId),
146
117
  max: imageSliceData.numberOfSlices ? imageSliceData.numberOfSlices - 1 : 0,
147
118
  height: scrollbarHeight,
148
- value: imageSliceData.imageIndex
119
+ value: imageSliceData.imageIndex || 0
149
120
  });
150
121
  }
151
122
  CornerstoneImageScrollbar.propTypes = {
@@ -472,8 +443,6 @@ function CornerstoneOverlays(props) {
472
443
  }));
473
444
  }
474
445
  /* harmony default export */ const Overlays_CornerstoneOverlays = (CornerstoneOverlays);
475
- // EXTERNAL MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/utils/getSOPInstanceAttributes.js
476
- var getSOPInstanceAttributes = __webpack_require__(90927);
477
446
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
478
447
  var streaming_image_volume_loader_dist_esm = __webpack_require__(15793);
479
448
  // EXTERNAL MODULE: ./state/index.js + 1 modules
@@ -1653,7 +1622,6 @@ function getWindowLevelActionMenu({
1653
1622
 
1654
1623
 
1655
1624
 
1656
-
1657
1625
  const STACK = 'stack';
1658
1626
 
1659
1627
  /**
@@ -1718,6 +1686,7 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
1718
1686
  viewportOptions,
1719
1687
  displaySetOptions,
1720
1688
  servicesManager,
1689
+ commandsManager,
1721
1690
  onElementEnabled,
1722
1691
  // eslint-disable-next-line react/prop-types
1723
1692
  onElementDisabled,
@@ -1755,14 +1724,12 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
1755
1724
  const elementRef = (0,react.useRef)();
1756
1725
  const [appConfig] = (0,state_0/* useAppConfig */.M)();
1757
1726
  const {
1758
- measurementService,
1759
1727
  displaySetService,
1760
1728
  toolbarService,
1761
1729
  toolGroupService,
1762
1730
  syncGroupService,
1763
1731
  cornerstoneViewportService,
1764
1732
  cornerstoneCacheService,
1765
- viewportGridService,
1766
1733
  stateSyncService,
1767
1734
  viewportActionCornersService
1768
1735
  } = servicesManager.services;
@@ -1929,8 +1896,8 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
1929
1896
  if (isJumpToMeasurementDisabled) {
1930
1897
  return;
1931
1898
  }
1932
- const unsubscribeFromJumpToMeasurementEvents = _subscribeToJumpToMeasurementEvents(measurementService, displaySetService, elementRef, viewportId, displaySets, viewportGridService, cornerstoneViewportService);
1933
- _checkForCachedJumpToMeasurementEvents(measurementService, displaySetService, elementRef, viewportId, displaySets, viewportGridService, cornerstoneViewportService);
1899
+ const unsubscribeFromJumpToMeasurementEvents = _subscribeToJumpToMeasurementEvents(elementRef, viewportId, servicesManager);
1900
+ _checkForCachedJumpToMeasurementEvents(elementRef, viewportId, displaySets, servicesManager);
1934
1901
  return () => {
1935
1902
  unsubscribeFromJumpToMeasurementEvents();
1936
1903
  };
@@ -2005,7 +1972,11 @@ const OHIFCornerstoneViewport = /*#__PURE__*/react.memo(props => {
2005
1972
  viewportId: viewportId
2006
1973
  }));
2007
1974
  }, areEqual);
2008
- function _subscribeToJumpToMeasurementEvents(measurementService, displaySetService, elementRef, viewportId, displaySets, viewportGridService, cornerstoneViewportService) {
1975
+ function _subscribeToJumpToMeasurementEvents(elementRef, viewportId, servicesManager) {
1976
+ const {
1977
+ measurementService,
1978
+ cornerstoneViewportService
1979
+ } = servicesManager.services;
2009
1980
  const {
2010
1981
  unsubscribe
2011
1982
  } = measurementService.subscribe(src.MeasurementService.EVENTS.JUMP_TO_MEASUREMENT_VIEWPORT, props => {
@@ -2020,20 +1991,22 @@ function _subscribeToJumpToMeasurementEvents(measurementService, displaySetServi
2020
1991
  }
2021
1992
  if (cacheJumpToMeasurementEvent.cornerstoneViewport === undefined) {
2022
1993
  // Decide on which viewport should handle this
2023
- cacheJumpToMeasurementEvent.cornerstoneViewport = cornerstoneViewportService.getViewportIdToJump(jumpId, measurement.displaySetInstanceUID, {
1994
+ cacheJumpToMeasurementEvent.cornerstoneViewport = cornerstoneViewportService.getViewportIdToJump(jumpId, {
1995
+ displaySetInstanceUID: measurement.displaySetInstanceUID,
1996
+ ...measurement.metadata,
2024
1997
  referencedImageId: measurement.referencedImageId || measurement.metadata?.referencedImageId
2025
1998
  });
2026
1999
  }
2027
2000
  if (cacheJumpToMeasurementEvent.cornerstoneViewport !== viewportId) {
2028
2001
  return;
2029
2002
  }
2030
- _jumpToMeasurement(measurement, elementRef, viewportId, measurementService, displaySetService, viewportGridService, cornerstoneViewportService);
2003
+ _jumpToMeasurement(measurement, elementRef, viewportId, servicesManager);
2031
2004
  });
2032
2005
  return unsubscribe;
2033
2006
  }
2034
2007
 
2035
2008
  // Check if there is a queued jumpToMeasurement event
2036
- function _checkForCachedJumpToMeasurementEvents(measurementService, displaySetService, elementRef, viewportId, displaySets, viewportGridService, cornerstoneViewportService) {
2009
+ function _checkForCachedJumpToMeasurementEvents(elementRef, viewportId, displaySets, servicesManager) {
2037
2010
  if (!cacheJumpToMeasurementEvent) {
2038
2011
  return;
2039
2012
  }
@@ -2052,22 +2025,15 @@ function _checkForCachedJumpToMeasurementEvents(measurementService, displaySetSe
2052
2025
  } = cacheJumpToMeasurementEvent;
2053
2026
  if (measurement && elementRef) {
2054
2027
  if (displaysUIDs.includes(measurement?.displaySetInstanceUID)) {
2055
- _jumpToMeasurement(measurement, elementRef, viewportId, measurementService, displaySetService, viewportGridService, cornerstoneViewportService);
2028
+ _jumpToMeasurement(measurement, elementRef, viewportId, servicesManager);
2056
2029
  }
2057
2030
  }
2058
2031
  }
2059
- function _jumpToMeasurement(measurement, targetElementRef, viewportId, measurementService, displaySetService, viewportGridService, cornerstoneViewportService) {
2060
- const targetElement = targetElementRef.current;
2032
+ function _jumpToMeasurement(measurement, targetElementRef, viewportId, servicesManager) {
2061
2033
  const {
2062
- displaySetInstanceUID,
2063
- SOPInstanceUID,
2064
- frameNumber
2065
- } = measurement;
2066
- if (!SOPInstanceUID) {
2067
- console.warn('cannot jump in a non-acquisition plane measurements yet');
2068
- return;
2069
- }
2070
- const referencedDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
2034
+ viewportGridService
2035
+ } = servicesManager.services;
2036
+ const targetElement = targetElementRef.current;
2071
2037
 
2072
2038
  // Todo: setCornerstoneMeasurementActive should be handled by the toolGroupManager
2073
2039
  // to set it properly
@@ -2078,43 +2044,17 @@ function _jumpToMeasurement(measurement, targetElementRef, viewportId, measureme
2078
2044
  if (enabledElement) {
2079
2045
  // See how the jumpToSlice() of Cornerstone3D deals with imageIdx param.
2080
2046
  const viewport = enabledElement.viewport;
2081
- let imageIdIndex = 0;
2082
- let viewportCameraDirectionMatch = true;
2083
- if (viewport instanceof dist_esm.StackViewport) {
2084
- const imageIds = viewport.getImageIds();
2085
- imageIdIndex = imageIds.findIndex(imageId => {
2086
- const {
2087
- SOPInstanceUID: aSOPInstanceUID,
2088
- frameNumber: aFrameNumber
2089
- } = (0,getSOPInstanceAttributes/* default */.Z)(imageId);
2090
- return aSOPInstanceUID === SOPInstanceUID && (!frameNumber || frameNumber === aFrameNumber);
2091
- });
2092
- } else {
2093
- // for volume viewport we can't rely on the imageIdIndex since it can be
2094
- // a reconstructed view that doesn't match the original slice numbers etc.
2095
- const {
2096
- viewPlaneNormal: measurementViewPlane
2097
- } = measurement.metadata;
2098
- imageIdIndex = referencedDisplaySet.images.findIndex(i => i.SOPInstanceUID === SOPInstanceUID);
2099
-
2100
- // the index is reversed in the volume viewport
2101
- // imageIdIndex = referencedDisplaySet.images.length - 1 - imageIdIndex;
2102
-
2103
- const {
2104
- viewPlaneNormal: viewportViewPlane
2105
- } = viewport.getCamera();
2106
-
2107
- // should compare abs for both planes since the direction can be flipped
2108
- if (measurementViewPlane && !dist_esm.utilities.isEqual(measurementViewPlane.map(Math.abs), viewportViewPlane.map(Math.abs))) {
2109
- viewportCameraDirectionMatch = false;
2110
- }
2111
- }
2112
- if (!viewportCameraDirectionMatch || imageIdIndex === -1) {
2047
+ const {
2048
+ metadata
2049
+ } = measurement;
2050
+ if (!viewport.isReferenceViewable(metadata, {
2051
+ withNavigation: true,
2052
+ withOrientation: true
2053
+ })) {
2054
+ console.log("Reference isn't viewable, postponing until updated");
2113
2055
  return;
2114
2056
  }
2115
- esm.utilities.jumpToSlice(targetElement, {
2116
- imageIndex: imageIdIndex
2117
- });
2057
+ viewport.setViewReference(metadata);
2118
2058
  esm.annotation.selection.setAnnotationSelected(measurement.uid);
2119
2059
  // Jump to measurement consumed, remove.
2120
2060
  cacheJumpToMeasurementEvent?.consume?.();