新增 B 端上传接口与列表接口,统一文件上传和分页查询能力 上传能力支持医院级数据隔离:系统管理员需显式指定医院,院内角色按登录医院自动隔离 图片上传自动压缩并转为 webp,视频上传自动转码并压缩为 mp4,普通文件按原始类型存储 增加上传目录与公开访问能力,统一输出可直接预览的访问地址 前端新增影像库页面,支持按类型筛选、关键字检索、分页浏览、在线预览与原文件访问 前端新增通用上传组件,支持在页面内复用并返回上传结果 管理后台新增影像库菜单与路由,并补充页面级角色权限控制 患者手术相关表单接入上传复用能力,支持术前资料与设备标签上传回填 新增上传模块 e2e 用例,覆盖成功路径、权限矩阵与关键失败场景 补充上传模块文档与安装依赖说明,完善工程内使用说明
2.8 KiB
2.8 KiB
设备模块说明(src/devices)
1. 目标
- 提供“全局植入物目录”管理,供患者手术表单选择。
- 维护患者手术下的植入实例记录。
- 支持为可调压器械配置挡位列表。
- 支持管理员按医院、患者、状态和关键词分页查询患者植入实例。
2. 设备实例
Device 现在表示“患者某次手术下的植入设备实例”,不是独立库存主数据。
核心字段:
patientId:归属患者surgeryId:归属手术,可为空implantCatalogId:型号字典 ID,可为空implantModel/implantManufacturer/implantName:历史快照isPressureAdjustable:是否可调压isAbandoned:是否弃用currentPressure:当前压力挡位标签status:设备状态
补充:
currentPressure不允许在创建/编辑设备实例时手工指定。- 新植入设备默认以
initialPressure(或系统默认值0)作为当前压力起点,后续只允许在调压任务完成时更新。 - 发布调压任务时不会立刻修改
currentPressure,只有任务完成后才会把目标挡位回写到设备。
3. 植入物目录
新增 ImplantCatalog:
modelCode:型号编码,唯一manufacturer:厂商name:名称pressureLevels:可调压器械的挡位字符串标签列表isPressureAdjustable:是否可调压notes:目录备注
可见性:
- 全部已登录 B 端角色都可读取,用于患者手术录入
- 仅
SYSTEM_ADMIN可做目录 CRUD - 目录是全局共享的,不按医院隔离
说明:
- 挡位列表按字符串标签保存,例如
["0.5", "1", "1.5"]或["10", "20", "30"]。 - 保存前会自动标准化并去重排序,例如
["01.0", "1.50", "1"]最终会整理为["1", "1.5"]。
4. 接口
设备实例:
GET /b/devices:分页查询设备列表GET /b/devices/:id:查询设备详情POST /b/devices:创建设备PATCH /b/devices/:id:更新设备DELETE /b/devices/:id:删除设备
型号字典:
GET /b/devices/catalogs:查询植入物型号字典POST /b/devices/catalogs:新增植入物目录PATCH /b/devices/catalogs/:id:更新植入物目录DELETE /b/devices/catalogs/:id:删除植入物目录
5. 约束
- 设备必须绑定到一个患者。
- 删除已被任务明细引用的设备会返回
409。 - 删除已被患者手术引用的植入物目录会返回
409。 - 可调压植入物若配置了
pressureLevels,患者手术录入和任务调压时的压力值必须命中该挡位列表。 - 调压任务仅允许针对
ACTIVE + isPressureAdjustable=true + isAbandoned=false的设备发布。 Device.currentPressure只允许由调压任务完成时更新,患者手术录入和设备实例编辑都不开放手工写入。