CREATE OR REPLACE PROCEDURE SP_BA_BABLTJ_SYNC ( PZYID00 in number, PYGBH00 in number ) as -- MODIFICATION HISTORY -- Person Date Comments -- xuxq 2020.04.27 病案签收时做数据同步 for BAGL-20200305-002 -- xuxq 2020.07.06 当病理诊断和损伤外因已经同步过后,不再同步 BAGL-20200628-001 COUNTER number(3); begin SP_TRANSLOG(sysdate,'SP_ZS_BABLTJ_SYNC',PYGBH00,0, 'SP_ZS_BABLTJ_SYNC('||to_char(PZYID00)||','||to_char(PYGBH00)); --病案首页签收-病案室诊断表 select count(*) into COUNTER from BQ_BASZDB where ZYID00=PZYID00; if COUNTER=0 then insert into BQ_BASZDB(ID0000,BRID00,ZYID00,ZDLB00,ZDM000,ZDMC00,ZDRQ00,ZDSJ00, SFYZ00,ZLXG00,LRR000,YQBGBZ,ZDFS00,CRDJID,BZ0000,FZBM00, PLXH00,FZMC00,M16800,RYBQ00,ZDJB00,ZDBZ00,DYCS00,BGRQ00, BWMC00,FWMC00) select ID0000,BRID00,ZYID00,ZDLB00,ZDM000,ZDMC00,ZDRQ00,ZDSJ00, SFYZ00,ZLXG00,LRR000,YQBGBZ,ZDFS00,CRDJID,BZ0000,FZBM00, PLXH00,FZMC00,M16800,RYBQ00,ZDJB00,ZDBZ00,DYCS00,BGRQ00, BWMC00,FWMC00 from BQ_BRZDXX where ZYID00=PZYID00; --如果病人年龄大于5,且存在P码,将P码转到婴儿诊断信息表中 select count(1) into COUNTER from BA_BRZYXX BA join BQ_BRZDXX ZD on BA.LSH000=ZD.ZYID00 where BA.LSH000=PZYID00 and substr(SF_BQ_CSRQTONL_DZBL(bA.BRCSRQ,bA.RYRQ00),1,instr(SF_BQ_CSRQTONL_DZBL(bA.BRCSRQ,bA.RYRQ00),'岁')-1)>5 and ZD.ZDM000 like 'P%'; if COUNTER<>0 then insert into BA_YEZDXX(ID0000,BRID00,ZYID00,ZDLB00,ZDM000,ZDMC00,ZDRQ00,ZDSJ00, SFYZ00,ZLXG00,LRR000,YQBGBZ,ZDFS00,CRDJID,BZ0000,FZBM00, PLXH00,FZMC00,M16800,RYBQ00,ZDJB00,ZDBZ00,DYCS00,BGRQ00, BWMC00,FWMC00) select ID0000,BRID00,ZYID00,ZDLB00,ZDM000,ZDMC00,ZDRQ00,ZDSJ00, SFYZ00,ZLXG00,LRR000,YQBGBZ,ZDFS00,CRDJID,BZ0000,FZBM00, PLXH00,FZMC00,M16800,RYBQ00,ZDJB00,ZDBZ00,DYCS00,BGRQ00, BWMC00,FWMC00 from BQ_BRZDXX where ZYID00=PZYID00 and ZDM000 like 'P%'; delete from BQ_BASZDB where ZYID00=PZYID00 and ZDM000 like 'P%'; end if; end if; --病案室手术表 select count(*) into COUNTER from BA_BASSSB where LSH000=PZYID00; if COUNTER=0 then insert into BA_BASSSB(LSH000,SSXH00,SSLB00,SSM000,SSMC00,SSRQ00,SSSJ00,SSZL00,SSYS00,SSYSMC,IYS000, IYSMC0,IIYS00,IIYSMC,MZFS00,QKYHDJ,MZYS00,MZYSMC,SQSHFH,CZRQ00,CZSJ00,CZY000, SFMZSW,BWMC00,FWMC00,BCSM00) select LSH000,SSXH00,SSLB00,SSM000,SSMC00,SSRQ00,SSSJ00,SSZL00,SSYS00,SSYSMC,IYS000, IYSMC0,IIYS00,IIYSMC,MZFS00,QKYHDJ,MZYS00,MZYSMC,SQSHFH,CZRQ00,CZSJ00,CZY000, SFMZSW,BWMC00,FWMC00,BCSM00 from BA_BRSSXX T where T.LSH000=PZYID00; end if; --病案室原始诊断表 select count(*) into COUNTER from BQ_ZDYSB0 where ZYID00=PZYID00; if COUNTER=0 then insert into BQ_ZDYSB0(ID0000,BRID00,ZYID00,ZDLB00,ZDM000,ZDMC00,ZDRQ00,ZDSJ00, SFYZ00,ZLXG00,LRR000,YQBGBZ,ZDFS00,CRDJID,BZ0000,FZBM00, PLXH00,FZMC00,M16800,RYBQ00,ZDJB00,ZDBZ00,DYCS00,BGRQ00, BWMC00,FWMC00) select ID0000,BRID00,ZYID00,ZDLB00,ZDM000,ZDMC00,ZDRQ00,ZDSJ00, SFYZ00,ZLXG00,LRR000,YQBGBZ,ZDFS00,CRDJID,BZ0000,FZBM00, PLXH00,FZMC00,M16800,RYBQ00,ZDJB00,ZDBZ00,DYCS00,BGRQ00, BWMC00,FWMC00 from BQ_BRZDXX where ZYID00=PZYID00; end if; --病案室原始手术表 select count(*) into COUNTER from BA_SSYSB0 where LSH000=PZYID00; if COUNTER=0 then insert into BA_SSYSB0(LSH000,SSXH00,SSLB00,SSM000,SSMC00,SSRQ00,SSSJ00,SSZL00,SSYS00,SSYSMC,IYS000, IYSMC0,IIYS00,IIYSMC,MZFS00,QKYHDJ,MZYS00,MZYSMC,SQSHFH,CZRQ00,CZSJ00,CZY000, SFMZSW,BWMC00,FWMC00,BCSM00) select LSH000,SSXH00,SSLB00,SSM000,SSMC00,SSRQ00,SSSJ00,SSZL00,SSYS00,SSYSMC,IYS000, IYSMC0,IIYS00,IIYSMC,MZFS00,QKYHDJ,MZYS00,MZYSMC,SQSHFH,CZRQ00,CZSJ00,CZY000, SFMZSW,BWMC00,FWMC00,BCSM00 from BA_BRSSXX T where T.LSH000=PZYID00; end if; --同步病案室诊断修改界面病人住院信息 select count(*) into COUNTER from BA_BASZYB where LSH000=PZYID00; if COUNTER=0 then /*update BA_BASZYB A set (BLZDBM,ZYH000, BLZD00, SSZDWY, SSZDBM,ZLBM00,ZLMC00)= (select BLZDBM,ZYH000, BLZD00, SSZDWY, SSZDBM,ZLBM00,ZLMC00 from BA_BRZYXX B where B.LSH000=PZYID00) where A.LSH000=PZYID00;*/ INSERT INTO BA_BASZYB(LSH000,BLZDBM,ZYH000, BLZD00, SSZDWY, SSZDBM,ZLBM00,ZLMC00) select LSH000,BLZDBM,ZYH000, BLZD00, SSZDWY, SSZDBM,ZLBM00,ZLMC00 from BA_BRZYXX B where B.LSH000=PZYID00; end if; --同步医生原始诊断界面病人住院信息表 --病理诊断 select count(*) into COUNTER from BQ_ZDYSB0 where ZYID00=PZYID00 and ZDLB00='5'; if COUNTER>0 then update BQ_ZDYSB0 set (ZDM000,ZDMC00)= (select BLZDBM, BLZD00 from BA_BRZYXX where LSH000=PZYID00) where ZYID00=PZYID00 and ZDLB00='5'; else insert into BQ_ZDYSB0 (ID0000,BRID00,ZYID00, ZDLB00,ZDM000, ZDMC00, SFYZ00) select 0,0,LSH000,'5', BLZDBM, BLZD00, '0' from BA_BRZYXX where LSH000=PZYID00; end if; --损伤中毒因素 select count(*) into COUNTER from BQ_ZDYSB0 where ZYID00=PZYID00 and ZDLB00='7'; if COUNTER>0 then update BQ_ZDYSB0 set (ZDM000,ZDMC00)= (select SSZDBM,SSZDWY from BA_BRZYXX where LSH000=PZYID00) where ZYID00=PZYID00 and ZDLB00='7'; else insert into BQ_ZDYSB0 (ID0000,BRID00,ZYID00, ZDLB00,ZDM000, ZDMC00, SFYZ00) select 0,0,LSH000,'7', SSZDBM, SSZDWY, '0' from BA_BRZYXX where LSH000=PZYID00; end if; --肿瘤形态 select count(*) into COUNTER from BQ_ZDYSB0 where ZYID00=PZYID00 and ZDLB00='0'; if COUNTER>0 then update BQ_ZDYSB0 set (ZDM000,ZDMC00)= (select ZLBM00,ZLMC00 from BA_BRZYXX where LSH000=PZYID00) where ZYID00=PZYID00 and ZDLB00='0'; else insert into BQ_ZDYSB0 (ID0000,BRID00,ZYID00, ZDLB00,ZDM000, ZDMC00, SFYZ00) select 0,0,LSH000,'0', ZLBM00, ZLMC00, '0' from BA_BRZYXX where LSH000=PZYID00; end if; commit; end;