赣州市医保接口规范.docx
《赣州市医保接口规范.docx》由会员分享,可在线阅读,更多相关《赣州市医保接口规范.docx(25页珍藏版)》请在冰豆网上搜索。
赣州市医保接口规范
接口更新内容:
本次医保接口动态库ZRHosJK.dll基于原接口规范不变的基础上增加一项业务:
【收费发票打印】(包括门诊和住院收费发票打印),具体调用方法详见本文档21页。
----于2011年09月01日
网点接口规范
一.概述
为了保证医疗保险管理系统和网点管理信息系统的完整性和独立性以及数据的同步和一致性,需要提供一个标准的数据输入输出接口,建立一个公用的数据交换标准。
因此,开发出一套通用的适合于各种类型医疗管理机构、能嵌入各种管理软件的接口系统是保证医保顺利实施的关键。
为此,提出以下中心系统与网点系统的接口规范。
二.医疗机构接入准备
1.硬件要求
引用接口系统嵌入模块的终端机器至少要64M内存,并有足够空间安装支持软件。
网络上要求必须能访问中心应用服务器。
2.软件要求
接口系统目前支持Windows95/98/2000/NT系统平台下所开发的应用系统,各应用系统必须能正常调用Windows标准API函数(例如用PB、Delphi、VB、VC、C++Builder等开发的软件都可以支持)。
根据电脑技术的发展形式,嵌入模块不支持DOS系统下开发的应用软件。
三.数据要求
接口系统需要从医疗机构获得必要数据,为统一编码,录入数据尽量采用医保中心提供的编码规则,医疗机构需要根据需要将自身系统的编码做对照,医疗机构需要对照的内容包括:
1)药品目录
详见药品目录表、诊疗目录表
2)病种编码目录
详见病种编码目录表
3)收费类别目录
详见收费类别目录表
4)科室目录
医院自身设置的科室名称。
5)项目等级
详见项目等级目录表
6)医疗类别
详见医疗类别表
7)有关日期时间
数据包中有关日期时间的数据,日期格式为4位年份+2位月份+2位日,时间格式为2位时+2位分。
例如,“2006-9-4”则需填写“20060904”,“14:
08”则填写“1408”
8)其它
如果数据为空值,则用“NULL”代替传入。
对于返回的数据一样,如果数据为空,则返回对应“NULL”。
医院接口包括文件:
1).ZRHosJK.dll接口动态库。
2).Mwic_32.dll,ZrkjDll.dll读卡器动态库。
3).PRINTFP_NEW.fr3门诊收费发票和住院结算发票打印模板。
四.医疗机构端嵌入模块
医疗机构端嵌入模块(以下简称嵌入模块)是整个接口系统唯一和用户交互的模块。
对于医疗机构,仅调用此模块中提供的用户交易功能即可完成医保病人的业务处理。
嵌入模块包含若干种用户交易,对医疗机构来说,用户交易为其唯一可视交易。
1.嵌入模块内容
嵌入模块主文件为ZRHosJK.DLL,ZRHosJK提供外部调用的函数主要包括交易申请函数f_UserBargaingApply、交易初始化函数f_UserBargaingInit和交易关闭函数
f_UserBargaingClose。
2.交易初始化和关闭函数
医疗机构软件每次启动时,需要调用接口系统中用户交易初始化函数,初始化接口并获得交易参数,即可连接到中心系统的数据库中。
同样,应用软件退出时调用用户交易关闭函数释放系统资源。
Ø函数原型:
functionf_UserBargaingInit(UserID,PassWD:
PCHAR;retMsg:
PCHAR):
Integer;
功能:
系统应用前初始化数据准备,连接到中心系统的应用服务器。
参数说明:
传入参数:
UserID-------由中心系统的管理员分配给医疗机构端的用户
PassWD-------由UserID对应的密码
retMsg-------返回错误信息
返回值:
>0-----------成功,没有任何警告
<0-----------失败,错误信息在retMsg中
备注:
返回值<0说明:
-1-----一般是连接服务器没有成功,原因可能是网络不通造成的,
解决方法是:
用ping命令查看网络是否可以连通。
-4----->登陆的用户名错误
-5----->用户密码错误
-6----->用户名密码验证失败
调用之前,retMsg必须分配空间。
PowerBuilder中函数定义:
Functionintf_UserBargaingInit(stringUserID,stringPassWD,refstringretMsg)
Ø函数原型
functionf_UserBargaingClose(retMsg:
PCHAR):
Integer;
功能:
退出系统前释放资源,关闭连接以及退出IC卡驱动。
返回值:
>0----------退出成功
<0---------退出失败
调用之前,retMsg必须分配空间。
PowerBuilder中函数定义:
functionintf_UserBargaingClose(refstringretMsg)
3.用户交易申请函数
Ø函数原型
Functionf_UserBargaingApply(YWLX:
PCHAR;InDataP:
PCHAR;OutData:
PCHAR;retMsg:
PCHAR):
Integer;
功能:
实现具体的业务,医疗机构通过调用该函数申请相关用户交易并获取交易结果
参数说明:
传入参数:
YWLX----业务类型,每个业务规定相应的代码,如:
门诊挂号,则YWLX=“MZGH”。
具体的业务代码,下面将会详细介绍。
IndataP----需要传入的业务数据串,每个业务数据“|”隔开。
而每个数据包以“;”(半角)隔开,可以多个数据包组成,例如:
数据包1;数据包2…
传出参数:
OutData----经过中心系统的结算,返回结果串,可能由多个数据包组成,
例如:
数据包1;数据包2…。
retMsg----交易过程中,返回的错误提示。
调用函数之前,OutData和retMsg必须分配空间。
否则,将出现异常。
返回值:
>0表示交易成功
<0表示交易失败,并返回交易失败的原因在retMsg中
PowerBuilder中函数定义:
functionintf_UserBargaingApply(stringYwlx,stringInData,refstringOutData,refstringretMsg)
Ø函数原型
functionf_GetGRID00(sGRID00:
PChar):
Integer;stdcall;export;
功能:
可以不用读卡,直接得到个人编号。
如:
住院医疗保险的人员,在办理其他业务之前,调用该函数,就可以得到个人编号。
Ø函数原型
functionf_GetUserLoginMsg(OutData:
PChar):
Integer;stdcall;export;
功能:
直接返回用户登陆信息。
返回数据包(OutData)格式为:
“用户ID|用户姓名|用户类别|服务机构编号|服务机构名称|网点级别|地区编号|地区名称|分中心编号|系统名称|系统版本号|连接串|数据库类型”
注:
pb调用的时候一定要用Space函数为传出参数分配足够空间,
Delphi调用的时候一定要用AllocMem函数(或其他函数)为传出参数分配足够空间。
五.嵌入模块的业务范围(用户交易)
嵌入模块包含医保病人在医疗单位所要进行的与医保相关的所有操作。
目前,根据医保政策,其业务范围主要包括以下几个部分,具体交易类型如下:
业务类型代号(YWLX)
业务名称
备注
MZGHSK,YDSFSK,MZSFSK,ZYDJSK,ZYSFSK,CYDJSK,ZYYJSK
交易前刷卡
每次交易前,必须进行刷卡。
可以得到参保人的参保信息,以及校验IC卡的有效性
等。
MZGH
门诊挂号
MZSF
门诊收费
MZGHCX
门诊挂号冲销
MZSFCX
门诊收费冲销
MZSFYJS
门诊收费预结算
YDSF
药店收费
YDSFCX
药店收费冲销
ZYDJ
住院登记
ZYSF
住院收费
不采用
CYDJ
出院登记
ZYDJCX
住院登记冲销
ZYSFCX
住院收费冲销
可以不刷卡
CYDJCX
出院登记撤销
ZYYJ
住院预缴收费
可以不刷卡
ZYYJCX
住院预缴冲销
ZYSFDJ
住院收费登记
可以不刷卡
ZYSFTF
住院收费退费
ZYSFYJS
住院收费预结算
ZYSFJS
住院收费结算
ZYDJBG
住院登记变更
SFFPDY
收费发票打印
可以不刷卡
注意:
在交易过程中,每个数据均以“|”符符号隔开,如果数据为空值,则用NULL代替。
每个数据包的分隔符为“;”(半角)。
每个数据必须空格符号,如果交易失败,其错误原因可从retMsg参数取得。
异常出错处理,最后需要调用函数f_UserBargaingClose来关闭数据链接,并释放资源。
传入参数InData可以是多个数据包组成,传出参数OutData也可以是多个数据包组成
六.业务说明
1.交易前刷卡
办理各个业务时,必须先刷卡,刷卡前,必须保证IC卡在读卡器内,刷卡成功后,返回参保人员的基本信息,这样才能进行业务交易。
交易成功后,返回数据包(OutData)格式为:
“保险号|姓名|卡号|出生日期|年龄|参保日期|单位编号|单位名称|性别|医疗人员类别|所属地区|卡状态|账户余额”。
例如:
“0110003670|李四|36100000000048|19670913|39|NULL|00010012|某某单位
|男|在职|某某市|正常|999.99”
部分交易类型刷卡返回数据,另外处理如下:
返回门诊收费刷卡信息或药店收费刷卡信息,(OutData)格式为:
“保险号|姓名|卡号|出生日期|年龄|参保日期|单位编号|单位名称|性别|医疗人员类别|所属地区|卡状态|账户余额|门诊流水号|挂号科室名称”。
返回住院收费刷卡信息、出院登记刷卡信息或住院预缴刷卡信息,(OutData)格式为:
“保险号|姓名|卡号|出生日期|年龄|参保日期|单位编号|单位名称|性别|医疗人员类别|所属地区|卡状态|账户余额|住院流水号|住院科室|本次看病次数”。
其中“NULL”表示该字段为空值。
如果交易失败,返回错误信息在RetMsg中。
返回的个人参保信息为明文数据,用户可以分解后使用。
办理其他业务前,都必须刷卡时,否则,无法取得IC卡对应信息。
参数YWLX对应的值上述表格的代码相对应。
例如,办理“门诊挂号”,先调用f_UserBargaingApply函数,取得参保人员基本信息,其中,参数YWLX为'MZGHSK',参数InData为空,参数OutData需要分配足够大的空间,参数retMsg也分配足够大的空间。
然后,可以从刷卡后返回的数据包中,取得有关信息。
2.门诊挂号
业务类型代码:
“MZGH”。
传入数据包(InData)格式为:
“卡号|保险号|姓名|单位名称|科室|医疗类别|挂号费|挂号日期|挂号时间|经办人”。
例如:
“36100000000048|0110003670|李四|市委老干部局|外科|普通门诊|6.50|20061009|1608|admin”
说明:
【医疗类别】为中心系统规定的类别中文名称一致(详见医疗类别目录表)。
否则将取不到正确的数据。
挂号日期,例如“2006年9月4日”,需填写“20060904”.同理,挂号时间一样,例如:
“下午4点8分”,需填写“1608”.
数据交易成功,返回数据包(OutData)格式为:
A.主表数据包格式为:
“门诊号|个人编号|姓名|单位编号|单位名称|挂号科室|医疗类别|挂号费|挂号日期|挂号时间|冲销单据号|卡号|出生日期|年龄|参保日期|性别|人员类别|所属地区|卡状态|账户余额|经办人”。
B.个人慢性病审批数据包格式为:
“病种编码|病种名称;病种编码|病种名称…”。
说明:
门诊挂号,此时冲销单据号为空值,返回是NULL;医疗类别选择“门诊慢性病(一类)或门诊慢性病(二类)”时,才返回该参保人审批的慢性病信息。
3.门诊收费
业务类型代码:
“MZSF”。
传入的数据包(InData)由两部分组成:
主表数据包和消费明细数据包
A.主表数据包格式为:
“是否打印门诊收费发票|卡号|门诊号|保险号|姓名|账户余额|病种编号|病种名称|单位编号|单位名称|开方医生”。
例如:
“TRUE|36100000000048|00000105|0110003670|李四|0|NULL|NULL|00010012|市委老干部局|李医生”
说明:
病种编号和病种名称必须是中心系统规定的病种(详见病种目录表)。
如果没有病种信息,则用NULL代替。
【是否打印门诊收费发票】:
当传入的参数为‘TURE’则接口直接打印出门诊收费发票,当传入的参数为‘FALSE’则不调用接口的门诊收费发票打印功能。
B.消费明细数据包格式为:
“项目编号|项目名称|单价|数量|金额|收费类别|项目等级|是否药品和非药品|是否医保|处方日期”。
例如:
“11100101100000000003|苯唑西林|12.5|2.00|25.00|西药费|甲类|1|1|20090101;11100101100000000005|青霉素|12.00|2.00|24.00|西药费|甲类|1|1|20090101”
说明:
【收费类别】必须是中心系统规定的类别(详见收费类别目录表),只需传中文名称,但保证中文名称与收费目录表目录一致,否则,接口无法取得对应的代码。
如“西药费”,“中药费”等收费的中文名称。
【项目等级】必须是中心系统规定的项目等级(详见项目等级目录表),传入的项目等级名称必须与项目等级目录表中的中文名称一致。
例如:
“甲类”,“乙类”等。
【药品编号和名称】必须是中心系统规定的药品(详见药品目录表)。
【是否药品和非药品】:
“1”代表“是”,“0”代表“否”。
【是否医保】:
“1”代表“是”,“0”代表“否”。
消费明细数据包可以由多个组成,之间以分号隔开。
交易成功后,返回数据包(OutData)格式为:
“单据流水号|门诊号|个人编号|姓名|性别|出生日期|医疗人员类别|是否特殊病种|病情编码|挂号科室名称|本次看病次数|单位编号|单位名称|医疗类别|医疗方式|进入统筹自付|特检特治自付|乙类个人负担|转院个人负担|起付标准自付|超过限额自付|个人账户支付|个人现金支付|个人基金支付|大病个人支付|大病账户支付|大病基金支付|单位负担金额|转诊单位负担|医院负担金额|单位乙类负担|单位特捡特治自付|进入统筹单位付|封顶线以上自付|个人自费金额|医疗总费用|累计费用|经办人|收费日期|收费时间|冲销单据号|本人年龄”。
并接依次顺序返回下面四个数据包(各数据包间以“;”隔开):
返回消费明细处方数量,“处方数量”。
返回发票项目数量,“发票项目数”。
返回消费明细,以分号隔开,消费明细数据包格式为:
“单据流水号|门诊号|项目编号|项目名称|单价|数量|金额|收费类别|项目等级|是否药品和非药品|是否医保|自付金额|大病支付金额|个人自付比例”。
返回发票项目费用,以分号隔开,发票项目费用数据包格式为:
“单据流水号|发票项目编号|发票项目名称|医保费用|医保个人费用|非医保费用|特殊项目费用”。
医保费用+非医保费用
说明:
如果有多条消费明细或多条发票项目,就返回对应的多条明细或发票项目,数据包之间以“;”隔开。
整个返回结果格式如:
“费用结算数据;处方数量;发票项目数;消费明细;发票项目费用”。
4.门诊收费预结算
业务类型代码:
“MZSFYJS”。
传入的数据包(InData)由两部分组成:
主表数据包和消费明细数据包
B.主表数据包格式为:
“是否打印门诊收费发票|卡号|门诊号|保险号|姓名|账户余额|病种编号|病种名称|单位编号|单位名称|开方医生”。
例如:
“TRUE|36100000000048|00000105|0110003670|李四|0|NULL|NULL|00010012|市委老干部局|李医生”
说明:
病种编号和病种名称必须是中心系统规定的病种(详见病种目录表)。
如果没有病种信息,则用NULL代替。
【是否打印门诊收费发票】:
当传入的参数为‘TURE’则接口直接打印出门诊收费发票,当传入的参数为‘FALSE’则不调用接口的门诊收费发票打印功能。
B.消费明细数据包格式为:
“项目编号|项目名称|单价|数量|金额|收费类别|项目等级|是否药品和非药品|是否医保|处方日期”。
例如:
“11100101100000000003|苯唑西林|12.5|2.00|25.00|西药费|甲类|1|1|20090101;11100101100000000005|青霉素|12.00|2.00|24.00|西药费|甲类|1|1|20090101”
说明:
【收费类别】必须是中心系统规定的类别(详见收费类别目录表),只需传中文名称,但保证中文名称与收费目录表目录一致,否则,接口无法取得对应的代码。
如“西药费”,“中药费”等收费的中文名称。
【项目等级】必须是中心系统规定的项目等级(详见项目等级目录表),传入的项目等级名称必须与项目等级目录表中的中文名称一致。
例如:
“甲类”,“乙类”等。
【药品编号和名称】必须是中心系统规定的药品(详见药品目录表)。
【是否药品和非药品】:
“1”代表“是”,“0”代表“否”。
【是否医保】:
“1”代表“是”,“0”代表“否”。
消费明细数据包可以由多个组成,之间以分号隔开。
交易成功后,返回数据包(OutData)格式为:
“单据流水号|门诊号|个人编号|姓名|性别|出生日期|医疗人员类别|是否特殊病种|病情编码|挂号科室名称|本次看病次数|单位编号|单位名称|医疗类别|医疗方式|进入统筹自付|特检特治自付|乙类个人负担|转院个人负担|起付标准自付|超过限额自付|个人账户支付|个人现金支付|个人基金支付|大病个人支付|大病账户支付|大病基金支付|单位负担金额|转诊单位负担|医院负担金额|单位乙类负担|单位特捡特治自付|进入统筹单位付|封顶线以上自付|个人自费金额|医疗总费用|累计费用|经办人|收费日期|收费时间|冲销单据号|本人年龄
”。
并接依次顺序返回下面四个数据包(各数据包间以“;”隔开):
返回消费明细处方数量,“处方数量”。
返回发票项目数量,“发票项目数”。
返回消费明细,以分号隔开,消费明细数据包格式为:
“单据流水号|门诊号|项目编号|项目名称|单价|数量|金额|收费类别|项目等级|是否药品和非药品|是否医保|自付金额|大病支付金额|个人自付比例”。
返回发票项目费用,以分号隔开,发票项目费用数据包格式为:
“单据流水号|发票项目编号|发票项目名称|医保费用|医保个人费用|非医保费用|特殊项目费用”。
说明:
如果有多条消费明细或多条发票项目,就返回对应的多条明细或发票项目,数据包之间以“;”隔开。
整个返回结果格式如:
“费用结算数据;处方数量;发票项目数;消费明细;发票项目费用”。
5.门诊挂号冲销
业务类型代码:
“MZGHCX”。
从返回的个人参保数据包中可以取出保险号,姓名,IC卡号。
传入数据包(InData)格式为:
“IC卡号|保险号|姓名|门诊号”。
例如:
“36100000000048|0110003670|李四|000000023”
数据交易成功,返回数据包(OutData)格式为:
“门诊号|个人编号|姓名|单位编号|单位名称|挂号科室|医疗类别|挂号费|挂号日期|挂号时间|冲销单据号|卡号|出生日期|年龄|参保日期|性别|人员类别|所属地区|卡状态|账户余额|经办人”。
6.门诊收费冲销
业务类型代码:
“MZGHCX”。
从个人参保信息数据包取出保险号,姓名,IC卡号。
传入数据包(InData)格式为:
“IC卡号|保险号|姓名|单据流水号”。
例如:
“36100000000048|0110003670|李四|000000125”
交易成功后,返回的数据包(OutData)格式为:
“单据流水号|门诊号|个人编号|姓名|性别|出生日期|医疗人员类别|是否特殊病种|病情编码|挂号科室名称|本次看病次数|单位编号|单位名称|医疗类别|医疗方式|进入统筹自付|特检特治自付|乙类个人负担|转院个人负担|起付标准自付|超过限额自付|个人账户支付|个人现金支付|个人基金支付|大病个人支付|大病账户支付|大病基金支付|单位负担金额|转诊单位负担|医院负担金额|单位乙类负担|单位特捡特治自付|进入统筹单位付|封顶线以上自付|个人自费金额|医疗总费用|累计费用|经办人|收费日期|收费时间|冲销单据号|本人年龄”。
7.药店收费
业务类型代码:
“YDSF”。
传入数据包(InData)由两部分组成,用分号隔开,包括主表数据包和消费明细数据包:
A.主表数据包的格式为:
“卡号|保险号|姓名|账户余额|病种编号|病种名称|单位编号|单位名称”
例如:
“36100000000048|0110003670|李四|0|NULL|NULL|00010012|市委老干部局”
说明:
【病种编号和病种名称】必须是中心系统规定的病种(详见病种目录表)。
如果没有病种信息,则用NULL代替.
B.消费明细数据包格式为:
“项目编号|项目名称|单价|数量|金额|收费类别|项目等级|是否药品和非药品|是否医保|处方日期”。
例如:
“11100101100000000003|苯唑西林|12.5|2.00|25.00|西药费|甲类|1|1|20090101;11100101100000000005|青霉素|12.00|2.00|24.00|西药费|甲类|1|1
|20090101”
说明:
【收费类别】必须是中心系统规定的类别(详见收费类别目录表),只需传中文名称,但保证中文名称与收费目录表目录一致,否则,接口无法取得对应的代码。
如“西药费”,“中药费”等收费的中文名称。
【项目等级】必须是中心系统规定的项目等级(详见项目等级目录表),传入的项目等级名称必须与项目等级目录表中的中文名称一致。
【药品编号和名称】必须是中心系统规定的药品(详见药品目录表)
【是否药品和非药品】:
“1”代表“是”,“0”代表“否”。
【是否医保】:
“1”代表“是”,“0”代表“否”,
消费明细数据包可以多个,它们之间以分号隔开。
交易成功后,返回数据包(OutData)格式为:
“单据流水号|门诊号|个人编号|姓名|性别|出生日期|医疗人员类别|是否特殊病种|病情编码|挂号科室名称|本次看病次数|单位编号|单位名称|医疗类别|医疗方式|进入统筹自付|特检特治自付|乙类个人负担|转院个人负担|起付标准自付|超过限额自付|个人账户支付|个人现金支付|个人基金支付|大病个人支付|大病账户支付|大病基金支付|单位负担金额|转诊单位负担|医院负担金额|单位乙类负担|单位特捡特治自付|进入统筹单位付|封顶线以上自付|个人自费金额|医疗总费用|累计费用|经办人|收费日期|收费时间|冲销单据号|本人年龄”。
并返回消费明细,以“;”隔开,消费明细数据包格式为:
“单据流水号|门诊号|项目编号|项目名称|单价|数量|金额|收费类别|项目等级|是否药品和非药品|是否医保|自付金额|大病支付金额|个人自付比例”。
说明:
如果有多条消费