9.5 KiB
9.5 KiB
中医诊单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 | 每页数量 |
返回示例:
{
"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 | 诊单详情 |
返回示例:
{
"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 |
请求示例:
{
"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
}
返回示例:
{
"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-启用 |
请求示例:
{
"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
}
返回示例:
{
"code": 1,
"msg": "编辑成功",
"data": [],
"show": 1,
"error": 1
}
5. 删除诊单
接口地址: /tcm.diagnosis/delete
请求方式: POST
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是 | 诊单ID |
请求示例:
{
"id": 1
}
返回示例:
{
"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 | 风热 |
注意事项
- 所有接口都需要在请求头中携带token:
Authorization: Bearer {token} - 日期格式统一使用:
YYYY-MM-DD - 既往史字段在提交时为数组,返回时也为数组
- 诊断日期在列表中返回时间戳和格式化文本两种格式
- 性别和状态字段会返回原始值和描述文本
- 分页参数page和size为可选,默认page=1,size=20
测试工具
推荐使用以下工具测试接口:
- Postman
- Apifox
- Insomnia
- curl命令行
示例代码
JavaScript/Axios
// 获取诊单列表
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
// 获取诊单列表
$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);