# 患者模块说明（`src/patients`）

## 1. 目标

- B 端：维护患者、手术、植入设备及生命周期数据。
- C 端：患者本人小程序登录后，按当前手机号查询自己的生命周期。

## 2. B 端能力

- 患者列表、详情、创建、更新、删除
- 手术记录新增
- 植入设备录入与历史保留

## 3. C 端能力

- 患者本人通过小程序手机号登录
- `GET /c/patients/me`
- `GET /c/patients/my-lifecycle`
- 查询口径：按 `FamilyMiniAppAccount.phone` 唯一命中 `Patient.phone`
- `me` 返回内容：当前 C 端账号信息 + 当前手机号命中的患者基础档案
- `my-lifecycle` 返回内容：顶层患者信息 + 手术事件/调压事件时间线

## 4. 当前规则

- 同一个手机号在 C 端只允许命中 1 份患者档案。
- 若同一个手机号命中多份患者档案，登录阶段直接返回冲突错误。
- C 端手机号来源于患者手术/档案中维护的联系电话。
- 仅已登录的 C 端小程序账号可访问 `me` 与 `my-lifecycle`。
- C 端登录账号不存在或 token 无效时返回 `401`。
- 手机号下无患者档案时，登录阶段直接拦截，不进入生命周期查询。

## 5. 典型接口

- `GET /b/patients`
- `POST /b/patients`
- `POST /b/patients/:id/surgeries`
- `GET /c/patients/me`
- `GET /c/patients/my-lifecycle`
