🏥 东方医院 · 接口工作台
🔄 业务流程
请选择上方业务流程
点击一个流程按钮查看详细接口调用链和真实数据
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| (无) | — | 可选 | 基于Token自动识别 | ← 微信登录态 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| userId | String | 可选 | 用户ID | |
| └ cardNo | String | 可选 | 就诊卡号 | → 选择自费卡 |
| ⭐ └ cardType | String | 可选 | 0=医保,1=社保,2=自费 |
{} // 基于微信登录态自动识别用户
{
"code": 0,
"data": {
"userId": "8F587CA43D7546838A7C346E1685DA11",
"patientList": [{
"cardType": "1",
"cardNo": "350128199209203275",
"name": "李华",
"sex": "1",
"mobile": "18559938150",
"isDefault": "1",
"medicalcardList": [
{ "medicalCard": "DZ1000000011947", "medicalCardType": "2", "isDefault": "1", "hisPid": "1202477048" },
{ "medicalCard": "6022199030", "medicalCardType": "0", "isDefault": "0", "hisPid": "1202492618" },
{ "medicalCard": "350128199209203275", "medicalCardType": "1", "isDefault": "0" }
]
}]
},
"msg": "请求成功"
}
{} // 无业务参数
{
"code": 0,
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"version": "1.0"
},
"msg": "请求成功"
}
// JWT Payload 解码后:
// { "CusId": "91", "UIServiceId": "gh_19aaa7139bb2", "QIMAIUserId": "8F587CA...", "exp": 1781539199 }
{} // 无业务参数
{
"code": 0,
"data": {
"patientList": [{
"name": "李华",
"medicalcardList": [
{ "medicalCard": "DZ1000000011947", "medicalCardType": "2", "hisPid": "1202477048", "insure": "0" },
{ "medicalCard": "6022199030", "medicalCardType": "0", "hisPid": "1202492618", "insure": "0" }
]
}]
}
}
// ⚠️ 注意: getFull返回medicalCardType,getFullUser不返回此字段
端点: http://service.yhzn.com (新端点)
出参: oneDeptCode/oneDeptName/outpOrInpName/sortId
📌 实际已迁移到REST接口 queryOpeningDepartment,一次返回全部科室(约50个)
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| deptType | String | 可选 | 科室类型 | ← 固定:all |
| deptCode | String | 可选 | 科室代码 | ← 固定:all |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| oneDeptCode | String | 可选 | 一级科室代码 | → getDeptDoctor |
| ⭐ oneDeptName | String | 可选 | 科室名称 | |
| outpOrInpName | String | 可选 | 科室分类(内科/外科/儿科等) | |
| sortId | String | 可选 | 排序ID |
// 新版REST接口 (实际使用)
POST /platform/common/commonQuery
{"method":"queryOpeningDepartment","cardNo":"","branchId":"42501633102"}
{
"code": 200,
"data": [
{ "ksmc": "呼吸内科", "mzksNa": "呼吸内科", "ksfl": "内科", "sortId": "10", "depttype": "普通" },
{ "ksmc": "心血管内科", "mzksNa": "心血管内科", "ksfl": "内科", "sortId": "10" },
{ "ksmc": "消化内科", "mzksNa": "消化内科", "ksfl": "内科", "sortId": "10" },
{ "ksmc": "脊柱外科", "mzksNa": "脊柱外科", "ksfl": "外科", "sortId": "20" },
{ "ksmc": "泌尿外科", "mzksNa": "泌尿外科", "ksfl": "外科", "sortId": "20" },
{ "ksmc": "妇科", "mzksNa": "妇科", "ksfl": "妇产科", "sortId": "30" },
... // 共约50个科室
]
}
端点: http://service.yhzn.com
根据科室代码获取该科室下的医生列表
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| oneDeptCode | String | 可选 | 科室代码 | ← getAllDeptMsg选择 |
| hospitalNo | String | 可选 | 院区(2=南院) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| doctorId | String | 可选 | 医生ID | → getDoctorWork |
| doctorName | String | 可选 | 医生姓名 |
获取某医生可预约的日期列表
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| doctorId | String | 可选 | 医生ID | ← 上一步 |
| hospitalNo | String | 可选 | 院区 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| workDate | String | 可选 | 可预约日期 | → getDoctorSource |
获取某医生某日期的时段号源(上午/下午,每时段剩余号数)
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| doctorId | String | 可选 | 医生ID | |
| workDate | String | 可选 | 日期 | ← 上一步 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| period | String | 可选 | 时段(上午/下午) | |
| ⭐ remainNum | String | 可选 | 剩余号数 | |
| ⭐ templateld | String | 可选 | 号源模板ID | → getScheClinicorder |
172.31.10.34(南院) + 192.168.3.136(本院) + hihispre(预发布)
自费卡 cardType=2 DZ1000000011947
⚠️ 三台返回不同的associtePatNo(HIS实例独立患者ID)
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ cardNo | String | 可选 | 就诊卡号 | |
| ⭐ cardType | Int | 可选 | 2=统一自费就诊卡 | |
| ⭐ associtePatNo | String | 可选 | 患者ID(三台不同!) |
// 并发请求3台服务器
// 服务器1 — 南院 (172.31.10.34:19077)
{"branchId":"42501633102","platformType":"2","channelCode":"1","patName":"李华","idcardNo":"350128199209203275"}
// 服务器2 — 本院 (192.168.3.136:18077)
{"branchId":"42501633100","platformType":"2","channelCode":"1","patName":"李华","idcardNo":"350128199209203275"}
// 服务器3 — 预发布 (hihispre.easthospital.cn)
{"branchId":"42501633102","platformType":"2","channelCode":"1","patName":"李华","idcardNo":"350128199209203275"}
// 服务器1 (南院)
{"code":0,"data":[{"cardNo":"6022199030","cardType":0,"associtePatNo":1202492618},{"cardNo":"DZ1000000011947","cardType":2,"associtePatNo":1202477048}]}
// 服务器2 (本院)
{"code":0,"data":[{"cardNo":"DZ1000000011947","cardType":2,"associtePatNo":1202477049},{"cardNo":"6022199030","cardType":0,"associtePatNo":1202492619}]}
// 服务器3 (预发布 hihispre)
{"code":0,"data":[{"cardNo":"DZ1000000017010","cardType":2,"associtePatNo":805971612515176448},{"cardNo":"DZ1000000011947","cardType":2},{"cardNo":"6022199030","cardType":0}]}
// ⚠️ 关键差异: 同一患者在三台HIS中associtePatNo完全不同!
CardCategory=SelfPayCard(自费卡)
校验卡是否符合该科室挂号规则
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| BranchCode | String | 可选 | 2=南院 | |
| SceneCode | String | 可选 | AppointmentConfirm | |
| OneDeptCode | String | 可选 | 1003010000020000 | |
| SecondDeptCode | String | 可选 | 1003010000020000=呼吸内科正 | |
| CardCategory | String | 可选 | SelfPayCard |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ IsPassCheck | Bool | 可选 | 是否通过 |
POST /api/CardInterceptRule/checkRule
{
"BranchCode": "2",
"BranchName": "东方医院南院",
"SceneCode": "AppointmentConfirm",
"RuleSceneCode": "AppointmentRelated",
"OneDeptCode": "1003010000020000",
"OneDeptName": "呼吸内科",
"SecondDeptCode": "1003010000020000",
"SecondDeptName": "呼吸内科正",
"ClinicTypeCode": "2",
"CardCategory": "SelfPayCard",
"ChannelCode": "WeiXin"
}
{
"code": 0,
"data": {
"IsPassCheck": true,
"NeedPrompt": false,
"NeedSelectCard": false,
"FailReasonCode": "",
"PromptMessage": ""
},
"msg": "请求成功"
}
端点: service.busi.df.linkonworks.com
medicineCardNo传自费卡号DZ1000000011947
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ templateld | String | 可选 | 号源模板 | ← getDoctorSource组合 |
| name | String | 可选 | 患者姓名 | ← 李华 |
| medicineCardNo | String | 可选 | 自费卡号DZ1000000011947 | |
| idendityCardNo | String | 可选 | 身份证号 | |
| idendityCardType | String | 可选 | 11=身份证 | |
| cellphone | String | 可选 | 手机号 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ ReservationId | String | 可选 | 预约成功ID=828844103279575040 | |
| ⭐ State | String | 可选 | 1=成功 | |
| Message | String | 可选 | 预约成功 |
// SOAP XML 请求
POST http://service.busi.df.linkonworks.com/
<Envelope xmlns:soapenv='...' xmlns:ser='http://service.busi.df.linkonworks.com/'>
<Header><MyHeader>
<factoryno>QMGS</factoryno>
<factoryname>齐脉公司</factoryname>
<versionno>V1.0</versionno>
<hospitalno>2</hospitalno>
</MyHeader></Header>
<Body><getScheClinicorder>
<templateld>1003010302021000@GZL0194@20260617...</templateld>
<name>李华</name>
<medicineCardNo>DZ1000000011947</medicineCardNo>
<idendityCardNo>350128199209203275</idendityCardNo>
<idendityCardType>11</idendityCardType>
<cellphone>18559938150</cellphone>
</getScheClinicorder></Body>
</Envelope>
// SOAP XML 响应
<?xml version="1.0" encoding="UTF-8"?>
<Rows>
<Row>
<Message>预约成功</Message>
<ReservationId>828844103279575040</ReservationId>
<State>1</State>
</Row>
</Rows>
POST /api/Booking/getBookingList
{
"medicalCard": "DZ1000000011947",
"startTime": "2026-06-15 00:00:00",
"endTime": "2026-09-13 00:00:00",
"branchCode": ""
}
{
"code": 0,
"data": {
"bookingList": [{
"bookingId": "828844103279575040",
"branchName": "东方医院南院",
"nodeName": "呼吸内科正",
"name": "李华",
"doctorName": "郭忠良",
"classDate": "2026-06-17",
"period": "15:30-16:00",
"price": 50.0,
"bookingTime": "2026-06-15 18:05:38",
"status": 0,
"reservationSource": "上海市东方医院公众号"
}, ...]
}
}
// status: 0=已预约, 2=已就诊, 3=已过期
{} // 基于微信登录态
// 医保卡 cardType=0(医保卡) 示例
{
"code": 0,
"data": {
"patientList": [{
"cardType": "1",
"cardNo": "350128199209203275",
"name": "李华",
"medicalcardList": [
{ "medicalCard": "6022199030", "medicalCardType": "0", "hisPid": "1202492618" }
]
}]
}
}
{}
{"code":0,"data":{"access_token":"eyJ...","version":"1.0"},"msg":"请求成功"}
// 并发3台HIS服务器(同自费流程)
// 南院 172.31.10.34 + 本院 192.168.3.136 + 预发布 hihispre
// 南院返回: cardType=0, associtePatNo=1202492618
// 本院返回: cardType=0, associtePatNo=1202492619
// 预发布: cardType=0, associtePatNo=805971612515176448
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ ecQrCode | String | 可选 | 医保电子凭证码 | ← 用户刷码 |
| ecQrChannel | String | 可选 | 2=微信 | |
| businessType | String | 可选 | 01101=挂号 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ cardNo | String | 可选 | 医保就诊卡号 | |
| cardType | String | 可选 | 0=医保卡 | |
| insuOrg | String | 可选 | 参保地 |
// 与自费流程差异: CardCategory=MedicalInsuranceCard
{"BranchCode":"2","SceneCode":"AppointmentConfirm","OneDeptCode":"1003010000020000","CardCategory":"MedicalInsuranceCard"}
{"code":0,"data":{"IsPassCheck":true},"msg":"请求成功"}
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| cardNo | String | 可选 | 就诊卡号或身份证号 | ← 步骤① |
| deptCode | String | 可选 | 科室代码(可选) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ hisRegNo | String | 可选 | HIS就诊流水号 | → 步骤③⑤ |
| deptName | String | 可选 | 科室名称 | |
| ghsj | String | 可选 | 挂号时间(yyyy-MM-dd) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| orderId | String | 可选 | 平台交易流水号 | ← 系统生成 |
| └ associtePatNo | String | 可选 | 患者ID | ← 步骤① |
| └ cardNo | String | 可选 | 就诊卡号 | ← 步骤① |
| └ hisRegNo | String | 可选 | HIS就诊号 | ← 步骤② |
| └ deptCode | String | 可选 | 科室代码 | |
| └ totalMoney | Decimal | 可选 | 挂号总金额 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ totalAmount | Decimal | 可选 | 总金额 | |
| ⭐ selfPay | Decimal | 可选 | 自费金额 | → 步骤④支付金额 |
| hisRegNo | String | 可选 | HIS挂号ID | → 步骤⑤ |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| amount | Decimal | 可选 | 支付金额 | ← 步骤③ selfPay |
| orderId | String | 可选 | 商户订单号 | |
| channel | String | 可选 | 支付渠道(wechat) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ tradeNo | String | 可选 | 微信支付流水号 | → 步骤⑤ payInfo.tradeNo |
| orderNo | String | 可选 | 第三方支付订单号 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| orderId | String | 可选 | 平台交易流水号 | |
| patInfo | Object | 可选 | 患者信息(同预结算) | |
| regInfo | Object | 可选 | 就诊信息(同预结算) | |
| └ orderNo | String | 可选 | 支付订单号 | ← 步骤④ |
| ⭐ └ tradeNo | String | 可选 | 微信支付流水号 | ← 步骤④ |
| └ channel | String | 可选 | 支付渠道(wechat) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ hisRegNo | String | 可选 | HIS挂号ID | |
| jzpdh | String | 可选 | 就诊排队号 | |
| ⭐ hisghfp | String | 可选 | HIS挂号发票号 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| orderId | String | 可选 | 平台交易流水号 | ← 系统生成 |
| ⭐ ecQrCode | String | 可选 | 医保电子凭证二维码 | ← 用户刷码 |
| ecQrChannel | String | 可选 | 渠道(2=微信,3=随申办) | ← 配置 |
| payAuthNo | String | 可选 | 支付授权码 | |
| acctUsedFlag | String | 可选 | 个人账户标志(1=使用) | ← 默认1 |
| └ cardNo | String | 可选 | 就诊卡号 | ← 步骤① |
| └ cardType | String | 可选 | 卡类型(1=社保卡) | |
| └ associtePatNo | String | 可选 | 患者ID | ← 步骤① |
| └ deptCode | String | 可选 | 科室代码 | |
| └ deptClassify | String | 可选 | 科室类型(100=普通门诊) | |
| ⭐ └ totalMoney | Decimal | 可选 | 挂号总金额 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ totalAmount | Decimal | 可选 | 总金额 | |
| ⭐ insurancePay | Decimal | 可选 | 医保统筹支付 | |
| psnAcctPay | Decimal | 可选 | 个人账户支付 | |
| fundPay | Decimal | 可选 | 基金支付 | |
| ⭐ selfPay | Decimal | 可选 | 自费金额→下一步支付 | → 步骤④支付金额 |
| payOrdId | String | 可选 | 支付订单号 | → 步骤⑤ |
| payToken | String | 可选 | 支付令牌 | → 步骤⑤ |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| orderId | String | 可选 | 平台交易流水号 | |
| patInfo(同预结算) | Object | 可选 | 患者信息 | |
| regInfo(同预结算) | Object | 可选 | 就诊信息(hisRegNo需用预结算返回的值) | |
| payOrdId | String | 可选 | 支付订单号 | ← 步骤③ |
| payToken | String | 可选 | 支付令牌 | ← 步骤③ |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| hisRegNo | String | 可选 | HIS挂号ID | |
| ⭐ idMedstoe | String | 可选 | 结算记录ID | → 步骤⑥ |
| orderNo | String | 可选 | 为空=无需额外支付 | |
| sqzzbz | String | 可选 | 社区转诊标志(0=非转诊) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| orderId | String | 可选 | 订单号 | |
| idMedstoe | String | 可选 | 结算记录ID | ← 步骤⑤ |
| payOrdId | String | 可选 | 支付订单号 | ← 步骤⑤ |
| payToken | String | 可选 | 支付令牌 | ← 步骤⑤ |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| hisId | String | 可选 | HIS流水号 | |
| ⭐ jzpdh | String | 可选 | 就诊排队号 | |
| ⭐ hisghfp | String | 可选 | HIS挂号发票号 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| cardType | String | 可选 | 卡类型 | ← 2=统一自费就诊卡 |
| cardNum | String | 可选 | 卡号或身份证号 | |
| idcardNo | String | 可选 | 身份证号 | |
| startTime | String | 可选 | 开始日期(yyyy-MM-dd) | |
| endTime | String | 可选 | 结束日期 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| └ hisRegNo | String | 可选 | HIS挂号流水号 | → 步骤② |
| └ deptName | String | 可选 | 科室名称 | |
| └ presCount | Int | 可选 | 处方数量 | |
| ⭐ └ orderTotal | Decimal | 可选 | 订单总额 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| hisRegNo | String | 可选 | HIS就诊号 | ← 步骤① |
| cardNum | String | 可选 | 就诊卡号 | |
| patId | String | 可选 | 患者ID |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| └ itemName | String | 可选 | 药品/项目名称 | |
| └ num | Float | 可选 | 数量 | |
| └ retaPrice | Float | 可选 | 零售单价 | |
| └ prescDoctName | String | 可选 | 开方医生 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| orderId | String | 可选 | 平台交易流水号 | |
| patInfo | Object | 可选 | 患者信息 | |
| regInfo | Object | 可选 | 就诊信息 | |
| presInfo[] | Array | 可选 | 处方明细列表(presSn/groupNo/itemCode/itemName/num/retaPrice) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ totalAmount | Decimal | 可选 | 总金额 | |
| ⭐ selfPay | Decimal | 可选 | 自费金额 | → 步骤④ |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| orderId/payInfo | Object | 可选 | 含tradeNo/amount/channel | |
| patInfo/regInfo/presInfo | Object | 可选 | 同预结算 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| chargeId | String | 可选 | 收费ID | |
| idMedstoe | String | 可选 | 结算记录ID |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| orderId | String | 可选 | 平台交易流水号 | |
| ⭐ ecQrCode | String | 可选 | 医保电子凭证码 | |
| ecQrChannel | String | 可选 | 渠道(2=微信) | |
| acctUsedFlag | String | 可选 | 个人账户标志 | ← 默认1 |
| patInfo | Object | 可选 | 患者信息 | |
| presInfo[] | Array | 可选 | 处方明细 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| totalAmount | Decimal | 可选 | 总金额 | |
| insurancePay | Decimal | 可选 | 医保统筹支付 | |
| fundPay | Decimal | 可选 | 基金支付 | |
| psnAcctPay | Decimal | 可选 | 个人账户支付 | |
| ⭐ selfPay | Decimal | 可选 | 自费金额→支付 | → 步骤④ |
| payOrdId/payToken | String | 可选 | 支付令牌 | → 步骤⑤ |
住院业务
该模块业务待补充,后续可在此添加住院相关流程(入院登记、住院缴费、出院结算、住院报告等)
请选择上方业务流程
点击一个流程按钮查看详细接口调用链和真实数据
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| medicalCard | String | 可选 | 就诊卡号 | ← 默认卡DZ1000000011947 |
| medicalCardType | String | 可选 | 2=自费卡 | |
| startTime | String | 可选 | 开始日期(默认+3个月) | |
| endTime | String | 可选 | 结束日期 | |
| branchCode | String | 可选 | 空=全部院区 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| └ bookingId | String | 可选 | 预约ID(平台8288...或北院1033...) | |
| └ branchName | String | 可选 | 院区名称 | |
| ⭐ └ nodeName | String | 可选 | 科室名称 | |
| └ doctorName | String | 可选 | 医生姓名 | |
| ⭐ └ classDate | String | 可选 | 就诊日期 | |
| └ period | String | 可选 | 就诊时段 | |
| ⭐ └ price | Decimal | 可选 | 费用 | |
| └ status | Int | 可选 | 0=已预约/2=已就诊/3=已过期/8=已取消 | |
| └ reservationSource | String | 可选 | 预约渠道(官微/公众号/系统渠道) |
// 第一次查询:默认3个月范围
POST /api/Booking/getBookingList
{
"medicalCard": "DZ1000000011947",
"startTime": "2026-06-16",
"endTime": "2026-09-14",
"branchCode": ""
}
// 第二次查询:近1个月范围
{
"medicalCard": "DZ1000000011947",
"startTime": "2026-06-01",
"endTime": "2026-06-30",
"branchCode": ""
}
// 第1次查询返回8条,第2次返回24条
{
"code": 0,
"data": {
"bookingList": [{
"bookingId": "828844103279575040",
"branchName": "东方医院南院",
"nodeName": "呼吸内科正",
"name": "李华",
"doctorName": "郭忠良",
"classDate": "2026-06-17",
"period": "15:30-16:00",
"price": 50.0,
"status": 2,
"reservationSource": "上海市东方医院公众号"
}, {
"bookingId": "829083377933484032",
"branchName": "东方医院南院",
"nodeName": "心血管内科特需3",
"doctorName": "李昕",
"classDate": "2026-06-16",
"period": "15:00-15:30",
"price": 300.0,
"status": 2,
"reservationSource": "上海市东方医院公众号"
}, ...]
}
}
// status: 0=已预约(可取消), 2=已就诊, 3=已过期, 8=已取消
// 南院bookingId格式: 8开头的18位数字
// 北院bookingId格式: 103开头的短数字
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| medicalCard | String | 可选 | 就诊卡号 | ← DZ1000000011947 |
| medicalCardType | String | 可选 | 2=自费卡 | |
| startTime | String | 可选 | 开始日期 | |
| endTime | String | 可选 | 结束日期 | |
| branchCode | String | 可选 | 空=全部 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| └ regId | String | 可选 | 挂号ID | |
| ⭐ └ nodeName | String | 可选 | 科室名称 | |
| └ doctorName | String | 可选 | 医生姓名 | |
| └ classDate | String | 可选 | 就诊日期 | |
| ⭐ └ serviceType | String | 可选 | 号别(普通/专家/特需/专科) | |
| ⭐ └ totalAmt | Decimal | 可选 | 总金额 | |
| └ branchAddress | String | 可选 | 院区地址 |
// 先查今天(无结果)
POST /api/Registration/getRegList
{
"medicalCard": "DZ1000000011947",
"startTime": "2026-06-16",
"endTime": "2026-06-16",
"branchCode": ""
}
// ⬆ 返回: {"code":0,"data":{"regList":[]}}
// 再查整月
{
"medicalCard": "DZ1000000011947",
"startTime": "2026-06-01",
"endTime": "2026-06-30",
"branchCode": ""
}
{
"code": 0,
"data": {
"regList": [{
"regId": "123652858",
"branchAddress": "北院(即墨路150号)",
"nodeName": "神经内科副",
"doctorName": "肖亚平",
"classDate": "2026-06-04",
"serviceType": "专家门诊",
"totalAmt": "40.00"
}, {
"regId": "825086371061829632",
"branchAddress": "南院(云台路1800号)",
"nodeName": "肿瘤科特需3*",
"doctorName": "李群",
"classDate": "2026-06-05",
"serviceType": "特需",
"totalAmt": "300.00"
}, ...]
}
}
// 北院regId: 短数字; 南院regId: 8开头长数字
// 返回14条记录,涵盖普通(¥25)、专家(¥40-50)、特需(¥200-300)
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| SFZH | String | 可选 | 身份证号 | |
| MZHM | String | 可选 | 就诊卡号 | |
| branchId | String | 可选 | 院区代码(42501633102/42501633100) | |
| method | String | 可选 | 固定:getBrdaMz |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ └ MZID | String | 可选 | 门诊患者ID(HIS内部) | |
| └ BRXM | String | 可选 | 患者姓名 | |
| └ XZMC | String | 可选 | 费用性质(自费/新医保) |
// 南院
{"SFZH":"350128199209203275","MZHM":"DZ1000000011947","branchId":"42501633102","method":"getBrdaMz"}
// 本院
{"SFZH":"350128199209203275","MZHM":"DZ1000000011947","branchId":"42501633100","method":"getBrdaMz"}
// 预发布
{"SFZH":"350128199209203275","MZHM":"DZ1000000011947","branchId":"42501633102","method":"getBrdaMz"}
// 南院: {"code":"0","data":[{"MZID":"1202477048","BRXM":"李华","XZMC":"自费"}]}
// 本院: {"code":"0","data":[{"MZID":"1202477049","BRXM":"李华","XZMC":"自费"}]}
// 预发布: {"code":"200","data":[{"MZID":"805971612515176448","BRXM":"李华"},{"MZID":"803795254691233792","BRXM":"李华"}]}
// ⚠️ 预发布环境同一患者可能有多个MZID!
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| MZID | String | 可选 | 门诊患者ID | ← getBrdaMz |
| branchId | String | 可选 | 院区代码 | |
| clinicDateStart/End | String | 可选 | 日期范围 | |
| method | String | 可选 | 固定:getGhjlMz |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ └ GHSJ | String | 可选 | 挂号时间戳 | |
| ⭐ └ GHKSMC | String | 可选 | 挂号科室名称 | |
| └ YSXM | String | 可选 | 医生姓名 | |
| ⭐ └ ZJE | Decimal | 可选 | 总金额 | |
| ⭐ └ GHLBMC | String | 可选 | 号别(普通/专家/特需/专科) | |
| ⭐ └ hisRegNo | String | 可选 | HIS挂号流水号 | |
| └ THBZ | String | 可选 | 退号标志(1=正常) | |
| └ CardNo | String | 可选 | 实际使用的就诊卡号 |
// 南院MZID=1202477048 查6月
{"MZID":"1202477048","clinicDateStart":"2026/06/01","clinicDateEnd":"2026/06/30","method":"getGhjlMz","branchId":"42501633102"}
// 南院返回9条:
[{"GHSJ":"2026-06-05","ZJE":"300.00","GHKSMC":"肿瘤科特需3*","GHLBMC":"特需","hisRegNo":"825086371061829632","YSXM":"李群","THBZ":"1","CardNo":"DZ1000000011947","ChargeId":"825086434464501760"},
{"GHSJ":"2026-06-05","ZJE":"25.00","GHKSMC":"甲亢甲减","GHLBMC":"专科","hisRegNo":"825086721521090560","THBZ":"1","CardNo":"DZ1000000011947"},
{"GHSJ":"2026-06-04","ZJE":"40.00","GHKSMC":"呼吸内科副","GHLBMC":"专家","hisRegNo":"824753707490476032","YSXM":"刘美璇","CardNo":"6022199030"}]
// ⚠️ 同一次会话可能使用不同卡(自费卡DZ1000... vs 医保卡6022...)
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| medicalCard | String | 可选 | 就诊卡号 | ← DZ1000000011947 |
| startTime | String | 可选 | 开始日期 | |
| endTime | String | 可选 | 结束日期 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| RecipeList | Array | 可选 | 待缴费处方列表 |
POST /api/Recipe/toPayList
{"medicalCard":"DZ1000000011947","startTime":"2026-06-15","endTime":"2026-06-16"}
{"code":0,"data":{"RecipeList":[]},"msg":"请求成功"}
// 当前测试环境无待缴费数据
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| medicalCard | String | 可选 | 就诊卡号 | |
| category | String | 可选 | Recipe=处方缴费 | |
| startTime/endTime | String | 可选 | 日期范围 |
// 查6月
{"medicalCard":"DZ1000000011947","startTime":"2026-06-01","endTime":"2026-06-30","branchCode":""}
// 查5月
{"medicalCard":"DZ1000000011947","startTime":"2026-05-01","endTime":"2026-05-31","branchCode":""}
{"code":0,"data":{"recipeList":[]},"msg":"请求成功"}
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| branchId | String | 可选 | 院区代码 | |
| cardType | String | 可选 | 2=自费卡 | |
| cardNum | String | 可选 | 就诊卡号 | |
| idcardNo | String | 可选 | 身份证号 | |
| startTime/endTime | String | 可选 | 日期范围(yyyy-MM-dd) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| regInfo | Array | 可选 | 待缴费挂号记录 | |
| feeInfo | Array | 可选 | 费用明细 |
// 南院
{"branchId":"42501633102","cardType":"2","cardNum":"DZ1000000011947","idcardNo":"350128199209203275","startTime":"2026-06-15","endTime":"2026-06-16"}
// 南院响应: {"code":"0","msg":"未查到数据"}
// 本院响应: {"code":"0","msg":"未查到数据"}
// 预发布: {"code":"-1","msg":"卡号:DZ1000000011947未查到就诊信息"}
// 当前测试账号无待缴费处方
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| branchCode | String | 可选 | 院区(空=全部) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ └ reportTypeCode | String | 可选 | 01=检查/02=检验 | |
| └ reportTypeName | String | 可选 | 中文名 |
POST /api/Report/getReportType
{"branchCode":""}
{"code":0,"data":{"reportTypeList":[{"reportTypeCode":"01","reportTypeName":"检查报告"},{"reportTypeCode":"02","reportTypeName":"检验报告"}]}}
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| reportTypeCode | String | 可选 | 01=检查报告 | |
| medicalCard | String | 可选 | 就诊卡号 | ← 143606074607811 |
| cardNo | String | 可选 | 身份证号 | ← 411527199202135049 |
| ptName | String | 可选 | 患者姓名 | ← 邢秋丽 |
| startTime | String | 可选 | 开始日期 | |
| endTime | String | 可选 | 结束日期 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ └ reportName | String | 可选 | 报告名称 | |
| ⭐ └ reportId | String | 可选 | 报告ID(NYJC开头=南院检查) | |
| └ reportTime | String | 可选 | 报告日期 | |
| ⭐ └ idKeyGuid | String | 可选 | 报告唯一键(查详情用) | → getReportInfo |
// 第1次:查1个月范围(无结果)
{"reportTypeCode":"01","medicalCard":"143606074607811","ptName":"邢秋丽","cardNo":"411527199202135049","startTime":"2026-06-01","endTime":"2026-06-30"}
// 第2次:扩大到1年(有数据)
{"reportTypeCode":"01","medicalCard":"143606074607811","ptName":"邢秋丽","cardNo":"411527199202135049","startTime":"2025-06-16","endTime":"2026-06-16"}
// 返回27条检查报告:
[{"reportName":"妇科彩色超声常规(经阴道)","reportId":"NYJC260603302222","reportTime":"2026-06-10","idKeyGuid":"NYJC260603302222_NYJC260603302222_e72e..."},
{"reportName":"常规心电图检查(心电图室检查)","reportId":"NYJC260413003841","reportTime":"2026-04-13"},
{"reportName":"头颅+脑弥散功能成像(DWI)(MRI平扫)","reportId":"NYJC260407003274","reportTime":"2026-04-08"},
{"reportName":"胎儿畸形筛查-单胎(3楼特需超声)","reportId":"NYJC260603300554","reportTime":"2026-06-03"},
{"reportName":"脱落细胞【妇科】","reportId":"NYBLSQ2026030400035","reportTime":"2026-03-05"}]
// NYJC=南院检查, NYBLSQ=南院病理申请
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| reportId | String | 可选 | 报告ID | ← 列表选中 |
| idKeyGuid | String | 可选 | 唯一键 | ← 列表选中 |
| reportTypeCode | String | 可选 | 01=检查 | |
| branchCode | String | 可选 | 院区(空) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ └ result | String | 可选 | 检查所见 | |
| ⭐ └ resultDesc | String | 可选 | 诊断结果 | |
| └ checkNodeName | String | 可选 | 检查科室 | |
| germDetail | Object | 可选 | null=检查报告无微生物数据 |
POST /api/Report/getReportInfo
{"reportId":"NYJC260603302222","idKeyGuid":"NYJC260603302222_NYJC260603302222_e72e0e68d6834463b37aa6963c4e4c99","reportTypeCode":"01","branchCode":""}
{"code":0,"data":{"checkDetail":{"result":"宫颈呈"T"型,内口无分离","checkNodeName":"妇产超声科","resultDesc":"孕妇宫颈长41.1mm,颈管呈"T"型,内口无分离。CDFI:未见明显异常血流信号。"},"resultList":[],"germDetail":null}}
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| reportTypeCode | String | 可选 | 02=检验报告 | |
| inspectTypeCode | String | 可选 | null=全部(含常规+微生物) | |
| medicalCard | String | 可选 | 143606074607811 | |
| ptName | String | 可选 | 邢秋丽 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ └ reportName | String | 可选 | 检验项目名称 | |
| ⭐ └ reportId | String | 可选 | 报告ID(纯数字) | |
| ⭐ └ inspectTypeCode | String | 可选 | 1=常规检验/2=微生物 | |
| └ branchId | String | 可选 | 2=南院(微生物专属) |
POST /api/Report/getReportList
{"reportTypeCode":"02","medicalCard":"143606074607811","ptName":"邢秋丽","cardNo":"411527199202135049","startTime":"2026-06-01","endTime":"2026-06-30"}
// 返回18条检验报告:
[{"reportName":"一般细菌培养及鉴定(中段尿)","reportId":"27259245","inspectTypeCode":"2","branchId":"2"},
{"reportName":"艰难梭菌核酸(DNA)检测","reportId":"27259217","inspectTypeCode":"1"},
{"reportName":"血细胞分析,CRP","reportId":"27259114","inspectTypeCode":"1"},
{"reportName":"PCT","reportId":"27259155","inspectTypeCode":"1"},
{"reportName":"急诊尿液分析(尿9联及以上)","reportId":"27259201","inspectTypeCode":"1"},
{"reportName":"急诊D-Dimer","reportId":"27259163","inspectTypeCode":"1"},
{"reportName":"SAA,血细胞分析,CRP","reportId":"27237043","inspectTypeCode":"1"}]
// inspectTypeCode="1"→点进去看检验指标
// inspectTypeCode="2"→点进去看微生物药敏
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| reportId | String | 可选 | 报告ID | ← 列表选中 如27259114 |
| idKeyGuid | String | 可选 | =reportId(检验报告无组合键) | |
| reportTypeCode | String | 可选 | 02=检验 | |
| ⭐ inspectTypeCode | String | 可选 | 1=常规检验 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ └ index | String | 可选 | 检验指标名称 | |
| ⭐ └ standard | String | 可选 | 参考范围 | |
| ⭐ └ result | String | 可选 | 实测结果值 | |
| ⭐ └ abnormal | String | 可选 | ↑=偏高/↓=偏低/正常 | |
| └ resultUnit | String | 可选 | 单位 |
POST /api/Report/getReportInfo
{"reportId":"27259114","idKeyGuid":"27259114","reportTypeCode":"02","inspectTypeCode":"1"}
{"code":0,"data":{"resultList":[
{"index":"白细胞计数","standard":"3.5--9.5","result":"9.69","abnormal":"↑","resultUnit":"10^9/L"},
{"index":"中性粒细胞百分比","standard":"40--75","result":"74.8","abnormal":"正常","resultUnit":"%"},
{"index":"淋巴细胞百分比","standard":"20--50","result":"17.4","abnormal":"↓","resultUnit":"%"},
{"index":"红细胞计数","standard":"3.8--5.1","result":"3.78","abnormal":"↓","resultUnit":"10^12/L"},
{"index":"血红蛋白","standard":"115--150","result":"121","abnormal":"正常","resultUnit":"g/L"},
{"index":"血小板计数","standard":"125--350","result":"220","abnormal":"正常","resultUnit":"10^9/L"},
{"index":"快速C反应蛋白","standard":"0--6","result":"3.06","abnormal":"正常","resultUnit":"mg/L"}
// ...共24项指标
],"checkDetail":null,"germDetail":null}}
// 同检验报告列表
POST /api/Report/getReportList
{"reportTypeCode":"02","medicalCard":"143606074607811","ptName":"邢秋丽","startTime":"2026-06-01","endTime":"2026-06-30"}
// inspectTypeCode="2" 的记录:
{"reportName":"一般细菌培养及鉴定(中段尿)","reportId":"27259245","inspectTypeCode":"2","branchId":"2"}
{"reportName":"一般细菌培养及鉴定(中段尿)","reportId":"27237099","inspectTypeCode":"2","branchId":"2"}
{"reportName":"一般细菌培养及鉴定","reportId":"27241505","inspectTypeCode":"2","branchId":"2"}
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| reportId | String | 可选 | 27259245 | |
| reportTypeCode | String | 可选 | 02=检验 | |
| ⭐ inspectTypeCode | String | 可选 | 2=微生物 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| ⭐ └ germCheckResult | String | 可选 | 菌种鉴定结果 | |
| ⭐ └ antibiotics | String | 可选 | 抗生素名称 | |
| ⭐ └ sensitivity | String | 可选 | 敏感/中介/耐药 | |
| └ mic | String | 可选 | MIC值(最低抑菌浓度) | |
| └ rad | String | 可选 | 抑菌圈直径(mm) |
POST /api/Report/getReportInfo
{"reportId":"27259245","idKeyGuid":"27259245","reportTypeCode":"02","inspectTypeCode":"2"}
{"code":0,"data":{"germDetail":{
"germCheckResult":"粪肠球菌(D群)[strfae]",
"germMicrobeItemDetail":[
{"antibiotics":"氨苄西林","sensitivity":"敏感","mic":"<=2","rad":""},
{"antibiotics":"苄青霉素","sensitivity":"敏感","mic":"2","rad":""},
{"antibiotics":"万古霉素","sensitivity":"敏感","mic":"<=0.5","rad":""},
{"antibiotics":"利奈唑胺","sensitivity":"敏感","mic":"2","rad":""},
{"antibiotics":"替考拉宁","sensitivity":"敏感","mic":"<=0.5","rad":""},
{"antibiotics":"达托霉素","sensitivity":"中介","mic":"4","rad":""},
{"antibiotics":"呋喃妥因","sensitivity":"敏感","mic":"","rad":"25"},
{"antibiotics":"左氧氟沙星","sensitivity":"耐药","mic":">=8","rad":""},
{"antibiotics":"高浓度庆大霉素","sensitivity":"耐药","mic":"SYN-R","rad":""},
{"antibiotics":"磷霉素","sensitivity":"敏感","mic":"","rad":"20"}
]
}}}
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| cardNo | String | 可选 | 就诊卡号 | ← 143606074607811 |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| result | Array | 可选 | 微生物报告列表 | |
| resultCode | String | 可选 | T/F |
// SOAP XML 请求
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ser:getMicrobeReport xmlns:ser="http://service.yhzn.com">
<cardNo>143606074607811</cardNo>
</ser:getMicrobeReport>
</soap:Body>
</soap:Envelope>
// SOAP XML 响应
<soap:Envelope>
<soap:Body>
<ns2:getMicrobeReportResponse>
<return>{"result":[],"resultCode":"T"}</return>
</ns2:getMicrobeReportResponse>
</soap:Body>
</soap:Envelope>
// resultCode="T"=调用成功但无数据(该患者当前无未收录的微生物报告)
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| patientName | String | 可选 | 患者姓名 | ← 邢秋丽 |
| cardNo | String | 可选 | 身份证号 | ← 411527199202135049 |
| startTime | String | 可选 | 开始日期 | |
| endTime | String | 可选 | 结束日期 | |
| branchCode | String | 可选 | 院区(空=全部) |
| 参数名 | 类型 | 必填 | 说明 | 来源/去向 |
|---|---|---|---|---|
| MedicalReportList | Array | 可选 | 电子病历列表 |
// 先查6月(无结果)
POST /api/Report/getMedicalReportList
{"startTime":"2026-06-01","endTime":"2026-06-30","patientName":"邢秋丽","cardNo":"411527199202135049","branchCode":""}
{"code":0,"data":{"MedicalReportList":[]},"msg":"请求成功"}
// 当前测试环境无电子病历数据
🎨 颜色图例 — 对应接口文档
📱 公众号内部接口速查
其他
| 接口 | 功能说明 | 频率 | 关联流程 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ** 新入职开发/运维/测试人员 | - | 展开 | ||||||||||||||
东方医院公众号业务接口对接文档
| ||||||||||||||||
| ⚠️ 阅读前必读 — 文档 vs 实际 | **接口文档仅作参考,实际入出参以接口调用日志为准!** 经对比验证,HIS接口文档与生产日志存在显著差异。典型例子: | 对比维度 | HIS接口文档描述 | - | 展开 | |||||||||||||
接口文档仅作参考,实际入出参以接口调用日志为准! 经对比验证,HIS接口文档与生产日志存在显著差异。典型例子:
因此本文档所有字段说明均以日志实际抓取为准,接口文档仅作补充参考。如果你发现本文档与接口文档不一致,以本文档(即日志实际数据)为准。 | ||||||||||||||||
| 目录 | 1. [系统架构全景图](#1-系统架构全景图) 2. [对接方与服务器环境](#2-对接方与服务器环境) 3. [核心业务流程(附真实日志)](#3-核心业务 | - | 展开 | |||||||||||||
1.1 物理架构
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
1.2 数据流转层次
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
3.1 流程一:预约挂号(完整链路)
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
4.1 接口调用频次统计
| 接口 | 功能说明 | 频率 | 关联流程 | |||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| /api/User/getToken | {} (空,基于微信session) | - | 展开 | |||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||
| /api/User/addPatient | | 接口 | 方法 | 说明 | |------|------|------| | `/api/User/addPatient` | POST | 添加就诊人( | - | 展开 | |||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||
| /api/Booking/getBookingList | | 接口 | 说明 | |------|------| | `/api/Booking/getBookingList` | 获取用户的预约记录列表 | | `/ | - | 展开 | |||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||
| /api/Report/getReportType | | 接口 | 日调用量 | 说明 | |------|---------|------| | `/api/Report/getReportType` | 14, | - | 展开 | |||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||
| /api/MedicalEva/outPatient | | 接口 | 说明 | |------|------| | `/api/MedicalEva/outPatient` | 获取门诊评价列表 | | `/api/ | - | 展开 | |||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||
| /api/System/getBaiduMap | | 接口 | 说明 | |------|------| | `/api/System/getBaiduMap` | 获取百度地图导航(到医院路线) | | `/ | - | 展开 | |||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||
5.1 接口总览
| 接口 | 功能说明 | 频率 | 关联流程 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 门诊相关 method(从日志统计的使用情况) | | method | 功能 | 主要入参 | 返回数据 | |--------|------|---------|---------| | `getBrdaMz | - | 展开 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /hcenter/dept | | 接口 | 功能 | 备注 | |------|------|------| | `/hcenter/dept` | 科室字典 | 实际出参见下方「5.4 实 | - | 展开 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dept(科室字典)实际出参 | deptName, flxh, sortId, mzksNa, ghlb, code, ksdz, msg, mzks, pydm, zzjxzf, mzlb, | - | 展开 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6.1 概述
| 接口 | 功能说明 | 频率 | 关联流程 | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 6.3.1 预约挂号(两种调用方式) | 新系统格式(南院)** | - | 展开 | |||||||||||||||||||
方式一:新系统格式(南院)
方式二:老系统格式(总院)
返回格式: | ||||||||||||||||||||||
| 6.3.2 取消预约 | cancelOrder | - | 展开 | |||||||||||||||||||
| ||||||||||||||||||||||
| bs_userassociatecard — 用户关联卡表 | ** | - | 展开 | |||||||||||||||||||
业务场景:
关联模块: 预约挂号(选择就诊卡时读取)、个人中心(展示已绑卡列表) | ||||||||||||||||||||||
11.5 电子凭证渠道 (ecQrChannel)
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
11.10 用码业务类型 (BusinessTypeEnum)
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
11.11 状态码约定汇总
| 接口 | 功能说明 | 频率 | 关联流程 | |
|---|---|---|---|---|
| BusCenter内部接口日志 (bus目录) | 00:16.369=>请求接口请求时间:2026-06-14 00:00:16:3677 | - | 展开 | |
返回日志: | ||||
| 错误日志 (error目录) | 07:12.569=>系统错误:System.Exception: 院内新系统无档,不支持查询病历报告! | - | 展开 | |
| ||||
🔗 平台交接接口速查
2.1 服务器清单
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
2.2 院区编码对照
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
2.3 平台标识参数
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
3.2 流程二:医保当日挂号(完整链路)
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
3.3 流程三:退费/退号
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
3.4 流程四:个人中心查询(挂号记录)
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
3.5 流程五:门诊缴费查询
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
5.2 通用查询接口 `/platform/common/commonQuery`
| 接口 | 功能说明 | 频率 | 关联流程 | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 住院相关 method | | method | 功能 | 主要入参 | 返回数据 | |--------|------|---------|---------| | `queryzyjz | - | 展开 | |||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| /hcenter/createBrda2 | "42501633102", | - | 展开 | |||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| /hcenter/PreChRegInfo | ** | - | 展开 | |||||||||||||||||||||||||
PreChRegInfo 请求:
ChRegInfo 请求(比预结算多了 payInfo): | ||||||||||||||||||||||||||||
| /hcenter/getMedicalInsuranceCard | ** | - | 展开 | |||||||||||||||||||||||||
关键参数说明:
- | ||||||||||||||||||||||||||||
| /hcenter/GetOutpPresc | | 步骤 | 自费接口 | 医保接口 | 说明 | |------|---------|---------|------| | 列表 | `/hcenter/G | - | 展开 | |||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
5.4 实际字段速查(来自生产日志验证)
| 接口 | 功能说明 | 频率 | 关联流程 | |
|---|---|---|---|---|
| queryOpeningDepartment(开诊科室)实际出参 | ksdm, ksmc, zblb, ghlb, mzks, mzksNa, ksfl, sortId, depttype | - | 展开 | |
| ||||
| getBrdaMz(门诊患者档案)实际入参/出参 | SFZH(身份证号), MZHM(卡号), platformType, channelCode, branchId, method | - | 展开 | |
| ||||
| getGhjlMz(挂号记录)实际入参/出参 | MZID, clinicDateStart, clinicDateEnd, platformType, channelCode, branchId, metho | - | 展开 | |
| ||||
| getSfjlMz(收费记录)实际入参/出参 | MZID, clinicDateStart, clinicDateEnd, platformType, channelCode, branchId, metho | - | 展开 | |
| ||||
| getSfmxMz(缴费明细)实际入参/出参 | FPHM(发票号码), platformType, channelCode, branchId, method | - | 展开 | |
| ||||
| queryzyjzjl(住院记录)实际出参 | BAHM, ZYID, BRXM, SFZH, LXDH, RYRQ, CYRQ, CYPB, | - | 展开 | |
| ||||
| queryjkjl(住院缴款记录)实际出参 | JKFS, JKJE, JKRQ, ORDERID, ZYID | - | 展开 | |
| ||||
| getHisFyck(药房发药窗口)实际入参/出参 | fphm(发票号), branchId, channelCode, platformType, method | - | 展开 | |
| ||||
| queryQueuingList(排队候诊)实际入参/出参 | cardNo(卡号), deptCode(科室代码⚠️必填), branchId | - | 展开 | |
| ||||
| GetOutpPresc(待缴费列表)实际入参/出参 | branchId, cardType, cardNum, idcardType, idcardNo, startTime, endTime | - | 展开 | |
| ||||
| GetOutpPrescDetails(待缴费明细)实际出参 | 部分字段名有尾部空格!"patAge ", "patType ", "patGender ", "patTypeName " | - | 展开 | |
| ||||
| PreRegSettlement(医保挂号预结算)实际入参/出参(完整版) | "2", | - | 展开 | |
| ||||
| Cancel(退费退号)实际入参(两种场景) | "372831196109154208", | - | 展开 | |
| ||||
| RegSettlement(医保挂号结算)实际入参/出参 | 与 PreRegSettlement 基本相同,差异: | - | 展开 | |
| ||||
7.1 为什么需要双院区查询
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
7.2 典型的三服务器并发查询模式
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
7.3 需要双院区查询的接口
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
7.4 建档的双院区问题
| 接口 | 功能说明 | 频率 | 关联流程 | |
|---|---|---|---|---|
| 支付服务日志 (pay目录) | 6021891873 | - | 展开 | |
| ||||
| 外部接口调用日志 (其余部分) | `时间戳 Url=接口地址;HttpStrData=请求JSON;result=返回JSON` | - | 展开 | |
格式: | ||||
🏥 HIS对接接口速查
其他
| 接口 | 功能说明 | 频率 | 关联流程 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| /api/Recipe/toPayList | | 接口 | 说明 | |------|------| | `/api/Recipe/toPayList` | 获取待缴费处方列表 | | `/api/Reci | - | 展开 | ||||||||||||||||
| |||||||||||||||||||
| ChStateQuery(医保状态查询)实际出参 | 0, | - | 展开 | ||||||||||||||||
| |||||||||||||||||||
| 9. 微信模板消息推送 | ** | - | 展开 | ||||||||||||||||
从日志中提取的消息推送类型(CommunicationType):
模板消息数据结构示例(处方缴费成功):
微信模板ID: 模板字段映射:
| |||||||||||||||||||
| 10. 卡拦截规则服务 | ** `http://172.31.12.66:8084/ChildrenHos/api/CardInterceptRule/checkRule` | - | 展开 | ||||||||||||||||
服务地址: 在提交预约/挂号前调用,判断是否符合挂号规则。
| |||||||||||||||||||
6.2 延华接口模块
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
6.3 公众号实际使用的延华接口
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
8.1 医保 vs 自费流程对比
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
8.2 医保关键概念
| 接口 | 功能说明 | 频率 | 关联流程 |
|---|
8.3 医保状态查询 `ChStateQuery`
| 接口 | 功能说明 | 频率 | 关联流程 | |
|---|---|---|---|---|
| 延华预约日志 (其余部分) | <Envelope xmlns:soapenv='...'>...</Envelope> | - | 展开 | |
或: | ||||
齐脉公众号业务使用 SQL Server 数据库,连接信息:
Server: . (本地)
Database: qmwx
User ID: wx
Password: weixin@112
Trusted_Connection: False
Max Pool Size: 512
⚠️ HIS 端数据库(HIHIS)齐脉无直接访问权限,所有 HIS 数据操作通过平台接口完成。 | 字段 | 类型 | 说明 | |------|------|------| | UserId | VARCHAR(50) | 用户ID | | OpenId | VARCHAR(50) | 微信OpenId | | SMSCode | VARCHAR(10) | 6位验证码 | | ExpireTime | DATETIME | 过期时间(创建时间+5分钟) | | CreateTime | DATETIME | 创建时间 |
业务场景:
发送验证码:
INSERT INTO UserSMS(UserId, OpenId, SMSCode, ExpireTime, CreateTime)
VALUES('...', '...', '839610', '2026-06-15 01:42:33', '2026-06-15 01:37:33')
校验验证码:
SELECT ExpireTime FROM UserSMS
WHERE UserId='...' AND SMSCode='839610'
频次控制(每小时限制):
SELECT COUNT(1) FROM UserSMS
WHERE UserId='...' AND CONVERT(varchar(2), CreateTime, 108)='01'
关联模块: /api/SendMessage/sendVerificationCode、/api/SendMessage/checkVerificationCode
| 编码 | 名称 | 使用场景 |
|---|---|---|
| 1 | 线下诊疗挂号 | 当日挂号 |
| 2 | 线下处方收费 | 门诊缴费 |
| 3 | 互联网诊疗挂号 | 互联网医院 |
| 4 | 互联网处方收费 | 互联网医院 |
| 编码 | 名称 | 卡号格式特征 |
| ------ | ------ | ------------ |
| 0 | 医保卡 | 纯数字 10位左右 |
| 1 | 社保卡 | 字母+数字 |
| 2 | 统一自费就诊卡 | DZ开头 或 纯数字 |
| 编码 | 名称 | 说明 |
| ------ | ------ | ------ |
| 100 | 普通门诊 | 最常见的类型 |
| 101 | 专科门诊 | |
| 102 | 专家门诊 | |
| 103 | 特需门诊 | 费用较高 |
| 104 | 专病门诊 | |
| 999 | 其他 | |
| HIS接口使用: |
| 编码 | 名称 |
|---|---|
| 1 | 身份证 |
| 2 | 护照 |
| 3 | 港澳台居住证 |
| 4 | 港澳台通行证 |
延华接口使用:
| 编码 | 名称 |
|---|---|
| 1Z / 11 | 身份证 |
| 2 | 护照 |
| 3 | 港澳台居住证 |
| 4 | 港澳台通行证 |
⚠️ 注意两套系统的证件类型编码不同!延华接口日志中常见
idendityCardType=11| 编码 | 名称 | |------|------| | wechat | 微信支付 | | alipay | 支付宝 | | unionpay | 银联 | | 编码 | 名称 | |------|------| | 1 | 西药 | | 2 | 中成药 | | 3 | 草药 | | 编码 | 名称 | |------|------| | 1 | 普通 | | 2 | 专科 | | 3 | 专家 | | 4 | 急诊 | | 编码 | 名称 | |------|------| | 1 | 上午 | | 2 | 下午 |
公众号调用日志/
├── 个人中心/ ← 个人中心模块 (按功能分类)
│ ├── bus/ ← 内部接口请求日志
│ │ └── Log_log260614.txt ← 格式: 请求时间+接口路径+参数+返回值
│ ├── pay/ ← 支付/查询类接口日志
│ │ └── Log_log260614.txt ← 格式: API名称+请求参数+返回参数
│ ├── error/ ← ⚠️ 错误日志 (重点排查目录)
│ │ └── Log_log260614.txt ← 格式: 异常类型+堆栈跟踪
│ ├── db/ ← 数据库操作日志
│ ├── debug/ ← 调试日志
│ └── log/ ← 通用业务日志
│
└── 其余部分/ ← 所有外部接口调用 (大文件)
└── 20260614.txt ← ~950MB, 100万+行
格式: 时间戳+Url+请求参数+返回结果
- 确定问题时间点 → 在「其余部分」大文件中搜索时间戳
- 追踪请求链路 → 用请求参数(身份证号/卡号/订单号)关联上下游日志
- 定位错误来源 → 看返回的 code/msg,区分是平台报错还是HIS报错
- 查看堆栈定位代码 → error目录有完整的C#堆栈,可定位到具体文件和行号
- 核对参数 → 对比请求参数和接口文档,确认参数格式是否正确
由于各系统日志分散,建议按以下字段关联:
- 患者维度: 身份证号 + 姓名
- 订单维度: orderId (平台流水号) + hisRegNo (HIS流水号)
- 时间维度: 精确到毫秒的时间戳(日志中格式为
HH:mm:ss 毫秒)
| 错误信息 | 含义 | 原因 | 解决方案 |
|---|---|---|---|
查无此人档案 |
HIS中无患者档案 | 患者首次就诊或未建档 | 引导患者走初诊建档流程 |
院内新系统无档,不支持查询病历报告! |
南院新HIS中无档案 | 患者只在老系统有档案 | 需在南院建档后才能查报告 |
科室编码不能为空 |
queryQueuingList缺少deptCode | 前端未传入科室参数 | 传入当前就诊科室代码 |
当日无排班 |
schedule接口返回空 | 当天该科室确实没有排班 | 正常业务,前端提示用户 |
未查询到挂号记录 |
该院区无挂号记录 | 患者当天未挂号或挂的是另一院区 | 正常业务,展示空列表 |
未查到数据 |
GetOutpPresc返回空 | 无待缴费处方 | 正常业务 |
当前院区、时间段、科室、医生号源已用完 |
延华返回 | 号源已满 | 前端提示用户选其他时段/医生 |
不要重复预约同一天同一时段同一挂号科室 |
延华返回 | 重复提交预约 | 前端防重复或提示用户 |
AccessToken错误或已过期 |
JWT过期 | Token超时 | 重新调用getToken获取 |
code=-1, msg为空 |
通用失败 | 多种可能,需看具体接口 | 查完整日志定位 |
- [ ] 确认是否需要双院区查询(大多数查询类接口需要)
- [ ] 确认
platformType和channelCode参数(公众号场景固定为"2"和"1") - [ ] 确认
branchId取值(42501633100=总院, 42501633102=南院) - [ ] 确认是 REST JSON 还是 SOAP XML(延华接口走 SOAP)
- [ ] 确认状态码格式(
-1vs"-1"、0vs"0"、200) - [ ] 医保接口需要
ecQrCode/ecToken,自费接口不需要 - [ ] 结算接口需要先调预结算获取
payOrdId/payToken - [ ] 注意卡号格式多样性(纯数字/字母+数字/DZ开头)
| 卡号 | 类型 | 说明 |
|------|------|------|
|
6021891873| 自费卡 | 有档案的患者 | |M51E2F734| 社保卡 | 医保患者 | |5004244980| 医保卡 | 医保患者 | |DZ0000000488823| 自费卡 | 自费患者 | |K18723894| 社保卡 | 有档案的患者 |
# 搜索特定患者的所有接口调用
grep "身份证号" 其余部分/20260614.txt
# 搜索特定接口的调用
grep "PreRegSettlement" 其余部分/20260614.txt
# 搜索错误
grep "code\":-1" 其余部分/20260614.txt
# 搜索延华预约
grep "getScheClinicorder" 其余部分/20260614.txt
# 统计接口调用量
grep -c "queryBrda" 其余部分/20260614.txt
# 搜索特定时间的日志
grep "21-07:01:" 其余部分/20260614.txt
D:\QMWork\Code\东方医院-公众号\Api - 副本\
├── FSMicroService.BusCenter\ ← WebAPI控制器层
│ └── Controllers\
│ ├── UserController.cs
│ ├── ReportController.cs
│ ├── BookingController.cs
│ ├── RegistrationController.cs
│ ├── RecipeController.cs
│ └── SystemController.cs
├── FSMicroService.Services\ ← 业务逻辑层
│ └── Buiness\
│ ├── ReportService.cs
│ └── ...
├── FSMicroService.DoMain\ ← 领域层
│ └── Buiness\
│ ├── ReportDoMain.cs
│ └── ...
文档版本: V2.0
后续更新: 如有接口变更或新功能上线,请更新本文档对应章节
原始文档位置:D:\齐脉\公众号接口文档和日志\接口文档\