成都市医保支付接口应用编程接口规范第1页共143页成都市基本医疗保险支付接口应用编程规范Version3.0银海软件2009年02月成都市医保支付接口应用编程接口规范第2页共143页1、概述《成都市基本医疗保险支付接口应用编程规范(Version3.0)》(以下简称规范)的使用对象为将使用银海医保支付组件库(以下简称组件库)来完成医保支付的为定点医疗机构提供应用软件的HIS供应商、药店MIS供应商或其它第三方应用软件供应商。规范公布了组件库所提供的交易,规定了调用每一交易的前提条件,详细描述了每一交易的调用方法。规范从编程的角度来介绍以上内容,对医保政策和医保支付流程的介绍不属于本规范的范围。§1.1.术语及参考资料COM:CommonObjectModelHIS:HospitalInformationSystemMIS:ManagementInformationSystem§1.2.应用模式银海医保支付组件库是一组运行在WINDOWS32位环境下的COM组件,第三方应用软件使用相应的COM组件调用方式来调用它。§1.3.环境要求§1.3.1.硬件环境指标指标值CPU≧1.6MHzMemory≧256MBHardDisk≧100M(free)NetCard≧10MB成都市医保支付接口应用编程接口规范第3页共143页§1.3.2.网络环境指标指标值协议TCP/IP、HTTP/HTTPS广域网带宽≧56k网络连接客户端直接访问医保中心网络§1.3.3.系统软件指标指标值操作系统WIN98SE或WIN2000及以上WIN系列操作系统辅助软件IE6.0Msxml4.0§2.接口描述§2.1.总体描述组件库注册在每一台需要进行医保支付业务的客户机上(该客户端也必须能连接到医保网络),通过被动调用的方式将医保支付业务功能嵌入到定点医疗机构的系统中(以下简称HIS);接口交易组件库提供了六个公共方法(yh_interface_init初始化,yh_interface_destroy资源释放,yh_interface_call业务方法调用,yh_interface_confirm业务办理确认,yh_interface_cancel业务办理取消,yh_interface_getuncertaintytrade不确定交易查询),交易参数组织采用xml(所有社保经办机构交易调用及交易参数统一),差别处理对于HIS透明。新接口存在多社保经办机构处理,并且各社保经办机构处理模式存在差异,接口交易内部也可能存在用户交互窗口,因此建议HIS事务管理与接口交易调用相互独立。§2.2.接口COM说明组件库提供交易的COM组件属性如下:成都市医保支付接口应用编程接口规范第4页共143页属性值AppID{5767E3DB-64CF-46B0-8997-04CC6506CA37}TypeLibraryID{A6C75A98-FC7F-456A-9E2D-4141CC758C63}ProgramIDYinHai.ChenDu.InterfaceCOMClassNameCoClass_n_yh_interfaceCOMClassID{1FB2A005-1AAF-42BD-A95E-AED025ABD75B}InterfaceTypeDualInterfaceInterfaceNameIn_yh_interfaceInterfaceID{BC708B00-5ED0-4DC7-8345-14FA94D5F840}§2.3.交易接口函数描述yh_interface_init原型定义:yh_interface_init(reflongaint_appcode,refstringastr_appmsg)yh_interface_init2yh_interface_init2(stringastr_parmxml,reflongaint_appcode,refstringastr_appmsg)astr_parmxml:?xmlversion=“1.0”encoding=“GBK”standalone=“yes”?rootasy1/asy1:表示异步执行确认或取消0:表示同步执行/rootastr_parmxml:成都市医保支付接口应用编程接口规范第5页共143页函数说明:初始化函数,HIS应用启动时调用,进行医保交易处理初始化,本交易调用成功后才能进行其他交易处理。yh_interface_destroy原型定义:yh_interface_destroy()函数说明:资源释放函数,在HIS应用退出时调用。yh_interface_call原型定义:yh_interface_call(stringastr_jybh,stringastr_jykz_xml,stringastr_jysr_xml,refstringastr_pcbh,refstringastr_jylsh,refstringastr_jyyzm,refstringastr_jysc_xml,reflongaint_appcode,refstringastr_appmsg)参数名称参数含义参数类型参数类别参数说明astr_jybh交易编号String入口参数具体的交易代码见〖交易列表〗astr_jykz_xml交易控制String入口参数xml方式,组织方式见业务说明astr_jysr_xml交易输入String入口参数xml方式,组织方式见业务说明astr_pcbh批次编号String出口参数与签到交易中返回的值相同,用于标识签到与支付数据的相关性astr_jylsh交易流水号String出口参数唯一标识一次交易,VARCHAR(20)成都市医保支付接口应用编程接口规范第6页共143页astr_jyyzm交易验证码String出口参数处理类交易返回,确认交易时传入VARCHAR(15)astr_jysc_xml交易输出String出口参数xml方式,组织方式见业务说明aint_appcode交易标志long出口参数小于0均为失败。此值数据类型是整数,范围为-2147483648to+2147483647astr_appmsg交易信息String出口参数错误信息描述。aint_appcode小于0时存放错误描述,其他aint_appcode不用关心该参数内容。函数说明:交易主函数,完成所有医疗业务的实际处理。由于交易调用远程方法,并且可能存在用户交互界面,因此建议所有交易不要纳入HIS系统事务管理。在交易接口函数定义中,传递的参数都是字符串。但是在交易详细说明中,数据类型都是逻辑类型,常用类型有三种:string,number,datetime,下面的表格描述了交易接口进行类型转换的限制和说明。数据类型空字符串格式不合法其它说明string视同空串无无特别说明标注的长度为最大长度number视同0返回错误无特别说明标注的长度为最大长度(小数尾数同)datetime视同空值返回错误足19位长,格式如下:YYYY-MM-DDhh24:mm:ssdate视同空值返回错误足19位长,格式如下:YYYY-MM-DD00:00:00astr_jykz_xml、astr_jysr_xml、astr_jysc_xml参数均按照交易详细说明里xml参数组合,顺序无关。接口调用示例:成都市医保支付接口应用编程接口规范第7页共143页VB调用DimyinhaiobjectAsObject'定义存放引用对象的变量。Setyinhaiobject=CreateObject(YinHai.ChenDu.Interface)'检查连接是否建立IfyinhaiobjectIsNothingThenMsgBox对象为空!EndIfDimBusinessIDAsStringDimCtrlxmlAsStringDimDataxmlAsStringDimPcbhAsStringDimBusinesssequenceAsStringDimBusinessvalidateAsStringDimOutputxmlAsStringDimAppcodeasLongDimAppmsgAsStringBusinessID=01Ctrlxml='组织参数Dataxml='组织参数yinhaiobject.yh_interface_callBusinessID,Ctrlxml,Dataxml,Pcbh,Businesssequence,Businessvalidate,Outputxml,Appcode,Appmsg'判断返回信息'HIS业务处理Setyinhaiobject=Nothing'关闭对象delphi调用注意:delphi调用时先要usesComObj;否则不能引用oleobject。成都市医保支付接口应用编程接口规范第8页共143页Varyinhaiobject:Variant;//定义存放引用对象的变量。BusinessID:StringCtrlxml:StringDataxml:StringPcbh:StringBusinesssequence:StringBusinessvalidate:StringOutputxml:StringAppcode:integerAppmsg:String;Begintryyinhaiobject:=CreateOleObject('YinHai.ChenDu.Interface');BusinessID:='01';yinhaiobject.yh_interface_call(BusinessID,Ctrlxml,Dataxml,Pcbh,Businesssequence,Businessvalidate,Outputxml,Appcode,Appmsg)//返回结果判断,HIS内部处理finallyyinhaiobject:=Unassigned;//关闭对象end;End;pb调用oleobjectyinhaiobjectlongresult,AppcodeStringBusinessID,Ctrlxml,Dataxml,Pcbh,BusinesssequenceStringBusinessvalidate,Outputxml,Appmsgyinhaiobject=createoleobject成都市医保支付接口应用编程接口规范第9页共143页result=yinhaiobject.ConnectToNewObject(YinHai.ChenDu.Interface)ifresult0thenmessagebox(error,failtoconnect)returnendifBusinessID=”01”yinhaiobject.yh_interface_call(BusinessID,Ctrlxml,Dataxml,Pcbh,Businesssequence,Businessvalidate,Outputxml,Appcode,Appmsg)//返回结果判断,HIS内部处理//关闭对象yinhaiobject.DisconnectObject()destroyyinhaiobjectyh_interface_confirm原型定义:yh_interface_confirm(stringastr_jylsh,stringastr_jyyzm,reflongaint_appcode,refstringastr_appmsg)参数名称参数含义参数类型参数类别参数说明astr_jylsh交易流水号String入口参数唯一标识一次交易,VARCHAR(20)astr_jyyzm交易验证码String入口参数处理类交易返回,VARCHAR(64)aint_appcode交易标志long出口参数确认交易HIS不用关心本次处理返回结果,但是必须采用查询不确定交易的方式来确定是否所有数据正确处理。astr_appmsg交易信息String出口参数函数说明:交易辅助函数,完成交易