--prompt 15.检验标本排样 SP_JY_JYBBPY create or replace procedure SP_JY_JYBBPY( PTXM000 in out varchar2 , --条形码 PJYYWID in varchar2 , --检验业务ID PPYRQ00 in varchar2 , --排样日期 PYBH000 in varchar2 , --样本号 PJZBZ00 in varchar2 , --急诊标志 PSGCJQZ in varchar2 , --试管厂家前缀 PPYRID0 in varchar2 , --排样人ID PBBQSBZ out varchar2 --标本签收标志 ) AS V_JYYWID JY_YW0000.JYYWID%type; V_YJDJH0 JY_YW0000.YJDJH0%type; V_JGZT00 JY_YW0000.JGZT00%type; V_MZZYBZ JY_YW0000.MZZYBZ%type; V_SFTJ00 JY_YW0000.SFTJ00%type; V_YQDH00 JY_YW0000.YQDH00%type; V_TXM000 JY_YW0000.TXM000%type; V_PYRQ00 JY_YW0000.PYRQ00%type; V_YBH000 JY_YW0000.YBH000%type; ls_JYYWID JY_YW0000.JYYWID%type; ls_ZLXMID JY_YW0000.ZLXMID%type; ls_BGXMID JY_BGXMZD.BGXMID%type; ls_QSZ000 JY_BGXMZD.QSZ000%type; ls_DW0000 JY_BGXMZD.DW0000%type; ls_ZLXMJC BM_ZLZD00.ZLXMJC%type; ls_YQDH00 JY_JYYQZD.YQDH00%type; V_TTMTYB JY_JYYQZD.TTMTYB%type; V_TJSFQS XT_XTCS00.VALUE0%type; V_MZSFQS XT_XTCS00.VALUE0%type; V_COUNT0 number; V_JGZTMC varchar2(200); E_TMBCZ0 exception; --条码不存在 E_BBWCJ0 exception; --标本未采集 E_BBWQZ0 exception; --标本未签收,请签收标本! E_BBYTH0 exception; --标本已退回 E_BBYPY0 exception; --标本已排样 E_BBYCX0 exception; --标本已撤消 E_YBHYZY exception; --样本号已在用 C_SFSXJ0 char(1); V_PCRJGTSCL XT_XTCS00.VALUE0%type; V_BBPYTS varchar2(4000); V_ZYSFQS XT_XTCS00.VALUE0%type; --住院标本是否签收 JY_FJYKSBH XT_XTCS00.VALUE0%type; V_SQKS00 JY_YW0000.SQKS00%type; V_SQBQ00 JY_YW0000.SQBQ00%type; V_PYSSFMRQS XT_XTCS00.VALUE0%type;--排样是否自动签收 V_QSSJZPYSJQ XT_XTCS00.VALUE0%type;--签收时间是排样时间前几分钟; 0使用签收;其他数字,不使用签收,排样前几分钟;默认0 V_BSYQSZLXM0 XT_XTCS00.VALUE0%type;--不使用签收的诊疗项目,多个使用,隔开;默认0 --是否非检验科采集 V_SFFJYKCJ char(1); cursor CUR_JY_JYBBPY_TXM000 is select JYYWID,ZLXMID,BGXMID,QSZ000,DW0000,YQDH00 from VW_JY_YWBG00 where JYYWID in (select JYYWID from JY_YW0000 where TXM000 = PTXM000 and SGCJQZ = PSGCJQZ ) and (YQDH00=substr(PYBH000,1,2) or YQDH00=(select nvl(fromYQ,'11') from JY_JYYQZD where YQDH00=substr(PYBH000,1,2))); cursor CUR_JY_JYBBPY_TXMTTM is select JYYWID,ZLXMID,BGXMID,QSZ000,DW0000,YQDH00 from VW_JY_YWBG00 where JYYWID in (select JYYWID from JY_YW0000 where TXM000 = PTXM000 and SGCJQZ = PSGCJQZ ) and YQDH00<>substr(PYBH000,1,2) and TTMTYB='Y'; cursor CUR_JY_JYBBPY_XM0000 is select JYYWID,ZLXMID,BGXMID,QSZ000,DW0000 from VW_JY_YWBG00 where JYYWID=PJYYWID and YQDH00=substr(PYBH000,1,2) ; cursor CUR_JY_JYBBPY_TTMTYB is select distinct ZLXMID,YQDH00 from VW_JY_YWBG00 where JYYWID in (select JYYWID from JY_YW0000 where TXM000 = PTXM000 and SGCJQZ = PSGCJQZ ) and YQDH00 <>substr(PYBH000,1,2) and TTMTYB='Y' ; cursor CUR_JY_WDYJCXM is select ZLXMJC from JY_YWMX00 A,BM_ZLZD00 B,JY_YW0000 C where C.TXM000= PTXM000 and A.ZLXMID=B.ZLXMID and A.JYYWID=C.JYYWID ; -- MODifICATION HisTorY -- Person date Comments -- LZY 2009.07.30 创建该过程 ; -- LZY 2009.08.06 修改该过程,体检是否签收 ; -- JXQ 2010.04.12 修正在8I库中发生orA-03113的错误 -- LZY 2010.05.20 一条码包含的诊疗项目记录按JGZT00排序,防止未排样的项目排不了样 -- LZY 2010.06.29 有维护诊疗细菌对应的诊疗项目排样时候默认添加细菌 -- LZY 2010.07.16 过滤掉在其他仪器上已经排样的项目 -- lintj 2010.09.01 优化该过程 -- LinTJ 2011.04.28 YSJYJG不进行初始化 -- chenyw 2011.05.13 增加门诊签收判断功能 -- chenyw 2011.09.05 扩展微生物条件 -- chenyw 2013.06.25 提示条形码已排样 for Lis-20130619-002 -- chenyw 2013.06.25 一个条形码是否可以在同一台仪器多次排样 for Lis-20130619-003 -- chenyw 2013.09.11 检验标本排样增加排样不成功提示 for Lis-20130909-002 -- Xutz 2015.10.28 高明区中医院要求住院标本允许不签收 for Lis-20151026-001 -- xutz 2016.01.22 标本库排样后,报告项目无法显示出来 for Lis-20151229-001 -- daihq 2016.08.03 参数JY_FJYKSBH维护的科室也需要签收 for Lis-20160602-003 -- xutz 2016.08.20 当参数JY_TJSFQS='N',JY_MZSFQS='Y'时,体检标本(SFTJ00='Y')排样时提示‘标本未签收’,到签收界面签收时,提示‘体检标本无需签收’ for Lis-20160820-001 -- daihq 2016.10.14 JY_FJYKSBH由0改为N for Lis-20161014-001 -- daihq 2017.05.11 增加判断样本号是否在复查样本号中使用过 for Lis9-20170511-001 -- chenhn 2017.12.06 增加参数JY_PYSSFMRQS控制排样的时候是否自动签收 for Lis9-20171121-002 -- chenhn 2021.02.03 联防联控排样 for LIS9-20210201-001 -- Nixj 2021.04.28 修正细菌自动出默认接口的问题 for LIS9-20210428-002 -- wusd 2021.11.05 增加修改签收时间功能 for LIS9-20211028-001 begin PBBQSBZ := 'Y'; C_SFSXJ0 :='N'; select count(*) into V_count0 from JY_JYYQZD A,BM_JYZYZB B where A.ZYZBID=B.ZYZBID and (B.zyzbmc like '%细菌%' or B.zyzbmc like '%微生物%' ) and A.YQDH00=substr(PYBH000,1,2) and A.YQMC00 like 'BICLIAISON%'; if V_count0 > 0 then C_SFSXJ0 :='Y'; end if; select count(1) into V_count0 from JY_LFLKTM where BIGTXM=PTXM000; if(V_count0>0) then SP_JY_JYBBPY_HS(PTXM000,PYBH000,PPYRQ00,PPYRID0); else if lengthb(PTXM000) > 5 and PJYYWID is null then begin select trim(VALUE0) into V_TJSFQS from XT_XTCS00 where NAME00 ='JY_TJSFQS'; exception when others then V_TJSFQS:='N'; end; begin select trim(VALUE0) into V_MZSFQS from XT_XTCS00 where NAME00 ='JY_MZSFQS'; exception when others then V_MZSFQS:='N'; end; begin select trim(VALUE0) into V_ZYSFQS from XT_XTCS00 where NAME00 ='JY_ZYSFQS'; exception when others then V_ZYSFQS:='Y'; end; --2016.08.03 daihq add --非检验科室编号,多个科室用逗号隔开,N 非检验科室不能使用检验系统采集界面,具体科室编号 允许使用检验系统采集界面,默认N begin select nvl(max(trim(VALUE0)),'N') into JY_FJYKSBH from XT_XTCS00 where NAME00 ='JY_FJYKSBH'; exception when others then JY_FJYKSBH:='N'; end; --排样是否自动签收 begin select trim(VALUE0) into V_PYSSFMRQS from XT_XTCS00 where NAME00 ='JY_PYSSFMRQS'; exception when others then V_PYSSFMRQS:='N'; end; if V_PYSSFMRQS='Y' then update JY_YW0000 set JGZT00 = '2',BBSDRQ = to_char(sysdate,'YYYYMMDD'), BBSDSJ = to_char(sysdate,'HH24:MI:SS'), BBSDR0 =PPYRID0 where TXM000=PTXM000 and JGZT00<='2'; end if; --不使用签收的诊疗项目自动签收 begin select trim(VALUE0) into V_BSYQSZLXM0 from XT_XTCS00 where NAME00 ='JY_BSYQSZLXM0'; exception when others then V_BSYQSZLXM0:='0'; end; update JY_YW0000 set JGZT00= '2', BBSDRQ=to_char(sysdate,'YYYYMMDD'), BBSDSJ=to_char(sysdate,'HH24:MI:SS'), BBSDR0=PPYRID0 where TXM000=PTXM000 and JGZT00<='2' and instr(','||V_BSYQSZLXM0||',',','||to_char(ZLXMID)||',',1,1)>0; begin select JYYWID,YJDJH0,JGZT00,MZZYBZ,SFTJ00,YQDH00,YBH000,decode(JGZT00,'4','已排样','6','已审核','8','已打印',''),pyrq00,SQKS00,SQBQ00 into V_JYYWID,V_YJDJH0,V_JGZT00,V_MZZYBZ,V_SFTJ00,V_YQDH00,V_YBH000,V_JGZTMC,V_PYRQ00,V_SQKS00,V_SQBQ00 from(select * from JY_YW0000 where TXM000 = PTXM000 and SGCJQZ = PSGCJQZ and ZLXMID in (select distinct zlxmid from jy_zlbgdy where YQDH00=substr(PYBH000,1,2) or YQDH00=(select nvl(fromYQ,'11') from JY_JYYQZD where YQDH00=substr(PYBH000,1,2))) order by JGZT00) where rownum=1 ; if V_JGZT00 = '0' then raise E_BBWCJ0;--标本未采集 return; end if; if (V_JGZT00 = '1') and ((instrb(','||trim(JY_FJYKSBH)||',',','||V_SQKS00||',')>0) or (instrb(','||trim(JY_FJYKSBH)||',',','||V_SQBQ00||',')>0)) then V_SFFJYKCJ:= 'Y'; else V_SFFJYKCJ:='N'; end if; if (V_JGZT00 = '1') and ((trim(V_SFTJ00) = 'Y' and V_TJSFQS = 'Y') or (V_MZZYBZ='0' and trim(V_SFTJ00) = 'N' and V_MZSFQS='Y') or (V_MZZYBZ = '1' and V_ZYSFQS='Y') or (V_SFFJYKCJ='Y')) then PBBQSBZ := 'N'; return; end if; if V_JGZT00 = '3' then raise E_BBYTH0;--标本已退回 return; end if; if V_JGZT00 = '7' then raise E_BBYCX0;--标本已撤消 return; end if; if V_JGZT00 >= '4' then raise E_BBYPY0;--标本已排样 return; end if; exception when NO_DATA_FOUND then select SF_JY_BBPYTS(PTXM000,Pybh000) into V_BBPYTS from dual; raise E_TMBCZ0;--条码不存在 return; end; select count(1) into V_count0 from JY_YW0000 where YBH000 = PYBH000 and PYRQ00 = PPYRQ00; if V_count0 > 0 then--样本号已在用 raise E_YBHYZY; return; end if; --2017.05.11 daihq add for Lis9-20170511-001 select count(1) into V_count0 from JY_YW0000 where YQDH00 = substr(PYBH000,1,2) and PYRQ00 = PPYRQ00 and FCYBH0=PYBH000 ; if V_count0 > 0 then--样本号已在用 raise E_YBHYZY; return; end if; begin select trim(VALUE0) into V_PCRJGTSCL from XT_XTCS00 where NAME00='JY_PCRJGTSCL'; exception when others then V_PCRJGTSCL:='N'; end; if instr(V_PCRJGTSCL,substr(PYBH000,1,2))>0 then update JY_YW0000 SET YBH000= PYBH000, YQDH00=substr(PYBH000,1,2), YXBZ00=DECODE(YXBZ00,'Y','Y',PJZBZ00 ), BGR000=PPYRID0, CZY000=PPYRID0, PYRQ00=PPYRQ00, PYSJ00=to_char(sysdate,'HH24:MI:SS'), JGZT00='4' where TXM000 = PTXM000 and SGCJQZ = PSGCJQZ and JGZT00 <= '2' and ZLXMID in (select distinct a.zlxmid from jy_zlbgdy a,jy_jyjg00_temp b where a.bgxmid=b.bgxmid and b.ybh000=PYBH000 and b.pyrq00=PPYRQ00 and (a.YQDH00=substr(PYBH000,1,2) or a.YQDH00=(select nvl(fromYQ,'11') from JY_JYYQZD where YQDH00=substr(PYBH000,1,2)))) and rownum=1; else update JY_YW0000 set YBH000= PYBH000, YQDH00=substr(PYBH000,1,2), YXBZ00=DECODE(YXBZ00,'Y','Y',PJZBZ00 ), BGR000=PPYRID0, CZY000=PPYRID0, PYRQ00=PPYRQ00, PYSJ00=to_char(sysdate,'HH24:MI:SS'), JGZT00='4' where TXM000 = PTXM000 and SGCJQZ = PSGCJQZ and JGZT00 <= '2' and ZLXMID in (select distinct zlxmid from jy_zlbgdy where YQDH00=substr(PYBH000,1,2) or YQDH00=(select nvl(fromYQ,'11') from JY_JYYQZD where YQDH00=substr(PYBH000,1,2))) ; end if; open CUR_JY_JYBBPY_TXM000; loop fetch CUR_JY_JYBBPY_TXM000 into ls_JYYWID,ls_ZLXMID,ls_BGXMID,ls_QSZ000,ls_DW0000,ls_YQDH00; exit when CUR_JY_JYBBPY_TXM000%notFOUND; select count(*) into V_count0 from JY_YW0000 where JYYWID = ls_JYYWID and YBH000=PYBH000 and PYRQ00=PPYRQ00; --过滤掉在其他仪器上已排样过的项目 if V_count0 > 0 then select count(*) into V_count0 from JY_ZLXJDY where ZLXMID=ls_ZLXMID; if(V_count0 > 0) and (C_SFSXJ0='Y') then insert into JY_XJBGJG(BGJGID,JYYWID,ZLXMID,PYRQ00,BGRQ00,BGSJ00,YBH000,XJID00,XJKSID,XJJG00) select SEQ_JY_XJBGJG_BGJGID.NEXTVAL,ls_JYYWID,ls_ZLXMID,PPYRQ00,PPYRQ00,to_char(sysdate,'HH24:MI:SS'),PYBH000,XJID00,0,'' from(select distinct XJID00 from JY_ZLXJDY where ZLXMID=ls_ZLXMID); else insert into JY_JYJG00_TEMP(JYYWID,YBH000,PYRQ00,TXM000,ZLXMID,BGXMID,JYJG00,YSJYJG,JGDW00,YQDH00) select ls_JYYWID,PYBH000,PPYRQ00,PTXM000,ls_ZLXMID,ls_BGXMID,ls_QSZ000,null,ls_DW0000,substr(PYBH000,1,2) from DUAL where not exists(select 1 from JY_JYJG00_TEMP where YBH000= PYBH000 and PYRQ00=PPYRQ00 and BGXMID =ls_BGXMID ); update JY_JYJG00_TEMP set JYYWID=ls_JYYWID,TXM000=PTXM000,SFDY00='Y', ZLXMID=ls_ZLXMID, YQDH00=substr(PYBH000,1,2) where YBH000= PYBH000 and PYRQ00=PPYRQ00 and BGXMID=ls_BGXMID ; end if; end if; end loop; if CUR_JY_JYBBPY_TXM000%rowcount = 0 then for XM in CUR_JY_WDYJCXM loop if lengthb(ls_ZLXMJC) > 500 then ls_ZLXMJC := substrb(ls_ZLXMJC,1,500); exit; end if; if ls_ZLXMJC is null then ls_ZLXMJC:=trim(xm.ZLXMJC); else ls_ZLXMJC:=ls_ZLXMJC||'|'||trim(xm.ZLXMJC); end if; end loop; raise_APPLICATION_ERRor(-20015,'申请项目没有对应检测项目不能排样!请联系管理员维护后再操作!*' || ls_ZLXMJC); end if; close CUR_JY_JYBBPY_TXM000; select TTMTYB into V_TTMTYB from JY_JYYQZD where YQDH00=substr(PYBH000,1,2); if V_TTMTYB ='Y' then open CUR_JY_JYBBPY_TTMTYB ; loop fetch CUR_JY_JYBBPY_TTMTYB into ls_ZLXMID,ls_YQDH00; exit when CUR_JY_JYBBPY_TTMTYB%notFOUND; select count(*) into V_count0 from JY_YW0000 where TXM000 = PTXM000 and SGCJQZ = PSGCJQZ and ZLXMID = ls_ZLXMID and YQDH00 <> substr(PYBH000,1,2); if V_count0 >=1 then select JYYWID,YJDJH0,JGZT00,MZZYBZ,SFTJ00,YQDH00 into V_JYYWID,V_YJDJH0,V_JGZT00,V_MZZYBZ,V_SFTJ00,V_YQDH00 from JY_YW0000 where TXM000 = PTXM000 and SGCJQZ = PSGCJQZ and ZLXMID = ls_ZLXMID and YQDH00 <> substr(PYBH000,1,2); if V_JGZT00 >= '4' then raise_APPLICATION_ERRor(-20002,'同条码标本已排样!*' || ls_ZLXMID); return; end if; update JY_YW0000 SET YBH000= ls_YQDH00||substr(PYBH000,3,4),YQDH00=ls_YQDH00,YXBZ00=DECODE(YXBZ00,'Y','Y',PJZBZ00 ), BGR000=PPYRID0,CZY000=PPYRID0,PYRQ00=PPYRQ00,PYSJ00=to_char(sysdate,'HH24:MI:SS'),JGZT00='4' where TXM000 = PTXM000 and JGZT00 <= '2' and SGCJQZ = PSGCJQZ and ZLXMID = ls_ZLXMID ; end if; end loop; close CUR_JY_JYBBPY_TTMTYB; open CUR_JY_JYBBPY_TXMTTM ; loop fetch CUR_JY_JYBBPY_TXMTTM into ls_JYYWID,ls_ZLXMID,ls_BGXMID,ls_QSZ000,ls_DW0000,ls_YQDH00; exit when CUR_JY_JYBBPY_TXMTTM%notFOUND; select count(*) into V_count0 from JY_YW0000 where JYYWID=ls_JYYWID and YBH000=PYBH000 and PYRQ00=PPYRQ00; --过滤掉在其他仪器上已排样过的项目 if V_count0 > 0 then insert into JY_JYJG00_TEMP(JYYWID,YBH000,PYRQ00,TXM000,ZLXMID,BGXMID,JYJG00,YSJYJG,JGDW00,YQDH00) select ls_JYYWID,ls_YQDH00||substr(PYBH000,3,4),PPYRQ00,PTXM000,ls_ZLXMID,ls_BGXMID,ls_QSZ000,null,ls_DW0000,ls_YQDH00 from DUAL where not exists(select 1 from JY_JYJG00_TEMP where YBH000=ls_YQDH00||substr(PYBH000,3,4) and PYRQ00=PPYRQ00 and BGXMID =ls_BGXMID ); update JY_JYJG00_TEMP set JYYWID=ls_JYYWID,TXM000=PTXM000,SFDY00='Y',ZLXMID=ls_ZLXMID, YQDH00=ls_YQDH00 where YBH000=(ls_YQDH00||substr(PYBH000,3,4)) and PYRQ00=PPYRQ00 and BGXMID=ls_BGXMID ; end if; end loop; close CUR_JY_JYBBPY_TXMTTM; end if ; elsif PJYYWID is not null then V_PYRQ00 := to_char(sysdate,'YYYYMMDD'); select TXM000 into V_TXM000 from JY_YW0000 where JYYWID=PJYYWID; if lengthb(V_TXM000)<5 then V_TXM000 :=''; end if; --2017.05.11 daihq add for Lis9-20170511-001 select count(1) into V_count0 from JY_YW0000 where YBH000 = PYBH000 and PYRQ00 = V_PYRQ00; if V_count0 > 0 then--样本号已在用 raise E_YBHYZY; return; end if; select count(1) into V_count0 from JY_YW0000 where YQDH00 = substr(PYBH000,1,2) and PYRQ00 = V_PYRQ00 and FCYBH0=PYBH000 ; if V_count0 > 0 then--样本号已在用 raise E_YBHYZY; return; end if; update JY_YW0000 SET YBH000= PYBH000,YQDH00=substr(PYBH000,1,2),BGR000=PPYRID0,CZY000=PPYRID0, PYRQ00=V_PYRQ00,PYSJ00=to_char(sysdate,'HH24:MI:SS'),JGZT00='4' where JYYWID=PJYYWID ; open CUR_JY_JYBBPY_XM0000 ; loop fetch CUR_JY_JYBBPY_XM0000 into ls_JYYWID,ls_ZLXMID,ls_BGXMID,ls_QSZ000,ls_DW0000; exit when CUR_JY_JYBBPY_XM0000%notFOUND; select count(*) into V_count0 from JY_YW0000 where JYYWID = ls_JYYWID and YBH000= PYBH000 and PYRQ00=V_PYRQ00; --过滤掉在其他仪器上已排样过的项目 PPYRQ00 修改为 V_PYRQ00 for Lis-20151229-001 if V_count0 > 0 then insert into JY_JYJG00_TEMP(JYYWID,YBH000,PYRQ00,TXM000,ZLXMID,BGXMID,JYJG00,YSJYJG,JGDW00,YQDH00) select ls_JYYWID,PYBH000,V_PYRQ00,V_TXM000,ls_ZLXMID,ls_BGXMID,ls_QSZ000,null,ls_DW0000,substr(PYBH000,1,2) from dual where not exists(select 1 from JY_JYJG00_TEMP where YBH000=PYBH000 and PYRQ00=V_PYRQ00 and BGXMID =ls_BGXMID ); update JY_JYJG00_TEMP SET JYYWID=ls_JYYWID,TXM000=V_TXM000,SFDY00='Y',ZLXMID=ls_ZLXMID, YQDH00=substr(PYBH000,1,2) where YBH000=PYBH000 and PYRQ00=V_PYRQ00 and BGXMID=ls_BGXMID ; end if; end loop; if CUR_JY_JYBBPY_XM0000%rowcount = 0 then raise_APPLICATION_ERRor(-20015,'申请项目没有对应检测项目不能排样!请联系管理员维护后再操作!*'); end if; close CUR_JY_JYBBPY_XM0000; else return; end if ; end if; --修改签收时间 begin select trim(VALUE0) into V_QSSJZPYSJQ from XT_XTCS00 where NAME00 ='JY_QSSJZPYSJQ'; V_QSSJZPYSJQ := to_char(nvl(SF_XT_STRTONUMVALUE(V_QSSJZPYSJQ,0),0)); exception when others then V_QSSJZPYSJQ:='0'; end; if V_QSSJZPYSJQ <> '0' then update JY_YW0000 set BBSDRQ=to_char(to_date(PYRQ00||PYSJ00,'YYYYMMDDHH24:MI:SS')-to_number(V_QSSJZPYSJQ)/1440,'YYYYMMDD'), BBSDSJ=to_char(to_date(PYRQ00||PYSJ00,'YYYYMMDDHH24:MI:SS')-to_number(V_QSSJZPYSJQ)/1440,'HH24:MI:SS'), BBSDR0=PPYRID0 where TXM000=PTXM000 and instr(','||V_BSYQSZLXM0||',',','||to_char(ZLXMID)||',',1,1)>0; end if ; exception when E_TMBCZ0 then raise_APPLICATION_ERRor(-20001,V_BBPYTS); when E_BBWCJ0 then raise_APPLICATION_ERRor(-20002,'标本未采集!*'); when E_BBWQZ0 then raise_APPLICATION_ERRor(-20003,'标本未签收,请签收标本!*'); when E_BBYTH0 then raise_APPLICATION_ERRor(-20004,'标本已退回!*'); when E_BBYPY0 then raise_APPLICATION_ERRor(-20005,'标本'||V_JGZTMC||',排样日期:'||V_PYRQ00||',样本号:'||V_YBH000||'!*'); when E_BBYCX0 then raise_APPLICATION_ERRor(-20004,'标本已撤消!*'); when E_YBHYZY then raise_APPLICATION_ERRor(-20005,'样本号已在用,请更换样本号!'); when NO_DATA_FOUND then raise_APPLICATION_ERRor(-20010, '数据没有找到!*'); when others then raise_APPLICATION_ERRor(-20020, nvl(SQLERRM, '原因不明出错!*')); end SP_JY_JYBBPY; / --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%