CREATE OR REPLACE PROCEDURE SP_OUTP_TURN_INPINFO_HTBL( P_BRID00 in NUMBER, --病人ID号 P_SQKS00 in NUMBER, --申请科室(门诊医师所在科室) P_YSGZH0 in NUMBER, --医师工作号 P_SQRQ00 in varchar2, --申请日期 P_SQSJ00 in varchar2, --申请时间,格式00:00:00 P_JSBZ00 in varchar2, --接收标志 '0'未接收;'1'已接收 P_JSRQ00 in varchar2, --接收日期 P_BQH000 in NUMBER, --接收病区 P_KSH000 in NUMBER, --接收科室 P_ZDMC00 in varchar2, --诊断名称 P_CH0000 in varchar2, --床号 P_ZDM000 in varchar2, --诊断码 P_FLAG in varchar2, --操作标识 P_ERRORCODE out varchar2, --返回错误代码 0 错误 1 成功 P_ERRORINFO out varchar2, --返回错误信息 P_SYSTEMINFO out varchar2, --返回系统错误信息 P_YSZID0 in number default 0, --诊疗组ID(ZS_YSZ000.YSZID0) P_BZ0000 in varchar2 --备注 ) as tem_BRID00 YS_BRZYSQ.BRID00%type; tem_ZYSQID YS_BRZYSQ.ZYSQID%type; lv_PARAMSTR varchar2(300); lv_ERRORCODE varchar2(20); ls_ZYH000 ZY_BRXXB0.ZYH000%type; -- Person Date Comments -- ZDLiu 2017.10.12 create -- linzy 2017.12.16 增加系统错误信息参数P_SYSTEMINFO返回; -- linshu 2019.01.16 增加入参诊疗组ID(ZS_YSZ000.YSZID0)保存到YS_BRZYSQ.YSZID0 by BQ-20190110-001; -- linshu 2019.03.27 增加入参;备注:P_BZ0000; by BQ-20190325-001; -- ------- ------------------ --------------------------- begin P_ERRORCODE:='0'; P_ERRORINFO:='同步住院信息失败!'; P_SYSTEMINFO:='同步住院信息失败!'; lv_ERRORCODE:='01'; lv_PARAMSTR:='['||'P1='||P_BRID00||',P2='||P_SQKS00||',P3='||P_YSGZH0||',P4='||P_SQRQ00||',P5='||P_SQSJ00||',P6='||P_JSBZ00||',P7='||P_JSRQ00 ||',P8='||P_BQH000||',P9='||P_KSH000||',P10='||P_ZDMC00||',P11='||P_CH0000||',P12'||P_ZDM000||',P13='||P_FLAG||']'; select nvl(max(trim(BRID00)),'0') into tem_BRID00 from YS_BRZYSQ where BRID00=P_BRID00; select nvl(max(trim(ZYSQID)),'0') into tem_ZYSQID from YS_BRZYSQ where BRID00=P_BRID00; if (P_FLAG ='add') then lv_ERRORCODE:='02'; insert into YS_BRZYSQ(ZYSQID,BRID00,SQKS00,YSGZH0,SQRQ00,SQSJ00,JSBZ00,JSRQ00,BQH000,KSH000,ZDMC00,CH0000,ZDM000,YSZID0,YYZYRQ,YYZYSJ) select SQ_YS_BRZYSQ_ZYSQID.nextval,P_BRID00,P_SQKS00,P_YSGZH0,to_char(sysdate,'YYYYMMDD'),to_char(sysdate,'HH24:MI:SS'),P_JSBZ00,P_JSRQ00,P_BQH000,P_KSH000,P_ZDMC00,P_CH0000,P_ZDM000,P_YSZID0,P_SQRQ00,P_SQSJ00 from dual; insert into YS_BRZYSQ_UNIQ(ZYSQID,BRID00,SQRQ00) select ZYSQID,BRID00,SQRQ00 from ( select ZYSQID,BRID00,SQRQ00 from YS_BRZYSQ where BRID00=P_BRID00 and SQRQ00=to_char(sysdate,'YYYYMMDD') order by ZYSQID desc ) where rownum=1; elsif (P_FLAG ='delete') then lv_ERRORCODE:='03'; if (tem_BRID00 = '0') then P_ERRORCODE:='0'; P_ERRORINFO:='该病人不存在,请核对!(' ||P_BRID00||')'; P_SYSTEMINFO:=P_ERRORINFO; return; else delete from YS_BRZYSQ where BRID00=P_BRID00; end if; else lv_ERRORCODE:='04'; if (tem_BRID00 = '0') then P_ERRORCODE:='0'; P_ERRORINFO:='该病人不存在!(' ||P_BRID00||')'; P_SYSTEMINFO:=P_ERRORINFO; return; else update YS_BRZYSQ set ZYSQID = tem_ZYSQID, BRID00 = P_BRID00,SQKS00 = P_SQKS00,YSGZH0 = P_YSGZH0,SQRQ00= P_SQRQ00,JSBZ00 = P_JSBZ00 ,JSRQ00 =P_JSRQ00,BQH000 = P_BQH000,KSH000 = P_KSH000,ZDMC00 = P_ZDMC00,CH0000 = P_CH0000,ZDM000 = P_ZDM000,YSZID0 = P_YSZID0 where BRID00=P_BRID00; end if; end if; lv_ERRORCODE:='05'; --增加入参;备注:P_BZ0000; by BQ-20190325-001; update BM_BRXXB0 SET BZ0000=BZ0000||P_BZ0000 where BRID00 = P_BRID00; SP_BLJK_BRRYDJ_BR(P_BRID00,ls_ZYH000) ; P_ERRORCODE:='1'; P_ERRORINFO:='成功'; P_SYSTEMINFO:=''; exception when others then P_ERRORCODE:='0'; P_ERRORINFO:='住院信息同步异常出错[错误代码:'||lv_ERRORCODE||'],请联系管理员!'; P_SYSTEMINFO:=P_ERRORINFO||lv_PARAMSTR||sqlerrm; rollback; return; end;