# 就诊人

# 1.背景介绍

该文档主要是帮助合作方了解就诊人这里的整体处理流程,如果变更会向下兼容。 同时约定了腾讯健康与合作方对接的接口定义及数据格式

# 2.处理流程

  • 新增就诊人
uml diagram

主要流程为:用户选择新增就诊人后,界面跳转至合作方提供的添加就诊人的H5界面,用户在合作方界面操作完成后,由合作方调用syncPartnerPatient接口将用户数据同步给腾讯健康,并跳转回腾讯健康界面。值得注意的是,不同公众号下用户的openId均不同,因此数据同步时appId和openId一定不能为空!

  • 查询就诊人
uml diagram

主要流程为:小程序请求就诊人列表,腾讯健康后台调用合作方getPartnerPatients接口获取就诊人列表,合作方返回就诊人列表后,腾讯健康将查询到的数据整理后返回给小程序。

# 3.合作方涉及操作

  • 提供新增就诊人H5界面
  • 修改新增就诊人逻辑:增加数据同步(调用syncPartnerPatient)、界面跳转腾讯健康测试界面
  • 提供查询接口getPartnerPatients

# 4.接口定义

# 4.1 网关接入

网关接入请看网关接入标准

# 4.2 单个同步接口:syncPartnerPatient

# 4.2.1 请求报文

变量名 类型 必填 描述
openId string ✔️ 用户在合作方公众号下的openId
appId string ✔️ 合作方公众号的appId
patient patient ✖️ 就诊人,具体结构参见patient

# patient结构体

变量名 类型 必填 描述
hospitalId string ✔️ 医院id
appId string ✔️ 合作方公众号的appId
openId string ✔️ 用户在合作方公众号下的openId
userName string ✔️ 就诊人姓名
patientNo string ✔️ 就诊人全局唯一标识,例如就诊卡号
userCardType int ✖️ 就诊人的证件类型: 1-身份证
userCard string ✖️ 就诊人的证件号
gender int ✖️ 就诊人性别: 1-男; 2-女
birthDay string ✖️ 就诊人出生年月日(20190415)
relation int ✖️ 就诊人与openId的关系: 1-本人; 2-父母; 3-子女; 4-夫妻; 5-亲属; 6-朋友; 7-其他
phone string ✖️ 就诊人手机号码

# 报文示列

{
    "openId" : "ohNH9sgLh2n2f2kOtaGyFna4akdi",
    "appId" : "wxxxxx",
    "patient": {
        "hospitalId" : "xxxxx",
        "appId" : "wxxxxxx",
        "openId" : "oxxxxxxxxx",
        "userName" : "小明",
        "patientNo" : "123456",
        "userCardType" : 1,
        "userCard" : "43061120190415132X",
        "gender" : 1,
        "birthDay" : "20190415",
        "relation" : 1,
        "phone" : "13456783345"
    }
}

# 4.2.2 响应报文

变量名 类型 必填 描述
code int ✔️ 错误码: 0-成功; 小于0-网关错误; 大于0-业务错误
message string ✔️ 错误信息

# 报文示列

{
    "code" : 0,
    "message" : "SUCCESS"
}

# 4.2.3 业务错误码

错误码 描述
0 成功
1605001 参数错误
1605003 身份信息不正确

# 4.3 查询接口:getPartnerPatients

# 4.3.1 请求报文

变量名 类型 必填 描述
appId string ✔️ 合作方公众号的appId
openId string ✔️ 用户在合作方公众号下的openId

# 报文示列

{
    "appId" : "wxpartner",
    "openId" : "ohNH9sgLh2n2f2kOtaGyFna4akdi"
}

# 4.3.2 响应报文

变量名 类型 必填 描述
patients array ✔️ 就诊人列表,具体结构参见patient

# 报文示列

{
    "code" : 0,
    "message" : "SUCCESS",
    "rsp" : {
        "patients": [{
            "hospitalId" : "xxxxx",
            "appId" : "wxxxxxx",
            "openId" : "oxxxxxxxxx",
            "userName" : "小明",
            "patientNo" : "xxxxxx",
            "userCardType" : 1,
            "userCard" : "43061120190415132X",
            "gender" : 1,
            "birthDay" : "20190415",
            "relation" : 1,
            "phone" : "13456783345"
        }]
    }
}

# 4.2 批量同步接口:syncPatientsBatch

# 4.2.1 请求报文

变量名 类型 必填 描述
total int ✔️ 总共需要同步的就诊人个数
offset int ✔️ 当前总共同步的就诊人个数
requestId string ✖️ 用于唯一识别此次的同步操作
patients patient ✔️ 就诊人详情,长度不超过100,具体结构参见patient

# patient结构体

变量名 类型 必填 描述
hospitalId string ✔️ 医院id
appId string ✔️ 合作方公众号的appId
openId string ✔️ 用户在合作方公众号下的openId
userName string ✔️ 就诊人姓名
patientNo string ✔️ 就诊人全局唯一标识,例如就诊卡号
userCardType int ✖️ 就诊人的证件类型: 1-身份证
userCard string ✖️ 就诊人的证件号
gender int ✖️ 就诊人性别: 1-男; 2-女
birthDay string ✖️ 就诊人出生年月日(20190415)
relation int ✖️ 就诊人与openId的关系: 1-本人; 2-父母; 3-子女; 4-夫妻; 5-亲属; 6-朋友; 7-其他
phone string ✖️ 就诊人手机号码

# 报文示列

{
    "total" : 123450,
    "offset" : 4300,
	"requestId": "SYNC_1560173418947",
    "patients": [{
        "hospitalId" : "xxxxx",
        "appId" : "wxxxxxx",
        "openId" : "oxxxxxxxxx",
        "userName" : "小明",
        "patientNo" : "123456",
        "userCardType" : 1,
        "userCard" : "43061120190415132X",
        "gender" : 1,
        "birthDay" : "20190415",
        "relation" : 1,
        "phone" : "13456783345"
    }]
}

# 4.2.2 响应报文

变量名 类型 必填 描述
code int ✔️ 错误码: 0-成功; 小于0-网关错误; 大于0-业务错误
message string ✔️ 错误信息

# 报文示列

{
    "code" : 0,
    "message" : "SUCCESS"
}