省、市医保接口统一基础与交换数据平台实现
2019-07-17赖家聚赖燕梅刘焱鑫
赖家聚 赖燕梅 刘焱鑫
摘要:本文从医院HIS系统与广西壮族自治区医保、南宁市医保结算平台接口的應用需求出发,通过对军卫一号系统项目唯一编码进行优化处理,对医保和HIS数据交换信息进行数据库按需存储,较传统日志模式有很大提升,查找原因更加方便,同时总结了构建医院省、市两级医保统一结算平台的必要性和可行性,并给出具体的技术解决方案。
关键词:医保平台;接口;动态链接库;医院信息系统
中图分类号:TP311.52;R197 文献标识码:B DOI:10.3969/j.issn.1006-1959.2019.12.005
文章编号:1006-1959(2019)12-0013-04
Abstract:Based on the application requirements of the hospital HIS system and the medical insurance of Nanning Autonomous Region and the medical insurance settlement platform of Nanning, this paper optimizes the unique coding of the No. 1 system project, and stores the medical insurance and HIS data exchange information on demand. The traditional log mode has been greatly improved, and the reason for finding it is more convenient. The necessity and feasibility of constructing a unified medical insurance platform for hospitals at the provincial and municipal levels are summarized, and specific technical solutions are given.
Key words:Medical insurance platform;Interface;Dynamic link library;Hospital information system
为进一步贯彻落实广西壮族自治区以及南宁市人力资源和社会保障局深化医疗卫生体制改革的精神,切实提高和改进医保患者就医结算服务质量,医保患者在各定点医院就医时,只需支付个人应负担的部分费用,其余费用由区、市医保局和定点医院结算。我院作为广西壮族自治区、南宁市医保定点医疗机构,为了实现医院HIS系统与区、市医保结算系统的无缝对接,我们对医院军卫一号系统(HIS)的门诊收费、住院收费和出入院管理系统进行了大规模的改造,自行研发了区、市医保统一结算接口程序,实现了医保患者的医疗费用实时结算;HIS系统与医保信息系统通过接口实现数据共享,避免操作人员对同一信息的重复录入,大大提高了工作效率,缩短患者的就医结算时间,简化了异地就医和异地转诊申请登记、网上审批、费用审核与结算等业务经办流程,更好地方便患者看病就医[4]。
1广西区医保平台概述
广西壮族自治区医保结算平台与全国各省以及区内十多个地、市医保办互连,所有医保患者就医结算系统按照统一的数据规则及交换标准,实现省、市两级数据双向交换。系统采用远程实时交易模式,实现参保人在定点医疗机构前端直接刷卡结算,即参保人员在定点医疗机构就医时,直接在医疗机构前端刷卡获取人员信息,并与医疗费用明细数据一起,实时上传到省级结算平台,省级结算平台将人员信息及医疗费用明细传至原参保地的社保系统,原参保地医疗保险经办机构根据人员信息、医疗费用明细信息、本地医保政策计算出统筹基金和个人负担费用后,通过省级结算平台实时回传至就医地定点医疗机构。参保人员据此即时结算个人负担费用,其统筹基金部分暂由定点医疗机构垫付,按结算规定定期与就医地医疗保险经办机构结算。再由省医保局统一组织各级医疗保险经办机构之间定期进行医疗保险异地就医费用清算,省级结算平台系统网络结构示意图见图1。
2南宁市医保平台概述
南宁市医保结算平台实现市内医保办互连,全市医保患者就医结算系统按照统一的数据规则及交换标准,实现市医保患者直接刷卡结算、医疗保险经办机构根据人员信息、医疗费用明细信息、医保政策计算出统筹基金和个人负担费用后,直接补偿患者,减少患者就医排队时间,搞高就医结算效率。
3医院HIS系统和医保平台的接口实施方案
3.1实施步骤 医院与医保结算平台的接口建设,分四步实施:第一步,搭建软、硬件环境,通过医保专网光纤方式建立好医院与区、市平台之间的网络连接;第二步,准备好基础数据,医院按照医保要求将本院三大目录库导入到平台并与区、市医保目录分别做好匹配对照;第三步,应用软件开发,根据接口要求做好HIS软件升级改造;第四步,部署实施系统,医院做好软件测试连调工作。
3.2接口方案的设计 通过对区、市医保中心提供的接口文档的分析,医保需要医院HIS系统采用调用嵌入式DLL链接库完成区、市医保业务的接口方案,即将区、市医保中心提供的动态链接库嵌入到医院的信息系统中,由动态链接库中的函数集帮助医院的HIS系统完成医保待遇的计算和数据的存储与传输。当有医保串都进行结算交易时,由HIS系统调用动态连接库中的函数将用户发出的交易信息传送到医保中心库,动态链接库中的函数全部采用被动调用的方式操作数据,系统交易流程调用图如图2所示。动态链接库操作的数据只限制在医保前置机数据库中的数据,它不会对原HIS数据库的数据造成任何影响[2]。医保中心提供的动态库包括办理业务及查询在内的共68个接口调用功能,各功能由医院的HIS系统按接口要求调用入参、出参的方式来实现。根据接口业务需求,在后台数据库中创建了相关数据表、增加了部分表的字段,同时对我的门诊收费、住院登记和住院收费等软件进行了改造。
3.3设计亮点 医院HIS项目编码唯一性问题,从区、市醫保接口文档分析,区、市医保不同平台的接口都需要做匹配,根据以往经验,都需要匹配2次,而且使用过程中存在项目编码不唯一问题,因为患者在住院过程中,同一个项目存在调价的情况,原有接口都需要人为调价处理,鉴于以往经验,决定对军卫系统项目编码进行唯一性处理,建立统一的序列号,通过价表分类编码+序列号实现项目的唯一性,具体实现代码如下:
-- Create sequence
create sequence COMM.SEQ_PRICE_LIST_ID
minvalue 1
maxvalue 9999999
start with 1
increment by 1
cache 5
cycle;
create or replace trigger COMM.trg_priceList_newid
before insert on comm.price_list
for each row
declare
v_no varchar2(10);
v_seq integer;
begin
select comm.SEQ_price_list_ID.NEXTVAL into v_seq from dual;
v_no := :new.item_class || lpad(v_seq,7,'0');
:new.STD_CODE_1 := v_no;
end trg_priceList_newid;
通过触发器在价表新增或调价的时候自动插入进去,原有的历史数据进行一次初始化即可完成所有的价表唯一性,在系统写入的时候通过触发器直接写入到费用明细表,这样在费用明细上传就能找到项目对应的唯一编码,解决原来系统存在人为修改费用明细表价格的情况。
医院HIS与医保平台交换平台数据库,传统的医院HIS与医保接口之间不存在日志记录或者通过文本方式实现,存在长时间积累,日志很多,不好查找或记录不全的情况,而且一旦患者结算出现问题,HIS公司和医保平台公司之间经常互相扯皮,增加信息科工作量,通过标准化独立的交换平台库,将HIS和医保的每一步出入参数都通过标准的XML保存起来,而且可以通用界面程序直接查看,简单明了的显示每个参数,对于解决问题非常有实际意义,系统投入使用以来很有帮助意义,得到信息科和医保科的一致认可,具体代码如下。
yinhaiobject.yh_interface_call(BusinessID ,Ctrlxml,Dataxml,ref Outputxml,ref Appcode,ref Appmsg)
if appcode < 0 then
ls_output ="取消费用上传办理失败!" + appmsg
EXCEP_FLAG ='0'
ls_memo =BusinessID + '-"取消费用上传返回代码:'+string(appcode) + ',返回值:' + appmsg
insert into ybuser.interface_message(INTERFACE_TYPE,COMPUTER_ID,POP_MESSAGE,MEMO,OPERATOR_NO,oper_date,EXCEP_FLAG)
values('QYB',:gs_ip,:Dataxml,:ls_memo,:is_usercode,:ldt_sys,:EXCEP_FLAG)
using sqlca;
commit using Sqlca;
return (-1)
end if
ls_memo =BusinessID + '-"取消费用上传返回代码:'+string(appcode) + ',返回值:' + outputxml
insert into ybuser.interface_message(INTERFACE_TYPE,COMPUTER_ID,POP_MESSAGE,MEMO,OPERATOR_NO,oper_date,EXCEP_FLAG)
values('QYB',:gs_ip,:Dataxml,:ls_memo,:is_usercode,:ldt_sys,:EXCEP_FLAG)
using sqlca;
commit using Sqlca;
3.4数据传输格式 从目前的发展趋势和标准化的角度考虑,XML是一个最优的选择,区医保接口数据传输采用XML作为传输数据格式, XML数据交换模型用于在不同系统间进行信息交换时封装,交换信息内容。数据传输报文的全部内容封装在 XML报文中,采用UTF-8字符集。请求类XML报文使用
3.5 HIS的改造 基于我院HIS系统的开发平台,开发工具采用Sybase PowerBuiIder 11.0(简称PB 11.0)。根据接口文档所提供的接口函数,将功能进行了封装,在处理业务功能时只需要调用接口对象的函数即可完成整个操作。如门诊收费模块中接口系统通过调用DLL,获取省医保信息平台中的患者信息进行医保登记, 接口程序中先将患者的费用明细传入区、市医保平台,再医保端进行预结算,然后与HIS系统结算数据进行比较,当费用金额一致时即可进行正式结算[5]。以门诊收费接口系统为例,在患者进行结算时,源代码如下。
// 医保交易开始>>>>>>>>>>>>>>>>
string ls_yb_comm //医保结算出参
long ll_aucheck
string ls_err
ds_yb_blockage.SetItem(1,'class',dw_patient.GetItemString(1,'med_class')) //医疗类别
dw_yb_clinic.SetItem(1,'medical_class',dw_patient.GetItemString(1,'med_class'))
dw_yb_clinic.SetItem(1,'yb_sysdate',String(idt_now,'YYYYMMDDHHMMSS'))
dw_yb_clinic.SetItem(1,'charge_type','门诊')
dw_yb_clinic.SetItem(1,'medical_class',dw_patient.GetItemString(1,'med_class'))
dw_yb_clinic.SetItem(1,'rcpt_no',is_yb_rcptno)
dw_yb_clinic.SetItem(1,'rcpt_flag',0)
string l_his_name
l_his_name =dw_patient.GetItemString(1,"name")
if is_yb_readname <> l_his_name then
IF messagebox('错误','医保卡人员:[' +is_yb_readname +']与院内人员:['+l_his_name+']系统检测姓名不一致。'+'~r~n'+'是否继续?',Exclamation!, YESNO!, 2) =2 THEN
return -1
end if
end if
//医保登记
if not ib_yb_regedit then
if wf_yb_reg() =- 1 then
return -1
end if
end if
//醫保生成明细上传
wf_yb_fee()
if ib_yb_feeupload then
wf_yb_fee_cancel()
end if
string ls_output,ls_ret
for ll_i =1 to ds_yb_fee.rowcount()
li_ret =n_yb_proxy.of_upload_currency('2310',ds_yb_fee,ll_i,1,ls_output) // 2310 医保上传交易码
if li_ret <0 then
wf_yb_fee_cancel()
return -1
end if
next
ib_yb_feeupload =true //医保费用已上传
//生成结算数据 ds_yb_comm
wf_yb_comm()
//医保预结算
if n_yb_proxy.of_upload_currency('2420',ds_yb_comm,1,1,ls_yb_comm) <0 then
wf_yb_fee_cancel()
end if
//临时存放预结算的返回数据 ds_yb_balance_adv
wf_yb_balance_adv(ls_yb_comm)
//总额比较 医保总额与his结算总额
dec ldec_his,ldec_yb
ldec_his =round(dw_bill_detail.object.compute_4[1],2)
ldec_yb =round( ds_yb_balance_adv.getitemdecimal(1,'a011'),2 )
if ldec_his <>ldec_yb then
wf_yb_fee_cancel()
messagebox('金额不等','院方计价总费用'+string(ldec_his)+'与医保中心返回的总费用'+string(ldec_yb)+'不相等',stopsign!)
return -1
end if
wf_yb_calc_pay_money()
end if
4总结
医院自2018年12月起,利用自行开发的接口软件实现了与广西壮族自治区、南宁市社会医疗保险中心医保的数据传输交易,共有200多人通过此软件直补结算。医保接口的改造成功不仅方便了医保患者的就医,提高了医院的服务水平,而且还规范了医院医保患者的管理, 明显缩短医保患者在医院的就诊时间,提高患者就诊效率,从根本上解决了医保患者在医院的“三长一短”问题,并最终推进医院现代化管理进程做出一定贡献。
参考文献:
[1]郭晗,单磊敬,李伯祥.新农合系统与HIS出院即报接口的开发与应用[J].医疗卫生装备,2014,35(2):57-59.
[2]夏慧.医院HIS系统与省医保平台接口的设计与实现[J].中国数字医学,2015(6):108-110.
[3]孙炜臻,张丽杰,杨秋云,等.异地医保实时结算平台设计与实现[J].中国数字医学,2016,11(5):92-94.
[4]郝良军.医院信息系统在医院管理中的应用价值研究[J].中国药物与临床,2018,18(7):1244-1245.
[5]汪新建,杨孝光,王晓飞.社会医疗保险统一管理平台的研发与应用[J].中国数字医学,2018,13(3):102-103.
收稿日期:2019-3-22;修回日期:2019-4-2
编辑/成森