CREATE OR REPLACE PROCEDURE SP_ZY_BRFB00_EDIT00 ( ad_BRID00 in number, --病人ID ad_ZYID00 in number, --病人住院ID as_FBMC00 in char, --病人费别名称 as_YBKH00 in char, --病人医保卡号 as_YBID00 in char, --病人医疗保险号(医保ID) as_YBLB00 in char, --病人所属医保中心名称 as_BRZTQK in char, --病人职退情况,两会及保健的医保病人类别取的是该值 as_BCKBCS in char, --病人住院次数 as_ZYLSH0 in char, --医保住院流水号 as_XM0000 in char, --病人姓名,医保返回的病人 ad_CZY000 in char, --操作员 as_CZYXM0 in char, --操作员姓名 as_rylb00 in char, --入院类别 as_tsbz00 in char default '1', as_GSDJH0 IN char, --工伤登记号 as_CSLX00 in char default '', --新农合传送类型 as_DWMC00 in char default '', --单位名称 as_XZQH00 in varchar2 default '', --行政区号 as_DBLB00 in varchar2 default '', --低保类别编号 as_DBLBMC in varchar2 default '', --城市低保对象名称 as_YHMSG0 out varchar, --存储过程提示的错误信息 as_SYSMSG out varchar, --系统提示的错误信息 as_COMMIT in varchar2 default 'Y' , --是否提交事物 默认为Y as_SFJZFP in varchar2 default '0' , --是否精准扶贫 1:是 0:否 as_RYDJRQ in varchar2 default '' , --入院登记日期 as_RYDJSJ in varchar2 default '' , --入院登记时间 as_YBSKID in varchar2 default '' , --新医保接口刷卡接口ID=ZY_YBJKRZ.YBJKID as_YBRYID in varchar2 default '' , --新医保接口入院登记接口ID=ZY_YBJKRZ.YBJKID as_SFYLJZ in varchar2 default 'N' --是否医疗救助对象 ) -- MODIFICATION HISTORY -- Person Date Comments -- jlg 2007.06.18 增加厦门工伤社保病人处理 ; -- jlg 2007.10.19 修改费别转换慢的问题 -- jlg 2007.10.30 修改费别转换慢的问题 -- XZW 2007.11.13 费别修改时插入表BM_BRCZRZ表中的记录要求详细些 -- zhr 2008.03.10 自费转农合,要修改相关记录表的自付比例 -- zhr 2008.08.30 城镇居民医保用参数XT_CZJMYB_BRZTQK来定义,如果是城镇居民医保,医保中心变为虚拟的城镇居民医保分中心。 -- xzw 2009.03.27 为了区别出城镇居民医保,根据医保返回的病人职退情况,从表BM_BRZTQK中查找YBBRLB... -- qks 2009.08.26 自费转医保,ZY_BRXXB0.YBKH00要写入 -- xzw 2009.09.09 费别转换:门诊卡状态不要改变成暂停使用卡; -- qks 2009.10.30 增加条件 and BRLBMC not like '%城镇%' and BRLBMC not like '%居民%' -- qks 2009.10.30 新增异地医保分中心表,根据BM_FZXDY0的信息找到大中心 -- qks 2009.12.24 as_FBMC00、as_YBLB00传入值可能是“非医保”或者“自费”病人,判断自费改用FBBH00=1来确定;医保转 自费,YF_ZYCFMX.YBLB00='7' -- JXQ 2010.01.21 长乐二院要求自费卡不要停用 -- qks 2010.03.30 增加传入参数as_CSLX00:新农合传送类型 -- qks 2010.06.08 转为医保修改项目的自费比例时,条件<9999999990改为<9999999901 ZYSF-20100607-004 -- zhangwz 2010.08.05 转费别为公费的时候把病人的担保以及欠费信息给取消掉. by ZYSF-20100728-001. -- qks 2010.09.02 公费转医保时,“所有已记帐费用新费别下的记帐金额”不再计算 ZYSF-20100902-001 -- lgh 2010.09.08 IC_YBBRLB 的YBLB00扩展为varchar(2);更改substr(A.yblb00,1,1) 为 A.yblb00 -- zhangyc 2010.09.15 增加传入参数 as_DWMC00 单位名称 -- zhangwz 2010.10.26 三明市妇幼保健院普通转医保时不暂停自费卡. by ZYSF-20101013-001 -- zhangyc 2010.03.11 霞浦医院 离休病人与自费病人费别转化,修改费用表自付金额,记账金额 -- zhangyc 2011.04.28 增加传入参数 as_XZQH00 -- zhangyc 2011.06.17 增加参数控制ZY_FBZHZFZFYNK 住院病人费别转化是否作废院内卡 Y:作废 N:不作废 by ZYSF-20110616-001 -- zhangyc 2011.09.27 费别转换处理:自费转公费 modify by ZYSF-20110622-003 -- zhangyc 2011.10.09 modify by ZYSF-20111008-001 霞浦离休病人转费别修改ZY_BRZHXX.XJYE00 -- zhangyc 2011.12.12 增加入参as_dblb00,as_dblbmc by ZYSF-20111212-001 -- qks 2012.02.02 病区退费申请退附加费用时,转费别时会报错 by ZYSF-20120105-005 -- liuj 2012.03.09 插入负费用记录时写入zy_fymx00.jmyy00='费别转换' for ZYSF-20120228-002 -- zhangyc 2012.07.28 费别修改时 as_cslx00 值有前台传入 by ZYSF-20120509-001 -- daihq 2013.03.14 费别修改,写回新的收费单据号时,备注信息增加'FBZH' by ZYSF-20130314-001 -- daihq 2013.05.14 修改yj_yw0000的修改语句,解决自费转绿色通道的费别转换报错问题 by ZYSF-20130513-003 -- liuj 2013.10.18 解决 as_DWMC00截取乱码问题 for ZYSF-20131014-001 -- zhangyc 2014.05.28 修改证件来源顺便把本过程事务移到前台控制 by ZYSF-20140527-001 -- zhangyc 2014.06.04 修正医保转公费ZY_BRXXB0.YBZXLB未改变 by ZYSF-20140528-001 -- zhangyc 2014.08.22 增加身份证校验函数SP_SF_CHECKSFZH=1 正常时才会更新基本信息的身份证号 by ZYSF-20140821-001 -- dsm 2016.06.28 自费转公费时负数记录ZY_FYMX00应该先插入,再插入ZY_BRFY00 for ZYSF-20160620-007 -- zhangyc 2017.11.08 修改入院登记转费别,微信或支付宝 金额错误 by ZYSF-20170914-001 -- zhangyc 2018.02.01 不是入院登记转费别。变量赋值1 ,否则出现绿色通道转自费错误 by ZYSF-20180201-003 -- dsm 2018.04.02 记帐转医保时ZFJE00强制写成HJJE00 for ZYSF-20180402-003 -- zhangy 2018.04.10 榕医通修改(28:平台支付) by ZYSF-20180411-002 -- zhangyc 2018.05.11 修正精准扶贫 1:是 0:否 by ZYSF-20180511-003 -- zhuyr 2018.08.18 增加入参入院登记日期/时间 by ZYSF-20180807-001 -- zhuyr 2019.02.21 处理市皮医院IC_YBBRLB表既存在'自费'又存在'非医保',导致该过程报错的问题 by ZYSF-20190102-001 -- dsm 2019.03.04 YS_ZYBRSFXZMZJZ=N时不修改IC_YHXX00.ZT0000 ZYSF-20190304-002 -- dsm 2019.09.27 医保自动欠费改成写YXQFJE for ZYSF-20190927-002 -- zhangyc 2019.01.06 增加入参as_YBSKID、as_YBRYID 并且写入BM_YBBRXX by ZYSF-20200106-003 -- linbin 2020.09.24 医保转自费时将ZY_BRZHXX表的YBZHYE、YBYJS0、YBYZF0、YZYBJE、YBTCJE、YBZFJE、YXQFJE清零 by ZYSF-20200904-005 -- qiulf 2020.10.10 增加入参as_SFYLJZ by ZYSF-20200930-003 -- zhangyc 2021.01.08 ZY_BRXXB0增加写入YBRYRQ、YBRYSJ by ZYSF-20210108-001 -- zhangyc 2021.01.12 新医保接口as_YBKH00通用登记未返回取资格信息查询的卡号 by ZYSF-20210112-002 -- linbin 2021.03.25 增加参数ZY_WSZHLSSZBRSFYXZFB控制未收治或临时收治病人是否允许转费别 by ZYSF-20210310-003 -- zhangyc 2022.02.28 国家医保接口 by ZYSF-20220228-010 -- zhangyc 2022.11.21 修正凭证未返回卡号aaz500为0情况 by ZYSF-20221109-001 --clq 2023.08.09 增加写入ZY_BRXXB0.BKE284 by ZYSF-20230621-001 as LS_FBBH00 BM_BRFBB0.FBBH00%type; --病人费别编号 LS_YBLBBH IC_YBBRLB.YBLB00%type; --医保分中心对应的编号 LS_YBZXLB IC_YBBRLB.YBZXLB%type; --医保中心对应的编号 LS_OLDFB0 BM_BRFBB0.FBMC00%type; LS_YBBRLB BM_YBBRLB.YBBRLB%type; LS_JFLBID ZY_BRZHXX.JFLBID%type; LS_CZYKSH ZY_BRFY00.CZYKS0%type; LS_ZYID00 ZY_BRXXB0.ZYID00%type; LS_ZYH000 ZY_BRFY00.ZYH000%type; LS_JZJE00 ZY_FYMX00.JZJE00%type; LS_JZJE01 ZY_FYMX00.JZJE00%type; LS_ZFJE00 ZY_FYMX00.ZFJE00%type; LS_ZFY000 ZY_FYMX00.HJJE00%type; LS_DJH000 ZY_BRFY00.DJH000%type; LS_ZXJ000 ZY_BRJFB0.JFJE00%type; LS_ZZZ000 ZY_BRJFB0.JFJE00%type; LS_TSJK00 BM_YBBRLB.TSJK00%type; LS_COUNT0 number(5); LS_CZRQ00 char(8); LS_CZSJ00 char(8); ZY_SFYGFSX varchar2(12); LS_OLDYBM IC_YBBRLB.YBMC00%type; LS_NEWYBM IC_YBBRLB.YBMC00%type; LS_FBBH01 BM_BRFBB0.FBBH00%type; --病人转换前的费别编号 ls_LXBRCS XT_XTCS00.VALUE0%type; ls_ZFYNK0 XT_XTCS00.VALUE0%type; --转费别是否作废院内卡 Y:作废 N:不作废 ls_yyid00 XT_YYXX00.YYID00%type; ls_FBZHMC varchar2(10); ls_LSGYJZ XT_XTCS00.VALUE0%type; --公医记帐病人费别 ls_FYDJH0 ZY_BRFY00.DJH000%type; ls_DJH001 ZY_BRFY00.DJH000%type; ls_HJJE01 ZY_BRFY00.HJJE00%type; --新合计金额 ls_HJJE00 ZY_BRFY00.HJJE00%type; --原合计金额 ls_BRXM00 BM_BRXXB0.BRXM00%type; ls_SFYKBZ ZY_BRFY00.SFYKBZ%type; ls_QDRQ00 ZY_BRFY00.QDRQ00%type; --清单日期 ls_BQFJF0 char(1); --是否属于病区附加费用 LS_BRZJBH BM_BRXXB0.BRZJBH%type; LS_BRZJBH_NEW BM_BRXXB0.BRZJBH%type; LS_ZJXXLY BM_BRXXB0.ZJXXLY%type; --证件信息来源 0:手工输入 1:医保返回 2:社保卡 3:身份证 ls_YSZID0 ZY_BRFY00.YSZID0%type; YS_ZYBRSFXZMZJZ varchar2(10); LS_TYJE00 ZY_BRDB00.DBJE00%type; LS_DBJE00 ZY_BRDB00.DBJE00%type; LS_YBRYRQ ZY_BRXXB0.YBRYRQ%type; --医保入院日期,格式:YYYYMMDD LS_YBRYSJ ZY_BRXXB0.YBRYSJ%type; --医保入院时间,格式:HH24:MI:SS LS_AKC192 varchar2(50); --入院日期和时间 YYYYMMDDHH24MISS LS_AKC192_RQ varchar2(8); --入院日期 YYYYMMDD LS_AKC192_SJ varchar2(8); --入院时间 HH24MISS LS_YBKH00 varchar2(30); --医保卡号 LS_YBID00 varchar2(30); --医保ID LS_CHECK0 varchar2(300); --Check函数返回值 LS_BRZTQK BM_BRXXB0.BRZTQK%type;--职退情况 LS_AAZ500 ZY_YBJKRZ.AAZ500%type;--社会保障卡号 LS_AAC002 ZY_YBJKRZ.AAC002%type;--证件号码(社会保障号) LS_AAC003 ZY_YBJKRZ.AAC003%type;--姓名 LS_YBTYPE ZY_YBJKRZ.YBTYPE%type;--医保接口类型[0或空:福建版本 1:国家基线版] LS_PSN_NO ZY_YBJKRZ.PSN_NO%type;--人员编号 LS_AAE140 ZY_YBJKRZ.AAE140%type;--险种类型编码 LS_AAE140_MC ZY_YBJKRZ.AAE140_MC%type;--险种类型名称 LS_BKC001_MC ZY_YBJKRZ.BKC001_MC%type;--人员待遇类别名称 LS_IdentitySeparate varchar2(10);--门诊住院身份是否分开 0:不分开 1:分开 LS_BKE284 varchar2(10); -- [住院基本信息]身份认证类型(01:读卡02:融合码06:医保码20:医疗证) cursor CUR_ZY_BRFY00_DJH000 IS select HJJE00,DJH000,YSZID0 from ZY_BRFY00 A where A.ZYID00 = ad_ZYID00 and A.JZDH00+0 = 0 and instrb(nvl(CXYY00,' '),'FBZH')<=0; --不再处理已转换过的费用 begin begin select nvl(max(trim(VALUE0)),'0') into ls_LSGYJZ from XT_XTCS00 where NAME00='ZY_GYJZBRFB'; exception when others then ls_LSGYJZ:='0'; end; begin select trim(VALUE0) into ZY_SFYGFSX from XT_XTCS00 where NAME00='ZY_SFYGFSX'; exception when others then ZY_SFYGFSX:='N'; end; begin select trim(VALUE0) into ls_LXBRCS from XT_XTCS00 where NAME00='ZY_KZMZFBBRCFFP'; exception when others then ls_LXBRCS:='-1'; end; ---住院病人费别转化是否作废院内卡 Y:作废 N:不作废 默认为Y by ZYSF-20110616-001 begin select trim(VALUE0) into ls_ZFYNK0 from XT_XTCS00 where NAME00='ZY_FBZHZFZFYNK'; exception when others then ls_ZFYNK0:='Y'; end; LS_AAZ500 :=null;--社会保障卡号 LS_AAC002 :=null;--证件号码(社会保障号) LS_AAC003 :=null;--姓名 LS_YBTYPE :=null;--医保接口类型[0或空:福建版本 1:国家基线版] LS_PSN_NO :=null;--人员编号 LS_AAE140 :=null;--险种类型编码 LS_AAE140_MC :=null;--险种类型名称 LS_BKC001_MC :=null;--人员待遇类别名称 ls_CZRQ00 :=to_char(sysdate,'YYYYMMDD'); ls_CZSJ00 :=to_char(sysdate,'HH24:MI:SS'); ls_YBLBBH :='0'; --若是非医保病人,默认为'0' ls_YBBRLB :='0'; LS_YBKH00 :=substrb(trim(as_YBKH00),1,30);--医保卡号 LS_YBID00 :=substrb(trim(as_YBID00),1,30);--医保ID LS_BRZTQK :=substrb(trim(as_BRZTQK),1,40);--职退情况 LS_IdentitySeparate :=substrb(SF_ZY_GETOPEN(ad_BRID00,ad_ZYID00,'ZY_IdentitySeparate',''),1,10);--门诊住院身份是否分开 0:不分开 1:分开 --zhangyc 2021.01.12 新医保接口如果通用登记未返回医保卡号根据资格信息查询as_YBSKID获取AAZ500,AAC999--begin-- if as_YBSKID is not null and as_YBSKID not in ('0') then begin select a.AAZ500,a.AAC002,a.AAC003,a.YBTYPE,a.PSN_NO,a.AAE140,a.AAE140_MC,a.BKC001_MC,A.BKE284 into LS_AAZ500,LS_AAC002,LS_AAC003,LS_YBTYPE,LS_PSN_NO,LS_AAE140,LS_AAE140_MC,LS_BKC001_MC, LS_bke284 from ZY_YBJKRZ a where a.YBJKID=as_YBSKID; exception when others then LS_YBKH00 :=substrb(trim(as_YBKH00),1,30); LS_YBID00 :=substrb(trim(as_YBID00),1,30); LS_AAZ500 :=null;--社会保障卡号 LS_AAC002 :=null;--证件号码(社会保障号) LS_AAC003 :=null;--姓名 LS_YBTYPE :=null;--医保接口类型[0或空:福建版本 1:国家基线版] LS_PSN_NO :=null;--人员编号 LS_AAE140 :=null;--险种类型编码 LS_AAE140_MC :=null;--险种类型名称 LS_BKC001_MC :=null;--人员待遇类别名称 LS_bke284 :=null;--bke284:福建身份认证类型(01:读卡02:融合码06:医保码20:医疗证) end; if (LS_YBKH00 is null or LS_YBKH00 in ('0')) and LS_AAZ500 is not null then LS_YBKH00:=substrb(trim(LS_AAZ500),1,30); end if; if (LS_YBID00 is null or LS_YBID00 in ('0')) and LS_AAC002 is not null then LS_YBID00:=substrb(trim(LS_AAC002),1,30); end if; LS_BRZTQK:=substrb(nvl(LS_BRZTQK,LS_BKC001_MC),1,40);--职退情况 end if; --zhangyc 2021.01.12 新医保接口如果通用登记未返回医保卡号根据资格信息查询as_YBSKID获取AAZ500,AAC999--end-- select B.FBMC00,A.yblb00,A.FBBH00,A.BRXM00,A.BRZJBH,A.ZJXXLY into ls_OLDFB0,ls_YBLBBH,ls_FBBH01,ls_BRXM00,LS_BRZJBH,LS_ZJXXLY from BM_BRXXB0 A,BM_BRFBB0 B where A.FBBH00 = B.FBBH00 and A.BRID00=ad_BRID00; --select FBBH00 into ls_FBBH00 from BM_BRFBB0 where FBMC00 = as_FBMC00 and rownum=1; select FBBH00 into ls_FBBH00 from BM_BRFBB0 where (FBMC00 = as_FBMC00 or as_FBMC00='自费' and FBMC00 ='非医保') and rownum=1; SELECT JFLBID into LS_JFLBID from ZY_BRZHXX where BRID00=ad_BRID00 AND SFDJ00='0'; select ZYH000,ZYID00 into LS_ZYH000,LS_ZYID00 from ZY_BRXXB0 where ZYID00=(select MAX(ZYID00) from ZY_BRXXB0 where BRID00=ad_BRID00); select A.BMBH00 into ls_CZYKSH from bm_bmbm00 A,BM_YGBM00 B where B.BMBH00=A.BMBH00 and b.ygbh00=to_number(ad_CZY000) and rownum=1; --判断未收治或临时收治病人是否允许转费别 select SF_ZY_CHECK_CYJSDATA('',ad_BRID00,LS_ZYID00,LS_ZYH000,'','3') into LS_CHECK0 from dual ; if substr(LS_CHECK0,1,1)='Y' then as_YHMSG0:='未收治或临时收治病人不允许转费别!'; as_SYSMSG:=SQLERRM||substr(LS_CHECK0,3); rollback; return; end if; --得到原来的医保中心名称 begin select A.YBMC00 into ls_oldybm from IC_YBBRLB A,BM_BRFBB0 B where A.FBBH00 = B.FBBH00 and A.yblb00 = ls_YBLBBH and a.fbbh00=ls_FBBH01; exception when no_data_found then as_YHMSG0:='医保病人所属医保中心名称有错,系统字典维护不完整!'; as_SYSMSG:=SQLERRM||'Not exists(select * from IC_YBBRLB A,BM_BRFBB0 B where A.FBBH00 = B.FBBH00 and A.yblb00 ='||ls_YBLBBH||')'; rollback; return; end; --判断医保中心对应的医保的编号 begin select YBLB00,YBZXLB,YBMC00 into ls_YBLBBH,ls_YBZXLB,ls_newybm from IC_YBBRLB where YBMC00 = as_YBLB00 and FBBH00 = ls_FBBH00; --select YBLB00,YBZXLB,YBMC00 into ls_YBLBBH,ls_YBZXLB,ls_newybm from IC_YBBRLB where (YBMC00 = as_YBLB00 or as_YBLB00='自费' and YBMC00 ='非医保') and FBBH00 = ls_FBBH00; exception when no_data_found then begin select YBLB00,YBZXLB,YBMC00 into ls_YBLBBH,ls_YBZXLB,ls_newybm from IC_YBBRLB where (YBMC00 = as_YBLB00 or as_YBLB00='非医保') and FBBH00 = ls_FBBH00; exception when no_data_found then begin select A.YBLB00,A.YBZXLB,A.YBMC00 into ls_YBLBBH,ls_YBZXLB,ls_newybm from IC_YBBRLB a,BM_FZXDY0 b where a.FBBH00=b.FBBH00 and a.YBLB00=b.YBLB00 and b.FZXMC0 = as_YBLB00 and b.FBBH00 = ls_FBBH00; exception when no_data_found then as_YHMSG0:='医保病人所属医保中心名称有错,系统字典维护不完整!'; as_SYSMSG:=SQLERRM||'Not exists(select * from ic_ybbrlb where ybmc00='||as_YBLB00||')'; rollback; return; end; end; end; if (LS_YBID00 is not null) and (LS_YBID00<>'0') then begin select SF_SF_BRZJBH(LS_YBID00) into LS_BRZJBH_NEW from dual; exception when no_data_found then LS_BRZJBH_NEW:='0'; end; ----身份证为15位或18位 并且身份证不一致时改掉 --增加身份证校验函数SP_SF_CHECKSFZH=1 正常时才会更新基本信息的身份证号 by ZYSF-20140821-001 if ((lengthb(trim(LS_BRZJBH_NEW))=15) or (lengthb(trim(LS_BRZJBH_NEW))=18)) and (trim(LS_BRZJBH)<>trim(LS_BRZJBH_NEW) or LS_BRZJBH is null) and (SP_SF_CHECKSFZH(LS_BRZJBH_NEW)=1) then LS_BRZJBH:=LS_BRZJBH_NEW; LS_ZJXXLY:='1'; end if; end if; if (ls_FBBH01=1) and (as_FBMC00 = '医保') then --自费转医保 if (LS_ZJXXLY is null) or (LS_ZJXXLY='0') then LS_ZJXXLY:='1'; --证件信息来源 0:手工输入 1:医保返回 2:社保卡 3:身份证 end if; end if; ---霞浦医院离休病人费别转化-- ls_FBZHMC:=''; if (trim(ls_LXBRCS)=ls_FBBH00) and (ls_FBBH01=1) then ls_FBZHMC:='离休转自费'; end if; if (trim(ls_LXBRCS)=ls_FBBH01) and (ls_FBBH00=1) then ls_FBZHMC:='自费转离休'; end if; --获取医保入院日期和医保入院时间--begin-- if as_YBRYID is not null and as_YBRYID not in ('0') then LS_AKC192:=substrb(SF_ZY_GETYBJKMX(as_YBRYID,'akc192','0'),1,50);--入院日期 YYYYMMDDHH24MISS(20210101110833) if LS_AKC192 is not null then LS_AKC192_RQ:=substrb(LS_AKC192,1,8);--入院日期 YYYYMMDD LS_AKC192_SJ:=substrb(LS_AKC192,9,6);--入院时间 HH24MISS LS_YBRYRQ:=LS_AKC192_RQ;--医保入院日期,格式:YYYYMMDD if LS_AKC192_SJ is null then LS_YBRYSJ:=to_char(sysdate,'HH24:MI:SS'); else LS_AKC192_SJ:=rpad(LS_AKC192_SJ,6,'0');--补足6位 LS_YBRYSJ:=substrb(LS_AKC192_SJ,1,2)||':'||substrb(LS_AKC192_SJ,3,2)||':'||substrb(LS_AKC192_SJ,5,2);--医保入院时间,格式:HH24:MI:SS end if; end if; end if; if LS_YBRYRQ is null and as_RYDJRQ is not null then LS_YBRYRQ:=substrb(as_RYDJRQ,1,8);--医保入院日期,格式:YYYYMMDD end if; if LS_YBRYSJ is null and as_RYDJSJ is not null then LS_YBRYSJ:=substrb(as_RYDJSJ,1,8);--医保入院时间,格式:HH24:MI:SS end if; --获取医保入院日期和医保入院时间--end-- --医/农保转自费 ,或自费转医/农保 if ((as_FBMC00 = '医保' or (ls_FBBH00=90)) and (ls_FBBH01=1)) or ((ls_OLDFB0='医保' or (ls_FBBH01=90)) and (ls_FBBH00=1)) or ((ls_FBZHMC='离休转自费') OR (ls_FBZHMC='自费转离休')) THEN --是否是医保病人信息登记,'Y':医保病人 --(as_FBMC00 = '自费')换为(ls_FBBH00=1) begin --得到医保病人类别 select YBBRLB into ls_YBBRLB from BM_BRZTQK where ZTQKMC = LS_BRZTQK and YBZXLB = ls_YBZXLB and FBBH00 = ls_FBBH00; exception when others then begin select YBBRLB into ls_YBBRLB from BM_YBBRLB where BRLBMC = LS_BRZTQK and YBZXLB=ls_YBZXLB and FBBH00 = ls_FBBH00; exception when no_data_found then select count(*) into ls_COUNT0 from BM_YBBRLB where YBZXLB=ls_YBZXLB and BRLBMC not like '%城镇%' and BRLBMC not like '%居民%'; if ls_COUNT0 > 1 then --说明还应该有病人类别的值 as_YHMSG0:='医保病人对应的病人类别名称{'||LS_BRZTQK||'}在医保类别字典表中不存在,请与系统管理员联系!'; as_SYSMSG:=SQLERRM||'Not exists(select * from bm_ybbrlb where ybzxlb='||ls_YBZXLB||' and BRLBMC='''||LS_BRZTQK||''')'; rollback; return; else ls_YBBRLB:='0'; end if; end; end; --LS_IdentitySeparate:门诊住院身份是否分开 0:不分开 1:分开(身份分开时,更新门诊身份,否则不更新) if LS_IdentitySeparate ='0' then update BM_BRXXB0 set FBBH00 = LS_FBBH00, --费别编号 YBKH00 = LS_YBKH00, --医保卡号 YBID00 = LS_YBID00, --医保ID YBLB00 = ls_YBLBBH, --医保类别编号 YBBRLB = ls_YBBRLB, --医保病人类别 BRZTQK = LS_BRZTQK, --病人职退情况 TYDWMC = trim(substr(as_DWMC00,1,length(as_DWMC00))), --单位名称 XZQH00 = as_XZQH00, --行政区号 BRZJBH = LS_BRZJBH, ZJXXLY = LS_ZJXXLY, ----证件信息来源 0:手工输入 1:医保返回 2:社保卡 3:身份证 SFJZFP = nvl(as_SFJZFP,'0'), --精准扶贫 1:是 0:否 SFYLJZ = nvl(as_SFYLJZ,'N'), --是否医疗救助对象 PSN_NO = substrb(nvl(LS_PSN_NO,PSN_NO),1,30), --[国家医保]人员编号 AAE140 = substrb(nvl(LS_AAE140,AAE140),1,10), --险种类型编码 AAE140_MC=substrb(nvl(LS_AAE140_MC,AAE140_MC),1,50), --险种类型名称 BKC001_MC=substrb(nvl(LS_BKC001_MC,BKC001_MC),1,50) --人员待遇类别名称 where BRID00 = ad_BRID00; end if; update ZY_BRXXB0 set FBBH00 = ls_FBBH00, --费别名称 YBZYCS = as_BCKBCS, --病人住院次数 YBZYH0 = as_ZYLSH0, --医保住院流水号 YBKH00 = LS_YBKH00, --医保卡号 RYLB00 = as_rylb00, YBLB00 = ls_YBLBBH, --医保类别编号 GSDJH0 = as_GSDJH0, YBBRLB = ls_YBBRLB, YBZXLB = ls_YBZXLB, CSLX00 = decode(as_CSLX00,'实时结算','S','传送明细','M',''), DBLB00 = as_DBLB00, DBLBMC = as_DBLBMC, ZJXXLY=LS_ZJXXLY, ----证件信息来源 0:手工输入 1:医保返回 2:社保卡 3:身份证 SFJZFP=nvl(as_SFJZFP,'0'), --精准扶贫 1:是 0:否 SFYLJZ=nvl(as_SFYLJZ,'N'), --是否医疗救助对象 RYDJRQ=as_RYDJRQ, RYDJSJ=as_RYDJSJ, YBRYRQ=LS_YBRYRQ,--医保入院日期,格式:YYYYMMDD YBRYSJ=LS_YBRYSJ,--医保入院时间,格式:HH24:MI:SS PSN_NO=substrb(nvl(LS_PSN_NO,PSN_NO),1,30), --[国家医保]人员编号 YBID00=substrb(nvl(LS_AAC002,YBID00),1,30), --医保证号=BM_BRXXB0.YBID00 AAE140=substrb(nvl(LS_AAE140,AAE140),1,10), --险种类型编码 AAE140_MC=substrb(nvl(LS_AAE140_MC,AAE140_MC),1,50), --险种类型名称 BKC001_MC=substrb(nvl(LS_BKC001_MC,BKC001_MC),1,50), --人员待遇类别名称 BKE284 = nvl(LS_BKE284, BKE284)--[住院基本信息]身份认证类型(01:读卡02:融合码06:医保码20:医疗证) where BRID00 = ad_BRID00 and ZYID00 = ad_ZYID00 and XM0000 = as_XM0000 and CYRQ00 is null; if SQL%NOTFOUND then as_YHMSG0:='病人费别修改错误,请稍侯再试!'; as_SYSMSG:=SQLERRM; rollback; return; end if; if (as_FBMC00 = '医保') or (ls_YBZXLB='@') or (ls_FBZHMC='离休转自费') then --自费转医保 begin --ZY_FYMX00 表的 zfbl00 update ZY_FYMX00 A SET ZFBL00= (select ZFBL00 from VW_BM_YBSFDY B where B.SFXMID=A.XMBH00 AND B.SFYP00='N' and B.FBBH00=ls_FBBH00 AND B.YBBRLB=ls_YBBRLB AND B.YBZXLB=ls_YBZXLB ) where MXID00 IN (select X.MXID00 from ZY_BRFY00 D,ZY_FYMX00 X where X.DJH000=D.DJH000 AND D.ZYID00=ad_ZYID00 AND D.JZDH00+0=0 and X.XMBH00 < 9999999901 ) ; --zy_cfmx00 表的 ZFBL00 update YF_ZYCFMX A SET (ZFBL00,YBLB00) = (select ZFBL00,B.YBLB00 from VW_BM_YBSFDY B where B.SFXMID=A.YPNM00 AND B.SFYP00='Y' and B.FBBH00=ls_FBBH00 AND B.YBBRLB=ls_YBBRLB AND B.YBZXLB=ls_YBZXLB) WHERE CFID00 IN (SELECT CFID00 from YF_ZYCF00 D,ZY_BRFY00 F,YF_ZYCFMX X where F.ZYID00=ad_ZYID00 AND F.JZDH00+0=0 and D.ZYID00=F.ZYID00 and D.DJH000=F.DJH000 and X.CFLSH0=D.CFLSH0); --YF_YZYPSQ update YF_YZYPSQ A SET ZFBL00= (select ZFBL00 from VW_BM_YBSFDY B where B.SFXMID=A.YPNM00 AND B.SFYP00='Y' and B.FBBH00=ls_FBBH00 AND B.YBBRLB=ls_YBBRLB AND B.YBZXLB=ls_YBZXLB) where YPQLPC in (select YPQLPC from YF_YZYPSQ D,ZY_BRFY00 F where F.ZYID00=ad_ZYID00 AND F.JZDH00+0=0 and D.ZYID00=F.ZYID00 and d.DJH000=F.DJH000) ; if LS_FBBH00=3 then update ZY_FYMX00 A SET ZFJE00=HJJE00,JZJE00=0,GFJE00=0 where MXID00 IN (select X.MXID00 from ZY_BRFY00 D,ZY_FYMX00 X where X.DJH000=D.DJH000 AND D.ZYID00=ad_ZYID00 AND D.JZDH00+0=0 and X.XMBH00 < 9999999901 ) ; update YF_ZYCFMX A SET ZFJE00=nvl(LSDJ00*YPZSL0 ,2) WHERE CFID00 IN (SELECT CFID00 from YF_ZYCF00 D,ZY_BRFY00 F,YF_ZYCFMX X where F.ZYID00=ad_ZYID00 AND F.JZDH00+0=0 and D.ZYID00=F.ZYID00 and D.DJH000=F.DJH000 and X.CFLSH0=D.CFLSH0); update YF_YZYPSQ A SET ZFJE00=nvl(LSDJ00*YPZSL0 ,2) where YPQLPC in (select YPQLPC from YF_YZYPSQ D,ZY_BRFY00 F where F.ZYID00=ad_ZYID00 AND F.JZDH00+0=0 and D.ZYID00=F.ZYID00 and d.DJH000=F.DJH000) ; update YJ_YWJJ00 a set ZFJE00=NVL(round(JJJE00*A.SFCS00*A.SL0000,2),0),GFJE00=0,JZJE00=0 where YJDJH0 in (select YJDJH0 from YJ_YW0000 where ZYGHID=ad_ZYID00); end if; end ; else begin --医保转 自费 --ZY_FYMX00 表的 zfbl00 update ZY_FYMX00 A SET ZFBL00=1 where djh000 in (SELECT djh000 FROM ZY_BRFY00 D WHERE D.ZYID00=ad_ZYID00 AND D.JZDH00+0=0); -- zy_cfmx00 表的 ZFBL00 update YF_ZYCFMX A SET ZFBL00= 1,YBLB00='7' where cflsh0 in (select cflsh0 from YF_ZYCF00 D,ZY_BRFY00 E where D.ZYID00=ad_ZYID00 AND D.DJH000=E.DJH000 AND E.JZDH00+0=0); --YF_YZYPSQ update YF_YZYPSQ A SET ZFBL00=1 where exists (select 1 from ZY_BRFY00 E where DJH000=A.DJH000 AND E.JZDH00+0=0 AND E.ZYID00=ad_ZYID00 AND E.ZYID00=A.ZYID00 ) and ZYID00=ad_ZYID00 ; --ZY_BRZHXX by ZYSF-20200904-005 update ZY_BRZHXX set YBZHYE=0, YBYJS0=0, YBYZF0=0, YZYBJE=0, YBTCJE=0, YBZFJE=0, YXQFJE=0 where ZYID00=ad_ZYID00 ; end; end if; select SF_SF_GETYYID00() YYID00 into ls_yyid00 from dual; ---作废院内卡---ls_ZFYNK0='Y' 作废 ='N'不作废 if trim(ls_yyid00) in ('223368','221094','222147','223672') then --2007.02.05莆田,肺科,长乐二院要求自费卡不要停用 增加 三明市妇幼保健院 ls_ZFYNK0:='N'; end if; select nvl(max(trim(VALUE0)),'Y') into YS_ZYBRSFXZMZJZ from XT_XTCS00 where NAME00='YS_ZYBRSFXZMZJZ'; if trim(ls_ZFYNK0)='Y' and YS_ZYBRSFXZMZJZ='Y' then update ic_yhxx00 set zt0000='2' where brid00=ad_BRID00; end if; -- update ic_yhxx00 set zt0000='2' where brid00=ad_BRID00 and -- not exists (select 1 from xt_yyxx00 where yyid00 in ('223368','221094','222147','223672'));--不把自费卡停用 --2007.02.05莆田,肺科,长乐二院要求自费卡不要停用 增加 三明市妇幼保健院 --处理南平医保日清单发送 update zy_brfy00 set YBFSDH=0 where ZYID00=ad_ZYID00; update zy_brzhxx set ybyjs0=0,ybyzf0=0,ybzfje=0 where brid00=ad_BRID00; if ((ls_FBZHMC='离休转自费') OR (ls_FBZHMC='自费转离休')) THEN --SP_ZY_FBEDIT_BRFY00(ad_BRID00,as_YHMSG0,as_SYSMSG); --修改ZY_BRZHXX.XJYE00 SP_ZY_FBEDIT_BRFY00(ad_BRID00,ad_ZYID00,as_XM0000,ad_CZY000,as_CZYXM0,LS_ZYH000,LS_FBBH00,LS_CZYKSH,as_YHMSG0,as_SYSMSG); end if; else if (as_FBMC00='医保') then --公费-->医保 begin begin --得到医保病人类别 select YBBRLB into ls_YBBRLB from BM_BRZTQK where ZTQKMC = LS_BRZTQK and YBZXLB = ls_YBZXLB and FBBH00 = ls_FBBH00; exception when others then begin select YBBRLB into ls_YBBRLB from BM_YBBRLB where BRLBMC = LS_BRZTQK and YBZXLB=ls_YBZXLB and FBBH00 = ls_FBBH00; exception when no_data_found then select count(*) into ls_COUNT0 from BM_YBBRLB where YBZXLB=ls_YBZXLB and BRLBMC not like '%城镇%' and BRLBMC not like '%居民%'; if ls_COUNT0 > 1 then --说明还应该有病人类别的值 as_YHMSG0:='医保病人对应的病人类别名称{'||LS_BRZTQK||'}在医保类别字典表中不存在,请与系统管理员联系!'; as_SYSMSG:=SQLERRM||'Not exists(select * from bm_ybbrlb where ybzxlb='||ls_YBZXLB||' and BRLBMC='''||LS_BRZTQK||''')'; rollback; return; else ls_YBBRLB:='0'; end if; end; end; --LS_IdentitySeparate:门诊住院身份是否分开 0:不分开 1:分开(身份分开时,更新门诊身份,否则不更新) if LS_IdentitySeparate ='0' then update BM_BRXXB0 set FBBH00 = LS_FBBH00, --费别编号 YBKH00 = LS_YBKH00, --医保卡号 YBID00 = LS_YBID00, --医保ID YBLB00 = ls_YBLBBH, --医保类别编号 YBBRLB = ls_YBBRLB, --医保病人类别 BRZTQK = LS_BRZTQK, --病人职退情况 TYDWMC = trim(substr(as_DWMC00,1,length(as_DWMC00))), --单位名称 XZQH00 = as_XZQH00, --行政区号 BRZJBH=LS_BRZJBH, ZJXXLY = LS_ZJXXLY, ----证件信息来源 0:手工输入 1:医保返回 2:社保卡 3:身份证 SFJZFP=nvl(as_SFJZFP,'0'), --精准扶贫 1:是 0:否 SFYLJZ=nvl(as_SFYLJZ,'N'), --是否医疗救助对象 PSN_NO=substrb(nvl(LS_PSN_NO,PSN_NO),1,30), --[国家医保]人员编号 AAE140=substrb(nvl(LS_AAE140,AAE140),1,10), --险种类型编码 AAE140_MC=substrb(nvl(LS_AAE140_MC,AAE140_MC),1,50), --险种类型名称 BKC001_MC=substrb(nvl(LS_BKC001_MC,BKC001_MC),1,50) --人员待遇类别名称 where BRID00 = ad_BRID00; end if; update ZY_BRXXB0 set FBBH00 = ls_FBBH00, --费别名称 YBZYCS = as_BCKBCS, --病人住院次数 YBZYH0 = as_ZYLSH0, --医保住院流水号 YBKH00 = LS_YBKH00, --医保卡号 RYLB00 = as_rylb00, YBLB00 = ls_YBLBBH, --医保类别编号 GSDJH0 = as_GSDJH0, YBBRLB = ls_YBBRLB, YBZXLB = ls_YBZXLB, CSLX00 = decode(as_CSLX00,'实时结算','S','传送明细','M',''), DBLB00 = as_DBLB00, DBLBMC = as_DBLBMC, ZJXXLY = LS_ZJXXLY, ----证件信息来源 0:手工输入 1:医保返回 2:社保卡 3:身份证 SFJZFP = nvl(as_SFJZFP,'0'), --精准扶贫 1:是 0:否 SFYLJZ = nvl(as_SFYLJZ,'N'), --是否医疗救助对象 RYDJRQ = as_RYDJRQ, RYDJSJ = as_RYDJSJ, YBRYRQ = LS_YBRYRQ,--医保入院日期,格式:YYYYMMDD YBRYSJ = LS_YBRYSJ,--医保入院时间,格式:HH24:MI:SS PSN_NO=substrb(nvl(LS_PSN_NO,PSN_NO),1,30) ,--[国家医保]人员编号 YBID00=substrb(nvl(LS_AAC002,YBID00),1,30) , --医保证号=BM_BRXXB0.YBID00 AAE140=substrb(nvl(LS_AAE140,AAE140),1,10), --险种类型编码 AAE140_MC=substrb(nvl(LS_AAE140_MC,AAE140_MC),1,50), --险种类型名称 BKC001_MC=substrb(nvl(LS_BKC001_MC,BKC001_MC),1,50), --人员待遇类别名称 BKE284 = nvl(LS_BKE284, BKE284)--[住院基本信息]身份认证类型(01:读卡02:融合码06:医保码20:医疗证) where BRID00 = ad_BRID00 and ZYID00 = ad_ZYID00 and XM0000 = as_XM0000 and CYRQ00 is null; end; else --医保转自费 begin --LS_IdentitySeparate:门诊住院身份是否分开 0:不分开 1:分开(身份分开时,更新门诊身份,否则不更新) if LS_IdentitySeparate ='0' then update BM_BRXXB0 set FBBH00 = ls_FBBH00, --费别编号 YBKH00 = '0', --医保卡号 YBID00 = '0', --医保ID YBLB00 = ls_YBLBBH, --医保类别编号 YBBRLB = '0', XZQH00 = as_XZQH00, --行政区号 BRZJBH = LS_BRZJBH, ZJXXLY = LS_ZJXXLY, ----证件信息来源 0:手工输入 1:医保返回 2:社保卡 3:身份证 SFJZFP = nvl(as_SFJZFP,'0'), --精准扶贫 1:是 0:否 SFYLJZ = nvl(as_SFYLJZ,'N'), --是否医疗救助对象 PSN_NO = substrb(nvl(LS_PSN_NO,PSN_NO),1,30), --[国家医保]人员编号 AAE140 = substrb(nvl(LS_AAE140,AAE140),1,10), --险种类型编码 AAE140_MC=substrb(nvl(LS_AAE140_MC,AAE140_MC),1,50), --险种类型名称 BKC001_MC=substrb(nvl(LS_BKC001_MC,BKC001_MC),1,50) --人员待遇类别名称 where BRID00 = ad_BRID00; end if; update ZY_BRXXB0 set FBBH00 = ls_FBBH00, --费别名称 YBZYCS = 0, --病人住院次数 YBZYH0 = '0', --医保住院流水号 YBLB00 = ls_YBLBBH, --医保类别编号 RYLB00 = as_rylb00, --入院类别 GSDJH0 = '', YBBRLB = '0', YBZXLB = ls_YBZXLB, CSLX00 = '', DBLB00 = '', DBLBMC = '', ZJXXLY = LS_ZJXXLY, ----证件信息来源 0:手工输入 1:医保返回 2:社保卡 3:身份证 SFJZFP=nvl(as_SFJZFP,'0'), --精准扶贫 1:是 0:否 SFYLJZ=nvl(as_SFYLJZ,'N'), --是否医疗救助对象 RYDJRQ=as_RYDJRQ, RYDJSJ=as_RYDJSJ, YBRYRQ=LS_YBRYRQ,--医保入院日期,格式:YYYYMMDD YBRYSJ=LS_YBRYSJ,--医保入院时间,格式:HH24:MI:SS PSN_NO=substrb(nvl(LS_PSN_NO,PSN_NO),1,30) ,--[国家医保]人员编号 YBID00=null ,--医保证号=BM_BRXXB0.YBID00 AAE140=substrb(nvl(LS_AAE140,AAE140),1,10), --险种类型编码 AAE140_MC=substrb(nvl(LS_AAE140_MC,AAE140_MC),1,50), --险种类型名称 BKC001_MC=substrb(nvl(LS_BKC001_MC,BKC001_MC),1,50), --人员待遇类别名称 BKE284 = nvl(LS_BKE284, BKE284)--[住院基本信息]身份认证类型(01:读卡02:融合码06:医保码20:医疗证) where BRID00 = ad_BRID00 and ZYID00 = ad_ZYID00 and CYRQ00 is null; if SQL%NOTFOUND then as_YHMSG0:='病人费别修改错误,请稍侯再试!'; as_SYSMSG:=SQLERRM; rollback; return; end if; end; end if; if trim(ZY_SFYGFSX)='N' then if (instrb(','||Trim(ls_LSGYJZ)||',',','||'3'||',')>0) or (instrb(','||Trim(ls_LSGYJZ)||',',','||'1'||',')>0) then as_YHMSG0:='参数设置错误(ZY_GYJZBRFB不能包含1或3)!请重新设置'; as_SYSMSG:='ZY_GYJZBRFB不能包含费别编号为1或3'; ROLLBACK; RETURN; end if; --if (instrb(','||Trim(ls_LSGYJZ)||',',','||to_char(ls_FBBH00)||',')>0) or (instrb(','||Trim(ls_LSGYJZ)||',',','||to_char(ls_FBBH01)||',')>0) then if (instrb(','||Trim(ls_LSGYJZ)||',',','||to_char(ls_FBBH00)||',')>0) and (ls_FBBH01=1) then ---自费转公费 --已记帐的处方和医技单的自付比例等信息改为新费别 SP_ZY_FBEDIT_JZFYGX(ad_ZYID00,as_YHMSG0,as_SYSMSG); --要先产生负费用记录,再产生新记录 OPEN CUR_ZY_BRFY00_DJH000; LOOP FETCH CUR_ZY_BRFY00_DJH000 INTO ls_HJJE00,ls_FYDJH0,ls_YSZID0; EXIT WHEN CUR_ZY_BRFY00_DJH000%NOTFOUND; begin --1.负费用记录 select SQ_ZY_BRJFB0_DJH000.nextval into ls_DJH000 from dual; --2016.06.28要先插入ZY_FYMX00再插入ZY_BRFY00 Insert into ZY_FYMX00(MXID00,DJH000,XMBH00,XMMC00,XMGG00,XMDW00,XMDJ00,XMSL00,HJJE00,ZFJE00,GFJE00,JZJE00, CZRQ00,CZSJ00,ZXRQ00,ZXSJ00,KDKS00,KDYS00,ZXKS00,ZXYS00,SFYDJ0,YSKS00,KDBQ00,ZFBL00,GJBM00,SFLB00,JMBZ00,JMJE00,JMSHR0,JMYY00,YSZID0) select SQ_ZY_FYMX00_MXID00.nextval,ls_DJH000,XMBH00,XMMC00,XMGG00,XMDW00,XMDJ00,-XMSL00,-HJJE00,-ZFJE00,-GFJE00,-JZJE00, ls_CZRQ00,ls_CZSJ00,ls_CZRQ00,ls_CZSJ00,KDKS00,KDYS00,ZXKS00,ZXYS00,SFYDJ0,YSKS00,KDBQ00,ZFBL00,GJBM00,SFLB00,JMBZ00,JMJE00,JMSHR0,'费别转换',YSZID0 from zy_fymx00 where djh000=ls_FYDJH0; Insert into ZY_BRFY00(DJH000,ZYH000,ZYID00,JFLBID,BRID00,XM0000,BRFB00,HJJE00,ZFJE00,JZJE00,GFJE00,BRYE00, CZRQ00,CZSJ00,CZY000,CZYXM0,CZYKS0,JZDH00,CXDJH0,SFYKBZ,CXYY00,QDRQ00,YSZID0) select ls_DJH000,ZYH000,ZYID00,JFLBID,BRID00,XM0000,BRFB00,-HJJE00,-ZFJE00,-JZJE00,-GFJE00,0, ls_CZRQ00,ls_CZSJ00,to_number(ad_CZY000),as_CZYXM0,ls_CZYKSH,0,ls_FYDJH0,SFYKBZ,'FBZH',QDRQ00,YSZID0 from zy_brfy00 where djh000=ls_FYDJH0; --转为自费时,触发器TR_ZY_ZY_BRFY00_INSERT会把JZJE00清0,需要重新Update --注释掉,通过修改触发器实现; --update ZY_BRFY00 set (HJJE00,ZFJE00,JZJE00,GFJE00)=(select -HJJE00,-ZFJE00,-JZJE00,-GFJE00 from ZY_BRFY00 where djh000=ls_FYDJH0) where djh000=ls_DJH000; --旧单据CXYY00增加'FBZH'标志 update ZY_BRFY00 set CXYY00=CXYY00||',FBZH' where djh000=ls_FYDJH0; select SFYKBZ,QDRQ00 into ls_SFYKBZ,ls_QDRQ00 from zy_brfy00 where djh000=ls_FYDJH0; --原SFYKBZ --2.添加新的费用明细 --2.1医技业务 select SQ_ZY_BRJFB0_DJH000.nextval into ls_DJH001 from dual; Insert into ZY_FYMX00(MXID00,DJH000,XMBH00,XMMC00,XMGG00,XMDW00,XMDJ00,XMSL00,HJJE00,ZFJE00,GFJE00,JZJE00, CZRQ00,CZSJ00,ZXRQ00,ZXSJ00,KDKS00,KDYS00,ZXKS00,ZXYS00,SFYDJ0,YSKS00,CXBZ00,KDBQ00,JMSHR0,JMYY00,ZFBL00,GJBM00,SFLB00,YSZID0) select SQ_ZY_FYMX00_MXID00.nextval,ls_DJH001,B.SFXMID,B.XMMC00,'次',DECODE(B.DW0000,NULL,'次',B.DW0000),JJJE00,A.SFCS00*A.SL0000, NVL(round(JJJE00*A.SFCS00*A.SL0000,2),0),NVL(ZFJE00,0),NVL(GFJE00,0),NVL(JZJE00,0), ls_CZRQ00,ls_CZSJ00,ls_CZRQ00,ls_CZSJ00, --ls_KDKSBH,ls_KDYS00,ls_YJKSBH,nvl(ls_ZXYS00,ls_KDYS00),'0',ls_YSSZKS,'-',ls_KDBQ00,as_SHRXM0,as_SHRYY0,A.ZFBL00,A.GJBM00,A.SFLB00 C.KDKSBH,C.KDYS00,C.YJKSBH,nvl(C.ZXR000,C.KDYS00),'0',C.YSSZKS,A.CXBZ00,C.KDBQ00,'','',A.ZFBL00,A.GJBM00,A.SFLB00,ls_YSZID0 from YJ_YWJJ00 A,BM_YYSFXM B,YJ_YW0000 C where A.SFXMID = B.SFXMID and A.YJDJH0 = C.YJDJH0 and C.ZYGHID = ad_ZYID00 and C.MZZYBZ = '1' and C.SFDJH0 = ls_FYDJH0 and C.ZLXMID <> 0; --add by 2012.02.02 if SQL%NOTFOUND then ls_BQFJF0 := 'Y'; else ls_BQFJF0 := 'N'; end if; --2.2零散处方 insert into ZY_FYMX00( MXID00,--门诊病人费用明细流水号SQ_ZY_FYMX00_MXID00 DJH000,--单据号 F.K=ZY_BRFY00.DJH000 XMBH00,--医疗收费编码或药品编码 XMMC00,--项目名称 XMGG00,--药品规格 XMDW00,--单位 XMDJ00,--单价 XMSL00,--数量 HJJE00,--合计金额 ZFJE00,--自费金额 QZFJE0, GFJE00,--公费金额 JZJE00,--记帐金额 JMJE00,--减免金额 JMSHR0,--减免审核人 JMYY00,--减免审核原因 JMBZ00,--减免标志 '0'正常 '1'减免 '2'优惠 CZRQ00,--开单日期 CZSJ00,--开单时间 ZXRQ00,--执行日期 ZXSJ00,--执行时间 SFYDJ0,--收费员登记 '0'其他人登记 '1'收费员登记 KDKS00,--开单科室编号 --就诊科室 YSKS00,--医生科室 --医生所在科室 KDYS00,--开单医生工号 KDBQ00,--开单病区 ZXKS00,--执行科室编号 --项目执行科室 ZXYS00,--执行医生工号 ZFBL00,--自付比例 SFLSCF, --零散处方标志 YSZID0 ) SELECT SQ_ZY_FYMX00_MXID00.nextval, --门诊病人费用明细流水号SQ_ZY_FYMX00_MXID00 ls_DJH001, --单据号 F.K=ZY_BRFY00.DJH000 SFDM00, --医疗收费编码或药品编码 SFXMMC, --项目名称 '', --药品规格 '', --单位 hjje00, --单价 1, --数量 hjje00, --合计金额 zfje00, --自费金额 QZFJE0, gfje00, --公费金额 hjje00-zfje00-gfje00, --记帐金额 0, --减免金额 null, --减免审核人 null, --减免审核原因 '0', --减免标志 '0'正常 '1'减免 '2'优惠 ls_CZRQ00, --开单日期 ls_CZSJ00, --开单时间 ls_CZRQ00, --执行日期 ls_CZSJ00, --执行时间 '0', --收费员登记 '0'其他人登记 '1'收费员登记 DQKS00, --开单科室编号 --就诊科室 SSKS00, --医生科室 --医生所在科室 YSGZH0, --开单医生 DQBQ00, --开单病区 yfbmbh, --执行科室编号 --项目执行科室 YSGZH0, --执行医生工号 ZFBL00, --自付比例 '1', ls_YSZID0 FROM (SELECT SUM(ROUND(LSDJ00*YPZSL0,2))hjje00, SUM(ZFJE00)ZFJE00, sum(QZFJE0)QZFJE0, SUM(GFJE00)GFJE00,ZFBL00,B.SFDM00,B.SFXMMC,C.DQKS00,C.DQBQ00,C.SSKS00,C.YSGZH0,C.yfbmbh FROM YF_ZYCFMX A,BM_YPLB00 B,YF_ZYCF00 C WHERE A.YPDLBH=B.LBBH00 AND A.CFLSH0=C.CFLSH0 AND C.ZYID00=ad_ZYID00 and C.DJH000=ls_FYDJH0 GROUP BY C.CFLSH0,C.DQKS00,C.DQBQ00,C.SSKS00,C.YSGZH0,C.yfbmbh,ZFBL00,B.SFDM00,B.SFXMMC ); --2.3医嘱处方 INSERT INTO ZY_FYMX00( MXID00, DJH000, XMBH00, XMMC00, XMDJ00,XMSL00, HJJE00, ZFJE00, QZFJE0, GFJE00, JZJE00, CZRQ00, CZSJ00, ZXRQ00, ZXSJ00, KDKS00, KDYS00, KDBQ00, ZXKS00, ZXYS00,YSKS00,SFLSCF,ZFBL00,YSZID0) --执行医生工号 SELECT SQ_ZY_FYMX00_MXID00.NEXTVAL, ls_DJH001, SFDM00, SFXMMC, XMDJ00,1, HJJE00, ZFJE00, QZFJE0, GFJE00, HJJE00-ZFJE00-GFJE00, ls_CZRQ00,ls_CZSJ00, ls_CZRQ00,ls_CZSJ00, DQKS00,YSGZH0,BQBMBH ,YFBMBH,YSGZH0,SSKS00,'2',ZFBL00,ls_YSZID0 FROM (SELECT SUM(ROUND(LSDJ00*YPZSL0,2)) XMDJ00, SUM(ROUND(LSDJ00*YPZSL0,2)) HJJE00, SUM(ZFJE00) ZFJE00, SUM(QZFJE0) QZFJE0, SUM(GFJE00) GFJE00, A.DQKS00,A.BQBMBH ,A.YFBMBH,A.YSGZH0,A.SSKS00,A.ZFBL00,B.SFDM00,B.SFXMMC FROM YF_YZYPSQ A,BM_YPLB00 B WHERE A.DJH000=ls_FYDJH0 AND A.YPDLBH=B.LBBH00 AND A.ZYID00=ad_ZYID00 GROUP BY A.DQKS00,A.BQBMBH ,A.YFBMBH,A.YSGZH0,A.SSKS00,A.ZFBL00,B.SFDM00,B.SFXMMC ); --2.4 收费处直接录入 /*Insert into ZY_FYMX00(MXID00,DJH000,XMBH00,XMMC00,XMGG00,XMDW00,XMDJ00,XMSL00,HJJE00, ZFJE00,GFJE00,JZJE00, CZRQ00,CZSJ00,ZXRQ00,ZXSJ00,KDKS00,KDYS00,ZXKS00,ZXYS00,SFYDJ0,YSKS00,KDBQ00,ZFBL00,GJBM00,SFLB00,JMBZ00,JMJE00,JMSHR0,JMYY00) select SQ_ZY_FYMX00_MXID00.nextval,ls_DJH001,a.XMBH00,a.XMMC00,a.XMGG00,a.XMDW00,a.XMDJ00,a.XMSL00,a.HJJE00, a.HJJE00-Round(NVL(B.JMJE00,0)*a.XMSL00,2)-Round(((A.XMDJ00-B.SCZFJE-B.JMJE00)*B.ZFBL00+B.SCZFJE)*a.XMSL00,2), Round(NVL(B.JMJE00,0)*a.XMSL00,2), Round(((A.XMDJ00-B.SCZFJE-B.JMJE00)*B.ZFBL00+B.SCZFJE)*a.XMSL00,2), ls_CZRQ00,ls_CZSJ00,ls_CZRQ00,ls_CZSJ00,a.KDKS00,a.KDYS00,a.ZXKS00,a.ZXYS00,'1',a.YSKS00,a.KDBQ00,b.ZFBL00,a.GJBM00,a.SFLB00,a.JMBZ00,a.JMJE00,a.JMSHR0,a.JMYY00 from zy_fymx00 a,VW_BM_YBSFDY b where a.djh000=ls_FYDJH0 and a.SFYDJ0 = '1' AND B.SFXMID=A.XMBH00 AND B.YBZXLB=ls_YBZXLB AND B.YBBRLB=ls_YBBRLB AND B.FBBH00=ls_FBBH00 AND B.SFYP00='N'; */ --2.4 收费处直接录入 以及 病区记帐项目等 if ls_BQFJF0 = 'Y' then Insert into ZY_FYMX00(MXID00,DJH000,XMBH00,XMMC00,XMGG00,XMDW00,XMDJ00,XMSL00,HJJE00, ZFJE00,GFJE00,JZJE00, CZRQ00,CZSJ00,ZXRQ00,ZXSJ00,KDKS00,KDYS00,ZXKS00,ZXYS00,SFYDJ0,YSKS00,KDBQ00,ZFBL00,GJBM00,SFLB00,JMBZ00,JMJE00,JMSHR0,JMYY00,YSZID0) select SQ_ZY_FYMX00_MXID00.nextval,ls_DJH001,a.XMBH00,a.XMMC00,a.XMGG00,a.XMDW00,a.XMDJ00,a.XMSL00,a.HJJE00, a.HJJE00-Round(NVL(B.JMJE00,0)*a.XMSL00,2)-Round(((A.XMDJ00-B.SCZFJE-B.JMJE00)*(1-B.ZFBL00))*a.XMSL00,2), Round(NVL(B.JMJE00,0)*a.XMSL00,2), Round(((A.XMDJ00-B.SCZFJE-B.JMJE00)*(1-B.ZFBL00))*a.XMSL00,2), ls_CZRQ00,ls_CZSJ00,ls_CZRQ00,ls_CZSJ00,a.KDKS00,a.KDYS00,a.ZXKS00,a.ZXYS00,'1',a.YSKS00,a.KDBQ00,b.ZFBL00,a.GJBM00,a.SFLB00,a.JMBZ00,a.JMJE00,a.JMSHR0,a.JMYY00, a.YSZID0 from zy_fymx00 a,VW_BM_YBSFDY b where a.djh000=ls_FYDJH0 AND B.SFXMID=A.XMBH00 AND B.YBZXLB=ls_YBZXLB AND B.YBBRLB=ls_YBBRLB AND B.FBBH00=ls_FBBH00 AND B.SFYP00='N' and a.xmbh00<9999999996; --AND not exists (select 1 from zy_fymx00 where djh000=ls_DJH001 and xmbh00=a.xmbh00);--这边有点bug!--modified by 2012.02.02 end if; --3.添加费用主表的信息 Insert into ZY_BRFY00(DJH000,YBDJH0,ZYH000,ZYID00,JFLBID,BRID00,XM0000,BRFB00,HJJE00,ZFJE00,JZJE00,GFJE00,BRYE00, CZRQ00,CZSJ00,CZY000,CZYXM0,CZYKS0,JZDH00,CXDJH0,SFYKBZ,QDRQ00,YSZID0) select ls_DJH001,'0',ls_ZYH000,ls_ZYID00,LS_JFLBID,ad_BRID00,ls_BRXM00,ls_FBBH00,NVL(sum(HJJE00),0),NVL(sum(ZFJE00),0),NVL(sum(JZJE00),0),NVL(sum(GFJE00),0),0, ls_CZRQ00,ls_CZSJ00,to_number(ad_CZY000),as_CZYXM0,ls_CZYKSH,0,ls_FYDJH0,ls_SFYKBZ,ls_QDRQ00,ls_YSZID0 from ZY_FYMX00 where DJH000 = ls_DJH001; --4.判断总金额是否一样 select HJJE00 into ls_HJJE01 from ZY_BRFY00 where djh000=ls_DJH001; if ls_HJJE01<>ls_HJJE00 then as_YHMSG0:='费别转换出错!'; as_SYSMSG:='ZY_BRFY00.DJH000='||TO_CHAR(ls_FYDJH0)||',原HJJE00='||TO_CHAR(ls_HJJE00)||',新HJJE00='||TO_CHAR(ls_HJJE01); ROLLBACK; RETURN; end if; --5.写回新的收费单据号 update yj_yw0000 set bz0000=substr(bz0000||','||'FBZH'||','||TO_CHAR(ls_FYDJH0),1,50),sfdjh0=ls_DJH001 where zyghid=ad_ZYID00 and sfdjh0=ls_FYDJH0 and mzzybz='1'; update yf_zycf00 set bz0000=bz0000||','||'FBZH'||','||TO_CHAR(ls_FYDJH0),DJH000=ls_DJH001 where zyid00=ad_ZYID00 and DJH000=ls_FYDJH0; update YF_YZYPSQ set bz0000=bz0000||','||'FBZH'||','||TO_CHAR(ls_FYDJH0),DJH000=ls_DJH001 where zyid00=ad_ZYID00 and DJH000=ls_FYDJH0; exception when others then as_YHMSG0:='ZY_BRFY00.DJH000='||TO_CHAR(ls_FYDJH0)||'转换报错'; as_SYSMSG:=SQLERRM; ROLLBACK; RETURN; end; END LOOP; CLOSE CUR_ZY_BRFY00_DJH000; else ls_jzje00:=0; --所有已记帐费用新费别下的记帐金额 if (as_FBMC00 <> '医保') and (ls_YBZXLB<>'@') then --add by qks 2010.09.02 select SF_ZY_GETYBJZ(ad_BRID00) into ls_jzje00 from dual; end if; --所有已记帐费用历史的记帐金额 select sum(JZJE00) into LS_JZJE01 from ZY_BRFY00 where BRID00=ad_BRID00 and JZDH00+0=0;--自付金额 --计算记帐金额差 LS_JZJE00:=LS_JZJE00-LS_JZJE01; --计算自付金额差,目前算法太复杂,实际就等于 -ls_jzje00 SELECT (SUM(HJJE00)-LS_JZJE00-LS_JZJE01)-SUM(ZFJE00)-SUM(gfje00),SUM(HJJE00) INTO LS_ZFJE00,LS_ZFY000 FROM ZY_BRFY00 WHERE BRID00=ad_BRID00 AND JZDH00+0=0;--自付金额 select YSZID0 into ls_YSZID0 from ZY_BRXXB0 where ZYID00=ad_ZYID00; select SQ_ZY_BRJFB0_DJH000.nextval into LS_DJH000 from dual; select count(*) into ls_COUNT0 from ZY_FYMX00 where DJH000=ls_DJH000; --费用明细表有记录时 在插入缴费表 by ZYSF-20170914-001 --2018.02.01 by zhangyc不是入院登记转费别。变量赋值1 ,否则出现绿色通道转自费错误 by ZYSF-20180201-003 if nvl(LS_ZFY000,0)<>0 or nvl(LS_ZFJE00,0)<>0 or nvl(LS_JZJE00,0)<>0 then LS_COUNT0:=1; end if; if ls_COUNT0>0 then Insert into ZY_BRFY00(DJH000,ZYH000,ZYID00,JFLBID,BRID00,XM0000,BRFB00,HJJE00,ZFJE00,JZJE00,GFJE00,BRYE00, CZRQ00,CZSJ00,CZY000,CZYXM0,CZYKS0,JZDH00,YSZID0) values (ls_DJH000,ls_ZYH000,ad_ZYID00,0,ad_BRID00,as_XM0000,ls_FBBH00,0,NVL(LS_ZFJE00,0),NVL(ls_JZJE00,0),0,0, ls_CZRQ00,ls_CZSJ00,to_number(ad_CZY000),as_CZYXM0,ls_CZYKSH,0,ls_YSZID0);--LS_JFLBID UPDATE ZY_BRFY00 SET JFLBID=LS_JFLBID WHERE ZYID00=ad_ZYID00 AND DJH000=ls_DJH000; --修改病人的帐户信息 SELECT SUM(ZFJE00) INTO LS_ZFJE00 FROM ZY_BRFY00 WHERE BRID00=ad_BRID00 AND JZDH00+0=0;--自付金额 end if; if SQL%NOTFOUND then as_YHMSG0:='病人费别修改错误,请稍侯再试!'; as_SYSMSG:=SQLERRM; ROLLBACK; RETURN; end if; select NVL(sum(JFJE00),0) into ls_ZXJ000 from ZY_BRJFB0 where BRID00 = ad_BRID00 and JZDH00+0=0 and JFLBID = LS_JFLBID and ZFFS00 in (1,8,24,25,28); --现金 --累计的转帐交费金额 select NVL(sum(JFJE00),0) into ls_ZZZ000 from ZY_BRJFB0 where BRID00 = ad_BRID00 and JZDH00+0=0 and JFLBID = LS_JFLBID and ZFFS00 = 2; --转帐 if NVL(LS_ZFJE00,0)>NVL(ls_ZZZ000,0) then ls_ZXJ000 := nvl(ls_ZXJ000,0)+NVL(ls_ZZZ000,0); ls_ZXJ000 := NVL(ls_ZXJ000,0)-NVL(LS_ZFJE00,0); ls_ZZZ000 := 0; else ls_ZXJ000 := nvl(ls_ZXJ000,0); ls_ZZZ000 := NVL(ls_ZZZ000,0)-NVL(LS_ZFJE00,0); end if; Update ZY_BRZHXX set XJYE00=NVL(LS_ZXJ000,0), zzye00=nvl(ls_ZZZ000,0), ZYE000=NVL(LS_ZXJ000,0)+NVL(ls_ZZZ000,0), YKZYE0=NVL(LS_ZXJ000,0)+NVL(ls_ZZZ000,0), YBTCJE = 0, YBZFJE = 0 where BRID00=ad_BRID00; if SQL%NOTFOUND then as_YHMSG0:='病人费别修改错误,请稍侯再试!'; as_SYSMSG:=SQLERRM; ROLLBACK; return; end if; end if; end if; end if; --费别转换权限控制 if as_tsbz00='2' then as_SYSMSG:='select tsjk00 from IC_YBBRLB where YBLB00='||ls_YBLBBH||' and FBBH00='||ls_FBBH00; select tsjk00 into ls_tsjk00 from IC_YBBRLB where YBLB00 = ls_YBLBBH and FBBH00=ls_FBBH00; if ls_tsjk00='1' then as_YHMSG0:='本操作员没有操作权限'; as_SYSMSG:=SQLERRM; rollback; return; end if; end if; --插入费别转换日志 Insert into BM_BRCZRZ(BRID00,CZRQ00,CZSJ00,CZY000,CZYXM0,OLDXX0,NEWXX0,BZ0000) values(ad_BRID00,to_char(sysdate,'YYYYMMDD'),to_char(sysdate,'HH24:MI:SS'),to_number(ad_CZY000),as_CZYXM0,ls_oldybm,ls_newybm,'住院费别修改'); --未记帐的处方和医技单的自付比例等信息改为新费别 SP_ZY_FBEDIT_FYGX00(ad_BRID00,as_YHMSG0,as_SYSMSG); --进行转成公费病人后担保以及欠费信息的取消 不调用取消担保的过程 SP_ZY_BRDB00_CANCEL 主要是怕有多个担保欠费信息要处理(过程里面有commit,万一某一个信息执行有误). if as_FBMC00='公费' then begin update ZY_BRDB00 set SFYX00 = 'N', DBJSRQ = to_char(sysdate,'YYYYMMDD'), --担保的结束日期或允许欠费的结束日期 DBJSSJ = to_char(sysdate,'HH24:MI:SS'), --担保的结束时间或允许欠费的结束时间 JSCZY0 = ad_CZY000, JSRXM0 = as_CZYXM0 where BRID00=ad_BRID00 and SFYX00='Y' and DBJSRQ>=to_char(sysdate,'YYYYMMDD') and (SSLB00='1' or SSLB00='2'); exception when others then as_YHMSG0:='转成公费病人后去除病人担保以及欠费信息失败,请重新操作!'; as_SYSMSG:=SQLERRM; rollback; return; end; end if; begin select SF_ZY_ZHYXQF(ad_ZYID00,ad_BRID00,'0') into LS_TYJE00 from dual; exception when others then LS_TYJE00:=0; end; --update zy_brzhxx set tyje00=-1*LS_TYJE00 where brid00=ad_BRID00 and sfdj00='0'; --select nvl(sum(DBJE00),0) into LS_DBJE00 from ZY_BRDB00 where BRID00=ad_BRID00 and SFYX00='Y' and DBYY00='医保自动欠费'; if LS_TYJE00>0 then update ZY_BRDB00 set SFYX00='N' where BRID00=ad_BRID00 and SFYX00='Y' and DBYY00='医保自动欠费'; Insert into ZY_BRDB00(BRDBID,YGBH00,JFLBID,BRID00,DBJE00,SFYX00,DBRQ00,DBSJ00,CZY000,CZYXM0,DBJSRQ,DBJSSJ,SSLB00,DBYY00) values(SQ_ZY_BRDB00_BRDBID.nextval,0,2,ad_BRID00,LS_TYJE00,'Y',to_char(sysdate,'YYYYMMDD'), to_char(sysdate,'HH24:MI:SS'),0,'系统','20991231','23:59:59','2','医保自动欠费'); UPDATE zy_brzhxx SET YXQFJE=NVL(YXQFJE,0)+LS_TYJE00 where brid00=ad_BRID00 and sfdj00='0' and not exists (select 1 from xt_yyxx00 where yyid00 in ('225088'));--WWY20230828泉州人民医院不执行该句; end if; -- by ZYSF-20161116-001 改为函数(SF_ZY_ZHYXQF)统一处理--end-- --医保转自费BM_YBBRXX.YXBZ00 改成无效(YXBZ00:1有效 0:无效) if trim(ls_OLDFB0)='医保' and trim(as_FBMC00)='自费' then update BM_YBBRXX set YXBZ00='0' where BRID00=ad_BRID00; end if; --新医保接口参保信息插入到表BM_YBBRXX if trim(as_YBSKID) is not null and trim(as_YBSKID) not in ('0') then update BM_YBBRXX set YXBZ00='0' where BRID00=ad_BRID00; insert into BM_YBBRXX(BRID00,JDBM00,JDMC00,AAB034_MC,AAE140_MC,BKC001_MC,BKC026_MC,AKA037,AKA037_MC,AKE053,AAZ149,AKA121, AKB020,AKB021,AAE019,BKE361,AAE030,AAE031,AAB301,AAB301_MC,BKE174,BKE174_MC,AAZ238, AMC020,AAE013,AAZ128,ALC020,BKA162,BKA162_MC,BKA543,BKA543_MC,BKEB35,ZDBM00,ZDMC00,VALUE0, aab034,aae140,bkc001,bkc026,insutype,insutype_mc,psn_type,psn_type_mc,psn_insu_stas,psn_insu_stas_mc,cvlserv_flag,cvlserv_flag_mc, insuplc_admdvs,insuplc_admdvs_mc,psn_idet_type,psn_idet_type_mc,psn_type_lv,psn_type_lv_mc) select ad_BRID00,JDBM00,JDMC00,AAB034_MC,AAE140_MC,BKC001_MC,BKC026_MC,AKA037,AKA037_MC,AKE053,AAZ149,AKA121, AKB020,AKB021,AAE019,BKE361,AAE030,AAE031,AAB301,AAB301_MC,BKE174,BKE174_MC,AAZ238, AMC020,AAE013,AAZ128,ALC020,BKA162,BKA162_MC,BKA543,BKA543_MC,BKEB35,ZDBM00,ZDMC00,VALUE0, aab034,aae140,bkc001,bkc026,insutype,insutype_mc,psn_type,psn_type_mc,psn_insu_stas,psn_insu_stas_mc,cvlserv_flag,cvlserv_flag_mc, insuplc_admdvs,insuplc_admdvs_mc,psn_idet_type,psn_idet_type_mc,psn_type_lv,psn_type_lv_mc from ZY_YBJKXX where YBJKID=as_YBSKID; end if; if as_COMMIT='Y' then COMMIT; end if; exception when no_data_found then as_YHMSG0:='病人的费别名称不存在,请重新输入病人费别名称!'; as_SYSMSG:=SQLERRM||as_SYSMSG; rollback; when others then as_YHMSG0:='出错原因不详,请记录此信息并和系统管理员联系!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_ZY_BRFB00_EDIT00('||to_char(ad_BRID00)||','||as_FBMC00||','||as_YBKH00||','||as_YBID00||','||as_YBLB00||',as_YHMSG0,as_SYSMSG)',1,150); rollback; end;