CREATE OR REPLACE PROCEDURE SP_ZS_YJYZCZ_ZYDZBL ( p_yzmxid number,--医嘱明细ID p_pxsj00 char,--排序时间 p_lrrxm0 char, --录入人姓名 p_kzys00 in number default 0 --开医嘱医生 )as Vyjyz00 BQ_YJYZ00%RowType; --非药医嘱 Vyzmxid BQ_YJYZ00.YZMXID%type; --医嘱明细ID Vcounter number(10); --计数器变量 Vparams varchar2(255); --参数变量 Verrmsg varchar2(255); --错误提示变量 Ecustom exception; --错误变量 ls_yzzt BQ_YJYZ00.YZZT00%type; ls_tzczrq BQ_YJYZ00.TZCZRQ%type; ls_tzczsj BQ_YJYZ00.TZCZSJ%type; ls_YZCZXGKZYS varchar2(20); --医嘱的重整人作为重整后医嘱的开嘱医生 -- MODIFICATION HISTORY -- Person Date Comments -- rbh 2014.12.10 CREATE DZBL-20141210-007 -- xuxm 2015.04.09 DZBL-20150210-001 (急)医嘱界面,对长期医嘱做重整操作,被重整的医嘱重整后需要按照原来的医嘱顺序排列下来。(目前发现同时有非药跟药品医嘱的情况下,重整完后,某几条非药医嘱会穿插在药品医嘱中间,导致顺序混乱,请做修改) -- xuxm 2017.12.06 ZYDZBL-20171205-002 (急) 近期医生医嘱重整后,导致bq_ypyz00.kdksbh 为空值问题,导致提取医嘱提示无法将null值插入yf_yzypsq.dqks00 -- wuzy 2018.06.05 过程加上日志 SP_TransLog for ZYDZBL-20180531-002 begin SP_TRANSLOG(sysdate,'SP_ZS_YPYZCZ_ZYDZBL',0,0, 'SP_ZS_YPYZCZ_ZYDZBL:p_yzmxid:'||To_Char(p_yzmxid)||'p_pxsj00:'||p_pxsj00 ||'p_lrrxm0:'||p_lrrxm0||'p_kzys00:'||to_char(p_kzys00)); select * into Vyjyz00 from bq_yjyz00 where yzmxid=p_yzmxid; if Vyjyz00.yzzt00<>'2' then Verrmsg:='不是正在执行的医嘱不能重整'; Raise Ecustom; end if; if Vyjyz00.yzzt00='1' then Verrmsg:='临时医嘱不能重整'; Raise Ecustom; end if; --取医嘱ID select SQ_BQ_YZMX00_YZMXID.NextVal into Vyzmxid FROM DUAL WHERE ROWNUM=1; select YZZT00,TZCZRQ,TZCZSJ into ls_yzzt,ls_tzczrq,ls_tzczsj from bq_yjyz00 where yzmxid=p_yzmxid; Update bq_yjyz00 set yzmxid=Vyzmxid,yzzt00='8',tzczrq=to_char(sysdate,'yyyymmdd'),tzczsj=to_char(sysdate,'hh24:mi:ss') where yzmxid=p_yzmxid; -- Update bq_yjyz00 set yzzt00='8',tzczrq=to_char(sysdate,'yyyymmdd'),tzczsj=to_char(sysdate,'hh24:mi:ss') where yzmxid=Vyzmxid; --插入药品医嘱主表 insert into BQ_YJYZ00 (YZMXID, YJDJH0, ZYID00, YEXM00, YZLB00, CLBZ00, ZLXMID, ZLXMJC, ZXKS00, KZYS00, LRRXM0, HDRXM0, QYRQ00, QYSJ00, LRRQ00, LRSJ00, PXSJ00, TZRQ00, TZSJ00, TQRQ00, TQSJ00, TZYS00, TZRXM0, TS0000, TSDW00, BQH000, KSH000, PCID00, MCSL00, DW0000, PCMC00, YZZT00, TQFS00, YZCLLB, ZFBL00, YBLB00, BZ0000, BQJZBZ, SJQSRQ, SJQSSJ, TZCZRQ, TZCZSJ, SFCDBZ, YZLY00, LJID00, MBRCID, JHMXID, BYYY00, BRZXJD, ZXRQSC, ZXSJSC, YSZID0, KDKSBH,HDR000) select p_yzmxid, YJDJH0, ZYID00, YEXM00, YZLB00, CLBZ00, ZLXMID, ZLXMJC, ZXKS00, KZYS00, LRRXM0, HDRXM0, QYRQ00, QYSJ00, to_char(sysdate,'yyyymmdd'),to_char(sysdate,'hh24:mi:ss'), PXSJ00, ls_tzczrq,ls_tzczsj, TQRQ00, TQSJ00, TZYS00, TZRXM0, TS0000, TSDW00, BQH000, KSH000, PCID00, MCSL00, DW0000, PCMC00, ls_yzzt, TQFS00, YZCLLB, ZFBL00, YBLB00, BZ0000, BQJZBZ, SJQSRQ, SJQSSJ, '' , '' , SFCDBZ, YZLY00, LJID00, MBRCID, JHMXID, BYYY00, BRZXJD, ZXRQSC, ZXSJSC, YSZID0, KDKSBH,HDR000 from bq_yjyz00 where yzmxid=Vyzmxid; update BQ_YJYZ00 set TZRQ00=to_char(sysdate,'YYYYMMDD'),TZSJ00=to_char(sysdate,'HH24:MI:SS') where yzmxid=Vyzmxid; select nvl(max(trim(VALUE0)),'N') into ls_YZCZXGKZYS from XT_XTCS00 where NAME00='ZS_YZCZXGKZYS'; if (ls_YZCZXGKZYS = 'Y') then update BQ_YJYZ00 set KZYS00=p_kzys00 where YZMXID=p_yzmxid; end if; exception when no_data_found then raise_application_error(-20001,substr('数据没有找到!*'||sqlerrm||','||Vparams,1,220)); when Ecustom then raise_application_error(-20010,substr(Verrmsg||'!*'||Vparams,1,220)); when others then raise_application_error(-20002,substr(nvl(sqlerrm, '原因不明出错')||'!*'||Vparams,1,220)); end;