贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范第1页共97页贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范(V1.0.0.8)四川久远银海软件股份有限公司2011年9月贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范第2页共97页1、概述1.《贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范》(以下简称规范)的使用对象为将使用银海医保支付组件库(以下简称组件库)来完成医保支付的为定点医疗机构提供应用软件的HIS供应商、药店MIS供应商或其它第三方应用软件供应商。2.规范公布了组件库所提供的交易,规定了调用每一交易的前提条件,详细描述了每一交易的调用方法。规范从编程的角度来介绍以上内容,对医保政策和医保支付流程的介绍不属于本规范的范围。§1.1.术语及参考资料COM:CommonObjectModelHIS:HospitalInformationSystemMIS:ManagementInformationSystem§1.2.应用模式银海医保支付组件库是一组运行在WINDOWS32位环境下的COM组件,第三方应用软件使用相应的COM组件调用方式来调用它。§1.3.环境要求§1.3.1.硬件环境指标指标值CPU≧1.6MHzMemory≧512MBHardDisk≧2000M(free)NetCard≧10MB§1.3.2.网络环境贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范第3页共97页指标指标值协议TCP/IP、HTTP/HTTPS广域网带宽≧56k网络连接客户端直接访问医保中心网络§1.3.3.网络拓扑图§1.3.4.系统软件指标指标值操作系统WIN2000/NT/XP及以上WIN系列操作系统辅助软件IE6.0及其以上;Msxml4.0§2.修改记录修改时间版本修改描述2011-6-24V1.1修改91交易主要为字段变更2011-6-24V1.1增加交易53、54、55、56、56a、56d,602011-6-29V1.1增加交易76,、76a、76b修改91交易增加字段贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范第4页共97页修改时间版本修改描述修改41交易增加输出字段2012-07-24V1.21、增加附录说明2、修改41、42、43、48号交易必须传入个人编号3、修改75(适用贵州省统一项目)号交易prm_aka130/prm_aka130【默认:31医疗;M31生育;G31工伤】4、调用21号交易传入prm_aac001个人编号/prm_aac0015、调用48、21号交易prm_ykb065执行社会保险办法/prm_ykb0652013-9-23V1.31、增加清算方式修改交易47号交易2013-10-09V1.41、修改71、75增加异地医疗清算相关。2、交易类型和调用流程图修改。3、修改清算申请执行社会保险办法产生歧义相关。2013-11-01V1.4修改22号交易传入参数,传入新增prm_aka130支付类别/prm_aka1302013-11-06V1.0.0.51、增加调用47号交易,用于修改清算方式(毕节适用)2、增加特殊门诊用药控制交易(毕节、六盘水适用)2013-11-29V1.0.0.5修改74号交易入参,将传入日期修改为传入期号prm_yae366清算期号/prm_yae366(格式:YYYYMM)2013-12-10V1.0.0.61、修改46交易返回2、新增H110,H28a,H28b,H28c交易查询2014-04-18V1.0.0.71、修改Q99D为“特殊门诊用药控制查询(六盘水适用)”毕节取消2、新增Q99F交易查询2014-08-08V1.0.0.81、增加Q99A查询交易返回值(红色部分)§3.接口描述§3.1.总体描述1.组件库注册在每一台需要进行医保支付业务的客户机上(该客户端也必须能连接到医保网络),通过被动调用的方式将医保支付业务功能嵌入到定点医疗机构的系统中(以下简称HIS);2.接口交易组件库提供了六个公共方法(yh_interface_init初始化,yh_interface_destroy资源释放,yh_interface_call业务方法调用,yh_interface_confirm业务办理确认,yh_interface_cancel业务办理取消,yh_interface_getuncertaintytrade不确定交易查询),交易参数组织采用xml(所有社保经办机构交易调用及交易参数统一),差别处理对于HIS贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范第5页共97页透明。3.新接口存在多社保经办机构处理,并且各社保经办机构处理模式存在差异,接口交易内部也可能存在用户交互窗口,因此建议HIS事务管理与接口交易调用相互独立。4.文档内但凡日期格式的处理均传入年月日,不带时分秒的处理,且全部为YYYY-MM-DD格式5.接口中返回的YAB003和YKB065两个值,HIS需要保留,在后续的业务处理中需要传入该两个值。§3.2.接口COM说明组件库提供交易的COM组件属性如下:属性值AppIDTypeLibraryIDProgramIDyinhai.TAIYUAN.interfaceCOMClassNameCOClass_n_yh_interfaceCOMClassIDInterfaceTypeDualInterfaceInterfaceNameIn_yh_interfaceInterfaceID§3.3.交易接口函数描述yh_interface_init原型定义:yh_interface_init(refintegeraint_appcode,refstringastr_appmsg)函数说明:初始化函数,HIS应用启动时调用,进行医保交易处理初始化,本交易调用成功后才能进行其他交易处理。yh_interface_destroy原型定义:yh_interface_destroy()贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范第6页共97页函数说明:资源释放函数,在HIS应用退出时调用。yh_interface_call原型定义:yh_interface_call(stringastr_jybh,stringastr_jysr_xml,refstringastr_jylsh,refstringastr_jyyzm,refstringastr_jysc_xml,reflongaint_appcode,refstringastr_appmsg)参数名称参数含义参数类型参数类别参数说明astr_jybh交易编号String入口参数具体的交易代码见〖交易列表〗astr_jysr_xml交易输入String入口参数xml方式,组织方式见业务说明,字符串最大长度65534字符astr_jylsh交易流水号String出口参数唯一标识一次交易,VARCHAR(20)astr_jyyzm交易验证码String出口参数处理类交易返回,确认交易时传入VARCHAR(15)astr_jysc_xml交易输出String出口参数xml方式,组织方式见业务说明aint_appcode交易标志long出口参数小于0均为失败。此值数据类型是整数,范围为-2147483648to+2147483647astr_appmsg交易信息String出口参数错误信息描述。aint_appcode小于0时存放错误描述,其他aint_appcode不用关心该参数内容。函数说明:1.交易主函数,完成所有医疗业务的实际处理。2.由于交易调用远程方法,并且可能存在用户交互界面,因此建议所有交易不要纳入HIS系统事务管理。3.在交易接口函数定义中,传递的参数都是字符串。但是在交易详细说明中,数据类型都是逻辑类型,常用类型有三种:string,number,datetime,下面的表格描述了交易接口进行类型转换的限制和说明。数据类型空字符串格式不合法其它说明string视同空串无无特别说明标注的长度为最大长度number视同0返回错误无特别说明标注的长度为最大长度(小数贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范第7页共97页尾数同)datetime视同空值返回错误足19位长,格式如下:YYYY-MM-DDhh24:mm:ssdate视同空值返回错误足19位长,格式如下:YYYY-MM-DDastr_jykz_xml、astr_jysr_xml、astr_jysc_xml参数均按照交易详细说明里xml参数组合,顺序无关。接口调用示例:VB调用DimyinhaiobjectAsObject'定义存放引用对象的变量。Setyinhaiobject=CreateObject(yinhai.TAIYUAN.interface)'检查连接是否建立IfyinhaiobjectIsNothingThenMsgBox对象为空!EndIfDimBusinessIDAsStringDimDataxmlAsStringDimBusinesssequenceAsStringDimBusinessvalidateAsStringDimOutputxmlAsStringDimAppcodeasLongDimAppmsgAsStringBusinessID=01Ctrlxml='组织参数Dataxml='组织参数yinhaiobject.yh_interface_callBusinessID,Dataxml,Businesssequence,Businessvalidate,Outputxml,Appcode,Appmsg'判断返回信息'HIS业务处理Setyinhaiobject=Nothing'关闭对象delphi调用注意:delphi调用时先要usesComObj;否则不能引用oleobject。Varyinhaiobject:Variant;//定义存放引用对象的变量。BusinessID:String贵州省社会保险全省统一应用系统医保支付接口应用编程接口规范第8页共97页Dataxml:StringBusinesssequence:StringBusinessvalidate:StringOutputxml:StringAppcode:integerAppmsg:String;Begintryyinhaiobject:=CreateOleObject('yinhai.TAIYUAN.interface');BusinessID:='01';yinhaiobject.yh_interface_call(BusinessID,Dataxml,Businesssequence,Businessvalidate,Outputxml,Appcode,Appmsg)//返回结果判断,HIS内部处理finallyyinhaiobject:=Unassigned;//关闭对象end;End;pb调用oleobjectyinhaiobjectlongresult,AppcodeStringBusinessID,Dataxml,BusinesssequenceStringBusinessvalidate,Outputxml,Appmsgyinhaiobject=createoleobjectresult=yinhaiobject.ConnectToNewObject(yinhai.TAIYUAN.interface)ifresult0thenmessagebox(error,failtoconnect)returnendifBusinessID=”01”yinhaiobject.yh_interface_call(BusinessID,Dataxml,Businesssequence,Businessvalidate,Outputxml,Appcode,Appmsg)//返