prompt 门诊医疗保障基金结算清单信息查询 SP_SF_NEWYBJK_JSQDQUERY create or replace procedure SP_SF_NEWYBJK_JSQDQUERY( PYBJKID in number ,--输入:医保接口ID PJKCJBM in varchar2 ,--输入:接口场景编码 PBRID00 in number ,--输入:病人ID PGHID00 in number ,--输入:挂号ID PCZY000 in number ,--输入:操作员编码 PCZYXM0 in varchar2 ,--输入:操作员姓名 PJZDH00 in number ,--输入:结账单号 PDATALX in number ,--输入:数据获取类型 0:HIS内部直接生成 1:获取海泰drg更新数据[医保交互后] 2:更新部分[医保交互后] PQQCS00 in varchar2 default '' ,--输入(可空):请求参数(XML格式) PCOMMIT in varchar2 default 'N' ,--输入:是否提交事务 Y:提交 N:不提交 PZXZT00 out number ,--输出:执行状态 0:失败 1:成功 PFHCS00 out varchar2 ,--输出:返回参数(XML格式) PERRMSG out varchar2 --输出:错误信息 ) as -- MODIFICATION HISTORY -- Person Date Comments --zhangyc 2021.11.01 create by 住院医疗保障基金结算清单信息查询 by MZSF-20211102-003 --zhangyc 2021.11.08 增加医保返回ybtcPay by MZSF-20211110-002 --zhangyc 2021.12.31 opsp_diag_caty 门诊慢特病诊断科别 取SF_BRXXB0.JZKS00对的BMMC00 opsp_mdtrt_date 门诊慢特病就诊日期 取SF_BRXXB0.JZRQ00 by MZSF-20211231-001 --zhangyc 2022.01.06 增加参数控制清单上传根据XT_YYXX00.GJBZMC:国家医保名称 GJYYDJ:国家医院结算等级(1:一级 2:二级 3:三级) by MZSF-20220101-001 --zhangyc 2022.05.14 PDATALX=9:清单上传 by MZSF-20220517-001 -- --------- ---------- ------- LS_CZRQ00 char(8); LS_CZSJ00 char(8); LS_COUNT0 number(12,2); LS_ERRSTR varchar2(50); RGHXX SF_BRXXB0%rowtype; --挂号信息 RBRXX BM_BRXXB0%rowtype; --基本信息 RJZXX SF_JZB000%rowtype; --结账表 LS_JKFSZ0 SF_YBJKMX.JKFSZ0%type;--接口发送值 LS_JKFHZ0 SF_YBJKMX.JKFHZ0%type;--接口返回值 LS_dscg_time varchar2(14); --dscg_time 出院时间 number(14) LS_adm_caty varchar2(20); --adm_caty 入院科别 LS_dscg_caty varchar2(20); --dscg_caty 出院科别 LS_resp_nurs_name varchar2(50); --resp_nurs_name 责任护士姓名 varchar2(50) LS_resp_nurs_code varchar2(30); --resp_nurs_code 责任护士代码 varchar2(30) LS_chfpdr_name varchar2(50); --chfpdr_name 主诊医师姓名 varchar2(50) LS_chfpdr_code varchar2(30); --chfpdr_code 主诊医师代码 varchar2(30) LS_setl_begn_date varchar2(20); --setl_begn_date 结算开始日期 number(8) LS_setl_end_date varchar2(20); --setl_end_date 结算结束日期 number(8) LS_hi_paymtd varchar2(3); --hi_paymtd 医保支付方式 varchar2(3) LS_psn_selfpay number(12,2); --psn_selfpay 个人自付 number(16,2) Y LS_psn_ownpay number(12,2); --psn_ownpay 个人自费 number(16,2) Y=YBYL63(bkc011)  LS_acct_pay number(12,2); --acct_pay 个人账户支出 number(16,2) Y LS_psn_cashpay number(12,2); --psn_cashpay 个人现金支付 number(16,2) Y LS_HJJE00 SF_JZB000.HJJE00%type;--合计金额 LS_TCJJZF SF_JZB000.TCJJZF%type;--统筹基金 LS_GRZHZF SF_JZB000.GRZHZF%type;--医保账户支付 LS_ZFJE00 SF_JZB000.ZFJE00%type;--个人支付 LS_XJFKJE SF_JZB000.XJFKJE%type;--现金支付 LS_PJH000 SF_JZB000.PJH000%type;--票据号 LS_bill_code varchar2(50); --bill_code 票据代码 varchar2(50) Y LS_bill_no varchar2(50); --bill_no 票据号码 varchar2(30) Y LS_biz_sn varchar2(50); --biz_sn 业务流水号 varchar2(50) Y LS_payinfo_Json SF_YBJKMX.VALUE0%type;--[字符]基金支付信息 LS_opspdiseinfo_Json SF_YBJKMX.VALUE0%type;--[字符]门诊慢特病诊断信息 LS_diseinfo_Json SF_YBJKMX.VALUE0%type;--[字符]住院诊断信息< diseinfo> LS_iteminfo_Json SF_YBJKMX.VALUE0%type;--[字符]收费项目信息 LS_oprninfo_Json SF_YBJKMX.VALUE0%type;--[字符]手术操作信息 LS_icuinfo_Json SF_YBJKMX.VALUE0%type;--[字符]重症监护信息 LS_bldinfo_Num number(12);--[数量]输血信息 LS_payinfo_Num number(12);--[数量]基金支付信息 LS_opspdiseinfo_Num number(12);--[数量]门诊慢特病诊断信息 LS_diseinfo_Num number(12);--[数量]住院诊断信息< diseinfo> LS_iteminfo_Num number(12);--[数量]收费项目信息 LS_oprninfo_Num number(12);--[数量]手术操作信息 LS_icuinfo_Num number(12);--[数量]重症监护信息 LS_NullStr varchar2(20);--空值字符 LS_YBYL52 SF_JZB000.YBYL52%type;--YBYL52 akc227 医疗费总金额=个人现金支付金额+个人账户支付金额+基金支付总额 LS_YBYL53 SF_JZB000.YBYL53%type;--YBYL53 bkc102 基金支付总额=统筹基金支付+商保基金支付+公务员医疗补助+精准扶贫医疗叠加+医疗救助基金+其他基金支付+企业补充 LS_YBYL54 SF_JZB000.YBYL54%type;--YBYL54 bkc040 个人现金支付金额(实付现金) LS_YBYL55 SF_JZB000.YBYL55%type;--YBYL55 bkc041 个人帐户支付总额=医保帐户支付+健康帐户支付+家庭共济帐户支付 LS_YBYL56 SF_JZB000.YBYL56%type;--YBYL56 bkc045 其中:统筹基金支付 LS_YBYL57 SF_JZB000.YBYL57%type;--YBYL57 bkc059 其中:公务员医疗补助(bkc059=bkc059_1+bkc059_2+bkc059_3) LS_YBYL58 SF_JZB000.YBYL58%type;--YBYL58 bkc052 其中:大病保险基金支付(商业保险支付) LS_YBYL59 SF_JZB000.YBYL59%type;--YBYL59 bkc062 其中:精准扶贫医疗叠加 LS_YBYL60 SF_JZB000.YBYL60%type;--YBYL60 bkc060 其中:医疗救助基金 LS_YBYL61 SF_JZB000.YBYL61%type;--YBYL61 ake173 其中:其他基金支付 LS_YBYL62 SF_JZB000.YBYL62%type;--YBYL62 ake026 其中:企业补充 LS_YBYL63 SF_JZB000.YBYL63%type;--YBYL63 bkc011 个人自费(非医保费用) LS_YBYL67 SF_JZB000.YBYL67%type;--YBYL67 bkc612 补助基金支付bkc612=bkc052 大病保险基金支付+bkc059公务员医疗补助+bkc062精准扶贫医疗叠加+bkc060医疗救助基金+ake173 其他基金支付+ake026企业补充+bkc061保健基金支付 LS_YBYL68 SF_JZB000.YBYL68%type;--YBYL68 bkc064 产前检查费(医保返回) LS_YBYL33 SF_JZB000.YBYL33%type;--超标床位费用(付费单病种写入) LS_YBYL34 SF_JZB000.YBYL34%type;--除外耗材费用(付费单病种写入) LS_YBYL04 SF_JZB000.YBYL04%type;--单病种限额 LS_JZBDBZBM varchar(30);--单病种编码 LS_AAZ500 SF_YBJKRZ.AAZ500%type;--社会保障卡号 LS_AAC002 SF_YBJKRZ.AAC002%type;--证件号码(社会保障号) LS_AAC999 SF_YBJKRZ.AAC999%type;--个人管理码 LS_AAC003 SF_YBJKRZ.AAC003%type;--姓名 LS_AAC004 SF_YBJKRZ.AAC004%type;--性别编码 LS_AAC004_MC SF_YBJKRZ.AAC004_MC%type;--性别名称 LS_AAC006 SF_YBJKRZ.AAC006%type;--出生日期 LS_AAZ149 SF_YBJKRZ.AAZ149%type;--病种编码 LS_AKC227 SF_YBJKRZ.AKC227%type;--医疗费总金额 LS_BKC102 SF_YBJKRZ.BKC102%type;--基金支付总额 LS_BKC041 SF_YBJKRZ.BKC041%type;--个人账户支付金额 LS_BKC040 SF_YBJKRZ.BKC040%type;--个人现金支付金额(实付现金) LS_AKA151 SF_YBJKRZ.AKA151%type;--统筹支付医保费用起付标准 LS_BKC045 SF_YBJKRZ.BKC045%type;--其中:统筹基金支付 LS_BKC052 SF_YBJKRZ.BKC052%type;--其中:商保基金支付(大额补充) LS_BKC059 SF_YBJKRZ.BKC059%type;--其中:公务员医疗补助 LS_BKC062 SF_YBJKRZ.BKC062%type;--其中:精准扶贫医疗叠加 LS_BKC060 SF_YBJKRZ.BKC060%type;--其中:医疗救助基金 LS_AKE173 SF_YBJKRZ.AKE173%type;--其中:其他基金支付 LS_AKE026 SF_YBJKRZ.AKE026%type;--其中:企业补充 LS_BKC075 SF_YBJKRZ.BKC075%type;--家庭共济账户支付 LS_BKC011 SF_YBJKRZ.BKC011%type;--个人自费(非医保费用) LS_BKC166 SF_YBJKRZ.BKC166%type;--(其中)一般诊疗费补偿金额 LS_BKC167 SF_YBJKRZ.BKC167%type;--(其中)一般诊疗费个人支付金额 LS_BKC612 SF_YBJKRZ.BKC612%type;--补助基金支付 LS_BKC061 SF_YBJKRZ.BKC061%type;--其中:保健基金支付 LS_BKC076 SF_YBJKRZ.BKC076%type;--其中:健康账户支付 LS_BKZFE0 SF_YBJKRZ.BKZFE0%type;--三明离休b卡支付额 LS_BKZHYE SF_YBJKRZ.BKZHYE%type;--三明离休b卡账户余额 LS_BKC079 SF_YBJKRZ.BKC079%type;--健康账户余额 LS_BKC053 SF_YBJKRZ.BKC053%type;--商保现金支付 LS_BKC054 SF_YBJKRZ.BKC054%type;--商保账户支付 LS_BKC101 SF_YBJKRZ.BKC101%type;--除外耗材费用 LS_BKC125 SF_YBJKRZ.BKC125%type;--超标床位费用 LS_BKE361 SF_YBJKRZ.BKE361%type;--普门累计或特门累计 LS_BKC064 SF_YBJKRZ.BKC064%type;--产前检查费 LS_BKC620 SF_YBJKRZ.BKC620%type;--(本地)成员共济账户支付 LS_BKC619 SF_YBJKRZ.BKC619%type;--(异地)成员共济账户支付 LS_BKEH73 SF_YBJKRZ.BKEH73%type;--职工医疗费补助 LS_BKC048 SF_YBJKRZ.BKC048%type;--处级及以上干部补助 LS_DRGZFE SF_YBJKRZ.DRGZFE%type;--DRG付费标准或单病种定额 LS_BKEG12 SF_YBJKRZ.BKEG12%type;--bkeg12:他人共济支付 LS_FYBFY0 SF_YBJKRZ.FYBFY0%type;--fybfy0:含超标准床位费和超标准耗材费 LS_GHHZJE SF_YBJKRZ.GHHZJE%type;--ghhzje:工会互助补助金额 LS_YBDJH0 varchar2(30);--医保单据号 LS_JZDH00 number(10); LS_QDlXBM SF_YBJSD0.QDlXBM%type;--清单类型编码 0:上传 1:查询 2:院内生成 LS_DYBZBM XT_ICD900.DYBZBM%type;--医保诊断对应编码 LS_DYJBMC XT_ICD900.DYJBMC%type;--医保诊断对应名称 LS_diag_code varchar2(50);--diag_code 诊断代码 varchar2(50) LS_diag_name varchar2(100);--diag_name 诊断名称 varchar2(100) LS_psn_no varchar2(30);--psn_no:人员编号 LS_TSBZBH varchar2(50);--特殊病种编码 LS_TSBZMC varchar2(100);--特殊病种名称 LS_jsqd_Notsend_list varchar2(100);--医疗基金结算清单不发送list多个|隔开 LS_JSQD_MainNodeName varchar2(100);--医疗保障基金结算清单上传、查询主节点编码:(分隔符用|)(参考格式:setlinfo|setlinfo) LS_MainNodeName varchar2(50); --主项节点编码 LS_setlinfo_Json SF_YBJKMX.VALUE0%type;--结算清单信息开始 LS_VALUE0 SF_YBJKMX.VALUE0%type;-- LS_otp_wm_dise varchar2(200);--门(急)诊诊断(西医诊断) LS_wm_dise_code varchar2(50);--西医疾病代码 LS_otptcmdise varchar2(200);--门(急)诊诊断(中医诊断) LS_tcmdisecode varchar2(50);--中医疾病代码 LS_BAKXML varchar2(200); LS_gend varchar2(10);--性别 LS_opsp_mdtrt_date varchar2(20); --门诊慢特病就诊日期 LS_opsp_diag_caty varchar2(50); --门诊慢特病诊断科别 LS_fixmedins_code varchar2(50);--定点医药机构编号 LS_fixmedins_name varchar2(100);--定点医药机构名称 LS_hi_setl_lv varchar2(50);--医保结算等级 LS_YYID00 XT_YYXX00.YYID00%type;--医院ID号 LS_YYQC00 XT_YYXX00.YYQC00%type;--医院全称 LS_YYJC00 XT_YYXX00.YYJC00%type;--医院简称 LS_GJBZBM XT_YYXX00.GJBZBM%type;--国家标准编码 LS_GJBZMC XT_YYXX00.GJBZMC%type;--国家医保名称 LS_GJYYDJ XT_YYXX00.GJYYDJ%type;--国家医院等级(1:一级 2:二级 3:三级) LS_medins_fill_dept varchar2(50);--医疗机构填报部门 LS_medins_fill_psn varchar2(50);--医疗机构填报人 LS_YGBMMC BM_BMBM00.BMMC00%type;--员工部门名称 LS_YGZWXM BM_YGBM00.ZWXM00%type;--员工中文姓名 LS_setl_list_sn varchar2(30);--结算清单流水号:9 位 格式:年度编码(2 位) 顺序号编码(7 位) LS_YBTCPAY SF_YBJSD0.YBTCPAY%type;--ybtcPay:医保统筹基金 LS_brdy SF_YBJSD0.brdy%type;--brdy:出生日期 (YYYY-MM-DD) LS_AGE SF_YBJSD0.age%type;--age:年龄 LS_NWB_AGE SF_YBJSD0.nwb_age%type;--nwb_age:(年龄不足1周岁)年龄 LS_BRNL00 number(12,4);--病人年龄 LS_stas_type varchar2(10);--stas_type:状态分类 [0未提交,1已提交,2审核通过,3审核不通过 9:院内生成] LS_zgdePay SF_YBJSD0.zgdePay%type;--zgdePay:职工大额补助 LS_jmdbPay SF_YBJSD0.jmdbPay%type;--jmdbPay:居民大病保险 LS_gwyPay SF_YBJSD0.gwyPay%type;--gwyPay:公务员医疗补助 LS_yljzPay SF_YBJSD0.yljzPay%type;--yljzPay:医疗救助支付 LS_fund_payamt_qyzf SF_YBJSD0.fund_payamt_qyzf%type;--其他支付-企业补充=ake026 LS_fund_payamt_sybx SF_YBJSD0.fund_payamt_sybx%type;--其他支付-商业保险=bkc054 LS_fund_payamt_CZBZ SF_YBJSD0.fund_payamt_CZBZ%type;--其他支付-财政补助=bkc612 LS_fund_payamt_FPBZ SF_YBJSD0.fund_payamt_FPBZ%type;--其他支付-扶贫补助=bkc062 LS_fund_payamt_JZFP01 SF_YBJSD0.fund_payamt_JZFP01%type;--其他支付-精准扶贫一道 LS_fund_payamt_JZFP02 SF_YBJSD0.fund_payamt_JZFP02%type;--其他支付-精准扶贫二道 LS_fund_payamt_SZHJZ SF_YBJSD0.fund_payamt_SZHJZ%type;--其他支付-市综合救助 LS_fund_payamt_CJGMBZ SF_YBJSD0.fund_payamt_CJGMBZ%type;--其他支付-处级干部补助 LS_fund_payamt_QTZF SF_YBJSD0.fund_payamt_QTZF%type;--其他支付-其他支付=ake173 LS_dbz_bzbmmc SF_YBJSD0.dbz_bzbmmc%type;--病种收费名称+代码 LS_dbz_debzmc SF_YBJSD0.dbz_debzmc%type;--单病种定额标准名称 LS_dbz_cbcwfmc SF_YBJSD0.dbz_cbcwfmc%type;--单病种床边床位费名称 LS_dbz_cwhcfmc SF_YBJSD0.dbz_cwhcfmc%type;--单病种除外费名称 cursor CUR_YBJKZD is select a.* from BM_YBJKZD A where 1=1 and A.JKBM00=2 and A.SFYX00='1' order by A.PXXH00,A.NBID00; --诊断信息 cursor CUR_BRZDXX is select a.ZZDBZ0,A.ICD900 as ZDM000,a.ZDMC00 as ZDMC00 from YS_BRZDXX A where 1=1 and A.GHID00=PGHID00 order by A.ICD900; --基金支付信息开始 cursor CUR_payinfo is select tt.fund_pay_type, sum(tt.fund_payamt) as fund_payamt from ( select decode(aa.ZFFS00,3,'310200',4,'310100',16,'320100','390100') as fund_pay_type,--fund_pay_type 基金支付类型 varchar2(6) aa.JFJE00 as fund_payamt--fund_payamt 基金支付金额 number(16,2) from SF_BRJFB0 AA where aa.BRID00=PBRID00 and ((nvl(PJZDH00,0)>0 and aa.JZDH00=PJZDH00) or (nvl(PJZDH00,0)=0 and 1=1)) and aa.ZFFS00 in (3,4,10,11,13,14,15,16) ) tt group by tt.fund_pay_type ; --改为特殊病种 /* --门诊慢特病诊断信息开始 cursor CUR_opspdiseinfo is select a.ZZDBZ0 as ZZDBZ0, a.ZDMC00 as diag_name,--1 diag_name 诊断名称 varchar2(100) a.ICD900 as diag_code,--2 diag_code 诊断代码 varchar2(20) null as oprn_oprt_name,--3 oprn_oprt_name 手术操作名称 varchar2(500) null as oprn_oprt_code,--4 oprn_oprt_code 手术操作代码 varchar2(30) '1' as maindiag_flag--5 maindiag_flag 主诊断标志 varchar2(3) ,0:否' '1','是' from YS_BRZDXX A where 1=1 and A.GHID00=PGHID00 order by A.ICD900 ; */ --门诊慢特病诊断信息开始 cursor CUR_opspdiseinfo is select '0' as ZZDBZ0, LS_TSBZMC as diag_name,--1 diag_name 诊断名称 varchar2(100) LS_TSBZBH as diag_code,--2 diag_code 诊断代码 varchar2(20) null as oprn_oprt_name,--3 oprn_oprt_name 手术操作名称 varchar2(500) null as oprn_oprt_code,--4 oprn_oprt_code 手术操作代码 varchar2(30) '0' as maindiag_flag--5 maindiag_flag 主诊断标志 varchar2(3) ,0:否' '1','是' from dual A where LS_TSBZBH is not null ; --住院诊断信息开始 cursor CUR_diseinfo is select a.ZZDBZ0 as ZZDBZ0, decode(a.ZZDBZ0,'3','1','2') as diag_type,--1 diag_type 诊断类别 varchar2(3) '1','西医主要诊断','2','西医其他诊断' '3','中医主病诊断' '4','中医主证诊断' a.ICD900 as diag_code,--2 diag_code 诊断代码 varchar2(20) a.ZDMC00 as diag_name,--3 diag_name 诊断名称 varchar2(100) '4' as adm_cond_type,--4 adm_cond_type 入院病情类型 varchar2(3) 1','有' ,'3','情况不明' '2','临床未确定' '4','无' decode(a.ZZDBZ0,'3','1','0') as maindiag_flag--5 maindiag_flag 主诊断标志 varchar2(3) 0:否' '1','是' from YS_BRZDXX A where 1=2 and A.GHID00=PGHID00 order by A.ICD900 ; --收费项目信息开始 cursor CUR_iteminfo is select tt.med_chrgitm as med_chrgitm, sum(tt.amt) as amt, sum(tt.claa_sumfee) as claa_sumfee, sum(tt.clab_amt) as clab_amt, sum(tt.fulamt_ownpay_amt) as fulamt_ownpay_amt, sum(tt.oth_amt) as oth_amt from( select nvl(CC.GJFPBH,'14') as med_chrgitm,--1 med_chrgitm 医疗收费项目 varchar2(6) nvl(bb.akc227,0) as amt,--2 amt 金额 number(16,2) =akc227 nvl(bb.bkc008,0) as claa_sumfee,--3 claa_sumfee 甲类费用合计 number(16,2)=bkc008 nvl(bb.bkc009,0) as clab_amt,--4 clab_amt 乙类金额 number(16,2)=bkc009 nvl(bb.bkc011,0) as fulamt_ownpay_amt,--5 fulamt_ownpay_amt 全自费金额 number(16,2)=bkc011 nvl(bb.bkc010,0) as oth_amt--6 oth_amt 其他金额 number(16,2) =bkc010 from SF_JZB000 AA,SF_YBFPMX BB,BM_FPXM00 CC where AA.JZDH00=BB.JZDH00 and BB.AKA063 =CC.BH0000 and AA.BRID00=PBRID00 and AA.JZDH00=PJZDH00 ) tt group by tt.med_chrgitm ; --收费项目信息开始 cursor CUR_YNFPMX is select tt.med_chrgitm as med_chrgitm, sum(tt.amt) as amt, sum(tt.claa_sumfee) as claa_sumfee, sum(tt.clab_amt) as clab_amt, sum(tt.fulamt_ownpay_amt) as fulamt_ownpay_amt, sum(tt.oth_amt) as oth_amt from( select nvl(CC.GJFPBH,'14') as med_chrgitm,--1 med_chrgitm 医疗收费项目 varchar2(6) nvl(bb.XMJE00,0) as amt,--2 amt 金额 number(16,2) =akc227 0 as claa_sumfee,--3 claa_sumfee 甲类费用合计 number(16,2)=bkc008 0 as clab_amt,--4 clab_amt 乙类金额 number(16,2)=bkc009 0 as fulamt_ownpay_amt,--5 fulamt_ownpay_amt 全自费金额 number(16,2)=bkc011 0 as oth_amt--6 oth_amt 其他金额 number(16,2) =bkc010 from SF_JZB000 AA,SF_JZMX00 BB,BM_FPXM00 CC where AA.JZDH00=BB.JZDH00 and BB.XMBH00 =CC.FPXMID and AA.BRID00=PBRID00 and AA.JZDH00=PJZDH00 ) tt group by tt.med_chrgitm ; --手术操作信息开始 cursor CUR_oprninfo is select decode(bb.SFZSS0,'0','1','2') as oprn_oprt_type,--1 oprn_oprt_type 手术操作类别 varchar2(3) 1:主要手术及操作' '2','其他手术及操作' bb.SSXMJC as oprn_oprt_name,--2 oprn_oprt_name 手术操作名称 varchar2(500) nvl(bb.CM3000,SSBH00) as oprn_oprt_code,--3 oprn_oprt_code 手术操作代码 varchar2(30) aa.SQRQ00 as oprn_oprt_date,--4 oprn_oprt_date 手术操作日期 number(8) SF_ZY_GETJSQD_JKFSZ0('anst_mtd_code',aa.MZBH00) as anst_way,--5 anst_way 麻醉方式 varchar2(6) =xt_mzfs00 aa.SSYSXM as oper_dr_name,--6 oper_dr_name 术者医师姓名 varchar2(50) nvl((select nvl(tt.YBYGDM,tt.YSZJHM) from BM_YGBM00 tt where tt.YGBH00=aa.SSYS00 and rownum=1),aa.SSYS00) as oper_dr_code,--7 oper_dr_code 术者医师代码 varchar2(20) aa.MZYSXM as anst_dr_name,--8 anst_dr_name 麻醉医师姓名 varchar2(50) nvl((select nvl(tt.YBYGDM,tt.YSZJHM) from BM_YGBM00 tt where tt.YGBH00=aa.MZYS00 and rownum=1),aa.MZYS00) as anst_dr_code,--9 anst_dr_code 麻醉医师代码 varchar2(20) aa.SSQSRQ||substrb(aa.SSQSSJ,1,2)||substrb(aa.SSQSSJ,4,2)||substrb(aa.SSQSSJ,7,2) as oprn_oprt_begintime,--10 oprn_oprt_begintime 手术开始时间 number(14) aa.SSJSRQ||substrb(aa.SSJSSJ,1,2)||substrb(aa.SSJSSJ,4,2)||substrb(aa.SSJSSJ,7,2) as oprn_oprt_endtime,--11 oprn_oprt_endtime 手术结束时间 number(14) aa.MZKSRQ||substrb(aa.MZKSSJ,1,2)||substrb(aa.MZKSSJ,4,2)||substrb(aa.MZKSSJ,7,2) as anst_begintime,--12 anst_begintime 麻醉开始时间 number(14) aa.MZJSRQ||substrb(aa.MZJSSJ,1,2)||substrb(aa.MZJSSJ,4,2)||substrb(aa.MZJSSJ,7,2) as anst_endtime--13 anst_endtime 麻醉结束时间 number(14) from SS_YW0000 aa,SS_YWMX00 bb where aa.SSDH00=bb.SSDH00 and aa.MZZYBZ='0' and aa.BRID00=PBRID00 and aa.ZYGHID=PGHID00 ; --重症监护信息开始 cursor CUR_icuinfo is select null as scs_cutd_ward_type,--1 scs_cutd_ward_type 重症监护病房类型 varchar2(6) null as scs_cutd_inpool_time,--2 scs_cutd_inpool_time 重症监护进入时间 number(14) null as scs_cutd_exit_time,--3 scs_cutd_exit_time 重症监护退出时间 number(14) null as scs_cutd_sum_dura--4 scs_cutd_sum_dura 重症监护合计时长 varchar2(10) from dual where 1=2 ; begin /* 接口字典:select * from BM_YBJKZD where JKBM00=2; 属性字典:select * from BM_YBSXZD where JKBM00=2; */ --变量初始化 LS_ERRSTR:='变量初始化'; LS_CZRQ00:=to_char(sysdate,'YYYYMMDD'); LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS'); PZXZT00:=0;--输出:执行状态 0:失败 1:成功 PFHCS00:='';--输出:返回参数(XML格式) PERRMSG:='';--输出:错误信息 LS_psn_selfpay:=0; --psn_selfpay 个人自付 number(16,2) Y LS_psn_ownpay:=0; --psn_ownpay 个人自费 number(16,2) Y=YBYL63(bkc011)  LS_acct_pay:=0; --acct_pay 个人账户支出 number(16,2) Y LS_psn_cashpay:=0; --psn_cashpay 个人现金支付 number(16,2) Y LS_payinfo_Json:=null; --[字符]基金支付信息 LS_opspdiseinfo_Json:=null;--[字符]门诊慢特病诊断信息 LS_diseinfo_Json:=null; --[字符]住院诊断信息< diseinfo> LS_iteminfo_Json:=null; --[字符]收费项目信息 LS_oprninfo_Json:=null; --[字符]手术操作信息 LS_icuinfo_Json:=null; --[字符]重症监护信息 LS_payinfo_Num:=0; --[数量]基金支付信息 LS_opspdiseinfo_Num:=0; --[数量]门诊慢特病诊断信息 LS_diseinfo_Num:=0; --[数量]住院诊断信息< diseinfo> LS_iteminfo_Num:=0; --[数量]收费项目信息 LS_oprninfo_Num:=0; --[数量]手术操作信息 LS_icuinfo_Num:=0; --[数量]重症监护信息 LS_NullStr:='-';--空值字符 LS_YBYL52:=0;--YBYL52 akc227 医疗费总金额=个人现金支付金额+个人账户支付金额+基金支付总额 LS_YBYL53:=0;--YBYL53 bkc102 基金支付总额=统筹基金支付+商保基金支付+公务员医疗补助+精准扶贫医疗叠加+医疗救助基金+其他基金支付+企业补充 LS_YBYL54:=0;--YBYL54 bkc040 个人现金支付金额(实付现金) LS_YBYL55:=0;--YBYL55 bkc041 个人帐户支付总额=医保帐户支付+健康帐户支付+家庭共济帐户支付 LS_YBYL56:=0;--YBYL56 bkc045 其中:统筹基金支付 LS_YBYL57:=0;--YBYL57 bkc059 其中:公务员医疗补助(bkc059=bkc059_1+bkc059_2+bkc059_3) LS_YBYL58:=0;--YBYL58 bkc052 其中:大病保险基金支付(商业保险支付) LS_YBYL59:=0;--YBYL59 bkc062 其中:精准扶贫医疗叠加 LS_YBYL60:=0;--YBYL60 bkc060 其中:医疗救助基金 LS_YBYL61:=0;--YBYL61 ake173 其中:其他基金支付 LS_YBYL62:=0;--YBYL62 ake026 其中:企业补充 LS_YBYL63:=0;--YBYL63 bkc011 个人自费(非医保费用) LS_YBYL67:=0;--YBYL67 bkc612 补助基金支付bkc612=bkc052 大病保险基金支付+bkc059公务员医疗补助+bkc062精准扶贫医疗叠加+bkc060医疗救助基金+ake173 其他基金支付+ake026企业补充+bkc061保健基金支付 LS_YBYL68:=0;--YBYL68 bkc064 产前检查费(医保返回) LS_AAZ500:=null;--社会保障卡号 LS_AAC002:=null;--证件号码(社会保障号) LS_AAC999:=null;--个人管理码 LS_AAC003:=null;--姓名 LS_AAC004:=null;--性别编码 LS_AAC004_MC:=null;--性别名称 LS_AAC006:=null;--出生日期 LS_AAZ149:=null;--病种编码 LS_AKC227:=0;--医疗费总金额 LS_BKC102:=0;--基金支付总额 LS_BKC041:=0;--个人账户支付金额 LS_BKC040:=0;--个人现金支付金额(实付现金) LS_AKA151:=0;--统筹支付医保费用起付标准 LS_BKC045:=0;--其中:统筹基金支付 LS_BKC052:=0;--其中:商保基金支付(大额补充) LS_BKC059:=0;--其中:公务员医疗补助 LS_BKC062:=0;--其中:精准扶贫医疗叠加 LS_BKC060:=0;--其中:医疗救助基金 LS_AKE173:=0;--其中:其他基金支付 LS_AKE026:=0;--其中:企业补充 LS_BKC075:=0;--家庭共济账户支付 LS_BKC011:=0;--个人自费(非医保费用) LS_BKC166:=0;--(其中)一般诊疗费补偿金额 LS_BKC167:=0;--(其中)一般诊疗费个人支付金额 LS_BKC612:=0;--补助基金支付 LS_BKC061:=0;--其中:保健基金支付 LS_BKC076:=0;--其中:健康账户支付 LS_BKZFE0:=0;--三明离休b卡支付额 LS_BKZHYE:=0;--三明离休b卡账户余额 LS_BKC079:=0;--健康账户余额 LS_BKC053:=0;--商保现金支付 LS_BKC054:=0;--商保账户支付 LS_BKC101:=0;--除外耗材费用 LS_BKC125:=0;--超标床位费用 LS_BKE361:=0;--普门累计或特门累计 LS_BKC064:=0;--产前检查费 LS_BKC620:=0;--(本地)成员共济账户支付 LS_BKC619:=0;--(异地)成员共济账户支付 LS_BKEH73:=0;--职工医疗费补助 LS_BKC048:=0;--处级及以上干部补助 LS_DRGZFE:=0;--DRG付费标准或单病种定额 LS_BKEG12:=0;--bkeg12:他人共济支付 LS_FYBFY0:=0;--fybfy0:含超标准床位费和超标准耗材费 LS_GHHZJE:=0;--ghhzje:工会互助补助金额 LS_YBDJH0:=null;--医保单据号 LS_JZDH00:=0; LS_AAZ149:=null;--特殊病种编码 LS_TSBZBH:=null;--特殊病种编码 LS_TSBZMC:=null;--特殊病种名称 LS_jsqd_Notsend_list:=null;--医疗基金结算清单不发送list多个|隔开 LS_setlinfo_Json:=null;--结算清单信息开始 --医疗基金结算清单不发送list多个|隔开(基金:payinfo,慢特病:opspdiseinfo,住院诊断:diseinfo,收费项目:iteminfo,手术:oprninfo,重症监护:icuinfo) 默认值:空值 LS_jsqd_Notsend_list:=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','jsqd_Notsend_list'),1,100)); --医疗保障基金结算清单上传、查询主节点编码:(分隔符用|)(参考格式:setlinfo|setlinfo) LS_JSQD_MainNodeName:=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','JSQD_MainNodeName'),1,100)); LS_MainNodeName:=substrb(SF_SF_RETURNINDEXEH(LS_JSQD_MainNodeName,'|', 1),1,50);--主项节点编码 LS_fixmedins_code:=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','fixmedins_code'),1,50));--定点医药机构编号 LS_fixmedins_name:=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','fixmedins_name'),1,100));--定点医药机构名称 LS_hi_setl_lv:=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','hi_setl_lv'),1,50));--医保结算等级 LS_medins_fill_dept:=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','medins_fill_dept'),1,50));--医疗机构填报部门 LS_medins_fill_psn:=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','medins_fill_psn'),1,50));--医疗机构填报人 if PDATALX in (9) then LS_QDlXBM:='9';--清单类型编码 0:上传 1:查询 2:院内生成 elsif PDATALX in (0) then LS_QDlXBM:='2';--清单类型编码 0:上传 1:查询 2:院内生成 else LS_QDlXBM:='0';--清单类型编码 0:上传 1:查询 2:院内生成 end if; if PDATALX not in (9) then --输入:数据获取类型 0:HIS内部直接生成 1:获取海泰drg更新数据[医保交互后] 2:更新部分[医保交互后] 9:清单上传 LS_jsqd_Notsend_list:=null; end if; if PDATALX=0 then --输入:数据获取类型 0:HIS内部直接生成 1:获取海泰drg更新数据[医保交互后] 2:更新部分[医保交互后] 9:清单上传 LS_stas_type:='9';--stas_type:状态分类 [0未提交,1已提交,2审核通过,3审核不通过 9:院内生成] else LS_stas_type:='1';--stas_type:状态分类 [0未提交,1已提交,2审核通过,3审核不通过 9:院内生成] end if; --获取医院的国家医保标准编码 begin select c.YYID00,c.YYQC00,c.YYJC00, c.GJBZBM,c.GJBZMC,c.GJYYDJ,b.BMMC00,a.ZWXM00 into LS_YYID00,LS_YYQC00,LS_YYJC00, LS_GJBZBM,LS_GJBZMC,LS_GJYYDJ,LS_YGBMMC,LS_YGZWXM from BM_BMBM00 b,XT_YYXX00 c,BM_YGBM00 A where b.BMBH00=a.BMBH00 and b.YYID00=c.YYID00 and a.ygbh00=PCZY000; exception when others then LS_YYID00 :=null; LS_YYQC00 :=null; LS_YYJC00 :=null; LS_GJBZBM :=null;--国家标准编码 LS_GJBZMC :=null;--国家医保名称 LS_GJYYDJ :=null;--国家医院等级(1:一级 2:二级 3:三级) end; if trim(LS_YYJC00) is not null then LS_fixmedins_name:=substrb(trim(LS_YYJC00),1,100);--定点医药机构名称 end if; if trim(LS_GJBZBM) is not null then LS_fixmedins_code:=substrb(trim(LS_GJBZBM),1,50);--定点医药机构编号 end if; --XT_YYXX00.GJBZMC:国家医保名称 if LS_GJBZMC is not null then LS_fixmedins_name:=substrb(trim(LS_GJBZMC),1,100);--定点医药机构名称 end if; --XT_YYXX00.GJYYDJ:国家医院等级(1:一级 2:二级 3:三级) if LS_GJYYDJ is not null then--国家医院等级(1:一级 2:二级 3:三级) LS_hi_setl_lv:=LS_GJYYDJ;--医保结算等级 end if; if trim(LS_YGBMMC) is not null and trim(LS_medins_fill_dept) is null then LS_medins_fill_dept:=substrb(trim(LS_YGBMMC),1,50);--员工部门名称 end if; if trim(LS_YGZWXM) is not null and trim(LS_medins_fill_psn) is null then LS_medins_fill_psn:=substrb(trim(LS_YGZWXM),1,50);--员工中文姓名 end if; --参数校验 LS_ERRSTR:='参数校验'; if nvl(PGHID00,0)=0 and nvl(PBRID00,0)=0 then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='入参:PBRID00(病人id)和PGHID00(挂号ID),参数传值错误!';--[出参]:错误信息 return; end if; if nvl(PBRID00,0)=0 then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='入参:PBRID00(病人id),参数传值错误!';--[出参]:错误信息 return; end if; if nvl(PGHID00,0)=0 then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='入参:PGHID00(挂号ID),参数传值错误!';--[出参]:错误信息 return; end if; if nvl(PJZDH00,0)=0 then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='入参:PJZDH00(结账单号),参数传值错误!';--[出参]:错误信息 return; end if; --获取基本信息 begin select * into RBRXX from BM_BRXXB0 aa where 1=1 and AA.BRID00=PBRID00; exception when others then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='未找到有效基本病人信息!';--[出参]:错误信息 return; rollback; end; --获取结账表 begin select * into RJZXX from SF_JZB000 aa where 1=1 and AA.BRID00=PBRID00 and JZDH00=PJZDH00 ; exception when others then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='未找到有效结账记录!';--[出参]:错误信息 return; rollback; end; --查找对应的挂号信息 begin select * into RGHXX from SF_BRXXB0 aa where 1=1 and AA.BRID00=PBRID00 and AA.GHID00=PGHID00; exception when others then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='未找到有效挂号信息!';--[出参]:错误信息 return; rollback; end; --门诊慢特病诊断科别 begin select trim(substrb(BMMC00,1,50)) into LS_opsp_diag_caty from BM_BMBM00 aa where 1=1 and AA.BMBH00=RGHXX.JZKS00; exception when others then LS_opsp_diag_caty:=null; --opsp_diag_caty 门诊慢特病诊断科别 end; LS_opsp_mdtrt_date:=RGHXX.jzrq00; --门诊慢特病就诊日期 LS_opsp_mdtrt_date:=substrb(LS_opsp_mdtrt_date,1,4)||'-'||substrb(LS_opsp_mdtrt_date,5,2)||'-'||substrb(LS_opsp_mdtrt_date,7,2);--门诊慢特病就诊日期('YYYY-MM-DD') --获取科室编码 begin select substrb(nvl(GJYBKS,YYKSBM),1,20) as adm_caty,substrb(nvl(GJYBKS,YYKSBM),1,20) as dscg_caty into LS_adm_caty,LS_dscg_caty from BM_BMBM00 aa where 1=2 and AA.BMBH00=RGHXX.GHKS00; exception when others then LS_adm_caty:=null; --adm_caty 入院科别 LS_dscg_caty:=null; --dscg_caty 出院科别 end; --责任护士代码、责任护士姓名 LS_resp_nurs_name:=null; --resp_nurs_name 责任护士姓名 LS_resp_nurs_code:=null; --resp_nurs_code 责任护士代码 /* begin select substrb(YBYGDM,1,30) as YBYGDM,substrb(ZWXM00,1,50) as ZWXM00 into LS_resp_nurs_code,LS_resp_nurs_name from BM_YGBM00 aa where 1=1 and AA.YGBH00=RGHXX.GHY000; exception when others then LS_resp_nurs_name:=null; --resp_nurs_name 责任护士姓名 varchar2(50) LS_resp_nurs_code:=null; --resp_nurs_code 责任护士代码 varchar2(30) end; */ --主诊医师代码、主诊医师姓名 begin select substrb(YBYGDM,1,30) as YBYGDM,substrb(ZWXM00,1,50) as ZWXM00 into LS_chfpdr_code,LS_chfpdr_name from BM_YGBM00 aa where 1=1 and AA.YGBH00=RGHXX.JZYS00; exception when others then LS_chfpdr_name:=null; --chfpdr_name 主诊医师姓名 varchar2(50) LS_chfpdr_code:=null; --chfpdr_code 主诊医师代码 varchar2(30) end; --setl_begn_date、setl_end_date begin select min(aa.CZRQ00) as setl_begn_date,max(aa.CZRQ00) as setl_end_date into LS_setl_begn_date,LS_setl_end_date from SF_BRFY00 AA where aa.BRID00=PBRID00 and aa.JZDH00=PJZDH00; exception when others then LS_setl_begn_date:=null; --setl_begn_date 结算开始日期 number(8) LS_setl_end_date:=null; --setl_end_date 结算结束日期 number(8) end; if LS_setl_begn_date is not null then LS_setl_begn_date:=substrb(LS_setl_begn_date,1,4)||'-'||substrb(LS_setl_begn_date,5,2)||'-'||substrb(LS_setl_begn_date,7,2); end if; if LS_setl_end_date is not null then LS_setl_end_date:=substrb(LS_setl_end_date,1,4)||'-'||substrb(LS_setl_end_date,5,2)||'-'||substrb(LS_setl_end_date,7,2); end if; LS_setl_begn_date:=nvl(LS_setl_begn_date,to_char(sysdate,'YYYY-MM-DD')); --setl_begn_date 结算开始日期 LS_setl_end_date:=nvl(LS_setl_end_date,to_char(sysdate,'YYYY-MM-DD'));--setl_end_date 结算结束日期 --hi_paymtd 医保支付方式 [1:按项目 2:单病种 3:按病种分值 4:基本诊断相关分组(DRG) 5:按床日 6:按人次 7:按定额 9:其他] LS_hi_paymtd:='1';--接口发送值 if trim(RBRXX.BRXB00)='男' then LS_gend:='1';--接口发送值 elsif trim(RBRXX.BRXB00)='女' then LS_gend:='2';--接口发送值 else LS_gend:='9';--接口发送值 end if; begin select max(substrb(trim(aa.YBDJH0),1,30))as YBDJH0,max(aa.JZDH00) as JZDH00, sum(aa.HJJE00) as HJJE00,sum(aa.TCJJZF) as TCJJZF,sum(aa.GRZHZF) as GRZHZF,sum(aa.ZFJE00) as ZFJE00,sum(aa.XJFKJE) as XJFKJE,max(aa.PJH000) as PJH000, sum(nvl(aa.YBYL52,0)) as YBYL52,sum(nvl(aa.YBYL53,0)) as YBYL53,sum(nvl(aa.YBYL54,0)) as YBYL54,sum(nvl(aa.YBYL55,0)) as YBYL55, sum(nvl(aa.YBYL56,0)) as YBYL56,sum(nvl(aa.YBYL57,0)) as YBYL57,sum(nvl(aa.YBYL58,0)) as YBYL58,sum(nvl(aa.YBYL59,0)) as YBYL59, sum(nvl(aa.YBYL60,0)) as YBYL60,sum(nvl(aa.YBYL61,0)) as YBYL61,sum(nvl(aa.YBYL62,0)) as YBYL62,sum(nvl(aa.YBYL63,0)) as YBYL63, sum(nvl(aa.YBYL67,0)) as YBYL67,sum(nvl(aa.YBYL68,0)) as YBYL68,max(trim(aa.TSBZBH)) as TSBZBH,max(substrb(trim(aa.YBSM09),1,30)) as AAZ149 into LS_YBDJH0,LS_JZDH00,LS_HJJE00,LS_TCJJZF,LS_GRZHZF,LS_ZFJE00,LS_XJFKJE,LS_PJH000, LS_YBYL52,LS_YBYL53,LS_YBYL54,LS_YBYL55, LS_YBYL56,LS_YBYL57,LS_YBYL58,LS_YBYL59, LS_YBYL60,LS_YBYL61,LS_YBYL62,LS_YBYL63, LS_YBYL67,LS_YBYL68,LS_TSBZBH,LS_AAZ149 from SF_JZB000 AA where aa.BRID00=PBRID00 and aa.JZDH00=PJZDH00; exception when others then LS_TCJJZF:=0;--统筹基金 LS_GRZHZF:=0;--医保账户支付 LS_ZFJE00:=0;--个人支付 LS_XJFKJE:=0;--现金支付 LS_PJH000:=0;--票据号 LS_YBYL52:=0;--YBYL52 akc227 医疗费总金额=个人现金支付金额+个人账户支付金额+基金支付总额 LS_YBYL53:=0;--YBYL53 bkc102 基金支付总额=统筹基金支付+商保基金支付+公务员医疗补助+精准扶贫医疗叠加+医疗救助基金+其他基金支付+企业补充 LS_YBYL54:=0;--YBYL54 bkc040 个人现金支付金额(实付现金) LS_YBYL55:=0;--YBYL55 bkc041 个人帐户支付总额=医保帐户支付+健康帐户支付+家庭共济帐户支付 LS_YBYL56:=0;--YBYL56 bkc045 其中:统筹基金支付 LS_YBYL57:=0;--YBYL57 bkc059 其中:公务员医疗补助(bkc059=bkc059_1+bkc059_2+bkc059_3) LS_YBYL58:=0;--YBYL58 bkc052 其中:大病保险基金支付(商业保险支付) LS_YBYL59:=0;--YBYL59 bkc062 其中:精准扶贫医疗叠加 LS_YBYL60:=0;--YBYL60 bkc060 其中:医疗救助基金 LS_YBYL61:=0;--YBYL61 ake173 其中:其他基金支付 LS_YBYL62:=0;--YBYL62 ake026 其中:企业补充 LS_YBYL63:=0;--YBYL63 bkc011 个人自费(非医保费用) LS_YBYL67:=0;--YBYL67 bkc612 补助基金支付bkc612=bkc052 大病保险基金支付+bkc059公务员医疗补助+bkc062精准扶贫医疗叠加+bkc060医疗救助基金+ake173 其他基金支付+ake026企业补充+bkc061保健基金支付 LS_YBYL68:=0;--YBYL68 bkc064 产前检查费(医保返回) LS_JZDH00:=0; LS_YBDJH0:=null; LS_AAZ149:=null;--特殊病种编码 LS_TSBZBH:=null;--特殊病种编码 LS_TSBZMC:=null;--特殊病种名称 end; --LS_YBYL52:=0;--YBYL52 akc227 医疗费总金额=个人现金支付金额+个人账户支付金额+基金支付总额 if nvl(LS_YBYL52,0)=0 then LS_YBYL52:=nvl(LS_HJJE00,0); end if; --LS_YBYL53:=0;--YBYL53 bkc102 基金支付总额=统筹基金支付+商保基金支付+公务员医疗补助+精准扶贫医疗叠加+医疗救助基金+其他基金支付+企业补充 if nvl(LS_YBYL53,0)=0 then LS_YBYL53:=nvl(LS_TCJJZF,0); end if; --LS_YBYL54:=0;--YBYL54 bkc040 个人现金支付金额(实付现金) if nvl(LS_YBYL54,0)=0 then LS_YBYL54:=nvl(LS_ZFJE00,0); end if; --LS_YBYL55:=0;--YBYL55 bkc041 个人帐户支付总额=医保帐户支付+健康帐户支付+家庭共济帐户支付 if nvl(LS_YBYL55,0)=0 then LS_YBYL55:=nvl(LS_GRZHZF,0); end if; --LS_YBYL56:=0;--YBYL56 bkc045 其中:统筹基金支付 if nvl(LS_YBYL56,0)=0 then LS_YBYL56:=nvl(LS_TCJJZF,0); end if; LS_psn_selfpay:=nvl(LS_YBYL54,0)+nvl(LS_YBYL55,0)-nvl(LS_YBYL63,0); --psn_selfpay 个人自付 number(16,2) Y=bkc040(个人现金支付)+ bkc041(个人帐户支付)-bkc011(个人自费) LS_psn_ownpay:=nvl(LS_YBYL63,0); --psn_ownpay 个人自费 number(16,2) Y=YBYL63(bkc011)  LS_acct_pay:=nvl(LS_YBYL55,0); --acct_pay 个人账户支出 number(16,2) Y=YBYL55(bkc041) LS_psn_cashpay:=nvl(LS_YBYL54,0); --psn_cashpay 个人现金支付 number(16,2) Y=YBYL54(bkc040) if nvl(LS_PJH000,0)>0 then begin select trim(AA.PJXH00) as PJXH00,aa.PJH000 as PJH000,aa.PLBH00 as PLBH00 into LS_bill_no,LS_biz_sn,LS_bill_code from SF_PJSYQK AA where AA.PJH000=LS_PJH000; exception when others then LS_bill_code:='0';--bill_code 票据代码 varchar2(50) Y LS_bill_no:='0';--bill_no 票据号码 varchar2(30) Y LS_biz_sn:='0';--biz_sn 业务流水号 varchar2(50) Y end; end if; if LS_AAZ149 is not null then LS_TSBZBH:=LS_AAZ149; end if; if LS_TSBZBH is not null then begin select substrb(trim(AA.MC0000),1,100) into LS_TSBZMC from BM_TSBZB0 AA where trim(AA.BH0000)=trim(LS_TSBZBH) and rownum=1; exception when others then LS_TSBZBH:=null;--特殊病种编码 LS_TSBZMC:=null;--特殊病种名称 end; end if; --psn_no:人员编号 if trim(RBRXX.aac999) is not null then LS_psn_no:=trim(RBRXX.aac999); else if trim(RBRXX.YBID00) not in ('0') then LS_psn_no:=trim(RBRXX.YBID00); else LS_psn_no:=trim(RBRXX.BRZJBH); end if; end if; LS_psn_no:=substrb(SF_SF_GETYBSXZD(PBRID00,'0','psnno','','',''),1,30); LS_psn_no:=nvl(LS_psn_no,RBRXX.BRZJBH); --LS_wm_dise_code:西医疾病代码,西医疾病名称 begin select substrb(aa.ICD900,1,50),substrb(aa.ZDMC00,1,200) into LS_wm_dise_code,LS_otp_wm_dise from YS_BRZDXX aa where 1=2 and aa.GHID00=PGHID00 and aa.ZZDBZ0 in ('3') and rownum=1; exception when others then LS_wm_dise_code:=null;--西医疾病代码 LS_otp_wm_dise:=null;--西医疾病名称 end; --LS_tcmdisecode:中医疾病代码,LS_otptcmdise:中医疾病名称 begin select substrb(aa.ICD900,1,50),substrb(aa.ZDMC00,1,200) into LS_tcmdisecode,LS_otptcmdise from YS_BRZDXX aa where 1=2 and aa.GHID00=PGHID00 and aa.ZZDBZ0 in ('1') and rownum=1; exception when others then LS_tcmdisecode:=null;--中医疾病代码 LS_otptcmdise:=null;--中医疾病名称 end; LS_setl_list_sn:=substrb(LS_CZRQ00,3,2)||lpad(substrb(PYBJKID,1,7),7,'0');--结算清单流水号:9 位 格式:年度编码(2 位) 顺序号编码(7 位) LS_AAZ500:=substrb(trim(RBRXX.YBKH00),1,30);--社会保障卡号 LS_AAC002:=substrb(trim(RBRXX.YBID00),1,30);--证件号码(社会保障号) LS_AAC999:=substrb(trim(RBRXX.AAC999),1,20);--个人管理码 LS_AAC003:=substrb(trim(RBRXX.BRXM00),1,50);--姓名 LS_AAC004:=substrb(trim(LS_gend),1,10); --性别编码 LS_AAC004_MC:=substrb(trim(RBRXX.BRXB00),1,10);--性别名称 LS_AAC006:=substrb(trim(RBRXX.BRCSRQ),1,8);--出生日期 LS_AKC227:=nvl(LS_YBYL52,0);--医疗费总金额 LS_BKC102:=nvl(LS_YBYL53,0);--基金支付总额 LS_BKC041:=nvl(LS_YBYL55,0);--个人账户支付金额 LS_BKC040:=nvl(LS_YBYL54,0);--个人现金支付金额(实付现金) LS_AKA151:=0;--统筹支付医保费用起付标准 LS_BKC045:=nvl(LS_YBYL56,0);--其中:统筹基金支付 LS_BKC052:=nvl(LS_YBYL58,0);--其中:商保基金支付(大额补充) LS_BKC059:=nvl(LS_YBYL57,0);--其中:公务员医疗补助 LS_BKC062:=nvl(LS_YBYL59,0);--其中:精准扶贫医疗叠加 LS_BKC060:=nvl(LS_YBYL60,0);--其中:医疗救助基金 LS_AKE173:=nvl(LS_YBYL61,0);--其中:其他基金支付 LS_AKE026:=nvl(LS_YBYL62,0);--其中:企业补充 LS_BKC075:=0;--家庭共济账户支付 LS_BKC011:=nvl(LS_YBYL63,0);--个人自费(非医保费用) LS_BKC166:=0;--(其中)一般诊疗费补偿金额 LS_BKC167:=0;--(其中)一般诊疗费个人支付金额 LS_BKC612:=nvl(LS_YBYL67,0);--补助基金支付 LS_BKC061:=0;--其中:保健基金支付 LS_BKC076:=0;--其中:健康账户支付 LS_BKZFE0:=0;--三明离休b卡支付额 LS_BKZHYE:=0;--三明离休b卡账户余额 LS_BKC079:=0;--健康账户余额 LS_BKC053:=0;--商保现金支付 LS_BKC054:=0;--商保账户支付 LS_BKC101:=0;--除外耗材费用 LS_BKC125:=0;--超标床位费用 LS_BKE361:=0;--普门累计或特门累计 LS_BKC064:=nvl(LS_YBYL68,0);--产前检查费 LS_BKC620:=0;--(本地)成员共济账户支付 LS_BKC619:=0;--(异地)成员共济账户支付 LS_BKEH73:=0;--职工医疗费补助 LS_BKC048:=0;--处级及以上干部补助 LS_DRGZFE:=0;--DRG付费标准或单病种定额 LS_BKEG12:=0;--bkeg12:他人共济支付 LS_FYBFY0:=0;--fybfy0:含超标准床位费和超标准耗材费 LS_GHHZJE:=0;--ghhzje:工会互助补助金额 LS_YBTCPAY:=nvl(LS_YBYL53,0);--ybtcPay:医保统筹基金 LS_zgdePay:=nvl(LS_bkeh73,0);--zgdePay:职工大额补助=bkeh73 LS_jmdbPay:=nvl(LS_bkc052,0);--jmdbPay:居民大病保险=bkc052 LS_gwyPay:=nvl(LS_bkc059,0);--gwyPay:公务员医疗补助=bkc059 LS_yljzPay:=nvl(LS_bkc060,0);--yljzPay:医疗救助支付=bkc060 LS_fund_payamt_qyzf:=nvl(LS_ake026,0);--其他支付-企业补充=ake026 LS_fund_payamt_sybx:=nvl(LS_bkc054,0);--其他支付-商业保险=bkc054 LS_fund_payamt_CZBZ:=nvl(LS_bkc612,0);--其他支付-财政补助=bkc612 LS_fund_payamt_FPBZ:=nvl(LS_bkc062,0);--其他支付-扶贫补助=bkc062 LS_fund_payamt_JZFP01:=0;--其他支付-精准扶贫一道 LS_fund_payamt_JZFP02:=0;--其他支付-精准扶贫二道 LS_fund_payamt_SZHJZ:=0;--其他支付-市综合救助 LS_fund_payamt_CJGMBZ:=0;--其他支付-处级干部补助 LS_fund_payamt_QTZF:=nvl(LS_ake173,0);--其他支付-其他支付=ake173 LS_brdy:=substrb(substrb(RBRXX.BRCSRQ,1,4)||'-'||substrb(RBRXX.BRCSRQ,5,2)||'-'||substrb(RBRXX.BRCSRQ,7,2),1,10);--brdy:出生日期 (YYYY-MM-DD) LS_BRNL00:=SF_YS_CSRQTONL(RBRXX.BRCSRQ);--病人年龄 if LS_BRNL00>=1 then LS_age:=LS_BRNL00;--age:年龄 LS_nwb_age:=null;--nwb_age:(年龄不足1周岁)年龄 else LS_age:=null;--age:年龄 LS_nwb_age:=round(LS_BRNL00*365);--nwb_age:(年龄不足1周岁)年龄 end if; --生成主项数据 -- select count(*) into LS_COUNT0 from SF_YBJKRZ where YBJKID=PYBJKID and BRID00=PBRID00; if nvl(LS_COUNT0,0)=0 then insert into SF_YBJKRZ(YBJKID,YBJKBM,YBJKMC,JKCJBM,BRID00,GHID00,GHH000,CZRQ00,CZSJ00,CZY000,CZYXM0,BRXM00, AAZ500,AAC002,FLAG,CAUSE) select PYBJKID,'000000','医疗保障基金结算清单查询',PJKCJBM,PBRID00,PGHID00,'0',LS_CZRQ00,LS_CZSJ00,PCZY000,PCZYXM0,RBRXX.BRXM00, trim(RBRXX.YBKH00),trim(RBRXX.YBID00),'1','[院内]结算单生成成功' from dual; end if; select count(*) into LS_COUNT0 from SF_YBJSD0 where YBJKID=PYBJKID and BRID00=PBRID00; if nvl(LS_COUNT0,0)=0 then Insert into SF_YBJSD0(BRID00,AKC190,JZDH00,YBJKID,YBJSQD,GHID00) select PBRID00,'0',PJZDH00,PYBJKID,null,PGHID00 from dual; end if; LS_dscg_time:=null; --更新SF_YBJSD0 if PDATALX in (0,9) then --输入:数据获取类型 0:HIS内部直接生成 1:获取海泰drg更新数据[医保交互后] 2:更新部分[医保交互后] update SF_YBJSD0 set SETL_ID=substrb(trim(LS_YBDJH0),1,30) ,--setl_id:结算ID SETL_LIST_SN=substrb(LS_setl_list_sn,1,30) ,--setl_list_sn:结算清单流水号 PSN_NO=substrb(trim(LS_psn_no),1,30) ,--psn_no:人员编号 MDTRT_ID=substrb(trim(nvl(RJZXX.YBGHH0,RGHXX.YBGHH0)),1,30) ,--mdtrt_id:就诊ID FIXMEDINS_NAME=substrb(LS_fixmedins_name,1,50) ,--fixmedins_name:定点医药机构名称 FIXMEDINS_CODE=substrb(LS_fixmedins_code,1,20) ,--fixmedins_code:定点医药机构编号 HI_SETL_LV=nvl(substrb(LS_hi_setl_lv,1,3),'1') ,--hi_setl_lv:医保结算等级 MEDCASNO=substrb(trim(RBRXX.MRN000),1,50) ,--medcasno:病案号 DCLA_TIME=to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') ,--dcla_time:申报时间 (YYYY-MM-DD HH24:MI:SS) PSN_NAME=substrb(trim(RBRXX.BRXM00),1,50) ,--psn_name:人员姓名 GEND=LS_gend ,--gend:性别 BRDY=LS_BRDY ,--brdy:出生日期 AGE=LS_AGE ,--age:年龄 NWB_AGE=LS_NWB_AGE ,--nwb_age:(年龄不足1周岁)年龄 NTLY='CHN' ,--ntly:国籍 NATY=substrb(nvl(SF_ZY_GETJSQD_JKFSZ0('naty',trim(RBRXX.BRMZ00)),LS_NullStr),1,10) ,--naty:民族 PATN_CERT_TYPE=substrb(nvl(SF_ZY_GETJSQD_JKFSZ0('patn_cert_type',trim(RBRXX.BRZJLX)),LS_NullStr),1,10),--patn_cert_type:患者证件类别 CERTNO=substrb(trim(RBRXX.BRZJBH),1,50) ,--certno:证件号码 PRFS=substrb(nvl(SF_ZY_GETJSQD_JKFSZ0('prfs',trim(RBRXX.BRZY00)),LS_NullStr),1,10) ,--prfs:职业 CURR_ADDR=substrb(trim(RBRXX.BRJTDZ),1,200) ,--curr_addr:现住址 EMP_NAME=substrb(trim(RBRXX.TYDWMC),1,200) ,--emp_name:单位名称 EMP_ADDR=null ,--emp_addr:单位地址 EMP_TEL=null ,--emp_tel:单位电话 POSCODE=substrb(trim(RBRXX.BRYB00),1,6) ,--poscode:邮编 CONER_NAME=substrb(nvl(trim(RBRXX.BRLXXM),LS_NullStr),1,50) ,--coner_name:联系人姓名 PATN_RLTS=substrb(nvl(SF_ZY_GETJSQD_JKFSZ0('patn_rlts',trim(RBRXX.BRLXGX)),LS_NullStr),1,6),--patn_rlts:与患者关系 CONER_ADDR=substrb(nvl(trim(RBRXX.BRLXDZ),LS_NullStr),1,200) ,--coner_addr:联系人地址 CONER_TEL=substrb(nvl(trim(RBRXX.BRLXDH),LS_NullStr),1,50) ,--coner_tel:联系人电话 INSUTYPE=null ,--insutype:险种类型 SP_PSN_TYPE=null ,--sp_psn_type:特殊人员类型 INSU_ADMDVS=substrb(nvl(trim(RBRXX.XZQH00),LS_NullStr),1,10) ,--insu_admdvs:参保所属医保区划 NWB_ADM_TYPE=null ,--nwb_adm_type:新生儿入院类型 NWBBIRWT=null ,--nwbbirwt:新生儿出生体重 NWBADMWT=null ,--nwbadmwt:新生儿入院体重 MUL_NWB_BIR_WT=null ,--mul_nwb_bir_wt:多新生儿出生体重 MUL_NWB_ADM_WT=null ,--mul_nwb_adm_wt:多新生儿入院体重 OPSP_DIAG_CATY=LS_opsp_diag_caty ,--opsp_diag_caty:门诊慢特病诊断科别 OPSP_MDTRT_DATE=LS_OPSP_MDTRT_DATE ,--opsp_mdtrt_date:门诊慢特病就诊日期 IPT_MED_TYPE=null ,--ipt_med_type:住院医疗类型 [1:住院 2:日间手术] ADM_WAY=null ,--adm_way:入院途径[1:急诊 2:门诊 3:其他医疗机构转入 9:其他] TRT_TYPE=null ,--trt_type:治疗类别 ADM_TIME=null ,--adm_time:入院时间 DSCG_TIME=substrb(LS_dscg_time,1,20) ,--dscg_time:出院时间 ADM_CATY=substrb(LS_adm_caty,1,10) ,--adm_caty:入院科别 REFLDEPT_DEPT=null ,--refldept_dept:转科科别 DSCG_CATY=substrb(LS_dscg_caty,1,10) ,--dscg_caty:出院科别 ACT_IPT_DAYS=null ,--act_ipt_days:实际住院天数 WM_DISE_CODE=substrb(LS_wm_dise_code,1,50) ,--wm_dise_code:西医诊断疾病代码 OTP_WM_DISE=substrb(LS_otp_wm_dise,1,200) ,--otp_wm_dise:门(急)诊西医诊断 TCM_DISE_CODE=substrb(LS_tcmdisecode,1,50) ,--tcm_dise_code:中医诊断代码 OTP_TCM_DISE=substrb(LS_otptcmdise,1,200) ,--otp_tcm_dise:门(急)诊中医诊断 DIAG_CODE_CNT=null ,--diag_code_cnt:诊断代码计数 OPRN_OPRT_CODE_CNT=null ,--oprn_oprt_code_cnt:手术操作代码计数 VENT_USED_DAYS=null ,--vent_used_days:呼吸机使用天数 VENT_USED_H_CNT=null ,--vent_used_h_cnt:呼吸机使用小时数 VENT_USED_M_CNT=null ,--vent_used_m_cnt:呼吸机使用分钟数 BFADM_COMA_DAYS=null ,--bfadm_coma_days:入院前颅脑损伤患者昏迷天数 BFADM_COMA_H_CNT=null ,--bfadm_coma_h_cnt:入院前颅脑损伤患者昏迷小时数 BFADM_COMA_M_CNT=null ,--bfadm_coma_m_cnt:入院前颅脑损伤患者昏迷分钟数 AFADM_COMA_DAYS=null ,--afadm_coma_days:入院后颅脑损伤患者昏迷天数 AFADM_COMA_H_CNT=null ,--afadm_coma_h_cnt:入院后颅脑损伤患者昏迷小时数 AFADM_COMA_M_CNT=null ,--afadm_coma_m_cnt:入院后颅脑损伤患者昏迷分钟数 BLD_CAT=null ,--bld_cat:输血品种 BLD_AMT=null ,--bld_amt:输血量 BLD_UNT=null ,--bld_unt:输血计量单位 SPGA_NURSCARE_DAYS=null ,--spga_nurscare_days:特级护理天数 LV1_NURSCARE_DAYS=null ,--lv1_nurscare_days:一级护理天数 SCD_NURSCARE_DAYS=null ,--scd_nurscare_days:二级护理天数 LV3_NURSCARE_DAYS=null ,--lv3_nurscare_days:三级护理天数 DSCG_WAY=null ,--dscg_way:离院方式 [1:医嘱离院 2:医嘱转院 3:医嘱转社区卫生服务机构/乡镇卫生院 4:非医嘱离院 5:死亡 9:其他] ACP_MEDINS_NAME=null ,--acp_medins_name:拟接收机构名称 ACP_OPTINS_CODE=null ,--acp_optins_code:拟接收机构代码 DAYS_RINP_FLAG_31=null ,--days_rinp_flag_31:出院31天内再住院计划标志 DAYS_RINP_PUP_31=null ,--days_rinp_pup_31:出院31天内再住院目的 CHFPDR_NAME=substrb(LS_chfpdr_name,1,50) ,--chfpdr_name:主诊医师姓名 CHFPDR_CODE=substrb(LS_chfpdr_code,1,50) ,--chfpdr_code:主诊医师代码 BIZ_SN=substrb(nvl(LS_biz_sn,LS_NullStr),1,50) ,--biz_sn:业务流水号 BILL_CODE=substrb(nvl(LS_bill_code,LS_NullStr),1,50) ,--bill_code:票据代码 BILL_NO=substrb(nvl(LS_bill_no,LS_NullStr),1,50) ,--bill_no:票据号码 SETL_BEGN_DATE=substrb(LS_setl_begn_date,1,20) ,--setl_begn_date:结算开始日期 SETL_END_DATE=substrb(LS_setl_end_date,1,20) ,--setl_end_date:结算结束日期 PSN_SELFPAY=LS_psn_selfpay ,--psn_selfpay:个人自付 PSN_OWNPAY=LS_psn_ownpay ,--psn_ownpay:个人自费 ACCT_PAY=LS_acct_pay ,--acct_pay:个人账户支出 PSN_CASHPAY=LS_psn_cashpay ,--psn_cashpay:个人现金支付 HI_PAYMTD=substrb(nvl(LS_hi_paymtd,LS_NullStr),1,10) ,--hi_paymtd:医保支付方式 MEDINS_FILL_DEPT=substrb(LS_medins_fill_dept,1,50) ,--medins_fill_dept:医疗机构填报部门 MEDINS_FILL_PSN=substrb(LS_medins_fill_psn,1,50) ,--medins_fill_psn:医疗机构填报人 VALI_FLAG=null ,--vali_flag:有效标志 RID=null ,--rid:唯一记录号 UPDT_TIME=null ,--updt_time:更新时间 CRTER_ID=null ,--crter_id:创建人 CRTER_NAME=null ,--crter_name:创建人姓名 CRTE_TIME=null ,--crte_time:创建时间 CRTE_OPTINS_NO=null ,--crte_optins_no:创建机构 OPTER_ID=PCZY000 ,--opter_id:经办人ID OPTER_NAME=PCZYXM0 ,--opter_name:经办人姓名 OPT_TIME=LS_CZRQ00 ,--opt_time:经办时间 OPTINS_NO=null ,--optins_no:经办机构 POOLAREA=null ,--poolarea:统筹区编码 HI_NO=substrb(nvl(RBRXX.AAC999,RBRXX.YBID00),1,30) ,--hi_no:医保编号 HI_TYPE=substrb(nvl(trim(nvl(RBRXX.AAE140,RBRXX.BRZTQK)),LS_NullStr),1,10) ,--hi_type:医保类型 OPSP_DISE_NAME=null ,--opsp_dise_name:门慢门特病种名称 OPSP_DISE_CODE=null ,--opsp_dise_code:门慢门特病种目录代码 DSCG_DIAG=null ,--dscg_diag:出院诊断 RESP_NURS_NAME=substrb(LS_resp_nurs_name,1,50) ,--resp_nurs_name: 责任护士姓名 RESP_NURS_CODE=substrb(resp_nurs_code,1,50) ,--resp_nurs_code: 责任护士代码 HSORG_OPTER_CODE=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','hsorg_opter_code'),1,50)),--hsorg_opter_code:医保机构经办人代码 STAS_TYPE=LS_stas_type ,--stas_type:状态分类 [0未提交,1已提交,2审核通过,3审核不通过 9:院内生成] HSORG_OPTER=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','hsorg_opter'),1,50)) ,--hsorg_opter:医保机构经办人 HSORG_NAME=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','hsorg'),1,50)) ,--hsorg_name:医保机构(医保经办结构名称) HSORG_CODE=trim(substrb(SF_SF_TYZD00('医保新接口参数设置','hsorg_code'),1,50)) ,--hsorg_code:医保机构代码 CHK_CONT=null ,--chk_cont:审核内容 BAKXML=null ,--bakxml:备用字段 YBTCPAY=LS_YBTCPAY , --ybtcPay:医保统筹基金 zgdePay=LS_zgdePay ,--zgdePay:职工大额补助 jmdbPay=LS_jmdbPay ,--jmdbPay:居民大病保险 gwyPay=LS_gwyPay ,--gwyPay:公务员医疗补助 yljzPay=LS_yljzPay ,--yljzPay:医疗救助支付 fund_payamt_qyzf=LS_fund_payamt_qyzf ,--其他支付-企业补充=ake026 fund_payamt_sybx=LS_fund_payamt_sybx ,--其他支付-商业保险=bkc054 fund_payamt_CZBZ=LS_fund_payamt_CZBZ ,--其他支付-财政补助=bkc612 fund_payamt_FPBZ=LS_fund_payamt_FPBZ ,--其他支付-扶贫补助=bkc062 fund_payamt_JZFP01=LS_fund_payamt_JZFP01 ,--其他支付-精准扶贫一道 fund_payamt_JZFP02=LS_fund_payamt_JZFP02 ,--其他支付-精准扶贫二道 fund_payamt_SZHJZ=LS_fund_payamt_SZHJZ ,--其他支付-市综合救助 fund_payamt_CJGMBZ=LS_fund_payamt_CJGMBZ ,--其他支付-处级干部补助 fund_payamt_QTZF=LS_fund_payamt_QTZF ,--其他支付-其他支付=ake173 QDlXBM=LS_QDlXBM ,--清单类型编码 0:上传 1:查询 2:院内生成 dbz_bzbmmc=LS_dbz_bzbmmc ,--病种收费名称+代码 dbz_debzmc=LS_dbz_debzmc ,--单病种定额标准名称 dbz_cbcwfmc=LS_dbz_cbcwfmc ,--单病种床边床位费名称 dbz_cwhcfmc=LS_dbz_cwhcfmc --单病种除外费名称 where YBJKID=PYBJKID and BRID00=PBRID00; /* 基金支付信息开始 1 fund_pay_type 基金支付类型 varchar2(6) 2 fund_payamt 基金支付金额 number(16,2) 基金支付信息结束 */ for C_List in CUR_payinfo loop LS_payinfo_Json:=null; LS_payinfo_Json:=LS_payinfo_Json||'{'; LS_payinfo_Json:=LS_payinfo_Json||'"fund_pay_type"'||':'||'"'||C_List.fund_pay_type||'"'||','; LS_payinfo_Json:=LS_payinfo_Json||'"fund_payamt"'||':'||'"'||C_List.fund_payamt||'"'||''; LS_payinfo_Json:=LS_payinfo_Json||'}'; insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC,fund_pay_type,poolarea_fund_pay_type,poolarea_fund_pay_name,fund_payamt) select PYBJKID,'payinfo','基金支付信息', substrb(C_List.fund_pay_type,1,10) as fund_pay_type, substrb(C_List.fund_pay_type,1,10) as poolarea_fund_pay_type, substrb((select aa.SXSM00 from bm_ybsxzd aa where aa.JKBM00=2 and aa.sxbm00='fund_pay_type' and aa.VALUE0=C_List.fund_pay_type and rownum=1),1,50) as poolarea_fund_pay_name, C_List.fund_payamt from dual A; LS_payinfo_Num:=nvl(LS_payinfo_Num,0)+1; end loop; /* 门诊慢特病诊断信息开始 1 diag_name 诊断名称 varchar2(100) 2 diag_code 诊断代码 varchar2(20) 3 oprn_oprt_name 手术操作名称 varchar2(500) 4 oprn_oprt_code 手术操作代码 varchar2(30) 5 maindiag_flag 主诊断标志 varchar2(3) 门诊慢特病诊断信息结束 */ for C_List in CUR_opspdiseinfo loop LS_opspdiseinfo_Json:=null; LS_opspdiseinfo_Json:=LS_opspdiseinfo_Json||'{'; LS_opspdiseinfo_Json:=LS_opspdiseinfo_Json||'"diag_name"'||':'||'"'||C_List.diag_name||'"'||','; LS_opspdiseinfo_Json:=LS_opspdiseinfo_Json||'"diag_code"'||':'||'"'||C_List.diag_code||'"'||','; LS_opspdiseinfo_Json:=LS_opspdiseinfo_Json||'"oprn_oprt_name"'||':'||'"'||C_List.oprn_oprt_name||'"'||','; LS_opspdiseinfo_Json:=LS_opspdiseinfo_Json||'"oprn_oprt_code"'||':'||'"'||C_List.oprn_oprt_code||'"'||','; LS_opspdiseinfo_Json:=LS_opspdiseinfo_Json||'"maindiag_flag"'||':'||'"'||C_List.maindiag_flag||'"'||''; LS_opspdiseinfo_Json:=LS_opspdiseinfo_Json||'}'; insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC,diag_name,diag_code,oprn_oprt_name,oprn_oprt_code,maindiag_flag) select PYBJKID,'opspdiseinfo','门诊慢特病诊断信息', substrb(C_List.diag_name,1,50) as diag_name, substrb(C_List.diag_code,1,50) as diag_code, substrb(C_List.oprn_oprt_name,1,100) as oprn_oprt_name, substrb(C_List.oprn_oprt_code,1,50) as oprn_oprt_code, substrb(C_List.maindiag_flag,1,10) as maindiag_flag from dual A; LS_opspdiseinfo_Num:=nvl(LS_opspdiseinfo_Num,0)+1; end loop; /* 住院诊断信息< diseinfo>开始 1 diag_type 诊断类别 varchar2(3) 2 diag_code 诊断代码 varchar2(20) 3 diag_name 诊断名称 varchar2(100) 4 adm_cond_type 入院病情类型 varchar2(3) 5 maindiag_flag 主诊断标志 varchar2(3) 住院诊断信息< diseinfo>结束 */ for C_List in CUR_diseinfo loop LS_diseinfo_Json:=null; LS_diseinfo_Json:=LS_diseinfo_Json||'{'; LS_diseinfo_Json:=LS_diseinfo_Json||'"diag_type"'||':'||'"'||C_List.diag_type||'"'||','; LS_diseinfo_Json:=LS_diseinfo_Json||'"diag_code"'||':'||'"'||C_List.diag_code||'"'||','; LS_diseinfo_Json:=LS_diseinfo_Json||'"diag_name"'||':'||'"'||C_List.diag_name||'"'||','; LS_diseinfo_Json:=LS_diseinfo_Json||'"adm_cond_type"'||':'||'"'||C_List.adm_cond_type||'"'||','; LS_diseinfo_Json:=LS_diseinfo_Json||'"maindiag_flag"'||':'||'"'||C_List.maindiag_flag||'"'||''; LS_diseinfo_Json:=LS_diseinfo_Json||'}'; insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC,diag_type,diag_code,diag_name,adm_cond_type,maindiag_flag) select PYBJKID,'diseinfo','住院诊断信息', substrb(C_List.diag_type,1,50) as diag_type, substrb(C_List.diag_code,1,50) as diag_code, substrb(C_List.diag_name,1,100) as diag_name, substrb(C_List.adm_cond_type,1,10) as adm_cond_type, substrb(C_List.maindiag_flag,1,10) as maindiag_flag from dual; LS_diseinfo_Num:=nvl(LS_diseinfo_Num,0)+1; end loop; /* 收费项目信息开始 1 med_chrgitm 医疗收费项目 varchar2(6) 2 amt 金额 number(16,2) 3 claa_sumfee 甲类费用合计 number(16,2) 4 clab_amt 乙类金额 number(16,2) 5 fulamt_ownpay_amt 全自费金额 number(16,2) 6 oth_amt 其他金额 number(16,2) 收费项目信息结束 */ for C_List in CUR_iteminfo loop LS_iteminfo_Json:=null; LS_iteminfo_Json:=LS_iteminfo_Json||'{'; LS_iteminfo_Json:=LS_iteminfo_Json||'"med_chrgitm"'||':'||'"'||C_List.med_chrgitm||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"amt"'||':'||'"'||C_List.amt||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"claa_sumfee"'||':'||'"'||C_List.claa_sumfee||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"clab_amt"'||':'||'"'||C_List.clab_amt||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"fulamt_ownpay_amt"'||':'||'"'||C_List.fulamt_ownpay_amt||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"oth_amt"'||':'||'"'||C_List.oth_amt||'"'||''; LS_iteminfo_Json:=LS_iteminfo_Json||'}'; insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC,med_chrgitm_type,amt,claa_sumfee,clab_amt,fulamt_ownpay_amt,oth_amt) select PYBJKID,'iteminfo','收费项目信息', substrb(C_List.med_chrgitm,1,10) as med_chrgitm, C_List.amt as amt, C_List.claa_sumfee as claa_sumfee, C_List.clab_amt as clab_amt, C_List.fulamt_ownpay_amt as fulamt_ownpay_amt, C_List.oth_amt as oth_amt from dual; LS_iteminfo_Num:=nvl(LS_iteminfo_Num,0)+1; end loop; if nvl(LS_iteminfo_Num,0)=0 then --直接取SF_JZMX00 for C_List in CUR_YNFPMX loop LS_iteminfo_Json:=null; LS_iteminfo_Json:=LS_iteminfo_Json||'{'; LS_iteminfo_Json:=LS_iteminfo_Json||'"med_chrgitm"'||':'||'"'||C_List.med_chrgitm||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"amt"'||':'||'"'||C_List.amt||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"claa_sumfee"'||':'||'"'||C_List.claa_sumfee||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"clab_amt"'||':'||'"'||C_List.clab_amt||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"fulamt_ownpay_amt"'||':'||'"'||C_List.fulamt_ownpay_amt||'"'||','; LS_iteminfo_Json:=LS_iteminfo_Json||'"oth_amt"'||':'||'"'||C_List.oth_amt||'"'||''; LS_iteminfo_Json:=LS_iteminfo_Json||'}'; insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC,med_chrgitm_type,amt,claa_sumfee,clab_amt,fulamt_ownpay_amt,oth_amt) select PYBJKID,'iteminfo','收费项目信息', substrb(C_List.med_chrgitm,1,10) as med_chrgitm, C_List.amt as amt, C_List.claa_sumfee as claa_sumfee, C_List.clab_amt as clab_amt, C_List.fulamt_ownpay_amt as fulamt_ownpay_amt, C_List.oth_amt as oth_amt from dual; LS_iteminfo_Num:=nvl(LS_iteminfo_Num,0)+1; end loop; end if; insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC,med_chrgitm_type,amt,claa_sumfee,clab_amt,fulamt_ownpay_amt,oth_amt) select PYBJKID,'iteminfo','收费项目信息',substrb(b.VALUE0,1,10) as MED_CHRGITM_TYPE, 0 as AMT,0 as CLAA_SUMFEE,0 as CLAB_AMT, 0 as FULAMT_OWNPAY_AMT,0 as OTH_AMT from bm_ybsxzd b where b.JKBM00=2 and b.sxbm00='med_chrgitm_type' and substrb(VALUE0,1,10) not in (select nvl(A.med_chrgitm_type,'14') from SF_YBJSDX a where a.YBJKID=PYBJKID and a.JKJDBM='iteminfo') ; /* 手术操作信息开始 1 oprn_oprt_type 手术操作类别 varchar2(3) 2 oprn_oprt_name 手术操作名称 varchar2(500) 3 oprn_oprt_code 手术操作代码 varchar2(30) 4 oprn_oprt_date 手术操作日期 number(8) 5 anst_way 麻醉方式 varchar2(6) 6 oper_dr_name 术者医师姓名 varchar2(50) 7 oper_dr_code 术者医师代码 varchar2(20) 8 anst_dr_name 麻醉医师姓名 varchar2(50) 9 anst_dr_code 麻醉医师代码 varchar2(20) 10 oprn_oprt_begintime 手术开始时间 number(14) 11 oprn_oprt_endtime 手术结束时间 number(14) 12 anst_begintime 麻醉开始时间 number(14) 13 anst_endtime 麻醉结束时间 number(14) 手术操作信息结束 */ for C_List in CUR_oprninfo loop LS_oprninfo_Json:=null; LS_oprninfo_Json:=LS_oprninfo_Json||'{'; LS_oprninfo_Json:=LS_oprninfo_Json||'"oprn_oprt_type"'||':'||'"'||C_List.oprn_oprt_type||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"oprn_oprt_name"'||':'||'"'||C_List.oprn_oprt_name||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"oprn_oprt_code"'||':'||'"'||C_List.oprn_oprt_code||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"oprn_oprt_date"'||':'||'"'||C_List.oprn_oprt_date||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"anst_way"'||':'||'"'||C_List.anst_way||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"oper_dr_name"'||':'||'"'||C_List.oper_dr_name||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"oper_dr_code"'||':'||'"'||C_List.oper_dr_code||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"anst_dr_name"'||':'||'"'||C_List.anst_dr_name||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"anst_dr_code"'||':'||'"'||C_List.anst_dr_code||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"oprn_oprt_begintime"'||':'||'"'||C_List.oprn_oprt_begintime||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"oprn_oprt_endtime"'||':'||'"'||C_List.oprn_oprt_endtime||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"anst_begintime"'||':'||'"'||C_List.anst_begintime||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"anst_endtime"'||':'||'"'||C_List.anst_endtime||'"'||''; LS_oprninfo_Json:=LS_oprninfo_Json||'}'; insert into SF_YBJSDX( YBJKID,JKJDBM,JKJDMC,main_oprn_flag,oprn_oprt_name,oprn_oprt_code,oprn_oprt_date, anst_way,oper_dr_name,oper_dr_code,anst_dr_name,anst_dr_code,oprn_oprt_begntime, oprn_oprt_endtime,anst_begntime,anst_endtime ) select PYBJKID,'oprninfo','手术操作信息', substrb(C_List.oprn_oprt_type,1,30) as main_oprn_flag, substrb(C_List.oprn_oprt_name,1,100) as oprn_oprt_name, substrb(C_List.oprn_oprt_code,1,50) as oprn_oprt_code, substrb(C_List.oprn_oprt_date,1,20) as oprn_oprt_date, substrb(C_List.anst_way,1,30) as anst_way, substrb(C_List.oper_dr_name,1,100) as oper_dr_name, substrb(C_List.oper_dr_code,1,50) as oper_dr_code, substrb(C_List.anst_dr_name,1,100) as anst_dr_name, substrb(C_List.anst_dr_code,1,50) as anst_dr_code, substrb(C_List.oprn_oprt_begintime,1,20) as oprn_oprt_begintime, substrb(C_List.oprn_oprt_endtime,1,20) as oprn_oprt_endtime, substrb(C_List.anst_begintime,1,20) as anst_begintime, substrb(C_List.anst_endtime,1,20) as anst_endtime from dual; LS_oprninfo_Num:=nvl(LS_oprninfo_Num,0)+1; end loop; /* 重症监护信息开始 1 scs_cutd_ward_type 重症监护病房类型 varchar2(6) 2 scs_cutd_inpool_time 重症监护进入时间 number(14) 3 scs_cutd_exit_time 重症监护退出时间 number(14) 4 scs_cutd_sum_dura 重症监护合计时长 varchar2(10) 重症监护信息结束 */ for C_List in CUR_icuinfo loop LS_icuinfo_Json:=null; LS_icuinfo_Json:=LS_icuinfo_Json||'{'; LS_icuinfo_Json:=LS_icuinfo_Json||'"scs_cutd_ward_type"'||':'||'"'||C_List.scs_cutd_ward_type||'"'||','; LS_icuinfo_Json:=LS_icuinfo_Json||'"scs_cutd_inpool_time"'||':'||'"'||C_List.scs_cutd_inpool_time||'"'||','; LS_icuinfo_Json:=LS_icuinfo_Json||'"scs_cutd_exit_time"'||':'||'"'||C_List.scs_cutd_inpool_time||'"'||','; LS_icuinfo_Json:=LS_icuinfo_Json||'"scs_cutd_sum_dura"'||':'||'"'||C_List.scs_cutd_sum_dura||'"'||''; LS_icuinfo_Json:=LS_icuinfo_Json||'}'; insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC,scs_cutd_ward_type,scs_cutd_inpool_time,scs_cutd_exit_time,scs_cutd_sum_dura) select PYBJKID,'icuinfo','重症监护信息', C_List.scs_cutd_ward_type,C_List.scs_cutd_inpool_time,C_List.scs_cutd_exit_time,C_List.scs_cutd_sum_dura from dual; LS_icuinfo_Num:=nvl(LS_icuinfo_Num,0)+1; end loop; --查询列表数据,无插入一笔空尽量,以便打印显示 --基金支付信息开始 select count(1) into LS_payinfo_Num from SF_YBJSDX where YBJKID=PYBJKID and JKJDBM='payinfo'; --无数据插入一笔空 if nvl(LS_payinfo_Num,0)=0 then insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC) select PYBJKID,'payinfo','基金支付信息' from dual; end if; LS_BAKXML:=substrb(LS_BAKXML||''||nvl(LS_payinfo_Num,0)||'',1,200); --门诊慢特病诊断信息开始 select count(1) into LS_opspdiseinfo_Num from SF_YBJSDX where YBJKID=PYBJKID and JKJDBM='opspdiseinfo'; --无数据插入一笔空 if nvl(LS_opspdiseinfo_Num,0)=0 then insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC) select PYBJKID,'opspdiseinfo','门诊慢特病诊断信息' from dual; end if; LS_BAKXML:=substrb(LS_BAKXML||''||nvl(LS_opspdiseinfo_Num,0)||'',1,200); --住院诊断信息< diseinfo>开始 select count(1) into LS_opspdiseinfo_Num from SF_YBJSDX where YBJKID=PYBJKID and JKJDBM='diseinfo'; --无数据插入一笔空 if nvl(LS_diseinfo_Num,0)=0 then insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC)values(PYBJKID,'diseinfo','住院诊断信息'); end if; LS_BAKXML:=substrb(LS_BAKXML||''||nvl(LS_diseinfo_Num,0)||'',1,200); --收费项目信息开始 select count(1) into LS_iteminfo_Num from SF_YBJSDX where YBJKID=PYBJKID and JKJDBM='iteminfo'; --无数据插入一笔空 if nvl(LS_iteminfo_Num,0)=0 then insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC)values(PYBJKID,'iteminfo','收费项目信息'); end if; LS_BAKXML:=substrb(LS_BAKXML||''||nvl(LS_iteminfo_Num,0)||'',1,200); --手术操作信息开始 select count(1) into LS_oprninfo_Num from SF_YBJSDX where YBJKID=PYBJKID and JKJDBM='oprninfo'; --无数据插入一笔空 if nvl(LS_oprninfo_Num,0)=0 then insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC)values(PYBJKID,'oprninfo','手术操作信息'); end if; LS_BAKXML:=substrb(LS_BAKXML||''||nvl(LS_oprninfo_Num,0)||'',1,200); update SF_YBJSD0 set BAKXML=LS_BAKXML where YBJKID=PYBJKID; --重症监护信息开始 select count(1) into LS_icuinfo_Num from SF_YBJSDX where YBJKID=PYBJKID and JKJDBM='icuinfo'; --无数据插入一笔空 if nvl(LS_icuinfo_Num,0)=0 then insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC)values(PYBJKID,'icuinfo','重症监护信息'); end if; LS_BAKXML:=substrb(LS_BAKXML||''||nvl(LS_icuinfo_Num,0)||'',1,200); --输血信息 select count(1) into LS_bldinfo_Num from SF_YBJSDX where YBJKID=PYBJKID and JKJDBM='bldinfo'; if nvl(LS_bldinfo_Num,0)=0 then insert into SF_YBJSDX(YBJKID,JKJDBM,JKJDMC)values(PYBJKID,'bldinfo','输血信息'); end if; LS_BAKXML:=substrb(LS_BAKXML||''||LS_bldinfo_Num||'',1,200); end if; if PCOMMIT='Y' then commit; end if; PZXZT00:=1;--输出:执行状态 0:失败 1:成功 exception when no_data_found then PZXZT00:=0; PERRMSG:=substrb('门诊医疗保障基金结算清单查询数据异常!位置['||LS_ERRSTR||']原因:'||sqlerrm,1,200); when others then PZXZT00:=0; PERRMSG:=substrb('门诊医疗保障基金结算清单查询数据异常!位置['||LS_ERRSTR||']原因:'||sqlerrm,1,200); end; / show error; --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%