2026-05-20-12-09-47 完善软著逐章配图与系统视频

This commit is contained in:
2026-05-20 12:24:34 +08:00
parent c870f9bdba
commit cb681a45df
4 changed files with 214 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
# 实现方案:说明书逐章配图与系统视频生成
实现方案文档路径:`工程分析/实现方案-2026-05-20-12-09-47.md`
## 修改目标
为软著说明书每个二级章节配置真实系统截图,并录制一段包含位姿导入流程的系统使用视频。
## 涉及路径
- `新撰写软著文档/1. 软著说明书.md`
- `新撰写软著文档/1. 软著说明书.docx`
- `新撰写软著文档/images/`
- `新撰写软著文档/系统使用视频/`
- `新撰写软著文档/功能验证与素材清单.md`
- `head-ct-demo-pose-data.json`
- `工程分析/需求分析-2026-05-20-12-09-47.md`
- `工程分析/实现方案-2026-05-20-12-09-47.md`
- `工程分析/测试方案-2026-05-20-12-09-47.md`
- `工程分析/经验记录.md`
## 技术路线
1. 统计说明书 `## X.` 章节数量,建立章节与截图文件映射。
2. 使用 Chrome DevTools Protocol 自动打开系统、登录、切换页面、点击控件、打开弹窗和导入位姿。
3. 使用软件 WebGL 参数录制或截取逆向工作区,避免三维视图空白。
4. 生成 23 张章节截图到 `新撰写软著文档/images/`
5. 将每个 `## X.` 章节下插入对应图片引用。
6. 使用截图序列和 `ffmpeg` 生成系统使用视频 MP4视频中包含 `head-ct-demo-pose-data.json` 位姿导入状态。
7. 重新生成说明书 Word确保所有图片嵌入。
8. 更新素材清单,记录截图与视频。
9. 运行检查、构建和部署验证。
## 执行步骤
- 检查 `ffmpeg`、Chrome 和系统服务状态。
- 生成或刷新章节截图。
- 自动化导入 `head-ct-demo-pose-data.json` 并截取/录制导入后的位姿状态。
- 更新说明书 Markdown 和 Word。
- 验证图片引用、Word 媒体数量、视频文件信息。
- 工程分析文档与经验记录提交并推送。
- 重新部署并验证服务。
## 兼容性与回滚方案
- 所有软著输出在本地目录,可通过历史 Markdown 或重新运行截图脚本恢复。
- 若视频编码失败,保留截图序列并记录失败原因。
- 若某个截图页面加载不完整,重新等待或切换到软件 WebGL 模式。
## 预计文件变更
软著本地材料:
- `新撰写软著文档/1. 软著说明书.md`
- `新撰写软著文档/1. 软著说明书.docx`
- `新撰写软著文档/images/*.png`
- `新撰写软著文档/系统使用视频/系统使用视频.mp4`
- `新撰写软著文档/功能验证与素材清单.md`
Gitea 备份:
- 本轮工程分析三份文档。
- `工程分析/经验记录.md`
## 提交与部署策略
- 不暂存 `新撰写软著文档/``head-ct-demo-pose-data.json`
- 仅暂存本轮工程分析文档与经验记录。
- commit message 包含 `2026-05-20-12-09-47`
- 推送后重启 `tmux` 会话 `revoxelseg-dicom` 并验证服务。

View File

