视频问诊

简介

视频问诊服务是针对用户提供的一种快捷的视频形式接诊的医疗服务。

用户购买此视频问诊后,可进入视频候诊房间等待医生接诊;接诊过程中如出现意外情况中断视频,可继续重连;问诊结束后,医生将给出相应的总结建议。

服务细则

  • 接诊医生范围

    视频问诊提供接诊服务的医生均为公立三甲医院全科医生

  • 服务时效及时长

    视频问诊提供7*24小时服务,单次视频问诊时长最长30分钟

  • 服务意外中断

    视频问诊意外中断后,用户可在原来的问诊记录中找到上次视频问诊记录,重新进入继续发起问诊

  • 服务退款细则

    视频问诊购买后,医生未接诊前可自主取消;视频问诊购买后,1小时内没有与医生正常通话,问诊自动退款

服务接入建议

  • 视频问诊提供三种方式的接入,分别为H5、小程序、SDK方式
  • 如通过H5和SDK方式接入视频问诊时,建议同步接通视频问诊相关回调,并在用户侧做相应的提醒,以提高视频接通率
  • 视频问诊接入时,春雨侧一般不处理用户支付相关逻辑,支付及用户权益等逻辑由合作方侧完成,春雨侧负责视频连接
  • 视频问诊接入流程,春雨侧提供两种标准商务场景供合作方选择,可根据实际场景接入服务,详见下方商务场景“单次视频问诊”、“权益卡视频问诊”

服务流程示意图

单次视频问诊

场景介绍

  • 单次视频问诊服务场景是:用户通过合作方侧访问春雨视频问诊入口后,春雨侧则认为该用户是可以免费问诊的,无需进行支付
  • 用户支付的逻辑均在合作方侧完成,合作方可自行根据自己的业务逻辑来定制,春雨侧只负责免费连接视频问诊
  • 合作方与春雨侧结算是按照实际完成的视频问诊订单来扣减企业服务包使用数量
  • 如用户上次视频问诊未完成,则从合作方视频入口发起时,依然会继续该用户上一次未完成的视频问诊,继续与医生进行连接

接入流程

用户信息同步接口

鉴权说明:在接口中标明用户表示为「user_id/phone」的接口,表示该接口支持第三方用户id、手机号参与鉴权,如使用手机号,生成签名时将phone替换成user_id计算签名。当传递用户手机号时,会在春雨为该手机号自动创建用户。 说明:合作方调用此接口,将用户身份信息传给春雨,春雨入库成功后,可发起视频问诊

URL:/cooperation/server/video/inquiry/set_user_video_info/

请求方式:POST

请求参数:

名称 说明 类型 必要 备注
user_id/phone 用户标识 string 是
partner 合作方标识 string 是 我要申请
sign 签名 string 是 必须在服务器端生成生成方法
atime 时间戳 long 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)
patient_name 用户姓名 string 是 张三
sex 性别 string 是 男
birthday 出生日期 string 是 YYYY-MM-DD
identity_card 身份证号 string 是

返回:

名称 说明 类型 必要 备注
error_code 错误码 int 是 正常返回0
error_msg 错误信息 string 否

跳转视频问诊服务-H5

说明:调用此接口,春雨调起H5进行视频问诊。当用户无正在进行的问诊时,创建新问诊并接入,当用户有中断未完成的问诊时,自动重连。

【此接口非API接口,直接拼好参数下发给用户侧作为H5链接访问即可】

URL:/cooperation/saas/jump_service_use_page/

请求方式:GET

请求参数:

名称 说明 类型 必要 备注
user_id/phone 用户标识 string 是
partner 合作方标识 string 是 我要申请
sign 签名 string 是 必须在服务器端生成生成方法
atime 时间戳 long 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)
coop_service_type 业务场景 string 是 视频问诊场景值为 video_inquiry_saas

返回:

直接跳转服务页面进行问诊

视频问诊H5兼容性

说明:基于 WebRTC 实现,目前支持桌面端和移动端的主流浏览器,详细支持度:参见链接

如需检测Webview是否具备WebRTC能力,使用该链接在相应的webview访问即可

您可以使用 rtc-detect 用来检测当前环境对WebRTC的支持度,以及当前环境的详细信息。(建议视频问诊前先使用下列代码检测,未通过检测会出现黑屏现象,业务侧酌情处理):

安装

npm install rtc-detect

