|
|
|
|
# 突眼日记接口文档
|
|
|
|
|
|
|
|
|
|
## 一、接口规范
|
|
|
|
|
|
|
|
|
|
### 1.1 基本规范
|
|
|
|
|
|
|
|
|
|
- **接口路径格式**: `/?r=xd/xxx` (Yii2路由格式)
|
|
|
|
|
- **请求方式**: GET / POST
|
|
|
|
|
- **返回格式**: JSON
|
|
|
|
|
- **字符编码**: UTF-8
|
|
|
|
|
- **用户认证**: 通过Session/Token获取用户ID,接口内部逻辑处理
|
|
|
|
|
|
|
|
|
|
### 1.2 返回格式
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"code": 0,
|
|
|
|
|
"msg": "success",
|
|
|
|
|
"data": {}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 1.3 错误码说明
|
|
|
|
|
|
|
|
|
|
| 错误码 | 说明 |
|
|
|
|
|
| ------ | -------------- |
|
|
|
|
|
| 0 | 成功 |
|
|
|
|
|
| 400 | 参数错误 |
|
|
|
|
|
| 401 | 未授权 |
|
|
|
|
|
| 403 | 禁止访问 |
|
|
|
|
|
| 404 | 资源不存在 |
|
|
|
|
|
| 500 | 服务器内部错误 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 二、患者端接口
|
|
|
|
|
|
|
|
|
|
### 2.1 获取基准照设置状态
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/baseline-status`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ---------------- | ------ | -------------------- |
|
|
|
|
|
| hasBaseline | bool | 是否已设置基准照 |
|
|
|
|
|
| baselineRecordId | string | 基准照记录ID(如果有) |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 2.2 获取突眼记录列表
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/record-list`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| -------- | ---- | ---- | ---------------- |
|
|
|
|
|
| page | int | 否 | 页码(默认1) |
|
|
|
|
|
| pageSize | int | 否 | 每页数量(默认10) |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| --------------------------- | ------- | ------------------------------- |
|
|
|
|
|
| list[].recordId | string | 记录ID |
|
|
|
|
|
| list[].recordDate | string | 记录日期 |
|
|
|
|
|
| list[].isBaseline | int | 是否基准照(0-否,1-是) |
|
|
|
|
|
| list[].photoCount | int | 已上传照片数量 |
|
|
|
|
|
| list[].firstPhotoUrl | string | 第一张角度图片 |
|
|
|
|
|
| list[].treatmentCount | int | 替妥尤单抗使用次数 |
|
|
|
|
|
| list[].leftEye | decimal | 左眼凸眼度(mm) |
|
|
|
|
|
| list[].rightEye | decimal | 右眼凸眼度(mm) |
|
|
|
|
|
| list[].interorbitalDistance | decimal | 框间距(mm) |
|
|
|
|
|
| list[].uploadCompleted | int | 上传是否完成(0-未完成,1-已完成) |
|
|
|
|
|
| pagination.total | int | 总记录数 |
|
|
|
|
|
| pagination.page | int | 当前页码 |
|
|
|
|
|
| pagination.pageSize | int | 每页数量 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 2.3 获取突眼记录详情
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/record-detail`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| -------- | ------ | ---- | ------ |
|
|
|
|
|
| recordId | string | 是 | 记录ID |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ----------------------- | ------- | ------------------------------- |
|
|
|
|
|
| recordId | string | 记录ID |
|
|
|
|
|
| recordDate | string | 记录日期 |
|
|
|
|
|
| treatmentCount | int | 替妥尤单抗使用次数 |
|
|
|
|
|
| isBaseline | int | 是否基准照(0-否,1-是) |
|
|
|
|
|
| leftEye | decimal | 左眼凸眼度(mm) |
|
|
|
|
|
| rightEye | decimal | 右眼凸眼度(mm) |
|
|
|
|
|
| interorbitalDistance | decimal | 框间距(mm) |
|
|
|
|
|
| uploadCompleted | int | 上传是否完成(0-未完成,1-已完成) |
|
|
|
|
|
| photos[] | array | 照片列表 |
|
|
|
|
|
| photos[].photoId | string | 照片ID |
|
|
|
|
|
| photos[].photoAngle | string | 照片角度 |
|
|
|
|
|
| photos[].photoAngleName | string | 照片角度名称 |
|
|
|
|
|
| photos[].photoUrl | string | 照片链接 |
|
|
|
|
|
| photos[].uploadTime | string | 上传时间 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 2.4 创建/更新突眼记录(含图片ID列表)
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/record-save`
|
|
|
|
|
- **请求方式**: POST
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
- **Content-Type**: application/json
|
|
|
|
|
|
|
|
|
|
#### 请求参数(修订)
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| -------------------- | ------- | ---- | ---------------------------------------------------- |
|
|
|
|
|
| recordId | string | 否 | 记录ID(更新时必填) |
|
|
|
|
|
| recordDate | string | 是 | 记录日期(YYYY-MM-DD) |
|
|
|
|
|
| treatmentCount | int | 是 | 替妥尤单抗使用次数(0-9,9表示大于8) |
|
|
|
|
|
| isBaseline | int | 是 | 是否基准照(0-否,1-是) |
|
|
|
|
|
| leftEye | decimal | 否 | 左眼凸眼度(mm) |
|
|
|
|
|
| rightEye | decimal | 否 | 右眼凸眼度(mm) |
|
|
|
|
|
| interorbitalDistance | decimal | 否 | 框间距(mm) |
|
|
|
|
|
| photoIds | string | 否 | 图片ID列表(多个用逗号分隔,photoUpload返回的photoId) |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| -------- | ------ | ------ |
|
|
|
|
|
| recordId | string | 记录ID |
|
|
|
|
|
|
|
|
|
|
#### 业务流程(修订后)
|
|
|
|
|
|
|
|
|
|
1. 前端:点击保存按钮时,先调用 photo-upload 上传照片(此时没有recordId,返回临时photoId)
|
|
|
|
|
2. 前端:然后调用 record-save 保存基本信息(含photoIds),将照片关联到记录
|
|
|
|
|
3. 这样设计是因为只有一个保存按钮,需要先创建记录,再上传照片
|
|
|
|
|
|
|
|
|
|
#### 业务规则
|
|
|
|
|
|
|
|
|
|
- 同一天只能创建一条记录,若已存在返回错误提示:"该日期已有记录,同一天不可重复记录"
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 2.5 上传照片(含图片安全校验)
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/photo-upload`
|
|
|
|
|
- **请求方式**: POST
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
- **Content-Type**: application/json
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ---------- | ------ | ---- | ------------------------------------ |
|
|
|
|
|
| recordId | string | 否 | 记录ID(创建记录后可传,用于关联记录) |
|
|
|
|
|
| sessionId | string | 否 | 会话ID |
|
|
|
|
|
| photoAngle | string | 是 | 照片角度 |
|
|
|
|
|
| photoUrl | string | 是 | 照片链接 |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ----------- | ------ | -------------------------------------------------- |
|
|
|
|
|
| photoId | string | 照片ID(用于后续关联到记录) |
|
|
|
|
|
| checkStatus | int | 审核状态(1-机审通过,2-机审不通过,3-人工审核不通过) |
|
|
|
|
|
| isContinue | bool | 是否允许继续(不合规时根据配置决定) |
|
|
|
|
|
| message | string | 提示信息 |
|
|
|
|
|
|
|
|
|
|
#### 业务流程(调整后)
|
|
|
|
|
|
|
|
|
|
1. 前端:先调用 photo-upload 上传照片,返回 photoId
|
|
|
|
|
2. 前端:再调用 record-save,传入 photoIds 关联照片和记录
|
|
|
|
|
|
|
|
|
|
#### 同步保存数据
|
|
|
|
|
|
|
|
|
|
- userId(内部获取)
|
|
|
|
|
- sessionId(可能不存在)
|
|
|
|
|
- photoUrl
|
|
|
|
|
- uploadTime
|
|
|
|
|
- recordId(创建记录后传入)
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 2.6 删除突眼记录
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/record-delete`
|
|
|
|
|
- **请求方式**: POST
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
- **Content-Type**: application/json
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| -------- | ------ | ---- | ------ |
|
|
|
|
|
| recordId | string | 是 | 记录ID |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ------- | ---- | -------- |
|
|
|
|
|
| success | bool | 是否成功 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 2.7 获取对比照片可用日期
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/compare-dates`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ---------- | ------ | ---- | -------- |
|
|
|
|
|
| photoAngle | string | 是 | 照片角度 |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ---------------------------- | ------ | ---------------- |
|
|
|
|
|
| baseline | object | 基准照信息 |
|
|
|
|
|
| baseline.recordId | string | 记录ID |
|
|
|
|
|
| baseline.recordDate | string | 记录日期 |
|
|
|
|
|
| nonBaselineList[] | array | 非基准照日期列表 |
|
|
|
|
|
| nonBaselineList[].recordId | string | 记录ID |
|
|
|
|
|
| nonBaselineList[].recordDate | string | 记录日期 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 2.8 根据角度和日期列表获取照片
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/compare-photos`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ---------- | ------ | ---- | -------------------------- |
|
|
|
|
|
| photoAngle | string | 是 | 照片角度 |
|
|
|
|
|
| recordIds | string | 是 | 记录ID列表(多个用逗号分隔) |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ----------------------------- | ------- | -------------- |
|
|
|
|
|
| photos[] | array | 照片列表 |
|
|
|
|
|
| photos[].recordId | string | 记录ID |
|
|
|
|
|
| photos[].recordDate | string | 记录日期 |
|
|
|
|
|
| photos[].isBaseline | int | 是否基准照 |
|
|
|
|
|
| photos[].photoUrl | string | 照片链接 |
|
|
|
|
|
| photos[].leftEye | decimal | 左眼凸眼度 |
|
|
|
|
|
| photos[].rightEye | decimal | 右眼凸眼度 |
|
|
|
|
|
| photos[].interorbitalDistance | decimal | 框间距 |
|
|
|
|
|
| photos[].treatmentCount | int | 替妥尤使用次数 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 2.9 获取对比角度列表
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/get-compare-angle`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ------ | ---- | ---- | ---- |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| --------------------------- | ------ | ------------ |
|
|
|
|
|
| photoAngle | object | 对比角度列表 |
|
|
|
|
|
| photoAngle.front_open | string | 正面睁眼 |
|
|
|
|
|
| photoAngle.front_closed | string | 正面闭眼 |
|
|
|
|
|
| photoAngle.front_looking_up | string | 正面仰头 |
|
|
|
|
|
| photoAngle.side_left_90 | string | 90°左侧 |
|
|
|
|
|
| photoAngle.side_right_90 | string | 90°右侧 |
|
|
|
|
|
| photoAngle.side_left_45 | string | 45°左侧 |
|
|
|
|
|
| photoAngle.side_right_45 | string | 45°右侧 |
|
|
|
|
|
| photoAngle.eye_up_left | string | 左上 |
|
|
|
|
|
| photoAngle.eye_up | string | 向上 |
|
|
|
|
|
| photoAngle.eye_up_right | string | 右上 |
|
|
|
|
|
| photoAngle.eye_left | string | 向左 |
|
|
|
|
|
| photoAngle.eye_right | string | 向右 |
|
|
|
|
|
| photoAngle.eye_down_left | string | 左下 |
|
|
|
|
|
| photoAngle.eye_down | string | 向下 |
|
|
|
|
|
| photoAngle.eye_down_right | string | 右下 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 2.10 获取唯一标识
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/proptosis/get-session-id`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录用户ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ------ | ---- | ---- | ---- |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| --------- | ------ | -------- |
|
|
|
|
|
| sessionId | string | 唯一标识 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 三、医生端接口
|
|
|
|
|
|
|
|
|
|
### 3.1 获取患者最近的突眼记录
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/doctor/proptosis/latest`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/doctor/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录医生ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| --------- | ------ | ---- | ------ |
|
|
|
|
|
| patientId | string | 是 | 患者ID |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ------------------------- | ------ | ------- |
|
|
|
|
|
| recordId | string | 记录ID |
|
|
|
|
|
| photoAngle.side_right_45 | string | 45°右侧 |
|
|
|
|
|
| photoAngle.eye_up_left | string | 左上 |
|
|
|
|
|
| photoAngle.eye_up | string | 向上 |
|
|
|
|
|
| photoAngle.eye_up_right | string | 右上 |
|
|
|
|
|
| photoAngle.eye_left | string | 向左 |
|
|
|
|
|
| photoAngle.eye_right | string | 向右 |
|
|
|
|
|
| photoAngle.eye_down_left | string | 左下 |
|
|
|
|
|
| photoAngle.eye_down | string | 向下 |
|
|
|
|
|
| photoAngle.eye_down_right | string | 右下 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 三、医生端接口
|
|
|
|
|
|
|
|
|
|
### 3.1 获取患者最近的突眼记录
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/doctor/proptosis/latest`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/doctor/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录医生ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| --------- | ------ | ---- | ------ |
|
|
|
|
|
| patientId | string | 是 | 患者ID |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| -------------------- | ------- | --------------------- |
|
|
|
|
|
| recordId | string | 记录ID |
|
|
|
|
|
| recordDate | string | 记录日期 |
|
|
|
|
|
| treatmentCount | int | 替妥尤单抗使用次数 |
|
|
|
|
|
| leftEye | decimal | 左眼凸眼度(mm) |
|
|
|
|
|
| rightEye | decimal | 右眼凸眼度(mm) |
|
|
|
|
|
| interorbitalDistance | decimal | 框间距(mm) |
|
|
|
|
|
| isBaseline | int | 是否基准照(0-否,1-是) |
|
|
|
|
|
| photoCount | int | 照片数量 |
|
|
|
|
|
| firstPhotoUrl | string | 第一张角度图片 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 3.2 获取患者所有突眼记录列表
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/doctor/proptosis/list`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/doctor/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录医生ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| --------- | ------ | ---- | ---------------- |
|
|
|
|
|
| patientId | string | 是 | 患者ID |
|
|
|
|
|
| page | int | 否 | 页码(默认1) |
|
|
|
|
|
| pageSize | int | 否 | 每页数量(默认10) |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| --------------------------- | ------- | --------------------- |
|
|
|
|
|
| list[].recordId | string | 记录ID |
|
|
|
|
|
| list[].recordDate | string | 记录日期 |
|
|
|
|
|
| list[].treatmentCount | int | 替妥尤单抗使用次数 |
|
|
|
|
|
| list[].leftEye | decimal | 左眼凸眼度(mm) |
|
|
|
|
|
| list[].rightEye | decimal | 右眼凸眼度(mm) |
|
|
|
|
|
| list[].interorbitalDistance | decimal | 框间距(mm) |
|
|
|
|
|
| list[].isBaseline | int | 是否基准照(0-否,1-是) |
|
|
|
|
|
| list[].photoCount | int | 照片数量 |
|
|
|
|
|
| list[].firstPhotoUrl | string | 第一张角度图片 |
|
|
|
|
|
| list[].uploadCompleted | int | 上传是否完成 |
|
|
|
|
|
| pagination.total | int | 总记录数 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 3.3 获取患者某条突眼记录详情
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/doctor/proptosis/detail`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/doctor/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录医生ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| -------- | ------ | ---- | ------ |
|
|
|
|
|
| recordId | string | 是 | 记录ID |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ----------------------- | ------- | ------------------------------- |
|
|
|
|
|
| recordId | string | 记录ID |
|
|
|
|
|
| userId | string | 用户ID |
|
|
|
|
|
| patientId | string | 患者ID |
|
|
|
|
|
| recordDate | string | 记录日期 |
|
|
|
|
|
| treatmentCount | int | 替妥尤单抗使用次数 |
|
|
|
|
|
| isBaseline | int | 是否基准照(0-否,1-是) |
|
|
|
|
|
| leftEye | decimal | 左眼凸眼度(mm) |
|
|
|
|
|
| rightEye | decimal | 右眼凸眼度(mm) |
|
|
|
|
|
| interorbitalDistance | decimal | 框间距(mm) |
|
|
|
|
|
| uploadCompleted | int | 上传是否完成(0-未完成,1-已完成) |
|
|
|
|
|
| photos[] | array | 照片列表 |
|
|
|
|
|
| photos[].photoId | string | 照片ID |
|
|
|
|
|
| photos[].photoAngle | string | 照片角度 |
|
|
|
|
|
| photos[].photoAngleName | string | 照片角度名称 |
|
|
|
|
|
| photos[].photoUrl | string | 照片链接 |
|
|
|
|
|
| photos[].uploadTime | string | 上传时间 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 3.4 获取患者凸眼度对比(Excel导出)
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/doctor/proptosis/export`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/doctor/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录医生ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| --------- | ------ | ---- | ------ |
|
|
|
|
|
| patientId | string | 是 | 患者ID |
|
|
|
|
|
|
|
|
|
|
#### 返回格式
|
|
|
|
|
|
|
|
|
|
- **Content-Type**: application/vnd.ms-excel
|
|
|
|
|
- **Content-Disposition**: attachment; filename="凸眼度对比\_日期.xlsx"
|
|
|
|
|
|
|
|
|
|
#### Excel数据格式
|
|
|
|
|
|
|
|
|
|
| 列名 | 说明 |
|
|
|
|
|
| -------------- | ------------------ |
|
|
|
|
|
| 日期 | 记录日期 |
|
|
|
|
|
| 替妥尤输入次数 | 替妥尤单抗使用次数 |
|
|
|
|
|
| 左眼度 | 左眼凸眼度(mm) |
|
|
|
|
|
| 右眼度 | 右眼凸眼度(mm) |
|
|
|
|
|
| 框间距 | 框间距(mm) |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 3.5 获取患者凸眼照对比数据(统一使用recordIds)
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/doctor/proptosis/compare`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/doctor/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录医生ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数(修订)
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ---------- | ------ | ---- | ------------------------------------------------ |
|
|
|
|
|
| patientId | string | 是 | 患者ID |
|
|
|
|
|
| photoAngle | string | 是 | 照片角度 |
|
|
|
|
|
| recordIds | string | 否 | 需对比的记录ID列表(多个用逗号分隔,与患者端一致) |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ---------------------------------- | ------- | -------------- |
|
|
|
|
|
| baseline | object | 基准照信息 |
|
|
|
|
|
| baseline.recordId | string | 记录ID |
|
|
|
|
|
| baseline.recordDate | string | 记录日期 |
|
|
|
|
|
| baseline.photoUrl | string | 照片链接 |
|
|
|
|
|
| baseline.leftEye | decimal | 左眼凸眼度(mm) |
|
|
|
|
|
| baseline.rightEye | decimal | 右眼凸眼度(mm) |
|
|
|
|
|
| baseline.interorbitalDistance | decimal | 框间距(mm) |
|
|
|
|
|
| baseline.treatmentCount | int | 替妥尤使用次数 |
|
|
|
|
|
| compareList[] | array | 对比记录列表 |
|
|
|
|
|
| compareList[].recordId | string | 记录ID |
|
|
|
|
|
| compareList[].recordDate | string | 记录日期 |
|
|
|
|
|
| compareList[].photoUrl | string | 照片链接 |
|
|
|
|
|
| compareList[].leftEye | decimal | 左眼凸眼度(mm) |
|
|
|
|
|
| compareList[].rightEye | decimal | 右眼凸眼度(mm) |
|
|
|
|
|
| compareList[].interorbitalDistance | decimal | 框间距(mm) |
|
|
|
|
|
| compareList[].treatmentCount | int | 替妥尤使用次数 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 3.6 获取对比角度列表
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=xd/doctor/proptosis/get-compare-angle`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/modules/xd_frontend/controllers/doctor/ProptosisController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录医生ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ------ | ---- | ---- | ---- |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| --------------------------- | ------ | ------------ |
|
|
|
|
|
| photoAngle | object | 对比角度列表 |
|
|
|
|
|
| photoAngle.front_open | string | 正面睁眼 |
|
|
|
|
|
| photoAngle.front_closed | string | 正面闭眼 |
|
|
|
|
|
| photoAngle.front_looking_up | string | 正面仰头 |
|
|
|
|
|
| photoAngle.side_left_90 | string | 90°左侧 |
|
|
|
|
|
| photoAngle.side_right_90 | string | 90°右侧 |
|
|
|
|
|
| photoAngle.side_left_45 | string | 45°左侧 |
|
|
|
|
|
| photoAngle.side_right_45 | string | 45°右侧 |
|
|
|
|
|
| photoAngle.eye_up_left | string | 左上 |
|
|
|
|
|
| photoAngle.eye_up | string | 向上 |
|
|
|
|
|
| photoAngle.eye_up_right | string | 右上 |
|
|
|
|
|
| photoAngle.eye_left | string | 向左 |
|
|
|
|
|
| photoAngle.eye_right | string | 向右 |
|
|
|
|
|
| photoAngle.eye_down_left | string | 左下 |
|
|
|
|
|
| photoAngle.eye_down | string | 向下 |
|
|
|
|
|
| photoAngle.eye_down_right | string | 右下 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 四、管理后台接口
|
|
|
|
|
|
|
|
|
|
### 4.1 获取图片列表
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=photo/list`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/family/controller/PhotoController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录管理员ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ----------- | ------ | ---- | -------------------------------------------------- |
|
|
|
|
|
| page | int | 否 | 页码(默认1) |
|
|
|
|
|
| pageSize | int | 否 | 每页数量(默认10) |
|
|
|
|
|
| userId | string | 否 | 用户ID |
|
|
|
|
|
| patientId | string | 否 | 患者ID |
|
|
|
|
|
| startDate | string | 否 | 开始日期(YYYY-MM-DD) |
|
|
|
|
|
| endDate | string | 否 | 结束日期(YYYY-MM-DD) |
|
|
|
|
|
| checkStatus | int | 否 | 审核状态(1-机审通过,2-机审不通过,3-人工审核不通过) |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| -------------------------- | ------ | -------------------------------------------------- |
|
|
|
|
|
| list[].photoId | string | 照片ID |
|
|
|
|
|
| list[].submitTime | string | 提交时间 |
|
|
|
|
|
| list[].doctorName | string | 邀约医生 |
|
|
|
|
|
| list[].userIdentity | string | 用户身份 |
|
|
|
|
|
| list[].userName | string | 用户姓名 |
|
|
|
|
|
| list[].photoAngle | string | 拍摄角度 |
|
|
|
|
|
| list[].photoAngleName | string | 拍摄角度名称 |
|
|
|
|
|
| list[].photoUrl | string | 拍摄图片 |
|
|
|
|
|
| list[].checkStatus | int | 审核状态(1-机审通过,2-机审不通过,3-人工审核不通过) |
|
|
|
|
|
| list[].operation | object | 可操作信息 |
|
|
|
|
|
| list[].operation.canReject | bool | 是否可驳回 |
|
|
|
|
|
| pagination.total | int | 总记录数 |
|
|
|
|
|
|
|
|
|
|
#### 业务规则
|
|
|
|
|
|
|
|
|
|
- 机审通过(状态1)时,显示"审核驳回"按钮
|
|
|
|
|
- 机审不通过(状态2)时,无操作按钮
|
|
|
|
|
- 人工审核不通过(状态3)时,无操作按钮
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 4.2 人工审核驳回
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=photo/reject`
|
|
|
|
|
- **请求方式**: POST
|
|
|
|
|
- **代码位置**: `shop/family/controller/PhotoController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录管理员ID
|
|
|
|
|
- **Content-Type**: application/json
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ------- | ------ | ---- | ------ |
|
|
|
|
|
| photoId | string | 是 | 照片ID |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ------- | ---- | -------- |
|
|
|
|
|
| success | bool | 是否成功 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 4.3 获取系统配置
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=settings/get-proptosis-config`
|
|
|
|
|
- **请求方式**: GET
|
|
|
|
|
- **代码位置**: `shop/family/controller/SettingsController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录管理员ID
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| --------- | ------ | ---- | -------------------------- |
|
|
|
|
|
| configKey | string | 否 | 配置键(不传则返回所有配置) |
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ----------- | ------ | -------- |
|
|
|
|
|
| configKey | string | 配置键 |
|
|
|
|
|
| configValue | string | 配置值 |
|
|
|
|
|
| description | string | 配置描述 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### 4.4 设置系统配置
|
|
|
|
|
|
|
|
|
|
#### 接口信息
|
|
|
|
|
|
|
|
|
|
- **接口路径**: `/?r=settings/set-proptosis-config`
|
|
|
|
|
- **请求方式**: POST
|
|
|
|
|
- **代码位置**: `shop/family/controller/SettingsController.php`
|
|
|
|
|
- **认证方式**: 内部获取当前登录管理员ID
|
|
|
|
|
- **Content-Type**: application/json
|
|
|
|
|
|
|
|
|
|
#### 请求参数
|
|
|
|
|
|
|
|
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|
|
|
| ----------- | ------ | ---- | -------- |
|
|
|
|
|
| configKey | string | 是 | 配置键 |
|
|
|
|
|
| configValue | string | 是 | 配置值 |
|
|
|
|
|
| description | string | 否 | 配置描述 |
|
|
|
|
|
|
|
|
|
|
#### 预置配置
|
|
|
|
|
|
|
|
|
|
- `proptosis_continue_on_failed`: 不合规图片是否继续(1-是,0-否)
|
|
|
|
|
|
|
|
|
|
#### 返回字段
|
|
|
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|
|
| ------- | ---- | -------- |
|
|
|
|
|
| success | bool | 是否成功 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 五、腾讯云IMS集成说明
|
|
|
|
|
|
|
|
|
|
### 5.1 图片内容安全校验
|
|
|
|
|
|
|
|
|
|
- 调用腾讯云图片内容安全(Image Moderation)接口
|
|
|
|
|
- 检测图片是否包含违规内容(色情、暴力等)
|
|
|
|
|
- 同步返回检测结果
|
|
|
|
|
|
|
|
|
|
### 5.2 配置项说明(使用t_settings表)
|
|
|
|
|
|
|
|
|
|
| 配置键 | 配置值 | 说明 |
|
|
|
|
|
| ---------------------------- | ------ | ------------------------------ |
|
|
|
|
|
| proptosis_continue_on_failed | 1 | 不合规图片允许继续上传 |
|
|
|
|
|
| proptosis_continue_on_failed | 0 | 不合规图片不允许继续上传(报错) |
|
|
|
|
|
|
|
|
|
|
### 5.3 校验结果处理
|
|
|
|
|
|
|
|
|
|
| 校验结果 | 配置值 | 返回状态 | 是否允许继续 |
|
|
|
|
|
| -------- | --------- | ------------- | ------------ |
|
|
|
|
|
| 通过 | - | 1(机审通过) | 是 |
|
|
|
|
|
| 不通过 | 1(继续) | 2(机审不通过) | 是 |
|
|
|
|
|
| 不通过 | 0(不继续) | 2(机审不通过) | 否 |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 六、代码文件结构
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
shop/
|
|
|
|
|
├── modules/
|
|
|
|
|
│ └── xd_frontend/
|
|
|
|
|
│ └── controllers/
|
|
|
|
|
│ ├── ProptosisController.php # 患者端控制器
|
|
|
|
|
│ └── doctor/
|
|
|
|
|
│ └── ProptosisController.php # 医生端控制器
|
|
|
|
|
└── family/
|
|
|
|
|
└── controller/
|
|
|
|
|
├── PhotoController.php # 管理后台-图片管理
|
|
|
|
|
└── SettingsController.php # 管理后台-配置管理
|
|
|
|
|
```
|