CREATE OR REPLACE PROCEDURE SP_PY_SCPHDL ( as_CFLSH0 in char, --处方流水号 ad_SFCKBH in number default 0, --收费窗口编号 (Add on 2003-03-31) ad_PYCKBH in number default 0, ad_FYCKBH in number default 0, as_YHMSG0 out varchar, --存储过程提示的错误信息 as_SYSMSG out varchar, --系统提示的错误信息 as_BYLX00 in char default '0', --摆药类型 0 人工摆药 1 机器摆药 as_SFZDDY in char default '0' --是否自动打印 0 自动打印 1 不自动打印 机器摆药时不自动打印 ) as -- MODIFICATION HISTORY -- Person Date Comments -- CSF 2011.05.10 插入处方队列 -- CSF 2011.05.15 如果处方中的药品只包含通用字典中描述的不进入排号队列的药品,以病人未取药的所有处方为判断范围而不是判断一张处方。 -- CSF 2011.06.17 同个病人取原有的窗口要时候,若原有窗口为0还是要重新取 -- CSF 2011.06.20 发药窗口为0时候,把配药窗口也改为0 -- CSF 2011.11.09 毒麻(dpdj00>0 or mzdj00>0)处方不进入排号队列 用参数控制PY_DMCFSFBJRPHDL -- laijg 2011.12.23 针对中药代煎处方,启用中药代煎管理系参数情况下调用SP_PY_INSERTJYXX by YFPY-20111205-001 -- CSF 2012.02.29 取号时候,取病人原窗口处方必须判断原窗口开启且存在对应开启的发药窗口 YFQH-20120225-001 -- laijg 2012.03.29 通过设置参数 实现两费保健、离休老干部、85岁以上老人等分费别分年龄的优先排队 by YFPY-20120313-002 -- csf 2012.04.13 按BM_CKBMMX表的记录,判断某些开单科室的处方指定到具体的窗口。 YFPY-20120405-001 -- laijg 2012.05.24 YFPY-20111205-001,该需求的功能加个参数控制 by YFPY-20120524-001 -- csf 2012.06.05 YFPY-20120605-001,SP_PY_SCPHDL,取不到窗口值的时候,应将pyckbh和fyckbh置成0. -- laijg 2013.05.16 病人有两张处方时,在排号时会打出两张排队条码,而且会在不同的窗口取药,原因处方单格式在打开的窗口都不满足情况,取配药发药窗口再加一茬 by YFQH-20130305-001 -- daihq 2015.09.11 省二增加指定类别病人(高干病人)专窗 for YFPY-20150825-001 -- dsm 2015.10.20 省二代煎和普通自煎处方的配药窗口要分开 for YFPY-20151015-001 -- dsm 2015.10.20 MZPY_WHNLYXPDNEW此参数只要作用于某些药房 for YFPY-20151019-001 -- dsm 2015.12.03 增加参数MZPY_JSDJYPSFPD控制精神类处方是否进入排队叫号,MZPY_CXCFBJINRDL(冲销处方是否排队) for YFPY-20151130-005 -- dsm 2017.10.10 增加分配配药员for YFPY-20170718-002 -- huangjy 2018.06.06 增加当前窗口平均分配不按之前分配数多少分配 YFPY-20161212-001 -- huangjy 2018.08.06 摆药机增加处方队列写入BYLX00,SFZDDY字段 by YF-20180728-002 -- huangjy 2019.08.27 增加单处方自备药不进去排号 by YFPY-20190821-001 -- dsm 2020.08.07 鲤城不进入队列 for YF-20200807-001 -- huangjy 2020.09.07 修正单处方自备药不进去排号 by YFPY-20200901-001 -- dsm 2020.09.09 互联网处方如果通过BM_TYZD00.ZDMC00='互联网处方药房窗口'配置专窗 for YFPY-20200909-001 -- huangjy 2021.01.04 增加不进入排队的部门科室 by YFPY-20201224-001 -- dsm 2021.02.25 省二互联网处方不进入队列 for YFPY-20210209-001 -- huangjy 2021.12.17 协定方窗口配置专窗 for YF-20211027-001 -- huangjy 2022.01.24 协定方窗口配置专窗,普通处方不能走协定方专窗 for YFPY-20220124-002 -- dsm 2022.08.08 泉州人民 处方打印后,队列号就不能再被合并 for YFPY-20220622-001 -- huangjy 2022.11.01 莆田中药代煎处方指定发药窗口 for YFPY-20221018-002 -- huangjy 2022.11.10 过滤中药代煎处方专窗 for MZYS-20221014-003 -- huangjy 2022.11.18 屏蔽掉艾隆云药房中间状态a for YFPY-20221118-001 -- huangjy 2022.12.15 协定方如果没有配置药房取自动分配的窗口,不需要走专窗 for YFPY-20221128-001 -- --------- ---------- -------------------------------------------------------------------------------------------------- ls_CFZJE0 YF_MZCF00.CFZJE0%TYPE; --处方总金额 ls_BRID00 YF_MZCF00.BRID00%TYPE; ls_GHH000 YF_MZCF00.GHH000%TYPE; ls_GHID00 YF_MZCF00.GHID00%TYPE; ls_BRXM00 YF_MZCF00.BRXM00%TYPE; ls_XB0000 YF_MZCF00.XB0000%TYPE; ls_CSRQ00 YF_MZCF00.CSRQ00%TYPE; ls_YBID00 BM_BRXXB0.YBID00%TYPE; ls_FBBH00 BM_BRXXB0.FBBH00%TYPE; ls_YBLB00 BM_BRXXB0.YBLB00%TYPE; ls_YBBRLB BM_BRXXB0.YBBRLB%TYPE; ls_SRRQ00 YF_MZCF00.SRRQ00%TYPE; ls_SRSJ00 YF_MZCF00.SRSJ00%TYPE; ls_YSGZH0 YF_MZCF00.YSGZH0%TYPE; ls_SSKS00 YF_MZCF00.SSKS00%TYPE; ls_GHKS00 YF_MZCF00.GHKS00%TYPE; ls_YFBMBH YF_MZCF00.YFBMBH%TYPE; ls_PSZT00 YF_MZCF00.PSZT00%TYPE; ls_ZYTS00 YF_MZCF00.ZYTS00%TYPE; ls_CFZT00 YF_MZCF00.CFZT00%TYPE; ls_BCCFH0 YF_MZCF00.BCCFH0%TYPE; ls_CFDGS0 VARCHAR2(10); ls_SFDM00 BM_YPLB00.SFDM00%TYPE; ls_SFXMMC BM_YPLB00.SFXMMC%TYPE; ls_DLXH00 YF_CFDL00.DLXH00%TYPE; ls_PYCKBH YF_CFDL00.PYCKBH%TYPE; --配药窗口编码 ls_FYCKBH YF_CFDL00.FYCKBH%TYPE; --发药窗口编码 ls_ZFBL00 SF_FYMX00.ZFBL00%TYPE; ls_GFBL00 SF_FYMX00.ZFBL00%TYPE; ls_ZFJE00 SF_FYMX00.ZFJE00%TYPE; ls_GFJE00 SF_FYMX00.GFJE00%TYPE; ls_JZJE00 SF_FYMX00.JZJE00%TYPE; ls_HJJE00 SF_FYMX00.HJJE00%TYPE; ls_QZFJE0 SF_FYMX00.QZFJE0%TYPE; ls_djh000 YF_MZCF00.DJH000%TYPE;--收费单据号 --P_CFMXJE_CZFS XT_XTCS00.VALUE0%TYPE; --P_CFZJE_CZFS XT_XTCS00.VALUE0%TYPE; --P_CFZJE_SRWS XT_XTCS00.VALUE0%TYPE; --P_CFMXJE_SRWS XT_XTCS00.VALUE0%TYPE; V_DJZYCFBJRCFDL XT_XTCS00.VALUE0%TYPE; ls_CZRQ00 CHAR(8); ls_CZSJ00 CHAR(8); ls_MZPY_YYGXH CHAR(10); --医院配药个性化参数 ls_SFKSLY YF_MZCF00.SFKSLY%TYPE; --Modified on 2001-11-02 V_ZYDJS0 YF_MZCF00.ZYDJS0%TYPE; V_YPDLBH YF_MZCF00.YPDLBH%TYPE; V_JYSFDM BM_YYSFXM.SFXMID%TYPE; --中药煎药费收费代码 V_JYSFMC BM_YYSFXM.XMMC00%TYPE; --中药煎药费收费名称 --V_JYSFJE BM_YYSFXM.SFJE00%TYPE; --中药煎药费收费金额 v_counter number; v_SFCFZYJJ CHAR(1);--处方是否转预交金,Y转 N不转 V_COUNT0 number(3,0); V_CFLSH0_temp00 varchar2(40);--临时处方流水号; ls_CFLSH0_temp00 varchar2(40);--临时处方流水号; V_CFLSH0 YF_MZCF00.cflsh0%type;--处方流水号 V_SFDJFD Xt_XTCS00.value0%type;--是否代煎分单 V_SFBFDJ Number(2); L number(2); I number(2); J number(2); ls_YHMSG0 varchar2(400); ls_SYSMSG varchar2(400); V_SFQYDJGLGN Xt_XTCS00.value0%type;--是否启用中药代煎管理系统 V_DJDH00 number;--返回代煎单号 V_FBBH00 sf_brxxb0.fbbh00%TYPE; V_YBZXLB sf_brxxb0.ybzxlb%TYPE; V_YBBRLB sf_brxxb0.ybbrlb%TYPE; V_WHNLYXPD XT_XTCS00.VALUE0%TYPE; --维护年龄优先排队 V_WHBTLBBRYXPD XT_XTCS00.VALUE0%TYPE; --维护不同类别病人优先排队 V_SCPHDLSFCRJYXX XT_XTCS00.VALUE0%TYPE; --生成排号队列时是否插入煎药信息 V_SCPHDLSFAKQCKPJFP XT_XTCS00.VALUE0%TYPE; --生成排号队列时是否按开启窗口平均分配 V_NL NUMBER; V_WHBTBR VARCHAR(20); DJFD_ERR exception; V_WHNLYXPDNEW varchar2(100); v_GLBRJZYCKYFBMBH varchar2(100); V_SJDJ00 number(5); LS_YPPZS0 number(5); LS_PYR000 YF_CFDL00.PYR000%type; v_counter_ZBY number(5); ls_SJLY00 SF_BRXXB0.SJLY00%type; ls_HLWPYCK varchar2(100); ls_HLWFYCK varchar2(100); ls_SFQYHLWCK varchar2(10); V_YYID00 varchar2(20); ls_HLWCFSFPH varchar2(20); --互联网处方是否排号 MZPY_SFKQBYJFYE varchar2(10); MZPY_SFKQBYJFYE_YF varchar2(100); ls_XDFBZ0 YF_MZCF00.XDFBZ0%type; ls_XDPYCK BM_CKBM00.CKBH00%type; ls_XDFYCK BM_CKBM00.CKBH00%type; ls_DLXHZT varchar2(50); --MZPY_DLXHZT 多张处方时,发药队列序号重新生成的状态,默认值-1 ls_ZYDJCFBZ number(5); ls_ZYDJCFPYCK BM_CKBM00.CKBH00%type; --中药代煎处方配药窗口 ls_ZYDJCFFYCK BM_CKBM00.CKBH00%type; --中药代煎处方发药窗口 BEGIN select count(*) into v_counter from YF_CFDL00 where CFLSH0=AS_CFLSH0; if v_counter>0 then return; end if; --鲤城不进入队列 /*select count(*) into v_counter from YF_MZCF00 a,BM_BMBM00 c where CFLSH0=AS_CFLSH0 and a.GHKS00=c.BMBH00 and c.YYID00='22508A'; if v_counter>0 then return; end if; */ --精神等级>0的药品不排队 select count(*) into v_counter from XT_XTCS00 where NAME00='MZPY_JSDJYPSFPD' and VALUE0='N' ; if v_counter>0 then select count(*) into V_SJDJ00 from YF_MZCFMX a,BM_YD0000 b where a.CFLSH0=V_CFLSH0 and a.YPNM00=b.YPNM00 and nvl(SJDJ00,0)>0; if V_SJDJ00>0 then return; end if; end if; --(通用字典)门诊处方不进入排号队列 的科室 select count(*) into v_counter from YF_MZCF00 a where CFLSH0=AS_CFLSH0 and exists (select 1 from BM_TYZD00 where ZDMC00='门诊处方不进入排号队列的科室' and BH0000=a.GHKS00); if v_counter>0 then return; end if; -- 毒麻处方是否(含dpdj00>0 or mzdj00>0)不进入排号队列 select count(*) into v_counter from XT_XTCS00 where NAME00='PY_DMCFSFBJRPHDL' and VALUE0='Y'; if v_counter>0 then select count(*) into v_counter from YF_MZCFMX a,BM_YD0000 b where a.CFLSH0=AS_CFLSH0 and a.YPNM00=b.YPNM00 and (b.DPDJ00>0 or b.MZDJ00>0); if v_counter>0 then return; end if; end if; --被冲销处方是否不排队 select count(*) into v_counter from XT_XTCS00 where NAME00='MZPY_CXCFBJINRDL' and VALUE0='N' ; if v_counter>0 then select count(*) into v_counter from YF_MZCF00 a where CFLSH0=AS_CFLSH0 and exists(select 1 from YF_MZCF00 where GHID00=a.GHID00 and BCCFH0=a.CFLSH0); if v_counter>0 then return; end if; select count(*) into v_counter from YF_MZCF00 a where CFLSH0=AS_CFLSH0 and BCCFH0 is not null and not exists(select 1 from YF_CFDL00 where CFLSH0=a.BCCFH0 and GHID00=a.GHID00); if v_counter>0 then --如果正的处方没有排号,负数处方也不排 return; end if; end if; --单处方自备药不排队 for YFPY-20190821-001 YFPY-20200901-001 select count(*) into v_counter_ZBY from YF_MZCFMX a where a.CFLSH0=AS_CFLSH0 and a.SFZBY0='Y'; select count(*) into v_counter from YF_MZCFMX a where a.CFLSH0=AS_CFLSH0 ; if (v_counter_ZBY=v_counter ) and (v_counter>=1 ) then return; end if; begin select NVL(A.BRID00,0),SFKSLY,A.PSZT00,B.SFDM00,B.SFXMMC,A.SRRQ00,A.SRSJ00,A.YSGZH0,A.SSKS00,A.GHKS00,A.YFBMBH, A.ZYTS00,A.ZYDJS0,A.YPDLBH,A.GHID00,A.GHH000,A.BRXM00,A.XB0000,A.CSRQ00,A.CFZT00,A.BCCFH0,A.CFDGS0||','||decode(A.ZYDJS0,0,A.YPDLBH,'6'), A.DJH000,A.CFZJE0,(select nvl(SJLY00,'0') from SF_BRXXB0 where GHID00=a.GHID00 ) SJLY00 into ls_BRID00,ls_SFKSLY,ls_PSZT00,ls_SFDM00,ls_SFXMMC,ls_SRRQ00,ls_SRSJ00,ls_YSGZH0,ls_SSKS00,ls_GHKS00,ls_YFBMBH, ls_ZYTS00,V_ZYDJS0,V_YPDLBH,ls_GHID00,ls_GHH000,ls_BRXM00,ls_XB0000,ls_CSRQ00,ls_CFZT00,ls_BCCFH0,ls_CFDGS0,ls_DJH000,LS_CFZJE0,ls_SJLY00 from YF_MZCF00 A,BM_YPLB00 B where A.YPDLBH = B.LBBH00 and A.CFLSH0 = AS_CFLSH0 ; exception when NO_DATA_FOUND then as_YHMSG0:='处方(CFLSH0='''||as_CFLSH0||''')不存在,登记非法!'; as_SYSMSG:=SQLERRM; rollback; return; end; begin select a.FBBH00,a.YBZXLB,a.YBBRLB,SF_YS_CSRQTONL(a.CSRQ00) into V_FBBH00,V_YBZXLB,V_YBBRLB,V_NL from SF_BRXXB0 a,YF_MZCF00 b where a.GHID00=b.GHID00 and b.CFLSH0=AS_CFLSH0; exception when NO_DATA_FOUND then as_YHMSG0:='处方(CFLSH0='''||as_CFLSH0||''')未收费,登记非法!'; as_SYSMSG:=SQLERRM; rollback; return; end; V_WHBTBR:=';'||to_char(V_FBBH00)||','||V_YBZXLB||','||V_YBBRLB||';'; --是否启用互联网窗口2020.09.09 select nvl(max(trim(MC0000)),'N') into ls_SFQYHLWCK from BM_TYZD00 where ZDMC00='互联网处方药房窗口' and BH0000='MZPYHLW_OPEN'; if ls_SFQYHLWCK='Y' then --配药窗口 select nvl(max(trim(MC0000)),'0') into ls_HLWPYCK from BM_TYZD00 where ZDMC00='互联网处方药房窗口' and BH0000='MZPY_HLWPYCK' and WBSM00=trim(ls_YFBMBH); --发药窗口 select nvl(max(trim(MC0000)),'0') into ls_HLWFYCK from BM_TYZD00 where ZDMC00='互联网处方药房窗口' and BH0000='MZPY_HLWFYCK' and WBSM00=trim(ls_YFBMBH); end if; --YFPY-20210209-001 select nvl(max(trim(MC0000)),'Y') into ls_HLWCFSFPH from BM_TYZD00 where ZDMC00='互联网处方药房窗口' and BH0000='HLWCFSFPH'; if ls_HLWCFSFPH='N' and ls_SJLY00='2' then --互联网处方不排号 return; end if; --协定处方 for YF-20211027-001 ls_XDPYCK:=-1; ls_XDFYCK:=-1; select nvl(MAX(XDFBZ0),'0') into ls_XDFBZ0 from YF_MZCF00 where CFLSH0= AS_CFLSH0; if ls_XDFBZ0='1' then --配药窗口 select nvl(max(trim(BH0000)),'0') into ls_XDPYCK from BM_TYZD00 where ZDMC00='协定方药房配药窗口' and DJ0000=trim(ls_YFBMBH) and YXBZ00='1'; --发药窗口 select nvl(max(trim(BH0000)),'0') into ls_XDFYCK from BM_TYZD00 where ZDMC00='协定方药房发药窗口' and DJ0000=trim(ls_YFBMBH) and YXBZ00='1'; end if; --中药代煎处方 for YFPY-20221018-002 ls_ZYDJCFPYCK:=0; ls_ZYDJCFFYCK:=0; if V_ZYDJS0>0 then --配药窗口 begin select to_number(trim(BH0000)) into ls_ZYDJCFPYCK from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and MC0000='配药窗口' and DJ0000=trim(ls_YFBMBH) and YXBZ00='1'; --发药窗口 select to_number(trim(BH0000)) into ls_ZYDJCFFYCK from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and MC0000='发药窗口' and DJ0000=trim(ls_YFBMBH) and YXBZ00='1'; exception when others then ls_ZYDJCFPYCK:=0; ls_ZYDJCFFYCK:=0; end; end if; --取参数有待煎的中药处方是否不进入处方配药队列 begin select trim(Value0) into V_DJZYCFBJRCFDL from XT_XTCS00 where NAME00='MZPY_DJZYCFBJRCFDL'; exception when others then V_DJZYCFBJRCFDL:='N'; end; --是否启用中药代煎管理系统 begin select trim(Value0) into V_SFQYDJGLGN from XT_XTCS00 where NAME00='YF_SFQYDJGLGN'; exception when others then V_SFQYDJGLGN:='N'; end; --维护年龄优先排队 begin select trim(Value0) into V_WHNLYXPD from XT_XTCS00 where NAME00='MZPY_WHNLYXPD'; exception when others then V_WHNLYXPD:='0'; end; --维护不同类别病人优先排队 begin select trim(Value0) into V_WHBTLBBRYXPD from XT_XTCS00 where NAME00='MZPY_WHBTLBBRYXPD'; exception when others then V_WHBTLBBRYXPD:='N'; end; v_GLBRJZYCKYFBMBH:='0'; --维护年龄优先排队,年龄:YFBMBH1,YFBMBH2 begin select nvl(max(trim(Value0)),0) into V_WHNLYXPDNEW from XT_XTCS00 where NAME00='MZPY_WHNLYXPDNEW'; v_counter:=instr(V_WHNLYXPDNEW,':'); if v_counter>0 then v_GLBRJZYCKYFBMBH:=substr(V_WHNLYXPDNEW,v_counter+1,100); V_WHNLYXPDNEW:=substr(V_WHNLYXPDNEW,1,v_counter-1); else v_GLBRJZYCKYFBMBH:='0'; end if; exception when others then V_WHNLYXPDNEW:='0'; v_GLBRJZYCKYFBMBH:='0'; end; if V_WHNLYXPDNEW<>'0' then if instr(','||v_GLBRJZYCKYFBMBH||',',','||ls_YFBMBH||',')=0 then V_WHNLYXPDNEW:='0'; end if; end if; --生成排号队列时是否插入煎药信息 begin select trim(Value0) into V_SCPHDLSFCRJYXX from XT_XTCS00 where name00='MZPY_SCPHDLSFCRJYXX'; exception when others then V_SCPHDLSFCRJYXX:='N'; end; --取参数生成排号队列时是否按开启窗口平均分配 begin select trim(Value0) into V_SCPHDLSFAKQCKPJFP from XT_XTCS00 where name00='MZPY_SCPHDLSFAKQCKPJFP'; exception when others then V_SCPHDLSFAKQCKPJFP:='N'; end; MZPY_SFKQBYJFYE:='0'; --begin -- select trim(Value0) into MZPY_SFKQBYJFYE from XT_XTCS00 where name00='MZPY_SFKQBYJFYE'; -- if MZPY_SFKQBYJFYE='1' then -- select trim(MC0000) into MZPY_SFKQBYJFYE_YF from bm_tyzd00 where zdmc00='艾隆云药房接口' and BH0000='yyfbmbh'; -- end if; --exception -- when others then -- MZPY_SFKQBYJFYE:='0'; --end; --if instr(','||MZPY_SFKQBYJFYE_YF||',',','||ls_YFBMBH||',')>0 then -- MZPY_SFKQBYJFYE:='1'; --else -- MZPY_SFKQBYJFYE:='0'; --end if; ls_DLXHZT:=',0,1,2,'; begin --泉州人民ls_DLXHZT:='0' 打印后就不能合并了 select trim(VALUE0) into ls_DLXHZT from XT_XTCS00 where name00='MZPY_DLXHZT' ; if ls_DLXHZT='-1' then ls_DLXHZT:='0,1,2'; end if; ls_DLXHZT:=','||ls_DLXHZT||','; exception when others then ls_DLXHZT:=',0,1,2,'; end; /*省二中药待煎处方不进入处方配药队列 开始*/ if NOT ((V_DJZYCFBJRCFDL='Y') and (V_YPDLBH='2') AND (V_ZYDJS0>0) ) THEN --医院配药个性化参数 select substrb(nvl(max(trim(value0)),'0'),1,1) into ls_MZPY_YYGXH from XT_XTCS00 where name00='MZPY_YYGXH'; --Modify on 2002-12-01, At 广州,添加处方队列表 if ls_SFQYHLWCK='Y' and ls_SJLY00='2' and ls_HLWPYCK<>'0' and ls_HLWFYCK<>'0' then --互联网专窗 ls_PYCKBH:=ls_HLWPYCK; ls_FYCKBH:=ls_HLWFYCK; elsif (ls_ZYDJCFPYCK>0) and (ls_ZYDJCFFYCK>0) and (V_YPDLBH='2') and (V_ZYDJS0>0) then ls_PYCKBH:=ls_ZYDJCFPYCK; ls_FYCKBH:=ls_ZYDJCFFYCK; elsif (NVL(ad_PYCKBH,0)<>0)and(NVL(ad_FYCKBH,0)<>0) then ls_PYCKBH:=ad_PYCKBH; ls_FYCKBH:=ad_FYCKBH; elsif ls_MZPY_YYGXH='1' then --省二模式,配药窗口和发药窗口交叉。 ls_PYCKBH:=0; --省二增加指定类别病人(高干病人)专窗,指定类别在BM_CKBMMX.CZD000中维护 //指定科室指定发往窗口 --维护不同类别病人,格式为:sf_brxxb0.fbbh00,sf_brxxb0.ybzxlb,sf_brxxb0.ybbrlb 一组数值用逗号隔开,多组用;隔开 select count(*) into v_counter from BM_CKBM00 a,BM_CKBMMX b where a.CKBH00=b.CKBH00 and b.JLFL00='0' and b.CZD000 is not null and (instrb(';'||b.CZD000||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPDNEW) and to_number(V_WHNLYXPDNEW)>0) ) and a.ZT0000='0' and a.FLAG00='2' and a.BMBH00=ls_YFBMBH; if v_counter>0 then --这里需要注意的是,虽然指定了科室,但病人满足到优先窗口条件时候,优先窗口优先 select nvl(max(a.PYCKBH),0) into ls_PYCKBH from YF_CFDL00 a where a.brid00=ls_BRID00 and a.YFBMBH=ls_YFBMBH --and ZT0000 in ('0','1','2') and instr(ls_DLXHZT,','||ZT0000||',')>0 and exists (select 1 from BM_CKBM00 where a.PYCKBH=CKBH00 and ZT0000 in ('0') and instrb(nvl(CFDGS0,'0,1,2,3,4,5'),nvl(substrb(ls_CFDGS0,1,1),'0'))>0 and instrb(nvl(YPDLBH,'0,1,2,3,4,5,6'),nvl(substrb(ls_CFDGS0,3,1),'0'))>0 and ((nvl(BRYXPD,'N')='Y' and (instrb(';'||V_WHBTLBBRYXPD||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPD)))) or (nvl(BRYXPD,'N')='N' and V_WHBTLBBRYXPD='N' and V_WHNLYXPD='0') ) ) and exists (select 1 from BM_CKBMMX where CKBH00=a.PYCKBH and JLFL00='0' and CZD000 is not null and (instrb(';'||CZD000||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPDNEW) and to_number(V_WHNLYXPDNEW)>0) )) --该配药窗口存在对应的开启状态的发药窗口 and exists (select 1 from BM_CKDY00 b,BM_CKBM00 c where b.SCKBH0=a.PYCKBH and b.DCKBH0=c.CKBH00 and c.ZT0000='0') --过滤掉协定方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='协定方药房配药窗口' and DJ0000=trim(a.YFBMBH) and BH0000=a.PYCKBH and YXBZ00='1') --过滤中药代煎处方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and DJ0000=trim(a.YFBMBH) and BH0000=a.PYCKBH and YXBZ00='1') and a.PYCKBH>0 ; end if; if ls_PYCKBH=0 then --判断是否开单科室是否指定发往窗口。 //指定科室指定发往窗口 select count(*) into v_counter from BM_CKBM00 a,BM_CKBMMX b where a.CKBH00=b.CKBH00 and b.JLFL00='0' and b.NZD000=ls_GHKS00 and a.ZT0000='0' and a.FLAG00='2' and a.BMBH00=ls_YFBMBH; if v_counter>0 then --这里需要注意的是,虽然指定了科室,但病人满足到优先窗口条件时候,优先窗口优先 select nvl(max(a.PYCKBH),0) into ls_PYCKBH from YF_CFDL00 a where a.brid00=ls_BRID00 and a.YFBMBH=ls_YFBMBH --and ZT0000 in ('0','1','2') and instr(ls_DLXHZT,','||a.ZT0000||',')>0 and exists (select 1 from BM_CKBM00 d where a.PYCKBH=CKBH00 and ZT0000 in ('0') and ((nvl(d.ypdlbh,'0')='6' and V_ZYDJS0>0) or (nvl(d.ypdlbh,'0')<>'6' and V_ZYDJS0=0)) and instrb(nvl(CFDGS0,'0,1,2,3,4,5'),nvl(substrb(ls_CFDGS0,1,1),'0'))>0 and instrb(nvl(YPDLBH,'0,1,2,3,4,5,6'),nvl(substrb(ls_CFDGS0,3,1),'0'))>0 and ((nvl(BRYXPD,'N')='Y' and (instrb(';'||V_WHBTLBBRYXPD||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPD)))) or (nvl(BRYXPD,'N')='N' and V_WHBTLBBRYXPD='N' and V_WHNLYXPD='0') ) ) and exists (select 1 from BM_CKBMMX where CKBH00=a.PYCKBH and JLFL00='0' and NZD000=ls_GHKS00) --该配药窗口存在对应的开启状态的发药窗口 and exists (select 1 from BM_CKDY00 b,BM_CKBM00 c where b.SCKBH0=a.PYCKBH and b.DCKBH0=c.CKBH00 and c.ZT0000='0') --过滤掉协定方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='协定方药房配药窗口' and DJ0000=trim(a.YFBMBH) and BH0000=a.PYCKBH and YXBZ00='1') --过滤中药代煎处方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and DJ0000=trim(a.YFBMBH) and BH0000=a.PYCKBH and YXBZ00='1') and a.PYCKBH>0 ; end if; end if; if (ls_PYCKBH=0) then begin --配药窗口尽量取同一配药窗口,避免病人多窗口等待(原则:配药窗口开放,处方未发药的) select a.PYCKBH into ls_PYCKBH from YF_CFDL00 a where a.brid00=ls_BRID00 and a.YFBMBH=ls_YFBMBH --and ZT0000 in ('0','1','2') and instr(ls_DLXHZT,','||a.ZT0000||',')>0 and exists (select 1 from BM_CKBM00 d where a.PYCKBH=CKBH00 and ZT0000 in ('0') and ((nvl(d.ypdlbh,'0')='6' and V_ZYDJS0>0) or (nvl(d.ypdlbh,'0')<>'6' and V_ZYDJS0=0)) and instrb(nvl(CFDGS0,'0,1,2,3,4,5'),nvl(substrb(ls_CFDGS0,1,1),'0'))>0 and instrb(nvl(YPDLBH,'0,1,2,3,4,5,6'),nvl(substrb(ls_CFDGS0,3,1),'0'))>0 and ((nvl(BRYXPD,'N')='Y' and (instrb(';'||V_WHBTLBBRYXPD||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPD)))) or (nvl(BRYXPD,'N')='N' and V_WHBTLBBRYXPD='N' and V_WHNLYXPD='0') ) ) and not exists (select 1 from BM_CKBMMX where CKBH00=a.PYCKBH and JLFL00='0' and ((NZD000<>ls_GHKS00) or (instrb(';'||CZD000||';',V_WHBTBR)<=0))) --该配药窗口存在对应的开启状态的发药窗口 and exists (select 1 from BM_CKDY00 b,BM_CKBM00 c where b.SCKBH0=a.PYCKBH and b.DCKBH0=c.CKBH00 and c.ZT0000='0') --过滤掉协定方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='协定方药房配药窗口' and DJ0000=trim(a.YFBMBH) and BH0000=a.PYCKBH and YXBZ00='1') --过滤中药代煎处方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and DJ0000=trim(a.YFBMBH) and BH0000=a.PYCKBH and YXBZ00='1') and rownum=1 and a.PYCKBH>0 ; exception when others then ls_PYCKBH :=0; end; end if; if ls_PYCKBH=0 then begin --配药窗口尽量取同一配药窗口,避免病人多窗口等待(原则:配药窗口开放,处方未发药的) select a.PYCKBH into ls_PYCKBH from YF_CFDL00 a where a.brid00=ls_BRID00 and a.YFBMBH=ls_YFBMBH --and ZT0000 in ('0','1','2') and instr(ls_DLXHZT,','||a.ZT0000||',')>0 and exists (select 1 from BM_CKBM00 d where a.PYCKBH=CKBH00 and ZT0000 in ('0') and ((nvl(d.ypdlbh,'0')='6' and V_ZYDJS0>0) or (nvl(d.ypdlbh,'0')<>'6' and V_ZYDJS0=0)) ) --for YFPY-20151015-001 -- and instrb(nvl(CFDGS0,'0,1,2,3,4,5'),nvl(substrb(ls_CFDGS0,1,1),'0'))>0 -- and instrb(nvl(YPDLBH,'0,1,2,3,4,5,6'),nvl(substrb(ls_CFDGS0,3,1),'0'))>0 -- and ((nvl(BRYXPD,'N')='Y' and (instrb(';'||V_WHBTLBBRYXPD||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPD)))) -- or (nvl(BRYXPD,'N')='N' and V_WHBTLBBRYXPD='N' and V_WHNLYXPD='0') ) ) -- and not exists (select 1 from BM_CKBMMX where CKBH00=a.PYCKBH and JLFL00='0' and NZD000<>ls_GHKS00) --2015.09.11 daihq add for YFPY-20150825-001 --配药窗口不取有指定类别的病人使用的窗口 CZD000维护的值和参数MZPY_WHBTLBBRYXPD一样 and not exists (select 1 from BM_CKBMMX where CKBH00=a.PYCKBH and JLFL00='0' and instrb(';'||CZD000||';',V_WHBTBR)<=0) --该配药窗口存在对应的开启状态的发药窗口 and exists (select 1 from BM_CKDY00 b,BM_CKBM00 c where b.SCKBH0=a.PYCKBH and b.DCKBH0=c.CKBH00 and c.ZT0000='0') --过滤掉协定方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='协定方药房配药窗口' and DJ0000=trim(a.YFBMBH) and BH0000=a.PYCKBH and YXBZ00='1') --过滤中药代煎处方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and DJ0000=trim(a.YFBMBH) and BH0000=a.PYCKBH and YXBZ00='1') and rownum=1 and a.PYCKBH>0 ; exception when others then --病人没有特殊制定窗口,没有尽量取同一配药窗口情况下,配药窗口重新取 BEGIN if V_SCPHDLSFAKQCKPJFP='Y' then SP_PY_GETCKBH(ls_YFBMBH,0,1,ls_CFDGS0,V_NL,ls_GHKS00,V_WHBTBR,0,ls_PYCKBH); -- 从过程中得到配药窗口 else ls_PYCKBH := SF_SF_GETCKBH(ls_YFBMBH,ad_SFCKBH,1,ls_CFDGS0,V_WHBTBR,V_NL,ls_GHKS00); --从函数中得到配药窗口 end if; EXCEPTION WHEN OTHERS THEN as_YHMSG0:='获取该处方的配药窗口失败,请稍候再试!'; as_SYSMSG:=SQLERRM||'SF_SF_GETCKBH('||to_char(ls_YFBMBH)||','||to_char(0)||',1)'; ROLLBACK; RETURN; END; end; end if; if V_SCPHDLSFAKQCKPJFP='Y' then update BM_CKBM00 set DLLS00=1 where CKBH00=ls_PYCKBH and FLAG00='2'; end if; --省二增加指定类别病人(高干病人)专窗,指定类别在BM_CKBMMX.CZD000中维护 --维护不同类别病人,格式为:sf_brxxb0.fbbh00,sf_brxxb0.ybzxlb,sf_brxxb0.ybbrlb 一组数值用逗号隔开,多组用;隔开 ls_FYCKBH:=0;--这里需要注意的是,虽然指定了科室,但病人满足到优先窗口条件时候,优先窗口优先 select count(*) into v_counter from BM_CKBM00 a,BM_CKBMMX b where a.CKBH00=b.CKBH00 and b.JLFL00='1' and b.CZD000 is not null and (instrb(';'||b.CZD000||';',V_WHBTBR)>0 or V_NL>=to_number(V_WHNLYXPDNEW)) and a.ZT0000='0' and a.FLAG00='3' and a.BMBH00=ls_YFBMBH; if v_counter>0 then select nvl(max(a.FYCKBH),0) into ls_FYCKBH from YF_CFDL00 a where a.brid00=ls_BRID00 and a.YFBMBH=ls_YFBMBH --and ZT0000 in ('0','1','2') and instr(ls_DLXHZT,','||a.ZT0000||',')>0 and exists (select 1 from BM_CKBM00 where a.FYCKBH=CKBH00 and ZT0000 in ('0') and instrb(nvl(CFDGS0,'0,1,2,3,4,5'),nvl(substrb(ls_CFDGS0,1,1),'0'))>0 and instrb(nvl(YPDLBH,'0,1,2,3,4,5,6'),nvl(substrb(ls_CFDGS0,3,1),'0'))>0 and ((nvl(BRYXPD,'N')='Y' and (instrb(';'||V_WHBTLBBRYXPD||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPD)))) or (nvl(BRYXPD,'N')='N' and V_WHBTLBBRYXPD='N' and V_WHNLYXPD='0') ) ) and exists (select 1 from BM_CKBMMX where CKBH00=a.FYCKBH and JLFL00='1' and CZD000 is not null and (instrb(';'||CZD000||';',V_WHBTBR)>0 or V_NL>=to_number(V_WHNLYXPDNEW))) --过滤掉协定方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='协定方药房发药窗口' and DJ0000=trim(a.YFBMBH) and BH0000=a.FYCKBH and YXBZ00='1') --过滤中药代煎处方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and DJ0000=trim(a.YFBMBH) and BH0000=a.FYCKBH and YXBZ00='1') and a.FYCKBH in (select DCKBH0 from BM_CKDY00 where SCKBH0=ls_PYCKBH) and rownum=1 and a.FYCKBH>0; end if; if ls_FYCKBH=0 then --判断是否开单科室是否指定发往窗口。 select count(*) into v_counter from BM_CKBM00 a,BM_CKBMMX b where a.CKBH00=b.CKBH00 and b.JLFL00='1' and b.NZD000=ls_GHKS00 and a.ZT0000='0' and a.FLAG00='3' and a.BMBH00=ls_YFBMBH; if v_counter>0 then select nvl(max(a.FYCKBH),0) into ls_FYCKBH from YF_CFDL00 a where a.brid00=ls_BRID00 and a.YFBMBH=ls_YFBMBH --and ZT0000 in ('0','1','2') and instr(ls_DLXHZT,','||a.ZT0000||',')>0 and exists (select 1 from BM_CKBM00 where a.FYCKBH=CKBH00 and ZT0000 in ('0') and instrb(nvl(CFDGS0,'0,1,2,3,4,5'),nvl(substrb(ls_CFDGS0,1,1),'0'))>0 and instrb(nvl(YPDLBH,'0,1,2,3,4,5,6'),nvl(substrb(ls_CFDGS0,3,1),'0'))>0 and ((nvl(BRYXPD,'N')='Y' and (instrb(';'||V_WHBTLBBRYXPD||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPD)))) or (nvl(BRYXPD,'N')='N' and V_WHBTLBBRYXPD='N' and V_WHNLYXPD='0') ) ) and exists (select 1 from BM_CKBMMX where CKBH00=a.FYCKBH and JLFL00='1' and NZD000=ls_GHKS00) --过滤掉协定方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='协定方药房发药窗口' and DJ0000=trim(a.YFBMBH) and BH0000=a.FYCKBH and YXBZ00='1') --过滤中药代煎处方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and DJ0000=trim(a.YFBMBH) and BH0000=a.FYCKBH and YXBZ00='1') and a.FYCKBH in (select DCKBH0 from BM_CKDY00 where SCKBH0=ls_PYCKBH) and rownum=1 and a.FYCKBH>0; end if; end if; if ls_FYCKBH=0 then begin --发药窗口尽量取同一发药窗口,避免病人多窗口等待(原则:发药窗口开放,处方未发药的) select a.FYCKBH into ls_FYCKBH from YF_CFDL00 a where a.brid00=ls_BRID00 and a.YFBMBH=ls_YFBMBH --and ZT0000 in ('0','1','2') and instr(ls_DLXHZT,','||a.ZT0000||',')>0 and exists (select 1 from BM_CKBM00 where a.FYCKBH=CKBH00 and ZT0000 in ('0') and instrb(nvl(CFDGS0,'0,1,2,3,4,5'),nvl(substrb(ls_CFDGS0,1,1),'0'))>0 and instrb(nvl(YPDLBH,'0,1,2,3,4,5,6'),nvl(substrb(ls_CFDGS0,3,1),'0'))>0 and ((nvl(BRYXPD,'N')='Y' and (instrb(';'||V_WHBTLBBRYXPD||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPD)))) or (nvl(BRYXPD,'N')='N' and V_WHBTLBBRYXPD='N' and V_WHNLYXPD='0') ) ) and not exists (select 1 from BM_CKBMMX where CKBH00=a.FYCKBH and JLFL00='1' and ((NZD000<>ls_GHKS00) or (instrb(';'||CZD000||';',V_WHBTBR)<=0))) and a.FYCKBH in (select DCKBH0 from BM_CKDY00 where SCKBH0=ls_PYCKBH) and rownum=1 --过滤掉协定方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='协定方药房发药窗口' and DJ0000=trim(a.YFBMBH) and BH0000=a.FYCKBH and YXBZ00='1') --过滤中药代煎处方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and DJ0000=trim(a.YFBMBH) and BH0000=a.FYCKBH and YXBZ00='1') and a.FYCKBH>0; exception when others then ls_FYCKBH :=0; end; end if; if ls_FYCKBH=0 then begin --发药窗口尽量取同一发药窗口,避免病人多窗口等待(原则:发药窗口开放,处方未发药的) select a.FYCKBH into ls_FYCKBH from YF_CFDL00 a where a.brid00=ls_BRID00 and a.YFBMBH=ls_YFBMBH --and ZT0000 in ('0','1','2') and instr(ls_DLXHZT,','||a.ZT0000||',')>0 and exists (select 1 from BM_CKBM00 where a.FYCKBH=CKBH00 and ZT0000 in ('0') ) -- and instrb(nvl(CFDGS0,'0,1,2,3,4,5'),nvl(substrb(ls_CFDGS0,1,1),'0'))>0 -- and instrb(nvl(YPDLBH,'0,1,2,3,4,5,6'),nvl(substrb(ls_CFDGS0,3,1),'0'))>0 -- and ((nvl(BRYXPD,'N')='Y' and (instrb(';'||V_WHBTLBBRYXPD||';',V_WHBTBR)>0 or (V_NL>=to_number(V_WHNLYXPD)))) or (nvl(BRYXPD,'N')='N' and V_WHBTLBBRYXPD='N' and V_WHNLYXPD='0') ) -- ) -- and not exists (select 1 from BM_CKBMMX where CKBH00=a.FYCKBH and JLFL00='1' and NZD000<>ls_GHKS00) --2015.09.11 daihq add for YFPY-20150825-001 --配药窗口不取有指定类别的病人使用的窗口 CZD000维护的值和参数MZPY_WHBTLBBRYXPD一样 and not exists (select 1 from BM_CKBMMX where CKBH00=a.FYCKBH and JLFL00='1' and instrb(';'||CZD000||';',V_WHBTBR)<=0) and a.FYCKBH in (select DCKBH0 from BM_CKDY00 where SCKBH0=ls_PYCKBH) and rownum=1 --过滤掉协定方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='协定方药房发药窗口' and DJ0000=trim(a.YFBMBH) and BH0000=a.FYCKBH and YXBZ00='1') --过滤中药代煎处方专窗 and not exists (select 1 from BM_TYZD00 where ZDMC00='中药代煎处方专窗配置' and DJ0000=trim(a.YFBMBH) and BH0000=a.FYCKBH and YXBZ00='1') and a.FYCKBH>0; exception when others then BEGIN if V_SCPHDLSFAKQCKPJFP='Y' then SP_PY_GETCKBH(ls_YFBMBH,ls_PYCKBH,2,ls_CFDGS0,V_NL,ls_GHKS00,V_WHBTBR,0,ls_FYCKBH); -- 从过程中得到配药窗口 else ls_FYCKBH := SF_SF_GETCKBH(ls_YFBMBH,ls_PYCKBH,2,ls_CFDGS0,V_WHBTBR,V_NL,LS_GHKS00); --从函数中得到发药窗口 end if; EXCEPTION WHEN OTHERS THEN as_YHMSG0:='获取该处方的发药窗口失败,请稍候再试!'; as_SYSMSG:=SQLERRM||'SF_SF_GETCKBH('||to_char(ls_YFBMBH)||','||to_char(ls_PYCKBH)||',2)'; ROLLBACK; RETURN; END; end; end if; if V_SCPHDLSFAKQCKPJFP='Y' then update BM_CKBM00 set DLLS00=1 where CKBH00=ls_FYCKBH and FLAG00='3'; end if; end if; --else --广东模式,现金记账且本次挂号处方一次记账 -- begin -- select a.PYCKBH,a.FYCKBH into ls_PYCKBH,ls_FYCKBH from YF_CFDL00 a,yf_mzcf00 b -- where a.cflsh0=b.cflsh0 and b.djh000=LS_DJH000 and a.YFBMBH=ls_YFBMBH -- and rownum=1 and a.PYCKBH<>0; --qks 2009.09.17 -- exception -- when others then -- BEGIN -- ls_PYCKBH := SF_SF_GETCKBH(ls_YFBMBH,ad_SFCKBH,1,ls_CFDGS0); --从函数中得到配药窗口 -- EXCEPTION -- WHEN OTHERS THEN -- as_YHMSG0:='获取该处方的配药窗口失败,请稍候再试!'; -- as_SYSMSG:=SQLERRM||'SF_SF_GETCKBH('||to_char(ls_YFBMBH)||','||to_char(0)||',1)'; -- ROLLBACK; -- RETURN; -- END; -- BEGIN -- ls_FYCKBH := SF_SF_GETCKBH(ls_YFBMBH,ls_PYCKBH,2,ls_CFDGS0); --从函数中得到发药窗口 -- -- EXCEPTION -- WHEN OTHERS THEN -- as_YHMSG0:='获取该处方的发药窗口失败,请稍候再试!'; -- as_SYSMSG:=SQLERRM||'SF_SF_GETCKBH('||to_char(ls_YFBMBH)||','||to_char(ls_PYCKBH)||',2)'; -- ROLLBACK; -- RETURN; -- END; -- end; --end if; IF NVL(TRIM(ls_SFKSLY),'N')='N' THEN -- zjf modif on 20030527 if (ls_FYCKBH=0) or (ls_PYCKBH=0) or (ls_FYCKBH is null) or (ls_PYCKBH is null) then ls_PYCKBH:=0; ls_FYCKBH:=0; end if; select count(*) into v_counter from XT_XTCS00 where name00='MZPY_PDJHSFFPDR' and instr(','||trim(VALUE0)||',',','||ls_YFBMBH||',')>0; select SQ_YF_CFDL00_DLXH00.nextval into ls_DLXH00 from dual; if v_counter>0 then LS_PYR000:=SF_PY_GETMRPYR(ls_YFBMBH); else LS_PYR000:=0; end if; if ls_XDFBZ0='1' and ls_XDPYCK>0 and ls_XDFYCK>0 then --协定方专窗 ls_PYCKBH:=ls_XDPYCK; ls_FYCKBH:=ls_XDFYCK; end if; Insert into YF_CFDL00(DLXH00,CFLSH0,YFBMBH,YPJE00,GHID00,GHH000,BRID00,BRXM00,XB0000,CSRQ00,PYCKBH,FYCKBH ,ZT0000,PYR000,BYLX00,SFZDDY) values(ls_DLXH00,as_CFLSH0,ls_YFBMBH,ls_CFZJE0,ls_GHID00,ls_GHH000,ls_BRID00,ls_BRXM00,ls_XB0000,ls_CSRQ00,ls_PYCKBH,ls_FYCKBH ,decode(MZPY_SFKQBYJFYE,'1','a','0') ,ls_PYR000,as_BYLX00,as_SFZDDY); select nvl(ZYTS00,1) into ls_ZYTS00 from YF_MZCF00 where CFLSH0=as_CFLSH0; if LS_PYR000>0 then ---YFPY-20170718-002 select count(*)*ls_ZYTS00 into LS_YPPZS0 from YF_MZCFMX where CFLSH0=as_CFLSH0 and SFZBY0='N'; update YF_CFDL00 set YPPZSL=LS_YPPZS0 where DLXH00= ls_DLXH00 ; update SF_PYRYB0 set DPYSL0=nvl(DPYSL0,0)+LS_YPPZS0 where YFBMBH=ls_YFBMBH and YGBH00=ls_PYR000; update YF_MZCF00 set PFR000=LS_PYR000 where CFLSH0=as_CFLSH0; end if; --if as_BYLX00='1' then -- update YF_CFDL00 set DYRQ00=to_char(sysdate,'YYYYMMDD'),DYSJ00=to_char(sysdate,'HH24:MI:SS') where DLXH00= ls_DLXH00; --end if; END IF; if V_SCPHDLSFCRJYXX='Y' then IF ((V_SFQYDJGLGN='Y') and (V_YPDLBH='2') AND (V_ZYDJS0>0) ) THEN --by YFPY-20111205-001 SP_PY_INSERTJYXX(as_CFLSH0,as_YHMSG0,as_SYSMSG,V_DJDH00); END if; end if; END IF; /*省二中药待煎处方不进入处方配药队列 结束*/ --本处不加事务,在Delphi客户端处理 EXCEPTION WHEN NO_DATA_FOUND THEN as_YHMSG0:='对应的处方不存在或已记过账,登记非法!'; as_SYSMSG:=SQLERRM; ROLLBACK; WHEN OTHERS THEN as_YHMSG0:='出错原因不详,请记录此信息并和系统管理员联系!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_PY_SCPHDL('||AS_CFLSH0||','||',as_YHMSG0,as_SYSMSG)',1,120); ROLLBACK; END;