|
@@ -46,6 +46,7 @@ import * as cornerstone from '@cornerstonejs/core';
|
|
|
import * as cornerstoneTools from '@cornerstonejs/tools';
|
|
|
import { SystemMode } from '@/states/systemModeSlice';
|
|
|
import * as cornerstoneDICOMImageLoader from '@cornerstonejs/dicom-image-loader';
|
|
|
+import { MeasurementToolManager } from '@/utils/measurementToolManager';
|
|
|
|
|
|
const renderingEngineId = 'myRenderingEngine';
|
|
|
const setup = () => {
|
|
@@ -398,15 +399,8 @@ const ViewerContainer: React.FC<ViewerContainerProps> = ({ imageUrls }) => {
|
|
|
|
|
|
case '清除测量':
|
|
|
if (selectedViewportIds.length > 0) {
|
|
|
- selectedViewportIds.forEach((viewportId) => {
|
|
|
- clearLengthMeasurements(viewportId);
|
|
|
- });
|
|
|
- } else {
|
|
|
- // 如果没有选中的 viewport,清除所有可见 viewport 的测量
|
|
|
- const visibleViewportCount = getVisibleViewportCount();
|
|
|
- for (let i = 0; i < visibleViewportCount; i++) {
|
|
|
- clearLengthMeasurements(`viewport-${i}`);
|
|
|
- }
|
|
|
+ MeasurementToolManager.clearLengthMeasurementsForViewports(selectedViewportIds);
|
|
|
+ MeasurementToolManager.clearAngleMeasurementsForViewports(selectedViewportIds);
|
|
|
}
|
|
|
console.log('Clearing Length Measurements from MeasurementPanel');
|
|
|
break;
|
|
@@ -424,20 +418,6 @@ const ViewerContainer: React.FC<ViewerContainerProps> = ({ imageUrls }) => {
|
|
|
);
|
|
|
}
|
|
|
});
|
|
|
- } else {
|
|
|
- // 如果没有选中的 viewport,停用所有可见 viewport 的测量工具
|
|
|
- const visibleViewportCount = getVisibleViewportCount();
|
|
|
- for (let i = 0; i < visibleViewportCount; i++) {
|
|
|
- const success = deactivateLengthMeasurement(`viewport-${i}`);
|
|
|
- if (success) {
|
|
|
- dispatch(
|
|
|
- setToolInactive({
|
|
|
- toolName: 'LengthTool',
|
|
|
- viewportId: `viewport-${i}`,
|
|
|
- })
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
console.log('Deactivating Length Measurement from MeasurementPanel');
|
|
|
break;
|
|
@@ -457,21 +437,7 @@ const ViewerContainer: React.FC<ViewerContainerProps> = ({ imageUrls }) => {
|
|
|
);
|
|
|
}
|
|
|
});
|
|
|
- } else {
|
|
|
- // 如果没有选中的 viewport,为所有可见的 viewport 激活
|
|
|
- const visibleViewportCount = getVisibleViewportCount();
|
|
|
- for (let i = 0; i < visibleViewportCount; i++) {
|
|
|
- const success = activateAngleMeasurement(`viewport-${i}`);
|
|
|
- if (success) {
|
|
|
- dispatch(
|
|
|
- setToolActive({
|
|
|
- toolName: 'AngleTool',
|
|
|
- viewportId: `viewport-${i}`,
|
|
|
- })
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
console.log('Activating Angle Measurement from MeasurementPanel');
|
|
|
break;
|
|
|
|