@@ -0,0 +1,67 @@
# 测试方案:章节配图与系统使用视频验证
测试方案文档路径:`工程分析/测试方案-2026-05-20-12-09-47.md`
## 静态检查
- 统计 `新撰写软著文档/1. 软著说明书.md``## X.` 章节数量。
- 检查每个 `## X.` 章节内均有至少一个 Markdown 图片引用。
- 检查所有图片引用文件存在。
- 检查无 `[插入图片]` 占位符残留。
- 检查 `新撰写软著文档/系统使用视频/系统使用视频.mp4` 存在且大小不为 0。
- 使用 `ffprobe``ffmpeg` 检查视频时长与编码信息。
## 构建检查
-`WebSite/` 执行 `npm run build`
## 关键业务场景验证
- 截图覆盖登录、总体概况、项目库、DICOM 浏览、DICOM 信息、STL 模型、构件层级、分割结果、逆向工作区、融合视角、可视化工具栏、位姿导入、映射视图、保存结果、导出选项、系统管理和退出。
- 视频覆盖从登录到项目浏览、进入逆向工作区、导入 `head-ct-demo-pose-data.json`、查看映射视图和打开导出选项。
## 医学影像数据相关边界验证
- 视频和截图使用默认演示项目,不执行破坏性数据操作。
- 位姿导入使用指定 JSON 文件并确认界面出现导入成功状态。
- 逆向工作区截图与视频使用软件 WebGL 兜底,避免三维视图空白。
## Word 与素材验证
- 重新生成 `1. 软著说明书.docx`
- 使用 `unzip -t` 验证 Word 完整性。
- 使用 `unzip -l` 检查 Word 内嵌图片数量不少于章节数。
- 更新 `功能验证与素材清单.md`
## 部署验证
- 验证 `http://127.0.0.1:4000/api/health`
- 验证 `http://127.0.0.1:4000/` 返回 200。
- 重新部署后复验服务。
## Git/Gitea 备份验证
- commit message 包含 `2026-05-20-12-09-47`
- 推送 Gitea 成功后记录 commit。
- 确认 `新撰写软著文档/` 未被暂存或提交。
## 风险与回归关注点
- 不把视频、截图和软著 Word 纳入 Gitea。
- 不提交 `head-ct-demo-pose-data.json`
- 不处理已有历史工程分析文档删除状态。
## 实际验证记录
- 说明书章节检查:`新撰写软著文档/1. 软著说明书.md` 中共有 23 个 `## X.` 章节。
- 图片覆盖检查23 个章节均已配置图片引用,引用文件全部存在;`新撰写软著文档/images/` 中共有 23 张 `chapter-*.png` 章节图。
- 占位与技术痕迹检查:未发现 `[插入图片]`、接口、路由、payload、state、useState、useEffect、组件、函数等不适合软著说明书正文的残留表达。
- DICOM 信息截图处理:`chapter-09-dicom-info.png` 中患者姓名与患者编号显示区域已遮盖脱敏。
- 视频文件检查:`新撰写软著文档/系统使用视频/系统使用视频.mp4` 为 H.2641280x800276 帧,时长 46.000000 秒,大小 826695 字节。
- 位姿导入检查:第 16 章截图与视频素材使用 `head-ct-demo-pose-data.json`,界面显示“位姿数据已导入并保存”。
- Word 完整性检查:`unzip -t 新撰写软著文档/1. 软著说明书.docx` 通过。
- Word 图片嵌入检查:`unzip -l 新撰写软著文档/1. 软著说明书.docx | rg word/media | wc -l` 返回 23。
- 素材清单检查:`新撰写软著文档/功能验证与素材清单.md` 已更新 23 张章节截图、视频文件、位姿来源和脱敏说明。
- 构建检查:`WebSite/ npm run build` 通过Vite 仅提示 chunk size warning。
- 重新部署检查:已重启 `tmux` 会话 `revoxelseg-dicom`,服务日志显示 `ReVoxelSeg DICOM server ready at http://0.0.0.0:4000/`
- 服务检查:`http://127.0.0.1:4000/api/health` 返回 200`http://127.0.0.1:4000/` 返回 200。

View File

