# 【在线门诊】接入文档
# 1.背景介绍
疫情时代,很多患者对于在线复诊的需求日益旺盛,许多医院也自建了互联网医院,专门服务于需要在线复诊、开方续方的患者。我们接入此类服务,一方面丰富了我们已有的医院服务能力,一方面也满足了更多患者的就医需求
大体的流程时序可以参考下图
a.静态数据的定期同步
b.整体数据依赖
# 1.1 对接说明
# 2.接口说明
接入前必看
- 网关接入请看网关接入标准
- 双方请求链接的格式如下:
a、腾讯请求合作方:${合作方提供请求的链接前缀} + 接口名
eg: https://xxxx.partern.com/api/hospitals
b、网关接入文档中的
$app
直接用hsInquiry
替代即可eg: https://med-biz-pre.wecity.qq.com/api/hsInquiry/syncDoctorServiceStatus/10000007
- 文档中非必传的字段可以不传,如果传了,相应的值必须要有特定的含义。不能为 undefined 或者 null
- 文档中的必传字段,根据类型可以有不同的默认值。
- a) 类型为 int,如果合作方返回
-1
,意味着该字段合作方无法提供有效值,腾讯侧会丢弃该字段- b) 类型为 string,如果合作方返回
''
,意味着该字段合作方无法提供有效值,腾讯侧会丢弃该字段- c) 类型为 array,如果合作方返回
[]
,意味着该字段合作方无法提供有效值,腾讯侧会丢弃该字段- d) 类型为 object,直接返回
{}
,意味着该字段合作方无法提供有效值,腾讯侧会丢弃该字段
# 2.1 静态基础数据(合作方提供)
1、这里主要指一些静态数据,腾讯侧会定期去拉取合作方方接口,并增量更新
2、考虑到不同合作方对接口拉取规则策略的不同(如:频率,单次拉取数据量等),腾讯侧可以适配不同的拉取策略
3、这些接口对实时性要求不一定高,但要求数据的准确性
# 2.1.1 批量获取医院信息
- 该接口主要用来批量获取合作方提供的医院信息
- 如果指定了 hospitalId,就获取指定医院的信息
接口名:
hospitals
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✖️ | 缺省时查询所有医院的信息 |
2 | cityCode | 城市 code | string | ✖️ | 缺省时查询所有城市医院 |
3 | areaCode | 区域 code | string | ✖️ | 缺省时查询城市下的所有区域医院 |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | count | 总记录条数 | int | ✔️ | |
4 | rsp | 返回详情 | array[HospitalInfo] | ✔️ |
# HospitalInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✔️ | |
2 | hospitalName | 医院名称 | string | ✔️ | 如医院有东、西院区,本次合作的业务在东院区,医院名称就需要返回 XX 医院(东院区),不能返回 xx 医院,同理则返回 XX 医院(西院区) |
3 | hospitalShortName | 医院简称 | string | ✖️ | |
4 | cityCode | 城市编码 | string | ✔️ | 参考附录 CityCode & AreaCode |
5 | areaCode | 区域编码 | string | ✔️ | 参考附录 CityCode & AreaCode |
6 | address | 医院地址 | string | ✔️ | |
7 | detail | 医院介绍 | string | ✖️ | |
8 | tel | 医院联系方式 | string | ✖️ | |
9 | geo | 医院经纬度地址 | string | ✔️ | 格式: 经度,维度 (以高德/腾讯地图为准) |
10 | url | 医院官网链接 | string | ✖️ | |
11 | logo | 医院 logo 链接 | string | ✔️ | |
12 | alias | 医院别名 | string | ✖️ | |
13 | hospitalLevel | 医院等级 | int | ✔️ | HospitalLevel |
14 | hospitalType | 医院类型 | int | ✔️ | HospitalType |
15 | hospitalRules | 医院预约规则 | array[string] | ✖️ | |
16 | branches | 分院列表 | array[HospitalInfo] | ✔️ | |
17 | payMethod | 支付方式 | int | ✖️ | 0:现场支付 1:现场和线上都支持 2:强制线上 |
18 | payPassTime | 非当天支付过期时间 | int | ✖️ | 单位:分 默认:半小时 部分合作方的当天和非当天支付时间不一样 |
19 | todayPayPassTime | 当天支付过期时间 | int | ✖️ | 单位:分 默认:半小时 |
20 | treatGuide | 就诊指引 | string | ✖️ | |
21 | smsContent | 短信模板 | string | ✖️ | 这里的动态信息用占位符代替,具体的字段参照 SmsTemplateParams |
22 | isNeedTreatCard | 是否需要就诊卡 | int | ✔️ | 0:不需要;1:需要 |
23 | letOutSourceTime | 放号时间 | string | ✖️ | 格式:HH:mm |
24 | letOutDays | 放号天数 | int | ✖️ | 单位:天 |
25 | inquiryRules | 医院在线门诊须知 | array[string] | ✖️ | 关于在线门诊的一些规则说明 |
# SmsTemplateParams
- 如果这里有字段不在列表中的,由于所有的接口命名规范统一,均可以在其他接口中找到相关参考字段
- 举个例子:
短信内容:
深圳市南山人民医院预约提示:订单号143185360,南山疼痛科门诊廖翔医生2019年07月29日(09:30-10:00) ,取号密码:4141471761,持身份证提前30分钟完成取号,无需打印预约凭条(口腔科除外),不能就诊及时取消, 就诊人:杨正祥。
smsContent 内容
${hospitalName}预约提示:订单号${appointId},${departmentName}${doctorName}医生${treatDate}(${sourceBeginTime}-${sourceEndTime}) ,取号密码:${hisTakeNo},持身份证提前30分钟完成取号,无需打印预约凭条(口腔科除外),不能就诊及时取消, 就诊人:${patientName}。
序号 | 字段 | 名称 | 类型 | 备注 |
---|---|---|---|---|
1 | hospitalName | 医院名称 | string | |
2 | departmentName | 科室名称 | string | |
3 | appointId | 医院订单号 | string | |
4 | doctorName | 医院名称 | string | |
5 | treatDate | 就诊日期 | string | |
6 | sourceBeginTime | 就诊开始时间 | string | |
7 | sourceEndTime | 就诊结束时间 | string | |
8 | patientName | 就诊人姓名 | string | |
9 | hisTakeNo | 取号密码 | string |
# 2.1.2 获取科室信息
- 该接口主要用来获取指定医院或分院的所有科室信息
- 对于有些 his 系统,可能实际还是要去 his 实时拉取科室信息。主要是针对当天挂号科室有变化的场景
接口名:
departments
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✔️ | |
2 | branchHospitalId | 分院 ID | string | ✖️ | 如果有分院则必须传分院,否则可能导致获取科室信息异常 |
3 | departmentId | 科室 ID | string | ✖️ | 缺省获取医院的所有科室 |
4 | isAll | 是否返回所有科室 | int | ✖️ | 默认返回所有科室 0:返回所有科室 1:只返回有号源可预约的科室 |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | count | 总记录条数 | int | ✔️ | |
4 | rsp | 返回详情 | array[DepartmentInfo] | ✔️ |
# DepartmentInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✔️ | 如果所属为分院,这里为分院 ID |
2 | departmentId | 科室 ID | string | ✔️ | |
3 | parentId | 父级科室 ID | string | ✖️ | 如果为一级科室,该值可留空 |
4 | departmentName | 科室名 | string | ✔️ | |
5 | departmentShortName | 科室简称 | string | ✖️ | |
6 | detail | 科室简介 | string | ✖️ | |
7 | tel | 科室电话 | string | ✖️ | |
8 | isToday | 是否当天挂号的科室 | int | ✖️ | 0 : 非当天 1:当天 2:都支持 |
9 | leftNum | 可预约数 | int | ✖️ | |
10 | treatLimit | 诊疗范围 | string | ✖️ | |
11 | totalDoctorCount | 医生总数 | int | ✖️ | |
12 | sourceBeginTime | 放号时间 | string | ✖️ | 格式:HH:mm |
13 | departmentRule | 科室的预约规则 | DepartmentRule | ✖️ | |
14 | payMethod | 支付方式 | int | ✖️ | 0:现场支付 1:现场和线上都支持 2:强制线上 |
15 | payPassTime | 支付过期时间 | int | ✖️ | 单位:分 默认:半小时 |
16 | notice | 科室公告 | string | ✖️ |
# DepartmentRule
如果没有限制,给空值即可
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | RULE_REGISTER_AGE_MIN | 最小年龄限制 | int | ✔️ | eg:18 |
2 | RULE_REGISTER_AGE_MAX | 最大年龄限制 | int | ✔️ | eg:40 |
3 | RULE_REGISTER_SEX | 性别限制 | int | ✔️ | 0:男 1:女 |
4 | RULE_REGISTER_TIPS_SHOW | 是否显示科室公告 | int | ✔️ | 0:不显示 1:滚动显示 2:弹窗显示 |
5 | RULE_REGISTER_COUNT_LIMIT | 预约次数限制 | int | ✔️ | 0:不限制 其他大于 0 的就是限制的次数 |
# 2.1.3 获取医生信息
- 对于有些 his 系统可能没有批量获取医生信息的接口,需要依赖于获取排班的时候才能拿到医生信息
接口名:
doctors
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✔️ | |
2 | departmentId | 科室 ID | string | ✔️ | |
3 | doctorId | 医生 ID | string | ✖️ | 缺省获取指定科室的所有医生 |
4 | branchHospitalId | 分院 ID | string | ✖️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | count | 总记录条数 | int | ✔️ | |
4 | rsp | 返回详情 | array[DoctorInfo] | ✔️ |
# DoctorInfo
由于
支付方式
和支付过期时间
在医院、科室和医生接口都存在,而实际情况也是各个不同合作方定义的维度不一样。这里的优先级是:医生 > 科室 > 医院
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✔️ | |
2 | departmentId | 科室 ID | string | ✔️ | |
3 | doctorId | 医生 ID | string | ✔️ | |
4 | doctorName | 医生名 | string | ✔️ | |
5 | sex | 性别 | int | ✖️ | 0 :男,1:女,2:其他 |
6 | no | 医生工号 | string | ✖️ | |
7 | ZCID | 职称名称 | string | ✔️ | 这里填表格里对应的中文,对应不上就填其他 |
8 | avatar | 医生头像 | string | ✔️ | 必须要返回医生的真实头像。如果没有,直接传空字符串即可,腾讯健康这边会有默认头像替代 |
9 | detail | 医生简介 | string | ✔️ | |
10 | goodAt | 医生擅长 | string | ✔️ | |
11 | payPassTime | 支付时间(分钟为单位) | int | ✖️ | 0 或者空表示没有限制 默认:半小时 |
12 | isTimeReg | 是否有分时 | int | ✖️ | 0 :否,1:是 |
13 | payMethod | 支付方式 | int | ✖️ | 0:现场支付 1:现场和线上都支持 2:强制线上 |
# 2.2 动态业务数据(合作方提供)
1、这些接口主要是需要腾讯侧从合作方实时调用,以保证整个在线门诊业务的完整性和良好的体验 2、以下接口对接口的响应质量会有一定要求,具体以相关产品指标为准
# 2.2.1 批量获取医生排班
接口名:
batchQueryScheduleInfo
批量获取指定医院、科室、时间段内的医生的所有排班信息
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✔️ | |
2 | departmentId | 科室 ID | string | ✔️ | |
3 | doctorId | 医生 ID | string | ✖️ | 如果指定了医生 ID,表示要获取单个医生的排班信息 |
4 | beginDate | 排班开始日期 | string | ✖️ | 格式:yyyy-MM-dd |
5 | endDate | 排班结束日期 | string | ✖️ | 格式:yyyy-MM-dd (如果没有传递时间,默认返回当天的排班信息) |
6 | branchHospitalId | 分院 ID | string | ✖️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | count | 总记录条数 | int | ✔️ | |
4 | rsp | 返回详情 | array[ScheduleInfo] | ✔️ | 无数据时,返回空数组 |
# ScheduleInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | doctorId | 医生 ID | string | ✔️ | |
2 | appointType | 预约模式 | int | ✔️ | 0 :非预约模式 1:预约模式 |
3 | serviceStatus | 医生在线就诊服务状态 | int | ✖️ | 详见 ServiceStatus |
4 | scheduleDetail | 排班的详情 | array[ScheduleSKU] | ✔️ | |
5 | inquiryTypes | 支持的问诊类型 | array[string] | ✖️ | 废弃,应使用 InquiryTypeId 字段 |
6 | inquiryTypeIds | 支持的问诊类型 ID | array[int] | ✖️ | 当不同医生需要支持不同问诊类型时填写此值,详见 InquiryTypeId。当此值为空时默认医生支持医院的所有问诊类型。 |
# ScheduleSKU
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | scheduleId | 排班 ID | string | ✔️ | |
2 | inquiryMode | 问诊模式 | string | ✔️ | 详见 InquiryMode |
3 | scheduleDate | 排班日期 | string | ✔️ | 格式:yyyy-MM-dd |
4 | scheduleBeginTime | 排班开始时间段 | string | ✔️ | 格式:HH:mm |
5 | scheduleEndTime | 排班结束时间段 | string | ✔️ | 格式:HH:mm |
6 | inquiryFee | 就诊费用 | int | ✔️ | 单位:分 |
7 | inquiryRuleDescription | 问诊规则描述 | string | ✖️ | eg:48小时有效 50条回复上限 等类似规则描述 |
8 | leftNum | 剩余可预约号源数量 | int | ✔️ | 0:无剩余可约号源;-1:预约无数量限制 |
# 2.2.2 获取医生就诊信息
接口名:
queryDoctorInquiryInfo
获取医生在线问诊的详情数据
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✔️ | |
2 | departmentId | 科室 ID | string | ✔️ | |
3 | branchHospitalId | 分院 ID | string | ✖️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | rsp | 返回详情 | array[DoctorInquiryInfo] | ✔️ |
# DoctorInquiryInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | doctorId | 医生 ID | string | ✔️ | |
2 | averageReplyDuration | 平均回复时长 | int | ✔️ | 单位(分钟) |
3 | diagnosisCount | 接诊量 | int | ✔️ | |
4 | reversionRate | 回复率 | int | ✔️ | 百分比。Eg:90 代表回复率 90% |
# 2.2.3 提交用户在线就诊相关信息
接口名:
submitInquiryInfo
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✔️ | |
2 | departmentId | 科室 ID | string | ✔️ | |
3 | scheduleId | 排班 ID | string | ✔️ | |
4 | doctorId | 医生 ID | string | ✔️ | |
5 | phone | 手机号 | string | ✖️ | |
6 | cardNo | 证件号码 | string | ✖️ | |
7 | cardType | 证件类型 | string | ✖️ | 详见 cardType |
8 | name | 就诊人姓名 | string | ✖️ | |
9 | sex | 就诊人性别 | int | ✖️ | 0 :男,1:女,2:其他 |
10 | birthday | 就诊人出生日期 | string | ✖️ | yyyy-MM-dd |
11 | patientId | 就诊人 ID | string | ✖️ | 如果是就诊卡的模式,内容为外部就诊卡对应的就诊人ID信息,否则为腾讯健康侧就诊人ID信息 |
12 | type | 预约方式 | int | ✔️ | 0:非就诊卡 ;1:就诊卡 (phone,treatCardNo,cardType,name,sex,birthday 都要填写) |
13 | branchHospitalId | 分院 ID | string | ✖️ | |
14 | treatCardNo | 就诊卡号 | string | ✖️ | |
15 | userId | 用户 ID | string | ✖️ | 用于唯一标识一个用户,对于某些有用户体系逻辑的合作方有用 |
16 | guardianName | 监护人姓名 | string | ✖️ | |
17 | guardianCardType | 监护人证件类型 | string | ✖️ | 详见 CardType |
18 | guardianCardNo | 监护人证件号 | string | ✖️ | |
19 | guardianPhone | 监护人手机号 | string | ✖️ | |
20 | guardianSex | 监护人性别 | int | ✖️ | |
21 | guardianRelation | 监护人与就诊人关系 | int | ✖️ | 详见 GuardianPatientRelationType |
22 | inquiryDescription | 病情描述 | string | ✖️ | |
23 | inquiryImages | 病情相关图片(以链接形式提供,若超时未下载需通过 getOrderImages 接口重新获取链接) | array[string] | ✖️ | |
24 | inquiryMode | 问诊模式 | string | ✔️ | 详见 InquiryMode |
25 | inquiryType | 问诊类型 | string | ✔️ | 废弃,使用 inquiryTypeId |
26 | inquiryTypeId | 问诊类型 ID | int | ✔️ | 详见 InquiryTypeId |
27 | preReport | 预问诊报告, | PreReport | ✖️ | 腾讯侧设置预问诊的医院会传入该字段 |
28 | caseId | 预问诊 ID | string | ✖️ | |
29 | historyDiseaseCode | 历史诊断疾病编码 | string | ✖️ |
# PreReport
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | query | 用户主诉 | string | ✔️ | |
2 | chiefComplaint | 主诉 | string | ✔️ | 症状+持续时间 |
3 | currentHistory | 现病史 | string | ✖️ | |
4 | medicalTreatment | 诊疗经过 | string | ✖️ | |
5 | pastHistory | 既往病史 | string | ✖️ | |
6 | birthHistory | 出生史 | string | ✖️ | |
7 | menstrualHistory | 月经史 | string | ✖️ | |
8 | feedingHistory | 喂养史 | string | ✖️ | |
9 | marriageHistory | 婚育史 | string | ✖️ | |
10 | familyHistory | 家族史 | string | ✖️ | |
11 | personalHistory | 个人史 | string | ✖️ | |
12 | allergies | 过敏史 | string | ✖️ | |
13 | imageInfo | 图片数组 | array[string] | ✖️ | |
14 | age | 病人年龄 | int | ✖️ | 0-120 |
15 | identity | 病人身份 | int | ✖️ | 0:为婴儿(一个月以内) -1:其他情况 |
16 | height | 身高 | int | ✖️ | 单位:毫米 |
17 | weight | 体重 | int | ✖️ | 单位:克 |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | count | 总记录条数 | int | ✔️ | |
4 | rsp | 返回详情 | InquiryOrderInfo | ✔️ |
# InquiryOrderInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | inquiryOrderId | 问诊订单 ID | string | ✔️ | 合作方返回唯一的问诊订单 ID,在腾讯健康 小程序跳转到合作方小程序时,会把这个唯一 ID 带回 |
# 2.2.4 创建就诊卡接口
1.针对需要就诊卡的合作方创建就诊卡,如果存在则直接返回就诊卡卡号,如果合作方不存在该就诊人的就诊卡,则新建并返回就诊卡号
接口名: createTreatCard
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | name | 就诊人姓名 | string | ✔️ | |
2 | cardType | 证件类型 | string | ✔️ | 详见 CardType |
3 | cardNo | 证件号 | string | ✔️ | |
4 | phone | 手机号 | string | ✔️ | |
5 | hospitalId | 医院 ID | string | ✔️ | |
6 | birthday | 就诊人出生日期 | string | ✔️ | yyyy-MM-dd |
7 | userId | 用户 ID | string | ✖️ | 用于唯一标识一个用户 |
8 | guardianName | 监护人姓名 | string | ✖️ | |
9 | guardianCardType | 监护人证件类型 | string | ✖️ | 详见 CardType |
10 | guardianNo | 监护人证件号 | string | ✖️ | |
11 | guardianPhone | 监护人手机号 | string | ✖️ | |
12 | treatCardNo | 就诊卡 Id | string | ✖️ | 如果非空,则校验该就诊卡 ID 的有效性 |
13 | branchHospitalId | 分院 ID | string | ✖️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | rsp | 返回详情 | array[TreatCardInfo] | ✔️ |
# TreatCardInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | hospitalId | 医院 ID | string | ✔️ | |
2 | treatCodeNo | 就诊卡号 | string | ✔️ | |
3 | patientId | 患者 ID | string | ✖️ | 如果返回患者 ID, submitInquiryInfo 时会原样返回 |
4 | createTime | 创建时间 | string | ✔️ | 格式:yyyy-MM-dd HH:mm:ss |
5 | branchHospitalId | 分院 ID | string | ✖️ |
# 2.2.5 获取订单详情
接口名:
queryOrderDetail
获取在线问诊订单的详情数据
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | inquiryOrderIds | 订单 ID 数组 | array[string] | ✔️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | rsp | 返回详情 | array[inquiryOrderDetail] | ✔️ |
# InquiryOrderDetail
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | inquiryOrderId | 订单 ID | string | ✔️ | |
2 | orderStatus | 订单状态 | int | ✔️ | 详见OrderStatus |
3 | hasPrescription | 是否有处方 | int | ✖️ | 0: 无处方, 1: 有处方 |
4 | prescriptionInfos | 处方信息 | array[PrescriptionInfo] | ✖️ | 一个问诊单可以对应多笔处方 |
5 | orderPayInfo | 订单支付信息 | orderPayInfo | ✖️ | 当有订单支付信息时填写,否则为空 |
6 | inquiryJumpLink | 咨询跳转链接 | JumpInfo | ✖️ | |
7 | meetingVideoPlaybackLink | 会议视频回放链接 | JumpInfo | ✖️ | |
8 | customerServiceLink | 售后服务链接 | JumpInfo | ✖️ |
# PrescriptionInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | prescriptionId | 处方 ID | string | ✔️ | |
2 | prescriptionLink | 处方跳转链接 | JumpInfo | ✖️ | |
3 | prescriptionCreateTime | 处方创建时间 | string | ✖️ | 格式:yyyy-MM-dd HH:mm:ss |
4 | prescriptionStatus | 处方状态 | int | ✔️ | 0:已开处方,1:已开处方待审核 |
5 | prescriptionPayInfo | 处方支付的相关信息 | PrescriptionPayInfo | ✖️ |
# PrescriptionPayInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | prescriptionPayStatus | 处方支付状态 | int | ✔️ | 详见PayStatus |
2 | prescriptionPayLink | 处方支付跳转链接 | JumpInfo | ✔️ | 处方支付页面跳转链接 |
3 | prescriptionFee | 实付费用金额(单位:分) | int | ✔️ | 金额未确定时返回-1 |
4 | extraFee | 额外费用金额(单位:分) | int | ✖️ | 额外需支付的费用(如挂号费、注册费) |
5 | refundFee | 退款总金额(单位:分) | int | ✖️ | 发生退款时不可为空,部分退款时应小于实付金额 |
# OrderPayInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | orderPayStatus | 订单支付状态 | int | ✔️ | 详见PayStatus |
2 | orderPayLink | 订单支付跳转链接 | JumpInfo | ✔️ | 订单支付页面跳转链接 |
3 | payFee | 订单实付金额(单位:分) | int | ✔️ | 金额未确定时返回-1 |
# 2.2.6 获取历史就诊记录(可选)
接口名:
queryTreatRecords
获取病人历史就诊记录,用于优化预问诊流程
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | name | 就诊人姓名 | string | ✔️ | |
2 | cardType | 证件类型 | string | ✔️ | 详见 CardType |
3 | cardNo | 证件号 | string | ✔️ | |
4 | phone | 手机号 | string | ✔️ | |
5 | treatCardNo | 就诊卡号 | string | ✖️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | rsp | 返回详情 | array[TreatRecord] | ✔️ |
# TreatRecord
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | date | 就诊日期 | string | ✔️ | 日期格式: yyyy-MM-dd HH:mm:ss |
2 | doctorId | 医生 ID | string | ✔️ | |
3 | doctorName | 医生姓名 | string | ✔️ | |
4 | departmentId | 科室 ID | string | ✔️ | |
5 | departmentName | 科室名 | string | ✔️ | |
6 | hospitalId | 医院 ID | string | ✔️ | |
7 | hospitalName | 医院名 | string | ✔️ | |
8 | disease | 病名 | string | ✖️ | e.g. 肠胃炎,肺炎,流感 |
9 | diseaseCode | 疾病编码 | string | ✖️ |
# 2.2.7 获取就诊人状态(可选)
接口名:
queryPatientStatus
查询就诊人状态,用于预约前对就诊人的有效性校验,非有效用户会限制其进行预约
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | name | 就诊人姓名 | string | ✔️ | |
2 | cardType | 证件类型 | string | ✖️ | 详见 CardType |
3 | cardNo | 证件号 | string | ✖️ | |
4 | phone | 手机号 | string | ✖️ | |
5 | treatCardNo | 就诊卡号 | string | ✖️ | |
6 | departmentId | 科室 ID | string | ✖️ | |
7 | doctorId | 医生 ID | string | ✖️ | |
8 | inquiryTypeId | 问诊类型 ID | int | ✖️ | 详见 InquiryTypeId |
9 | userId | 用户 ID | string | ✖️ | 用于唯一标识一个用户 |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | isValid | 是否有效 | int | ✔️ | 0: 无效,1:有效。就诊状态是否有效,无效状态会限制其正常预约操作 |
# 2.2.8 获取候诊室详情(可选)
接口名:
queryRoomDetail
用于线上视频门诊实时查询候诊室信息
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | orderId | 订单号 | int | ✔️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | scheduleDate | 排班日期 | string | ✔️ | 格式:yyyy-MM-dd |
4 | scheduleBeginTime | 排班开始时间段 | string | ✔️ | 格式:HH:mm |
5 | scheduleEndTime | 排班结束时间段 | string | ✔️ | 格式:HH:mm |
6 | startQueueNo | 起始队列号 | int | ✖️ | |
7 | endQueueNo | 结束队列号 | int | ✖️ | |
8 | patientQueueNo | 就诊人队列号 | int | ✖️ | |
9 | leftWaitingPatients | 剩余等待就诊人数 | int | ✖️ | 若用户所在队列前方为正在就诊用户,则剩余等待就诊人数为0 |
10 | leftWaitingTime | 剩余等待就诊时间 | int | ✖️ | 单位:分 |
11 | meetingId | 线上会议室ID | int | ✔️ | |
12 | meetingSubject | 线上会议主题 | string | ✔️ | |
13 | meetingDate | 会议开始日期 | string | ✖️ | 格式:yyyy-MM-dd |
14 | meetingStartTime | 会议开始时间 | string | ✖️ | 格式:HH:mm |
15 | meetingEndTime | 会议结束时间 | string | ✖️ | 格式:HH:mm |
16 | meetingCode | 会议呼入号码 | string | ✖️ | |
17 | roomStatus | 候诊室状态 | int | ✔️ | 详见 RoomStatus |
18 | treatStatus | 就诊状态 | int | ✔️ | 详见 TreatStatus |
19 | notifications | 通知消息 | array[string] | ✖️ | |
20 | canRejoinRoom | 是否可以重新候诊 | int | ✖️ | 0: 不可以,1:可以 |
# 2.2.9 申请重新加入候诊室(可选)
接口名:
rejoinRoom
用于线上视频门诊在异常情况下的重新加入候诊室请求
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | orderId | 订单号 | int | ✔️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | isRejoin | 是否已重新加入 | int | ✔️ | 0:否,1:是 |
# 2.2.10 拒绝加入候诊室(可选)
接口名:
refuseJoinRoom
用于线上视频门诊用户主动发起拒绝加入候诊室
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | orderId | 订单号 | int | ✔️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ |
# 2.3 同步数据 (平台提供)
- 由腾讯侧提供接口服务
- 主要是保证在多入口的情况下,两边系统的数据能保持一致性
# 2.3.1 同步医生状态
- 当医生状态有所变化时,通过接口即时同步给腾讯侧,提升用户体验
接口名:
syncDoctorServiceStatus
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | doctorId | 医生 ID | string | ✔️ | |
2 | serviceStatus | 医生在线就诊服务状态 | int | ✔️ | 详见 ServiceStatus |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | rsp | 返回详情 | object | ✔️ |
# 2.3.2 同步订单状态与医生回复
- 当订单状态变更或医生对就诊用户有回复消息时,即时同步给腾讯侧
- 除了
doctorId
与inquiryOrderid
外调用时只传入有变更的字段,e.g. 当订单状态发生变更时只传orderStatus
,医生有回复时只传replyTime
与userIsOnline
接口名:
updateOrderStatus
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | doctorId | 医生 ID | string | ✔️ | |
2 | inquiryOrderId | 就诊的唯一订单 ID | string | ✔️ | |
3 | replyTime | 医生回复时间 | string | ✖️ | 格式:yyyy-MM-dd HH:mm:ss |
4 | userIsOnline | 用户在线状态 | int | ✖️ | 0:离线,1:在线 |
5 | orderStatus | 订单状态 | int | ✖️ | 详见OrderStatus |
6 | prescriptionInfos | 处方信息 | array[PrescriptionInfo] | ✖️ | 一个问诊单可以对应多笔处方 |
7 | payStatus | 支付状态 | int | ✖️ | 详见PayStatus |
8 | payInfoLink | 支付信息跳转链接 | JumpInfo | ✖️ |
# JumpInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | type | 跳转的方式 | int | ✔️ | 1 :H5 2 :小程序 |
2 | path | 跳转的地址 | string | ✔️ | eg:H5 : https://www.qq.com/demo;小程序 :/pages/register/demo |
3 | version | 跳转的版本 | string | ✖️ | 只有当跳转目标为小程序时,该参数才有意义。正式环境默认都会跳转正式版:release,体验版:trial |
3 | appId | 跳转的 appId | string | ✖️ | 只有当跳转目标为小程序时,该参数才有意义。目标小程序的 appId |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | rsp | 返回详情 | object | ✔️ |
# 2.3.3 获取订单附加图片
- 获取用户创建订单时上传的病情描述图片,以 url 的形式提供,过期时间 10 分钟
接口名:
getOrderImages
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | inquiryOrderId | 就诊的唯一订单 ID | string | ✔️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | rsp | 返回详情 | array[string] | ✔️ | 图片 url 数组 |
# 2.3.4 同步候诊室状态
所有未完成订单关联的候诊室信息需要及时同步给腾讯侧
接口名:
syncRoomStatus
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | orderId | 就诊的唯一订单ID | string | ✔️ | |
2 | eventId | 事件ID | string | ✔️ | 合作方下唯一事件ID |
3 | eventType | 事件类型 | string | ✔️ | 详见 RoomEventType |
4 | eventData | 事件数据 | string | ✔️ | JSON数据格式 |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ |
# 事件类型
# ROOM.TREAT.UPDATED 就诊状态有更新
# 通知规则
同步时机:a)待就诊:开诊前指定时间,用于提醒用户提前上线;b)候诊中:到约定排班开始时间默认进入该状态;c)发起就诊邀请中:医生发起线上会议邀请期间;c)就诊中:用户进入线上会议后;d)已完成就诊:用户或医生发起结束会议;e)已过号:医生主动发起过号请求; 同步范围:当前所执行排班队列中关联的所有订单;
# 通知示例
{
"treatStatus": 0
}
# 数据参数
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | treatStatus | 就诊状态 | int | ✔️ | 详见 TreatStatus |
# ROOM.QUEUE.UPDATED 候诊队列有更新
# 通知规则
同步时机:用户所在排班开启正常接诊,需要同步「接诊中」候诊室状态,就诊队列有任何用户完成就诊,都需要及时同步; 同步范围:当前所执行排班队列中关联的所有订单;
# 通知示例
{
"scheduleId": "sid00001",
"roomStatus": 1,
"leftWaiting": 2,
"waitingTime": 10
}
# 数据参数
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | scheduleId | 排班ID | string | ✔️ | |
2 | roomStatus | 候诊室状态 | int | ✔️ | 详见 RoomStatus |
3 | leftWaitingPatients | 剩余等待就诊人数 | int | ✖️ | 候诊室状态为「接诊中」时必填。若用户所在队列前方为正在就诊用户,则剩余等待就诊人数为0 |
4 | leftWaitingTime | 预估剩余等待就诊时间 | int | ✖️ | 候诊室状态为「接诊中」时必填。单位:分 |
# 3.附录
# InquiryMode
序号 | 值 | 说明 |
---|---|---|
1 | IMAGE_TEXT | 图文问诊 |
2 | PHONE | 电话问诊 |
3 | VIDEO | 视频问诊 |
# CardType
值 | 说明 |
---|---|
01 | 身份证 |
02 | 港澳居民证 |
03 | 护照 |
04 | 军人证 |
05 | 其他 |
# GuardianPatientRelationType
值 | 说明 | 备注 |
---|---|---|
0 | 未知 | |
1 | 本人 | |
2 | 父母 | |
3 | 子女 | |
4 | 夫妻 | |
5 | 亲属 | |
6 | 朋友 |
# ServiceStatus
值 | 说明 |
---|---|
0 | 离线 |
1 | 在线 |
# OrderStatus
未开始(未支付)是订单刚创建时的状态,不需要同步,其余状态需要医院同步到腾讯侧,不需要支付的订单不同步支付状态。
值 | 说明 |
---|---|
10 | 未开始 |
15 | 待接单 |
20 | 进行中 |
30 | 已完成 |
40 | 已取消 |
# PayStatus
值 | 说明 |
---|---|
0 | 不需要支付 |
1 | 待支付 |
2 | 支付成功 |
3 | 支付失败 |
4 | 退款中 |
5 | 退款成功 |
6 | 退款失败 |
# Code
值 | 说明 |
---|---|
0 | 成功 |
非 0 | 失败 |
# CityCode & AreaCode
具体的行政区域代码可以参考链接:
最新县及县以上行政区划代码 (opens new window)
# HospitalLevel
值 | 说明 |
---|---|
1 | 三甲 |
2 | 三乙 |
3 | 三丙 |
4 | 二甲 |
5 | 二乙 |
6 | 二丙 |
7 | 一甲 |
8 | 一乙 |
9 | 一丙 |
11 | 一级 |
12 | 二级 |
13 | 三级 |
10 | 其他 |
# HospitalType
值 | 说明 |
---|---|
1 | 国营 |
2 | 民营 |
3 | 合资 |
4 | 外资 |
5 | 个体 |
9 | 其它 |
# InquiryTypeId
值 | 描述 |
---|---|
1 | 首诊咨询 |
2 | 复诊咨询 |
# RoomEventType
值 | 描述 |
---|---|
ROOM.TREAT.UPDATED | 就诊状态有更新 |
ROOM.QUEUE.UPDATED | 候诊队列有更新 |
# RoomStatus
值 | 说明 |
---|---|
0 | 待接诊 |
1 | 接诊中 |
2 | 已取消接诊 |
# TreatStatus
值 | 说明 |
---|---|
0 | 待候诊 |
1 | 候诊中(已报到) |
2 | 发起就诊邀请中 |
3 | 就诊中 |
4 | 已完成就诊 |
5 | 已过号(爽约) |
# 4.修改记录
日期 | 更新事项 | 操作人 |
---|---|---|
2021.01.05 17:00 | ScheduleSKU 增加 inquiryRuleDescription | pigo |
2021.01.22 11:00 | submitInquiryInfo 中增加 birthday 和 sex 字段 | pigo |
2021.01.23 15:00 | submitInquiryInfo 中增加 inquiryType 字段,ScheduleInfo 中增加 inquiryTypes 字段 | jitian |
2021.03.01 12:00 | ScheduleInfo 与 submitInquiryInfo 中增加 inquiryTypeId 字段,废弃原有的 inquiryType | jitian |
2021.04.12 12:00 | 增加 queryOrderDetail 接口 | jitian |
2021.04.23 12:00 | 增加已支付的状态 | jitian |
2021.05.07 12:00 | 增加退款中的状态 | jitian |
2021.06.09 18:00 | submitInquiryInfo 增加预问诊报告字段,增加查询历史就诊记录接口 | jitian |
2021.08.02 18:00 | queryOrderDetail 与 updateOrderStatus 接口增加处方支付字段 | jitian |
2021.09.15 11:00 | updateOrderStatus 中增加 payStatus 和 payInfoLink 字段;queryOrderDetail 中增加 orderPayInfo 字段; 更新 OrderStatus 和 PayStatus | magic |
2021.09.18 11:00 | updateOrderStatus 和 queryOrderDetail 中增加 prescriptionCreateTime 字段 | magic |
2021.09.24 16:00 | queryOrderDetail 中增加 inquiryJumpLink 字段 | jitian |
2021.12.03 10:00 | 新增 queryPatientStatus 查询就诊人状态接口 | magic |
2021.12.17 15:00 | 修改 2.2.5,支持一个问诊单对应多个处方信息 | pigo |
2021.12.20 16:00 | 更新处方支付状态定义 | pigo |
2022.06.23 15:00 | 新查询候诊室详情和候诊室状态同步接口 | magicsu |
# 5.历史接口镜像
# 2.2.5 获取订单详情 (旧)
该接口作为历史镜像供查阅 该接口自
2021-12-17
后已经改造至上面新的接口,历史已经接入的合作方不受影响,依然兼容
接口名:
queryOrderDetail
获取在线问诊订单的详情数据
请求参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | inquiryOrderIds | 订单 ID 数组 | array[string] | ✔️ |
返回参数:
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | code | 状态码 | int | ✔️ | 0:正常,其他:异常。具体见附录说明 |
2 | message | 状态描述 | string | ✔️ | |
3 | rsp | 返回详情 | array[inquiryOrderDetail] | ✔️ |
# InquiryOrderDetail
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | inquiryOrderId | 订单 ID | string | ✔️ | |
2 | orderStatus | 订单状态 | int | ✔️ | 详见OrderStatus |
3 | hasPrescription | 是否有处方 | int | ✖️ | 0: 无处方, 1: 有处方 |
4 | prescriptionLink | 处方跳转链接 | JumpInfo | ✖️ | |
5 | prescriptionPayInfo | 处方支付信息 | prescriptionPayInfo | ✖️ | 当有处方支付信息时填写,否则为空 |
6 | orderPayInfo | 订单支付信息 | orderPayInfo | ✖️ | 当有订单支付信息时填写,否则为空 |
7 | prescriptionCreateTime | 处方创建时间 | string | ✖️ | 格式:yyyy-MM-dd HH:mm:ss |
8 | inquiryJumpLink | 咨询跳转链接 | JumpInfo | ✖️ |
# PrescriptionPayInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | prescriptionPayStatus | 处方支付状态 | int | ✔️ | 0: 无效,1: 待支付,2: 已支付,3: 过期,4: 已开处方待提交 |
2 | prescriptionPayLink | 处方支付跳转链接 | JumpInfo | ✔️ | 处方支付页面跳转链接 |
3 | prescriptionFee | 处方费用金额(单位:分) | int | ✔️ | 金额未确定时返回-1 |
4 | extraFee | 额外费用金额(单位:分) | int | ✖️ | 额外需支付的费用(如挂号费、注册费) |
# OrderPayInfo
序号 | 字段 | 名称 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | orderPayStatus | 订单支付状态 | int | ✔️ | 详见PayStatus |
2 | orderPayLink | 订单支付跳转链接 | JumpInfo | ✔️ | 订单支付页面跳转链接 |
3 | payFee | 订单实付金额(单位:分) | int | ✔️ | 金额未确定时返回-1 |