使用方法

          
          import RTCDetect from 'rtc-detect';
          // 初始化监测模块
          const detect = new RTCDetect();
          // 获得当前环境监测结果
          const result = await detect.getCodecAsync();
          // result 包含了当前环境编解码支持度
          console.log('result is: ' + result);
          const {isH264EncodeSupported, isH264DecodeSupported} = result;
          if (isH264EncodeSupported && isH264DecodeSupported){
            // 通过检测
          } else {
            // 未通过检测
          }
          
          

跳转视频问诊服务-小程序

说明:调用此接口,春雨调起小程序进行问诊。当用户无正在进行的问诊时,创建新问诊并接入,当用户有中断未完成的问诊时,自动重连。

URL:/cooperation/saas/jump_wxapp/

请求方式:GET

请求参数:

名称 说明 类型 必要 备注
user_id/phone 用户标识 string 是
partner 合作方标识 string 是 我要申请
sign 签名 string 是 必须在服务器端生成生成方法
atime 时间戳 long 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)
coop_service_type 业务场景 string 是 视频问诊场景值为 video_inquiry_saas
is_json 是否返回 json int 是 0 表示自动跳转小程序,用于微信外跳转(APP、H5);
1 表示获取小程序跳转参数,用于第三方微信小程序内跳转;

返回:

(is_json=0)

直接跳转小程序页面问诊

(is_json=1)

名称 说明 类型 必要 备注
error_code 错误码 int 是 正常返回0
error_msg 错误信息 string 否
token string 是
session_id string 是
env 环境标识 string 是

备注:小程序内跳转使用微信提供的跳转方式,使用接口中返回的参数按下述规则拼参数

appid: wx214b7e2bcde837d6

path: pages/open_login/index?token={token}&session_id={session_id}&env={env}

测试环境需要确认跳转时打开的是体验版

权益卡视频问诊

场景介绍

  • 权益卡视频问诊服务场景是:合作方提前定义好自己业务涉及到的权益卡类型,例如月卡31天无限次视频问诊,由春雨生成权益标识,供合作方使用
  • 合作方通过接口调用的方式将自己平台的用户设置对应的权益,例如黄金会员使用权益卡31天5次视频问诊,铂金会员使用权益卡31天10次视频问诊等
  • 合作方侧是否付费及付费流程在合作方侧完成,设置用户权益后,通过接口跳转春雨的H5/小程序进行视频问诊,无需再次付费
  • 当用户使用视频问诊服务后,春雨会通过接口实时告知合作方用户当前剩余权益次数,合作方可自行进行展示
  • 合作方与春雨进行结算的方式有两类,一类是按照实际完成的视频问诊订单来扣减企业服务包使用数量,一类是按照成功同步用户权益次数进行收费

接入流程

用户同步权益接口

说明:接入方调用此接口,春雨为用户增加策略对应服务权益,一个策略包含了若干服务类型和相应的可使用次数,以及有效期,在同步权益成功后立即生效。同一个用户只可以有一个有效策略。

URL:/cooperation/server/saas/set_user_benefit_strategy/

请求方式:POST

请求参数:

名称 说明 类型 必要 备注
user_id/phone 用户ID string 是
partner 合作方标识 string 是 我要申请
sign 签名 string 是 必须在服务器端生成生成方法
atime 时间戳 long 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)
strategy_key 策略标识 string 是 线下提供
name 用户姓名 string 否

返回:

名称 说明 类型 必要 备注
error_code 错误码 int 是 正常返回0
error_msg 错误信息 string 否

用户权益撤销接口

说明:接入方调用此接口,将用户生效中的权益立即停止。

URL:/cooperation/server/saas/revoke_user_benefit_strategy/

请求方式:POST

请求参数:

名称 说明 类型 必要 备注
user_id/phone 用户ID string 是
partner 合作方标识 string 是 我要申请
sign 签名 string 是 必须在服务器端生成生成方法
atime 时间戳 long 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)

返回:

名称 说明 类型 必要 备注
error_code 错误码 int 是 正常返回0
error_msg 错误信息 string 否

跳转视频问诊服务-H5

说明:调用此接口,春雨调起H5的服务介绍页后,可进行视频问诊。

【此接口非API接口,直接拼好参数下发给用户侧作为H5链接访问即可】

URL:/open-platform/m-saas/benefit-description/

请求方式:GET

请求参数:

名称 说明 类型 必要 备注
user_id/phone 用户标识 string 是
partner 合作方标识 string 是 我要申请
sign 签名 string 是 必须在服务器端生成生成方法
atime 时间戳 long 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)
coop_service_type 业务场景 string 是 视频问诊场景值为 video_inquiry_saas

返回:

