create or replace procedure SP_ZY_YBFSJG ( ad_ZYID00 in number, --住院ID ad_QSDJH0 in number, --起始单据号 ad_ZZDJH0 in number, --截止单据号 as_YBFSDH in char, --日清单日期 ad_GRZFE0 in number, --医保个人自付金额 grzfe0 ad_GRZHZF in number, --医保个人账户支付 zhzfe0 ad_TCJJZF in number, --医保统筹基金支付 jjzfe0 ad_SBGRZH in number, --商保个人账户支付 dbzhzf ad_SBTCJJ in number, --商保统筹基金支付 dbjjzf ad_HJJE00 in number, --费用合计金额 bcbxf0 ad_DBGRZF in number default 0, --大病保险(商业保险)个人现金支付额 dbgrzf ad_GSJJZF in number default 0, --工伤统筹基金支付 gsjjzf ad_GSZFJE in number default 0, --工伤个人自付(个人按比例自付部分) gszfje ad_FGSFY0 in number default 0, --非工伤费用 fgsfy0 ad_BJJJZF in number default 0, --保健基金支付 bjjjzf ad_GWYBZ0 in number default 0, --公务员补助 gwybz0 ad_SYBXZF in number default 0, --商业保险支付 sybxzf ad_FYBFY0 in number default 0, --非医保金额 fybfy0 ad_YLZFJE in number default 0, --乙类药品自负金额 ylzfje ad_CFDXJE in number default 0, --超封顶线金额 cfdxje ad_SBZFE0 in number default 0, --商保基金支付 sbzfe0 ad_BJZFE0 in number default 0, --保健基金支付 bjzfe0 ad_GRZHYE in number default 0, --医保个人账户余额 ad_YPWQZF in number default 0, --药品完全支付 ad_YPBFZF in number default 0, --药品部分支付 ad_XMWQZF in number default 0, --项目完全支付 ad_XMBFZF in number default 0, --项目部分支付 as_BJJBIE in char, --保健级别 as_YBJZRQ in char, --医保记账日期 as_YBJZSJ in char, --医保记账时间 as_TSBZBH in char, --医保特殊病种编号 ad_CFXMS0 in number default 0, --本次住院处方项目总数 ad_YEXM00 in char default '全部', --婴儿姓名 ad_CZY000 in number, --操作员 ad_CZYKS0 in number default -1, --操作员科室 od_YBZFJE out number, --个人自付合计 od_YBZHZF out number, --医保账户支付合计 od_YBJJZF out number, --医保基金支付合计 od_YBQTZF out number, --医保其他支付合计 as_YHMSG0 out varchar, --存储过程提示的错误信息 as_SYSMSG out varchar, --系统提示的错误信息 ad_YBYL01 in number default 0, --民政救助总额 ad_YBYL02 in number default 0, --计生救助总额 ad_YBYL03 in number default 0, --残联救助总额 ad_YBYL04 in number default 0, --单病种限额 ad_YBYL05 in number default 0, --医院支付(医保没返回) ad_YBYL06 in number default 0, --低保基金支付金额 ad_YBYL07 in number default 0, --一般诊疗费补偿金额 ad_YBYL08 in number default 0, --一般诊疗费费个人支付金额 ad_YBYL09 in number default 0, --特殊门诊起付线累计 ad_YBYL10 in number default 0, --特殊门诊基金累计 ad_YBYL11 in number default 0, --健康账户支付 ad_YBYL12 in number default 0, --健康账户余额 ad_YBYL13 in number default 0, --共济账户支付 ad_YBYL14 in number default 0, --共济账户余额 ad_YBYL15 in number default 0, --健康账户支付医保费用 ad_YBYL16 in number default 0, --健康账户支付非医保费用 ad_YBYL17 in number default 0, --医保减免金额 ad_YBYL18 in number default 0, --民政(医疗救助基金)补助金额 ad_YBYL19 in number default 0, --超医保上限金额(非医保返回) ad_YBYL20 in number default 0, --个人账户支付起付段(三明地区商业保险接口) ad_YBYL21 in number default 0, --个人现金支付起付段(三明地区商业保险接口) ad_YBYL22 in number default 0, --血费报销金额(血费系统) ad_YBYL23 in number default 0, --医保结算金额误差(总费用-定额) ad_YBYL24 in number default 0, --大额医疗费用报销金额 ad_YBYL25 in number default 0, --单病种补偿金额(定额-总费用) ad_YBYL26 in number default 0, --大病补充补偿金额 ad_YBYL27 in number default 0, --保健医保统筹支付(已包含在统筹中) ad_YBYL28 in number default 0, --择日住院门诊总费用 ad_YBYL29 in number default 0, --择日住院门诊范围内费用 ad_YBYL30 in number default 0, --择日住院门诊统筹(医保未返回) ad_YBYL31 in number default 0, --个人支付金额(医保返回) ad_YBYL32 in number default 0, --大病补偿个人支付差额(医保返回) ad_YBYL33 in number default 0, --超标床位费用(付费单病种写入) ad_YBYL34 in number default 0, --除外耗材费用(付费单病种写入) ad_YBYL35 in number default 0, --医保返回的BCBXF0(付费单病种写入) ad_YBYL36 in number default 0, --累计封顶金额 ad_YBYL37 in number default 0, --普通门诊累计 ad_YBYL38 in number default 0, --特殊门诊累计 ad_YBYL39 in number default 0, --CDRG个人支付金额drgzfe(医保返回) ad_YBYL40 in number default 0, --大病本次补偿金额dbbcbcje(医保返回) ad_YBYL41 in number default 0, --B账户支付金额bkzfe0(医保返回) ad_YBYL42 in number default 0, --B账户余额bkzhye(医保返回) ad_YBYL43 in number default 0, --可报高值耗材费(C-DRG) ad_YBYL44 in number default 0, --超标床位费(C-DRG) ad_YBYL45 in number default 0, --超标高值耗材费(C-DRG) ad_YBYL46 in number default 0, --jzfp01 精准扶贫第一道补助金额 ad_YBYL47 in number default 0, --jzfp02 精准扶贫第二道补助金额 ad_YBYL48 in number default 0, --jzfp03 综合救助 ad_YBYL49 in number default 0, --医保预留 ad_YBYL50 in number default 0, --csjz00 慈善救助金额 ad_YBYL51 in number default 0, --jzfpje 医保返回的精准扶贫金额金额 ad_YBYL52 in number default 0, --akc227,医疗费总金额=个人现金支付金额+个人账户支付金额+基金支付总额 ad_YBYL53 in number default 0, --bkc102,基金支付总额=统筹基金支付+商保基金支付+公务员医疗补助+精准扶贫医疗叠加+医疗救助基金+其他基金支付+企业补充 ad_YBYL54 in number default 0, --bkc040,个人现金支付金额(实付现金) ad_YBYL55 in number default 0, --bkc041,个人账户支付金额 ad_YBYL56 in number default 0, --bkc045,其中:统筹基金支付 ad_YBYL57 in number default 0, --bkc059,其中:公务员医疗补助(bkc059=bkc059_1+bkc059_2+bkc059_3) ad_YBYL58 in number default 0, --bkc052,其中:商保基金支付(大额补充) ad_YBYL59 in number default 0, --bkc062,其中:精准扶贫医疗叠加 ad_YBYL60 in number default 0, --bkc060,其中:医疗救助基金 ad_YBYL61 in number default 0, --ake173,其中:其他基金支付 ad_YBYL62 in number default 0, --ake026,其中:企业补充 ad_YBYL63 in number default 0, --bkc011,个人自费(非医保费用) ad_YBYL64 in number default 0, --akc087,个人账户余额 ad_YBYL65 in number default 0, --aka151,统筹支付医保费用起付标准 ad_YBYL66 in number default 0, --aka150,本年度住院次数 ad_YBYL67 in number default 0, --bkc612,补助基金支付bkc612=bkc052 大病保险基金支付+bkc059公务员医疗补助+bkc062精准扶贫医疗叠加+bkc060医疗救助基金+ake173 其他基金支付+ake026企业补充+bkc061保健基金支付 ad_YBYL68 in number default 0, --bkc064,产前检查费(医保返回) ad_YBYL69 in number default 0, --医保预留 as_YBSM01 in char default null, --行政区号+区域 mzxzqh as_YBSM02 in char default null, --是否择日住院 sfzrzy as_YBSM03 in char default null, --年度结算截止日期 ndjzrq as_YBSM04 in char default null, --血费报销ID(血费系统) xfbxid as_YBSM05 in char default null, --单病种登记流水号 dbzdjlsh as_YBSM06 in char default null, --结算类型-1:自费0:医保1生育2:工伤3:保健 jslxmc as_YBSM07 in char default null, --新生儿费用发送医保返回单据号 djlsh0 as_YBSM08 in char default null, --单病种数据拆分费用单据号 ybsm08 as_YBSM09 in char default null, --病情编码或CDRG组别bqbm00 as_YBSM10 in char default null, --CDRG病例类型jsbllx as_YBSM11 in char default null, --CDRG结算ID monitorID as_YBSM12 in char default null, --sfjdlk 是否精准扶贫,1-是,0-否 as_YBSM13 in char default null, --sfjzfp 是否精准扶贫,Y-是,N-否 as_YBSM14 in char default null, --医保说明 as_YBSM15 in char default null, --医保说明 as_YBSM16 in char default null, --医保说明 as_YBSM17 in char default null, --医保说明 as_YBSM18 in char default null, --医保说明 as_YBSM19 in char default null, --医保接口ID ZY_YBJKRZ.YBJKID as_YBSM20 in char default null, --医保说明 as_YBSM21 in char default null, --医保说明 as_YBSM22 in char default null, --医保说明 as_YBSM23 in char default null, --医保说明 as_YBSM24 in char default null, --医保说明 as_YBSM25 in char default null, --医保说明 as_YBSM26 in char default null, --医保说明 as_YBSM27 in char default null, --医保说明 as_YBSM28 in char default null, --医保说明 as_YBSM29 in char default null, --医保说明 as_MXLSH0 in char default null, --明细流水号 ad_ID0000 in number default 0 , --医保交互中间表ID ad_JSXZID in number default 0 --结算选择ID ZY_JSXZMX.JSXZID ) -- MODIFICATION HISTORY -- Person Date Comments -- ZHR 2009.12.27 增加医保其他字段 -- qks 2010.12.02 增加ad_YBYL01--ad_YBYL13以及ad_BCBXF0,ad_ls_CFXMS0共15个传入参数 -- zhangyc 2011.06.20 增加传入参数ad_YEXM00(婴儿姓名) -- zhangyc 2011.08.02 去掉commit by ZYSF-20110718-004,以便再取消补交时ZY_BRZHXX金额被提交 -- zhangyc 2011.11.30 单病种结算时写入ZFJE00=医保返回grzfe0 by ZYSF-20111128-001 -- jlg 2013.06.14 去掉修改ZY_BRZHXX.YBYJS0,YBYZF0 -- xuzw 2016.01.12 对增加南平大额医疗费用报销金额 ad_YBYL13 ZYSF9-20160112-003 -- jlg 2016.03.18 处理农合病人单病种个人自付金额 ZYSF9-20160312-001 -- jlg 2016.08.18 增加ZY_YBFS00.YBYL14-->YBYL32字段的写入 ZYSF9-20160816-001 -- jlg 2017.05.25 增加处理在付费单病种下,如果GRZFE0>HJJE00,则多余部分移除到YBYL05字段 ZYSF9-20170524-001 -- jlg 2018.01.04 增加C-DRG结算流程的数据处理 ZYSF9-20180104-001 -- jlg 2018.01.06 增加处理在C-DRG结算流程下,如果GRZFE0>HJJE00,则多余部分移除到YBYL05字段 ZYSF9-20180105-002 -- jlg 2018.03.22 增加入参as_YBSM01~as_YBSM08,处理医保返回mxxzqh记录保存 ZYSF9-20180320-004 -- jlg 2018.04.17 增加南平政和单病种模式下, 如果GRZFE0>HJJE00,则多余部分移除到YBYL05字段 ZYSF9-20180413-002 -- jlg 2018.04.25 增加不包含于统筹基金金额的民政补助金额(MZBZJE)的处理 ZYSF9-20180422-003 -- jlg 2018.04.29 增加DLSBJE 商保支付金额(独立于统筹基金金额) 的处理 ZYSF9-20180425-005 -- jlg 2018.05.04 厦门医保接口按新的返回金额勾稽关系处理共济账户支付金额(gjzhzf) ZYSF9-20180504-002 -- jlg 2018.05.05 对之前南平大额医疗费用报销金额(ad_YBYL13)错误处理的修改 ZYSF9-20180505-001 -- liwm 2018.05.06 是否精准扶贫医保信息(SFJZFP)添加 for ZYSF9-20180503-001 -- jlg 2018.05.07 对ZY_YBFS00字段进行批量扩展以及对过程入参进行大的改动,以备后续添加之用 ZYSF9-20180507-001 -- jlg 2018.06.19 将原默认公务员补助独立的改为默认包含于统筹基金中;增加独立的公务员补助金额(GWBZJE)的处理 ZYSF9-20180614-005 -- jlg 2018.09.27 对于南平大额医疗费用报销金额(sbzfje对应ad_YBYL24)的处理(YBBHSB维护54) ZYSF9-20180927-001 -- jlg 2019.12.17 增加as_MXLSH0的传入参数 ZYSF9-20191216-005 -- jlg 2019.12.19 修改如果医保返回的自付金额大于费用合计的情况下的算法 ZYSF9-20191218-003 -- jlg 2019.12.20 处理单病种病人的结账自付金额与医保返回的自付金额的相差问题 ZYSF9-20191220-001 -- jlg 2020.01.03 增加入参ad_ID0000,处理医保病人中途结算时后面有冲销的项目一并结算的问题 ZYSF9-20200103-001 -- jlg 2019.01.08 处理泉州医保,如果YBBHSB有维护16,那么住院系统费用分摊计算有误的问题 ZYSF9-20200107-002 -- jlg 2020.07.23 增加 DLDBJJ 商保统筹基金支付金额(独立于统筹基金金额) 的处理 ZYSF9-20200723-001 -- jlg 2020.07.29 处理泉州地区商保基金支付金额dbjjzf独立计算的问题,住院商保基金支付独立不按YBBHSB=11维护的处理 MZSF9-20200725-002 -- linzetao 2020.09.29 增加判断as_YBFSDH为空时不记录医保发送记录 ZYSF9-20200930-001 -- linzetao 2020.11.09 新医保接口设置独立的公务员补助金额,民政补助金额,独立的商保支付金额,独立的商保统筹基金支付金额,大额医疗费用报销金额置0 ZYSF9-20201109-001 -- linzetao 2020.11.11 增加新医保接口CDRG结算处理 ZYSF9-20201111-004 -- jlg 2020.12.07 增加入参ad_JSXZID(结算选择ID),处理中途结算选择结算的功能 ZYSF9-20201126-001 -- linzetao 2020.12.08 处理CJBTCE产检补退金额=自付金额的差额-产前检查费, 大于0计0, 小于0按实际计 ZYSF9-20201112-005 -- linzetao 2021.11.04 处理解析医保返回报文jjkxlist,kslwInfo列表 as ls_CZRQ00 char(8); ls_CZSJ00 char(8); ls_YBBHSB IC_YBBRLB.YBBHSB%type; ls_YBID00 varchar2(30); ls_YBKH00 varchar2(30); ls_BRID00 number; ls_YEXM00 varchar2(40); --婴儿姓名 ls_YBLB00 IC_YBBRLB.YBLB00%type; ls_SFXNH0 number; ls_DBZJK0 char(1); ls_TCJJZF number(12,2); ls_MZBZJE number(12,2); --独立的民政补助金额 ls_DLSBJE number(12,2); --独立的商保支付金额 ls_FFBZBM ZY_BRXXB0.FFBZBM%type; --付费单病种编码 ls_YBYL05 ZY_YBFS00.YBYL05%type; --医院支付金额 ls_DBZBM0 ZY_BRXXB0.DBZBM0%type; --单病种编码 ls_SFJZFP ZY_BRXXB0.SFJZFP%type; --是否精准扶贫 ls_GWBZJE number(12,2); --独立的公务员补助金额 ls_YBYL24 ZY_JZB000.YBYL24%type; --大额医疗费用报销金额(sbzfje--YBYL24) ls_DLDBJJ ZY_JZB000.SBTCJJ%type; --独立的大病基金支付金额 ls_YBJKID ZY_YBFS00.YBJKID%type; --医保接口日志ID ls_TSBZBH varchar2(50); --特殊病种编号 ls_YBSM09 ZY_JZB000.YBSM09%type; --病情编码或CDRG组别bqbm00 ls_CJBTCE ZY_YBFS00.CJBTCE%type; --产检检查费(bkc064)超出个人自付金额后需补退的差额 ls_ZXZT00 number(10); --执行状态 ls_ERRMSG varchar2(200); --错误信息 Ecustom exception; ld_YBYL68 number(12,2); --产前检查费 begin if nvl(as_YBFSDH,'0')='0' then return; end if; ls_CZRQ00 := to_char(sysdate,'YYYYMMDD'); ls_CZSJ00 := to_char(sysdate,'HH24:MI:SS'); if trim(ad_YEXM00) in ('全部','母亲') then ls_YEXM00:=''; else ls_YEXM00:=ad_YEXM00; end if; ls_YBJKID := nvl(as_YBSM19,'0'); SP_ZY_NEWYBJK_JKFHJX( ad_ZYID00, --输入:住院ID 0, --输入:结账单号 ls_YBJKID, --输入:医保接口ID '3,4', --输入:解析类型(同时解析传1,2) 1:fplist 2:mzlist 'N', --输入:是否提交事务 Y:提交 N:不提交 ls_ZXZT00, --输出:执行状态 0:失败 1:成功 ls_ERRMSG --输出:错误信息 ); if ls_ZXZT00=0 then as_YHMSG0:=ls_ERRMSG; as_SYSMSG:=ls_ERRMSG; raise Ecustom; end if; ld_YBYL68 := nvl(ad_YBYL68,0); --取前端传入的产前检查费 if ld_YBYL68 = 0 then --产前检查费为0, 则从基金列表中重新获取 ld_YBYL68 := nvl(SF_ZY_GETYBDATA_NUM(to_number(ls_YBJKID),ad_ZYID00,'jjkxlist','510100','aae187'),0); end if; select trim(c.YBBHSB),trim(b.YBKH00),trim(d.YBID00),b.BRID00,c.SFXNH0,trim(b.FFBZBM),trim(DBZBM0),b.SFJZFP into ls_YBBHSB,ls_YBKH00,ls_YBID00,ls_BRID00,ls_SFXNH0,ls_FFBZBM,ls_DBZBM0, ls_SFJZFP from ZY_BRXXB0 b,IC_YBBRLB c,BM_BRXXB0 d where b.ZYID00=ad_ZYID00 and c.FBBH00=b.FBBH00 and c.YBLB00=b.YBLB00 and b.BRID00=d.BRID00; select decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',31,')),1,ad_YBYL01,0)+ --民政救助 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',32,')),1,ad_YBYL02,0)+ --计生救助 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',33,')),1,ad_YBYL03,0)+ --残联救助 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',34,')),1,ad_YBYL04,0)+ --单病种限额 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',35,')),1,ad_YBYL05,0)+ --医院支付(医保没返回) decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',36,')),1,ad_YBYL06,0)+ --低保基金支付金额 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',37,')),1,ad_YBYL07,0)+ --一般诊疗费补偿金额 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',38,')),1,ad_YBYL08,0)+ --一般诊疗费费个人支付金额 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',39,')),1,ad_YBYL09,0)+ --特殊门诊起付线累计 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',40,')),1,ad_YBYL10,0)+ --特殊门诊基金累计 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',41,')),1,ad_YBYL11,0)+ --健康账户支付 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',42,')),1,ad_YBYL12,0)+ --健康账户余额 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',43,')),1,ad_YBYL13,0)+ --共济账户支付 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',10,')),1,ad_SBGRZH,0), --商保个人账户支付 --decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',11,')),1,ad_SBTCJJ,0), --商保统筹基金支付 --decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',13,')),1,ad_SYBXZF,0)+ --商业保险支付 --decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',16,')),1,ad_GWYBZ0,0), --以上合计为:医保其他支付 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',46,')),1,ad_GWYBZ0,0), --独立的公务员补助金额 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',48,')),1,ad_YBYL18,0), --独立的民政补助金额 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',49,')),1,ad_SYBXZF,0), --独立的商保支付金额 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',47,')),1,ad_SBTCJJ,0), --独立的商保统筹基金支付金额 decode(sign(Instrb(','||trim(ls_YBBHSB)||',',',54,')),1,ad_YBYL24,0) --大额医疗费用报销金额(原独立于统筹基金支付,现要加到TCJJZF中去) into od_YBQTZF,ls_GWBZJE,ls_MZBZJE,ls_DLSBJE,ls_DLDBJJ,ls_YBYL24 from dual; --新医保接口统筹已包括所有金额, 独立的公务员补助金额、民政补助金额、独立的商保支付金额、独立的商保统筹基金支付金额、大额医疗费用报销金额置0 if nvl(ls_YBJKID,0) <> 0 then ls_GWBZJE := 0; ls_MZBZJE := 0; ls_DLSBJE := 0; ls_DLDBJJ := 0; ls_YBYL24 := 0; end if; ls_TCJJZF := ad_TCJJZF; ls_TCJJZF := ls_TCJJZF + ls_YBYL24; --如果大额医疗费用报销金额有值,则加回到统筹基金支付金额中 od_YBZFJE := ad_HJJE00 - ls_TCJJZF - ad_GRZHZF - od_YBQTZF - ls_MZBZJE - ls_DLSBJE - ls_DLDBJJ - ls_GWBZJE + nvl(ld_YBYL68,0); od_YBZHZF := ad_GRZHZF; od_YBJJZF := ls_TCJJZF; --ls_YBYL05 := ad_YBYL05; --原来医院支付是在外面计算后传入,现在改为这里直接计算 jlg --对接国家平台后, 统筹已包含产前检查费, 不再单独放入计算医院支付 begin ls_YBYL05 := nvl(ad_HJJE00,0) - nvl(ad_GRZFE0,0) - nvl(ls_TCJJZF,0) - nvl(ad_GRZHZF,0) - nvl(ls_GWBZJE,0) - nvl(ad_BJZFE0,0) - nvl(ls_MZBZJE,0) - nvl(ls_DLSBJE,0) - nvl(ls_DLDBJJ,0); --ls_YBYL05 := nvl(ad_HJJE00,0) - nvl(ad_GRZFE0,0) - nvl(ls_TCJJZF,0) - nvl(ad_GRZHZF,0) -- - nvl(ls_GWBZJE,0) - nvl(ad_BJZFE0,0) - nvl(ls_MZBZJE,0) - nvl(ls_DLSBJE,0) -- - nvl(ls_DLDBJJ,0) + nvl(ld_YBYL68,0); exception when others then ls_YBYL05:=0; end; select trim(nvl(max(value0),'N')) into ls_DBZJK0 from XT_XTCS00 where NAME00='ZY_YBDBZJSJK'; if ((ls_SFXNH0=1) and (ls_DBZJK0='Y')) or (ls_YBYL05<>0) then --政和农合或者有医院支付的病人 ad_YBYL05-->ls_YBYL05 od_YBZFJE:=ad_GRZFE0; end if; --如果是付费单病种病人,C-DRG结算流程,政和单病种病人 if (ls_FFBZBM is not null) or (as_YBSM10 is not null) or (ls_DBZJK0='Y' and ls_DBZBM0 is not null) then --如果个人自付金额大于病种收费金额(医保返回报销金额),则差额部分转为医院支付 (这里不考虑病种超标或除外费用) if ad_GRZFE0 > ad_HJJE00 then --ls_YBYL05 := ad_GRZFE0 - ad_HJJE00; --医院支付金额 --od_YBZFJE := ad_HJJE00; --个人自付额减为报销金额 ls_YBYL05 := ad_HJJE00 - ad_GRZFE0; --医院支付金额 od_YBZFJE := ad_GRZFE0; --个人自付金额 end if; end if; ls_TSBZBH := as_TSBZBH; ls_YBSM09 := as_YBSM09; if nvl(ls_YBJKID,0) <> 0 then --新医保接口CDRG结算处理 if instrb(',01,02,03,',','||as_YBSM10||',') > 0 then --CDRG结算, as_TSBZBH是CDRG分组信息 ls_TSBZBH := ''; ls_YBSM09 := as_TSBZBH; end if; end if; --计算产前检查退款差额 select least(ad_GRZFE0 - ld_YBYL68,0) into ls_CJBTCE from dual; insert into ZY_YBFS00(BRID00,ZYID00,QSDJH0,ZZDJH0,YBFSDH,FSRQ00,FSSJ00,GRZFE0,GRZHZF,TCJJZF, SBGRZH,SBTCJJ,HJJE00,DBGRZF,GSJJZF,GSZFJE,FGSFY0,BJJJZF,GWYBZ0,SYBXZF, FYBFY0,YLZFJE,CFDXJE,SBZFE0,BJZFE0,GRZHYE,YPWQZF,YPBFZF,XMWQZF,XMBFZF, ZFJE00,GRZHHJ,TCJJHJ,QTZFHJ,CXBZ00,YBID00,YBKH00,BJJBIE,YBJZRQ,YBJZSJ, TSBZBH,CFXMS0,YEXM00,CZY000,MZBZJE,DLSBJE,GWBZJE,YBJKID,MXLSH0,ID0000, YBYL01,YBYL02,YBYL03,YBYL04,YBYL05,YBYL06,YBYL07,YBYL08,YBYL09,YBYL10, YBYL11,YBYL12,YBYL13,YBYL14,YBYL15,YBYL16,YBYL17,YBYL18,YBYL19,YBYL20, YBYL21,YBYL22,YBYL23,YBYL24,YBYL25,YBYL26,YBYL27,YBYL28,YBYL29,YBYL30, YBYL31,YBYL32,YBYL39,YBYL40,YBYL41,YBYL42,YBYL46,YBYL47,YBYL48,YBYL49, YBYL50,YBYL51,YBYL52,YBYL53,YBYL54,YBYL55,YBYL56,YBYL57,YBYL58,YBYL59, YBYL60,YBYL61,YBYL62,YBYL63,YBYL64,YBYL65,YBYL66,YBYL67,YBYL68,YBYL69, YBSM01,YBSM02,YBSM03,YBSM04,YBSM05,YBSM06,YBSM07,YBSM08,YBSM09,YBSM10, YBSM11,YBSM12,YBSM13,YBSM14,YBSM15,YBSM16,YBSM17,YBSM18,YBSM19,YBSM20, YBSM21,YBSM22,YBSM23,YBSM24,YBSM25,YBSM26,YBSM27,YBSM28,YBSM29, DLDBJJ,CJBTCE ) values(ls_BRID00,ad_ZYID00,ad_QSDJH0,ad_ZZDJH0,as_YBFSDH,ls_CZRQ00,ls_CZSJ00,od_YBZFJE,ad_GRZHZF,ls_TCJJZF, ad_SBGRZH,ad_SBTCJJ,ad_HJJE00,ad_DBGRZF,ad_GSJJZF,ad_GSZFJE,ad_FGSFY0,ad_BJJJZF,ad_GWYBZ0,ad_SYBXZF, ad_FYBFY0,ad_YLZFJE,ad_CFDXJE,ad_SBZFE0,ad_BJZFE0,ad_GRZHYE,ad_YPWQZF,ad_YPBFZF,ad_XMWQZF,ad_XMBFZF, od_YBZFJE,od_YBZHZF,od_YBJJZF,od_YBQTZF,'0',ls_YBID00,ls_YBKH00,as_BJJBIE,as_YBJZRQ,as_YBJZSJ, ls_TSBZBH,ad_CFXMS0,ls_YEXM00,ad_czy000,ls_MZBZJE,ls_DLSBJE,ls_GWBZJE,ls_YBJKID,as_MXLSH0,ad_ID0000, ad_YBYL01,ad_YBYL02,ad_YBYL03,ad_YBYL04,ls_YBYL05,ad_YBYL06,ad_YBYL07,ad_YBYL08,ad_YBYL09,ad_YBYL10, ad_YBYL11,ad_YBYL12,ad_YBYL13,ad_YBYL14,ad_YBYL15,ad_YBYL16,ad_YBYL17,ad_YBYL18,ad_YBYL19,ad_YBYL20, ad_YBYL21,ad_YBYL22,ad_YBYL23,ad_YBYL24,ad_YBYL25,ad_YBYL26,ad_YBYL27,ad_YBYL28,ad_YBYL29,ad_YBYL30, ad_YBYL31,ad_YBYL32,ad_YBYL39,ad_YBYL40,ad_YBYL41,ad_YBYL42,ad_YBYL46,ad_YBYL47,ad_YBYL48,ad_YBYL49, ad_YBYL50,ad_YBYL51,ad_YBYL52,ad_YBYL53,ad_YBYL54,ad_YBYL55,ad_YBYL56,ad_YBYL57,ad_YBYL58,ad_YBYL59, ad_YBYL60,ad_YBYL61,ad_YBYL62,ad_YBYL63,ad_YBYL64,ad_YBYL65,ad_YBYL66,ad_YBYL67,ld_YBYL68,ad_YBYL69, as_YBSM01,as_YBSM02,as_YBSM03,as_YBSM04,as_YBSM05,as_YBSM06,as_YBSM07,as_YBSM08,ls_YBSM09,as_YBSM10, as_YBSM11,ls_SFJZFP,as_YBSM13,as_YBSM14,as_YBSM15,as_YBSM16,as_YBSM17,as_YBSM18,as_YBSM19,as_YBSM20, as_YBSM21,as_YBSM22,as_YBSM23,as_YBSM24,as_YBSM25,as_YBSM26,as_YBSM27,as_YBSM28,as_YBSM29, ls_DLDBJJ,ls_CJBTCE ); if ad_YEXM00='全部' then update ZY_FYMX00 a set YBFSDH=as_YBFSDH where ZYID00=ad_ZYID00 and ( ((ad_JSXZID = 0) and ((DJH000>=ad_QSDJH0 and DJH000<=ad_ZZDJH0) or (a.MXID00 in (select MXID00 from ZY_JSBCMX where ZYID00 = a.ZYID00 and ID0000 = ad_ID0000)))) or ((ad_JSXZID > 0) and a.MXID00 in (select MXID00 from ZY_JSXZMX where ZYID00 = a.ZYID00 and JSXZID = ad_JSXZID)) ) and YBFSDH='0'; elsif ad_YEXM00='母亲' then update ZY_FYMX00 a set YBFSDH=as_YBFSDH where ZYID00=ad_ZYID00 --and ((DJH000>=ad_QSDJH0 and DJH000<=ad_ZZDJH0) or (a.MXID00 in (select MXID00 from ZY_JSBCMX where ZYID00 = a.ZYID00 and ID0000 = ad_ID0000))) and ( ((ad_JSXZID = 0) and ((DJH000>=ad_QSDJH0 and DJH000<=ad_ZZDJH0) or (a.MXID00 in (select MXID00 from ZY_JSBCMX where ZYID00 = a.ZYID00 and ID0000 = ad_ID0000)))) or ((ad_JSXZID > 0) and a.MXID00 in (select MXID00 from ZY_JSXZMX where ZYID00 = a.ZYID00 and JSXZID = ad_JSXZID)) ) and YBFSDH='0' and YEXM00 is null; else update ZY_FYMX00 a set YBFSDH=as_YBFSDH where ZYID00=ad_ZYID00 --and ((DJH000>=ad_QSDJH0 and DJH000<=ad_ZZDJH0) or (a.MXID00 in (select MXID00 from ZY_JSBCMX where ZYID00 = a.ZYID00 and ID0000 = ad_ID0000))) and ( ((ad_JSXZID = 0) and ((DJH000>=ad_QSDJH0 and DJH000<=ad_ZZDJH0) or (a.MXID00 in (select MXID00 from ZY_JSBCMX where ZYID00 = a.ZYID00 and ID0000 = ad_ID0000)))) or ((ad_JSXZID > 0) and a.MXID00 in (select MXID00 from ZY_JSXZMX where ZYID00 = a.ZYID00 and JSXZID = ad_JSXZID)) ) and YBFSDH='0' and YEXM00=ad_YEXM00; end if; --下面一行注释吧,上面都已经处理了 --update ZY_FYMX00 set YBFSDH=as_YBFSDH where DJH000>=ad_QSDJH0 and DJH000<=ad_ZZDJH0 and ZYID00=ad_ZYID00 and YBFSDH='0'; update ZY_BRZHXX a set YBZFJE = (select nvl(sum(b.ZFJE00),0) from ZY_YBFS00 b where b.ZYID00=a.ZYID00 and b.CXBZ00='0') where a.ZYID00=ad_ZYID00; commit; --dbgrzf 大病个人支付额,铁保和泉州医保特有,dbgrzf需要病人自付,是指超过基本医疗保险最高封顶线后的费用,目前是让病人先自付后再到医保中心报销,因此这一部份金额也是要医院跟病人收现金的,也就是说,医院与病人清算的范围是grzfe0与dbgrzf,其他的(zhzfe0,jjzfe0)都是与医保中心进行结算。 --Dbjjzf 大病基金支付额,铁保和泉州医保特有,包含在Jjzfe0基金支付额 --Dbzhzf 大病账户支付额,铁保和泉州医保特有,包含在Jjzfe0基金支付额 --sybxzf 商业保险支付, 厦门医保接口增加,不包含在Jjzfe0内,由医保机构支付 --Gwybz0 公务员补助,泉州地区不包含在Jjzfe0内,由医保机构再支付,其他地区包含在Jjzfe0内 --bjjjzf 保健基金支付额(厦门医保接口增加,后面取消了 基金支付额(jjzfe0)不包含保健基金支付额(bjjjzf) 病人应支付给医院的费用为医保个人支付额(grzfe0)减去保健基金支付额(bjjjzf)) --sbzfe0:商保基金支付,省属三家市属九家医疗机构医院接口增加,包含在Jjzfe0内, --bjzfe0:保健基金支付,省属三家市属九家医疗机构医院接口增加,包含在Jjzfe0内。 --bcyljz 民政救助总额,新农合增加,包含在了基金支付额Jjzfe0内 --jsjzze 计生救助总额,新农合增加,包含在了基金支付额Jjzfe0内 --cljzze 残联救助总额,新农合增加,包含在了基金支付额Jjzfe0内 --Jkzhzf 健康账户支付额 包含于zhzfe0 厦门医保增加 --非计算字段:Ylzfje乙类药品自付金额,Cfdxje超封顶线金额,Fybfy0非医保费用,Gsjjzf工伤基金支付*,Gszfje工伤个人自付(个人按比例自付部分),Fgsfy0非工伤费用, --Bcbxf0 = zhzfe0 + jjzfe0 + grzfe0 + sybxzf;厦门(接口无商保信息) --bcbxf0 = zhzfe0 + grzfe0 + jjzfe0 +gwybz0 +dbzhzf + dbgrzf + dbjjzf 泉州 --bcbxf0 = zhzfe0 + grzfe0 + jjzfe0 +dbzhzf + dbgrzf + dbjjzf 铁保 --YBYL05 = grzfe0 - hjje00 (在付费单病种下,如果GRZFE0>HJJE00,则多余部分移除到YBYL05字段) exception when Ecustom then rollback; when others then as_YHMSG0:='出错原因未知!请记录此信息并和系统管理员联系!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_ZY_YBFSJG',1,150); rollback; end; / create or replace function SF_ZY_GETYBDATA_NUM ( PYBJKID number, --医保接口ID PZYID00 number, --住院id PJKJDBM varchar2, --接口节点编码 PZFLX00 varchar2, --支付类型, 见ZY_YBDATA.FUND_PAY_TYPE PQZLWMC varchar2 --取值栏位名称 ) -- MODIFICATION HISTORY -- Person Date Comments -- linzetao 2021.11.04 created 住院获取医保接口医保数据(jjkxlist,kslwInfo) return number is LS_RESULT number(12,2); begin LS_RESULT := 0; begin if PZFLX00 is null then if lower(PQZLWMC) = 'aae187' then select AAE187 into LS_RESULT from ZY_YBDATA where YBJKID=PYBJKID and ZYID00=PZYID00 and JKJDBM=PJKJDBM; elsif lower(PQZLWMC) = 'ake173' then select AKE173 into LS_RESULT from ZY_YBDATA where YBJKID=PYBJKID and ZYID00=PZYID00 and JKJDBM=PJKJDBM; end if; else if lower(PQZLWMC) = 'aae187' then select AAE187 into LS_RESULT from ZY_YBDATA where YBJKID=PYBJKID and ZYID00=PZYID00 and JKJDBM=PJKJDBM and FUND_PAY_TYPE=PZFLX00; elsif lower(PQZLWMC) = 'ake173' then select AKE173 into LS_RESULT from ZY_YBDATA where YBJKID=PYBJKID and ZYID00=PZYID00 and JKJDBM=PJKJDBM and FUND_PAY_TYPE=PZFLX00; end if; end if; exception when others then LS_RESULT:=0; end; return trim(LS_RESULT); end;