cornerstoneToolsSetup.ts 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import * as cornerstoneTools from '@cornerstonejs/tools';
  2. import TibialPlateauAngleTool from '@/components/measures/TibialPlateauAngleTool';
  3. import DARAMeasurementTool from '@/components/measures/DARAMeasurementTool';
  4. import HipDIMeasurementTool from '@/components/measures/HipDIMeasurementTool';
  5. import HipNHAAngleMeasurementTool from '@/components/measures/HipNHAAngleMeasurementTool';
  6. import VHSMeasurementTool from '@/components/measures/VHSMeasurementTool';
  7. import TPLOMeasurementTool from '@/components/measures/TPLOMeasurementTool';
  8. import TTAMeasurementTool from '@/components/measures/TTAMeasurementTool';
  9. import CBLOMeasurementTool from '@/components/measures/CBLOMeasurementTool';
  10. import HipCoverageMeasurementTool from '@/components/measures/HipCoverageMeasurementTool';
  11. import HipDorsalCoverageTool from '@/components/measures/HipDorsalCoverageTool';
  12. import CircleCenterMeasurementTool from '@/components/measures/CircleCenterMeasurementTool';
  13. import MidlineMeasurementTool from '@/components/measures/MidlineMeasurementTool';
  14. import FindMidpointMeasurementTool from '@/components/measures/FindMidpointMeasurementTool';
  15. import VerticalTiltMeasurementTool from '@/components/measures/VerticalTiltMeasurementTool';
  16. import HorizontalTiltMeasurementTool from '@/components/measures/HorizontalTiltMeasurementTool';
  17. import PolygonLengthMeasurementTool from '@/components/measures/PolygonLengthMeasurementTool';
  18. import DicomOverlayTool from '@/components/overlay/DicomOverlayTool';
  19. import PolylineLengthMeasurementTool from '@/components/measures/PolylineLengthMeasurementTool';
  20. import LineGrayscaleMeasurementTool from '@/components/measures/LineGrayscaleMeasurementTool';
  21. import RectangleGrayscaleMeasurementTool from '@/components/measures/RectangleGrayscaleMeasurementTool';
  22. import MaskTool from '@/components/tools/MaskTool';
  23. const {
  24. MagnifyTool,
  25. PanTool,
  26. WindowLevelTool,
  27. StackScrollTool,
  28. ZoomTool,
  29. LabelTool,
  30. PlanarRotateTool,
  31. LengthTool,
  32. } = cornerstoneTools;
  33. let toolsRegistered = false;
  34. /**
  35. * 全局注册所有 Cornerstone3D 工具
  36. * 这个函数只会执行一次,避免重复注册
  37. */
  38. export function registerGlobalTools(): void {
  39. if (toolsRegistered) {
  40. console.log(
  41. '[cornerstoneToolsSetup] Tools already registered, skipping...'
  42. );
  43. return;
  44. }
  45. console.log('[cornerstoneToolsSetup] Registering global tools...');
  46. try {
  47. // 注册所有工具
  48. cornerstoneTools.addTool(MagnifyTool);
  49. cornerstoneTools.addTool(PanTool);
  50. cornerstoneTools.addTool(WindowLevelTool);
  51. cornerstoneTools.addTool(StackScrollTool);
  52. cornerstoneTools.addTool(ZoomTool);
  53. cornerstoneTools.addTool(LabelTool);
  54. cornerstoneTools.addTool(PlanarRotateTool);
  55. cornerstoneTools.addTool(LengthTool); // 添加线段测量工具
  56. cornerstoneTools.addTool(cornerstoneTools.AngleTool); // 添加角度测量工具
  57. cornerstoneTools.addTool(TibialPlateauAngleTool); // 添加胫骨平台夹角测量工具
  58. cornerstoneTools.addTool(DARAMeasurementTool); // 添加髋臼水平角测量工具
  59. cornerstoneTools.addTool(HipDIMeasurementTool); // 添加髋关节牵引指数测量工具
  60. cornerstoneTools.addTool(HipNHAAngleMeasurementTool); // 添加髋关节水平角测量工具
  61. cornerstoneTools.addTool(VHSMeasurementTool); // 添加心锥比测量工具
  62. cornerstoneTools.addTool(TPLOMeasurementTool); // 添加胫骨平台骨切开术测量工具
  63. cornerstoneTools.addTool(TTAMeasurementTool); // 添加胫骨结节前移术测量工具
  64. cornerstoneTools.addTool(CBLOMeasurementTool); // 添加水平截骨术测量工具
  65. cornerstoneTools.addTool(HipCoverageMeasurementTool); // 添加股骨头覆盖率测量工具
  66. cornerstoneTools.addTool(HipDorsalCoverageTool); // 添加髋臼背覆盖测量工具
  67. cornerstoneTools.addTool(CircleCenterMeasurementTool); // 添加找圆心测量工具
  68. cornerstoneTools.addTool(MidlineMeasurementTool); // 添加找中线测量工具
  69. cornerstoneTools.addTool(FindMidpointMeasurementTool); // 添加找中点测量工具
  70. cornerstoneTools.addTool(VerticalTiltMeasurementTool); // 添加直线垂直倾斜度测量工具
  71. cornerstoneTools.addTool(HorizontalTiltMeasurementTool); // 添加直线水平倾斜度测量工具
  72. cornerstoneTools.addTool(PolygonLengthMeasurementTool); // 添加多边形长度测量工具
  73. cornerstoneTools.addTool(PolylineLengthMeasurementTool); // 添加拆线长度测量工具
  74. cornerstoneTools.addTool(LineGrayscaleMeasurementTool); // 添加直线灰度测量工具
  75. cornerstoneTools.addTool(RectangleGrayscaleMeasurementTool); // 添加矩形区域灰度测量工具
  76. cornerstoneTools.addTool(DicomOverlayTool); // 添加DICOM四角信息显示工具
  77. cornerstoneTools.addTool(MaskTool); // 添加矩形ROI工具
  78. toolsRegistered = true;
  79. console.log('[cornerstoneToolsSetup] All tools registered successfully');
  80. } catch (error) {
  81. console.error('[cornerstoneToolsSetup] Error registering tools:', error);
  82. throw error;
  83. }
  84. }
  85. /**
  86. * 检查工具是否已注册
  87. */
  88. export function areToolsRegistered(): boolean {
  89. return toolsRegistered;
  90. }
  91. /**
  92. * 重置工具注册状态(主要用于测试)
  93. */
  94. export function resetToolsRegistration(): void {
  95. toolsRegistered = false;
  96. }