create or replace procedure ESB_YYQHQR( ZDBH00 in varchar2, --终端编号 cardno in varchar2, --卡号 PTID00 in varchar2, --平台预约ID --custname out varchar2, --病人姓名 --groupname out varchar2, --医生姓名 --qno000 out varchar2, --预约号 --czsj00 out varchar2, --就诊日期 --yyksmc out varchar2, --预约科室 --hzsj00 out varchar2, --候诊时间 outstr out varchar2, --错误信息 p_CURSOR out PKG_YY_QRY.MY_CURSOR --结果集游标 ) AS ls_yyid00 sf_yybrb0.yyid00%type; ls_BRID00 BM_BRXXB0.BRID00%type; ls_BRXM00 BM_BRXXB0.BRXM00%type; LS_CARDNO IC_YHXX00.ICKH00%type; LS_KMH000 IC_YHXX00.KMH000%type; LS_YGBH00 BM_YGBM00.YGBH00%type; LS_BMBH00 BM_YGBM00.BMBH00%type; ls_YYKSBH SF_YYBRB0.YYKSBH%type; ls_YYYSBH SF_YYBRB0.YYYSBH%type; as_YHMSG0 varchar2(255); as_SYSMSG varchar2(255); ls_YYZT00 SF_YYBRB0.YYZT00%type; ls_YYH000 SF_YYBRB0.YYH000%type; Pzxcgbz number; Pid0000 varchar2(255); ls_DDRS00 number(5); -- MODIFICATION HISTORY -- Person Date Comments -- qks 2013.03.13 增加入参cardno;使用姓名匹配,上午或下午只有一条预约记录情况下,才给予取号。 -- qks 2013.04.08 modify:出参信息 -- qks 2015.11.16 结果集游标 增加ZSDZ00 begin --获取自助机终端编号对应的收费员原编号 begin select a.YGBH00,b.BMBH00 into LS_YGBH00,LS_BMBH00 from VW_SST_YGBMDYXX a,BM_YGBM00 b where a.ZZJBH0=ZDBH00 and a.YGBH00=b.YGBH00; exception when no_data_found then outstr:='终端编号:'||ZDBH00||'在本院SST_YGBHDY表中未对应收费员!'; return; end; select SF_SST_GETICKH00_YKT(cardno) into LS_CARDNO from dual; begin select BRID00,KMH000 into ls_brid00,ls_KMH000 from IC_YHXX00 where ICKH00 =LS_CARDNO and ZT0000=1; exception WHEN NO_DATA_FOUND THEN outstr:='IC卡号:'||LS_CARDNO||'在本院未找到记录,请先【建档注册】!'; raise NO_DATA_FOUND; end; select yyid00,BRXM00,YYZT00,YYKSBH,YYYSBH,YYH000 into ls_yyid00,ls_BRXM00,ls_YYZT00,ls_YYKSBH,ls_YYYSBH,ls_YYH000 from SF_YYBRB0 where PTYYID=PTID00 ; outstr:=' '; if ls_YYZT00='0' then --SP_YY_YYZYGH_DGBR(ls_BRID00,to_number(id0000),outstr,as_SYSMSG); SP_YY_YYBRDYWH ( ls_yyid00 , --预约ID ls_BRID00 , --病人ID ls_BRXM00 , --病人姓名 ls_KMH000 , --卡面号 LS_CARDNO , --IC卡号 LS_YGBH00 , --操作员编码 LS_BMBH00 , --操作员科室 'N' , --是否提交 Pzxcgbz , --执行成功标志 1成功 0失败 outstr , --执行结果提示信息,成功的情况下也可能有警告信息 as_SYSMSG , --执行结果详细信息,成功的情况下也可能有警告信息,一般用来显示参数等指标 'N' , --是否扣预约费 Pid0000 --sf_hzbr00.id0000 ); end if; if nvl(outstr,' ')=' ' then /* select BRXM00 Custname, --病人姓名 YYYSXM groupname, --医生队列 YYH000 qno000, --预约号码 YYRQ00 visitdatetime, --就诊时间 YYKSMC, (select HZQSSJ from YS_HBHZXH where GHHBID=a.GHHBID and HZXH00=a.YYH000) HZSJ00 into Custname,groupname,qno000,czsj00,yyksmc,hzsj00 from SF_YYBRB0 a where YYID00=id0000; */ SELECT COUNT(1) into ls_DDRS00 FROM vw_ys_hzbr00 where jzks00=ls_YYKSBH and jzys00=ls_YYYSBH and dlxh00>0 and HZXH00