PROCEDURE SP_ZY_LJ_INIBRJDYZ( ad_ZYID00 in number, --病人住院ID ad_LJID00 in number, --路径ID ad_CJRBH0 in number, --创建人编号 as_YHMSG0 OUT VARCHAR, --存储过程提示的错误信息 as_SYSMSG OUT VARCHAR --系统提示的错误信息 ) as -- Person Date Comments -- dsm 2011.04.28 创建; -- dsm 2011.06.08 修改当天的预停止时间 -- dsm 2011.06.15 修改ksts00,SJTZRQ,SJTZSJ -- dsm 2011.06.20 增加BZKSRQ属性 -- dsm 2011.06.30 增加YSKSRQ,YSTZRQ属性 -- dsm 2011.07.07 增加and ZRZCID=b.ZRZCID 条件 -- dsm 2011.07.23 增加KSTZTS,JSTZTS,LBMC00 -- dsm 2011.08.19 增加BZ0000写入 -- dsm 2011.09.07 增加SFCY00 -- dsm 2011.09.15 增加CJKS00,BBMC00,KZKS00 -- dsm 2011.10.21 增加调用SP_ZS_LJ_INIBRKJMXSC -- dsm 2011.11.15 如果是子路径时写入LJ_YZMX00.ID0000 -- dsm 2012.01.10 增加CFLX00,MAXYZS for ZYYS-20120110-001 -- dsm 2012.06.01 加JHSJ00 for BQ-20120521-001 -- dsm 2013.01.23 加KSGLRQ for LCLJWH-20130123-001 -- dsm 2013.02.07 入径时的初始医嘱名称从基础字典取 for LCLJWH-20130108-001 ---------------------------------------------------------------------- ls_ryrrq0 LJ_JDZXQK.JHRQ00%TYPE; ls_ssrrq0 LJ_JDZXQK.JHRQ00%TYPE; ls_cyrrq0 LJ_JDZXQK.JHRQ00%TYPE; ls_dtrq00 LJ_JDZXQK.JHRQ00%TYPE; ls_zrzcid LJ_ZRZC00.ZRZCID%TYPE; ls_KSTS00 LJ_ZRZC00.KSTS00%TYPE; ls_cou number(2); ls_error varchar(14); E_Error exception; begin begin select ZRZCID into ls_zrzcid from LJ_ZRZC00 where ZYID00=ad_zyid00 and nvl(JSRQ00,' ')=' '; exception when others then ls_error:='ZRZCID取不到'; raise E_Error; end; begin select ZXKSRQ into ls_ryrrq0 from LJ_JDZXQK where ZRZCID=ls_zrzcid and JDLX00=1; --入院日 exception when others then ls_error:='入院日取不到'; raise E_Error; end; begin select ZXKSRQ into ls_cyrrq0 from LJ_JDZXQK where ZRZCID=ls_zrzcid and JDLX00=3; --出院日 exception when others then ls_error:='出院日取不到'; raise E_Error; end; begin select ZXKSRQ into ls_ssrrq0 from LJ_JDZXQK where ZRZCID=ls_zrzcid and JDLX00=2; -- 手术日 exception when others then ls_ssrrq0:=ls_cyrrq0; end; ls_dtrq00:=to_char(sysdate,'YYYYMMDD'); begin select KSTS00 into ls_KSTS00 from LJ_ZRZC00 where ZRZCID=ls_zrzcid ; exception when others then ls_KSTS00 :=1; end; insert into LJ_YZMX00(LJYZMX,ZRZCID,ZYID00,JHMXID,RCID00,LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, ZLXMJC,NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, KSRQ00,KSSJ00, TZRQ00, TZSJ00,PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZZT00,YZCLLB,YZXZLX,XH0000,YJJB00, TLBZXH,ZLFA00,CJRBH0,CJRQ00,CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00,CYCFBZ,BRZXJD,KSTS00, SJTZRQ, SJTZSJ, BZKSRQ, MRXSBZ,MRBZ00, KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000,SFCY00, CJKS00,BBMC00,BBID00,KZKS00,SYFW00,HLLB00,GLMXID,ID0000,CFLX00,MAXYZS,JHSJ00,KSGLRQ) select SQ_LJ_YZMX00_LJYZMX.nextval,ls_zrzcid,ad_ZYID00,JHMXID,a.RCID00,a.LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, --ZLXMJC, decode(YPNM00,0,nvl((select ZLXMJC from BM_ZLZD00 where ZLXMID=a.ZLXMID),ZLXMJC),(select YPMC00 from BM_YD0000 where YPNM00=a.YPNM00)) ZLXMJC, NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, to_char(to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'),'08:00:00', to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') TZRQ00, '23:59:59',PCID00,MCSL00,MCSL00,JLDW00, SL0000,DW0000,PCMC00,'10',YZCLLB,YZXZLX,a.XH0000,YJJB00, TLBZXH,ZLFA00,ad_CJRBH0,to_char(sysdate,'YYYYMMDD'),to_char(sysdate,'HH24:MI:SS'),TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00,CYCFBZ,b.BRZXJD,a.KSTS00, to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD'), '23:59:59', to_char(to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'), a.MRXSBZ,a.MRBZ00, a.KSTZTS,a.JSTZTS,a.LBMC00,b.ZLJBZ0,a.BZ0000,a.SFCY00, a.CJKS00,a.BBMC00,a.BBID00,a.KZKS00,a.SYFW00,a.HLLB00,a.GLMXID,decode(b.ZLJBZ0,'0',0,(select ID0000 from LJ_BRZLJ0 where ZRZCID=b.ZRZCID and LJID00=a.LJID00)), a.CFLX00,a.MAXYZS,a.JHSJ00,a.KSGLRQ from LJ_JDYZMX a,LJ_JDZXQK b where b.ZRZCID=ls_zrzcid and a.LJID00=ad_LJID00 and a.RCID00=b.RCID00 and a.YZZT00='0' and a.RCID00=b.RCID00 and b.RYTS00+a.KSTS00>ls_KSTS00 and not exists(select 1 from LJ_YZMX00 where ZYID00=ad_ZYID00 and ZRZCID=b.ZRZCID and JHMXID=a.JHMXID and ZRZCID=ls_zrzcid); update LJ_YZMX00 set YSKSRQ=BZKSRQ,YSTZRQ=TZRQ00 where ZRZCID=ls_zrzcid; SP_ZS_LJ_INIBRKJMXSC(ad_ZYID00,ad_LJID00,ad_CJRBH0,as_YHMSG0,as_SYSMSG); EXCEPTION when E_Error then as_YHMSG0:='出错原因不详,请记录此信息并和系统管理员联系!'; as_SYSMSG:=ls_error; WHEN OTHERS THEN as_YHMSG0:='出错原因不详,请记录此信息并和系统管理员联系!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_ZY_LJ_INIBRJDYZ('||to_char(ad_ZYID00)||','||to_char(ad_LJID00)|| ','||to_char(ad_CJRBH0)||',as_YHMSG0,as_SYSMSG)',1,150)||'ls_error'; ROLLBACK; end; PROCEDURE SP_ZY_LJ_MBYZTB_ALL( ad_ZRZCID in number, --入径ID as_KSRQ00 in char, --开始日 ad_CZY000 in number, --创建人编号, ad_SYFW00 in number default -1, --路径明细的范围 as_YHMSG0 OUT VARCHAR, --存储过程提示的错误信息 as_SYSMSG OUT VARCHAR --系统提示的错误信息 ) as -- Person Date Comments -- dsm 2011.07.21 创建; -- dsm 2011.07.23 增加KSTZTS,JSTZTS,LBMC00 -- dsm 2011.07.29 去掉删除,存在的直接修改,否则会丢失已经输入的变异原因 -- dsm 2011.08.09 创建人,创建日期不要同步 -- dsm 2011.08.19 同步BZ0000 -- dsm 2011.09.07 同步SFCY00 -- dsm 2011.09.15 增加CJKS00,BBMC00,KZKS00 -- dsm 2011.09.22 增加参数ad_SYFW00 -- dsm 2011.10.20 增加调用SP_ZS_LJ_YMBKJYZTB_All -- dsm 2011.11.16 写入LJ_YZMX00.ID0000的值 -- dsm 2012.01.10 增加CFLX00,MAXYZS for ZYYS-20120110-001 -- dsm 2012.02.20 已经存在同类被选择后的医嘱不同步for ZYYS-20120217-003 -- dsm 2012.06.01 加JHSJ00 for BQ-20120521-001 -- dsm 2013.01.23 加KSGLRQ for LCLJWH-20130123-001 -- dsm 2013.02.07 同步时的初始医嘱名称从基础字典取 for LCLJWH-20130108-001 -- dsm 2013.02.21 同步时只有ZLXMID>0的才从诊疗字典取(否则0的会被设置成一个统一的值) for ZYYS-20130218-001 -- --------- ------------- ------------------------------- ls_ryrrq0 LJ_JDZXQK.JHRQ00%TYPE; ls_ssrrq0 LJ_JDZXQK.JHRQ00%TYPE; ls_cyrrq0 LJ_JDZXQK.JHRQ00%TYPE; ls_cou number(2); err_Error exception; ls_error varchar(20); begin select count(*) into ls_cou from LJ_ZRZC00 a,LJ_MB0000 b where a.ZRZCID=ad_ZRZCID and a.LJID00=b.LJID00 and a.VER000=b.VER000; if ls_cou=0 then raise err_Error; end if; begin select ZXKSRQ into ls_ryrrq0 from LJ_JDZXQK where ZRZCID=ad_zrzcid and JDLX00=1; --入院日 exception when others then ls_error:='入院日取不到'; end; begin select ZXKSRQ into ls_cyrrq0 from LJ_JDZXQK where ZRZCID=ad_zrzcid and JDLX00=3; --出院日 exception when others then ls_error:='出院日取不到'; end; begin select ZXKSRQ into ls_ssrrq0 from LJ_JDZXQK where ZRZCID=ad_zrzcid and JDLX00=2; -- 手术日 exception when others then ls_ssrrq0:=ls_cyrrq0; end; -- ls_dtrq00:=to_char(sysdate,'YYYYMMDD'); -- delete LJ_YZMX00 where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and KSRQ00>=as_KSRQ00; update LJ_YZMX00 a set (ZLXMID,YPNM00,ZLXMJC,NO0000,YPGG00,YFID00, YFMC00,YYZF00,PSID00,PSMC00, PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZCLLB,YZXZLX, XH0000,YJJB00,TLBZXH,ZLFA00, CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00, CYCFBZ,BRZXJD,KSTS00,BZKSRQ, MRXSBZ,MRBZ00,KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000,SFCY00, CJKS00,BBMC00,BBID00,KZKS00,SYFW00,HLLB00,GLMXID,CFLX00,MAXYZS,JHSJ00,KSGLRQ) = (select ZLXMID,YPNM00,decode(b.YPNM00,0,nvl((select ZLXMJC from BM_ZLZD00 where ZLXMID=b.ZLXMID AND ZLXMID>0),ZLXMJC),(select YPMC00 from BM_YD0000 where YPNM00=b.YPNM00)) ,NO0000,YPGG00,YFID00, YFMC00,YYZF00,PSID00,PSMC00, PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZCLLB,YZXZLX, XH0000,YJJB00,TLBZXH,ZLFA00, CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00, CYCFBZ,BRZXJD,KSTS00,BZKSRQ, MRXSBZ,MRBZ00,KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000,SFCY00, CJKS00,BBMC00,BBID00,KZKS00,SYFW00,HLLB00,GLMXID ,CFLX00,MAXYZS,JHSJ00,nvl(KSGLRQ,0) from LJ_JDYZMX b where LJID00=a.LJID00 and JHMXID=a.JHMXID) where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and KSRQ00>=as_KSRQ00 and nvl(BYYY00,' ')=' ' and (SYFW00=ad_SYFW00 or ad_SYFW00=-1) and not exists(select 1 from LJ_YZMX00 where ZRZCID=a.ZRZCID and RCID00=a.RCID00 and TLBZXH=a.TLBZXH and nvl(WBMXID,0)>0) ; update LJ_YZMX00 a set (KSRQ00,TZRQ00,SJTZRQ)=(select to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'), to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') , to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') from LJ_JDZXQK b where RCID00=a.RCID00 and ZRZCID=a.ZRZCID) where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and KSRQ00>=as_KSRQ00 and nvl(BYYY00,' ')=' ' and (SYFW00=ad_SYFW00 or ad_SYFW00=-1); if ad_SYFW00=3 then delete LJ_YZMX00 a where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and nvl(BYYY00,' ')=' ' and exists(select 1 from LJ_JDYZMX where LJID00=a.LJID00 and JHMXID=a.JHMXID and YZZT00='1' ) and KSRQ00>=as_KSRQ00 and SYFW00=ad_SYFW00 and not exists(select 1 from LJ_HLZXJL where ZRZCID=a.ZRZCID and JHMXID=a.JHMXID and SFZX00<>'0'); else delete LJ_YZMX00 a where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and nvl(BYYY00,' ')=' ' and exists(select 1 from LJ_JDYZMX where LJID00=a.LJID00 and JHMXID=a.JHMXID and YZZT00='1' ) and KSRQ00>=as_KSRQ00 and SYFW00<>3; end if; insert into LJ_YZMX00(LJYZMX,ZRZCID,ZYID00,JHMXID,RCID00,LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, ZLXMJC,NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, KSRQ00,KSSJ00, TZRQ00, TZSJ00,PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZZT00,YZCLLB,YZXZLX,XH0000,YJJB00, TLBZXH,ZLFA00,CJRBH0,CJRQ00,CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00,CYCFBZ,BRZXJD,KSTS00, SJTZRQ, SJTZSJ, BZKSRQ, MRXSBZ,MRBZ00, KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000,SFCY00, CJKS00,BBID00,BBMC00,KZKS00,SYFW00,HLLB00,GLMXID,ID0000,CFLX00,MAXYZS,JHSJ00,KSGLRQ) select SQ_LJ_YZMX00_LJYZMX.nextval,ad_zrzcid,b.ZYID00,JHMXID,a.RCID00,a.LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, --ZLXMJC, decode(YPNM00,0,nvl((select ZLXMJC from BM_ZLZD00 where ZLXMID=a.ZLXMID AND ZLXMID>0),ZLXMJC),(select YPMC00 from BM_YD0000 where YPNM00=a.YPNM00)) ZLXMJC, NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'),'08:00:00', to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') TZRQ00, '23:59:59',PCID00,MCSL00,MCSL00,JLDW00, SL0000,DW0000,PCMC00,'10',YZCLLB,YZXZLX,a.XH0000,YJJB00, TLBZXH,ZLFA00,ad_CZY000,to_char(sysdate,'YYYYMMDD'),to_char(sysdate,'HH24:MI:SS'),TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00,CYCFBZ,b.BRZXJD,a.KSTS00, to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD'), '23:59:59', to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'), MRXSBZ,MRBZ00, a.KSTZTS,a.JSTZTS,a.LBMC00,b.ZLJBZ0,a.BZ0000,a.SFCY00, a.CJKS00,a.BBMC00,a.BBID00,a.KZKS00,a.SYFW00,a.HLLB00,a.GLMXID, decode(b.ZLJBZ0,'0',0,(select ID0000 from LJ_BRZLJ0 where ZRZCID=b.ZRZCID and LJID00=a.LJID00)), a.CFLX00,a.MAXYZS,a.JHSJ00,nvl(a.KSGLRQ,0) from LJ_JDYZMX a,LJ_JDZXQK b where b.ZRZCID=ad_zrzcid and a.LJID00=b.LJID00 and a.RCID00=b.RCID00 and a.YZZT00='0' and a.RCID00=b.RCID00 and to_char(to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD')>=as_KSRQ00 and not exists(select 1 from LJ_YZMX00 where ZRZCID=ad_ZRZCID and JHMXID=a.JHMXID and ZRZCID=ad_zrzcid) and (SYFW00=ad_SYFW00 or ad_SYFW00=-1); update LJ_YZMX00 set YSKSRQ=BZKSRQ,YSTZRQ=TZRQ00 where ZRZCID=ad_zrzcid and KSRQ00>=as_KSRQ00 and (SYFW00=ad_SYFW00 or ad_SYFW00=-1); SP_ZS_LJ_YMBKJYZTB_All(ad_ZRZCID,as_KSRQ00,ad_CZY000,as_YHMSG0,as_SYSMSG); commit; EXCEPTION WHEN err_Error THEN as_YHMSG0:='模板的版本已经发生了变化,不能被同步!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_ZY_LJ_MBYZTB_ALL('||to_char(ad_ZRZCID)||','||as_KSRQ00||','||to_char(ad_CZY000)||',as_YHMSG0,as_SYSMSG)',1,150); ROLLBACK; WHEN OTHERS THEN as_YHMSG0:='出错原因不详,请记录此信息并和系统管理员联系!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_ZY_LJ_MBYZTB_ALL('||to_char(ad_ZRZCID)||','||as_KSRQ00||','||to_char(ad_CZY000)||',as_YHMSG0,as_SYSMSG)',1,150); ROLLBACK; end; PROCEDURE SP_ZY_LJ_YMBYZTB( ad_ZRZCID in number, --入径ID as_KSRQ00 in char, --开始日程ID ad_JHMXID in char, --计划明细id ad_CZY000 in number, --创建人编号, ad_SYFW00 in number default -1, --路径明细的范围 as_YHMSG0 OUT VARCHAR, --存储过程提示的错误信息 as_SYSMSG OUT VARCHAR --系统提示的错误信息 ) as -- Person Date Comments -- dsm 2011.07.04 创建; -- dsm 2011.07.08 增加MRXSBZ的插入; -- dsm 2011.07.23 增加KSTZTS,JSTZTS,LBMC00 -- dsm 2011.07.29 去掉删除,存在的直接修改,否则会丢失已经输入的变异原因 -- dsm 2011.08.09 创建人,创建日期不要同步 -- dsm 2011.08.14 小于当前日期的不同步 -- dsm 2011.08.19 同步BZ0000 -- dsm 2011.09.07 同步SFCY00 -- dsm 2011.09.15 增加CJKS00,BBMC00,KZKS00 -- dsm 2011.09.22 增加参数ad_SYFW00 -- dsm 2011.10.10 增加调用SP_ZS_LJ_YMBKJYZTB_All -- dsm 2011.11.16 写入LJ_YZMX00.ID0000的值 -- dsm 2012.01.10 增加CFLX00,MAXYZS for ZYYS-20120110-001 -- dsm 2012.02.28 update时加JHMXID>0 for BQ-20120228-001; -- dsm 2012.03.07 更新护理路径时,更新不了之前节点的护理信息--把大于当天的限制去掉 for BQ-20120307-002 -- dsm 2012.03.08 前面更新不了没改全 BQ-20120309-001 -- dsm 2012.06.01 加JHSJ00 for BQ-20120521-001 -- dsm 2013.01.23 加KSGLRQ for LCLJWH-20130123-001 -- dsm 2013.02.07 同步时的初始医嘱名称从基础字典取 for LCLJWH-20130108-001 -- dsm 2013.02.21 同步时只有ZLXMID>0的才从诊疗字典取(否则0的会被设置成一个统一的值) for ZYYS-20130218-001 -- --------- ------------- ------------------------------- ls_ryrrq0 LJ_JDZXQK.JHRQ00%TYPE; ls_ssrrq0 LJ_JDZXQK.JHRQ00%TYPE; ls_cyrrq0 LJ_JDZXQK.JHRQ00%TYPE; ls_cou number(2); err_Error exception; ls_error varchar(20); begin select count(*) into ls_cou from LJ_ZRZC00 a,LJ_MB0000 b where a.ZRZCID=ad_ZRZCID and a.LJID00=b.LJID00 and a.VER000=b.VER000; if ls_cou=0 then raise err_Error; end if; begin select ZXKSRQ into ls_ryrrq0 from LJ_JDZXQK where ZRZCID=ad_zrzcid and JDLX00=1; --入院日 exception when others then ls_error:='入院日取不到'; end; begin select ZXKSRQ into ls_cyrrq0 from LJ_JDZXQK where ZRZCID=ad_zrzcid and JDLX00=3; --出院日 exception when others then ls_error:='出院日取不到'; end; begin select ZXKSRQ into ls_ssrrq0 from LJ_JDZXQK where ZRZCID=ad_zrzcid and JDLX00=2; -- 手术日 exception when others then ls_ssrrq0:=ls_cyrrq0; end; -- ls_dtrq00:=to_char(sysdate,'YYYYMMDD'); if ad_jhmxid>0 then delete LJ_YZMX00 where ZRZCID=ad_zrzcid and JHMXID=ad_JHMXID; update LJ_YZMX00 a set (ZLXMID,YPNM00,ZLXMJC,NO0000,YPGG00,YFID00, YFMC00,YYZF00,PSID00,PSMC00, PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZCLLB,YZXZLX, XH0000,YJJB00,TLBZXH,ZLFA00, CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00, CYCFBZ,BRZXJD,KSTS00,BZKSRQ, MRXSBZ,MRBZ00,KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000,SFCY00, CJKS00,BBMC00,BBID00,KZKS00,SYFW00,HLLB00,GLMXID,CFLX00,MAXYZS,JHSJ00,KSGLRQ) = (select ZLXMID,YPNM00,decode(b.YPNM00,0,nvl((select ZLXMJC from BM_ZLZD00 where ZLXMID=b.ZLXMID AND ZLXMID>0),ZLXMJC),(select YPMC00 from BM_YD0000 where YPNM00=b.YPNM00)) ,NO0000,YPGG00,YFID00, YFMC00,YYZF00,PSID00,PSMC00, PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZCLLB,YZXZLX, XH0000,YJJB00,TLBZXH,ZLFA00, CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00, CYCFBZ,BRZXJD,KSTS00,BZKSRQ, MRXSBZ,MRBZ00,KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000,SFCY00, CJKS00,BBMC00,BBID00,KZKS00,SYFW00,HLLB00,GLMXID,CFLX00,MAXYZS ,JHSJ00,nvl(KSGLRQ,0) from LJ_JDYZMX b where LJID00=a.LJID00 and JHMXID=a.JHMXID) where ZRZCID=ad_ZRZCID and JHMXID=ad_JHMXID and nvl(WBMXID,0)=0 and KSRQ00>=to_char(sysdate,'YYYYMMDD') and (SYFW00=ad_SYFW00 or ad_SYFW00=-1); update LJ_YZMX00 a set (KSRQ00,TZRQ00,SJTZRQ)=(select to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'), to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') , to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') from LJ_JDZXQK b where RCID00=a.RCID00 and ZRZCID=a.ZRZCID) where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and JHMXID=ad_JHMXID and KSRQ00>=to_char(sysdate,'YYYYMMDD') and (SYFW00=ad_SYFW00 or ad_SYFW00=-1); else update LJ_YZMX00 a set (ZLXMID,YPNM00,ZLXMJC,NO0000,YPGG00,YFID00, YFMC00,YYZF00,PSID00,PSMC00, PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZCLLB,YZXZLX, XH0000,YJJB00,TLBZXH,ZLFA00, CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00, CYCFBZ,BRZXJD,KSTS00,BZKSRQ, MRXSBZ,MRBZ00,KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000,SFCY00, CJKS00,BBMC00,BBID00,KZKS00,SYFW00,HLLB00,GLMXID,CFLX00,MAXYZS,JHSJ00,KSGLRQ) = (select ZLXMID,YPNM00,decode(b.YPNM00,0,nvl((select ZLXMJC from BM_ZLZD00 where ZLXMID=b.ZLXMID AND ZLXMID>0),ZLXMJC),(select YPMC00 from BM_YD0000 where YPNM00=b.YPNM00)) ,NO0000,YPGG00,YFID00, YFMC00,YYZF00,PSID00,PSMC00, PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZCLLB,YZXZLX, XH0000,YJJB00,TLBZXH,ZLFA00, CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00, CYCFBZ,BRZXJD,KSTS00,BZKSRQ, MRXSBZ,MRBZ00,KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000 ,SFCY00, CJKS00,BBMC00,BBID00,KZKS00,SYFW00,HLLB00,GLMXID, CFLX00,MAXYZS,JHSJ00,nvl(KSGLRQ,0) from LJ_JDYZMX b where LJID00=a.LJID00 and JHMXID=a.JHMXID) where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and KSRQ00>=as_KSRQ00 and (SYFW00=ad_SYFW00 or ad_SYFW00=-1) and JHMXID>0; update LJ_YZMX00 a set (KSRQ00,TZRQ00,SJTZRQ)=(select to_char(to_date(decode(KSGLRQ,0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'), to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') , to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') from LJ_JDZXQK b where RCID00=a.RCID00 and ZRZCID=a.ZRZCID) where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and KSRQ00>=as_KSRQ00 and KSRQ00>=to_char(sysdate,'YYYYMMDD') and (SYFW00=ad_SYFW00 or ad_SYFW00=-1); --护理记录 update LJ_YZMX00 a set (KSRQ00,TZRQ00,SJTZRQ)=(select to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'), to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') , to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') from LJ_JDZXQK b where RCID00=a.RCID00 and ZRZCID=a.ZRZCID) where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and KSRQ00>=as_KSRQ00 and SYFW00=3 and not exists(select 1 from LJ_HLZXJL where LJYZMX=a.LJYZMX and SFZX00<>'0' ); end if; if ad_SYFW00=3 then delete LJ_YZMX00 a where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and nvl(BYYY00,' ')=' ' and exists(select 1 from LJ_JDYZMX where LJID00=a.LJID00 and JHMXID=a.JHMXID and YZZT00='1' ) and KSRQ00>=as_KSRQ00 and SYFW00=ad_SYFW00 and not exists(select 1 from LJ_HLZXJL where ZRZCID=a.ZRZCID and JHMXID=a.JHMXID and SFZX00<>'0'); else delete LJ_YZMX00 a where ZRZCID=ad_ZRZCID and nvl(WBMXID,0)=0 and nvl(BYYY00,' ')=' ' and exists(select 1 from LJ_JDYZMX where LJID00=a.LJID00 and JHMXID=a.JHMXID and YZZT00='1' ) and KSRQ00>=as_KSRQ00 and SYFW00<>3; end if; if ad_jhmxid=0 then insert into LJ_YZMX00(LJYZMX,ZRZCID,ZYID00,JHMXID,RCID00,LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, ZLXMJC,NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, KSRQ00,KSSJ00, TZRQ00, TZSJ00,PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZZT00,YZCLLB,YZXZLX,XH0000,YJJB00, TLBZXH,ZLFA00,CJRBH0,CJRQ00,CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00,CYCFBZ,BRZXJD,KSTS00, SJTZRQ, SJTZSJ, BZKSRQ, MRXSBZ, MRBZ00,KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000,SFCY00, CJKS00,BBMC00,BBID00,KZKS00,SYFW00,HLLB00,GLMXID,ID0000,CFLX00,MAXYZS,JHSJ00,KSGLRQ) select SQ_LJ_YZMX00_LJYZMX.nextval,ad_zrzcid,b.ZYID00,JHMXID,a.RCID00,a.LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, --ZLXMJC, decode(YPNM00,0,nvl((select ZLXMJC from BM_ZLZD00 where ZLXMID=a.ZLXMID AND ZLXMID>0),ZLXMJC),(select YPMC00 from BM_YD0000 where YPNM00=a.YPNM00)) ZLXMJC, NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'),'08:00:00', to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') TZRQ00, '23:59:59',PCID00,MCSL00,MCSL00,JLDW00, SL0000,DW0000,PCMC00,'10',YZCLLB,YZXZLX,a.XH0000,YJJB00, TLBZXH,ZLFA00,ad_CZY000,to_char(sysdate,'YYYYMMDD'),to_char(sysdate,'HH24:MI:SS'),TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00,CYCFBZ,b.BRZXJD,a.KSTS00, to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD'), '23:59:59', to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'), a.MRXSBZ,a.MRBZ00,a.KSTZTS,a.JSTZTS,a.LBMC00,b.ZLJBZ0,a.BZ0000,a.SFCY00, a.CJKS00,a.BBMC00,a.BBID00,a.KZKS00,a.SYFW00,a.HLLB00,GLMXID, decode(b.ZLJBZ0,'0',0,(select ID0000 from LJ_BRZLJ0 where ZRZCID=b.ZRZCID and LJID00=a.LJID00)), a.CFLX00,a.MAXYZS,JHSJ00,a.KSGLRQ from LJ_JDYZMX a,LJ_JDZXQK b where b.ZRZCID=ad_zrzcid and a.LJID00=b.LJID00 and a.RCID00=b.RCID00 and a.YZZT00='0' and a.RCID00=b.RCID00 and to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD')>=as_KSRQ00 -- AND to_char(to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD')>=to_char(sysdate,'YYYYMMDD') and not exists(select 1 from LJ_YZMX00 where ZRZCID=ad_ZRZCID and JHMXID=a.JHMXID and ZRZCID=ad_zrzcid) ; update LJ_YZMX00 set YSKSRQ=BZKSRQ,YSTZRQ=TZRQ00 where ZRZCID=ad_zrzcid and KSRQ00>=as_KSRQ00 and KSRQ00>=to_char(sysdate,'YYYYMMDD') and (SYFW00=ad_SYFW00 or ad_SYFW00=-1); else insert into LJ_YZMX00(LJYZMX,ZRZCID,ZYID00,JHMXID,RCID00,LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, ZLXMJC,NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, KSRQ00,KSSJ00, TZRQ00, TZSJ00,PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZZT00,YZCLLB,YZXZLX,XH0000,YJJB00, TLBZXH,ZLFA00,CJRBH0,CJRQ00,CJSJ00,TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00,CYCFBZ,BRZXJD,KSTS00, SJTZRQ, SJTZSJ, BZKSRQ, MRXSBZ, MRBZ00,KSTZTS,JSTZTS,LBMC00,ZLJBZ0,BZ0000,SFCY00, CJKS00,BBMC00,BBID00,KZKS00,SYFW00,HLLB00,GLMXID,ID0000,CFLX00,MAXYZS,JHSJ00,KSGLRQ) select SQ_LJ_YZMX00_LJYZMX.nextval,ad_zrzcid,b.ZYID00,JHMXID,a.RCID00,a.LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, --ZLXMJC, decode(YPNM00,0,nvl((select ZLXMJC from BM_ZLZD00 where ZLXMID=a.ZLXMID and ZLXMID>0),ZLXMJC),(select YPMC00 from BM_YD0000 where YPNM00=a.YPNM00)) ZLXMJC, NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'),'08:00:00', to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD') TZRQ00, '23:59:59',PCID00,MCSL00,MCSL00,JLDW00, SL0000,DW0000,PCMC00,'10',YZCLLB,YZXZLX,a.XH0000,YJJB00, TLBZXH,ZLFA00,ad_CZY000,to_char(sysdate,'YYYYMMDD'),to_char(sysdate,'HH24:MI:SS'),TZTS00,TZGLRQ,TS0000,MXYF00,CFMC00,CYCFBZ,b.BRZXJD,a.KSTS00, to_char(decode(TZGLRQ,1,to_date(ls_ryrrq0,'yyyy.mm.dd'),2,to_date(ls_ssrrq0,'yyyy.mm.dd'),3,to_date(ls_cyrrq0,'yyyy.mm.dd'),4,to_date(b.ZXKSRQ,'yyyy.mm.dd')+KSTS00-1)+tzts00-1,'YYYYMMDD'), '23:59:59', to_char(to_date(decode(nvl(KSGLRQ,0),0,b.ZXKSRQ,b.JHRQ00),'yyyy.mm.dd')+KSTS00-1,'YYYYMMDD'), MRXSBZ,MRBZ00,KSTZTS,JSTZTS,LBMC00,b.ZLJBZ0,a.BZ0000,a.SFCY00, a.CJKS00,a.BBMC00,a.BBID00,a.KZKS00,a.SYFW00,a.HLLB00,GLMXID,decode(b.ZLJBZ0,'0',0,(select ID0000 from LJ_BRZLJ0 where ZRZCID=b.ZRZCID and LJID00=a.LJID00)), a.CFLX00,a.MAXYZS,a.JHSJ00,nvl(KSGLRQ,0) from LJ_JDYZMX a,LJ_JDZXQK b where b.ZRZCID=ad_zrzcid and a.LJID00=b.LJID00 and a.RCID00=b.RCID00 and a.YZZT00='0' and a.RCID00=b.RCID00 and JHMXID=ad_JHMXID and not exists(select 1 from LJ_YZMX00 where ZRZCID=ad_ZRZCID and JHMXID=a.JHMXID and ZRZCID=ad_zrzcid) and (SYFW00=ad_SYFW00 or ad_SYFW00=-1); update LJ_YZMX00 set YSKSRQ=BZKSRQ,YSTZRQ=TZRQ00 where ZRZCID=ad_zrzcid and JHMXID=ad_JHMXID and (SYFW00=ad_SYFW00 or ad_SYFW00=-1); end if; SP_ZS_LJ_YMBKJYZTB_All(ad_ZRZCID,as_KSRQ00,ad_CZY000,as_YHMSG0,as_SYSMSG); EXCEPTION WHEN err_Error THEN as_YHMSG0:='模板的版本已经发生了变化,不能被同步!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_ZY_LJ_YMBYZTB('||to_char(ad_ZRZCID)||','||as_KSRQ00||','||to_char(ad_CZY000)||',as_YHMSG0,as_SYSMSG)',1,150); ROLLBACK; WHEN OTHERS THEN as_YHMSG0:='出错原因不详,请记录此信息并和系统管理员联系!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_ZY_LJ_YMBYZTB('||to_char(ad_ZRZCID)||','||as_KSRQ00||','||to_char(ad_CZY000)||',as_YHMSG0,as_SYSMSG)',1,150); ROLLBACK; end;