create or replace procedure SP_ZY_LJ_YZADDTOLJYZ_DT_ZYDZBL( ad_ZYID00 in number, --住院ID ad_YZID00 in number, --医嘱ID ad_LB0000 in number, --类别0药品医嘱1医技医嘱 as_YHMSG0 out varchar, --存储过程提示的错误信息 as_SYSMSG out varchar --系统提示的错误信息 ) as ls_zrzcid LJ_ZRZC00.ZRZCID%TYPE; ls_LJID00 LJ_ZRZC00.LJID00%TYPE; ls_cou number(3); ls_BRZXJD LJ_JDZXQK.BRZXJD%type; err_Error exception; -- MODIFICATION HISTORY -- Person Date Comments -- rbh 2014.12.10 CREATE DZBL-20141210-007 -- xuxm 2016.05.27 修改备选医嘱不变异 ZYDZBL-20160527-010 begin select ZRZCID,LJID00 into ls_zrzcid,ls_LJID00 from LJ_ZRZC00 where ZYID00=ad_ZYID00 and nvl(JSRQ00,' ')=' '; select count(*) into ls_cou from LJ_YZMX00 where WBYZID=ad_YZID00 and ZRZCID=ls_zrzcid; if ls_cou>0 then raise err_Error; end if; select min(BRZXJD) into LS_BRZXJD from LJ_JDZXQK where ZRZCID=ls_ZRZCID and DQJDBZ='1'; if ad_LB0000=0 then insert into LJ_YZMX00(LJYZMX,ZYID00,JHMXID,RCID00,LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, ZLXMJC,NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, KSRQ00,KSSJ00,TS0000,MXYF00, PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZZT00,YZCLLB,YZXZLX,XH0000,YJJB00, CJRBH0,CJRQ00,CJSJ00,WBMXID,WBMXLY,WBYZID,SFBY00,BRZXJD,ZRZCID,BZKSRQ,CFLX00,MAXYZS) select SQ_LJ_YZMX00_LJYZMX.nextval,ad_ZYID00,0,nvl((select min(RCID00) from LJ_JDZXQK where ZRZCID=ls_zrzcid and DQJDBZ='1'),0),ls_LJID00,0,(select CLBZ00 from BQ_YPYZ00 where YZID00=a.YZID00),0,YPNM00, YPMC00,(select min(YZMXID) from BQ_YPYZ00 where YZID00=a.YZID00),YPGG00,b.YFID00,b.YPYFMC,b.YYZF00,PSID00,PSMC00, b.QYRQ00,b.QYSJ00,ZQCYTS,XMYFMC, PCID00,MCSL00,0,JLDW00, LYL000,ZYFYDW,PCMC00,YZZT00,YZCLLB,0,YZMXID,'医生级', KZYS00,LRRQ00,LRSJ00,YZMXID,'BQ_YPYZMX',b.YZID00,'1',nvl((select min(BRZXJD) from LJ_JDZXQK where ZRZCID=ls_zrzcid and ZXKSRQ<=b.QYRQ00 and ZXJSRQ>=b.QYRQ00),ls_BRZXJD),ls_zrzcid,QYRQ00, '0',0 from BQ_YPYZMX a,BQ_YPYZ00 b where a.YZID00=ad_YZID00 and a.YZID00=b.YZID00 and nvl(JHMXID,0)=0 and nvl(LJID00,0)=0; update BQ_YPYZMX a set (LJID00,JHMXID,BRZXJD)=(select LJID00,JHMXID,BRZXJD from LJ_YZMX00 where WBMXID=a.YZMXID and ZRZCID=ls_ZRZCID) where YZID00=ad_YZID00; commit; else insert into LJ_YZMX00(LJYZMX,ZYID00,JHMXID,RCID00,LJID00,YZLB00,CLBZ00,ZLXMID,YPNM00, ZLXMJC,NO0000,YPGG00,YFID00,YFMC00,YYZF00,PSID00,PSMC00, KSRQ00,KSSJ00,TS0000,MXYF00, PCID00,MCSL00,BZMCSL,JLDW00, SL0000,DW0000,PCMC00,YZZT00,YZCLLB,YZXZLX,XH0000,YJJB00, CJRBH0,CJRQ00,CJSJ00,WBMXID,WBMXLY,WBYZID,SFBY00,BRZXJD,ZRZCID,BZKSRQ,CFLX00,MAXYZS) select SQ_LJ_YZMX00_LJYZMX.nextval,ad_ZYID00,0,nvl((select min(RCID00) from LJ_JDZXQK where ZRZCID=ls_zrzcid and DQJDBZ='1'),0),ls_LJID00,0,CLBZ00,ZLXMID,0, ZLXMJC,YZMXID,'','','','','','', a.QYRQ00,a.QYSJ00,TS0000,'', PCID00,MCSL00,0,DW0000, 1,DW0000,PCMC00,YZZT00,YZCLLB,0,YZMXID,'医生级', KZYS00,LRRQ00,LRSJ00,YZMXID,'BQ_YPYZMX',YZMXID,'1',nvl((select min(BRZXJD) from LJ_JDZXQK where ZRZCID=ls_zrzcid and ZXKSRQ<=a.QYRQ00 and ZXJSRQ>=a.QYRQ00),ls_BRZXJD),ls_zrzcid,QYRQ00, '0',0 from BQ_YJYZ00 a where a.YZMXID=ad_YZID00 and nvl(JHMXID,0)=0 and nvl(LJID00,0)=0 ; update BQ_YJYZ00 a set (LJID00,JHMXID,BRZXJD,TZRQ00,TZSJ00)=(select LJID00,JHMXID,BRZXJD,TZRQ00,TZSJ00 from LJ_YZMX00 where WBMXID=a.YZMXID and ZRZCID=ls_ZRZCID ) where YZMXID=ad_YZID00; commit; end if; exception when err_Error then as_SYSMSG:=SQLERRM; as_YHMSG0:='此医嘱已经关联了'; -- rollback; when others then as_SYSMSG:=SQLERRM; as_YHMSG0:='过程SP_ZY_LJ_YZAddToLJYZ_DT出错!'; -- Rollback; end;