소스 검색

fix (1.26.0 -> 1.26.1): 修复反色对比功能第一次使用右侧不加载问题 (禅道 bug 149)

- 将独立的 invertContrastEngine 渲染引擎改为重用主渲染引擎 myRenderingEngine
- 移除渲染引擎初始化逻辑,避免Cornerstone初始化时机冲突
- 确保程序启动后第一次使用反色对比功能时图像能正常显示
- 解决渲染引擎创建竞争条件导致的图像加载失败问题

改动文件:
- src/pages/view/components/InvertContrastModal.tsx
- CHANGELOG.md
- package.json (版本更新: 1.26.0 -> 1.26.1)
dengdx 3 주 전
부모
커밋
d6c868ec81
3개의 변경된 파일31개의 추가작업 그리고 16개의 파일을 삭제
  1. 29 0
      CHANGELOG.md
  2. 1 1
      package.json
  3. 1 15
      src/pages/view/components/InvertContrastModal.tsx

+ 29 - 0
CHANGELOG.md

@@ -2,6 +2,35 @@
 
 本项目的所有重要变更都将记录在此文件中。
 
+## [1.26.1] - 2025-12-24 17:41
+
+### 修复 (Fixed)
+- **反色对比功能第一次使用右侧不加载问题** ([src/pages/view/components/InvertContrastModal.tsx](src/pages/view/components/InvertContrastModal.tsx))
+  - 修复反色对比Modal第一次打开时右侧图像不加载的问题
+  - 将独立的 `invertContrastEngine` 渲染引擎改为重用主渲染引擎 `myRenderingEngine`
+  - 移除渲染引擎初始化逻辑,避免Cornerstone初始化时机冲突
+  - 确保程序启动后第一次使用反色对比功能时图像能正常显示
+  - 解决渲染引擎创建竞争条件导致的图像加载失败问题
+
+**核心改进:**
+- 初始化稳定性:重用主渲染引擎避免初始化冲突
+- 用户体验:第一次使用反色对比功能不再出现空白右侧
+- 代码简化:移除不必要的渲染引擎管理逻辑
+- 性能优化:减少内存占用和渲染引擎数量
+
+**技术实现:**
+- 修改 renderingEngineId 从 'invertContrastEngine' 改为 'myRenderingEngine'
+- 移除 useEffect 中的渲染引擎创建和初始化逻辑
+- 直接使用主程序已初始化的渲染引擎实例
+- 保持其他反色应用逻辑不变
+
+**改动文件:**
+- src/pages/view/components/InvertContrastModal.tsx
+- CHANGELOG.md
+- package.json (版本更新: 1.26.0 -> 1.26.1)
+
+---
+
 ## [1.26.0] - 2025-12-24 17:24
 
 ### 新增 (Added)

+ 1 - 1
package.json

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

+ 1 - 15
src/pages/view/components/InvertContrastModal.tsx

@@ -22,21 +22,7 @@ const InvertContrastModal: React.FC = () => {
   const dispatch = useDispatch<AppDispatch>();
   const isOpen = useSelector(selectIsModalOpen);
   const selectedPositions = useSelector(selectSelectedPositions);
-  const renderingEngineId = 'invertContrastEngine'; // 独立的渲染引擎
-
-  // 初始化Modal的渲染引擎
-  useEffect(() => {
-    if (isOpen) {
-      try {
-        if (!cornerstone.getRenderingEngine(renderingEngineId)) {
-          console.log(`[InvertContrastModal] Creating new rendering engine: ${renderingEngineId}`);
-          new cornerstone.RenderingEngine(renderingEngineId);
-        }
-      } catch (error) {
-        console.error('[InvertContrastModal] Failed to create rendering engine:', error);
-      }
-    }
-  }, [isOpen, renderingEngineId]);
+  const renderingEngineId = 'myRenderingEngine'; // 重用主渲染引擎
 
   // 获取左图和右图的URL
   const leftImageUrl = selectedPositions[0] || '';