切换演示数据到 demo 目录
- 默认演示视频和 DICOM 路径改为 demo/演视LC视频序列.mp4 与 demo/演视DICOM序列/。 - 演示 DICOM 项目名统一为“演视DICOM序列”,并兼容迁移旧“演示DICOM序列”名称。 - 恢复演示出厂设置测试改为验证新文件名上传路径和新项目名。 - 同步更新用户管理提示、API 契约、安装文档、实现地图和项目指南。 - 本地与 ../Seg_Server_Docker 已实际放入 demo 演示视频和 DICOM 测试影像;数据文件受 .gitignore 保护不进入提交。
This commit is contained in:
@@ -194,7 +194,7 @@ uvicorn main:app --host 0.0.0.0 --port 8000 --reload
|
||||
- 检查/创建 MinIO bucket `seg-media`;
|
||||
- 测试 Redis 连接;
|
||||
- 后台 seed 默认模板,包括“腹腔镜胆囊切除术”和“头颈部CT分割”;
|
||||
- 如果本地存在 `demo_video_path` 和配置的 `demo_dicom_dir` DICOM 序列,后台 seed 默认演示视频项目和演示 DICOM 项目,DICOM 会按文件名自然顺序生成帧。
|
||||
- 如果本地存在 `demo/演视LC视频序列.mp4` 和 `demo/演视DICOM序列/` DICOM 序列,后台 seed 默认演示视频项目和演示 DICOM 项目,DICOM 会按文件名自然顺序生成帧。
|
||||
- API 路由包括:
|
||||
- `POST /api/auth/login`
|
||||
- `GET /api/auth/me`
|
||||
@@ -238,7 +238,7 @@ uvicorn main:app --host 0.0.0.0 --port 8000 --reload
|
||||
## 主要业务流程
|
||||
|
||||
1. 登录:`Login.tsx` 调用 `POST /api/auth/login`,后端用 `users` 表和密码哈希校验凭证,默认启动时会种子化唯一管理员 `admin / 123456`;成功后返回签名 JWT,`GET /api/auth/me` 可读取当前用户;角色只包括 `admin` 和 `annotator`,非默认 admin 的历史管理员或旧 `viewer` 会归一为 `annotator`;写入类业务接口要求 `admin/annotator`,用户管理、审计日志和演示出厂设置后台仅 `admin` 可用。
|
||||
2. 用户管理:`Sidebar` 仅对 `admin` 显示“用户管理”,该入口使用用户图标;侧栏底部当前用户退出入口使用退出图标,且弹出提示不接收鼠标事件,避免覆盖工作区按钮;`UserAdmin.tsx` 调用 `/api/admin/users` 新增标注员、停用/启用、改密码和删除用户,并调用 `/api/admin/audit-logs` 展示登录和管理操作审计;系统不允许新增第二个管理员,也不再支持观察员角色;演示部署可通过“恢复演示出厂设置”二次确认后调用 `/api/admin/demo-factory-reset`,清空演示数据,只保留默认 admin、名为“演视LC视频序列”的演示视频项目和一个已按文件名自然顺序生成帧的演示 DICOM 项目,同时按内置权威定义恢复“腹腔镜胆囊切除术”和“头颈部CT分割”系统模板,缺失的会重建,被修改或删减的语义分类树会覆盖回默认状态。
|
||||
2. 用户管理:`Sidebar` 仅对 `admin` 显示“用户管理”,该入口使用用户图标;侧栏底部当前用户退出入口使用退出图标,且弹出提示不接收鼠标事件,避免覆盖工作区按钮;`UserAdmin.tsx` 调用 `/api/admin/users` 新增标注员、停用/启用、改密码和删除用户,并调用 `/api/admin/audit-logs` 展示登录和管理操作审计;系统不允许新增第二个管理员,也不再支持观察员角色;演示部署可通过“恢复演示出厂设置”二次确认后调用 `/api/admin/demo-factory-reset`,清空演示数据,只保留默认 admin、名为“演视LC视频序列”的演示视频项目和名为“演视DICOM序列”的已按文件名自然顺序生成帧的演示 DICOM 项目,同时按内置权威定义恢复“腹腔镜胆囊切除术”和“头颈部CT分割”系统模板,缺失的会重建,被修改或删减的语义分类树会覆盖回默认状态。
|
||||
3. 项目管理:`ProjectLibrary.tsx` 调用项目 API 创建项目、拉取列表、重命名项目、复制项目和删除项目;项目库为所有登录用户共享,标注员和管理员在项目创建、导入、解析、标注、AI 推理、任务查看、导出和删除方面能力一致;项目卡片删除按钮旁提供复制入口,复制时可选择“新项目重置”(复制项目媒体和已生成帧序列,但清空标注/mask)或“全内容复制”(复制项目、帧序列、标注和关联 mask 元数据),任务运行历史不复制;删除当前项目后会清空工作区当前项目、帧、mask 和选区。
|
||||
4. 上传资源:视频走 `/api/media/upload`,只上传源文件并关联项目,不自动拆帧;项目库在视频上传期间显示导入进度条、百分比和已上传字节。只有视频项目在尚未生成帧、未处于项目名称编辑状态且未解析中时显示“生成帧”,DICOM 项目不显示生成帧入口;DICOM 批量走 `/api/media/upload/dicom`,前端和后端都会按文件名自然顺序排序 `.dcm` 文件,避免 `10.dcm` 排在 `2.dcm` 前导致切片错位;DICOM 上传期间显示导入进度条、本次有效文件数量和已上传字节,上传完成后轮询解析任务进度直到完成、失败或取消。
|
||||
5. 生成帧入队:用户在项目库点击“生成帧”,选择目标 FPS 后前端调用 `/api/media/parse`;后端创建 `ProcessingTask` 并投递 Celery,接口支持 `parse_fps`、`max_frames` 和 `target_width` 标准帧序列参数;项目库会继续轮询任务进度,解析成功后重新拉取项目列表和当前项目对象,使后端生成的 `thumbnail_url` 立即显示为项目封面;项目库和模板库的成功/失败短反馈使用非阻塞 `TransientNotice`,会自动消失。
|
||||
|
||||
Reference in New Issue
Block a user