tyt-api-nest/docs/patients.md
2026-03-13 13:23:59 +08:00

1.6 KiB
Raw Blame History

患者模块说明(src/patients

1. 目标

  • B 端:按组织与角色范围查询患者(强依赖 hospitalId)。
  • C 端:按 phone + idCardHash 做跨院聚合查询。

2. B 端可见性

  • DOCTOR:仅可查自己名下患者
  • LEADER:可查本组医生名下患者(按医生当前 groupId 反查)
  • DIRECTOR:可查本科室医生名下患者(按医生当前 departmentId 反查)
  • HOSPITAL_ADMIN:可查本院全部患者
  • SYSTEM_ADMIN:需显式传入目标 hospitalId

2.1 B 端 CRUD

  • GET /b/patients:按角色查询可见患者
  • GET /b/patients/doctors:查询当前角色可见的归属人员候选(医生/主任/组长,用于患者表单)
  • POST /b/patients:创建患者
  • GET /b/patients/:id:查询患者详情
  • PATCH /b/patients/:id:更新患者
  • DELETE /b/patients/:id:删除患者(若存在关联设备返回 409

说明: 患者表只绑定 doctorId + hospitalId,不直接绑定小组/科室。医生调组或调科后, 可见范围会按医生当前组织归属自动变化,无需迁移患者数据。

3. C 端生命周期聚合

接口:GET /c/patients/lifecycle?phone=...&idCardHash=...

查询策略:

  1. 不做医院隔离(跨租户)
  2. 双字段精确匹配 phone + idCardHash
  3. 关联查询 Patient -> Device -> TaskItem -> Task
  4. 返回扁平生命周期列表(按 Task.createdAt DESC

4. 响应结构

全部接口统一返回:

  • 成功:{ code: 0, msg: "成功", data: ... }
  • 失败:{ code: x, msg: "中文错误", data: null }