@@ -1207,3 +1207,21 @@ C. 解决问题方案
D. 后续如何避免问题 D. 后续如何避免问题
默认演示数据和运行态输出要分开管理:默认项目资产可以入库,但导出文件、状态文件和用户临时数据仍应保持忽略。新增大体积医学数据前必须记录体积、文件数、脱敏/授权假设和远端推送结果;若体积继续增长,应评估 Git LFS 或独立数据包发布。 默认演示数据和运行态输出要分开管理:默认项目资产可以入库,但导出文件、状态文件和用户临时数据仍应保持忽略。新增大体积医学数据前必须记录体积、文件数、脱敏/授权假设和远端推送结果;若体积继续增长,应评估 Git LFS 或独立数据包发布。
## 2026-05-20-12-09-47 软著说明书逐章配图与视频需要同时校验交付格式
A. 具体问题
用户要求软著说明书中每一个 `## X.` 章节都配图,并录制系统使用视频,位姿导入必须使用 `head-ct-demo-pose-data.json`。如果只更新 Markdown 或只生成截图,不重新生成 Word 与视频,就会出现交付材料与源文档不一致的问题。
B. 产生问题原因
软著材料同时存在 Markdown、Word、截图目录和视频目录多种格式之间没有自动同步机制逆向工作区还依赖 WebGL 和隐藏文件输入,普通截图流程容易漏掉位姿导入成功状态或生成空白三维画面。
C. 解决问题方案
使用 Chrome 自动化打开系统核心页面并导入 `head-ct-demo-pose-data.json`,生成 23 张章节截图并插入到说明书 23 个 `## X.` 章节下;对 DICOM 信息截图中的患者姓名与编号区域进行遮盖脱敏;使用 `ffmpeg` 生成 H.264 MP4 系统使用视频;重新生成 `1. 软著说明书.docx` 并通过 `unzip -t``word/media` 数量检查确认 23 张图片已嵌入。
D. 后续如何避免问题
软著说明书增加、删除或改名章节后应重新跑“章节数、图片数、图片文件存在、Word 媒体数量、视频信息”五类检查。涉及医学影像信息截图时必须先确认是否存在患者姓名、编号等敏感字段;涉及位姿展示时必须记录所用 JSON 文件,并在截图或视频中保留导入成功状态。

View File

@@ -0,0 +1,59 @@
# 需求分析:软著说明书逐章配图与系统使用视频录制
开始时间:`2026-05-20-12-09-47`
## 原始需求摘要
用户要求:
1. 软著说明书中每一项 `## X.` 都配一个图。
2. 录制一个系统使用视频。
3. 视频中上传/导入位姿时使用 `head-ct-demo-pose-data.json`
## 业务目标
- 让软著说明书每个二级章节均具备对应截图,形成完整图文说明。
- 生成可用于软著材料附件或演示留档的系统使用视频。
- 视频覆盖登录、项目浏览、逆向工作区、位姿导入、映射视图、导出选项等核心流程。
## 输入与输出
输入:
- `新撰写软著文档/1. 软著说明书.md`
- `新撰写软著文档/images/`
- `head-ct-demo-pose-data.json`
- 当前运行系统 `http://127.0.0.1:4000/`
输出:
- 更新 `新撰写软著文档/1. 软著说明书.md`
- 更新 `新撰写软著文档/1. 软著说明书.docx`
- 新增或更新 `新撰写软著文档/images/` 中 23 张章节截图
- 新增 `新撰写软著文档/系统使用视频/系统使用视频.mp4`
- 更新 `新撰写软著文档/功能验证与素材清单.md`
## 影响范围
- 仅影响软著材料本地输出目录和本轮工程分析记录。
- 不修改产品源码。
- 软著材料继续不纳入 Gitea仅工程分析文档和经验记录进行备份提交。
## 关键约束
- 每个 `## X.` 章节至少有一张图片,且图片文件实际存在。
- 视频录制过程中必须使用 `head-ct-demo-pose-data.json` 完成位姿导入。
- 三维页面截图和视频需使用软件 WebGL 兜底,避免空白画面。
- 说明书 Word 需嵌入所有章节图片。
## 风险点
- Headless 环境可能无法创建 WebGL 上下文,需要使用软件渲染参数。
- 浏览器文件上传需通过自动化协议设置隐藏文件输入。
- 视频生成依赖 `ffmpeg`,若编码失败需保留截图序列并记录原因。
- 当前工作区存在历史文档删除状态和软著未跟踪目录,提交时需精确暂存。
## 默认假设
- 系统使用视频存放在 `新撰写软著文档/系统使用视频/`,作为软著本地材料,不提交到 Gitea。
- 说明书每章配图可使用不同操作状态截图、局部截图或同一功能区不同状态截图,但不使用空白、错误或严重遮挡画面。