Files
zyt/API接口文档.md
T
2026-03-04 15:32:30 +08:00

410 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 中医诊单API接口文档
## 基础信息
- 基础路径:`/adminapi`
- 请求方式:支持GET、POST
- 返回格式:JSON
- 需要认证:是(需要登录token
## 接口列表
### 1. 获取诊单列表
**接口地址:** `/tcm.diagnosis/lists`
**请求方式:** GET
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| page | int | 否 | 页码,默认1 |
| size | int | 否 | 每页数量,默认20 |
| patient_name | string | 否 | 患者姓名(模糊搜索) |
| patient_id | int | 否 | 患者ID |
| gender | int | 否 | 性别:0-女 1-男 |
| diagnosis_type | string | 否 | 诊断类型 |
| syndrome_type | string | 否 | 证型 |
| status | int | 否 | 状态:0-禁用 1-启用 |
| start_time | string | 否 | 开始时间(诊断日期) |
| end_time | string | 否 | 结束时间(诊断日期) |
**请求示例:**
```
GET /adminapi/tcm.diagnosis/lists?page=1&size=20&patient_name=张三
```
**返回参数:**
| 参数名 | 类型 | 说明 |
|--------|------|------|
| code | int | 状态码:1-成功 0-失败 |
| msg | string | 提示信息 |
| data | object | 返回数据 |
| data.lists | array | 诊单列表 |
| data.count | int | 总数量 |
| data.page_no | int | 当前页码 |
| data.page_size | int | 每页数量 |
**返回示例:**
```json
{
"code": 1,
"msg": "success",
"data": {
"lists": [
{
"id": 1,
"patient_id": 10001,
"patient_name": "张三",
"gender": 1,
"gender_desc": "男",
"age": 45,
"diagnosis_date": 1709222400,
"diagnosis_date_text": "2024-03-01",
"diagnosis_type": "first_visit",
"syndrome_type": "qi_deficiency",
"status": 1,
"status_desc": "启用",
"create_time": "2024-03-01 10:00:00",
"update_time": "2024-03-01 10:00:00"
}
],
"count": 100,
"page_no": 1,
"page_size": 20
}
}
```
---
### 2. 获取诊单详情
**接口地址:** `/tcm.diagnosis/detail`
**请求方式:** GET
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | int | 是 | 诊单ID |
**请求示例:**
```
GET /adminapi/tcm.diagnosis/detail?id=1
```
**返回参数:**
| 参数名 | 类型 | 说明 |
|--------|------|------|
| code | int | 状态码:1-成功 0-失败 |
| msg | string | 提示信息 |
| data | object | 诊单详情 |
**返回示例:**
```json
{
"code": 1,
"msg": "success",
"data": {
"id": 1,
"patient_id": 10001,
"patient_name": "张三",
"gender": 1,
"gender_desc": "男",
"age": 45,
"diagnosis_date": "2024-03-01",
"diagnosis_type": "first_visit",
"syndrome_type": "qi_deficiency",
"past_history": ["hypertension", "diabetes"],
"symptoms": "乏力、气短、自汗",
"tongue_coating": "舌淡苔白",
"pulse": "脉细弱",
"treatment_principle": "补气健脾",
"prescription": "四君子汤加减\n党参15g 白术12g 茯苓12g 甘草6g",
"doctor_advice": "忌食生冷,注意休息",
"remark": "",
"status": 1,
"status_desc": "启用",
"create_time": "2024-03-01 10:00:00",
"update_time": "2024-03-01 10:00:00"
}
}
```
---
### 3. 新增诊单
**接口地址:** `/tcm.diagnosis/add`
**请求方式:** POST
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| patient_id | int | 是 | 患者ID |
| patient_name | string | 是 | 患者姓名 |
| gender | int | 是 | 性别:0-女 1-男 |
| age | int | 是 | 年龄(0-150 |
| diagnosis_date | string | 是 | 诊断日期(格式:YYYY-MM-DD |
| diagnosis_type | string | 是 | 诊断类型 |
| syndrome_type | string | 是 | 证型 |
| past_history | array | 否 | 既往史(数组) |
| symptoms | string | 否 | 症状 |
| tongue_coating | string | 否 | 舌苔 |
| pulse | string | 否 | 脉象 |
| treatment_principle | string | 否 | 治则 |
| prescription | string | 否 | 处方 |
| doctor_advice | string | 否 | 医嘱 |
| remark | string | 否 | 备注 |
| status | int | 否 | 状态:0-禁用 1-启用,默认1 |
**请求示例:**
```json
{
"patient_id": 10001,
"patient_name": "张三",
"gender": 1,
"age": 45,
"diagnosis_date": "2024-03-01",
"diagnosis_type": "first_visit",
"syndrome_type": "qi_deficiency",
"past_history": ["hypertension", "diabetes"],
"symptoms": "乏力、气短、自汗",
"tongue_coating": "舌淡苔白",
"pulse": "脉细弱",
"treatment_principle": "补气健脾",
"prescription": "四君子汤加减\n党参15g 白术12g 茯苓12g 甘草6g",
"doctor_advice": "忌食生冷,注意休息",
"status": 1
}
```
**返回示例:**
```json
{
"code": 1,
"msg": "添加成功",
"data": [],
"show": 1,
"error": 1
}
```
---
### 4. 编辑诊单
**接口地址:** `/tcm.diagnosis/edit`
**请求方式:** POST
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | int | 是 | 诊单ID |
| patient_name | string | 是 | 患者姓名 |
| gender | int | 是 | 性别:0-女 1-男 |
| age | int | 是 | 年龄(0-150 |
| diagnosis_date | string | 是 | 诊断日期(格式:YYYY-MM-DD |
| diagnosis_type | string | 是 | 诊断类型 |
| syndrome_type | string | 是 | 证型 |
| past_history | array | 否 | 既往史(数组) |
| symptoms | string | 否 | 症状 |
| tongue_coating | string | 否 | 舌苔 |
| pulse | string | 否 | 脉象 |
| treatment_principle | string | 否 | 治则 |
| prescription | string | 否 | 处方 |
| doctor_advice | string | 否 | 医嘱 |
| remark | string | 否 | 备注 |
| status | int | 否 | 状态:0-禁用 1-启用 |
**请求示例:**
```json
{
"id": 1,
"patient_name": "张三",
"gender": 1,
"age": 45,
"diagnosis_date": "2024-03-01",
"diagnosis_type": "follow_up",
"syndrome_type": "qi_deficiency",
"past_history": ["hypertension", "diabetes"],
"symptoms": "乏力、气短、自汗",
"tongue_coating": "舌淡苔白",
"pulse": "脉细弱",
"treatment_principle": "补气健脾",
"prescription": "四君子汤加减\n党参15g 白术12g 茯苓12g 甘草6g",
"doctor_advice": "忌食生冷,注意休息",
"status": 1
}
```
**返回示例:**
```json
{
"code": 1,
"msg": "编辑成功",
"data": [],
"show": 1,
"error": 1
}
```
---
### 5. 删除诊单
**接口地址:** `/tcm.diagnosis/delete`
**请求方式:** POST
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| id | int | 是 | 诊单ID |
**请求示例:**
```json
{
"id": 1
}
```
**返回示例:**
```json
{
"code": 1,
"msg": "删除成功",
"data": [],
"show": 1,
"error": 1
}
```
---
## 错误码说明
| 错误码 | 说明 |
|--------|------|
| 1 | 成功 |
| 0 | 失败 |
| -1 | 参数错误 |
| -2 | 数据不存在 |
| -3 | 权限不足 |
| -4 | 未登录 |
## 字典数据说明
### 既往史(past_history
| 值 | 名称 |
|----|------|
| hypertension | 高血压 |
| diabetes | 糖尿病 |
| coronary_heart_disease | 冠心病 |
| cerebrovascular_disease | 脑血管疾病 |
| hepatitis | 肝炎 |
| kidney_disease | 肾病 |
| asthma | 哮喘 |
| stomach_disease | 胃病 |
| surgery_history | 手术史 |
| allergy_history | 过敏史 |
| other | 其他 |
### 诊断类型(diagnosis_type
| 值 | 名称 |
|----|------|
| first_visit | 初诊 |
| follow_up | 复诊 |
| consultation | 会诊 |
### 证型(syndrome_type
| 值 | 名称 |
|----|------|
| qi_deficiency | 气虚 |
| blood_deficiency | 血虚 |
| yin_deficiency | 阴虚 |
| yang_deficiency | 阳虚 |
| qi_stagnation | 气滞 |
| blood_stasis | 血瘀 |
| phlegm_dampness | 痰湿 |
| damp_heat | 湿热 |
| cold_dampness | 寒湿 |
| wind_cold | 风寒 |
| wind_heat | 风热 |
## 注意事项
1. 所有接口都需要在请求头中携带token:`Authorization: Bearer {token}`
2. 日期格式统一使用:`YYYY-MM-DD`
3. 既往史字段在提交时为数组,返回时也为数组
4. 诊断日期在列表中返回时间戳和格式化文本两种格式
5. 性别和状态字段会返回原始值和描述文本
6. 分页参数page和size为可选,默认page=1size=20
## 测试工具
推荐使用以下工具测试接口:
- Postman
- Apifox
- Insomnia
- curl命令行
## 示例代码
### JavaScript/Axios
```javascript
// 获取诊单列表
axios.get('/adminapi/tcm.diagnosis/lists', {
params: {
page: 1,
size: 20,
patient_name: '张三'
},
headers: {
'Authorization': 'Bearer ' + token
}
})
// 新增诊单
axios.post('/adminapi/tcm.diagnosis/add', {
patient_id: 10001,
patient_name: '张三',
gender: 1,
age: 45,
diagnosis_date: '2024-03-01',
diagnosis_type: 'first_visit',
syndrome_type: 'qi_deficiency',
past_history: ['hypertension', 'diabetes']
}, {
headers: {
'Authorization': 'Bearer ' + token
}
})
```
### PHP/cURL
```php
// 获取诊单列表
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://your-domain.com/adminapi/tcm.diagnosis/lists?page=1&size=20');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token
]);
$response = curl_exec($ch);
curl_close($ch);
```