直接跳转服务介绍H5页面

跳转视频问诊服务-小程序

说明:当在第三方APP或小程序中跳转春雨小程序时,使用【跳转视频服务-H5】接口中生成的链接作为参数,通过微信提供的方式进行跳转。春雨侧提供跳转小程序的appid和页面路径

微信跳转参数:

appid: wx214b7e2bcde837d6

path=pages/index/index?url= encodeURIComponent(H5_url)

查询用户权益接口

说明:调用此接口,返回用户当前的权益情况

URL:/cooperation/server/saas/get_user_benefit_strategy/

请求方式:POST

请求参数:

名称 说明 类型 必要 备注
user_id/phone 用户ID string 是 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 string 是 我要申请
sign 签名 string 是 必须在服务器端生成生成方法
atime 时间戳 long 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)

返回:

名称 说明 类型 必要 备注
error_code 错误码 int 是 正常返回0
error_msg 错误信息 string 否
strategy_key 策略id string 否 返回绑定的策略标识,若用户没有绑定的策略,则返回空字符串
usage_info 使用情况 dict 否 无绑定策略时返回空字典
key:coop_service_type
value:usage_item
total_count 可用次数 int 否 当 is_unlimited=False 时必传
is_unlimited 是否是无限次 bool 是 默认 False
used_count 已使用次数 int 是

usage_info 数据示例:

示例:三甲问诊共3次,使用1次;三甲快捷电话共3次,使用0次

            
              {
                  "qc_hospital_upgrade": {
                  "total_count": 3,
                  "is_unlimited": False,
                  "used_count": 1
                },
                "fast_phone_3a": {
                  "total_count": 3,
                  "is_unlimited": False,
                  "used_count": 0
                }
              }
            
          

权益使用回调

说明:当用户使用权益,创建服务后,春雨调用此接口通知合作方

URL:复用回调管理-医生回复通知接口URL,通过status判断回调功能

请求方式:POST

请求参数:

名称 说明 类型 必要 备注
user_id/phone 用户ID string 是 与同步权益接口使用的用户ID key值相同
partner 合作方标识 string 是 我要申请
sign 签名 string 是 必须在服务器端生成生成方法
atime 时间戳 long 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)
status 回调类型 string 是 status值为saas_use
coop_service_type 服务类型 string 否
use_count 使用次数 int 是

返回:

名称 说明 类型 必要 备注
error_code 错误码 int 是 正常返回0
error_msg 错误信息 string 否

API对接-视频问诊相关

场景介绍

  • 定向视频问诊是合作方指定医生、指定时间,由合作方侧完成支付后调用接口创建视频问诊订单的服务场景
  • 合作方通过「找医生接口」(service_type 新增 video_inquiry_saas)获取医生视频问诊能力及视频价格(video_price)、视频咨询状态(video_online),并通过「视频问诊可预约时间接口」查询医生的可用时段
  • 合作方调用创建订单接口完成下单(定向视频问诊需指定 doctor_id;全科视频问诊用于联仁等渠道),春雨侧负责建立视频连接,支付及用户权益逻辑由合作方侧完成
  • 用户通过「视频问诊订单详情页」H5 进入视频候诊房间,与医生进行视频接诊
  • 视频问诊状态变更通过「视频问诊通用回调」通知合作方,其中定向视频特有医生改期(doctor_change_time)、医生拒绝(doctor_deny)事件

开通视频问诊医生查询

说明:在原有「找医生接口」基础上,service_type 新增可选值 video_inquiry_saas,并增加视频问诊相关返回值。

原找医生接口

service_type 新增可选值:video_inquiry_saas

返回值增加:

名称 说明 类型 长度 必要 备注
video_price 视频问诊时长对应的价格 string 否 json格式,key为时长,value为对应的价格,单位分。-1为此时长服务未开通
例:{"10": 20, "15": -1}
video_online 视频咨询状态 bool 是 医生的视频咨询是否开通

医生详情接口

说明:在原有「医生详情接口」基础上,返回新增视频问诊相关字段。

原医生详情接口

URL:/cooperation/server/doctor/detail

返回新增:

名称 说明 类型 长度 必要 备注
video_price 视频咨询价格 json 否 同找医生接口video_price
video_online 视频咨询状态 bool 是 医生的视频咨询是否开通

视频问诊可预约时间接口

URL:/cooperation/server/video/inquiry/get_doctor_time_info/

请求及响应同电话问诊可预约时间接口

定向视频问诊创建订单接口

URL:/cooperation/server/video/inquiry/create_video_inquiry_order/

