Jelajahi Sumber

feat (1.70.0 -> 1.71.0): 自定义标记和预定义标记使用新的文本模型,支持拖拽和缩放、旋转

- 重构addCustomMark函数,使用TextAnnotationToolManager替代LabelTool
- 移除复杂的LabelTool激活、坐标转换和hydrate逻辑
- 简化实现,直接使用canvas坐标调用文本标记工具

改动文件:
- src/pages/view/components/viewers/stack.image.viewer.tsx
dengdx 2 hari lalu
induk
melakukan
bf56731d4b
3 mengubah file dengan 15 tambahan dan 16 penghapusan
  1. 12 0
      CHANGELOG.md
  2. 1 1
      package.json
  3. 2 15
      src/pages/view/components/viewers/stack.image.viewer.tsx

+ 12 - 0
CHANGELOG.md

@@ -2,6 +2,18 @@
 
 本项目的所有重要变更都将记录在此文件中.
 
+## [1.71.0] - 2026-01-15 20:31
+
+feat (1.70.0 -> 1.71.0): 自定义标记和预定义标记使用新的文本模型,支持拖拽和缩放、旋转
+
+- 重构addCustomMark函数,使用TextAnnotationToolManager替代LabelTool
+- 移除复杂的LabelTool激活、坐标转换和hydrate逻辑
+- 简化实现,直接使用canvas坐标调用文本标记工具
+
+改动文件:
+
+- src/pages/view/components/viewers/stack.image.viewer.tsx
+
 ## [1.70.0] - 2026-01-15 13:47
 
 feat (1.69.0 -> 1.70.0): 重构工作流设置组件,集成后端配置API并优化界面布局

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "zsis",
-  "version": "1.70.0",
+  "version": "1.71.0",
   "private": true,
   "description": "医学成像系统",
   "main": "main.js",

+ 2 - 15
src/pages/view/components/viewers/stack.image.viewer.tsx

@@ -473,10 +473,6 @@ export function addCustomMark(currentViewportId: string, text: string): void {
 
   const toolGroup = getToolgroupByViewportId(currentViewportId);
 
-  // 激活标签工具
-  toolGroup.setToolActive(LabelTool.toolName, {
-    bindings: [],
-  });
 
   // 获取视口元素和位置
   const element = document.getElementById(currentViewportId);
@@ -490,22 +486,13 @@ export function addCustomMark(currentViewportId: string, text: string): void {
     message.error(`添加注释失败`);
     return;
   }
-  const viewport = renderingEngine.getViewport(currentViewportId);
+
   // 计算标记位置(图像中心位置)
   // 1️⃣ canvas 坐标(屏幕中心)
   const { width, height } = element.getBoundingClientRect();
   const canvasPoint: Types.Point2 = [width / 2, height / 2];
 
-  // 2️⃣ 转为 world 坐标(关键!)
-  const worldPoint = viewport.canvasToWorld(canvasPoint);
-
-  // 3️⃣ 使用 world 坐标 添加标签
-  LabelTool.hydrate(currentViewportId, worldPoint, text);
-
-  // 恢复工具状态
-  toolGroup.setToolPassive(LabelTool.toolName, {
-    removeAllBindings: true,
-  });
+  TextAnnotationToolManager.activateTextAnnotationTool(currentViewportId, text,canvasPoint);
 
   console.log(`Custom mark "${text}" added successfully`);
 }