CREATE OR REPLACE PROCEDURE SP_ZY_NEWYBJK_JSQDQUERY( PYBJKID in number ,--输入:医保接口ID PJKCJBM in varchar2 ,--输入:接口场景编码 YBJK_GJYBJSD_0001:医疗保障基金结算清单查询 YBJK_JSQDXXSC_001:医疗保障基金结算清单信息上传 PZYID00 in number ,--输入:住院ID PZYH000 in varchar2 ,--输入:住院号 PCZY000 in number ,--输入:操作员编码 PCZYXM0 in varchar2 ,--输入:操作员姓名 PJZDH00 in number ,--输入:结账单号 PDATALX in number ,--输入:数据获取类型 0:HIS内部直接生成 1:获取海泰drg更新数据[医保交互后] 2:更新部分[医保交互后] 9:清单上传 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.10.28 create by 住院医疗保障基金结算清单信息查询 by ZYSF-20211101-001 --zhangyc 2021.11.01 清单优化 by ZYSF-20211102-001 --zhangyc 2021.11.08 增加单病种处理 by ZYSF-20211110-001 --zhangyc 2021.11.15 清单优化 by ZYSF-20211117-001 --zhangyc 2021.11.17 dscg_time:出院时间获取结算时发生个医保akc194 by ZYSF-20211116-002 --zhangyc 2021.11.23 iteminfo发票明细不关联BM_FPXM00 CC by ZYSF-20211123-002 --zhangyc 2021.11.25 YBDJH0截取长度 by ZYSF-20211125-002 --qiulf 2022.01.06 增加SP_ZY_JSQDSC_WLQDCL整理通用平台外连数据 by ZYSF-20220104-002 --qiulf 2022.01.18 增加通用字典‘医疗保障基金结算清单,是否使用外部厂家通过通用平台传入的数据’ by ZYSF-20220117-001 --qiulf 2022.02.10 修改vent_used_dura,pwcry_bfadm_coma_dura,pwcry_afadm_coma_dura取值 by ZYSF-20220209-001 --qiulf 2022.03.03 修改adm_time入院时间、dscg_time出院时间 取值 by ZYSF-20220225-001 --zhangyc 2022.04.29 由于国家医保接口返回的发票项目编码是国家版本。收费项目信息list不在转码 by ZYSF-20220429-001 --cailongquan 2022.07.18 修改 JSQD_TYPTData='1'时 第三方为空也不取院内手术信息 ZYSF-20220608-002 --zhangyc 2022.08.01 获取hifmi_pay、hifob_pay、hifdm_pay by ZYSF-20220801-002 -- --------- ---------- ------- LS_CZRQ00 char(8); LS_CZSJ00 char(8); LS_COUNT0 number(12,2); LS_ERRSTR varchar2(50); RZYXX ZY_BRXXB0%rowtype; --住院基本信息 RBRXX BM_BRXXB0%rowtype; --基本信息 RJSD0 ZY_YBJSD0%rowtype; --清单信息 LS_JKFSZ0 ZY_YBJKMX.JKFSZ0%type;--接口发送值 LS_JKFHZ0 ZY_YBJKMX.JKFHZ0%type;--接口返回值 LS_adm_time varchar2(20);--adm_time:入院时间 LS_dscg_time varchar2(20); --dscg_time:出院时间 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 ZY_JZB000.HJJE00%type;--合计金额 LS_TCJJZF ZY_JZB000.TCJJZF%type;--统筹基金 LS_GRZHZF ZY_JZB000.GRZHZF%type;--医保账户支付 LS_ZFJE00 ZY_JZB000.ZFJE00%type;--个人支付 LS_XJFKJE ZY_JZB000.XJFKJE%type;--现金支付 LS_PJH000 ZY_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 ZY_YBJKMX.VALUE0%type;--[字符]基金支付信息 LS_opspdiseinfo_Json ZY_YBJKMX.VALUE0%type;--[字符]门诊慢特病诊断信息 LS_diseinfo_Json ZY_YBJKMX.VALUE0%type;--[字符]住院诊断信息< diseinfo> LS_iteminfo_Json ZY_YBJKMX.VALUE0%type;--[字符]收费项目信息 LS_oprninfo_Json ZY_YBJKMX.VALUE0%type;--[字符]手术操作信息 LS_icuinfo_Json ZY_YBJKMX.VALUE0%type;--[字符]重症监护信息 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_bldinfo_Num number(12);--[数量]输血信息 LS_NullStr varchar2(20);--空值字符 LS_YBYL52 ZY_JZB000.YBYL52%type;--YBYL52 akc227 医疗费总金额=个人现金支付金额+个人账户支付金额+基金支付总额 LS_YBYL53 ZY_JZB000.YBYL53%type;--YBYL53 bkc102 基金支付总额=统筹基金支付+商保基金支付+公务员医疗补助+精准扶贫医疗叠加+医疗救助基金+其他基金支付+企业补充 LS_YBYL54 ZY_JZB000.YBYL54%type;--YBYL54 bkc040 个人现金支付金额(实付现金) LS_YBYL55 ZY_JZB000.YBYL55%type;--YBYL55 bkc041 个人帐户支付总额=医保帐户支付+健康帐户支付+家庭共济帐户支付 LS_YBYL56 ZY_JZB000.YBYL56%type;--YBYL56 bkc045 其中:统筹基金支付 LS_YBYL57 ZY_JZB000.YBYL57%type;--YBYL57 bkc059 其中:公务员医疗补助(bkc059=bkc059_1+bkc059_2+bkc059_3) LS_YBYL58 ZY_JZB000.YBYL58%type;--YBYL58 bkc052 其中:大病保险基金支付(商业保险支付) LS_YBYL59 ZY_JZB000.YBYL59%type;--YBYL59 bkc062 其中:精准扶贫医疗叠加 LS_YBYL60 ZY_JZB000.YBYL60%type;--YBYL60 bkc060 其中:医疗救助基金 LS_YBYL61 ZY_JZB000.YBYL61%type;--YBYL61 ake173 其中:其他基金支付 LS_YBYL62 ZY_JZB000.YBYL62%type;--YBYL62 ake026 其中:企业补充 LS_YBYL63 ZY_JZB000.YBYL63%type;--YBYL63 bkc011 个人自费(非医保费用) LS_YBYL67 ZY_JZB000.YBYL67%type;--YBYL67 bkc612 补助基金支付bkc612=bkc052 大病保险基金支付+bkc059公务员医疗补助+bkc062精准扶贫医疗叠加+bkc060医疗救助基金+ake173 其他基金支付+ake026企业补充+bkc061保健基金支付 LS_YBYL68 ZY_JZB000.YBYL68%type;--YBYL68 bkc064 产前检查费(医保返回) LS_YBYL33 ZY_JZB000.YBYL33%type;--超标床位费用(付费单病种写入) LS_YBYL34 ZY_JZB000.YBYL34%type;--除外耗材费用(付费单病种写入) LS_YBYL04 ZY_JZB000.YBYL04%type;--单病种限额 LS_JZBDBZBM ZY_JZB000.DBZBM0%type;--单病种编码 LS_AAZ500 ZY_YBJKRZ.AAZ500%type;--社会保障卡号 LS_AAC002 ZY_YBJKRZ.AAC002%type;--证件号码(社会保障号) LS_AAC999 ZY_YBJKRZ.AAC999%type;--个人管理码 LS_AAC003 ZY_YBJKRZ.AAC003%type;--姓名 LS_AAC004 ZY_YBJKRZ.AAC004%type;--性别编码 LS_AAC004_MC ZY_YBJKRZ.AAC004_MC%type;--性别名称 LS_AAC006 ZY_YBJKRZ.AAC006%type;--出生日期 LS_AAZ149 ZY_YBJKRZ.AAZ149%type;--病种编码 LS_AKC227 ZY_YBJKRZ.AKC227%type;--医疗费总金额 LS_BKC102 ZY_YBJKRZ.BKC102%type;--基金支付总额 LS_BKC041 ZY_YBJKRZ.BKC041%type;--个人账户支付金额 LS_BKC040 ZY_YBJKRZ.BKC040%type;--个人现金支付金额(实付现金) LS_AKA151 ZY_YBJKRZ.AKA151%type;--统筹支付医保费用起付标准 LS_BKC045 ZY_YBJKRZ.BKC045%type;--其中:统筹基金支付 LS_BKC052 ZY_YBJKRZ.BKC052%type;--其中:商保基金支付(大额补充) LS_BKC059 ZY_YBJKRZ.BKC059%type;--其中:公务员医疗补助 LS_BKC062 ZY_YBJKRZ.BKC062%type;--其中:精准扶贫医疗叠加 LS_BKC060 ZY_YBJKRZ.BKC060%type;--其中:医疗救助基金 LS_AKE173 ZY_YBJKRZ.AKE173%type;--其中:其他基金支付 LS_AKE026 ZY_YBJKRZ.AKE026%type;--其中:企业补充 LS_BKC075 ZY_YBJKRZ.BKC075%type;--家庭共济账户支付 LS_BKC011 ZY_YBJKRZ.BKC011%type;--个人自费(非医保费用) LS_BKC166 ZY_YBJKRZ.BKC166%type;--(其中)一般诊疗费补偿金额 LS_BKC167 ZY_YBJKRZ.BKC167%type;--(其中)一般诊疗费个人支付金额 LS_BKC612 ZY_YBJKRZ.BKC612%type;--补助基金支付 LS_BKC061 ZY_YBJKRZ.BKC061%type;--其中:保健基金支付 LS_BKC076 ZY_YBJKRZ.BKC076%type;--其中:健康账户支付 LS_BKZFE0 ZY_YBJKRZ.BKZFE0%type;--三明离休b卡支付额 LS_BKZHYE ZY_YBJKRZ.BKZHYE%type;--三明离休b卡账户余额 LS_BKC079 ZY_YBJKRZ.BKC079%type;--健康账户余额 LS_BKC053 ZY_YBJKRZ.BKC053%type;--商保现金支付 LS_BKC054 ZY_YBJKRZ.BKC054%type;--商保账户支付 LS_BKC101 ZY_YBJKRZ.BKC101%type;--除外耗材费用 LS_BKC125 ZY_YBJKRZ.BKC125%type;--超标床位费用 LS_BKE361 ZY_YBJKRZ.BKE361%type;--普门累计或特门累计 LS_BKC064 ZY_YBJKRZ.BKC064%type;--产前检查费 LS_BKC620 ZY_YBJKRZ.BKC620%type;--(本地)成员共济账户支付 LS_BKC619 ZY_YBJKRZ.BKC619%type;--(异地)成员共济账户支付 LS_BKEH73 ZY_YBJKRZ.BKEH73%type;--职工医疗费补助 LS_BKC048 ZY_YBJKRZ.BKC048%type;--处级及以上干部补助 LS_DRGZFE ZY_YBJKRZ.DRGZFE%type;--DRG付费标准或单病种定额 LS_BKEG12 ZY_YBJKRZ.BKEG12%type;--bkeg12:他人共济支付 LS_FYBFY0 ZY_YBJKRZ.FYBFY0%type;--fybfy0:含超标准床位费和超标准耗材费 LS_GHHZJE ZY_YBJKRZ.GHHZJE%type;--ghhzje:工会互助补助金额 LS_YBDJH0 varchar2(30);--医保单据号 LS_JZDH00 number(10); LS_psn_no varchar2(30);--psn_no:人员编号 LS_jsqd_Notsend_list varchar2(100);--医疗基金结算清单不发送list多个|隔开 LS_otp_wm_dise varchar2(200);--门(急)诊诊断(西医诊断) LS_wm_dise_code varchar2(50);--西医疾病代码 LS_otptcmdise varchar2(200);--门(急)诊诊断(中医诊断) LS_tcmdisecode varchar2(50);--中医疾病代码 LS_JSQD_MainNodeName varchar2(100);--医疗保障基金结算清单上传、查询主节点编码:(分隔符用|)(参考格式:setlinfo|setlinfo) LS_MainNodeName varchar2(50); --主项节点编码 LS_setlinfo_Json ZY_YBJKMX.VALUE0%type;--结算清单信息开始 LS_VALUE0 ZY_YBJKMX.VALUE0%type;-- LS_BAKXML varchar2(200); LS_gend varchar2(10);--性别 LS_fixmedins_code varchar2(50);--定点医药机构编号 LS_fixmedins_name 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_medins_fill_dept varchar2(50);--医疗机构填报部门 LS_medins_fill_psn varchar2(50);--医疗机构填报人 LS_YGBMMC BM_BMBM00.BMMC00%type;--员工部门名称 LS_YGZWXM BM_YGBM00.ZWXM00%type;--员工中文姓名 LS_JSQD_iteminfo_DataType varchar2(100);--医疗清单上传或院内生成收费项目信息取值方式(格式:住院|门诊)[0:ZY_YBFPMX或SF_YBFPMX 1:ZY_JZMX00或SF_JZMX00]默认值:0|0 LS_iteminfoDataType varchar2(10);--0:ZY_YBFPMX或SF_YBFPMX 1:ZY_JZMX00或SF_JZMX00 LS_setl_list_sn varchar2(30);--结算清单流水号:9 位 格式:年度编码(2 位) 顺序号编码(7 位) LS_spga_nurscare_days ZY_YBJSD0.spga_nurscare_days%type;--特级护理天数 LS_lv1_nurscare_days ZY_YBJSD0.lv1_nurscare_days%type;--一级护理天数 LS_scd_nurscare_days ZY_YBJSD0.scd_nurscare_days%type;--二级护理天数 LS_lv3_nurscare_days ZY_YBJSD0.lv3_nurscare_days%type;--三级护理天数 LS_YBTCPAY ZY_YBJSD0.YBTCPAY%type;--ybtcPay:医保统筹基金 LS_stas_type varchar2(10);--stas_type:状态分类 [0未提交,1已提交,2审核通过,3审核不通过 9:院内生成] LS_zgdePay ZY_YBJSD0.zgdePay%type;--zgdePay:职工大额补助 LS_jmdbPay ZY_YBJSD0.jmdbPay%type;--jmdbPay:居民大病保险 LS_gwyPay ZY_YBJSD0.gwyPay%type;--gwyPay:公务员医疗补助 LS_yljzPay ZY_YBJSD0.yljzPay%type;--yljzPay:医疗救助支付 LS_fund_payamt_qyzf ZY_YBJSD0.fund_payamt_qyzf%type;--其他支付-企业补充=ake026 LS_fund_payamt_sybx ZY_YBJSD0.fund_payamt_sybx%type;--其他支付-商业保险=bkc054 LS_fund_payamt_CZBZ ZY_YBJSD0.fund_payamt_CZBZ%type;--其他支付-财政补助=bkc612 LS_fund_payamt_FPBZ ZY_YBJSD0.fund_payamt_FPBZ%type;--其他支付-扶贫补助=bkc062 LS_fund_payamt_JZFP01 ZY_YBJSD0.fund_payamt_JZFP01%type;--其他支付-精准扶贫一道 LS_fund_payamt_JZFP02 ZY_YBJSD0.fund_payamt_JZFP02%type;--其他支付-精准扶贫二道 LS_fund_payamt_SZHJZ ZY_YBJSD0.fund_payamt_SZHJZ%type;--其他支付-市综合救助 LS_fund_payamt_CJGMBZ ZY_YBJSD0.fund_payamt_CJGMBZ%type;--其他支付-处级干部补助 LS_fund_payamt_QTZF ZY_YBJSD0.fund_payamt_QTZF%type;--其他支付-其他支付=ake173 LS_QDlXBM ZY_YBJSD0.QDlXBM%type;--清单类型编码 0:上传 1:查询 2:院内生成 LS_dbz_bzbmmc ZY_YBJSD0.dbz_bzbmmc%type;--病种收费名称+代码 LS_dbz_debzmc ZY_YBJSD0.dbz_debzmc%type;--单病种定额标准名称 LS_dbz_cbcwfmc ZY_YBJSD0.dbz_cbcwfmc%type;--单病种床边床位费名称 LS_dbz_cwhcfmc ZY_YBJSD0.dbz_cwhcfmc%type;--单病种除外费名称 LS_adm_ryrq00 varchar2(8);--入院日期 LS_adm_rysj00 varchar2(8);--入院时间 LS_dscg_cyrq00 varchar2(8);--出院日期 LS_dscg_cysj00 varchar2(8);--出院时间 LS_diag_type ZY_YBJSDX.diag_type%type; --diag_type:诊断类别 1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 LS_adm_cond_type ZY_YBJSDX.adm_cond_type%type; --adm_cond_type:入院病情类型 1','有' ,'3','情况不明' '2','临床未确定' '4','无' LS_diag_code ZY_YBJSDX.diag_code%type; --diag_code:诊断代码 LS_diag_name ZY_YBJSDX.diag_name%type; --diag_name:诊断名称 LS_maindiag_flag ZY_YBJSDX.maindiag_flag%type; --maindiag_flag:主诊断标志 0:否' '1','是' LS_adm_cond_type_mc ZY_YBJSDX.adm_cond_type_mc%type;--住院诊断信息.入院病情名称 LS_diag_code_zy ZY_YBJSDX.diag_code_zy%type;--住院诊断信息.中医诊断代码 LS_diag_name_zy ZY_YBJSDX.diag_name_zy%type;--住院诊断信息.中医诊断诊断名称 LS_adm_cond_type_zy ZY_YBJSDX.adm_cond_type_zy%type;--住院诊断信息.中医入院病情类型 LS_adm_cond_type_zy_mc ZY_YBJSDX.adm_cond_type_zy_mc%type;--住院诊断信息.中医入院病情名称 LS_xmlstr ZY_YBJSDX.xmlstr%type; --备用信息 LS_oprn_oprt_begntime ZY_YBJSDX.oprn_oprt_begntime%type;--oprn_oprt_begntime:手术操作信息.手术操作开始时间 LS_oprn_oprt_endtime ZY_YBJSDX.oprn_oprt_endtime%type;--oprn_oprt_endtime:手术操作信息.手术操作结束时间 LS_anst_begntime ZY_YBJSDX.anst_begntime%type;--anst_begntime:手术操作信息.麻醉开始时间 LS_anst_endtime ZY_YBJSDX.anst_endtime%type;--anst_endtime:手术操作信息.麻醉结束时间 LS_PXXH00 number(5);--排序序号 LS_XYZDNUM number(5);--西医诊断数量 LS_ZYZDNUM number(5);--中医诊断数量 LS_ZYZBZDNUM number(5);--中医主病诊断 LS_ZYZZZDNUM number(5);--中医主证诊断 LS_akc194 varchar2(20);--出院日期yyyymmddhhmmss LS_YBJKID_JZB ZY_JZB000.YBJKID%type; --医保接口ID LS_QDRYRQSJ varchar2(20);--清单入院日期时间:yyyymmddhhmmss LS_QDCYRQSJ varchar2(20);--清单出院日期时间:yyyymmddhhmmss LS_YBRYRQSJ varchar2(20);--医保入院日期时间:yyyymmddhhmmss LS_YBCYRQSJ varchar2(20);--医保出院日期时间:yyyymmddhhmmss LS_brdy ZY_YBJSD0.brdy%type;--brdy:出生日期 LS_AGE ZY_YBJSD0.age%type;--age:年龄 LS_NWB_AGE ZY_YBJSD0.nwb_age%type;--nwb_age:(年龄不足1周岁)年龄 LS_BRNL00 number(12,4);--病人年龄 LS_WBPJDM ZY_PJSYQK.WBPJDM%type;--外部票据代码 LS_WBPJXH ZY_PJSYQK.WBPJXH%type;--外部票据序号 LS_WBID00 ZY_PJSYQK.WBID00%type;--外部发票IDZY_WBFPXX.WBID00 LS_JSQD_TYPTData BM_TYZD00.MC0000%type; --医疗保障基金结算清单,是否使用外部厂家通过通用平台传入的数据,0不使用,1使用 默认值:0 LS_ZXZT00 number(5); LS_ERRMSG varchar2(250); LS_ybtype ZY_JZB000.ybtype%type; --医保接口类型[0或空:福建版本 1:国家基线版] LS_hifmi_pay ZY_JZB000.hifmi_pay%type; --[国家医保]居民大病保险资金支出 LS_hifob_pay ZY_JZB000.hifob_pay%type; --[国家医保]职工大额医疗费用补助基金支出 LS_hifdm_pay ZY_JZB000.hifdm_pay%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.ZDLB00,nvl(nvl(b.DYBZBM,B.YBZDBH),a.ZDM000)ZDM000,nvl(b.DYJBMC,a.ZDMC00) ZDMC00 from BQ_BRZDXX A, XT_ICD900 B where 1=1 and A.ZDM000=B.ICD900 and A.ZYID00=RZYXX.ZYID00 order by A.ZDM000; --基金支付信息开始 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 ZY_BRJFB0 AA where aa.ZYID00=RZYXX.ZYID00 and ((nvl(LS_JZDH00,0)>0 and aa.JZDH00=LS_JZDH00) or (nvl(LS_JZDH00,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 nvl(b.DYJBMC,a.ZDMC00) as diag_name,--1 diag_name 诊断名称 varchar2(100) nvl(nvl(b.DYBZBM,B.YBZDBH),a.ZDM000) 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 BQ_BRZDXX A, XT_ICD900 B where 1=2 and A.ZDM000=B.ICD900 and A.ZYID00=RZYXX.ZYID00 order by A.ZDM000 ; --住院诊断信息开始 --diag_type:诊断类别 (1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作) cursor CUR_diseinfo is select distinct aa.diag_type,aa.diag_code,aa.diag_name,aa.adm_cond_type,aa.maindiag_flag from( select decode(a.ZDLB00,'3','1','a','2','e','2','b','3','f','3','1') as diag_type,--1 diag_type 诊断类别 1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 nvl(nvl(b.DYBZBM,B.YBZDBH),a.ZDM000) as diag_code,--2 diag_code 诊断代码 varchar2(20) nvl(b.DYJBMC,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.ZDLB00,'3','1','0') as maindiag_flag--5 maindiag_flag 主诊断标志 varchar2(3) 0:否' '1','是' from BQ_BRZDXX A, XT_ICD900 B where 1=1 and A.ZDM000=B.ICD900 and A.ZYID00=RZYXX.ZYID00 and A.ZDLB00 not in ('1','2') --过滤掉:1:门诊诊断 2:入院诊断 ) aa order by aa.maindiag_flag desc ; --收费项目信息开始 cursor CUR_iteminfo is select tt.med_chrgitm as med_chrgitm, tt.adm_cond_type_mc, 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 /* decode(bb.AKA063,'01','09','02','11','03','10','04','13','05','01', '06','02','07','07','08','03','09','04','10','05','11','06', '12','14','13','14','14','03','15','03','16','03','17','05', '18','05','19','12','20','12','21','14','22','08','23','12', '14') as med_chrgitm,--1 med_chrgitm 医疗收费项目 varchar2(6) decode(bb.AKA063,'01','西药费','02','成药费','03','草药费','04','挂号费','05','床位费', '06','诊察费','07','护理费','08','检查费','09','化验费','10','治疗费','11','手术费', '12','其他费','13','其他费','14','检查费','15','检查费','16','检查费','17','治疗费', '18','治疗费','19','一般诊疗费','20','一般诊疗费','21','其他费','22','卫生材料费','23','一般诊疗费', '其他费') --bb.AKA063_MC as adm_cond_type_mc,--医疗项目名称 */ bb.AKA063 as med_chrgitm,--1 med_chrgitm 医疗收费项目 varchar2(6) bb.AKA063_MC as adm_cond_type_mc,--医疗项目名称 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 ZY_JZB000 AA,ZY_YBFPMX BB where AA.JZDH00=BB.JZDH00 and aa.ZYID00=RZYXX.ZYID00 and ((nvl(LS_JZDH00,0)>0 and aa.JZDH00=LS_JZDH00) or (nvl(LS_JZDH00,0)=0 and 1=1)) and LS_AAZ149 is null and nvl(LS_iteminfoDataType,'0') not in ('1') ) tt group by tt.med_chrgitm,tt.adm_cond_type_mc ; --收费项目信息开始(普通发票) cursor CUR_YNFPMX is select tt.med_chrgitm as med_chrgitm, ff.SXSM00 as adm_cond_type_mc, 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 ZY_JZB000 AA,ZY_JZMX00 BB,BM_FPXM00 CC where AA.JZDH00=BB.JZDH00 and BB.XMBH00 =CC.FPXMID and aa.ZYID00=RZYXX.ZYID00 and ((nvl(LS_JZDH00,0)>0 and aa.JZDH00=LS_JZDH00) or (nvl(LS_JZDH00,0)=0 and 1=1)) ) tt,bm_ybsxzd ff where tt.med_chrgitm=ff.VALUE0 and ff.JKBM00=2 and ff.sxbm00='med_chrgitm_type' group by tt.med_chrgitm,ff.SXSM00 ; --收费项目信息开始(病种发票) cursor CUR_BZFPMX 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 decode(bb.XMBH00,'YBYL04','92','YBYL33','90','YBYL34','91','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 ZY_JZB000 AA,ZY_BZFPMX BB where AA.JZDH00=BB.JZDH00 and aa.ZYID00=RZYXX.ZYID00 and ((nvl(LS_JZDH00,0)>0 and aa.JZDH00=LS_JZDH00) or (nvl(LS_JZDH00,0)=0 and 1=1)) ) tt group by tt.med_chrgitm ; --手术操作信息开始 cursor CUR_oprninfo is select aa.oprn_oprt_type, --oprn_oprt_type 手术操作类别 varchar2(3) 1:主要手术及操作' '2','其他手术及操作' aa.oprn_oprt_name, --oprn_oprt_name 手术操作名称 varchar2(500) aa.oprn_oprt_code, --oprn_oprt_code 手术操作代码 varchar2(30) aa.oprn_oprt_date, --oprn_oprt_date 手术操作日期 number(8) aa.anst_way, --anst_way 麻醉方式 varchar2(6) =xt_mzfs00 aa.oper_dr_name, --oper_dr_name 术者医师姓名 varchar2(50) aa.oper_dr_code, --oper_dr_code 术者医师代码 varchar2(20) aa.anst_dr_name, --anst_dr_name 麻醉医师姓名 varchar2(50) aa.anst_dr_code, --anst_dr_name 麻醉医师姓名 varchar2(50) aa.oprn_oprt_begintime, --oprn_oprt_begintime 手术开始时间 number(14) aa.oprn_oprt_endtime, --oprn_oprt_endtime 手术结束时间 number(14) aa.anst_begintime, --anst_begintime 麻醉开始时间 number(14) aa.anst_endtime --anst_endtime 麻醉结束时间 number(14) from ( 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 t2.zwxm00 from ss_yshsxx t1,bm_ygbm00 t2 where t1.yshslb='主刀医生' and t1.ssdh00=aa.ssdh00 and t1.yshsbh=t2.ygbh00),aa.SSYSXM) as oper_dr_name,--6 oper_dr_name 术者医师姓名 varchar2(50) nvl((select nvl(t2.YBYGDM,t2.YSZJHM) from ss_yshsxx t1,bm_ygbm00 t2 where t1.yshslb='主刀医生' and t1.ssdh00=aa.ssdh00 and t1.yshsbh=t2.ygbh00), (select nvl(t3.YBYGDM,t3.YSZJHM) from bm_ygbm00 t3 where to_char(t3.ygbh00)=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 t2.zwxm00 from ss_yshsxx t1,bm_ygbm00 t2 where t1.yshslb='麻醉医生' and t1.ssdh00=aa.ssdh00 and t1.yshsbh=t2.ygbh00 and nvl(ZMFMBZ,'0')='0'),aa.MZYSXM) as anst_dr_name,--8 anst_dr_name 麻醉医师姓名 varchar2(50) nvl((select nvl(t2.YBYGDM,t2.YSZJHM) from ss_yshsxx t1,bm_ygbm00 t2 where t1.yshslb='麻醉医生' and t1.ssdh00=aa.ssdh00 and t1.yshsbh=t2.ygbh00 and nvl(ZMFMBZ,'0')='0'), (select nvl(t3.YBYGDM,t3.YSZJHM) from bm_ygbm00 t3 where to_char(t3.ygbh00)=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='1' and aa.ZYGHID=RZYXX.ZYID00 and aa.BRID00=RZYXX.BRID00 ) aa order by aa.oprn_oprt_type; --重症监护信息开始 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'); LS_otp_wm_dise:=null;--门(急)诊诊断(西医诊断) LS_wm_dise_code:=null;--西医疾病代码 LS_otptcmdise:=null;--门(急)诊诊断(中医诊断) LS_tcmdisecode:=null;--中医疾病代码 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:=PJZDH00; LS_jsqd_Notsend_list:=null;--医疗基金结算清单不发送list多个|隔开 LS_setlinfo_Json:=null;--结算清单信息开始 LS_spga_nurscare_days:=null;---特级护理天数 LS_lv1_nurscare_days:=null;---一级护理天数 LS_scd_nurscare_days:=null;---二级护理天数 LS_lv3_nurscare_days:=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,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));--医疗机构填报人 --JSQD_iteminfo_DataType 医疗清单上传或院内生成收费项目信息取值方式(格式:住院|门诊)[0:ZY_YBFPMX或SF_YBFPMX 1:ZY_JZMX00或SF_JZMX00]默认值:0|0 LS_JSQD_iteminfo_DataType:=nvl(trim(substrb(SF_SF_TYZD00('医保新接口参数设置','JSQD_iteminfo_DataType'),1,100)),'0|0'); LS_iteminfoDataType:=nvl(substrb(SF_SF_RETURNINDEXEH(LS_JSQD_iteminfo_DataType,'|', 1),1,10),'0');--0:ZY_YBFPMX或SF_YBFPMX 1:ZY_JZMX00或SF_JZMX00 LS_JSQD_TYPTData := trim(substrb(SF_SF_TYZD00('医保新接口参数设置','JSQD_TYPTData'),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; --获取医院的国家医保标准编码 begin select c.YYID00,c.YYQC00,c.YYJC00, c.GJBZBM,b.BMMC00,a.ZWXM00 into LS_YYID00,LS_YYQC00,LS_YYJC00, LS_GJBZBM,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; end; if trim(LS_YYQC00) is not null then LS_fixmedins_name:=substrb(trim(LS_YYQC00),1,50);--定点医药机构名称 end if; if trim(LS_GJBZBM) is not null then LS_fixmedins_code:=substrb(trim(LS_GJBZBM),1,50);--定点医药机构编号 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 PZYH000 is null and nvl(PZYID00,0)=0 then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='入参:PZYID00(住院ID)和PZYH000(住院号),参数错误!';--[出参]:错误信息 return; end if; --查询住院病人信息表 LS_ERRSTR:='查询住院病人信息表'; begin select * into RZYXX from ZY_BRXXB0 aa where 1=1 and ((nvl(PZYID00,0)>0 and aa.ZYID00 =PZYID00 ) or (nvl(PZYID00,0)=0 and 1=1)) and ((PZYH000 is not null and aa.ZYH000 =rpad(PZYH000,12,' ') ) or (PZYH000 is null and 1=1)) and rownum=1 ; exception when others then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='未找到有效住院病人信息!';--[出参]:错误信息 return; rollback; end; --获取基本信息 begin select * into RBRXX from BM_BRXXB0 aa where 1=1 and AA.BRID00=RZYXX.BRID00; exception when others then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='未找到有效基本病人信息!';--[出参]:错误信息 return; rollback; end; --获取科室编码 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=1 and AA.BMBH00=RZYXX.DQKS00; exception when others then LS_adm_caty:=null;--adm_caty 入院科别 LS_dscg_caty:=null; --dscg_caty 出院科别 end; --责任护士代码、责任护士姓名 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=nvl(RZYXX.ZRHS00,RZYXX.ZGHS00); 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; --取流水信息表状态=出院 if LS_resp_nurs_name is null then 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,BQ_BRLDXX bb where 1=1 and AA.YGBH00=bb.JSCZY0 and bb.JSZT00='出院' and aa.YGXZ00='2' and bb.ZYID00=RZYXX.ZYID00 and rownum=1; 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; end if; --主诊医师代码、主诊医师姓名 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=nvl(RZYXX.ZZYS00,RZYXX.ZRYS00); 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 ZY_BRFY00 AA where aa.ZYID00=RZYXX.ZYID00; 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 结算开始日期 number(8) LS_setl_end_date:=nvl(LS_setl_end_date,to_char(sysdate,'YYYY-MM-DD'));--setl_end_date 结算结束日期 number(8) begin select max(substrb(trim(aa.YBDJH0),1,30))as YBDJH0, 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(aa.YBYL04) as YBYL04,sum(nvl(aa.YBYL33,0)) as YBYL33,sum(nvl(aa.YBYL34,0)) as YBYL34, max(DBZBM0) as DBZBM0,max(aa.YBJKID) as YBJKID_JZB, max(ybtype) as ybtype,sum(nvl(aa.hifmi_pay,0)) as hifmi_pay,sum(nvl(aa.hifob_pay,0)) as hifob_pay,sum(nvl(aa.hifdm_pay,0)) as hifdm_pay into LS_YBDJH0,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_YBYL04,LS_YBYL33,LS_YBYL34, LS_JZBDBZBM,LS_YBJKID_JZB,LS_ybtype,LS_hifmi_pay,LS_hifob_pay,LS_hifdm_pay from ZY_JZB000 AA where aa.ZYID00=RZYXX.ZYID00 and ((nvl(LS_JZDH00,0)>0 and aa.JZDH00=LS_JZDH00) or (nvl(LS_JZDH00,0)=0 and 1=1)); 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_YBYL33:=0;--超标床位费用(付费单病种写入) LS_YBYL34:=0;--除外耗材费用(付费单病种写入) LS_YBYL04:=0;--单病种限额 LS_YBJKID_JZB:=null; LS_ybtype:=null; --医保接口类型[0或空:福建版本 1:国家基线版] LS_hifmi_pay:=0; --[国家医保]居民大病保险资金支出 LS_hifob_pay:=0; --[国家医保]职工大额医疗费用补助基金支出 LS_hifdm_pay:=0; --[国家医保]伤残人员医疗保障基金支出 end; --获取通用收费 if LS_YBJKID_JZB is not null and LS_YBJKID_JZB not in ('0') then begin LS_akc194:=substrb(SF_ZY_GETYBJKMX(LS_YBJKID_JZB,'akc194','0'),1,20); exception when others then LS_akc194:=null;--出院日期yyyymmddhhmmss end; end if; --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(个人自费) if nvl(LS_psn_selfpay,0)<=0 then LS_psn_selfpay:=0; end if; 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,aa.WBPJDM,aa.WBPJXH,aa.WBID00 into LS_bill_no,LS_biz_sn,LS_bill_code,LS_WBPJDM,LS_WBPJXH,LS_WBID00 from ZY_PJSYQK AA where aa.ZYID00=RZYXX.ZYID00 and 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 LS_WBPJDM:=null;--外部票据代码 LS_WBPJXH:=null;--外部票据序号 LS_WBID00:=null;--外部发票IDZY_WBFPXX.WBID00 end; end if; --hi_paymtd 医保支付方式 [1:按项目 2:单病种 3:按病种分值 4:基本诊断相关分组(DRG) 5:按床日 6:按人次 7:按定额 9:其他] if LS_JZBDBZBM is not null then LS_hi_paymtd:='2';--接口发送值 --患者本次就医所发生的医疗费用中按照有关规定不属于基本医疗保险目录范围而全部由个人支付的费用 LS_psn_ownpay:=nvl(LS_psn_cashpay,0); --psn_ownpay 个人自费 number(16,2) Y=YBYL63(bkc011) --患者本次就医所发生的医疗费用中由个人负担的属于基本医疗保险目录范围内自付部分的金额(个人自付 --=起付线+先行自付+按比例自付+封顶线以上,含目录范围内超限价部分、待遇过渡期内二次报销统筹基金补偿部分),以及开展 按病种、病组、床日等打包付费方式且由患者定额付费的费用 LS_psn_selfpay:=0; --psn_selfpay 个人自付 number(16,2) Y=bkc040(个人现金支付)+ bkc041(个人帐户支付)-bkc011(个人自费) begin select substrb(nvl(aa.BAEMC0,aa.DBZMC0)||'+'||nvl(aa.BAE465,aa.DBZBM0),1,200) into LS_dbz_bzbmmc from BM_DBZDEB aa where aa.YBZXLB=SF_ZY_SFQYDBZJK(RZYXX.ZYID00) and YBBRLB=SF_ZY_SFQYDBZJK(RZYXX.ZYID00) and aa.DBZBM0=LS_JZBDBZBM and rownum=1; exception when others then LS_dbz_bzbmmc:='';--病种收费名称+代码 end; else LS_hi_paymtd:='1';--接口发送值 end if; --psn_no:人员编号 改为SF_ZY_GETYBSXZD获取 LS_psn_no:=substrb(SF_ZY_GETYBSXZD(RZYXX.ZYID00,'1','psnno','','',''),1,30); LS_psn_no:=nvl(LS_psn_no,RBRXX.BRZJBH); --门诊诊断 LS_otp_wm_dise:=null;--门(急)诊诊断(西医诊断) LS_wm_dise_code:=null;--西医疾病代码 begin select substrb(nvl(b.DYBZBM,a.ZDM000),1,50)zdm000,substrb(nvl(b.DYJBMC,a.ZDMC00),1,100)ZDMC00 into LS_wm_dise_code,LS_otp_wm_dise from BQ_BRZDXX a,XT_ICD900 b where a.ZDM000=b.ICD900 and a.ZYID00=RZYXX.ZYID00 and a.ZDLB00='1' and rownum=1; exception when others then LS_otp_wm_dise:=null;--门(急)诊诊断(西医诊断) LS_wm_dise_code:=null;--西医疾病代码 end; LS_setl_list_sn:=substrb(LS_CZRQ00,3,2)||lpad(substrb(PYBJKID,1,7),7,'0');--结算清单流水号:9 位 格式:年度编码(2 位) 顺序号编码(7 位) LS_spga_nurscare_days:=SF_ZY_GETJSQD_HLTS00('spga_nurscare_days',PZYID00,LS_JZDH00,0);---特级护理天数 LS_lv1_nurscare_days:=SF_ZY_GETJSQD_HLTS00('lv1_nurscare_days',PZYID00,LS_JZDH00,0);---一级护理天数 LS_scd_nurscare_days:=SF_ZY_GETJSQD_HLTS00('scd_nurscare_days',PZYID00,LS_JZDH00,0);---二级护理天数 LS_lv3_nurscare_days:=SF_ZY_GETJSQD_HLTS00('lv3_nurscare_days',PZYID00,LS_JZDH00,0);---三级护理天数 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; if trim(RZYXX.XB0000)='男' then LS_gend:='1';--接口发送值 elsif trim(RZYXX.XB0000)='女' then LS_gend:='2';--接口发送值 else LS_gend:='9';--接口发送值 end if; LS_adm_ryrq00:=RZYXX.RYRQ00;--入院日期 LS_adm_rysj00:=RZYXX.RYSJ00;--入院时间 --出院日期 if RZYXX.CYDJRQ is null or RZYXX.cydjrq in ('20991231') then LS_dscg_cyrq00:=to_char(sysdate,'YYYYMMDD'); else LS_dscg_cyrq00:=RZYXX.CYDJRQ; end if; --出院时间 if RZYXX.cydjsj is null then LS_dscg_cysj00:=to_char(sysdate,'HH24:MI:SS'); else LS_dscg_cysj00:=RZYXX.cydjsj; end if; --YBRYRQ:医保入院日期,格式:YYYYMMDD YBRYSJ:医保入院时间,格式:HH24:MI:SS if RZYXX.YBRYRQ is not null and RZYXX.YBRYSJ is not null then LS_YBRYRQSJ:=RZYXX.YBRYRQ||substrb(RZYXX.YBRYSJ,1,2)||substrb(RZYXX.YBRYSJ,4,2)||substrb(RZYXX.YBRYSJ,7,2);--医保入院日期时间:yyyymmddhhmmss end if; --YBCYRQ:医保出院日期,格式:YYYYMMDD YBCYSJ:医保出院时间,格式:HH24:MI:SS if RZYXX.YBCYRQ is not null and RZYXX.YBCYSJ is not null then LS_YBCYRQSJ:=RZYXX.YBCYRQ||substrb(RZYXX.YBCYSJ,1,2)||substrb(RZYXX.YBCYSJ,4,2)||substrb(RZYXX.YBCYSJ,7,2);--医保出院日期时间:yyyymmddhhmmss end if; LS_QDRYRQSJ:=LS_adm_ryrq00||substrb(LS_adm_rysj00,1,2)||substrb(LS_adm_rysj00,4,2)||substrb(LS_adm_rysj00,7,2); --清单入院日期时间:yyyymmddhhmmss LS_QDCYRQSJ:=LS_dscg_cyrq00||substrb(LS_dscg_cysj00,1,2)||substrb(LS_dscg_cysj00,4,2)||substrb(LS_dscg_cysj00,7,2);--清单出院日期时间:yyyymmddhhmmss --adm_time:入院时间 if LS_YBRYRQSJ is not null and LS_YBRYRQSJ<>LS_QDRYRQSJ then LS_QDRYRQSJ:=LS_YBRYRQSJ; end if; --dscg_time 出院时间 if LS_YBCYRQSJ is not null and LS_YBCYRQSJ<>LS_QDCYRQSJ then LS_QDCYRQSJ:=LS_YBCYRQSJ; end if; --通用收费发送医保的:出院日期yyyymmddhhmmss if LS_akc194 is not null and LS_akc194<>LS_QDCYRQSJ then LS_QDCYRQSJ:=LS_akc194; end if; --adm_time:入院时间(格式:yyyy-mm-dd HH24:MI:SS) LS_adm_time:=substrb(LS_QDRYRQSJ,1,4)||'-'||substrb(LS_QDRYRQSJ,5,2)||'-'||substrb(LS_QDRYRQSJ,7,2); LS_adm_time:=LS_adm_time||' '||substrb(LS_QDRYRQSJ,9,2)||':'||substrb(LS_QDRYRQSJ,11,2)||':'||substrb(LS_QDRYRQSJ,13,2); --dscg_time:出院时间(格式:yyyy-mm-dd HH24:MI:SS) LS_dscg_time:=substrb(LS_QDCYRQSJ,1,4)||'-'||substrb(LS_QDCYRQSJ,5,2)||'-'||substrb(LS_QDCYRQSJ,7,2); LS_dscg_time:=LS_dscg_time||' '||substrb(LS_QDCYRQSJ,9,2)||':'||substrb(LS_QDCYRQSJ,11,2)||':'||substrb(LS_QDCYRQSJ,13,2); LS_brdy:=substrb(substrb(RBRXX.BRCSRQ,1,4)||'-'||substrb(RBRXX.BRCSRQ,5,2)||'-'||substrb(RBRXX.BRCSRQ,7,2),1,10); 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; 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(RZYXX.XB0000),1,10);--性别名称 LS_AAC006:=substrb(trim(RZYXX.CSRQ00),1,8);--出生日期 LS_AAZ149:=substrb(trim(LS_JZBDBZBM),1,20);--病种编码 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:工会互助补助金额 --YBYL56:bkc045 其中:统筹基金支付 --YBYL53:bkc102 基金支付总额=统筹基金支付+商保基金支付+公务员医疗补助+精准扶贫医疗叠加+医疗救助基金+其他基金支付+企业补充 LS_YBTCPAY:=nvl(LS_bkc045,0);--ybtcPay:医保统筹基金=bkc045 LS_zgdePay:=nvl(LS_bkeh73,0);--zgdePay:职工大额补助=bkeh73=hifob_pay LS_jmdbPay:=nvl(LS_bkc052,0);--jmdbPay:居民大病保险=bkc052=hifmi_pay 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 if LS_ybtype='1' then --医保接口类型[0或空:福建版本 1:国家基线版] LS_jmdbPay:=nvl(LS_hifmi_pay,0); --[国家医保]居民大病保险资金支出 LS_zgdePay:=nvl(LS_hifob_pay,0); --[国家医保]职工大额医疗费用补助基金支出 LS_fund_payamt_QTZF:=nvl(LS_hifdm_pay,0); --[国家医保]伤残人员医疗保障基金支出 end if; if PDATALX in (0,9) then --:数据获取类型 0:HIS内部直接生成 1:获取海泰drg更新数据[医保交互后] 2:更新部分[医保交互后] 9:清单上传 select count(*) into LS_COUNT0 from ZY_YBJKRZ where YBJKID=PYBJKID and ZYID00=PZYID00; if nvl(LS_COUNT0,0)=0 then insert into ZY_YBJKRZ(YBJKID,YBJKBM,YBJKMC,JKCJBM,BRID00,ZYID00,ZYH000,CZRQ00,CZSJ00,CZY000,CZYXM0,BRXM00, AAZ500,AAC002,FLAG,CAUSE) select PYBJKID,'000000','医疗保障基金结算清单查询',PJKCJBM,RZYXX.BRID00,RZYXX.ZYID00,RZYXX.ZYH000,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 ZY_YBJSD0 where YBJKID=PYBJKID and ZYID00=PZYID00; if nvl(LS_COUNT0,0)=0 then Insert into ZY_YBJSD0(ZYID00,AKC190,JZDH00,YBJKID,YBJSQD) select PZYID00,trim(RZYXX.YBZYH0),LS_JZDH00,PYBJKID,null from dual; end if; --更新ZY_YBJSD0 update ZY_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(RZYXX.YBZYH0),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(SF_SF_TYZD00('医保新接口参数设置','hi_setl_lv'),1,3),'1') ,--hi_setl_lv:医保结算等级 MEDCASNO=substrb(nvl(trim(RZYXX.MRN000),trim(RZYXX.ZYH000)),1,50) ,--medcasno:病案号 DCLA_TIME=to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') ,--dcla_time:申报时间 PSN_NAME=substrb(trim(RZYXX.XM0000),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=null ,--opsp_diag_caty:门诊慢特病诊断科别 OPSP_MDTRT_DATE=null ,--opsp_mdtrt_date:门诊慢特病就诊日期 IPT_MED_TYPE='1' ,--ipt_med_type:住院医疗类型 [1:住院 2:日间手术] ADM_WAY=substrb(nvl(SF_ZY_GETJSQD_JKFSZ0('adm_way',trim(RZYXX.RYTJ00)),'9'),1,10) ,--adm_way:入院途径[1:急诊 2:门诊 3:其他医疗机构转入 9:其他] TRT_TYPE=nvl(substrb(SF_ZY_GETJSQD_JKFSZ0('trt_type',trim(RZYXX.ZLLB00)),1,10),'3') ,--trt_type:治疗类别 [1:西医 2.1:中医 2.2:民族医 3:中西医] --ADM_TIME=LS_adm_ryrq00||substrb(LS_adm_rysj00,1,2)||substrb(LS_adm_rysj00,4,2)||substrb(LS_adm_rysj00,7,2) ,--adm_time:入院时间 --DSCG_TIME=LS_dscg_cyrq00||substrb(LS_dscg_cysj00,1,2)||substrb(LS_dscg_cysj00,4,2)||substrb(LS_dscg_cysj00,7,2) ,--dscg_time:出院时间 ADM_TIME=LS_adm_time ,--adm_time:入院时间 DSCG_TIME=LS_dscg_time ,--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=to_date(nvl(RZYXX.CYDJRQ,to_char(sysdate,'YYYYMMDD')),'YYYYMMDD')-to_date(RZYXX.RYRQ00,'YYYYMMDD')+1 ,--act_ipt_days:实际住院天数 OTP_WM_DISE=substrb(LS_otp_wm_dise,1,200) ,--otp_wm_dise:门(急)诊西医诊断 WM_DISE_CODE=substrb(LS_wm_dise_code,1,50) ,--wm_dise_code:西医诊断疾病代码 OTP_TCM_DISE=null ,--otp_tcm_dise:门(急)诊中医诊断 TCM_DISE_CODE=substrb(LS_tcmdisecode,1,50) ,--tcm_dise_code:中医诊断代码 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=LS_spga_nurscare_days ,--spga_nurscare_days:特级护理天数 LV1_NURSCARE_DAYS=LS_lv1_nurscare_days ,--lv1_nurscare_days:一级护理天数 SCD_NURSCARE_DAYS=LS_scd_nurscare_days ,--scd_nurscare_days:二级护理天数 LV3_NURSCARE_DAYS=LS_lv3_nurscare_days ,--lv3_nurscare_days:三级护理天数 DSCG_WAY=nvl(substrb(SF_ZY_GETJSQD_JKFSZ0('dscg_way',trim(RZYXX.BRLYFS)),1,10),'9') ,--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='1' ,--days_rinp_flag_31:出院31天内再住院计划标志 1.无 2.有 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=LS_medins_fill_dept ,--medins_fill_dept:医疗机构填报部门 MEDINS_FILL_PSN=LS_medins_fill_psn ,--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(LS_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 ZYID00=PZYID00; --通用平台外连数据整理 if LS_JSQD_TYPTData = '1' then SP_ZY_JSQDSC_WLQDCL ( PZYID00 , --住院ID PYBJKID , --医保接口id LS_jsqd_Notsend_list , --不发送的列表 LS_ERRMSG, --存储过程提示的错误信息 LS_ZXZT00 ); if LS_ZXZT00 = 0 then PERRMSG := '电子病历未发送住院号:'||trim(RZYXX.ZYH000)||'此病人病案首页相关数据,请核实确认!'; PZXZT00 := 0; return; end if; select payinfo_num,opspdiseinfo_num,diseinfo_num,iteminfo_num,oprninfo_num,icuinfo_num,bldinfo_num into LS_payinfo_num,LS_opspdiseinfo_num,LS_diseinfo_num,LS_iteminfo_num,LS_oprninfo_num,LS_icuinfo_num,LS_bldinfo_num from ZY_YBJSD0 where YBJKID=PYBJKID and ZYID00=PZYID00; end if; /* 基金支付信息开始 1 fund_pay_type 基金支付类型 varchar2(6) 2 fund_payamt 基金支付金额 number(16,2) 基金支付信息结束 */ if LS_jsqd_Notsend_list is null or instrb('|'||LS_jsqd_Notsend_list||'|','|'||'payinfo'||'|')<=0 then if LS_payinfo_num = 0 then 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||'}'; --插入ZY_YBJSDX insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,rid,fund_pay_type,poolarea_fund_pay_type,poolarea_fund_pay_name,fund_payamt) select PYBJKID,'payinfo','基金支付信息',LS_payinfo_Num, 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; --插入ZY_YBJKMX insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,LS_payinfo_Num,'payinfo','data','payinfo','基金支付信息',null,null,'1',null,LS_payinfo_Json from dual; LS_payinfo_Num:=nvl(LS_payinfo_Num,0)+1; end loop; end if; --无数据插入一笔空 if nvl(LS_payinfo_Num,0)=0 then insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,SQ_ZY_YBJKMX_JKMXID.nextval,'payinfo','data','payinfo','基金支付信息',null,null,'1',null, LS_payinfo_Json from dual; end if; end if; /* 门诊慢特病诊断信息开始 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) 门诊慢特病诊断信息结束 */ if LS_jsqd_Notsend_list is null or instrb('|'||LS_jsqd_Notsend_list||'|','|'||'opspdiseinfo'||'|')<=0 then if LS_opspdiseinfo_Num = 0 then 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||'}'; --插入ZY_YBJSDX insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,rid,diag_name,diag_code,oprn_oprt_name,oprn_oprt_code,maindiag_flag) select PYBJKID,'opspdiseinfo','门诊慢特病诊断信息',LS_opspdiseinfo_Num, 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; --ZY_YBJKMX insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,LS_opspdiseinfo_Num,'opspdiseinfo','data','opspdiseinfo','门诊慢特病诊断信息',null,null,'1',null, LS_opspdiseinfo_Json from dual; LS_opspdiseinfo_Num:=nvl(LS_opspdiseinfo_Num,0)+1; end loop; end if; --无数据插入一笔空 if nvl(LS_opspdiseinfo_Num,0)=0 then insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,SQ_ZY_YBJKMX_JKMXID.nextval,'opspdiseinfo','data','opspdiseinfo','门诊慢特病诊断信息',null,null,'1',null,LS_opspdiseinfo_Json from dual; end if; end if; /* 住院诊断信息< 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>结束 */ if LS_jsqd_Notsend_list is null or instrb('|'||LS_jsqd_Notsend_list||'|','|'||'diseinfo'||'|')<=0 then if LS_diseinfo_Num = 0 then for C_List in CUR_diseinfo loop LS_diseinfo_Json:=null; LS_diag_type:=substrb(C_List.diag_type,1,10); --diag_type:诊断类别 1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 LS_diag_code:=substrb(C_List.diag_code,1,50); --diag_code:诊断代码 LS_diag_name:=substrb(C_List.diag_name,1,100); --diag_name:诊断名称 LS_adm_cond_type:=substrb(C_List.adm_cond_type,1,10); --adm_cond_type:入院病情类型 1','有' ,'3','情况不明' '2','临床未确定' '4','无' LS_maindiag_flag:=substrb(C_List.maindiag_flag,1,10); --maindiag_flag:主诊断标志 0:否' '1','是' LS_adm_cond_type:=C_List.adm_cond_type;--入院病情类型 1','有' ,'3','情况不明' '2','临床未确定' '4','无' --RYSQK0入院时情况(危、急、一般) if RZYXX.RYSQK0 in ('危','急') then LS_adm_cond_type:='1'; else LS_adm_cond_type:='4'; end if; LS_adm_cond_type_mc:=null;--住院诊断信息.入院病情名称 LS_diag_code_zy:=null;--住院诊断信息.中医诊断代码 LS_diag_name_zy:=null;--住院诊断信息.中医诊断诊断名称 LS_adm_cond_type_zy:=null;--住院诊断信息.中医入院病情类型 LS_adm_cond_type_zy_mc:=null;--住院诊断信息.中医入院病情名称 LS_diseinfo_Json:=LS_diseinfo_Json||'{'; LS_diseinfo_Json:=LS_diseinfo_Json||'"diag_type"'||':'||'"'||LS_diag_type||'"'||','; LS_diseinfo_Json:=LS_diseinfo_Json||'"diag_code"'||':'||'"'||LS_diag_code||'"'||','; LS_diseinfo_Json:=LS_diseinfo_Json||'"diag_name"'||':'||'"'||LS_diag_name||'"'||','; LS_diseinfo_Json:=LS_diseinfo_Json||'"adm_cond_type"'||':'||'"'||LS_adm_cond_type||'"'||','; LS_diseinfo_Json:=LS_diseinfo_Json||'"maindiag_flag"'||':'||'"'||LS_maindiag_flag||'"'||''; LS_diseinfo_Json:=LS_diseinfo_Json||'}'; --插入ZY_YBJSDX insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,rid,diag_type,diag_code,diag_name,adm_cond_type,maindiag_flag) select PYBJKID,'diseinfo','住院诊断信息',LS_diseinfo_Num, substrb(LS_diag_type,1,10) as diag_type, substrb(LS_diag_code,1,50) as diag_code, substrb(LS_diag_name,1,100) as diag_name, substrb(LS_adm_cond_type,1,10) as adm_cond_type, substrb(LS_maindiag_flag,1,10) as maindiag_flag from dual; --插入ZY_YBJKMX insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,LS_diseinfo_Num,'diseinfo','data','diseinfo','住院诊断信息',null,null,'1',null,LS_diseinfo_Json from dual; LS_diseinfo_Num:=nvl(LS_diseinfo_Num,0)+1; end loop; end if; --无数据插入一笔空 if nvl(LS_diseinfo_Num,0)=0 then insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,SQ_ZY_YBJKMX_JKMXID.nextval,'diseinfo','data','diseinfo','住院诊断信息',null,null,'1',null,LS_diseinfo_Json from dual; end if; end if; /* 收费项目信息开始 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) 收费项目信息结束 */ if LS_jsqd_Notsend_list is null or instrb('|'||LS_jsqd_Notsend_list||'|','|'||'iteminfo'||'|')<=0 then if LS_AAZ149 is not null then LS_AKC227:=0; --医疗费总金额 LS_DRGZFE:=0;--DRG付费标准或单病种定额 LS_BKC101:=0;--除外耗材费用 LS_BKC125:=0;--超标床位费用 for C_List in CUR_BZFPMX 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 ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,med_chrgitm_type,amt,claa_sumfee,clab_amt,fulamt_ownpay_amt,oth_amt) select PYBJKID,'dbziteminfo','收费项目信息', 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; */ --插入ZY_YBJKMX insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,LS_iteminfo_Num,'iteminfo','data','iteminfo','收费项目信息',null,null,'1',null,LS_iteminfo_Json from dual; --'90','单病种超标床位费','91','单病种除外耗材','92','单病种标准' if C_List.med_chrgitm='92' then LS_DRGZFE:=nvl(C_List.amt,0);--DRG付费标准或单病种定额 elsif C_List.med_chrgitm='91' then LS_BKC101:=nvl(C_List.amt,0);--除外耗材费用 elsif C_List.med_chrgitm='90' then LS_BKC125:=nvl(C_List.amt,0);--超标床位费用 end if; LS_AKC227:=nvl(LS_AKC227,0)+nvl(C_List.amt,0); LS_iteminfo_Num:=nvl(LS_iteminfo_Num,0)+1; end loop; else --非单病种 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||'}'; --插入ZY_YBJSDX insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,rid,med_chrgitm_type,adm_cond_type_mc,amt,claa_sumfee,clab_amt,fulamt_ownpay_amt,oth_amt) select PYBJKID,'iteminfo','收费项目信息',LS_iteminfo_Num, substrb(C_List.med_chrgitm,1,10) as med_chrgitm, C_List.adm_cond_type_mc, 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; --插入ZY_YBJKMX insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,LS_iteminfo_Num,'iteminfo','data','iteminfo','收费项目信息',null,null,'1',null,LS_iteminfo_Json from dual; LS_iteminfo_Num:=nvl(LS_iteminfo_Num,0)+1; end loop; --未找到有效数据按院内生成 if nvl(LS_iteminfo_Num,0)=0 then 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||'}'; --插入ZY_YBJSDX insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,med_chrgitm_type,adm_cond_type_mc,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.adm_cond_type_mc, 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; --插入ZY_YBJKMX insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,LS_iteminfo_Num,'iteminfo','data','iteminfo','收费项目信息',null,null,'1',null,LS_iteminfo_Json from dual; LS_iteminfo_Num:=nvl(LS_iteminfo_Num,0)+1; end loop; end if; end if; --无数据插入一笔空 if nvl(LS_iteminfo_Num,0)=0 then insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,SQ_ZY_YBJKMX_JKMXID.nextval,'iteminfo','data','iteminfo','收费项目信息',null,null,'1',null,LS_iteminfo_Json from dual; end if; end if; --补全发票明细 insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,med_chrgitm_type,adm_cond_type_mc,amt,claa_sumfee,clab_amt,fulamt_ownpay_amt,oth_amt) select PYBJKID,'iteminfo','收费项目信息',substrb(b.VALUE0,1,10) as MED_CHRGITM_TYPE,SXSM00 as adm_cond_type_mc, 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 b.VALUE0 not in ('90','91','92') and substrb(VALUE0,1,10) not in (select nvl(A.med_chrgitm_type,'14') from ZY_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) 手术操作信息结束 */ if LS_jsqd_Notsend_list is null or instrb('|'||LS_jsqd_Notsend_list||'|','|'||'oprninfo'||'|')<=0 then if LS_oprninfo_Num = 0 and nvl(LS_JSQD_TYPTData,'0') not in ('1') then for C_List in CUR_oprninfo loop LS_oprninfo_Json:=null; LS_oprn_oprt_begntime:=C_List.oprn_oprt_begintime;--oprn_oprt_begntime:手术操作信息.手术操作开始时间 :yyyy-MM-dd hh:mm:ss LS_oprn_oprt_endtime:=C_List.oprn_oprt_endtime;--oprn_oprt_endtime:手术操作信息.手术操作结束时间 :yyyy-MM-dd hh:mm:ss LS_anst_begntime:=C_List.anst_begintime;--anst_begntime:手术操作信息.麻醉开始时间 :yyyy-MM-dd hh:mm:ss LS_anst_endtime:=C_List.anst_endtime;--anst_endtime:手术操作信息.麻醉结束时间 :yyyy-MM-dd hh:mm:ss --格式转化yyyyMMddhhmmss转为yyyy-MM-dd hh:mm:ss if LS_oprn_oprt_begntime is not null then LS_oprn_oprt_begntime:=substrb(C_List.oprn_oprt_begintime,1,4)||'-'||substrb(C_List.oprn_oprt_begintime,5,2)||'-'||substrb(C_List.oprn_oprt_begintime,7,2); LS_oprn_oprt_begntime:=LS_oprn_oprt_begntime||' '||substrb(C_List.oprn_oprt_begintime,9,2)||':'||substrb(C_List.oprn_oprt_begintime,11,2)||':'||substrb(C_List.oprn_oprt_begintime,13,2); end if; if LS_oprn_oprt_endtime is not null then LS_oprn_oprt_endtime:=substrb(C_List.oprn_oprt_endtime,1,4)||'-'||substrb(C_List.oprn_oprt_endtime,5,2)||'-'||substrb(C_List.oprn_oprt_endtime,7,2); LS_oprn_oprt_endtime:=LS_oprn_oprt_endtime||' '||substrb(C_List.oprn_oprt_endtime,9,2)||':'||substrb(C_List.oprn_oprt_endtime,11,2)||':'||substrb(C_List.oprn_oprt_endtime,13,2); end if; if LS_anst_begntime is not null then LS_anst_begntime:=substrb(C_List.anst_begintime,1,4)||'-'||substrb(C_List.anst_begintime,5,2)||'-'||substrb(C_List.anst_begintime,7,2); LS_anst_begntime:=LS_anst_begntime||' '||substrb(C_List.anst_begintime,9,2)||':'||substrb(C_List.anst_begintime,11,2)||':'||substrb(C_List.anst_begintime,13,2); end if; if LS_anst_endtime is not null then LS_anst_endtime:=substrb(C_List.anst_endtime,1,4)||'-'||substrb(C_List.anst_endtime,5,2)||'-'||substrb(C_List.anst_endtime,7,2); LS_anst_endtime:=LS_anst_endtime||' '||substrb(C_List.anst_endtime,9,2)||':'||substrb(C_List.anst_endtime,11,2)||':'||substrb(C_List.anst_endtime,13,2); end if; --麻醉开始时间为空,用手术开始时间 if LS_anst_begntime is null and LS_oprn_oprt_begntime is not null then LS_anst_begntime:=LS_oprn_oprt_begntime; end if; --麻醉结束时间为空,用手术结束时间 if LS_anst_endtime is null and LS_oprn_oprt_endtime is not null then LS_anst_endtime:=LS_oprn_oprt_endtime; end if; --手术操作结束时间为空,手术操作开始时间不为空 if LS_oprn_oprt_endtime is null and LS_oprn_oprt_begntime is not null then LS_oprn_oprt_endtime:=LS_oprn_oprt_begntime; end if; if LS_anst_endtime is null and LS_anst_begntime is not null then LS_anst_endtime:=LS_anst_begntime; end if; 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"'||':'||'"'||LS_oprn_oprt_begntime||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"oprn_oprt_endtime"'||':'||'"'||LS_oprn_oprt_endtime||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"anst_begintime"'||':'||'"'||LS_anst_begntime||'"'||','; LS_oprninfo_Json:=LS_oprninfo_Json||'"anst_endtime"'||':'||'"'||LS_anst_endtime||'"'||''; LS_oprninfo_Json:=LS_oprninfo_Json||'}'; --插入ZY_YBJSDX insert into ZY_YBJSDX( YBJKID,JKJDBM,JKJDMC,rid,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','手术操作信息',LS_oprninfo_Num, 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(LS_oprn_oprt_begntime,1,20) as oprn_oprt_begintime, substrb(LS_oprn_oprt_endtime,1,20) as oprn_oprt_endtime, substrb(LS_anst_begntime,1,20) as anst_begintime, substrb(LS_anst_endtime,1,20) as anst_endtime from dual; --插入ZY_YBJKMX insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,LS_oprninfo_Num,'oprninfo','data','oprninfo','手术操作信息',null,null,'1',null,LS_oprninfo_Json from dual; LS_oprninfo_Num:=nvl(LS_oprninfo_Num,0)+1; end loop; end if; --无数据插入一笔空 if nvl(LS_oprninfo_Num,0)=0 then insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,SQ_ZY_YBJKMX_JKMXID.nextval,'oprninfo','data','oprninfo','手术操作信息',null,null,'1',null,LS_oprninfo_Json from dual; end if; end if; /* 重症监护信息开始 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) 重症监护信息结束 */ if LS_jsqd_Notsend_list is null or instrb('|'||LS_jsqd_Notsend_list||'|','|'||'icuinfo'||'|')<=0 then if LS_icuinfo_Num = 0 then 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||'}'; --插入ZY_YBJSDX insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,rid,scs_cutd_ward_type,scs_cutd_inpool_time,scs_cutd_exit_time,scs_cutd_sum_dura) select PYBJKID,'icuinfo','重症监护信息',LS_icuinfo_Num, 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; --插入ZY_YBJKMX insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,LS_icuinfo_Num,'icuinfo','data','icuinfo','重症监护信息',null,null,'1',null,LS_icuinfo_Json from dual; LS_icuinfo_Num:=nvl(LS_icuinfo_Num,0)+1; end loop; end if; --无数据插入一笔空 if nvl(LS_icuinfo_Num,0)=0 then insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select PYBJKID,SQ_ZY_YBJKMX_JKMXID.nextval,'icuinfo','data','icuinfo','重症监护信息',null,null,'1',null,LS_icuinfo_Json from dual; end if; end if; --查询结算单 begin select * into RJSD0 from ZY_YBJSD0 aa where YBJKID=PYBJKID and ZYID00=PZYID00; exception when others then PZXZT00:=0;--[出参]:执行状态 0:失败 1:成功 PERRMSG:='未找到有效数据(ZY_YBJSD0)YBJKID='||PYBJKID;--[出参]:错误信息 return; rollback; end; --生成主项数据 LS_ERRSTR:='生成主项数据'; for C_JKZD in CUR_YBJKZD loop LS_JKFSZ0:=null;--接口发送值 LS_JKFHZ0:=null;--接口返回值 if C_JKZD.SJJGBM='psn_no' then--psn_no 人员编号 LS_JKFSZ0:=RJSD0.psn_no;--接口发送值 elsif C_JKZD.SJJGBM='mdtrt_id' then--1 mdtrt_id 就诊ID varchar2(30) Y =akc190(医保住院号) LS_JKFSZ0:=RJSD0.mdtrt_id; elsif C_JKZD.SJJGBM='setl_id' then--2 setl_id 结算ID varchar2(30) Y =aae072(医保单据号) LS_JKFSZ0:=RJSD0.setl_id; elsif C_JKZD.SJJGBM='fixmedins_name' then--3 fixmedins_name 定点医药机构名称 varchar2(200) Y LS_JKFSZ0:=RJSD0.fixmedins_name;--接口发送值 elsif C_JKZD.SJJGBM='fixmedins_code' then--4 fixmedins_code 定点医药机构编号 varchar2(12) Y LS_JKFSZ0:=RJSD0.fixmedins_code;--接口发送值 elsif C_JKZD.SJJGBM='hi_setl_lv' then--5 hi_setl_lv 医保结算等级 varchar2(3) LS_JKFSZ0:=nvl(substrb(RJSD0.hi_setl_lv,1,250),'1');--接口发送值 elsif C_JKZD.SJJGBM='hi_no' then--6 hi_no 医保编号 varchar2(30)   参保人在医保系统中的唯一身份代码 LS_JKFSZ0:=RJSD0.hi_no;--接口发送值 elsif C_JKZD.SJJGBM='medcasno' then--7 medcasno 病案号 varchar2(40) Y LS_JKFSZ0:=RJSD0.medcasno;--接口发送值   elsif C_JKZD.SJJGBM='dcla_time' then--8 dcla_time 申报时间 number(14)   结算清单上报时间 LS_JKFSZ0:=RJSD0.dcla_time;--接口发送值 elsif C_JKZD.SJJGBM='psn_name' then--9 psn_name 人员姓名 varchar2(50) Y LS_JKFSZ0:=RJSD0.psn_name;--接口发送值   elsif C_JKZD.SJJGBM='gend' then--10 gend 性别 varchar2(6) Y 1:男 2:女 9:未说明性别 LS_JKFSZ0:=RJSD0.gend; elsif C_JKZD.SJJGBM='brdy' then--11 brdy 出生日期 number(8) Y  LS_JKFSZ0:=RJSD0.brdy;--接口发送值 elsif C_JKZD.SJJGBM='age' then--12 age 年龄 number(4,1) 大于1岁(含1岁)时必填,单位岁 LS_JKFSZ0:=RJSD0.age;--接口发送值 elsif C_JKZD.SJJGBM='ntly' then--13 ntly 国籍 varchar2(6)  Y 参照字典nat_regn_code LS_JKFSZ0:=RJSD0.ntly;--接口发送值 elsif C_JKZD.SJJGBM='nwb_age' then--14 nwb_age (年龄不足1周岁)年龄 number(3)   小于1岁时必填,单位天 LS_JKFSZ0:=RJSD0.nwb_age;--接口发送值 elsif C_JKZD.SJJGBM='naty' then--15 naty 民族 varchar2(3) Y LS_JKFSZ0:=RJSD0.naty;--接口发送值 elsif C_JKZD.SJJGBM='patn_cert_type' then--16 patn_cert_type 患者证件类别 varchar2(3) Y LS_JKFSZ0:=RJSD0.patn_cert_type;--接口发送值  elsif C_JKZD.SJJGBM='certno' then--17 certno 证件号码 varchar2(50) Y 患者证件号码 LS_JKFSZ0:=RJSD0.certno;--接口发送值 elsif C_JKZD.SJJGBM='prfs' then--18 prfs 职业 varchar2(6) Y LS_JKFSZ0:=RJSD0.prfs; elsif C_JKZD.SJJGBM='curr_addr' then--19 curr_addr 现住址 varchar2(200) LS_JKFSZ0:=RJSD0.curr_addr; elsif C_JKZD.SJJGBM='emp_name' then--20 emp_name 单位名称 varchar2(200) LS_JKFSZ0:=RJSD0.emp_name; elsif C_JKZD.SJJGBM='emp_addr' then--21 emp_addr 单位地址 varchar2(200) LS_JKFSZ0:=RJSD0.emp_addr;--接口发送值    elsif C_JKZD.SJJGBM='emp_tel' then--22 emp_tel 单位电话 varchar2(50) LS_JKFSZ0:=RJSD0.emp_tel;--接口发送值    elsif C_JKZD.SJJGBM='poscode' then--23 poscode 邮编 varchar2(6) LS_JKFSZ0:=RJSD0.poscode;--接口发送值    elsif C_JKZD.SJJGBM='coner_name' then--24 coner_name 联系人姓名 varchar2(50) Y  LS_JKFSZ0:=RJSD0.coner_name;--接口发送值   elsif C_JKZD.SJJGBM='patn_rlts' then--25 patn_rlts 与患者关系 varchar2(6) Y  LS_JKFSZ0:=RJSD0.patn_rlts; elsif C_JKZD.SJJGBM='coner_addr' then--26 coner_addr 联系人地址 varchar2(200) Y LS_JKFSZ0:=RJSD0.coner_addr;--接口发送值    elsif C_JKZD.SJJGBM='coner_tel' then--27 coner_tel 联系人电话 varchar2(50) Y  LS_JKFSZ0:=RJSD0.coner_tel;--接口发送值 elsif C_JKZD.SJJGBM='hi_type' then--28 hi_type 医保类型 varchar2(3) Y  参照字典MDCS_TYPE LS_JKFSZ0:=RJSD0.hi_type;--接口发送值 elsif C_JKZD.SJJGBM='insuplc' then--29 insuplc 参保地 varchar2(6) Y LS_JKFSZ0:=nvl(trim(RBRXX.XZQH00),LS_NullStr);--接口发送值  elsif C_JKZD.SJJGBM='sp_psn_type' then--30 sp_psn_type 特殊人员类型 varchar2(6) LS_JKFSZ0:=RJSD0.sp_psn_type;--接口发送值 elsif C_JKZD.SJJGBM='nwb_admtype' then--31 nwb_admtype 新生儿入院类型 varchar2(3) LS_JKFSZ0:=RJSD0.nwb_adm_type;--接口发送值    elsif C_JKZD.SJJGBM='nwbbirwt' then--32 nwbbirwt 新生儿出生体重 number(6,2)   精确到10克(g) LS_JKFSZ0:=RJSD0.nwbbirwt;--接口发送值 elsif C_JKZD.SJJGBM='nwb_adm_wt' then--33 nwb_adm_wt 新生儿入院体重 number(6,2)   精确到10克(g) LS_JKFSZ0:=RJSD0.nwbadmwt;--接口发送值 elsif C_JKZD.SJJGBM='mul_nwb_bir_wt' then--mul_nwb_bir_wt 多新生儿出生体重 LS_JKFSZ0:=RJSD0.mul_nwb_bir_wt;--接口发送值 elsif C_JKZD.SJJGBM='mul_nwb_adm_wt' then--33 mul_nwb_adm_wt 多新生儿入院体重 LS_JKFSZ0:=RJSD0.mul_nwb_adm_wt;--接口发送值 elsif C_JKZD.SJJGBM='opsp_diag_caty' then--34 opsp_diag_caty 门诊慢特病诊断科别 varchar2(50) LS_JKFSZ0:=RJSD0.opsp_diag_caty;--接口发送值   elsif C_JKZD.SJJGBM='opsp_mdtrt_date' then--35 opsp_mdtrt_date 门诊慢特病就诊日期 number(8) LS_JKFSZ0:=RJSD0.opsp_mdtrt_date;--接口发送值  elsif C_JKZD.SJJGBM='ipt_med_type' then--36 ipt_med_type 住院医疗类型 varchar2(3) [1:住院 2:日间手术] LS_JKFSZ0:=RJSD0.ipt_med_type;--接口发送值 elsif C_JKZD.SJJGBM='adm_way' then--37 adm_way 入院途径 varchar2(3)[1:急诊 2:门诊 3:其他医疗机构转入 9:其他] LS_JKFSZ0:=RJSD0.adm_way;--接口发送值     elsif C_JKZD.SJJGBM='trt_type' then--38 trt_type 治疗类别 varchar2(3) [1:西医 2.1:中医 2.2:民族医 3:中西医] LS_JKFSZ0:=RJSD0.trt_type;--接口发送值    elsif C_JKZD.SJJGBM='adm_time' then--39 adm_time 入院时间 number(14) LS_JKFSZ0:=RJSD0.adm_time;--接口发送值   elsif C_JKZD.SJJGBM='adm_caty' then--40 adm_caty 入院科别 varchar2(6) 参照科室代码(dept)当住院医疗类型(ipt_med_type)不为空时必填 LS_JKFSZ0:=RJSD0.adm_caty;--接口发送值 elsif C_JKZD.SJJGBM='refldept_dept' then--41 refldept_dept 转科科别 varchar2(6)   参照科室代码(dept),如果超过一次以上的转科,用“→”转接表示 LS_JKFSZ0:=RJSD0.refldept_dept;--接口发送值 elsif C_JKZD.SJJGBM='dscg_time' then--42 dscg_time 出院时间 number(14) LS_JKFSZ0:=RJSD0.dscg_time;--接口发送值   elsif C_JKZD.SJJGBM='dscg_caty' then--43 dscg_caty 出院科别 varchar2(6) Y  参照科室代码(dept)当住院医疗类型(ipt_med_type)不为空时必填 LS_JKFSZ0:=RJSD0.dscg_caty;--接口发送值 elsif C_JKZD.SJJGBM='act_ipt_days' then--44 act_ipt_days 实际住院天数 number(3) LS_JKFSZ0:=RJSD0.act_ipt_days;--接口发送值     elsif C_JKZD.SJJGBM='otp_wm_dise' then--45 otp_wm_dise 门(急)诊西医诊断 varchar2(200) LS_JKFSZ0:=RJSD0.otp_wm_dise;--接口发送值    elsif C_JKZD.SJJGBM='wm_dise_code' then--46 wm_dise_code 西医诊断疾病代码 varchar2(20) LS_JKFSZ0:=RJSD0.wm_dise_code;--接口发送值   elsif C_JKZD.SJJGBM='otptcmdise' then--47 otptcmdise 门(急)诊中医诊断 varchar2(200) LS_JKFSZ0:=RJSD0.otp_wm_dise;--接口发送值    elsif C_JKZD.SJJGBM='tcmdisecode' then--48 tcmdisecode 中医诊断代码 varchar2(20) LS_JKFSZ0:=RJSD0.otp_tcm_dise;--接口发送值  elsif C_JKZD.SJJGBM='diag_code_cnt' then--49 diag_code_cnt 诊断代码计数 number(3) LS_JKFSZ0:=RJSD0.diag_code_cnt;--接口发送值    elsif C_JKZD.SJJGBM='oprn_oprt_code_cnt' then--50 oprn_oprt_code_cnt 手术操作代码计数 number(3) LS_JKFSZ0:=RJSD0.oprn_oprt_code_cnt;--接口发送值    elsif C_JKZD.SJJGBM='vent_used_dura' then--51 vent_used_dura 呼吸机使用时长 varchar2(10)   格式:天数/小时数/分钟数例:1/13/24 LS_JKFSZ0:=RJSD0.vent_used_dura;--接口发送值 elsif C_JKZD.SJJGBM='pwcry_bfadm_coma_dura' then--52 pwcry_bfadm_coma_dura 颅脑损伤患者入院前昏迷时长 varchar2(10)   格式:天数/小时数/分钟数例:1/13/24 LS_JKFSZ0:=RJSD0.pwcry_bfadm_coma_dura;--接口发送值 elsif C_JKZD.SJJGBM='pwcry_afadm_coma_dura' then--53 pwcry_afadm_coma_dura 颅脑损伤患者入院后昏迷时长 varchar2(10)   格式:天数/小时数/分钟数例:1/13/24 LS_JKFSZ0:=RJSD0.pwcry_afadm_coma_dura;--接口发送值 elsif C_JKZD.SJJGBM='bld_cat' then--54 bld_cat 输血品种 varchar2(3) LS_JKFSZ0:=RJSD0.bld_cat;--接口发送值    elsif C_JKZD.SJJGBM='bld_amt' then--55 bld_amt 输血量 number(6) LS_JKFSZ0:=RJSD0.bld_amt;--接口发送值    elsif C_JKZD.SJJGBM='bld_unt' then--56 bld_unt 输血计量单位 varchar2(3) LS_JKFSZ0:=RJSD0.bld_unt;--接口发送值    elsif C_JKZD.SJJGBM='spga_nurscare_days' then--57 spga_nurscare_days 特级护理天数 number(3) LS_JKFSZ0:=RJSD0.spga_nurscare_days;--接口发送值    elsif C_JKZD.SJJGBM='lv1_nurscare_days' then--58 lv1_nurscare_days 一级护理天数 number(3) LS_JKFSZ0:=RJSD0.lv1_nurscare_days;--接口发送值    elsif C_JKZD.SJJGBM='scd_nurscare_days' then--59 scd_nurscare_days 二级护理天数 number(3) LS_JKFSZ0:=RJSD0.scd_nurscare_days;--接口发送值    elsif C_JKZD.SJJGBM='lv3_nurscare_days' then--60 lv3_nurscare_days 三级护理天数 number(3) LS_JKFSZ0:=RJSD0.lv3_nurscare_days;--接口发送值    elsif C_JKZD.SJJGBM='dscg_way' then--61 dscg_way 离院方式 varchar2(3) [1:医嘱离院 2:医嘱转院 3:医嘱转社区卫生服务机构/乡镇卫生院 4:非医嘱离院 5:死亡 9:其他] LS_JKFSZ0:=RJSD0.dscg_way;--接口发送值    elsif C_JKZD.SJJGBM='acp_medins_name' then--62 acp_medins_name 拟接收机构名称 varchar2(100)   --当离院方式为“2”时,如果接收患者的医疗机构明确,需要填写转入医疗机构的名称;当离院方式为“3”时,如果接收患者的社区卫生服务机构明确,需要填写社区卫生服务机构/乡镇卫生院名称 LS_JKFSZ0:=RJSD0.acp_medins_name;--接口发送值 elsif C_JKZD.SJJGBM='acp_optins_code' then--63 acp_optins_code 拟接收机构代码 varchar2(30)   --当离院方式为“2”或“3”时,如果接收患者的医疗机构或社区卫生服务机构明确,需要填写机构对应的医保定点医疗机构代码 LS_JKFSZ0:=RJSD0.acp_optins_code;--接口发送值 elsif C_JKZD.SJJGBM='bill_code' then--64 bill_code 票据代码 varchar2(50) Y LS_JKFSZ0:=RJSD0.bill_code;--接口发送值 elsif C_JKZD.SJJGBM='bill_no' then--65 bill_no 票据号码 varchar2(30) Y LS_JKFSZ0:=RJSD0.bill_no;--接口发送值 elsif C_JKZD.SJJGBM='biz_sn' then--66 biz_sn 业务流水号 varchar2(50) Y 业务流水号 LS_JKFSZ0:=RJSD0.biz_sn;--接口发送值 elsif C_JKZD.SJJGBM='days_rinp_flag_31' then--67 days_rinp_flag_31 出院31天内再住院计划标志 varchar2(3) 1.无 2.有 LS_JKFSZ0:=RJSD0.days_rinp_flag_31;--接口发送值  elsif C_JKZD.SJJGBM='days_rinp_pup_31' then--68 days_rinp_pup_31 出院31天内再住院目的 varchar2(200) LS_JKFSZ0:=RJSD0.days_rinp_pup_31;--接口发送值    elsif C_JKZD.SJJGBM='chfpdr_name' then--69 chfpdr_name 主诊医师姓名 varchar2(50) LS_JKFSZ0:=RJSD0.chfpdr_name;--接口发送值    elsif C_JKZD.SJJGBM='chfpdr_code' then--70 chfpdr_code 主诊医师代码 varchar2(30)   主诊医师在《医保医师代码》中的代码,在就医地未完成标准化前,可传医师在就医地系统中的唯一编号 LS_JKFSZ0:=RJSD0.chfpdr_code;--接口发送值 elsif C_JKZD.SJJGBM='setl_begn_date' then--71 setl_begn_date 结算开始日期 number(8) Y  LS_JKFSZ0:=RJSD0.setl_begn_date;--接口发送值 elsif C_JKZD.SJJGBM='setl_end_date' then--72 setl_end_date 结算结束日期 number(8) Y  LS_JKFSZ0:=RJSD0.setl_end_date;--接口发送值 elsif C_JKZD.SJJGBM='psn_selfpay' then--73 psn_selfpay 个人自付 number(16,2) Y LS_JKFSZ0:=RJSD0.psn_selfpay;--接口发送值    elsif C_JKZD.SJJGBM='psn_ownpay' then--74 psn_ownpay 个人自费 number(16,2) Y  LS_JKFSZ0:=RJSD0.psn_ownpay;--接口发送值   elsif C_JKZD.SJJGBM='acct_pay' then--75 acct_pay 个人账户支出 number(16,2) Y LS_JKFSZ0:=RJSD0.acct_pay;--接口发送值    elsif C_JKZD.SJJGBM='psn_cashpay' then--76 psn_cashpay 个人现金支付 number(16,2) Y  LS_JKFSZ0:=RJSD0.psn_cashpay;--接口发送值   elsif C_JKZD.SJJGBM='hi_paymtd' then--77 hi_paymtd 医保支付方式 varchar2(3) Y [1:按项目 2:单病种 3:按病种分值 4:基本诊断相关分组(DRG) 5:按床日 6:按人次 7:按定额 9:其他] LS_JKFSZ0:=RJSD0.hi_paymtd; elsif C_JKZD.SJJGBM='hsorg' then--78 hsorg 医保机构 varchar2(100) Y LS_JKFSZ0:=RJSD0.hsorg_name;--接口发送值 elsif C_JKZD.SJJGBM='hsorg_opter' then--79 hsorg_opter 医保机构经办人 varchar2(50) Y LS_JKFSZ0:=RJSD0.hsorg_opter;--接口发送值 elsif C_JKZD.SJJGBM='medins_fill_dept' then--80 medins_fill_dept 医疗机构填报部门 varchar2(100) Y  LS_JKFSZ0:=RJSD0.medins_fill_dept;--接口发送值   elsif C_JKZD.SJJGBM='medins_fill_psn' then--81 medins_fill_psn 医疗机构填报人 varchar2(50) LS_JKFSZ0:=RJSD0.medins_fill_psn;--接口发送值  elsif C_JKZD.SJJGBM='resp_nurs_name' then--82 resp_nurs_name 责任护士姓名 varchar2(50) LS_JKFSZ0:=RJSD0.resp_nurs_name;--接口发送值     elsif C_JKZD.SJJGBM='resp_nurs_code' then--83 resp_nurs_code 责任护士代码 varchar2(30)   责任护士在《医保护士代码》中的代码,在就医地未完成标准化前,可传护士在就医地系统中的唯一编号 LS_JKFSZ0:=RJSD0.resp_nurs_code;--接口发送值 elsif C_JKZD.SJJGBM='stas_type' then--状态分类[0未提交,1已提交,2审核通过,3审核不通过] LS_JKFSZ0:=RJSD0.stas_type;--接口发送值 end if; --拼接json字符 LS_VALUE0:=substrb('"'||trim(C_JKZD.SJJGBM)||'"'||':'||'"'||trim(LS_JKFSZ0)||'"',1,4000); if trim(LS_setlinfo_Json) is null then LS_setlinfo_Json:=substrb(LS_VALUE0,1,4000); else LS_setlinfo_Json:=substrb(LS_setlinfo_Json||','||LS_VALUE0, 1,4000); end if; if trim(LS_MainNodeName) is null then --主项节点编码 insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select PYBJKID,SQ_ZY_YBJKMX_JKMXID.nextval,'data',null,substrb(C_JKZD.SJJGBM,1,50),substrb(C_JKZD.SJJGMC,1,100), LS_JKFSZ0,LS_JKFHZ0,'1',substrb(C_JKZD.BZ0000,1,200) from dual; end if; end loop; --结算清单信息开始 if trim(LS_MainNodeName) is not null and trim(LS_setlinfo_Json) is not null then --主项节点编码 LS_setlinfo_Json:=substrb('{'||LS_setlinfo_Json||'}', 1,4000); insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0,ZDLX00) select PYBJKID,LS_payinfo_Num,LS_MainNodeName,'data',LS_MainNodeName,'结算清单信息',null,null,'D',null,LS_setlinfo_Json,'D' from dual; end if; --修改ZY_YBJKRZ update ZY_YBJKRZ set AAZ500=LS_AAZ500,--社会保障卡号 AAC002=LS_AAC002,--证件号码(社会保障号) AAC999=LS_AAC999,--个人管理码 AAC003=LS_AAC003,--姓名 AAC004=LS_AAC004,--性别编码 AAC004_MC=LS_AAC004_MC,--性别名称 AAC006=LS_AAC006,--出生日期 AAZ149=LS_AAZ149,--病种编码 AKC227=LS_AKC227,--医疗费总金额 BKC102=LS_BKC102,--基金支付总额 BKC041=LS_BKC041,--个人账户支付金额 BKC040=LS_BKC040,--个人现金支付金额(实付现金) AKA151=LS_AKA151,--统筹支付医保费用起付标准 BKC045=LS_BKC045,--其中:统筹基金支付 BKC052=LS_BKC052,--其中:商保基金支付(大额补充) BKC059=LS_BKC059,--其中:公务员医疗补助 BKC062=LS_BKC062,--其中:精准扶贫医疗叠加 BKC060=LS_BKC060,--其中:医疗救助基金 AKE173=LS_AKE173,--其中:其他基金支付 AKE026=LS_AKE026,--其中:企业补充 BKC075=LS_BKC075,--家庭共济账户支付 BKC011=LS_BKC011,--个人自费(非医保费用) BKC166=LS_BKC166,--(其中)一般诊疗费补偿金额 BKC167=LS_BKC167,--(其中)一般诊疗费个人支付金额 BKC612=LS_BKC612,--补助基金支付 BKC061=LS_BKC061,--其中:保健基金支付 BKC076=LS_BKC076,--其中:健康账户支付 BKZFE0=LS_BKZFE0,--三明离休b卡支付额 BKZHYE=LS_BKZHYE,--三明离休b卡账户余额 BKC079=LS_BKC079,--健康账户余额 BKC053=LS_BKC053,--商保现金支付 BKC054=LS_BKC054,--商保账户支付 BKC101=LS_BKC101,--除外耗材费用 BKC125=LS_BKC125,--超标床位费用 BKE361=LS_BKE361,--普门累计或特门累计 BKC064=LS_BKC064,--产前检查费 BKC620=LS_BKC620,--(本地)成员共济账户支付 BKC619=LS_BKC619,--(异地)成员共济账户支付 BKEH73=LS_BKEH73,--职工医疗费补助 BKC048=LS_BKC048,--处级及以上干部补助 DRGZFE=LS_DRGZFE,--DRG付费标准 BKEG12=LS_BKEG12,--bkeg12:他人共济支付 FYBFY0=LS_FYBFY0,--fybfy0:含超标准床位费和超标准耗材费 GHHZJE=LS_GHHZJE --ghhzje:工会互助补助金额 where YBJKID=PYBJKID and ZYID00=PZYID00; end if; if PDATALX in (0,2,9) then --:数据获取类型 0:HIS内部直接生成 1:获取海泰drg更新数据[医保交互后] 2:更新部分[医保交互后] 9:清单上传 --查询列表数据,无插入一笔空尽量,以便打印显示 --基金支付信息开始:LS_payinfo_Num select count(1) into LS_payinfo_Num from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='payinfo'; --无数据插入一笔空 if nvl(LS_payinfo_Num,0)=0 then insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC)values(PYBJKID,'payinfo','基金支付信息'); end if; --门诊慢特病诊断信息开始 select count(1) into LS_opspdiseinfo_Num from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='opspdiseinfo'; --无数据插入一笔空 if nvl(LS_opspdiseinfo_Num,0)=0 then insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID)values(PYBJKID,'opspdiseinfo','门诊慢特病诊断信息','1'); insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID)values(PYBJKID,'opspdiseinfo','门诊慢特病诊断信息','2'); insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID)values(PYBJKID,'opspdiseinfo','门诊慢特病诊断信息','3'); end if; --住院诊断信息< diseinfo>开始 select count(1) into LS_diseinfo_Num from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='diseinfo'; --无数据插入一笔空 if nvl(LS_diseinfo_Num,0)=0 then --maindiag_flag:主诊断标志 0:否' '1','是'--主 insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID,maindiag_flag,diag_code,diag_name,diag_code_zy,diag_name_zy) select PYBJKID,'diseinfo','住院诊断信息','1','1', '' as diag_code, '主要诊断:' as diag_name, '' as diag_code_zy, '主病:' as diag_name_zy from dual; --maindiag_flag:主诊断标志 0:否' '1','是'--次 insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID,maindiag_flag,diag_code,diag_name,diag_code_zy,diag_name_zy) select PYBJKID,'diseinfo','住院诊断信息','2','0', '' as diag_code, '其他诊断:' as diag_name, '' as diag_code_zy, '主证:' as diag_name_zy from dual; --次 insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID,maindiag_flag,diag_code,diag_name,diag_code_zy,diag_name_zy) select PYBJKID,'diseinfo','住院诊断信息','3','0', '' as diag_code, '' as diag_name, '' as diag_code_zy, '' as diag_name_zy from dual; else --整理数据, LS_diag_code_zy:=null;--住院诊断信息.中医诊断代码 LS_diag_name_zy:=null;--住院诊断信息.中医诊断诊断名称 LS_adm_cond_type_zy:=null;--住院诊断信息.中医入院病情类型 LS_adm_cond_type_zy_mc:=null;--住院诊断信息.中医入院病情名称 LS_PXXH00:=0; --diag_type 1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 select count(1) into LS_XYZDNUM from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('1'); --西医诊断数量 select count(1) into LS_ZYZDNUM from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type not in ('1'); --中医诊断数量 select count(1) into LS_ZYZBZDNUM from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('2');--中医主病诊断 select count(1) into LS_ZYZZZDNUM from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('3');--中医主证诊断 /* --整理数据查找中医诊断 for C_data in( select * from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('1') order by maindiag_flag desc ) loop --diag_type 1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 --maindiag_flag:主诊断标志 0:否' '1','是' if C_data.diag_name is not null then if C_data.maindiag_flag='1' then if nvl(LS_ZYZBZDNUM,0)=0 then LS_diag_name_zy:='主病:'; end if; update ZY_YBJSDX set diag_name='主要诊断:'||substrb(C_data.diag_name,1,90), diag_code_zy=LS_diag_code_zy, --住院诊断信息.中医诊断代码 diag_name_zy=LS_diag_name_zy, --住院诊断信息.中医诊断诊断名称 adm_cond_type_zy=LS_adm_cond_type_zy, --住院诊断信息.中医入院病情类型 adm_cond_type_zy_mc=LS_adm_cond_type_zy_mc --住院诊断信息.中医入院病情名称 where YBJKID=PYBJKID and JKJDBM='diseinfo' and rid=C_data.rid; else if nvl(LS_ZYZZZDNUM,0)=0 then LS_diag_name_zy:='主证:'; end if; update ZY_YBJSDX set diag_name='其他诊断:'||substrb(C_data.diag_name,1,90), diag_code_zy=LS_diag_code_zy, --住院诊断信息.中医诊断代码 diag_name_zy=LS_diag_name_zy, --住院诊断信息.中医诊断诊断名称 adm_cond_type_zy=LS_adm_cond_type_zy, --住院诊断信息.中医入院病情类型 adm_cond_type_zy_mc=LS_adm_cond_type_zy_mc --住院诊断信息.中医入院病情名称 where YBJKID=PYBJKID and JKJDBM='diseinfo' and rid=C_data.rid; end if; end if; LS_PXXH00:=nvl(LS_PXXH00,0)+1; end loop; */ --diag_type:1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 maindiag_flag:主诊断标志 0:否' '1','是' update ZY_YBJSDX a set diag_name=substrb(diag_name,1,90) where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('1') --1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 and maindiag_flag in ('1') --主诊断标志 0:否' '1','是' and diag_name is not null ; --diag_type:1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 maindiag_flag:主诊断标志 0:否' '1','是' update ZY_YBJSDX a set diag_name=substrb(diag_name,1,90) where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('1') --1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 and maindiag_flag not in ('1') --主诊断标志 0:否' '1','是' and diag_name is not null ; --更新中医主病诊断--beign--1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 update ZY_YBJSDX a set diag_code_zy=diag_code, --住院诊断信息.中医诊断代码 diag_name_zy=substrb(diag_name,1,90), --住院诊断信息.中医诊断诊断名称 adm_cond_type_zy=adm_cond_type, --住院诊断信息.中医入院病情类型 adm_cond_type_zy_mc=(select aa.sxsm00 from bm_ybsxzd aa where aa.sxbm00='adm_cond_type' and aa.jkbm00=2 and aa.VALUE0=nvl(a.adm_cond_type,'4')) --住院诊断信息.中医入院病情名称 where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('2') and diag_name is not null ; --更新写改为空值 update ZY_YBJSDX a set diag_code=null, diag_name=null, adm_cond_type=null where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('2') and diag_name is not null ; --更新中医主病诊断--end-- --更新中医主病诊断--beign--1:西医诊断 2:中医主病诊断 3:中医主证诊断 4:手术操作 update ZY_YBJSDX a set diag_code_zy=diag_code, --住院诊断信息.中医诊断代码 diag_name_zy=substrb(diag_name,1,90), --住院诊断信息.中医诊断诊断名称 adm_cond_type_zy=adm_cond_type, --住院诊断信息.中医入院病情类型 adm_cond_type_zy_mc=(select aa.sxsm00 from bm_ybsxzd aa where aa.sxbm00='adm_cond_type' and aa.jkbm00=2 and aa.VALUE0=nvl(a.adm_cond_type,'4')) --住院诊断信息.中医入院病情名称 where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('3') and diag_name is not null ; --更新写改为空值 update ZY_YBJSDX a set diag_code=null, diag_name=null, adm_cond_type=null where YBJKID=PYBJKID and JKJDBM='diseinfo' and diag_type in ('3') and diag_name is not null ; --更新中医主病诊断--end-- if nvl(LS_diseinfo_Num,0)=1 then --如果只有一个诊断 --maindiag_flag:主诊断标志 0:否' '1','是'--次 insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID,maindiag_flag,diag_code,diag_name,diag_code_zy,diag_name_zy) select PYBJKID,'diseinfo','住院诊断信息','2','0', '' as diag_code, '其他诊断:' as diag_name, '' as diag_code_zy, '主证:' as diag_name_zy from dual; --次 insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID,maindiag_flag,diag_code,diag_name,diag_code_zy,diag_name_zy) select PYBJKID,'diseinfo','住院诊断信息','3','0', '' as diag_code, '' as diag_name, '' as diag_code_zy, '' as diag_name_zy from dual; elsif nvl(LS_diseinfo_Num,0)=2 then insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID,maindiag_flag,diag_code,diag_name,diag_code_zy,diag_name_zy) select PYBJKID,'diseinfo','住院诊断信息','3','0', '' as diag_code, '' as diag_name, '' as diag_code_zy, '' as diag_name_zy from dual; end if; end if; --收费项目信息开始 select count(1) into LS_iteminfo_Num from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='iteminfo'; --无数据插入一笔空 if nvl(LS_iteminfo_Num,0)=0 then insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC)values(PYBJKID,'iteminfo','收费项目信息'); end if; --补全发票明细 insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,med_chrgitm_type,adm_cond_type_mc,amt,claa_sumfee,clab_amt,fulamt_ownpay_amt,oth_amt) select PYBJKID,'iteminfo','收费项目信息',substrb(b.VALUE0,1,10) as MED_CHRGITM_TYPE,SXSM00 as adm_cond_type_mc, 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 b.VALUE0 not in ('90','91','92') and substrb(VALUE0,1,10) not in (select nvl(A.med_chrgitm_type,'14') from ZY_YBJSDX a where a.YBJKID=PYBJKID and a.JKJDBM='iteminfo') ; --手术操作信息开始 select count(1) into LS_oprninfo_Num from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='oprninfo'; --无数据插入一笔空 if nvl(LS_oprninfo_Num,0)=0 then --主要手术及操作名称 main_oprn_flag:手术操作信息.主要手术标志 1:主要手术及操作' '2','其他手术及操作' insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID,main_oprn_flag,xmlstr)values(PYBJKID,'oprninfo','手术操作信息','0','1',''); --其他手术及操作名称 1 insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID,main_oprn_flag,xmlstr)values(PYBJKID,'oprninfo','手术操作信息','1','2','1'); --其他手术及操作名称 2 insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID,main_oprn_flag,xmlstr)values(PYBJKID,'oprninfo','手术操作信息','2','2','2'); else --整理数据,把主手术放在第一个 LS_PXXH00:=0; for C_data in( select * from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='oprninfo' order by main_oprn_flag,RID ) loop if C_data.main_oprn_flag='2' then update ZY_YBJSDX set xmlstr=''||LS_PXXH00||'' where YBJKID=PYBJKID and JKJDBM='oprninfo' and rid=C_data.rid; end if; LS_PXXH00:=nvl(LS_PXXH00,0)+1; end loop; end if; --重症监护信息开始 select count(1) into LS_icuinfo_Num from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='icuinfo'; --无数据插入一笔空 if nvl(LS_icuinfo_Num,0)=0 then insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID)values(PYBJKID,'icuinfo','重症监护信息','1'); insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID)values(PYBJKID,'icuinfo','重症监护信息','2'); insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID)values(PYBJKID,'icuinfo','重症监护信息','3'); end if; --输血信息 select count(1) into LS_bldinfo_Num from ZY_YBJSDX where YBJKID=PYBJKID and JKJDBM='bldinfo'; if nvl(LS_bldinfo_Num,0)=0 then insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID)values(PYBJKID,'bldinfo','输血信息','1'); insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID)values(PYBJKID,'bldinfo','输血信息','2'); insert into ZY_YBJSDX(YBJKID,JKJDBM,JKJDMC,RID)values(PYBJKID,'bldinfo','输血信息','3'); end if; update ZY_YBJSD0 set payinfo_num=nvl(LS_payinfo_num,0), --基金支付信息_记录数 opspdiseinfo_num=nvl(LS_opspdiseinfo_num,0),--门诊慢特病诊断信息_记录数 diseinfo_num=nvl(LS_diseinfo_num,0), --住院诊断信息_记录数 iteminfo_num=nvl(LS_iteminfo_num,0), --收费项目信息_记录数 oprninfo_num=nvl(LS_oprninfo_num,0), --手术操作信息_记录数 icuinfo_num=nvl(LS_icuinfo_num,0), --重症监护信息_记录数 bldinfo_num=nvl(LS_bldinfo_num,0) --输血信息_记录数 where YBJKID=PYBJKID and ZYID00=PZYID00; 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;