医保接口编码规范说明文档修订版.docx
《医保接口编码规范说明文档修订版.docx》由会员分享,可在线阅读,更多相关《医保接口编码规范说明文档修订版.docx(55页珍藏版)》请在冰点文库上搜索。
医保接口编码规范说明文档修订版
医保编码参考手册
1.引言
1.1编写目的
编写本文档的目的是对BSPHIS2.4系统的医保编码进行统一规范,严格按照规范实现医保的业务逻辑,不需要考虑PHIS主业务模块的逻辑,开发新的医保接口不会影响主业务模块的,更好的保证了主业务。
模块的稳定性。
1.2预期读者
本文档的预期读者是与项目有关的并且对框架有一定了解的软件开发人员。
1.3编写范围
本文档规范了医保的基本流程读卡,挂号登记.上传.预结算.结算,收费登记.上传.预结算.结算.发票作废.入院登记.费用上传.预结算.结算.取消登记.取消结算.性质转换等,其他例如对账,数据下载上传已经当地医保客户化功能按实际需求自行编码
1.4其他说明
1.本文档以及标准版的医保代码仅供参考,由于没有医保环境未进行代码调试,可能出现报错,实际以现场医保接口需求为主,必要时可以废弃按实际需求编码
2.文档截图代码是编写时所截,过程可能会有修改,以实际代码为准
2.文件结构概述
2.1文件所在目录
2.1.1医保前台js和后台java
2.1.2医保界面定义文件
2.1.3医保数据表结构定义文件
2.2.文件功能简单描述
2.2.1MedicareCommonMethod.js
phis/application/yb/script/MedicareCommonMethod.js文件定义了医保接口对主业务模块开放的标准接口函数,具体每个地区的医保接口都要实现这个JS定义的接口,在相应的接口函数实现相关的功能,业务模块会根据患者的病人性质相关的XZDL属性调用initYBServer函数装入对应的医保业务逻辑实现。
2.2.2MedicareUtils.js
前台公共方法js,里面保存各种公用的方法,例如数据转换将map转成string,将医保返回的数据转成map等
2.2.3PHISActiveXUtils.js
医保控件加载及调用的js.具体调用控件代码:
$PhisActiveXObjectUtils.initHtmlElement();
varo=$PhisActiveXObjectUtils.getObject();
2.2.5MedicareService.java
后台服务类,实现医保相关数据表数据的处理,如果医保数据保存比较特殊,可以继承此类增加新的数据处理功能或者覆盖相应的方法
2.2.6MedicareModel.java
后台实现类
3.医保接口定义及开发说明
3.1主要业务接口调用流程
出院收费
3.2医保常用公共对象参数说明
医保相关的公共数据对象
ybbhxx:
null,//病人基本信息
ybcfxx:
null,//门诊处方信息
ybyzxx:
null,//住院医嘱明细信息
ybfyxx:
null,//医保费用信息YBTCZF:
医保统筹支付(对应HIS的QTYS)YBZHZF:
医保帐户支付YBZJJE:
医保总计金额YBZFJE:
自负金额
//HISZJJE:
业务总计金额HISZFJE:
业务自费金额HISXJJE:
业务现金金额HBWC:
货币误差
ybkxx:
null,//医保读卡信息
ybfpxx:
null,//传回给主业务模块,需要打印发票的地方调用些对象打印医保相关的内容
3.3医保相关表结构定义
项目对照表,大部分医保都需要在本地库实现医院的代码表与医保的三大目录对照的功能,费用明细上传的时候一般都会要求上传医院的代码和医保中心的编码。
YB_DMB_?
医保参数代码表,以后每个地区医保要实现自己的对照表,比如韶关命名方式为:
YB_DMB_SGYB
字段名
类型
说明
SBXH
Number(18)
识别序号
LX
Number
(2)
按照医保的要求定义字典的类型
BM
Varchar(20)
编码
DH
Varchar(20)
代号
MC
Varchar(30)
名称
后面根据需要自己扩展
YB_XMDZB_?
医保项目对照表,以后每个地区医保要实现自己的对照表,比如韶关命名方式为:
YB_XMDZB_SGYB
字段名
类型
说明
SBXH
Number(18)
识别序号
JGID
Varchar(20)
机构ID
LX
Number
(2)
类型:
1药品2医疗服务项目字典3材料4服务设施
HISBM
Varchar(20)
内部编码
HISMC
Varchar(100)
内部名称
HISGG
Varchar(30)
内部规格
HISDW
Varchar(20)
内部规格
YBBM
Varchar(20)
医保编码
YBMC
Varchar(20)
医保名称
后面根据需要自己扩展
YB_YBML_?
医保中心提供的目录表,以后每个地区医保要实现自己的目录表,比如韶关命名方式为:
YB_YBML_SGYB
字段名
类型
说明
SBXH
Number(18)
识别序号
JGID
Varchar(20)
机构ID
LX
Number
(2)
字典类型:
1药品2医疗服务项目3材料4服务设施
BM
Varchar(20)
编码
MC
Varchar(100)
名称
PYM
Varchar(30)
拼音码
GG
Varchar(30)
规格
DW
Varchar(20)
单位
JX
Varchar(20)
剂型
FYFL
Varchar(20)
费用分类
ZFBL
Number(18,4)
自负比例
DJ
Number(18,4)
单价
后面根据需要自己扩展
YB_YBKXX
医保卡信息,用于保存医保读卡返回的信息
字段名
类型
说明
SBXH
Number(18)
识别序号
BRID
Number(18)
病人ID
BRXM
Varchar(20)
姓名
BRXB
Varchar(20)
性别
CSRQ
Varchar(20)
出生日期
BRNL
Varchar(10)
年龄
SFZH
Varchar(20)
身份证号
ICKH
Varchar(100)
IC卡号
SBKH
Varchar(30)
社保卡号
GRBH
Varchar(30)
个人编号
MZ
Varchar(20)
民族
DQBM
Varchar(20)
医保地区编码:
内部为每个医保编号
DWBM
Varchar(19)
单位编码
DWMC
Varchar(50)
单位名称
YLLB
Varchar(20)
医疗类别
CBLB
Varchar(10)
参保类别
CBZT
Varchar(10)
参保状态
后面根据需要自己扩展
YB_GHJS
医保挂号结算表,用于记录每次医保挂号结算相关的信息
字段名
类型
说明
SBXH
Number(18)
识别序号
JGID
Varchar(20)
机构ID
GHGL
Number(18)
挂号序号
BRID
Number(18)
病人ID
DQBM
Varchar(20)
医保地区编码:
内部为每个医保编号
YBDJH
Varchar(20)
医保登记号
YBLSH
Varchar(20)
医保流水号
ICKH
Varchar(100)
IC卡号
SBKH
Varchar(30)
社保卡号
GRBH
Varchar(30)
个人编号
YLLB
Varchar(20)
医疗类别
ZFPB
Number
(1)
作废标志:
0正常1作废
YBTCZF
Number(18,2)
医保统筹支付
YBZHZF
Number(18,2)
医保帐户支付
YBZJJE
Number(18,2)
医保总计金额
YBZFJE
Number(18,2)
医保自负金额
HISZJJE
Number(18,2)
业务总计金额
HISZFJE
Number(18,2)
业务自费金额
HISXJJE
Number(18,2)
业务现金金额
HBWC
Number(18,2)
货币误差
后面根据需要自己扩展
YB_MZJS
医保门诊结算表,用于记录每次医保收费结算相关的信息
字段名
类型
说明
SBXH
Number(18)
识别序号
JGID
Varchar(20)
机构ID
MZXH
Number(18)
门诊收费序号
BRID
Number(18)
病人ID
FPHM
Varchar(20)
发票号
DQBM
Varchar(20)
医保地区编码:
内部为每个医保编号
YBDJH
Varchar(20)
医保登记号
YBLSH
Varchar(20)
医保流水号
ICKH
Varchar(100)
IC卡号
SBKH
Varchar(30)
社保卡号
GRBH
Varchar(30)
个人编号
YLLB
Varchar(20)
医疗类别
ZDBM
Varchar(20)
医保诊断编码
ZDMC
Varchar(50)
医保诊断名称
ZFPB
Number
(1)
作废标志:
0正常1作废
YBTCZF
Number(18,2)
医保统筹支付
YBZHZF
Number(18,2)
医保帐户支付
YBZJJE
Number(18,2)
医保总计金额
YBZFJE
Number(18,2)
医保自负金额
HISZJJE
Number(18,2)
业务总计金额
HISZFJE
Number(18,2)
业务自费金额
HISXJJE
Number(18,2)
业务现金金额
HBWC
Number(18,2)
货币误差
后面根据需要自己扩展
YB_ZYJS
医保住院结算表,用于记录每次医保住院结算相关的信息
字段名
类型
说明
SBXH
Number(18)
识别序号
JGID
Varchar(20)
机构ID
ZYH
Number(18)
住院ID号
BRID
Number(18)
病人ID
FPHM
Varchar(20)
发票号
DQBM
Varchar(20)
医保地区编码:
内部为每个医保编号
YBDJH
Varchar(20)
医保登记号
YBLSH
Varchar(20)
医保流水号
ICKH
Varchar(100)
IC卡号
SBKH
Varchar(30)
社保卡号
GRBH
Varchar(30)
个人编号
YLLB
Varchar(20)
医疗类别
ZDBM
Varchar(20)
医保诊断编码
ZDMC
Varchar(50)
医保诊断名称
ZFPB
Number
(1)
作废标志:
0正常1作废
YBTCZF
Number(18,2)
医保统筹支付
YBZHZF
Number(18,2)
医保帐户支付
YBZJJE
Number(18,2)
医保总计金额
YBZFJE
Number(18,2)
医保自负金额
HISZJJE
Number(18,2)
业务总计金额
HISZFJE
Number(18,2)
业务自费金额
HISXJJE
Number(18,2)
业务现金金额
HBWC
Number(18,2)
货币误差
后面根据需要自己扩展
3.4医保接口函数定义
医保接口详细定义请查看phis.application.yb.script.MedicareCommonMethod.js文件,此文件定义了医保接口需要实现的基本流程接口函数,以后新开发一个医保接口都要按照具体的功能点在相应的接口函数里实现。
/**
*使用说明:
MedicareCommonMethod.JS是整个医保接口函数声明的模块,要开始做一个医保接口的时候,需要实现doYbjddk后面
*的所有接口函数,实现后需要在本文件的initYBServer配置好要调用的模块,业务模块每次调用医保接口的时候会调用initYBServer方法
*动态装载要调用相应的医保的JS实现模块,具体参考MedicareCommonMethod4SGYB.JS的实现。
*---writebycandy2016.8.3
*/
phis.application.yb.script.MedicareCommonMethod={
/**
*初始化医保服务方法,每增加一个医保需要在此方法内声明要调用的接口文件
*@paramBRXZ
*/
initYBServer:
function(brxz){}
//通用医保读卡,给建档界面调用
doYbjddk:
function(){
},
//清除医保缓存信息
clearYbxx:
function(){
this.ybbhxx=null;
this.ybcfxx=null;
this.ybyzxx=null;
this.ybfyxx=null;
this.ybkxx=null;
},
//医保挂号读卡
doYbghdk:
function(){
},
//读卡界面点击确认后回调方法
onQr_mzghdk:
function(ybxx){
this.ybkxx=ybxx;
},
//医保挂号预结算
doYbghyjs:
function(){
varret={};
ret["result"]=true;
ret["msg"]="成功";
returnret;
},
//医保挂号确认结算
doYbghjs:
function(){
varret={};
ret["result"]=true;
ret["msg"]="成功";
returnret;
},
//医保退号
doYbghth:
function(){
varret={};
ret["result"]=true;
ret["msg"]="成功";
returnret;
},
//退号界面确定后的回调函数
onQr_Ghth:
function(ybxx){
this.ybkxx=ybxx;
},
//---门诊收费部分开始---
//医保门诊收费读卡
doYbmzsfdk:
function(){
},
//读卡返回自动调用病人结算信息
onQr_mzsfdk:
function(ybxx){
this.ybkxx=ybxx;
},
//医保门诊收费预结算
doYbmzyjs:
function(){
varret={};
ret["result"]=true;
ret["msg"]="成功";
returnret;
},
//医保门诊收费确认结算
doYbmzjs:
function(){
varret={};
ret["result"]=true;
ret["msg"]="成功";
returnret;
},
//门诊收费保存数据过程中发生异常,调用医保费用冲销功能
doYbmzsfcx:
function(){
varret={};
ret["result"]=true;
ret["msg"]="成功";
returnret;
},
//门诊收费退款读卡
doYbmztkdk:
function(){
},
//门诊收费发票作废读卡成功
onQr_mzfpzf:
function(ybxx){
this.ybkxx=ybxx;
}
……………………………………………….
}
3.5开发一个新医保接口的步骤
1、在phis.application.yb包下面按照首拼码新建相应的包,如韶关医保为sgyb,然后在其下再建存放JS代码的script和实现后台Java服务的source包。
2、新建MedicareCommonMethod4xxYB.js的接口实现文件,接口必须要实现phis.application.yb.script.MedicareCommonMethod对象里定义的医保业务接口。
3、打开phis.application.yb.script.MedicareCommonMethod.js文件,在initYBServer方法里面必须要定义好实现具体医保业务逻辑的接口文件,在switch块里增加一个case选项声明实现的接口文件,如下所示:
4、在相关的医保实现文件里实现具体的医保业务逻辑,医保开发人员不需要关心主业务的代码,主业务已经按医保结算的流程定好了哪个步骤会调用哪个医保的接口函数。
以下为在MedicareCommonMethod.js文件定义的公共Json对象,开发人员需要访问业务的病人基本信息时,只需要通过ybbhxx对象就可以访问了,同时需要将医保读卡返回的信息保存到ybkxx对象,可能通过ybcfxx对象取得门诊收费的处方明细信息,通过ybyzxx对象取得住院的医嘱明细,医保预结算和结算返回结果后,需要将相关的费用信息保存到ybfyxx对象,以便业务模块能够访问该对象的数据,如需打印一些医保相关的信息,需要将打印的内容保存到ybfpxx对象里,业务模块会自动打印该对象里的内容。
ybbhxx:
null,//病人基本信息
ybcfxx:
null,//门诊处方信息
ybyzxx:
null,//住院医嘱明细信息
ybfyxx:
null,//医保费用信息YBTCZF:
医保统筹支付(对应HIS的QTYS)YBZHZF:
医保帐户支付YBZJJE:
医保总计金额YBZFJE:
自负金额
//HISZJJE:
业务总计金额HISZFJE:
业务自费金额HISXJJE:
业务现金金额HBWC:
货币误差
ybkxx:
null,//医保读卡信息
ybfpxx:
null,//传回给主业务模块,需要打印发票的地方调用些对象打印医保相关的内容
3.6医保数据保存方法
MedicareService是医保后台数据处理对外开放的服务类,具体实现由MedicareModel来完成。
医保接口的业务数据保存已经规范化,每个医保的实现都要继续MedicareModel类,在相应的接口方法里覆盖父类的方法,实现自己的数据保存处理过程。
主要对门诊挂号、退号、门诊处方结算、门诊发票作废、住院登记、取消登记、住院结算、取消住院结算的数据保存提供的接口。
每个医保需要在自己确认接口里调用数据保存前,将需要保存的数据对象封装到YBXX对象里,并且需要指定是属于哪个医保的,如韶关医保需设置YBXX[“yblx”]=sgyb,具体实现代码参考doSaveYbghxx。
每增加一个医保接口需要更新YbModelType类里定义的医保类型,
//以下为医保业务数据保存接口,具体每个医保的实现需要在每个地区的MedicareModal去实现,
//在调用接口时需要传入yblx参数值,接口根据YBLX决定调哪个接口实现类
/**
*医保门诊挂号数据保存
*@paramreq
*@paramres
*@paramdao
*@paramctx
*@throwsServiceException
*/
publicvoiddoSaveYbghxx(Mapreq,Mapres,
BaseDAOdao,Contextctx)throwsServiceException
*医保门诊退号数据保存
*@paramreq
*@paramres
*@paramdao
*@paramctx
*@throwsServiceException
*/
publicvoiddosaveYbGhth(Mapreq,Mapres,
BaseDAOdao,Contextctx)throwsServiceException
*医保门诊结算数据保存
*@paramreq
*@paramres
*@paramdao
*@paramctx
*@throwsServiceException
*/
publicvoiddosaveYbMzjs(Mapreq,Mapres,
BaseDAOdao,Contextctx)throwsServiceException
*医保门诊发票作废
*@paramreq
*@paramres
*@paramdao
*@paramctx
*@throwsServiceException
*/
publicvoiddosaveYbmzFpzf(Mapreq,Mapres,
BaseDAOdao,Contextctx)throwsServiceException
*医保入院登记数据保存
*@paramreq
*@paramres
*@paramdao
*@paramctx
*@throwsServiceException
*/
publicvoiddosaveYbZydj(Mapreq,Mapres,
BaseDAOdao,Contextctx)throwsServiceException
*医保住院取消登记数据保存
*@paramreq
*@paramres
*@paramdao
*