# 【在线门诊】接入文档

# 1.背景介绍

疫情时代,很多患者对于在线复诊的需求日益旺盛,许多医院也自建了互联网医院,专门服务于需要在线复诊、开方续方的患者。我们接入此类服务,一方面丰富了我们已有的医院服务能力,一方面也满足了更多患者的就医需求

大体的流程时序可以参考下图

a.静态数据的定期同步

uml diagram

b.整体数据依赖

数据依赖流程图

# 1.1 对接说明

在线门诊对接说明 (opens new window)

# 2.接口说明

接入前必看

  1. 网关接入请看网关接入标准
  1. 双方请求链接的格式如下:

a、腾讯请求合作方:${合作方提供请求的链接前缀} + 接口名

eg: https://xxxx.partern.com/api/hospitals

b、网关接入文档中的 $app 直接用 hsInquiry替代即可

eg: https://med-biz-pre.wecity.qq.com/api/hsInquiry/syncDoctorServiceStatus/10000007

  1. 文档中非必传的字段可以不传,如果传了,相应的值必须要有特定的含义。不能为 undefined 或者 null
  1. 文档中的必传字段,根据类型可以有不同的默认值。
  • a) 类型为 int,如果合作方返回-1,意味着该字段合作方无法提供有效值,腾讯侧会丢弃该字段
  • b) 类型为 string,如果合作方返回'',意味着该字段合作方无法提供有效值,腾讯侧会丢弃该字段
  • c) 类型为 array,如果合作方返回[],意味着该字段合作方无法提供有效值,腾讯侧会丢弃该字段
  • d) 类型为 object,直接返回 {},意味着该字段合作方无法提供有效值,腾讯侧会丢弃该字段

# 2.1 静态基础数据(合作方提供)

1、这里主要指一些静态数据,腾讯侧会定期去拉取合作方方接口,并增量更新

2、考虑到不同合作方对接口拉取规则策略的不同(如:频率,单次拉取数据量等),腾讯侧可以适配不同的拉取策略

3、这些接口对实时性要求不一定高,但要求数据的准确性

# 2.1.1 批量获取医院信息

  1. 该接口主要用来批量获取合作方提供的医院信息
  2. 如果指定了 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

  1. 如果这里有字段不在列表中的,由于所有的接口命名规范统一,均可以在其他接口中找到相关参考字段
  2. 举个例子:

短信内容:

深圳市南山人民医院预约提示:订单号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 获取科室信息

  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 获取医生信息

  1. 对于有些 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 同步数据 (平台提供)

  1. 由腾讯侧提供接口服务
  2. 主要是保证在多入口的情况下,两边系统的数据能保持一致性

# 2.3.1 同步医生状态

  1. 当医生状态有所变化时,通过接口即时同步给腾讯侧,提升用户体验

接口名:

syncDoctorServiceStatus

请求参数:

序号 字段 名称 类型 必填 备注
1 doctorId 医生 ID string ✔️
2 serviceStatus 医生在线就诊服务状态 int ✔️ 详见 ServiceStatus

返回参数:

序号 字段 名称 类型 必填 备注
1 code 状态码 int ✔️ 0:正常,其他:异常。具体见附录说明
2 message 状态描述 string ✔️
3 rsp 返回详情 object ✔️

# 2.3.2 同步订单状态与医生回复

  1. 当订单状态变更或医生对就诊用户有回复消息时,即时同步给腾讯侧
  2. 除了doctorIdinquiryOrderid外调用时只传入有变更的字段,e.g. 当订单状态发生变更时只传orderStatus,医生有回复时只传replyTimeuserIsOnline

接口名:

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 获取订单附加图片

  1. 获取用户创建订单时上传的病情描述图片,以 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