79 lines
3.1 KiB
Markdown
79 lines
3.1 KiB
Markdown
# 实现方案
|
||
|
||
开始时间:2026-05-03-22-36-18
|
||
|
||
## 本次方案路径
|
||
|
||
`工程分析/实现方案-2026-05-03-22-36-18.md`
|
||
|
||
## 实现目标
|
||
|
||
完成下载文案、四状态单项 DICOM 下载、影像库阅览入口和冠状/矢状 DICOM 显示模式切换。
|
||
|
||
## 涉及文件
|
||
|
||
- `WebSite/src/App.tsx`
|
||
- `web_backend.py`
|
||
- `工程分析/经验记录.md`
|
||
|
||
## 执行步骤
|
||
|
||
1. 前端文案调整:
|
||
- 将左侧工作站区域的“下载四状态ZIP”改为“下载结果”。
|
||
- 将影像库卡片中的“调阅”改为“变换”。
|
||
2. 四状态单项下载:
|
||
- 在四状态结果卡片中,为原始序列、硬边界、高斯平滑、软过渡重建标题旁增加下载图标按钮。
|
||
- 点击按钮调用已有 `handlePackageDownload(t.key)`,复用后端现有 `prepare_deformation_zip(job_id, target)`。
|
||
- 按钮在形变任务未完成、对应状态 ZIP 正在打包时禁用,并显示简短状态。
|
||
3. 后端新增影像库重建阅览接口:
|
||
- 新增 `/api/library/reformat-preview`,参数包含 `id`、`plane`、`index`、`window`。
|
||
- `plane` 支持 `coronal`、`sagittal`。
|
||
- `window` 支持 `default`、`bone`、`soft_tissue`、`brain`、`lung` 等固定窗宽窗位模式。
|
||
- 读取影像库 DICOM 序列为体数据,根据平面切片后用窗宽窗位转 PNG,缓存到 `web_library/_preview_cache/<item_id>/reformat/`。
|
||
4. 前端新增影像库阅览弹层:
|
||
- 增加 `libraryViewerItem`、`viewerPlane`、`viewerWindow`、`viewerSliceIndex`、`viewerPreview` 等状态。
|
||
- 新增“阅览”按钮,打开弹层。
|
||
- 弹层提供冠状位/矢状位分段按钮、显示模式选择、切片滑杆、当前切片计数和预览图。
|
||
- 按切片、平面、显示模式请求 `/api/library/reformat-preview`。
|
||
5. 保持现有“信息”“删除”“变换”行为不变,避免影响数据选择和工作站流程。
|
||
6. 执行测试方案。
|
||
7. 将关键问题和解决方案追加到 `工程分析/经验记录.md`。
|
||
8. 提交并推送 Gitea,commit 信息使用 `2026-05-03-22-36-18 增加DICOM阅览和单项下载`。
|
||
9. 重新部署到 `http://192.168.3.11:3005/`。
|
||
|
||
## 预期实现细节
|
||
|
||
- 单项下载 target 使用现有键:
|
||
- `original`
|
||
- `hard_boundary`
|
||
- `gaussian_smooth`
|
||
- `soft_transition`
|
||
- 阅览接口返回:
|
||
- `imageUrl`
|
||
- `index`
|
||
- `count`
|
||
- `plane`
|
||
- `window`
|
||
- `patientId`
|
||
- 窗宽窗位建议:
|
||
- default:沿用现有 `ct_window` 默认范围。
|
||
- bone:骨窗。
|
||
- soft_tissue:软组织窗。
|
||
- brain:脑窗。
|
||
- lung:肺窗。
|
||
|
||
## 回滚思路
|
||
|
||
如阅览接口或 UI 不符合预期,可回滚 `web_backend.py` 的新接口和 `WebSite/src/App.tsx` 中的阅览弹层及按钮;四状态单项下载和文案调整可单独保留或回退。
|
||
|
||
## 风险控制
|
||
|
||
- 不引入新的前端依赖。
|
||
- 不修改真实 DICOM 形变与输出目录结构。
|
||
- 后端预览只输出 PNG,不暴露额外 DICOM 文件写操作。
|
||
- 缓存文件写入现有 `_preview_cache` 下,删除影像库条目时继续随缓存目录清理。
|
||
|
||
## 人工审核状态
|
||
|
||
待用户二次人工审核确认。未经确认不得修改业务代码。
|