请求方式:POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户ID String 32 是 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 是 partner_name
content 补充描述内容;可传文字病情描述;图片;性别年龄 String 5120 是 数据结构,其中 patient_meta 不能传递多次,以第一次内容的为准。
sign 签名 String 32 是 必须在服务器端生成生成方法
atime 时间戳 Long 64 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)
partner_order_id 合作方支付ID String 32 是 唯一标识本次支付行为
doctor_id 医生id String 64 是
minutes 拨打时长 int 32 是 目前有10,15可选。具体取决于医生是否配置了相应的时间长度
tel_no 用户电话 String 11 是 联系电话仅用做视频问诊中的电话通知
price 价格(元) int 32 是 订单价格
inquiry_time 预约时间 String 32 是 格式如"2018-01-28 09:30"

返回:

名称 说明 类型 长度 必要 备注
service_id 视频服务id Int 32 否 创建的服务id
inquiry_time 拨打时间 String 32 否 格式如"2018-01-28 09:30"
error 错误码 Int 是 0 成功,1 失败
error_msg 错误原因 String 否

全科视频问诊创建订单接口

URL:/cooperation/server/video/inquiry/create_to_clinic_video_inquiry_order/

请求方式:POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户ID String 32 是 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 是 partner_name
sign 签名 String 32 是 必须在服务器端生成生成方法
atime 时间戳 Long 64 是 当前UNIX TIMESTAMP签名时间戳(如:137322417)
partner_order_id 合作方支付ID String 32 是 唯一标识本次支付行为
partner_room_id 合作方房间id String 是 联仁渠道必传
user_id_list sdk uid 列表 list 是 联仁渠道必传

返回:

名称 说明 类型 长度 必要 备注
service_id 视频服务id Int 32 否 创建的服务id
error 错误码 Int 是 0 成功,1 失败
error_msg 错误原因 String 否

视频问诊订单详情页

说明:【此接口非API接口,直接拼好参数下发给用户侧作为H5链接访问即可】

由于用户端登录态,没有此页面不能直接调用,需要使用H5资源访问登录跳转做登录并跳转此页面

URL:/vendor/video/page/order/detail/

请求方式:GET

GET参数:

名称 说明 类型 长度 必要 备注
id 视频问诊服务id int 32 是 视频问诊创建订单接口返回的服务id

视频问诊通用回调

视频问诊状态变更回调

说明:当视频问诊状态发生变更时,春雨调用此接口通知合作方。

URL:即合作方管理后台-账户管理-信息配置中填写的视频问诊状态变更回调路径

请求方式:POST

请求参数:

名称 说明 类型 必要 备注
atime 时间戳 long 是
sign 签名 string 是 参考文档,使用service_id参与计算
service_id 服务id int 是
user_id/phone 用户标识 string 是
doctor_id 医生id string 是
clinic_name 科室名称 string 是
doctor_name 医生姓名 string 是
doctor_avatar 医生头像 string 是
event_type 事件类型 string 是
start_time 问诊开始时间 string 否 问诊开始时传 YYYY-MM-DD HH:MM:SS
end_time 问诊结束时间 string 否 问诊结束时传 YYYY-MM-DD HH:MM:SS
user_info 用户信息 dict 是
name 姓名 string 是
sex 性别 string 是 m:男 f:女 b:未知
age 年龄 Int 是 显示xx岁
summary_info 总结信息 dict 否 医生发送总结时传
possible_disease 可能疾病 string 是
suggestion 处理意见 string 是
suggestion_detail 详细意见 string 是
playback_url 回放链接 str 否 回放链接生成时传;
非永久链接,请及时转存
chat_msg 聊天消息 dict 否 用户或医生发送聊天消息时时传
is_doctor 是否是医生发送 bool 是
content 消息内容 string 是 数据结构
deny_reason 拒绝原因 string 否 医生拒绝时传(定向视频特有)

返回:

名称 说明 类型 必要 备注
error_code 错误码 int 是 正常返回0
error_msg 错误信息 string 否

视频问诊事件类型event_type取值如下:

取值 说明
user_enter 用户进入
doctor_enter 医生进入
start 问诊开始
user_interrupt 用户退出中断
doctor_interrupt 医生退出中断
finish 问诊结束
send_summary 医生发送总结
refund 问诊退款
playback_create 回放链接生成
send_chat_msg 发送聊天消息
doctor_change_time 医生修改时间,回调中start_time为修改后的通话时间(定向视频特有)
doctor_deny 医生拒绝(定向视频特有)