2026-05-25-00-07-30 优化自动匹配对比视图与采样设置

This commit is contained in:
2026-05-25 00:28:52 +08:00
parent 2fac0200fc
commit d1fa79aef9
8 changed files with 426 additions and 179 deletions

View File

@@ -0,0 +1,64 @@
# 实现方案-2026-05-25-00-07-30
## 实现方案文档路径
`工程分析/实现方案-2026-05-25-00-07-30.md`
## 修改目标
- 移除自动匹配页候选轨迹表格和低价值统计卡片。
- 在“匹配结果”下方新增双栏 DICOM/STL 映射对比视图。
- 同一个切片滑条同时控制两个视图。
- 显示模式支持“所选骨骼区域”和“得分可视化”。
- 骨骼区域默认空选。
- 采样切片改为数量输入,按数量均匀筛选。
- 调整默认权重:非骨区域惩罚 0.1、移动惩罚 0、缩放惩罚 0。
- 为大 STL preview JSON 响应增加 gzip 发送,缓解 HTTP/2 大响应错误。
## 涉及路径
- `WebSite/src/components/AutoMatchWorkspace.tsx`
- `WebSite/src/components/ReverseWorkspace.tsx`
- `WebSite/server.ts`
- `WebSite/src/types.ts`
- `Docker部署/README.md`
- `工程分析/经验记录.md`
## 技术路线
-`ReverseWorkspace.tsx` 导出 `VoxelizationMappingView`,在自动匹配页复用。
- 自动匹配页维护 `previewSlice``mappingMode` 状态,双视图传入同一个切片。
- 为对比视图构造仅包含选中骨骼构件的 `moduleStyles`
- 采样切片数量通过 `buildUniformSampleSlices(total, count)` 生成 0-based 数组。
- 自动匹配页不再显示候选轨迹表,保留关键位姿差值和操作按钮。
- 后端新增 JSON gzip helper`/models/:fileName/preview` 使用该 helper 返回大 preview。
## 执行步骤
1. 查看 `VoxelizationMappingView` 当前导出和 props。
2. 修改自动匹配页面布局、状态和默认值。
3. 修改采样切片生成逻辑与接口入参。
4. 修改 STL preview 路由的大 JSON 发送方式。
5. 执行 `npm run lint``npm run build`
6. 重启服务并验证健康检查与 preview 请求。
7. 提交并推送 Gitea。
## 兼容性与回滚方案
- 自动匹配接口保留原 `sampleSlices` 字段,前端只是从数量生成。
- 预览 gzip helper 只在客户端声明支持 gzip 时启用,不支持时仍走普通 JSON。
- 若双视图性能不理想,可降低显示级别或只在有选中骨骼时加载。
## 预计文件变更
- 2 个前端组件。
- 1 个后端服务文件。
- 1 个类型文件。
- 1 个 Docker 说明。
- 工程分析三件套和经验记录。
## 提交与部署策略
- Commit message 使用 `2026-05-25-00-07-30 优化自动匹配对比视图与采样设置`
- 构建通过后重启 `tmux` 会话 `revoxelseg-dicom`
- 验证本机和公网入口。