prompt 家庭病床接口JSON报文 SF_ZY_JTBCJK_JSONSTR create or replace function SF_ZY_JTBCJK_JSONSTR ( PJKCJBM varchar2 default '', --接口场景编码 PCZY000 number default 0, --操作员=BM_YGBM00.YGBH00 PCZYKS0 number default 0, --操作员科室=BM_YGBM00.BMBH00 PINTSTR varchar2 default '' --备用参数 xml编码格式传入(其它请求入参或HIS前端请求入参数) ) -- modification history -- Person Date Comments -- chenHeyi 2023.08.29 create ZYSF-20230828-004 -- chenHeyi 2023.09.14 增加ZYSF_JTBCJK_0002,ZYSF_JTBCJK_1002,ZYSF_JTBCJK_1003 for ZYSF-20230914-002 -- chenHeyi 2023.09.22 增加ZYSF_JTBCJK_0003 BQ-20230922-001 -- chenHeyi 2023.09.28 增加ZYSF_JTBCJK_0004,ZYSF_JTBCJK_0005,ZYSF_JTBCJK_0006 ZYSF-20231007-001 -- chenHeyi 2023.10.27 调整费用明细查询太慢 ZYSF-20231031-002 -- chenHeyi 2023.11.01 char型字段长度过长,加去空 ZYSF-20231031-003 -- chenHeyi 2023.11.07 住院信息加ID0000,医护人员性别取值 ZYSF-20231108-001 -- chenHeyi -- -------- ---------- --------- return clob is LS_FHXX00 clob; -- LS_JSONSTR clob; ld_Counts number(10); ls_id0000 ZY_JTBCSQ.id0000%type; R_JTBCSQ ZY_JTBCSQ%rowtype; ls_yyid00 BM_TYZD00.MC0000%type; ls_jkbj BM_TYZD00.MC0000%type; ls_keyvalue BM_TYZD00.MC0000%type; ls_MRN000 ZY_BRXXB0.MRN000%type; ls_YGBH00 varchar2(30); R_YGBM00 BM_YGBM00%rowtype; ls_ygxz00 varchar2(10); ls_BMBH00 varchar(20); R_BMBM00 BM_BMBM00%rowtype; ls_CH0000 varchar(20); R_CWK000 BM_CWK000%rowtype; R_BM_BRXXB0 BM_BRXXB0%rowtype; ls_ZYID00 varchar(20); R_ZY_BRXXB0 ZY_BRXXB0%rowtype; ls_DJH000 varchar(20); ls_MXID00 varchar(20); ls_JZDH00 varchar(20); ls_YHRYXB varchar(1); --医护人员性别 R_IC_YHXX00 IC_YHXX00%rowtype; ls_ICKH00 IC_YHXX00.ICKH00%type; cursor CUR_BRFY00 is select aa.* from VW_ZY_JTBCJK_BRFY aa where aa.DJH000=ls_DJH000 and aa.ZYID00=ls_ZYID00; cursor CUR_FYMX00 is select aa.* from VW_ZY_JTBCJK_FYMX aa where aa.MXID00=ls_MXID00 and aa.ZYID00=ls_ZYID00; cursor CUR_JZB00 is select aa.* from VW_ZY_JTBCJK_JZXX aa where aa.JZDH00=ls_JZDH00 and aa.ZYID00=ls_ZYID00; begin LS_FHXX00:=''; ls_yyid00:=substrb(trim(SF_SF_TYZD00('家庭病床接口','JTBCJK_yyid00')),1,6); ls_jkbj:=trim(SF_SF_TYZD00('家庭病床接口','JTBCJK_jkbj')); ls_keyvalue:=trim(SF_SF_TYZD00('家庭病床接口','JTBCJK_keyvalue')); ls_id0000:=SF_SF_GETXMLNOTE('id0000',trim(PINTSTR)); begin ls_ZYID00:=to_number(SF_SF_GETXMLNOTE('ZYID00',trim(PINTSTR))); exception when others then ls_ZYID00:=0; end; --建床状态更新 if PJKCJBM='ZYSF_JTBCJK_0001' then select count(*) into ld_Counts from ZY_JTBCSQ where id0000=ls_id0000; if ld_Counts>0 then select * into R_JTBCSQ from ZY_JTBCSQ aa where id0000=ls_id0000; if nvl(R_JTBCSQ.ZYID00,-1)>0 then select MRN000 into ls_MRN000 from ZY_BRXXB0 where ZYID00=R_JTBCSQ.ZYID00; end if; LS_JSONSTR:='"id0000":"'||R_JTBCSQ.id0000||'",' ||'"brxm00":"'||trim(R_JTBCSQ.brxm00)||'",' ||'"jzkh00":"'||trim(R_JTBCSQ.jzkh00)||'",' ||'"shsj00":"'||trim(R_JTBCSQ.shsj00)||'",' ||'"shrid0":"'||trim(R_JTBCSQ.shrid0)||'",' ||'"shzt00":"'||trim(R_JTBCSQ.shzt00)||'",' ||'"fillintime":"'||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'",' ||'"yyid00":"'||trim(ls_yyid00)||'",' ||'"jkbj":"'||trim(ls_jkbj)||'",' ||'"keyvalue":"'||trim(ls_keyvalue)||'",' ||'"bah000":"'||trim(ls_MRN000)||'",' ||'"jsyy00":"'||trim(R_JTBCSQ.jsyy00)||'"'; LS_FHXX00:='{'||LS_JSONSTR||'}'; end if; end if; --家庭病床病人信息 if PJKCJBM='ZYSF_JTBCJK_0002' then select count(*) into ld_Counts from ZY_JTBCSQ where id0000=ls_id0000; if ld_Counts>0 then select * into R_JTBCSQ from ZY_JTBCSQ aa where id0000=ls_id0000; if nvl(R_JTBCSQ.ZYID00,-1)>0 then select MRN000 into ls_MRN000 from ZY_BRXXB0 where ZYID00=R_JTBCSQ.ZYID00; end if; select * into R_BM_BRXXB0 from BM_BRXXB0 where BRID00=R_JTBCSQ.BRID00; begin select ICKH00 into ls_ICKH00 from IC_YHXX00 where BRID00=R_JTBCSQ.BRID00 and ZT0000='1' and rownum=1; exception when others then ls_ICKH00:=''; end; LS_JSONSTR:='"id0000":"'||R_JTBCSQ.id0000||'",' ||'"brid00":"'||trim(ls_yyid00)||to_char(R_JTBCSQ.BRID00)||'",' ||'"bah000":"'||trim(nvl(ls_MRN000,R_BM_BRXXB0.MRN000))||'",' ||'"ybkh00":"'||trim(substr(nvl(nvl(R_BM_BRXXB0.YBKH00,ls_ICKH00),to_char(R_JTBCSQ.BRID00)),1,30))||'",' ||'"ybid00":"'||trim(R_BM_BRXXB0.YBID00)||'",' ||'"brxm00":"'||trim(R_BM_BRXXB0.BRXM00)||'",' ||'"brxb00":"'||trim(nvl(R_BM_BRXXB0.XBBH00,'9'))||'",' ||'"brcsrq":"'||trim(R_BM_BRXXB0.BRCSRQ)||'",' ||'"brhyzk":"'||trim(R_BM_BRXXB0.BRHYZK)||'",' ||'"brzy00":"'||trim(R_BM_BRXXB0.BRZY00)||'",' ||'"brmz00":"'||trim(R_BM_BRXXB0.BRMZ00)||'",' ||'"brgj00":"'||trim(R_BM_BRXXB0.BRGJ00)||'",' ||'"brzjlx":"'||trim(R_BM_BRXXB0.ZJLXBH)||'",' ||'"brzjbh":"'||trim(R_BM_BRXXB0.BRZJBH)||'",' ||'"brdh00":"'||trim(R_BM_BRXXB0.BRDH00)||'",' ||'"brlxgx":"'||trim(R_BM_BRXXB0.BRLXGX)||'",' ||'"brlxxm":"'||trim(R_BM_BRXXB0.BRLXXM)||'",' ||'"brlxdz":"'||trim(R_BM_BRXXB0.BRLXDZ)||'",' ||'"brlxdh":"'||trim(R_BM_BRXXB0.BRLXDH)||'",' ||'"czdzsf":"'||trim(R_BM_BRXXB0.BRSZSF)||'",' ||'"czdzds":"'||trim(R_BM_BRXXB0.BRSZS0)||'",' ||'"czdzxq":"'||trim(R_BM_BRXXB0.BRSZZ0)||'",' ||'"czdzmh":"'||trim(R_BM_BRXXB0.BRSZMP)||'",' ||'"fillintime":"'||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'",' ||'"yyid00":"'||ls_yyid00||'",' ||'"jkbj":"'||ls_jkbj||'",' ||'"keyvalue":"'||ls_keyvalue||'"'; LS_FHXX00:='{'||LS_JSONSTR||'}'; end if; end if; --家庭病床住院信息 if PJKCJBM='ZYSF_JTBCJK_0003' then select count(*) into ld_Counts from ZY_JTBCSQ where id0000=ls_id0000 and ZYID00=ls_ZYID00 and ls_ZYID00>0; if ld_Counts>0 then select * into R_ZY_BRXXB0 from ZY_BRXXB0 where ZYID00=ls_ZYID00; select * into R_BM_BRXXB0 from BM_BRXXB0 where BRID00=R_ZY_BRXXB0.BRID00; --select * into R_IC_YHXX00 from IC_YHXX00 where BRID00=R_JTBCSQ.BRID00 and ZT0000='1'; begin select ICKH00 into ls_ICKH00 from IC_YHXX00 where BRID00=R_JTBCSQ.BRID00 and ZT0000='1' and rownum=1; exception when others then ls_ICKH00:=''; end; LS_JSONSTR:='"id0000":"'||trim(ls_id0000)||'",' ||'"brid00":"'||to_char(R_ZY_BRXXB0.BRID00)||'",' ||'"mrn000":"'||trim(nvl(R_ZY_BRXXB0.MRN000,R_BM_BRXXB0.MRN000))||'",' ||'"zyid00":"'||trim(ls_yyid00)||to_char(R_ZY_BRXXB0.ZYID00)||'",' ||'"zyh000":"'||trim(R_ZY_BRXXB0.ZYH000)||'",' ||'"ybzyh0":"'||trim(R_ZY_BRXXB0.YBZYH0)||'",' ||'"xm0000":"'||trim(R_ZY_BRXXB0.XM0000)||'",' ||'"xb0000":"'||trim(nvl(R_BM_BRXXB0.XBBH00,'9'))||'",' ||'"csrq00":"'||trim(R_ZY_BRXXB0.CSRQ00)||'",' ||'"fbbh00":"'||trim(to_char(R_ZY_BRXXB0.FBBH00))||'",' ||'"ybkh00":"'||trim(substr(nvl(nvl(R_ZY_BRXXB0.YBKH00,ls_ICKH00),to_char(R_JTBCSQ.BRID00)),1,30))||'",' ||'"ybid00":"'||trim(to_char(R_ZY_BRXXB0.YBID00))||'",' ||'"ryrq00":"'||trim(R_ZY_BRXXB0.RYRQ00)||'",' ||'"rysj00":"'||trim(R_ZY_BRXXB0.RYSJ00)||'",' ||'"ryczrq":"'||trim(R_ZY_BRXXB0.RYRQ00)||'",' ||'"ryczsj":"'||trim(R_ZY_BRXXB0.RYSJ00)||'",' ||'"rybq00":"'||trim(to_char(R_ZY_BRXXB0.RYBQ00))||'",' ||'"cwid00":"'||trim(R_ZY_BRXXB0.RYCWH0)||'",' ||'"cyrq00":"'||trim(R_ZY_BRXXB0.CYRQ00)||'",' ||'"cysj00":"'||trim(R_ZY_BRXXB0.CYSJ00)||'",' ||'"zzys00":"'||trim(to_char(R_ZY_BRXXB0.ZZYS00))||'",' ||'"zzysxm":"'||trim(R_ZY_BRXXB0.ZZYSXM)||'",' ||'"zrys00":"'||trim(to_char(R_ZY_BRXXB0.ZRYS00))||'",' ||'"zrysxm":"'||trim(R_ZY_BRXXB0.ZRYSXM)||'",' ||'"zyys00":"'||trim(to_char(R_ZY_BRXXB0.ZZYS00))||'",' ||'"zyysxm":"'||trim(R_ZY_BRXXB0.ZZYSXM)||'",' ||'"brrycs":"'||trim(R_ZY_BRXXB0.BRRYCS)||'",' ||'"brzt00":"'||substrb(R_ZY_BRXXB0.BRZT00,1,1)||'",' ||'"szys00":"'||trim(to_char(R_ZY_BRXXB0.SZYS00))||'",' ||'"fillintime":"'||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'",' ||'"yyid00":"'||ls_yyid00||'",' ||'"jkbj":"'||ls_jkbj||'",' ||'"keyvalue":"'||ls_keyvalue||'"'; LS_FHXX00:='{'||LS_JSONSTR||'}'; end if; end if; --病人费用 if PJKCJBM='ZYSF_JTBCJK_0004' then ls_DJH000:=to_number(SF_SF_GETXMLNOTE('DJH000',trim(PINTSTR))); for REC in CUR_BRFY00 loop LS_JSONSTR:='"djh000":"'||trim(ls_yyid00)||to_char(REC.DJH000)||'",' ||'"ybdjh0":"'||trim(REC.YBDJH0)||'",' ||'"zyid00":"'||trim(ls_yyid00)||to_char(REC.ZYID00)||'",' ||'"xm0000":"'||trim(REC.XM0000)||'",' ||'"hjje00":"'||to_char(REC.HJJE00)||'",' ||'"zfje00":"'||to_char(REC.ZFJE00)||'",' ||'"jzje00":"'||to_char(REC.JZJE00)||'",' ||'"brye00":"'||to_char(REC.BRYE00)||'",' ||'"czrq00":"'||REC.CZRQ00||'",' ||'"czsj00":"'||REC.CZSJ00||'",' ||'"czy000":"'||to_char(REC.CZY000)||'",' ||'"czyxm0":"'||trim(REC.CZYXM0)||'",' ||'"czyks0":"'||to_char(REC.CZYKS0)||'",' ||'"fillintime":"'||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'",' ||'"yyid00":"'||ls_yyid00||'",' ||'"jkbj":"'||ls_jkbj||'",' ||'"keyvalue":"'||ls_keyvalue||'"'; end loop; LS_FHXX00:='{'||LS_JSONSTR||'}'; end if; --费用明细 if PJKCJBM='ZYSF_JTBCJK_0005' then ls_MXID00:=to_number(SF_SF_GETXMLNOTE('MXID00',trim(PINTSTR))); for REC in CUR_FYMX00 loop LS_JSONSTR:='"mxid00":"'||trim(ls_yyid00)||to_char(REC.MXID00)||'",' ||'"djh000":"'||trim(ls_yyid00)||REC.DJH000||'",' ||'"xmbh00":"'||to_char(REC.xmbh00)||'",' ||'"xmfb00":"'||to_char(REC.FPXMID)||'",' ||'"xmmc00":"'||trim(REC.XMMC00)||'",' ||'"xmgg00":"'||trim(REC.XMGG00)||'",' ||'"xmdw00":"'||trim(REC.XMDW00)||'",' ||'"xmdj00":"'||to_char(REC.XMDJ00)||'",' ||'"xmsl00":"'||to_char(REC.XMSL00)||'",' ||'"hjje00":"'||to_char(REC.HJJE00)||'",' ||'"zfje00":"'||to_char(REC.ZFJE00)||'",' ||'"jzje00":"'||to_char(REC.JZJE00)||'",' ||'"czrq00":"'||REC.CZRQ00||'",' ||'"czsj00":"'||REC.CZSJ00||'",' ||'"kdys00":"'||to_char(REC.kdys00)||'",' ||'"zxys00":"'||to_char(REC.ZXYS00)||'",' ||'"bz0000":"'||trim(REC.BZ0000)||'",' ||'"zfbl00":"'||to_char(REC.zfbl00)||'",' ||'"ybbm00":"'||trim(REC.YBBM00)||'",' ||'"gjbm00":"'||trim(REC.GJBM00)||'",' ||'"yppc00":"'||trim(REC.YPPC00)||'",' ||'"sfyp00":"'||trim(REC.SFYP00)||'",' ||'"fillintime":"'||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'",' ||'"yyid00":"'||ls_yyid00||'",' ||'"jkbj":"'||ls_jkbj||'",' ||'"keyvalue":"'||ls_keyvalue||'"'; end loop; LS_FHXX00:='{'||LS_JSONSTR||'}'; end if; --结算单 if PJKCJBM='ZYSF_JTBCJK_0006' then ls_JZDH00:=to_number(SF_SF_GETXMLNOTE('JZDH00',trim(PINTSTR))); for REC in CUR_JZB00 loop LS_JSONSTR:='"jzdh00":"'||trim(ls_yyid00)||to_char(REC.JZDH00)||'",' --||'"id0000":"'||trim(LS_id0000)||'",' ||'"ybdjh0":"'||trim(REC.YBDJH0)||'",' ||'"zyid00":"'||trim(ls_yyid00)||to_char(REC.ZYID00)||'",' ||'"hjje00":"'||to_char(REC.HJJE00)||'",' ||'"jzje00":"'||to_char(REC.JZJE00)||'",' ||'"jmje00":"'||to_char(REC.JMJE00)||'",' ||'"grzhzf":"'||to_char(REC.GRZHZF)||'",' ||'"tcjjzf":"'||to_char(REC.TCJJZF)||'",' ||'"zfje00":"'||to_char(REC.ZFJE00)||'",' ||'"ybzhye":"'||to_char(REC.YBZHYE)||'",' ||'"tsbzbh":"'||trim(REC.TSBZBH)||'",' ||'"gwybz0":"'||to_char(REC.GWYBZ0)||'",' ||'"bcyljz":"'||to_char(REC.BCYLJZ)||'",' ||'"jsjzze":"'||to_char(REC.JSJZZE)||'",' ||'"cljzze":"'||to_char(REC.CLJZZE)||'",' ||'"dbbcbcje":"'||to_char(REC.DBBCBCJE)||'",' ||'"yljzjmje":"'||to_char(REC.YLJZJMJE)||'",' ||'"hlfjm0":"'||to_char(REC.HLFJM0)||'",' ||'"jcfjm0":"'||to_char(REC.JCFJM0)||'",' ||'"cwfjm0":"'||to_char(REC.CWFJM0)||'",' ||'"ssfjm0":"'||to_char(REC.SSFJM0)||'",' ||'"jzfp02":"'||to_char(REC.JZFP02)||'",' ||'"jzfp01":"'||to_char(REC.JZFP01)||'",' ||'"csjz00":"'||to_char(REC.CSJZ00)||'",' ||'"dbzsjfy":"'||to_char(REC.DBZSJFY)||'",' ||'"jzfp03":"'||to_char(REC.JZFP03)||'",' ||'"dbjjzf":"'||to_char(REC.DBJJZF)||'",' ||'"jzfpje":"'||to_char(REC.JZFPJE)||'",' ||'"bcjj01":"'||to_char(REC.BCJJ01)||'",' ||'"mzbzje":"'||to_char(REC.MZBZJE)||'",' ||'"jzrq00":"'||REC.JZRQ00||'",' ||'"jzsj00":"'||REC.JZSJ00||'",' ||'"fillintime":"'||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'",' ||'"yyid00":"'||ls_yyid00||'",' ||'"jkbj":"'||ls_jkbj||'",' ||'"keyvalue":"'||ls_keyvalue||'"'; end loop; LS_FHXX00:='{'||LS_JSONSTR||'}'; end if; --家庭病床医护人员 PINTSTR=15 if PJKCJBM='ZYSF_JTBCJK_1001' then ls_YGBH00:=SF_SF_GETXMLNOTE('YGBH00',trim(PINTSTR)); select count(*) into ld_Counts from BM_YGBM00 where to_char(YGBH00)=ls_YGBH00; if ld_Counts>0 then select * into R_YGBM00 from BM_YGBM00 where to_char(YGBH00)=ls_YGBH00; ls_ygxz00:='2'; if instr(','||R_YGBM00.YGXZ00||',' , ',1,')>0 then ls_ygxz00:='1'; elsif instr(','||R_YGBM00.YGXZ00||',' , ',3,')>0 then ls_ygxz00:='3'; elsif instr(','||R_YGBM00.YGXZ00||',' , ',4,')>0 then ls_ygxz00:='4'; end if; if R_YGBM00.XB0000='男' then ls_YHRYXB:='1'; elsif R_YGBM00.XB0000='女' then ls_YHRYXB:='2'; else ls_YHRYXB:='9'; end if; LS_JSONSTR:='"yyid00":"'||ls_yyid00||'",' ||'"zwxm00":"'||trim(R_YGBM00.ZWXM00)||'",' ||'"xb0000":"'||trim(ls_YHRYXB)||'",' ||'"csrq00":"'||substrb(R_YGBM00.SFZBH0,7,8)||'",' ||'"sfzh00":"'||trim(R_YGBM00.SFZBH0)||'",' ||'"ygxz00":"'||trim(ls_ygxz00)||'",' ||'"ygbh00":"'||trim(ls_yyid00)||to_char(R_YGBM00.YGBH00)||'",' ||'"yyid00":"'||ls_yyid00||'",' ||'"jkbj":"'||ls_jkbj||'",' ||'"keyvalue":"'||ls_keyvalue||'",' ||'"cjrqsj":"'||R_YGBM00.CJRQSJ||'"'; LS_FHXX00:='{'||LS_JSONSTR||'}'; end if; end if; --家庭病床病区 PINTSTR=15 if PJKCJBM='ZYSF_JTBCJK_1002' then ls_BMBH00:=SF_SF_GETXMLNOTE('BMBH00',trim(PINTSTR)); select count(*) into ld_Counts from BM_BMBM00 where to_char(BMBH00)=ls_BMBH00; if ld_Counts>0 then select * into R_BMBM00 from BM_BMBM00 where to_char(BMBH00)=ls_BMBH00; LS_JSONSTR:='"bmbh00":"'||trim(ls_yyid00)||to_char(R_BMBM00.BMBH00)||'",' ||'"groupname":"'||trim(R_BMBM00.BMMC00)||'",' ||'"createtime":"'||R_BMBM00.CJRQSJ||'",' ||'"yyid00":"'||ls_yyid00||'",' ||'"jkbj":"'||ls_jkbj||'",' ||'"keyvalue":"'||ls_keyvalue||'"'; LS_FHXX00:='{'||LS_JSONSTR||'}'; end if; end if; --家庭病床床位 PINTSTR=15 if PJKCJBM='ZYSF_JTBCJK_1003' then ls_CH0000:=trim(SF_SF_GETXMLNOTE('CH0000',trim(PINTSTR))); select count(*) into ld_Counts from BM_CWK000 where trim(CH0000)=ls_CH0000; if ld_Counts>0 then select * into R_CWK000 from BM_CWK000 where trim(CH0000)=ls_CH0000; LS_JSONSTR:='"cwid00":"'||trim(ls_yyid00)||trim(R_CWK000.CH0000)||'",' ||'"ch0000":"'||trim(R_CWK000.CH0000)||'",' ||'"cwxz00":"0",' ||'"fillintime":"'||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'",' ||'"yyid00":"'||ls_yyid00||'",' ||'"jkbj":"'||ls_jkbj||'",' ||'"keyvalue":"'||ls_keyvalue||'"'; LS_FHXX00:='{'||LS_JSONSTR||'}'; end if; end if; return LS_FHXX00; end; / --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% prompt 家庭病床业务请求 SP_ZY_JTBCYWQQ create or replace procedure SP_ZY_JTBCYWQQ ( PJKCJBM in varchar2 , --接口场景编码 PINTSTR in varchar2 default '' , --His入参 xml编码格式传入 PCOMMIT in varchar2 default 'N' , --是否提交事务 Y:提交 N:不提交 PZXZT00 out number , --[出参]执行状态 0:失败 1:成功 PRZID00 out number , --[出参]输出:日志记录ID POUTSTR out varchar2 , --[出参]备用出参xml格式输出 PERRMSG out varchar2 --[出参]错误信息 ) -- MODIFICATION HISTORY -- Person Date Comments -- chenHeyi 2023.08.29 created ZYSF-20230828-004 -- chenHeyi 2023.09.14 场景名称从BM_TYCJBM取 ZYSF-20230914-002 -- chenHeyi 2023.09.28 细化处理场景ZYSF_JTBCJK_0001~0006的日记生成 ZYSF-20231007-001 -- chenHeyi 2023.11.09 入参PCOMMIT默认值改为N ZYSF-20231108-001 -- --------- ---------- ------- as ld_Counts number(10); ls_id0000 ZY_JTBCRZ.ID0000%type; ld_RZID00 ZY_JTBCRZ.RZID00%type; ld_CZY000 BM_YGBM00.YGBH00%type; ld_CZKS00 BM_BMBM00.BMBH00%type; ls_JKCJMC BM_TYCJBM.CJMC00%type; ls_BRID00 varchar(50); ls_ZYID00 varchar(50); ls_DJH000 varchar(50); ls_MXID00 varchar(50); ls_JZDH00 varchar(50); begin PZXZT00:=0; begin ld_CZY000:=to_number(SF_SF_GETXMLNOTE('UserId',trim(PINTSTR))); exception when others then ld_CZY000:=0; end; begin ld_CZKS00:=to_number(SF_SF_GETXMLNOTE('DeptId',trim(PINTSTR))); exception when others then ld_CZKS00:=0; end; ls_id0000:=SF_SF_GETXMLNOTE('id0000',trim(PINTSTR)); select CJMC00 into ls_JKCJMC from BM_TYCJBM where XTMC00='家庭病床接口' and CJBM00=PJKCJBM; if PJKCJBM='ZYSF_JTBCJK_0001' then select count(*) into ld_Counts from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and JKZTBZ in ('0','-1'); if ld_Counts>0 then select RZID00 into ld_RZID00 from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and JKZTBZ in ('0','-1') and rownum=1; else select SQ_ZY_JTBCRZ_RZID00.Nextval into ld_RZID00 from dual; insert into ZY_JTBCRZ(RZID00,ID0000,JKCJBM,JKCJMC,CZY000,CZKS00,INTSTR,JKZTBZ) values(ld_RZID00,ls_id0000,PJKCJBM,ls_JKCJMC,ld_CZY000,ld_CZKS00,PINTSTR,'0'); end if; end if; if PJKCJBM='ZYSF_JTBCJK_0002' then ls_BRID00:=SF_SF_GETXMLNOTE('BRID00',trim(PINTSTR)); if ls_BRID00 is null or ls_BRID00='' then select to_char(BRID00) into ls_BRID00 from ZY_JTBCSQ where ID0000=ls_id0000 ; end if; select count(*) into ld_Counts from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='BM_BRXXB0' and DATAID=ls_BRID00; if ld_Counts>0 then update ZY_JTBCRZ set JKZTBZ='0' where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='BM_BRXXB0' and DATAID=ls_BRID00; select RZID00 into ld_RZID00 from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='BM_BRXXB0' and DATAID=ls_BRID00 and rownum=1; else select SQ_ZY_JTBCRZ_RZID00.Nextval into ld_RZID00 from dual; insert into ZY_JTBCRZ(RZID00,ID0000,JKCJBM,JKCJMC,CZY000,CZKS00,INTSTR,JKZTBZ,TABLE0,DATAID,BRID00) values(ld_RZID00,ls_id0000,PJKCJBM,ls_JKCJMC,ld_CZY000,ld_CZKS00,PINTSTR,'0','BM_BRXXB0',ls_BRID00,ls_BRID00); end if; end if; if PJKCJBM='ZYSF_JTBCJK_0003' then ls_BRID00:=SF_SF_GETXMLNOTE('BRID00',trim(PINTSTR)); ls_ZYID00:=SF_SF_GETXMLNOTE('ZYID00',trim(PINTSTR)); if ls_BRID00 is null or ls_BRID00='' then select to_char(BRID00) into ls_BRID00 from ZY_JTBCSQ where ID0000=ls_id0000 ; end if; select count(*) into ld_Counts from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_BRXXB0' and DATAID=ls_ZYID00; if ld_Counts>0 then update ZY_JTBCRZ set JKZTBZ='0' where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_BRXXB0' and DATAID=ls_ZYID00; select RZID00 into ld_RZID00 from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_BRXXB0' and DATAID=ls_ZYID00 and rownum=1; else select SQ_ZY_JTBCRZ_RZID00.Nextval into ld_RZID00 from dual; insert into ZY_JTBCRZ(RZID00,ID0000,JKCJBM,JKCJMC,CZY000,CZKS00,INTSTR,JKZTBZ,TABLE0,DATAID,BRID00,ZYID00) values(ld_RZID00,ls_id0000,PJKCJBM,ls_JKCJMC,ld_CZY000,ld_CZKS00,PINTSTR,'0','ZY_BRXXB0',ls_ZYID00,ls_BRID00,ls_ZYID00); end if; end if; if PJKCJBM='ZYSF_JTBCJK_0004' then ls_DJH000:=SF_SF_GETXMLNOTE('DJH000',trim(PINTSTR)); ls_BRID00:=SF_SF_GETXMLNOTE('BRID00',trim(PINTSTR)); ls_ZYID00:=SF_SF_GETXMLNOTE('ZYID00',trim(PINTSTR)); select count(*) into ld_Counts from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_BRFY00' and DATAID=ls_DJH000 and to_char(ZYID00)=ls_ZYID00; if ld_Counts>0 then update ZY_JTBCRZ set JKZTBZ='0' where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_BRFY00' and DATAID=ls_DJH000 and to_char(ZYID00)=ls_ZYID00; select RZID00 into ld_RZID00 from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_BRFY00' and DATAID=ls_DJH000 and to_char(ZYID00)=ls_ZYID00 and rownum=1; else select SQ_ZY_JTBCRZ_RZID00.Nextval into ld_RZID00 from dual; insert into ZY_JTBCRZ(RZID00,ID0000,JKCJBM,JKCJMC,CZY000,CZKS00,INTSTR,JKZTBZ,TABLE0,DATAID,BRID00,ZYID00) values(ld_RZID00,ls_id0000,PJKCJBM,ls_JKCJMC,ld_CZY000,ld_CZKS00,PINTSTR,'0','ZY_BRFY00',ls_DJH000,ls_BRID00,ls_ZYID00); end if; end if; if PJKCJBM='ZYSF_JTBCJK_0005' then ls_MXID00:=SF_SF_GETXMLNOTE('MXID00',trim(PINTSTR)); ls_BRID00:=SF_SF_GETXMLNOTE('BRID00',trim(PINTSTR)); ls_ZYID00:=SF_SF_GETXMLNOTE('ZYID00',trim(PINTSTR)); select count(*) into ld_Counts from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_FYMX00' and DATAID=ls_MXID00 and to_char(ZYID00)=ls_ZYID00; if ld_Counts>0 then update ZY_JTBCRZ set JKZTBZ='0' where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_FYMX00' and DATAID=ls_MXID00 and to_char(ZYID00)=ls_ZYID00; select RZID00 into ld_RZID00 from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_FYMX00' and DATAID=ls_MXID00 and to_char(ZYID00)=ls_ZYID00 and rownum=1; else select SQ_ZY_JTBCRZ_RZID00.Nextval into ld_RZID00 from dual; insert into ZY_JTBCRZ(RZID00,ID0000,JKCJBM,JKCJMC,CZY000,CZKS00,INTSTR,JKZTBZ,TABLE0,DATAID,BRID00,ZYID00) values(ld_RZID00,ls_id0000,PJKCJBM,ls_JKCJMC,ld_CZY000,ld_CZKS00,PINTSTR,'0','ZY_FYMX00',ls_MXID00,ls_BRID00,ls_ZYID00); end if; end if; if PJKCJBM='ZYSF_JTBCJK_0006' then ls_JZDH00:=SF_SF_GETXMLNOTE('JZDH00',trim(PINTSTR)); ls_BRID00:=SF_SF_GETXMLNOTE('BRID00',trim(PINTSTR)); ls_ZYID00:=SF_SF_GETXMLNOTE('ZYID00',trim(PINTSTR)); select count(*) into ld_Counts from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_JZB000' and DATAID=ls_JZDH00 and to_char(ZYID00)=ls_ZYID00; if ld_Counts>0 then update ZY_JTBCRZ set JKZTBZ='0' where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_JZB000' and DATAID=ls_JZDH00 and to_char(ZYID00)=ls_ZYID00; select RZID00 into ld_RZID00 from ZY_JTBCRZ where ID0000=ls_id0000 and JKCJBM=PJKCJBM and TABLE0='ZY_JZB000' and DATAID=ls_JZDH00 and to_char(ZYID00)=ls_ZYID00 and rownum=1; else select SQ_ZY_JTBCRZ_RZID00.Nextval into ld_RZID00 from dual; insert into ZY_JTBCRZ(RZID00,ID0000,JKCJBM,JKCJMC,CZY000,CZKS00,INTSTR,JKZTBZ,TABLE0,DATAID,BRID00,ZYID00) values(ld_RZID00,ls_id0000,PJKCJBM,ls_JKCJMC,ld_CZY000,ld_CZKS00,PINTSTR,'0','ZY_JZB000',ls_JZDH00,ls_BRID00,ls_ZYID00); end if; end if; PRZID00:=ld_RZID00; if PCOMMIT='Y' then commit; end if; PZXZT00:=1;--输出:执行状态 0:失败 1:成功 exception when no_data_found then PZXZT00:=0; PERRMSG:=substrb('家庭病床业务请求失败!原因:'||sqlerrm,1,200); rollback; when others then PZXZT00:=0; PERRMSG:=substrb('家庭病床业务请求失败!原因:'||sqlerrm,1,200); rollback; end; / --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%