import * as cornerstoneTools from '@cornerstonejs/tools'; import TibialPlateauAngleTool from '@/components/measures/TibialPlateauAngleTool'; import DARAMeasurementTool from '@/components/measures/DARAMeasurementTool'; import HipDIMeasurementTool from '@/components/measures/HipDIMeasurementTool'; import HipNHAAngleMeasurementTool from '@/components/measures/HipNHAAngleMeasurementTool'; import VHSMeasurementTool from '@/components/measures/VHSMeasurementTool'; import TPLOMeasurementTool from '@/components/measures/TPLOMeasurementTool'; import TTAMeasurementTool from '@/components/measures/TTAMeasurementTool'; import CBLOMeasurementTool from '@/components/measures/CBLOMeasurementTool'; import HipCoverageMeasurementTool from '@/components/measures/HipCoverageMeasurementTool'; import HipDorsalCoverageTool from '@/components/measures/HipDorsalCoverageTool'; import CircleCenterMeasurementTool from '@/components/measures/CircleCenterMeasurementTool'; import MidlineMeasurementTool from '@/components/measures/MidlineMeasurementTool'; import FindMidpointMeasurementTool from '@/components/measures/FindMidpointMeasurementTool'; import VerticalTiltMeasurementTool from '@/components/measures/VerticalTiltMeasurementTool'; import HorizontalTiltMeasurementTool from '@/components/measures/HorizontalTiltMeasurementTool'; import PolygonLengthMeasurementTool from '@/components/measures/PolygonLengthMeasurementTool'; import DicomOverlayTool from '@/components/overlay/DicomOverlayTool'; import PolylineLengthMeasurementTool from '@/components/measures/PolylineLengthMeasurementTool'; import LineGrayscaleMeasurementTool from '@/components/measures/LineGrayscaleMeasurementTool'; import RectangleGrayscaleMeasurementTool from '@/components/measures/RectangleGrayscaleMeasurementTool'; import MaskTool from '@/components/tools/MaskTool'; const { MagnifyTool, PanTool, WindowLevelTool, StackScrollTool, ZoomTool, LabelTool, PlanarRotateTool, LengthTool, } = cornerstoneTools; let toolsRegistered = false; /** * 全局注册所有 Cornerstone3D 工具 * 这个函数只会执行一次,避免重复注册 */ export function registerGlobalTools(): void { if (toolsRegistered) { console.log( '[cornerstoneToolsSetup] Tools already registered, skipping...' ); return; } console.log('[cornerstoneToolsSetup] Registering global tools...'); try { // 注册所有工具 cornerstoneTools.addTool(MagnifyTool); cornerstoneTools.addTool(PanTool); cornerstoneTools.addTool(WindowLevelTool); cornerstoneTools.addTool(StackScrollTool); cornerstoneTools.addTool(ZoomTool); cornerstoneTools.addTool(LabelTool); cornerstoneTools.addTool(PlanarRotateTool); cornerstoneTools.addTool(LengthTool); // 添加线段测量工具 cornerstoneTools.addTool(cornerstoneTools.AngleTool); // 添加角度测量工具 cornerstoneTools.addTool(TibialPlateauAngleTool); // 添加胫骨平台夹角测量工具 cornerstoneTools.addTool(DARAMeasurementTool); // 添加髋臼水平角测量工具 cornerstoneTools.addTool(HipDIMeasurementTool); // 添加髋关节牵引指数测量工具 cornerstoneTools.addTool(HipNHAAngleMeasurementTool); // 添加髋关节水平角测量工具 cornerstoneTools.addTool(VHSMeasurementTool); // 添加心锥比测量工具 cornerstoneTools.addTool(TPLOMeasurementTool); // 添加胫骨平台骨切开术测量工具 cornerstoneTools.addTool(TTAMeasurementTool); // 添加胫骨结节前移术测量工具 cornerstoneTools.addTool(CBLOMeasurementTool); // 添加水平截骨术测量工具 cornerstoneTools.addTool(HipCoverageMeasurementTool); // 添加股骨头覆盖率测量工具 cornerstoneTools.addTool(HipDorsalCoverageTool); // 添加髋臼背覆盖测量工具 cornerstoneTools.addTool(CircleCenterMeasurementTool); // 添加找圆心测量工具 cornerstoneTools.addTool(MidlineMeasurementTool); // 添加找中线测量工具 cornerstoneTools.addTool(FindMidpointMeasurementTool); // 添加找中点测量工具 cornerstoneTools.addTool(VerticalTiltMeasurementTool); // 添加直线垂直倾斜度测量工具 cornerstoneTools.addTool(HorizontalTiltMeasurementTool); // 添加直线水平倾斜度测量工具 cornerstoneTools.addTool(PolygonLengthMeasurementTool); // 添加多边形长度测量工具 cornerstoneTools.addTool(PolylineLengthMeasurementTool); // 添加拆线长度测量工具 cornerstoneTools.addTool(LineGrayscaleMeasurementTool); // 添加直线灰度测量工具 cornerstoneTools.addTool(RectangleGrayscaleMeasurementTool); // 添加矩形区域灰度测量工具 cornerstoneTools.addTool(DicomOverlayTool); // 添加DICOM四角信息显示工具 cornerstoneTools.addTool(MaskTool); // 添加矩形ROI工具 toolsRegistered = true; console.log('[cornerstoneToolsSetup] All tools registered successfully'); } catch (error) { console.error('[cornerstoneToolsSetup] Error registering tools:', error); throw error; } } /** * 检查工具是否已注册 */ export function areToolsRegistered(): boolean { return toolsRegistered; } /** * 重置工具注册状态(主要用于测试) */ export function resetToolsRegistration(): void { toolsRegistered = false; }