# 中医诊单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=1,size=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); ```