tyt-api-nest/docs/devices.md
EL 73082225f6 "1. 新增系统字典与全局植入目录相关表结构及迁移
2. 扩展患者手术与材料模型,更新种子数据
3. 新增字典模块,增强设备植入目录管理能力
4. 重构患者后台服务与表单链路,统一权限与参数校验
5. 管理台新增字典页面并改造患者/设备页面与路由权限
6. 补充字典及相关领域 e2e 测试并更新文档"
2026-03-19 20:42:17 +08:00

2.5 KiB
Raw Blame History

设备模块说明(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 只允许由调压任务完成时更新,患者手术录入和设备实例编辑都不开放手工写入。