CREATE OR REPLACE PROCEDURE SP_SST_MZ_UPDATE_JBXX_TKT( P_ZDBH00 in varchar2, --终端编号 P_FZXBH0 in varchar2, --参保机构代码 P_CARDNO in varchar2, --病人卡号 P_GXNR00 in varchar2, --更新内容(xml格式:) --节点编码说明:sfjzfp(是否精准扶贫) P_ZXZT00 out varchar2,--执行状态 0:失败 1:成功 P_ERRMSG out varchar2,--无法获取明细的错误信息,空表示正确 P_BYCC00 out varchar2 --备用出参 ) as -- MODIFICATION HISTORY -- Person Date Comments -- zhangyc 2019.10.09 create -- liaojh 2019.11.14 增加 SF_SST_GETICKH00_YKT(P_CARDNO)卡号转换,增加判断并修改sf_brxxb0和zy_brxxb0 -- --------- ---------- ------- LS_COUNT number(5); LS_CARDNO varchar2(220); --IC卡号 LS_BRID00 BM_BRXXB0.BRID00%type; --病人ID LS_SFJZFP BM_BRXXB0.SFJZFP%type; --是否精准扶贫,Y:是;N:不是 begin P_ZXZT00:='0'; P_ERRMSG:=''; --查找病人基本信息 select SF_SST_GETICKH00_YKT(P_CARDNO) into LS_CARDNO from dual; --xgh增加卡号转换查找病人信息 begin select a.BRID00 into LS_BRID00 from BM_BRXXB0 a,IC_YHXX00 b,IC_YBBRLB C where a.BRID00=b.BRID00 and a.FBBH00=C.FBBH00 and C.YBLB00=A.YBLB00 and b.ICKH00=LS_CARDNO and b.ZT0000 ='1' ; exception when no_data_found then P_ERRMSG:='未找到该病人的信息,请确认是否在院内已经建档登记!'; P_ZXZT00:='0'; return; end; --解析报文 begin select substrb(SF_SF_GETXMLNOTE('sfjzfp',P_GXNR00),1,2) into LS_SFJZFP from dual; exception when others then LS_SFJZFP:='N'; end; --xgh以下 --修改精准扶贫状态(1:是 0:否 或Y:是 N:否) 同窗口一样转成1是精准扶贫- --不是扶贫病人更新为0,只更原来是新精准扶贫的病人信息。 if (LS_SFJZFP='N' or LS_SFJZFP='0') then update BM_BRXXB0 set SFJZFP='0' where BRID00=LS_BRID00 and (SFJZFP='1' or SFJZFP='Y'); --update sf_brxxb0 set sfjzfp='0' where ghrq00=to_char(sysdate,'YYYYMMDD') and brid00=LS_BRID00; update zy_brxxb0 set sfjzfp='0' where (brzt00 like '1%' or brzt00 like '2%' or brzt00 like '3%') and brid00=LS_BRID00; end if; P_ZXZT00:='1';--执行状态 0:失败 1:成功 --修改精准扶贫状态(1:是 0:否 或Y:是 N:否) 同窗口一样转成1是精准扶贫-扶贫病人更新为1 if (LS_SFJZFP='Y' or LS_SFJZFP='1') then update BM_BRXXB0 set SFJZFP='1' where BRID00=LS_BRID00; update sf_brxxb0 set sfjzfp='1' where ghrq00=to_char(sysdate,'YYYYMMDD') and brid00=LS_BRID00; update zy_brxxb0 set sfjzfp='1' where (brzt00 like '1%' or brzt00 like '2%' or brzt00 like '3%') and brid00=LS_BRID00; end if; P_ZXZT00:='1';--执行状态 0:失败 1:成功 --xgh以上 exception when no_data_found then P_ERRMSG:=substrb(P_ERRMSG||'门诊基本信息修改错误!'||sqlerrm,1,255); when others then P_ERRMSG:=substrb(P_ERRMSG||'门诊基本信息修改错误!'||sqlerrm,1,255); end;