在大多数互联网医院项目中,真正的技术难点从来不是问诊,而是:
医保结算
电子处方流转
药品合规配送
监管数据上报
如果这三块没打通,系统只能算“线上咨询工具”,而不是“互联网医院”。
本文从实战角度,带你拆解:
- 医保支付对接流程
- 电子处方平台对接方式
- 核心接口设计
- 关键代码实现示例
一、整体架构设计
先看典型架构分层:
用户端(小程序/App)
↓
互联网医院业务系统
问诊 处方 订单 支付
↓
中台网关
医保网关 处方网关
↓
第三方平台
医保局HIS / 电子处方监管平台 / 药房系统
核心原则只有一句话:
不要让业务系统直连医保平台
必须做“医保中台网关隔离层”
好处:
- 避免协议耦合
- 方便多城市医保切换
- 接口统一封装
二、医保支付对接流程拆解
标准医保支付链路:
下单 → 医保预结算 → 医保扣费 → 自费补差 → 支付成功
步骤:
1 用户提交问诊订单
2 调用医保预结算接口
3 返回医保报销金额
4 用户仅支付自费部分
5 最终调用医保扣费确认接口
1 医保预结算接口示例
请求结构
{
"psnNo": "患者医保编号",
"mdtrtId": "就诊ID",
"totalAmt": 120.00,
"drugList": [
{
"code": "A001",
"name": "阿莫西林",
"price": 30,
"num": 2
}
]
}
2 Java 对接示例代码
医保签名工具类
public class MedSignUtil {
public static String sign(String data, String secret) {
return DigestUtils.md5Hex(data + secret);
}
}
调用医保预结算
public MedResult preSettle(MedRequest req) {
String body = JSON.toJSONString(req);
HttpHeaders headers = new HttpHeaders();
headers.add("sign", MedSignUtil.sign(body, secretKey));
HttpEntity<String> entity = new HttpEntity<>(body, headers);
ResponseEntity<String> resp =
restTemplate.postForEntity(medUrl + "/preSettle", entity, String.class);
return JSON.parseObject(resp.getBody(), MedResult.class);
}
返回结果示例
{
"totalAmt": 120,
"fundPay": 80,
"selfPay": 40
}
系统只需让用户支付 selfPay 即可。
三、电子处方平台对接设计
医保解决的是“钱”,
电子处方解决的是“合规”。
国家监管要求:
- 医生实名签名
- 处方防篡改
- 可追溯
- 平台备案
所以必须接入第三方处方监管平台。
电子处方流程
医生开方 → 电子签名 → 上传监管平台 → 返回处方编号 → 药房调剂
1 处方数据模型设计
CREATE TABLE prescription (
id BIGINT PRIMARY KEY,
patient_id BIGINT,
doctor_id BIGINT,
status VARCHAR(20),
sign_hash VARCHAR(255),
platform_no VARCHAR(50)
);
2 电子签名实现示例
生成签名摘要
public String buildSignHash(Prescription p) {
String content =
p.getPatientId() +
p.getDoctorId() +
p.getDrugJson();
return DigestUtils.sha256Hex(content);
}
3 上传监管平台接口
public String uploadPrescription(PrescriptionDTO dto) {
String resp = HttpUtil.post(
eRxUrl + "/upload",
JSON.toJSONString(dto)
);
JSONObject obj = JSON.parseObject(resp);
return obj.getString("rxNo");
}
返回:
rxNo = RX202602090001
必须保存这个编号,后续药房凭此调剂。
四、关键安全设计(必须做)
很多团队只会写接口,但医疗行业真正卡你的是合规。
下面这几件事一定要做:
1 数据加密
医保 + 处方必须加密传输
AES.encrypt(data, key)
2 医生CA证书签名
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(data.getBytes());
byte[] sign = signature.sign();
3 审计日志
log.info("医保结算请求 user={} order={}", userId, orderId);
监管检查时必须可追溯。
五、实战经验总结(踩坑建议)
直接说点真实项目里的教训:
1 医保接口全国不统一 必须做适配层
2 电子处方审核慢 必须异步回调
3 支付要支持医保 + 微信/支付宝混合支付
4 处方状态必须机审 + 人审双保险
5 不要写死第三方接口 全部做策略模式
六、总结
如果你的互联网医院系统:
只有问诊和支付
没有医保结算
没有电子处方
那只能叫“医疗咨询小程序”。
真正的互联网医院标配一定是:
医保支付 + 电子处方 + 药房流转 + 监管上报 全链路打通。
技术门槛不在页面,而在这些底层对接能力。
谁把这三块做扎实,谁才真正具备落地医院项目的资格。