2. 扩展患者手术与材料模型,更新种子数据 3. 新增字典模块,增强设备植入目录管理能力 4. 重构患者后台服务与表单链路,统一权限与参数校验 5. 管理台新增字典页面并改造患者/设备页面与路由权限 6. 补充字典及相关领域 e2e 测试并更新文档"
74 lines
2.5 KiB
Markdown
74 lines
2.5 KiB
Markdown
# 设备模块说明(`src/devices`)
|
||
|
||
## 1. 目标
|
||
|
||
- 提供“全局植入物目录”管理,供患者手术表单选择。
|
||
- 维护患者手术下的植入实例记录。
|
||
- 支持为可调压器械配置挡位列表。
|
||
- 支持管理员按医院、患者、状态和关键词分页查询患者植入实例。
|
||
|
||
## 2. 设备实例
|
||
|
||
`Device` 现在表示“患者某次手术下的植入设备实例”,不是独立库存主数据。
|
||
|
||
核心字段:
|
||
|
||
- `snCode`:设备唯一标识
|
||
- `patientId`:归属患者
|
||
- `surgeryId`:归属手术,可为空
|
||
- `implantCatalogId`:型号字典 ID,可为空
|
||
- `implantModel` / `implantManufacturer` / `implantName`:历史快照
|
||
- `isPressureAdjustable`:是否可调压
|
||
- `isAbandoned`:是否弃用
|
||
- `currentPressure`:当前压力
|
||
- `status`:设备状态
|
||
|
||
补充:
|
||
|
||
- `currentPressure` 不允许在创建/编辑设备实例时手工指定。
|
||
- 新植入设备默认以 `initialPressure`(或系统默认值)作为当前压力起点,后续只允许在调压任务完成时更新。
|
||
|
||
## 3. 植入物目录
|
||
|
||
新增 `ImplantCatalog`:
|
||
|
||
- `modelCode`:型号编码,唯一
|
||
- `manufacturer`:厂商
|
||
- `name`:名称
|
||
- `pressureLevels`:可调压器械的挡位列表
|
||
- `isPressureAdjustable`:是否可调压
|
||
- `notes`:目录备注
|
||
|
||
可见性:
|
||
|
||
- 全部已登录 B 端角色都可读取,用于患者手术录入
|
||
- 仅 `SYSTEM_ADMIN` 可做目录 CRUD
|
||
- 目录是全局共享的,不按医院隔离
|
||
|
||
## 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. 约束
|
||
|
||
- 设备必须绑定到一个患者。
|
||
- 设备 SN 在全库唯一,服务端会统一转成大写后再校验。
|
||
- 删除已被任务明细引用的设备会返回 `409`。
|
||
- 删除已被患者手术引用的植入物目录会返回 `409`。
|
||
- 可调压植入物若配置了 `pressureLevels`,患者手术录入和任务调压时的压力值必须命中该挡位列表。
|
||
- 调压任务仅允许针对 `ACTIVE + isPressureAdjustable=true + isAbandoned=false` 的设备发布。
|
||
- `Device.currentPressure` 只允许由调压任务完成时更新,患者手术录入和设备实例编辑都不开放手工写入。
|