create or replace function SF_YJ_ESBXMZD_YLZ(Pid0000 number,Pbz0000 varchar2) -- modification history -- Person Date Comments -- dsm 2016.02.17 create -- daihq 2016.02.19 修改MSH节点,增加发送模块和接收模块,若没取值按默认值传送 -- qks 2017.03.06 福清市医院易能达HRP高值耗材接口:增加VZDLX00=3,收费项目字典同步。 -- gzj 2019.04.12 增加检验标本字典更新发送消息串(VZDLX00=4) YJ9-20190409-002 -- linshu 2019.12.12 新增部位的同时,发送对应的内容给Pacs。对应场景是:DIC_OPER_SITE((VZDLX00=5) GGJK-20191204-001 -- qks 2020.01.13 修正VZDLX00='4'问题:BM_BBZD00.BBID00字段定义属于字符型,导致写入BM_DFZLZD。VXMID00改为VBZ0001 --linshu 2020.01.17 修正VZDLX00='5'格式问题:Z03改为Z37,日期格式去除中括号,改为"年月日时分秒",CJRQSJ后第7位空增加检查类别BH0001和BH0002 -- linshu 2020.05.13 修改VXMID00定义变量有原来的BM_ZLZD00.ZLXMID%type修正为BM_DFZLZD.ZDXMID%type by GGJK-20200509-001 return varchar2 is Vresult varchar2(4000); Vitem BM_ZLZD00%rowtype; Vitem1 BM_YGBM00%rowtype; Vitem2 BM_BMBM00%rowtype; Vitem3 BM_YYSFXM%rowtype; Vitem4 BM_BBZD00%rowtype; vcount0 number; VJSXT00 YJ_DFSSQD.JSXT00%type; VJSMK00 YJ_DFSSQD.JSMK00%type; VLBBH00 BM_ZLZD00.LBBH00%type; VFSCJ00 YJ_DFSSQD.FSCJ00%type; VMsgType varchar2(100); VXMID00 BM_DFZLZD.ZDXMID%type; VZDLX00 BM_DFZLZD.ZDLX00%type; VGXDM00 varchar2(10); VCJRQSJ varchar2(25); VGXRQSJ varchar2(25); VLBMC00 bm_zlxmlb.LBMC00%type; VExamine varchar2(100); --场景 VCZBZ00 YJ_DFSSQD.CZBZ00%type; VFZLXMID varchar2(20); VSFYX00 varchar2(10); VBMMC00 BM_BMBM00.BMMC00%type; VZYJSZC BM_TYZD00.MC0000%type; VKFJB00 varchar2(10); VSFMZKS varchar2(10); VCJRXM0 BM_YGBM00.ZWXM00%type; VXGRXM0 BM_YGBM00.ZWXM00%type; VDYBZ00 BM_BBZD00.DYBZ00%type; vVitem5 BM_TYZD00%rowtype; VBZ0001 BM_DFZLZD.BZ0001%type; begin select JSXT00,JSMK00,FSCJ00,ZDXMID,ZDLX00,CZBZ00,BZ0001 into VJSXT00,VJSMK00,VExamine,VXMID00,VZDLX00,VCZBZ00,VBZ0001 from BM_DFZLZD where ID0000=Pid0000; if VCZBZ00='0' then VGXDM00:='MAD'; select to_char(systimestamp,'YYYYMMDDHH24MMSS.FF3') into VGXRQSJ from dual; else VGXDM00:='MUP'; select to_char(systimestamp,'YYYYMMDDHH24MMSS.FF3') into VCJRQSJ from dual; end if; if VZDLX00='0' then VMsgType:='MFN^Z01^MFN_Z01'; select * into Vitem from BM_ZLZD00 where ZLXMID=VXMID00; begin select LBMC00 into VLBMC00 from BM_ZLXMLB where LBBH00=Vitem.LBBH00; exception when others then VLBMC00:=''; end; if Vitem.TZRQ00 is null or Vitem.TZRQ00>=to_char(sysdate,'YYYYMMDD') then VSFYX00:='Y'; else VSFYX00:='N'; end if; Vresult := 'MSH|^~'||'\'||'&|HIS|'||'发送模块'||'|'||VJSXT00||'|'||'接收模块'||'|'||to_char(systimestamp,'YYYYMMDDHH24MMSS.FF3')||'|T|'||VMsgType||'|'||VExamine||'-'||to_char(systimestamp,'YYYYMMDDHH24MMSSFF3')||'|P|2.7'|| chr(13)||'MFI|OME||UPD|||AL'|| chr(13)||'MFE|'||VGXDM00||'|||'||VXMID00||'|CWE||'|| chr(13)||'Z01|'||Vitem.ZLXMID||'|'||Vitem.ZLXMBH||'|'||Vitem.ZLXMJC||'||'||VFZLXMID||'||'||Vitem.LBBH00||'|'||VLBMC00||'||'||Vitem.LBBZ00||'|'||Vitem.FBZXBZ||'|'||Vitem.GDXMBZ||'|'|| Vitem.DW0000||'|'||Vitem.ckz000||'|'||Vitem.JGDW00||'|||'||Vitem.QYRQ00||'|'||Vitem.TZRQ00||'|'||Vitem.Sfyxsq||'|'|| Vitem.ZXKS00||'|||'||Vitem.BQSFBZ||'|'||Vitem.JCZL00||'|'||Vitem.BQDYBZ||'|'||Vitem.ZHXMBZ||'||'||Vitem.BBID00||'|'||Vitem.ZYZBID||'|'||Vitem.SSDJBH||'|'||Vitem.CM3000||'|'|| Vitem.JCLBID||'|'||Vitem.JCZID0||'|'||Vitem.JCQZYSX||'|'||Vitem.MZZYBZ||'|'||VSFYX00||'|'||Vitem.PXXH00||'|'||Vitem.PYSM00||'|'||Vitem.WBSM00||'|'|| VCJRQSJ||'|'||VGXRQSJ||'|||'; elsif VZDLX00='1' then /* VMsgType:='MFN^Z01^MFN_Z01'; select * into Vitem1 from BM_YGBM00 where YGBH00=VXMID00; begin select BMMC00 into VBMMC00 from BM_BMBM00 where BMBH00=Vitem1.BMBH00; exception when others then VBMMC00:=''; end; Vresult := 'MSH|^~'||'\'||'&|HIS|'||'发送模块'||'|'||VJSXT00||'|'||'接收模块'||'|'||to_char(systimestamp,'YYYYMMDDHH24MISS.FF3')||'|T|'||VMsgType||'|'||VExamine||'-'||to_char(systimestamp,'YYYYMMDDHH24MMSSFF3')||'|P|2.7'|| chr(13)||'MFI|OME||UPD|||AL'|| chr(13)||'MFE|'||VGXDM00||'|||'||VXMID00||'|CWE||'|| chr(13)||'STF|'||Vitem1.YGBH00||'|'||Vitem1.XKH000||'|'||Vitem1.ZWXM00||'|'||Vitem1.YGXZ00||'|'||Vitem1.XB0000||'|||'||Vitem1.BMBH00||'^'||VBMMC00||'|||'|| '^^^^^^|^|^||||||||||||||||||||||||||||'|| chr(13)||'Z01|'||Vitem1.PYSM00||'|'||Vitem1.WBSM00||'|'||Vitem1.GZDJ00||'|'||Vitem1.MZDJ00||'|'||Vitem1.DPDJ00||'|'||Vitem1.SJDJ00||'|'|| Vitem1.KSSJB0||'|||'||Vitem1.YSZJHM||'|'||Vitem1.SFZBH0||'|'||Vitem1.YSFLBH||'|||||||||||||||||'||VCJRQSJ||'|'||VGXRQSJ||'|||'; */ VMsgType:='MFN^Z02^MFN_Z01'; select * into Vitem1 from BM_YGBM00 where YGBH00=VXMID00; begin select BMMC00 into VBMMC00 from BM_BMBM00 where BMBH00=Vitem1.BMBH00; exception when others then VBMMC00:=''; end; select decode(Vitem1.YGXZ00,'0','实习医生','1','处方医生','2','护士','3','收费员','4','药房人员','5','系统维护人员', '6','采购员','7','药库保管员','A','120医生','B','120护士','C','120司机','其他') into VZYJSZC from dual; select max(MC0000) into VZYJSZC From BM_TYZD00 where ZDMC00='员工信息_专业技术职称' and NBBH00=Vitem1.ZYJSZC; Vresult := 'MSH|^~'||'\'||'&|HIS|'||'发送模块'||'|'||VJSXT00||'|'||'接收模块'||'|'||to_char(systimestamp,'YYYYMMDDHHMMSS.FF3')||'|T|'||VMsgType||'|'||VExamine||'-'||to_char(systimestamp,'YYYYMMDDHHMMSSFF3')||'|P|2.7'|| chr(13)||'MFI|OME||UPD|||AL'|| chr(13)||'MFE|'||VGXDM00||'|||'||VXMID00||'|CWE||'|| chr(13)||'STF|'||Vitem1.YGBH00||'|'||Vitem1.XKH000||'|'||Vitem1.ZWXM00||'|'||Vitem1.YGXZ00||'|'||Vitem1.XB0000||'|||'||Vitem1.BMBH00||'^'||VBMMC00||'|||'|| -- '^^^^^^|^|^||||||||||||||||||||||||||||'|| '||||||||||||||||||||||||||||||'|| chr(13)||'Z02|'||Vitem1.PYSM00||'|'||Vitem1.WBSM00||'|'||Vitem1.GZDJ00||'|'||Vitem1.MZDJ00||'|'||Vitem1.DPDJ00||'|'||Vitem1.SJDJ00||'|'|| Vitem1.KSSJB0||'|||'||Vitem1.YSZJHM||'|'||Vitem1.SFZBH0||'|'||Vitem1.YSFLBH||'|||||||||'||VZYJSZC||'||||||||'||VCJRQSJ||'|'||VGXRQSJ||'|||'; elsif VZDLX00='2' then VMsgType:='MFN^Z01^MFN_Z01'; select * into Vitem2 from BM_BMBM00 where BMBH00=VXMID00; Vresult := 'MSH|^~'||'\'||'&|HIS|'||'发送模块'||'|'||VJSXT00||'|'||'接收模块'||'|'||to_char(systimestamp,'YYYYMMDDHH24MMSS.FF3')||'|T|'||VMsgType||'|'||VExamine||'-'||to_char(systimestamp,'YYYYMMDDHH24MMSSFF3')||'|P|2.7'|| chr(13)||'MFI|OME||UPD|||AL'|| chr(13)||'MFE|'||VGXDM00||'|||'||VXMID00||'|CWE||'|| chr(13)||'Z01|'||Vitem2.BMBH00||'|'||Vitem2.BH0000||'|'||Vitem2.BMMC00||'||'||VFZLXMID||'||'||Vitem2.BMXZ00||'|'||VKFJB00||'|'||VSFMZKS||'|'||Vitem2.SYCW00||'|'||Vitem2.KFCW00||'|||||'||--14科室共享床位数 '||'||Vitem2.CKXX00||'|'||Vitem2.CKXX00||'|'||Vitem2.QFSX00||'|'||Vitem2.CZBZ00||'|'||Vitem2.PXXH00||'||||'||Vitem2.PYSM00||'|'||Vitem2.WBSM00|| Vitem.DW0000||'|'||Vitem.ckz000||'|'||Vitem.JGDW00||'|||'||Vitem.QYRQ00||'|'||Vitem.TZRQ00||'|'||Vitem.Sfyxsq||'|'|| Vitem.ZXKS00||'|||'||Vitem.BQSFBZ||'|'||Vitem.BQDYBZ||'|'||Vitem.ZHXMBZ||'||'||Vitem.BBID00||'|'||Vitem.ZYZBID||'|'||Vitem.SSDJBH||'|'||Vitem.CM3000||'|'|| Vitem.JCLBID||'|'||Vitem.JCZID0||'|'||Vitem.JCQZYSX||'|'||Vitem.MZZYBZ||'|'||VSFYX00||'|'||Vitem.PXXH00||'|'||Vitem.PYSM00||'|'||Vitem.WBSM00||'|'|| VCJRQSJ||'|'||VGXRQSJ||'|||'; elsif VZDLX00='3' then VMsgType:='MFN^Z03^MFN_Z01'; select * into Vitem3 from BM_YYSFXM a where SFXMID=VXMID00; Vresult := 'MSH|^~'||'\'||'&|HIS|'||'发送模块'||'|'||VJSXT00||'|'||'接收模块'||'|'||to_char(systimestamp,'YYYYMMDDHHMMSS.FF3')||'|N|'||VMsgType||'|'||VExamine||'-'||to_char(systimestamp,'YYYYMMDDHHMMSSFF3')||'|P|2.7'|| chr(13)||'MFI|OME||UPD|||AL'|| chr(13)||'MFE|'||VGXDM00||'|||'||VXMID00||'|CWE||'|| chr(13)||'Z03|'||Vitem3.SFXMID||'|'||Vitem3.BH0000||'|'||Vitem3.XMMC00||'|'||Vitem3.XMNH00||'|'||Vitem3.CWNR00||'|'||Vitem3.TREEBH||'|'||Vitem3.BMGZID||'|'||Vitem3.FLAG00||'|'||Vitem3.DW0000||'|'||Vitem3.BZJE00|| '|'||Vitem3.SFJE00||'|'||Vitem3.FDBL00||'|'||Vitem3.SFXX00||'|'||Vitem3.SFSX00||'|'||Vitem3.MZFPID||'|'||Vitem3.ZYFPID||'|'||Vitem3.HSXMID||'|'||Vitem3.BAXMID||'|'||Vitem3.KJXMID||'|'||Vitem3.QYRQ00||Vitem3.QYSJ00|| '|'||Vitem3.TZRQ00||Vitem3.TZSJ00||'|'||Vitem3.YYDJ00||'|'||Vitem3.DJXS00||'|'||Vitem3.ZHXMBZ||'|'||Vitem3.GG0000||'|'||Vitem3.SCCJ00||'|'||Vitem3.PZWH00||'|'||Vitem3.GJBM00||'|'||Vitem3.FM0000||'|'||Vitem3.LSCL00|| '|'||Vitem3.JSXM00||'|'||Vitem3.JMJE00||'|'||Vitem3.TXM000||'|'||Vitem3.SFZXBS||'|||'||Vitem3.PLXH00||'|'||Vitem3.PYSM00||'|'||Vitem3.WBSM00|| '|||'||Vitem3.CJR000||'||'||Vitem3.XGRQSJ||'|'||Vitem3.XGR000||'||||'||Vitem3.BZ0000||'||'; elsif VZDLX00='4' then VMsgType:='MFN^Z11^MFN_Z01'; select * into Vitem4 from BM_BBZD00 a where BBID00=VBZ0001; select max(nvl(ZWXM00,'')) into VCJRXM0 from BM_YGBM00 where YGBH00=Vitem4.CJR000; select max(nvl(ZWXM00,'')) into VXGRXM0 from BM_YGBM00 where YGBH00=Vitem4.XGR000; select to_char(to_date(Vitem4.CJRQSJ,'YYYYMMDDHH24:MI:SS'),'YYYY[MM[DD[HH[MM[SS]]]]]') into VCJRQSJ from dual; select to_char(to_date(Vitem4.XGRQSJ,'YYYYMMDDHH24:MI:SS'),'YYYY[MM[DD[HH[MM[SS]]]]]') into VGXRQSJ from dual; select decode(Vitem4.DYBZ00,'Y','T','F') into VDYBZ00 from dual; select decode(Vitem4.SFYX00,'1','T','F') into VSFYX00 from dual; Vresult := 'MSH|^~'||'\'||'&|HIS|'||'发送模块'||'|'||VJSXT00||'|'||'接收模块'||'|'||to_char(systimestamp,'YYYYMMDDHH24MMSS.FF3')||'|N|'||VMsgType||'|'||VExamine||'-'||to_char(systimestamp,'YYYYMMDDHH24MMSS.FF3')||'|P|2.7'|| chr(13)||'MFI|OME||UPD|||AL'|| chr(13)||'MFE|'||VGXDM00||'|||'||VBZ0001||'|CWE||'|| chr(13)||'Z03|'||Vitem4.BBID00||'|'||Vitem4.BBMC00||'|'||VDYBZ00||'|'||Vitem4.DYLX00||'|'||lower(Vitem4.PYSM00)||'|'||lower(Vitem4.WBSM00)||'|'||VSFYX00|| '|'||VCJRQSJ||'|'||Vitem4.CJR000||'|'||VCJRXM0||'|'||VGXRQSJ||'|'||Vitem4.XGR000||'|'||VXGRXM0; elsif VZDLX00='5' then VMsgType:='MFN^Z37^MFN_Z01'; select * into vVitem5 from BM_TYZD00 a where NBBH00=VXMID00; select max(nvl(ZWXM00,'')) into VCJRXM0 from BM_YGBM00 where YGBH00=vVitem5.CJR000; --select max(nvl(ZWXM00,'')) into VXGRXM0 from BM_YGBM00 where YGBH00=Vitem4.XGR000; select to_char(sysdate,'YYYYMMDDHH24MMSS') into VCJRQSJ from dual; --select to_char(to_date(Vitem4.XGRQSJ,'YYYYMMDDHH24:MI:SS'),'YYYY[MM[DD[HH[MM[SS]]]]]') into VGXRQSJ from dual; --select decode(Vitem4.DYBZ00,'Y','T','F') into VDYBZ00 from dual; select decode(vVitem5.YXBZ00,'1','T','F') into VSFYX00 from dual; Vresult := 'MSH|^~'||'\'||'&|HIS|'||'发送模块'||'|'||VJSXT00||'|'||'接收模块'||'|'||to_char(systimestamp,'YYYYMMDDHH24MMSS.FF3')||'|N|'||VMsgType||'|'||VExamine||'-'||to_char(systimestamp,'YYYYMMDDHH24MMSS.FF3')||'|P|2.7'|| chr(13)||'MFI|OME||UPD|||AL'|| chr(13)||'MFE|'||VGXDM00||'|||'||VXMID00||'|CWE||'|| chr(13)||'Z37|'||vVitem5.BH0000||'|'||vVitem5.BH0000||'|'||vVitem5.BH0000||'|'||vVitem5.Mc0000||'||'||'2'||'|'||vVitem5.XSXH00||'|'||vVitem5.PYSM00|| '|'||vVitem5.WBSM00||'|'||VSFYX00||'|'||VCJRQSJ||'|'||vVitem5.CJR000||'|'||VCJRXM0||'||||'||vVitem5.Bh0001||'|'||vVitem5.Bh0002; end if; return Vresult; end;