create or replace procedure SP_BMBM_UPDATE_XML -- modification history -- Person Date Comments -- LinBin 2023.02.23 create by XXX-YYYYMMDD-XXX -- chenrenhai 2023.04.07 增加科室类型 -- chenrenhai 2023.04.11 调整医疗卫生机构(科室)标识报文级别,置于节点assignedEntity下级 ( PID0000 in varchar2 ) as vResult varchar2(30000); vSJ0000 varchar2(90); vGUID00 varchar2(50); --消息ID vXXCJSJ varchar2(30); --消息创建时间 vJLZT00 varchar2(30); --记录状态 vBMBH00 BM_BMBM00.BMBH00%type; --科室代号 vBZFLDM varchar2(30); --标准分类代码 vBZFLMC varchar2(30); --标准分类名称 vJSMC00 varchar2(30); --角色名称 vLXDH00 varchar2(30); --联系电话 vJSZT00 varchar2(30); --角色状态 vJSKSSJ varchar2(30); --角色开始时间 vJSJSSJ varchar2(30); --角色结束时间 vBMMC00 BM_BMBM00.BMMC00%type; --科室名称 vSJBMBH varchar2(30); --上级科室代号 vSJBMMC varchar2(50); --上级科室名称 vCZY000 varchar2(30); --申请者ID vCZYXM0 varchar2(30); --申请者姓名 vCZKS00 varchar2(30); --申请人科室号 vCZKSMC varchar2(30); --申请人科室名 vCZLXR0 varchar2(30); --科室联系人 vKSLX00 BM_BMBM00.BMXZ00%type; --部门性质 vFSCJ00 BM_DFSBR0.FSCJ00%type; --发送场景 begin select to_char(sysdate,'yyyyMMddHH24miss') into VSJ0000 from dual; select GET_SYS_GUID into vGUID00 from dual; begin select ZDXMID into vBMBH00 from BM_DFZLZD where ZDLX00=1 and CZBZ00='1' and ID0000=PID0000 ; exception when others then vBMBH00:=0; end; select vGUID00 GUID00, --消息ID vSJ0000 XXCJSJ, --消息创建时间 decode(A.CZBZ00,'2','delete','active') JLZT00, --记录状态 A.BMBH00 BMBH00, --科室代号 trim(A.Ybksbh) BZFLDM, --标准分类代码 trim(A.Ybksmc) BZFLMC, --标准分类名称 null JSMC00, --角色名称 null LXDH00, --联系电话 decode(A.CZBZ00,'2','delete','active') JSZT00, --角色状态 null JSKSSJ, --角色开始时间 null JSJSSJ, --角色结束时间 A.BMMC00 BMMC00, --科室名称 to_char(B.BMBH00) SJBMBH, --上级科室代号 B.BMMC00 SJBMMC, --上级科室名称 decode(nvl(A.CJR000,1),0,1,-1,1,A.CJR000) CZY000, --申请者ID (select ZWXM00 from BM_YGBM00 where YGBH00=decode(nvl(A.CJR000,1),0,1,-1,1,A.CJR000)) CZYXM0, --申请者姓名 (select BMBH00 from BM_YGBM00 where YGBH00=decode(nvl(A.CJR000,1),0,1,-1,1,A.CJR000)) CZKS00, --申请人科室号 (select BMMC00 from BM_BMBM00 where BMBH00=(select BMBH00 from BM_YGBM00 where YGBH00=decode(nvl(A.CJR000,1),0,1,-1,1,A.CJR000))) CZKSMC, --申请人科室名 null CZLXR0, --科室联系人 decode(A.BMXZ00,'0','1','1','2') vKSLX00, -- 科室类型1门诊2住院 null into vGUID00, --消息ID vXXCJSJ, --消息创建时间 vJLZT00, --记录状态 vBMBH00, --科室代号 vBZFLDM, --标准分类代码 vBZFLMC, --标准分类名称 vJSMC00, --角色名称 vLXDH00, --联系电话 vJSZT00, --角色状态 vJSKSSJ, --角色开始时间 vJSJSSJ, --角色结束时间 vBMMC00, --科室名称 vSJBMBH, --上级科室代号 vSJBMMC, --上级科室名称 vCZY000, --申请者ID vCZYXM0, --申请者姓名 vCZKS00, --申请人科室号 vCZKSMC, --申请人科室名 vCZLXR0, --科室联系人 vKSLX00, -- 科室类型1门诊2住院 vFSCJ00 from BM_BMBM00 A, BM_BMBM00 B where substr(A.BH0000,1,length(A.BH0000)-2)=B.BH0000(+) and A.BMBH00=vBMBH00 ; vResult:=''|| trim('')|| trim(' '|| -- 消息ID字符串,最大长度为50 trim(' '|| -- 创建时间日期时间格式,DT14 trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 记录状态 trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 医疗卫生机构(科室)本地ID trim(' ')|| trim(' ')|| trim(' '|| -- 医疗卫生机构(科室)标识分类代码 trim(' '|| -- 医疗卫生机构(科室)标识分类代码对应的名称 trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 医疗卫生机构(科室)角色名称 trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 工作联系电话 trim(' ')|| trim(' ')|| trim(' '|| -- 角色状态RoleStatus trim(' ')|| trim(' ')|| trim(' '|| -- 角色有效期间(开始时间) trim(' '|| -- 角色有效期间(结束时间) trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 医疗卫生机构(科室)实体名称 trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 上级医疗卫生机构机构(科室)号标识 trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 上级医疗卫生机构(科室)名称 trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 申请者ID trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 申请者名称 trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 医疗卫生机构(科室)标识 trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 医疗卫生机构(科室)标识名称 trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 医疗卫生机构(科室)联系人 trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim('')|| ''; --更新中间表发送消息字串 begin update BM_DFZLZD set QMSG00=vResult where ID0000=PID0000 ; commit; exception when others then raise_application_error(-20001,'产生消息字串错误!'||SQLERRM||'@'||PID0000); rollback ; end; end;