create or replace procedure SP_BMBM_CREATE_XML -- modification history -- Person Date Comments -- LinBin 2021.12.22 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(90); --消息ID vXXCJSJ varchar2(90); --消息创建时间 vJLZT00 varchar2(90); --记录状态 vBMBH00 BM_BMBM00.BMBH00%type; --科室代号 vBMXZ00 BM_BMBM00.BMXZ00%type; --部门性质代码 vBZFLDM varchar2(90); --标准分类代码 vBMXZMC varchar2(90); --部门性质名称 vBZFLMC varchar2(90); --标准分类名称 vJSMC00 varchar2(90); --角色名称 vGZDZ00 varchar2(200); --工作地址 vLXDH00 varchar2(90); --联系电话 vJSZT00 varchar2(90); --角色状态 vJSKSSJ varchar2(90); --角色开始时间 vJSJSSJ varchar2(90); --角色结束时间 vBMMC00 BM_BMBM00.BMMC00%type; --科室名称 vSJBMBH varchar2(90); --上级科室代号 vSJBMMC varchar2(90); --上级科室名称 vCZY000 varchar2(90); --申请者ID vCZYXM0 varchar2(90); --申请者姓名 vCZKS00 varchar2(90); --申请人科室号 vCZKSMC varchar2(90); --申请人科室名 vCZLXR0 varchar2(90); --科室联系人 vBQBH00 varchar2(90); --所属病区代码 vBQMC00 varchar2(80); --所属病区名称 vYYID00 BM_BMBM00.YYID00%type; --所属院区代码 vYYMC00 varchar2(80); --所属院区名称 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='0' 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, --科室代号 A.BMXZ00 BMXZ00, --部门性质代码 trim(A.Ybksbh) BZFLDM, --标准分类代码 (select MC0000 from XT_BMXZ00 WHERE DM0000 = A.BMXZ00) BMXZMC, --部门性质名称 trim(A.Ybksmc) BZFLMC, --标准分类名称 null JSMC00, --角色名称 null GZDZ00, --工作地址 null LXDH00, --联系电话 decode(A.CZBZ00,'2','delete','active') JSZT00, --角色状态 null JSKSSJ, --角色开始时间 null JSJSSJ, --角色结束时间 A.BMMC00 BMMC00, --科室名称 to_char(B.BMBH00) SJBMBH, --上级科室代号 B.BMMC00 SJBMMC, --上级科室名称 '-' CZY000, --申请者ID null CZYXM0, --申请者姓名 'xxx12345-X' CZKS00, --申请人科室号 null CZKSMC, --申请人科室名 null CZLXR0, --科室联系人 (select BQH000 from BM_BQKS00 WHERE KSH000 = A.BMBH00 and YXBZ00='1') BQBH00, --所属病区代码 (select BMMC00 from BM_BMBM00 where BMBH00=(select BQH000 from BM_BQKS00 WHERE KSH000 = A.BMBH00 and YXBZ00='1')) BQMC00, --所属病区名称 A.YYID00 YYID00, --所属院区代码 (select YYJC00 from XT_YYXX00 where YYID00=A.YYID00) YYMC00, --所属院区名称 decode(A.BMXZ00,'0','1','1','2') vKSLX00, -- 科室类型1门诊2住院 null into vGUID00, --消息ID vXXCJSJ, --消息创建时间 vJLZT00, --记录状态 vBMBH00, --科室代号 vBMXZ00, --部门性质代码 vBZFLDM, --标准分类代码 vBMXZMC, --部门性质名称 vBZFLMC, --标准分类名称 vJSMC00, --角色名称 vGZDZ00, --工作地址 vLXDH00, --联系电话 vJSZT00, --角色状态 vJSKSSJ, --角色开始时间 vJSJSSJ, --角色结束时间 vBMMC00, --科室名称 vSJBMBH, --上级科室代号 vSJBMMC, --上级科室名称 vCZY000, --申请者ID vCZYXM0, --申请者姓名 vCZKS00, --申请人科室号 vCZKSMC, --申请人科室名 vCZLXR0, --科室联系人 vBQBH00, --所属病区代码 vBQMC00, --所属病区名称 vYYID00, --所属院区代码 vYYMC00, --所属院区名称 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(' ')|| 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(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' ')|| trim(' '|| -- 科室类型1门诊2住院 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;