create or replace procedure SP_SST_JSDP_JSMX_YKT( --入参 P_ZDBH00 in varchar2, --终端编号 P_FZXBH0 in varchar2, --参保机构编号(DD:多点结算 YD:移动结算 YB:医保结算) P_YYJGDM in varchar2, --医院机构代码(员工编码) P_CARDTYPE in varchar2, --0 代表院内卡 1 代表社保卡 P_CARDNO in varchar2, --IC卡号 P_BYRC00 in varchar2, --备用入参 P_ERRMSG out varchar2 --出错信息 ) as -- MODIFICATION HISTORY -- Person Date Comments -- zhangyc 2012.04.27 create; -- zhangyc 2014.01.01 重新整理脚本 -- zhangyc 2014.01.21 插入yjjye0 -- zhangyc 2014.03.31 修改有特殊病种并且挂号费和诊查费在yj_yw0000表中导致分开结算问题(如果只有一个病种时一次性结算) -- zhangyc 2014.04.10 修正两个特殊病种以上结算时挂号费和诊查费非在YJ_YW000表中没有挂到其中一个病种中 --zhangyc 2014.05.05 修改有2个以上病种并且挂号费和诊查费到YJ_YW0000表中整理数据问题 by ZZJJK-20140505-001 --zhangyc 2014.06.30 修正特殊病种分开结算(同一个挂号下,两个处方一个有特殊病种一个无特殊病种分开结算) --zhangyc 2014.07.01 增加孕妇(BM_BRGMXX.DM0000='001')判断 这类病人不允许在自助机上结算(省二) --zhangyc 2015.05.11 写入MZLSH0(=SF_BRXXB0.YBGHH0)不为0时 SFXTGH=N 否则= '' by MZSF-20150506-002 --zhangyc 2015.12.08 增加写入如果特殊病种编码不为空SFTSMZ=N 否则 SFTSMZ=Y --zhangyc 2015.12.15 增加写其它信息FBBH00,YBZXLB,YBLB00,YBMC00,YBKH00,YBID00 --zhangyc 2015.12.28 增加字段FZXBH0 --zhangyc 2017.01.19 增加循环执行SP_SST_JSDP_DBJSMX_YKT --zhangyc 2017.02.21 增加参数SST_NHBRSFJS 控制农合结算 --zhangyc 2018.01.31 厦门医保接口修改(V2.04) --zhangyc 2018.04.14 非税发票修改 --zhangyc 2018.04.23 病情编码去空格 --zhangyc 2018.06.08 增加两个病种已记账未结算按病种分开结算 by ZZJJK-20180608-001 --zhangyc 2018.06.13 修正bug -- dsm 2018.06.29 增加按药品性质(YPXZ00)结算的功能 for ZZJJK-20180516-001 --zhnagyc 2018.07.09 增加诊断取值VW_SF_BRMZZZ by --zhangyc 2018.10.23 参保机构编号(DD:多点结算 YD:移动结算 YB:医保结算) --dsm 2018.11.22 如果有院内已经记账的,XTGZH0要重新生成,因为要先发送医保结算否则会造成余额不足 --zhangyc 2018.11.29 增加MZLB00和MZLX00取值 --zhangyc 2019.01.10 增加LS_SFTSBZ --zhanyc 2020.04.09 增加非医保获取有效天数参数SST_ZZJGHYXTS_FYB by ZZJJK-20200324-001 --zhangyc 2020.04.14 自助机新医保接口改造 by --zhangyc 2020.05.11 修正LS_YBJKID取值放在LS_XTGZH0 下面 by ZZJJK-20200705-002 --zhangyc 2020.07.09 新医保接口改造 --zhangyc 2020.08.27 增加参数YYKSBMFSLX控制医保科室编码 by ZZJJK-20200826-001 --zhangyc 2020.10.13 bke042:His流水号根据参数LS_HISLSHQZFS赋值跟窗口保持一致 by ZZJJK-20201013-001 --zhangyc 2020.11.24 备用入参PBYRC00增加节点是否生成队列1:不生成 0:生成结算记账状态:Y:记账并结算 M:只记账不结算医保结算状态:Y:医保结算 M:医保转自费结算 by ZZJJK-20201126-001 --zhangyc 2020.11.30 增加参数MZ_AKC192_BKC014_BKC171控制AKC192、BKC014、BKC171是否取挂号日期和时间(同SP_SF_NEWYBJK_YBJKRZ)by ZZJJK-20201130-001 --zhangyc 2021.03.03 整理报文增加bke284、bkeg23, by ZZJJK-20210223-001 --zhangyc 2021.04.14 SST_JSDP_JBXX.id0000取医保YBID00如果身份证是正确的SP_SF_CHECKSFZH(trim(LS_BRZJBH))=1赋值身份证以及 SST_JSDP_JBXX.bke042如果SF_BRXXB0.bke042不为空直接取该值 by ZZJJK-20210414-001 --zhangyc 2021.04.30 增加,多点结算、互联网结算,只结算本挂号对应的处方 --zhangyc 2021.05.27 增加SettlementType判断多点是否只结算本挂号对应的处方 by ZZJJK-20210528-001 --zhangyc 2021.06.02 修正CUR_NEWXGZHG报错以及重新排序后修改:SST_JSDP_DZMX --zhangyc 2021.06.07 增加参数(SST_ZRZY_JSJZZT)控制择日住院只记账不结算(Y:记账并结算 M:只记账不结算) by ZZJJK-20210609-001 --zhangyc 2021.06.10 增加获取,SF_BRXXB0.YBGHHT(医保挂号号(特殊病种)) --zhangyc 2021.07.20 根据参数SF_YBBRFSJE限制结算 by ZZJJK-20210716-001 --zhangyc 2021.08.27 表SST_JSDP_JBXX增加写入BAE465:国家病种代码 --zhangyc 2021.09.02 新医保接口升级 --qiulf 2021.09.23 增加bkb526 by ZZJJK-20210924-001 --zhangyc 2021.10.11 贯标新医保接口修改 --zhangyc 2021.10.15 bkc006,bkc007 (有些项目有护士代入)全部发SF_BRXXB0.JZYS00 --zhangyc 2021.10.20 根据参数mz_akf001_bkf237_type配置(akf001、akf002、bkf237、bkf238)发送不同的值 by ZZJJK-20211021-001 --zhangyc 2021.11.19 增加体检结算功能参数(MZ_Medical_Para),系统参数:SF_TJGHLB by ZZJJK-20211112-001 --zhangyc 2021.12.08 增加通用字典判断(门诊特殊病种转为空值发送字典、门诊统筹不支付特殊病种字典、门诊公务员体检特殊病种字典)判断 --zhangyc 2021.12.22 RB:睿博互联网结算如果前台有传入特地的挂号号,只查询本挂号号对应的数据 --zhangyc 2021.12.23 移动结算接口改造 --zhangyc 2022.01.28 修正bug同一个挂号,非病种处方:AKA121、BQMC00无特殊病种,显示有特殊病种的名称 --zhangyc 2022.03.13 国家医保接口改造 LS_ICKQZMC XT_XTCS00.VALUE0%TYPE; LS_CARDNO IC_YHXX00.ICKH00%TYPE; LS_YGBH00 BM_YGBM00.YGBH00%TYPE; LS_YGXM00 BM_YGBM00.ZWXM00%TYPE; LS_BRID00 BM_BRXXB0.BRID00%TYPE; LS_BRZJBH BM_BRXXB0.BRZJBH%type; LS_YBZXLB IC_YBBRLB.YBZXLB%TYPE;-- BM_YBFPXM.YBZXLB%TYPE; --医保中心类别编码 LS_YBLB00 IC_YBBRLB.YBLB00%type; LS_YBMC00 IC_YBBRLB.YBMC00%type; LS_YBBRLB BM_BRXXB0.YBBRLB%type; --医保病人类别 LS_KSRQ00 char(8); --挂号开始日期 LS_JSRQ00 char(8); --挂号结束日期 LS_COUNT number(10); LS_BRNL00 number(3); --病人年龄 LS_FYJE00 number(12,4); --费用金额 LS_CFJE00 number(12,4); --处方金额 LS_YJJE00 number(12,4); --医技金额 LS_HJJE00 number(12,4); --总金额 LS_YBKH00 BM_BRXXB0.YBKH00%TYPE; --医保卡号 LS_YBID00 BM_BRXXB0.YBID00%type; LS_BRXM00 BM_BRXXB0.BRXM00%TYPE; --病人姓名 LS_BRXB00 BM_BRXXB0.BRXB00%TYPE; --性别 LS_FBBH00 BM_BRXXB0.FBBH00%TYPE; -- LS_XTGZH0 SST_JSDP_JBXX.XTGZH0%type; --系统跟踪号 LS_GHID00 SF_BRXXB0.GHID00%type; LS_GHH000 SF_BRXXB0.GHH000%type; LS_TSBZBH varchar2(20); --特殊病种编号 LS_TSBZBH_ORD varchar2(20); --特殊病种编号(原来) LS_TSBZMC varchar2(50); --特殊病种名称 LS_SFTSMZ VARCHAR2(2); --是否特殊门诊 Y是 N否 LS_SFTSBZ VARCHAR2(2); --是否特殊病种 Y是 N否 LS_SFXNH0 IC_YBBRLB.SFXNH0%TYPE; LS_XJZFFS VARCHAR2(2); --现金支付方式 1、银行委托支付;2、预缴金支付;3、电子钱包支付 LS_SFSYU0 VARCHAR2(2); --是否生育收费 SF_BRXXB0.BXLB00=’ 工伤’ OR SF_BRXXB0.BXLB00=’ 生育’ LS_ZZJGHYXTS number(5);--自助机挂号有效天数(医保) LS_DBJSMX_ERRMSG Varchar2(400); --错误信息 Ls_Errors Varchar2(50); LS_CZRQ00 char(8); LS_CZSJ00 char(8); LS_ZXCS00 number(3); --执行次数 LS_Num number(3); LS_SFLSCF varchar2(10);--SFLSCF 0:处方表数据 1:医技表数据 2:费用表数据 3:中药待煎费 LS_TSBZJSLX varchar2(100);--0:不按病种结算1:病种+挂号费+诊查费2:病种+非病种所有费用 3:按病种结算 LS_YJJYE0 number(12,4); --结算前预交金余额 LS_CFXMS0 number(12,4); --处方项目数 LS_CFXMS1 number(12,4); --处方项目数 LS_CFXMS2 number(12,4); --医技项目数 LS_CFXMS3 number(12,4); --费用项目数 LS_SFFKJS varchar2(10);--是否分开结算 LS_YJFBZ0 number(12,4); --医技非病种费用 LS_YJGHZC number(12,4); --医技挂号费和诊查费 LS_YBGHH0 varchar2(30);--医保挂号 LS_MZLSH0 SST_JSDP_JBXX.MZLSH0%type;--医保挂号 LS_SFXTGH SST_JSDP_JBXX.SFXTGH%type; --是否系统挂号 LS_FZXBH0 Varchar2(20); SST_NHBRSFJS Varchar2(100); LS_PJHM SST_JSDP_JBXX.PJHM%type;--非税票据号码 LS_PJLX SST_JSDP_JBXX.PJLX%type;--非税票据类型 LS_PJZCH SST_JSDP_JBXX.PJZCH%type;--非税票据注册号 LS_JSH SST_JSDP_JBXX.JSH%type;--非税结算号 LS_organ SST_JSDP_JBXX.organ%type;--非税机构代码 LS_service SST_JSDP_JBXX.service%type;--非税交易代码 LS_fpuser SST_JSDP_JBXX.fpuser%type;--非税用户名 LS_fppwd SST_JSDP_JBXX.fppwd%type;--非税密码 LS_FHJG00 SST_JSDP_JBXX.FHJG00%type;--非税返回结果 true执行成功、false执行失败 LS_FHXX00 SST_JSDP_JBXX.FHXX00%type;--非税返回响应信息 LS_SZZW00 SST_JSDP_JBXX.SZZW00%type;--非税数字指纹 LS_JDPH00 SST_JSDP_JBXX.JDPH00%type;--非税机打票号 LS_PJHM00 SST_JSDP_JBXX.PJHM00%type;--非税票据号码 LS_PJLX00 SST_JSDP_JBXX.PJLX00%type;--非税票据类型 LS_PJMC00 SST_JSDP_JBXX.PJMC00%type;--非税票据名称 LS_PJZCH0 SST_JSDP_JBXX.PJZCH0%type;--非税票据注册号 LS_BQZDBM SST_JSDP_JBXX.BQZDBM%type;--病情诊断编码 LS_BQZDMS SST_JSDP_JBXX.BQZDMS%type;--病情诊断描述 --xumz LS_MZLB00 SST_JSDP_JBXX.MZLB00%type;--门诊类别=普通门诊:101 急诊:102 急诊观留床:103 LS_MZLX00 SST_JSDP_JBXX.MZLB00%type;--mzlx00:P-普通门诊 T-特殊门诊 LS_YSZJDJ SST_JSDP_JBXX.YSZJDJ%type;--医生神经等级 LS_PJLYID BM_PJLYQK.PJLYID%type; LS_SFLG00 SF_BRXXB0.SFLG00%type; LS_SFJZLB SF_BRXXB0.SFJZLB%type; LS_AYPXZFKJS varchar2(10); LS_YPXZ00 YF_MZCF00.YPXZ00%type; LS_BRZTQK BM_BRXXB0.BRZTQK%type; SF_FYJSFSZDBM XT_XTCS00.VALUE0%type; --门诊医保病人费用结算是否发送诊断编码和诊断名称 Y:发送 N:不发送 默认值:N不发送 LS_SFYGWD SST_JSDP_JBXX.YSZJDJ%type;--是否医改网点 Y/N LS_XTGZH1 SST_JSDP_JBXX.XTGZH0%type; LS_YJZJE0 ZY_BRFY00.HJJE00%type; LS_COUNTGZ number(5); LS_SST_ZZJGHYXTS_FYB varchar2(100); --非医保结算有效天数参数 LS_FYBGHYXTS number(5); --非医保挂号有效天数 LS_GHLB00 SF_BRXXB0.GHLB00%type;--挂号类别编号=BM_GHLBB0.LBBH00 LS_LBMC00 BM_GHLBB0.LBMC00%type;--挂号类别名称 LS_BRYC00 varchar2(500);--备用入参数 LS_PHDYBZ varchar2(10);--是否生成队列1:不生成 0:生成 LS_JSJZZT varchar2(1);--结算记账状态:Y:记账并结算 M:只记账不结算 LS_YBJSZT varchar2(1);--医保结算状态:Y:医保结算 M:医保转自费结算 LS_GHY000 SF_BRXXB0.GHY000%type;--挂号员编号 LS_GHYXM0 SF_BRXXB0.GHYXM0%type;--挂号员姓名 LS_GHY000_KSBH BM_BMBM00.BMBH00%type;--挂号员(所属科室编号) LS_GHY000_KSMC BM_BMBM00.BMMC00%type;--挂号员(所属科室名称) LS_GHKS00 SF_BRXXB0.GHKS00%type;--挂号科室编码 LS_GHKSMC BM_BMBM00.BMMC00%type;--挂号科室名称 LS_JZKS00 SF_BRXXB0.JZKS00%type;--就诊科室编号 LS_JZKSMC BM_BMBM00.BMMC00%type;--就诊科室名称 LS_JZYS00 SF_BRXXB0.JZYS00%type;--就诊医生编码 LS_JZYSXM SF_BRXXB0.JZYSXM%type;--就诊医生姓名 LS_JZYS00_KSBH BM_BMBM00.BMBH00%type;--就诊医生(所属科室编号) LS_JZYS00_KSMC BM_BMBM00.BMMC00%type;--就诊医生(所属科室名称) LS_YYKSBM BM_BMBM00.YYKSBM%type;--医保科室编码 LS_YBKSMC BM_BMBM00.YBKSMC%type;--医保科室名称 LS_KSYBKS BM_BMBM00.KSYBKS%type;--跨省医保科室编码 LS_YSZJHM BM_YGBM00.YSZJHM%type;--医生证件编码 LS_YSXM00 BM_YGBM00.ZWXM00%type;--医生姓名 LS_YBYGDM BM_YGBM00.YBYGDM%type;--医保医师代码/医保护士代码 LS_SFZBH0 BM_YGBM00.SFZBH0%type;--身份证号 LS_BMKSBH BM_BMBM00.BMBH00%type; --部门科室编码 LS_BMKSMC BM_BMBM00.BMMC00%type; --部门科室名称 --新医保变量 LS_YBJKID SST_JSDP_JBXX.YBJKID%type;--number(12) ,--医保接口ID(HIS内部使用) LS_YBBZ00 SST_JSDP_JBXX.YBBZ00%type;--varchar2(2) ,--自助机填写:医保标志(区分新旧医保)1:新医保,0:旧医保 LS_aaz501 SST_JSDP_JBXX.aaz501%type;--varchar2(32) ,--自助机填写:卡识别码 LS_bke286 SST_JSDP_JBXX.bke286%type;--varchar2(3) ,--自助机填写:结算标识 0:预结算 1:中途结算 2:门诊结算/出院结算 LS_bke241 SST_JSDP_JBXX.bke241%type;--varchar2(3) ,--自助机填写:数据来源 50:收费终端 51:自助终端 52:医生工作站 53:移动支付 LS_aaz500 SST_JSDP_JBXX.aaz500%type;--varchar2(30) ,--his填写:社会保障卡号 LS_aac002 SST_JSDP_JBXX.aac002%type;--varchar2(30) ,--his填写:证件号码(社会保障号) LS_aac003 SST_JSDP_JBXX.aac003%type;--varchar2(50) ,--his填写:姓名 LS_aac004 SST_JSDP_JBXX.aac004%type;--varchar2(1) ,--his填写:性别 1男 2女 LS_akc023 SST_JSDP_JBXX.akc023%type;--number(3) ,--his填写:年龄 LS_aka078 SST_JSDP_JBXX.aka078%type;--varchar2(3) ,--his填写:医疗就诊方式 LS_aka130 SST_JSDP_JBXX.aka130%type;--varchar2(3) ,--his填写:医疗类别 LS_bke298 SST_JSDP_JBXX.bke298%type;--varchar2(32) ,--his填写:his收费单据流水号 LS_bke042 SST_JSDP_JBXX.bke042%type;--varchar2(32) ,--his填写:his流水号 LS_aab034 SST_JSDP_JBXX.aab034%type;--varchar2(8) ,--医保返回:所属经办机构编码(分中心编码) LS_aab034_mc SST_JSDP_JBXX.aab034_mc%type;--varchar2(100) ,--医保返回:所属经办机构编码名称(分中心名称) LS_akc069 SST_JSDP_JBXX.akc069%type;--varchar2(3) ,--his填写:急诊标志 0 否,1 是 LS_akc066 SST_JSDP_JBXX.akc066%type;--varchar2(3) ,--his填写:外伤标志 0 否,1 是 LS_aaz149 SST_JSDP_JBXX.aaz149%type;--varchar2(20) ,--his填写:特殊病种编号 LS_aka121 SST_JSDP_JBXX.aka121%type;--varchar2(50) ,--his填写:特殊病种名称 LS_akf001 SST_JSDP_JBXX.akf001%type;--varchar2(50) ,--his填写:院内科室编码 LS_akf002 SST_JSDP_JBXX.akf002%type;--varchar2(50) ,--his填写:院内科室名称 LS_bkf237 SST_JSDP_JBXX.bkf237%type;--varchar2(50) ,--his填写:医保科室编码 LS_bkf238 SST_JSDP_JBXX.bkf238%type;--varchar2(50) ,--his填写:医保科室名称 LS_bkc014 SST_JSDP_JBXX.bkc014%type;--varchar2(8) ,--his填写:实际就诊日期 LS_bkc171 SST_JSDP_JBXX.bkc171%type;--varchar2(6) ,--his填写:实际就诊时间 LS_akc192 SST_JSDP_JBXX.akc192%type;--varchar2(14) ,--his填写:实际门诊/入院日期 LS_aae030 SST_JSDP_JBXX.aae030%type;--varchar2(8) ,--his填写:择日住院起始日期 LS_aae031 SST_JSDP_JBXX.aae031%type;--varchar2(8) ,--his填写:择日住院截止日期 LS_bka190 SST_JSDP_JBXX.bka190%type;--varchar2(2) ,--his填写:是否共济扣款 y:共济扣款 n:不共济扣款 LS_akc193 SST_JSDP_JBXX.akc193%type;--varchar2(50) ,--his填写:入院登记主诊断编码 LS_bka535 SST_JSDP_JBXX.bka535%type;--varchar2(3) ,--his填写:医师诊查费等级 LS_bkea92 SST_JSDP_JBXX.bkea92%type;--varchar2(6) ,--his填写:保健体检项目编号 LS_aka042 SST_JSDP_JBXX.aka042%type;--varchar2(3) ,--his填写:住院类别 LS_akc194 SST_JSDP_JBXX.akc194%type;--varchar2(14) ,--his填写:出院日期 LS_bke078 SST_JSDP_JBXX.bke078%type;--varchar2(3) ,--his填写:离院方式 LS_bke058 SST_JSDP_JBXX.bke058%type;--varchar2(4) ,--his填写:住院天数 LS_amc029 SST_JSDP_JBXX.amc029%type;--varchar2(3) ,--his填写:计划生育手术类别 LS_amc026 SST_JSDP_JBXX.amc026%type;--varchar2(3) ,--his填写:生育类别 LS_amc028 SST_JSDP_JBXX.amc028%type;--varchar2(3) ,--his填写:胎儿数 LS_amc020 SST_JSDP_JBXX.amc020%type;--varchar2(8) ,--his填写:计划生育手术或生育日期 LS_bmc041 SST_JSDP_JBXX.bmc041%type;--varchar2(3) ,--his填写:怀孕天数 LS_bkc007 SST_JSDP_JBXX.bkc007%type;--varchar2(18) ,--his填写:医疗服务人员证件号码 LS_bkc006 SST_JSDP_JBXX.bkc006%type;--varchar2(50) --his填写:医疗服务人员姓名 LS_itemcount SST_JSDP_JBXX.itemcount%type;--number(3) ,--his填写:明细项目数量 LS_akc190 SST_JSDP_JBXX.akc190%type;--varchar2(16) ,--医保返回:医保门诊挂号流水号/住院登记流水号 LS_bke297 SST_JSDP_JBXX.bke297%type;--varchar2(20) ,--医保返回:医保明细流水号 LS_aae072 SST_JSDP_JBXX.aae072%type;--varchar2(16) ,--医保返回:医保收费流水号 LS_aac999 SST_JSDP_JBXX.aac999%type;--varchar2(20) ,--医保返回:个人管理码地市唯一标识码(id0000) LS_bka531 SST_JSDP_JBXX.bka531%type;--varchar2(1) ,--医保返回: 是否精准扶贫对象 LS_bkc001 SST_JSDP_JBXX.bkc001%type;--varchar2(3) ,--医保返回:人员待遇类别 LS_bkc001_mc SST_JSDP_JBXX.bkc001_mc%type;--varchar2(30) ,--医保返回:人员待遇类别名称 LS_bkc026 SST_JSDP_JBXX.bkc026%type;--varchar2(3) ,--医保返回:医疗待遇状态 LS_bkc026_mc SST_JSDP_JBXX.bkc026_mc%type;--varchar2(30) ,--医保返回:医疗待遇状态名称 LS_bke174 SST_JSDP_JBXX.bke174%type;--varchar2(3) ,--医保返回:异地就医类型 LS_bke174_mc SST_JSDP_JBXX.bke174_mc %type;--varchar2(30) ,--医保返回:异地就医类型名称 LS_akc227 SST_JSDP_JBXX.akc227%type;--number(12,2) ,--医保返回:医疗费总金额=个人现金支付金额+个人账户支付金额+基金支付总额 LS_bkc040 SST_JSDP_JBXX.bkc040%type;--number(12,2) ,--医保返回:个人现金支付金额(实付现金) LS_bkc041 SST_JSDP_JBXX.bkc041%type;--number(12,2) ,--医保返回:个人账户支付金额 LS_bkc102 SST_JSDP_JBXX.bkc102%type;--number(12,2) ,--医保返回:医保基金支付总额=统筹基金支付+商保基金支付+公务员医疗补助+精准扶贫医疗叠加+医疗救助基金+其他基金支付+企业补充 LS_bkc045 SST_JSDP_JBXX.bkc045%type;--number(12,2) ,--医保返回:其中:统筹基金支付 LS_bkc052 SST_JSDP_JBXX.bkc052%type;--number(12,2) ,--医保返回:其中:大病保险基金支付(商保支付或商业保险) LS_bkc059 SST_JSDP_JBXX.bkc059%type;--number(12,2) ,--医保返回:公务员医疗补助 LS_bkc062 SST_JSDP_JBXX.bkc062%type;--number(12,2) ,--医保返回:其中:精准扶贫医疗叠加 LS_bkc060 SST_JSDP_JBXX.bkc060%type;--number(12,2) ,--医保返回:其中:医疗救助基金 LS_ake173 SST_JSDP_JBXX.ake173%type;--number(12,2) ,--医保返回:其中:其他基金支付 LS_ake026 SST_JSDP_JBXX.ake026%type;--number(12,2) ,--医保返回:其中:企业补充 LS_bke921 SST_JSDP_JBXX.bke921%type;--varchar2(40) ,--医保返回:(家庭健康)共济账户扣款人 LS_bke922 SST_JSDP_JBXX.bke922%type;--varchar2(40) ,--医保返回:(家庭健康)共济账户扣款人金额 LS_bkc166 SST_JSDP_JBXX.bkc166%type;--number(12,2) ,--医保返回:(其中)一般诊疗费补偿金额 LS_bkc167 SST_JSDP_JBXX.bkc167%type;--number(12,2) ,--医保返回:(其中)一般诊疗费个人支付金额 LS_bkc011 SST_JSDP_JBXX.bkc011%type;--number(12,2) ,--医保返回:个人自费(非医保费用) LS_akc087 SST_JSDP_JBXX.akc087%type;--number(12,2) ,--医保返回:个人账户余额 LS_bkc591 SST_JSDP_JBXX.bkc591%type;--number(12,2) ,--医保返回:家庭共济账户余额 LS_bkc075 SST_JSDP_JBXX.bkc075%type;--number(12,2) ,--医保返回:家庭共济账户支付 LS_bkc054 SST_JSDP_JBXX.bkc054%type;--number(12,2) ,--医保返回:商保账户支付 LS_bkc612 SST_JSDP_JBXX.bkc612%type;--number(12,2) ,--医保返回:补助基金支付bkc612=bkc052 大病保险基金支付+bkc059公务员医疗补助+bkc062精准扶贫医疗叠加+bkc060医疗救助基金+ake173 其他基金支付+ake026企业补充+bkc061保健基金支付 LS_bkc061 SST_JSDP_JBXX.bkc061%type;--number(12,2) ,--医保返回:其中:保健基金支付 LS_bkc077 SST_JSDP_JBXX.bkc077%type;--number(12,2) ,--医保返回:其中:账户支付 LS_bkc076 SST_JSDP_JBXX.bkc076%type;--number(12,2) ,--医保返回:其中:健康账户支付 LS_ake094 SST_JSDP_JBXX.ake094%type;--number(12,2) ,--医保返回:个人自付 LS_bkc160 SST_JSDP_JBXX.bkc160%type;--number(12,2) ,--医保返回:公务员体检帐户余额 LS_bkc079 SST_JSDP_JBXX.bkc079%type;--number(12,2) ,--医保返回:健康账户余额 LS_bkec26 SST_JSDP_JBXX.bkec26%type;--number(12,2) ,--医保返回:职工医疗互助 LS_bkc101 SST_JSDP_JBXX.bkc101%type;--number(12,2) ,--医保返回:除外耗材范围内费用 LS_bkc125 SST_JSDP_JBXX.bkc125%type;--number(12,2) ,--医保返回:超标床位费 LS_bkc053 SST_JSDP_JBXX.bkc053%type;--number(12,2) ,--医保返回:商保现金支付 LS_aka151 SST_JSDP_JBXX.aka151%type;--number(12,2) ,--医保返回:统筹支付医保费用起付标准 LS_aka150 SST_JSDP_JBXX.aka150%type;--number(3) ,--医保返回:本年度住院次数 LS_bka193 SST_JSDP_JBXX.bka193%type;--varchar2(3) ,--医保返回:保健级别 LS_bka193_mc SST_JSDP_JBXX.bka193_mc%type;--varchar2(50) ,--医保返回:保健级别名称 LS_bka555 SST_JSDP_JBXX.bka555%type;--varchar2(3) ,--医保返回:对账数据分类 LS_bka188 SST_JSDP_JBXX.bka188%type;--varchar2(2) ,--医保返回:是否进入单病种结算 LS_ake007 SST_JSDP_JBXX.ake007%type;--varchar2(8) ,--医保返回:费用发生日期(结算日期) LS_bae029 SST_JSDP_JBXX.bae029%type;--varchar2(4) ,--医保返回:费用发生时间(结算时间) LS_aae011 SST_JSDP_JBXX.aae011%type;--varchar2(20) ,--医保返回:收费人 LS_bka079 SST_JSDP_JBXX.bka079%type;--number(12,2) ,--his填写:收付费定额 LS_akc196 SST_JSDP_JBXX.akc196%type;--varchar2(50) ,--his填写:出院主要诊断 LS_bkc038 SST_JSDP_JBXX.bkc038%type;--varchar2(50) ,--his填写:出院次要诊断 LS_bkc039 SST_JSDP_JBXX.bkc039%type;--varchar2(50) ,--his填写:出院第三诊断 LS_ake021 SST_JSDP_JBXX.ake021%type;--varchar2(50) ,--his填写:出院诊断医生 LS_bkc511 SST_JSDP_JBXX.bkc511%type;--varchar2(50) ,--his填写:医保签约号 LS_bae113 SST_JSDP_JBXX.bae113%type;--varchar2(50) ,--his填写:签约受理人身份证号 LS_bkc023 SST_JSDP_JBXX.bkc023%type;--varchar2(50) ,--his填写:签约人关系 LS_itemcountys SST_JSDP_JBXX.itemcountys%type;--varchar2(4) ,--his填写:医生数量 LS_bke598 SST_JSDP_JBXX.bke598%type;--varchar2(14) ,--his填写:签约开始日期 LS_bke599 SST_JSDP_JBXX.bke599%type;--varchar2(14) ,--his填写: 签约截至日期 LS_bkc512 SST_JSDP_JBXX.bkc512%type;--varchar2(20) ,--his填写:医院签约号 LS_aae005 SST_JSDP_JBXX.aae005%type;--varchar2(20) ,--his填写:联系电话 LS_aae006 SST_JSDP_JBXX.aae006%type;--varchar2(200) ,--his填写:通讯地址 LS_bke466 SST_JSDP_JBXX.bke466%type;--varchar2(100) ,--his填写:签约病种 LS_bke467 SST_JSDP_JBXX.bke467%type;--varchar2(200) ,--his填写: 服务内容 LS_bke468 SST_JSDP_JBXX.bke468%type;--varchar2(10) ,--his填写: 服务方式 LS_OutYbghJson SST_JSDP_JBXX.OutYbghJson%type;--varchar2(2000) ,--医保返回:医保登记返回的消息串 LS_OutYbsfJson SST_JSDP_JBXX.OutYbsfJson%type;--varchar2(4000) --医保返回:医保收费返回的消息串 LS_BRLBBH varchar2(10);--类别编码:0:普通 1:生育 2:工伤 3:体检 4:单病种 LS_TSBZFL BM_TSBZB0.TSBZFL%type;--病种分类 0:特殊病种 1:生育病种 2:单病种 LS_YYKSBMFSLX varchar2(50);--新医保医院科室编码类型0:(akf001:医保编码bkf237:院内编码)1:(akf001:院内编码bkf237:医保编码)默认值:0 LS_HISLSHQZFS varchar2(10);--新医保接口His流水号(bke042)取值方式 Y:系统序列号 N:挂号ID或住院ID 默认:N LS_XZQH00 BM_BRXXB0.XZQH00%type;--行政区号 LS_GHRQ00 SF_BRXXB0.GHRQ00%type;--挂号日期 LS_GHSJ00 SF_BRXXB0.GHSJ00%type;--挂号时间 LS_YBSJSFRQMS varchar2(100);--新医保门诊(AKC192、BKC014、BKC171)是否取挂号日期和时间:格式(1:是0:否|有效天数0:当天,1:两天) 默认:0|1 LS_SFFSGHRQ varchar2(1); --新医保门诊是否发送挂号日期1:是0:否 LS_FSGHRQTS number(12) ; --新医保门诊发送挂号日期有效天数0:当天,1:两天 LS_YXTSNUM number(12) ; --有效天数临时变量 LS_KHQZ00 varchar2(1); --卡号第一位 LS_ID0000 SST_JSDP_JBXX.ID0000%type;--社会保障号 HIS_Y ZZJ_Y LS_GH_bke042 SST_JSDP_JBXX.bke042%type;--his填写:his流水号 LS_BCJSGHID number(10);--本次结算挂号ID LS_SFAGHIDJS number(10);--是否按挂号ID结算 1:是 0:否 LS_SettlementType varchar2(10); --门诊多点结算是否只结算本次挂号号对应的处方 1:是(只结算本挂号号对应的业务数据) 0:否(按时间段结算所有对应的业务数据) 默认:1 SST_ZRZY_JSJZZT varchar2(1); --择日住院自助结算结算状态(Y:记账并结算 M:只记账不结算) LS_YBGHHT SF_BRXXB0.YBGHHT%type;--医保挂号号(特殊病种) SF_YBBRFSJE varchar2(100); --医保病人结算是否按发票限额或总额拆分选择发送项目。参数格式:第一位为是否启用功能 Y启用按总额 M:按发票限额 N不启用,第二位为费用限额(第一位=Y 为总费用限额 =M颗粒剂费用限额) 默认值:N,0 LS_YBBRFSJE_Open varchar2(10); --限额开启参数 LS_YBBRFSJE_Num number(12,2); --限额金额 LS_TEPNUM number(12,2); --临时变量 LS_BAE465 SST_JSDP_JBXX.BAE465%type;--国家病种代码 LS_YYID00 BM_BMBM00.YYID00%type; LS_BMYYID varchar2(10);--HIS内部医院id LS_orgCode varchar2(10);--HIS内部医院id LS_patientType varchar2(2);--费别类型编码(易惠) 00 自费 01 医保 LS_bkb526 SST_JSDP_JBXX.bkb526%type; --bkb526:医疗机构国家码 LS_BKC007_FSYSGJBM BM_TYZD00.MC0000%type; -- 新医保接口明细上传bkc007节点是否开启发送医师国家编码(=BM_YGBM00.YBYGDM),=0原来模式[0:否,1:门诊,2:住院,3:门诊住院] 默认0 LS_mz_akf001_bkf237_type varchar2(10);--门诊收费系统(akf001、bkf237)取值方式(SF_BRXXB0) 0:GHKS00挂号科室 1:GHY000挂号医生所属科室 2:JZKS00就诊科室 3:JZYS00就诊所属科室 默认值:0 LS_YBSDLB IC_YBBRLB.YBSDLB%type;--医保属地类别;0本地、1省内、2省外(未定义的都默认为本地0) LS_KSBRBZ varchar2(10);--跨省病人标识 0:本地、1:省内、2:省外 LS_TSBZBHTONULL_NUM number(5) ;--门诊特殊病种转为空值发送字典(变量) LS_TSBZBHTCBZF_NUM number(5) ;--门诊统筹不支付特殊病种字典(变量) LS_TSBZBHGWYTJ_NUM number(5) ;--门诊公务员体检特殊病种字典(变量) LS_BZDYBH_bkea96 varchar2(3);--通用字典:门诊统筹不支付特殊病种字典 bkea96属性(Y或N) LS_BZDYBH_aka078 varchar2(3);--通用字典:门诊公务员体检特殊病种字典 aka078值(60) LS_BAKXML SST_JSDP_JBXX.BAKXML%type;--HIS备用字段(xml格式)后续扩展 in_cjlybm varchar2(10);--厂家来源编码 YH:易惠 YX:医信 YL:医联 RB:睿博 in_qdcjbm varchar2(10);--渠道编码 1:自助机,2:收费窗口,3:移动结算,4:多点结算 5:互联网结算 6:微信公众号 7:支付宝小程序 LS_DeleDataType number(10);--删除中间表标志 0:删除全部 1:只删除本挂号号 LS_AAE140 BM_BRXXB0.AAE140%type; --险种类型编码 LS_aab301 SST_JSDP_JBXX.aab301%type;--参保地行政区划 LS_psnNo SST_JSDP_JBXX.psnNo%type;--移动医保支付:人员编码 LS_insuType SST_JSDP_JBXX.insuType%type;--移动医保支付:险种类型(310:职工基本医疗保险 390:城乡居民基本医疗保险 320:公务员医疗补助 392:城乡居民大病医疗保险 330:大额医疗费用补助 510:生育保险 340:离休人员医疗保障 ) LS_psnSetlway SST_JSDP_JBXX.psnSetlway%type;--移动医保支付:结算方式(01:按项目结算 02:按定额结算) LS_ectoken SST_JSDP_JBXX.ectoken%type;--移动医保支付:电子凭证解码返回 LS_insuCode SST_JSDP_JBXX.insuCode%type;--移动医保支付:参保人所在统筹区编码 LS_chrgBchno SST_JSDP_JBXX.chrgBchno%type;--移动医保支付:收费批次号 LS_mainCondDscr SST_JSDP_JBXX.mainCondDscr%type;--移动医保支付:主要病情描述 8包需要 BM_XBBH00 BM_BRXXB0.XBBH00%type;--性别编号, select VALUE0 from BM_YBSXZD where JKBM00=0 and SXBM00='gend' BM_MZBH00 BM_BRXXB0.MZBH00%type;--民族编号, select VALUE0 from BM_YBSXZD where JKBM00=0 and SXBM00='naty' BM_ZJLXBH BM_BRXXB0.ZJLXBH%type;--证件类型编号, select VALUE0 from BM_YBSXZD where JKBM00=0 and SXBM00='psn_cert_type' BM_ZTQKBH BM_BRXXB0.ZTQKBH%type;--职退情况编号, select VALUE0 from BM_YBSXZD where JKBM00=0 and SXBM00='psn_type' BM_GJBH00 BM_BRXXB0.GJBH00%type;--国家地区编号, select VALUE0 from BM_YBSXZD where JKBM00=0 and SXBM00='nat_regn_code' BM_LXGXBH BM_BRXXB0.LXGXBH%type;--联系人关系编号, select VALUE0 from BM_YBSXZD where JKBM00=0 and SXBM00='patn_rlts' BM_HYZKBH BM_BRXXB0.HYZKBH%type;--婚姻状况编号, select VALUE0 from BM_YBSXZD where JKBM00=0 and SXBM00='mrg_stas' BM_ZYBH00 BM_BRXXB0.ZYBH00%type;--职业编号, select VALUE0 from BM_YBSXZD where JKBM00=0 and SXBM00='prfs' BM_PSN_NO BM_BRXXB0.PSN_NO%type;--[国家医保]人员编号 LS_BAEMC0 SST_JSDP_JBXX.BAEMC0%type;--国家病种名称 LS_HIS_TSBZBH varchar2(20); --特殊病种编号 cursor CUR_SF_GHXX00 is select distinct Trim(YBGHH0)YBGHH0,GHID00,GHH000,nvl(SFZRZY,'N') SFZRZY,GHKS00 from VW_SF_BRGH00 A where 1=1 and A.SFYY00 = 'N' and A.THRQ00 is null and A.BRID00=LS_BRID00 and A.GHLB00<>-99999 and((LS_SFAGHIDJS=0 and 1=1) or (LS_SFAGHIDJS=1 and A.GHID00=LS_BCJSGHID)) --只结算本挂号挂号 and ((LS_SFAGHIDJS=0 and A.GHRQ00 >=LS_KSRQ00 and A.GHRQ00 <=LS_JSRQ00) or (LS_SFAGHIDJS=1 and 1=1)) order by GHH000; cursor CUR_SF_WJZCFYJ is select distinct a.TSBZBH ,decode(LS_AYPXZFKJS,'Y',nvl(a.YPXZ00,'0'),'0') YPXZ00 from VW_SST_WJZCF a where BRID00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and FJDJBZ not in ('3','4') order by a.TSBZBH; --order by nvl(TSBZBH,'0'); --and TSBZBH is not null order by TSBZBH; cursor CUR_DBJSMX is select distinct XTGZH0 from SST_JSDP_JBXX a where A.CARDNO=P_CARDNO and A.BRID00=LS_BRID00 and (LS_SFAGHIDJS=0 or A.GHID00=LS_BCJSGHID) --只结算本挂号挂号 order by XTGZH0; cursor CUR_NEWXGZHG is select XTGZH0,XMJE00 from ( select a.XTGZH0,nvl((select sum(XMJE00) from SST_JSDP_JSMX b where b.xtgzh0=a.xtgzh0 and b.SFYJZ0='Y'),0)XMJE00 from SST_JSDP_JBXX a where a.CARDNO=P_CARDNO and a.BRID00=LS_BRID00 and (LS_SFAGHIDJS=0 or A.GHID00=LS_BCJSGHID) --只结算本挂号挂号 GROUP BY a.xtgzh0 ) aa order by nvl(XMJE00,0) desc,aa.XTGZH0; /* 1:如果没有特殊病种:按挂号号结算 1:如果有未扣费的处方和医技。非特殊病种先结算。费用的数据会在第一个一起先结算 */ begin LS_ZZJGHYXTS:=0;--自助机挂号有效天数(医保) LS_FYBGHYXTS:=0;--非医保挂号有效天数 LS_COUNT :=0; LS_XJZFFS:='2'; LS_SFSYU0:='N'; LS_FYJE00:=0; LS_CFJE00:=0; LS_YJJE00:=0; LS_HJJE00:=0; LS_CZRQ00:=to_char(sysdate,'YYYYMMDD'); LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS'); LS_ZXCS00:=0; LS_SFFKJS:='Y'; LS_YJFBZ0:=0; --医技非病种费用 LS_YJGHZC:=0; --医技挂号费和诊查费 LS_FZXBH0:=P_FZXBH0; LS_PJHM:=null;--非税票据号码 LS_PJLX:=null;--非税票据类型 LS_PJZCH:=null;--非税票据注册号 LS_JSH:=null;--非税结算号 LS_organ:=null;--非税机构代码 LS_service:='100047';--非税交易代码 100046:空门诊收费专用票据打印接口 200043:门诊收费专用票据离线打印接口 100047:门诊收费自助专用票据打印接口 LS_fpuser:=null;--非税用户名 LS_fppwd:=null;--非税密码 LS_FHJG00:='';--非税返回结果 true执行成功、false执行失败 LS_FHXX00:=null;--非税返回响应信息 LS_SZZW00:=null;--非税数字指纹 LS_JDPH00:=null;--非税机打票号 LS_PJHM00:=null;--非税票据号码 LS_PJLX00:=null;--非税票据类型 LS_PJMC00:=null;--非税票据名称 LS_PJZCH0:=null;--非税票据注册号 LS_BQZDBM:=null;--病情诊断编码 LS_BQZDMS:=null;--病情诊断描述 LS_MZLB00:=null;--门诊类别=普通门诊:101 急诊:102 急诊观留床:103 LS_YSZJDJ:=null;--医生神经等级 LS_YBSJSFRQMS:='0|0';--新医保门诊(AKC192、BKC014、BKC171)是否取挂号日期和时间:格式(1:是0:否|有效天数0:当天,1:两天) 默认:0|1 LS_SFFSGHRQ:='0'; --新医保门诊是否发送挂号日期1:是0:否 LS_FSGHRQTS:=0; --新医保门诊发送挂号日期有效天数0:当天,1:两天 LS_BCJSGHID:=0;--本次结算挂号ID LS_SFAGHIDJS:=0;--是否按挂号ID结算 1:是 0:否 LS_PHDYBZ:=null;--是否生成队列1:不生成 0:生成 LS_JSJZZT:=null;--结算记账状态:Y:记账并结算 M:只记账不结算 LS_YBJSZT:=null;--医保结算状态:Y:医保结算 M:医保转自费结算 LS_YBGHHT:=null;--医保挂号号(特殊病种) SF_YBBRFSJE:='N,0';--医保病人结算是否按发票限额或总额拆分选择发送项目。参数格式:第一位为是否启用功能 Y启用按总额 M:按发票限额 N不启用,第二位为费用限额(第一位=Y 为总费用限额 =M颗粒剂费用限额) 默认值:N,0 LS_YBBRFSJE_Open:='N';--限额开启参数 LS_YBBRFSJE_Num:=0;--限额金额 LS_TEPNUM:=0;--临时变量 LS_BAE465:=null;--国家病种代码 LS_BAEMC0:=null;--国家病种名称 LS_TSBZBHTONULL_NUM:=0;--门诊特殊病种转为空值发送字典(变量) LS_TSBZBHTCBZF_NUM:=0;--门诊统筹不支付特殊病种字典(变量) LS_TSBZBHGWYTJ_NUM:=0;--门诊公务员体检特殊病种字典(变量) LS_BZDYBH_bkea96:=null;--通用字典:门诊统筹不支付特殊病种字典 bkea96属性(Y或N) LS_BZDYBH_aka078:=null;--通用字典:门诊公务员体检特殊病种字典 aka078值(60) LS_BAKXML:=null;--HIS备用字段(xml格式)后续扩展 LS_DeleDataType:=0;--删除中间表标志 0:删除全部 1:只删除本挂号号 LS_HIS_TSBZBH:=null; --特殊病种编号 LS_YYID00:=SF_SF_GETYYID00(); --解析备用入参(SP_SF_DDJS_JSQR、SP_SST_JSDP_JSMXQR_YDJS)=[1]订单流水号|[2]接口编码|[3]BRID00|[4]挂号ID或住院ID|[5]开始日期|[6]结束日期|[7]备用入参 LS_BRYC00:=substrb(SF_SF_RETURNINDEXEH(trim(P_BYRC00),'|', 7),1,500); if LS_BRYC00 is null then LS_BRYC00:=substrb(P_BYRC00,1,500); end if; --2020.11.24 zhangyc 解析PBYRC00参数中PHDYBZ:是否生成队列1:不生成 0:生成,JSJZZT:结算记账状态:Y:记账并结算 M:只记账不结算 YBJSZT:医保结算状态:Y:医保结算 M:医保转自费结算 if trim(LS_BRYC00) is not null then begin LS_PHDYBZ:=trim(substrb(SF_SF_GETXMLNOTE('PHDYBZ',LS_BRYC00),1,1));--是否生成队列1:不生成 0:生成 LS_JSJZZT:=trim(substrb(SF_SF_GETXMLNOTE('JSJZZT',LS_BRYC00),1,1));--结算记账状态:Y:记账并结算 M:只记账不结算 LS_YBJSZT:=trim(substrb(SF_SF_GETXMLNOTE('YBJSZT',LS_BRYC00),1,1));--医保结算状态:Y:医保结算 M:医保转自费结算 in_cjlybm:=trim(substrb(SF_SF_GETXMLNOTE('cjlybm',LS_BRYC00),1,10)); --厂家来源编码 YH:易惠 YX:医信 YL:医联 RB:睿博 in_qdcjbm:=trim(substrb(SF_SF_GETXMLNOTE('qdcjbm',LS_BRYC00),1,10)); --渠道编码 1:自助机,2:收费窗口,3:移动结算,4:多点结算 5:互联网结算 6:微信公众号 7:支付宝小程序 exception when others then LS_PHDYBZ:='0';--是否生成队列1:不生成 0:生成 LS_JSJZZT:=null;--结算记账状态:Y:记账并结算 M:只记账不结算 LS_YBJSZT:=null;--医保结算状态:Y:医保结算 M:医保转自费结算 in_cjlybm:=null; --厂家来源编码 YH:易惠 YX:医信 YL:医联 RB:睿博 in_qdcjbm:=null; --渠道编码 1:自助机,2:收费窗口,3:移动结算,4:多点结算 5:互联网结算 6:微信公众号 7:支付宝小程序 end; end if; LS_PHDYBZ:=nvl(LS_PHDYBZ,'0');--是否生成队列1:不生成 0:生成 --多点结算、互联网、医保凭证结算 结算前台传入挂号ID if nvl(P_FZXBH0,'ZZJ') in ('DD','WLZS','YBDZPZ','APP_DD') and trim(P_BYRC00) is not null then begin LS_BCJSGHID:=to_number(nvl(SF_SF_RETURNINDEXEH(trim(P_BYRC00),'|', 4),'0')); exception when others then LS_BCJSGHID:=0; end; if LS_BCJSGHID>0 then LS_SFAGHIDJS:=1;--是否按挂号ID结算 1:是 0:否 end if; end if; --门诊医保病人费用结算是否发送诊断编码和诊断名称 Y:发送 N:不发送 默认值:N不发送 begin select upper(trim(VALUE0)) into SF_FYJSFSZDBM from XT_XTCS00 where name00 = 'SF_FYJSFSZDBM'; exception when others then SF_FYJSFSZDBM:='N'; end; --农合病人是否允许自助机结算 Y:是 N:否 默认值:Y begin select upper(trim(VALUE0)) into SST_NHBRSFJS from XT_XTCS00 where NAME00 = 'SST_NHBRSFJS'; exception when others then SST_NHBRSFJS:='Y'; end; if SST_NHBRSFJS is null then SST_NHBRSFJS:='Y'; end if; --0:不按病种结算1:病种+挂号费+诊查费2:病种+非病种所有费用 3:按病种结算 begin select upper(trim(VALUE0)) into LS_TSBZJSLX from XT_XTCS00 where NAME00 = 'SF_TSBZJSLX'; exception when others then LS_TSBZJSLX:='1'; end; LS_TSBZJSLX:=nvl(LS_TSBZJSLX,'1'); --SST_ZZJGHYXTS:医保病人自助机结算获取挂号号的有效天数(0:当天有效 1:两天有效..) 默认:1 begin select to_number(upper(trim(VALUE0))) into LS_ZZJGHYXTS from XT_XTCS00 where NAME00 = 'SST_ZZJGHYXTS'; exception when others then LS_ZZJGHYXTS:=1; end; --SST_ZZJGHYXTS_FYB 非医保病人自助机结算获取挂号号的有效天数(0:当天有效 1:两天有效..) 默认:1 begin select upper(trim(VALUE0)) into LS_SST_ZZJGHYXTS_FYB from XT_XTCS00 where NAME00 = 'SST_ZZJGHYXTS_FYB'; exception when others then LS_SST_ZZJGHYXTS_FYB:=''; end; if LS_SST_ZZJGHYXTS_FYB is not null then begin LS_FYBGHYXTS:=to_number(LS_SST_ZZJGHYXTS_FYB); exception when others then LS_FYBGHYXTS:=LS_ZZJGHYXTS; end; else LS_FYBGHYXTS:=LS_ZZJGHYXTS; end if; --SF_YBBRFSJE:='N,0';--医保病人结算是否按发票限额或总额拆分选择发送项目。参数格式:第一位为是否启用功能 Y启用按总额 M:按发票限额 N不启用,第二位为费用限额(第一位=Y 为总费用限额 =M颗粒剂费用限额) 默认值:N,0 begin select substrb(trim(VALUE0),1,100) into SF_YBBRFSJE from XT_XTCS00 where name00 = 'SF_YBBRFSJE'; exception when others then SF_YBBRFSJE:='N,0'; end; LS_YBBRFSJE_Open:=substrb(SF_YBBRFSJE,1,1);--限额开启参数 begin LS_YBBRFSJE_Num:=to_number(substrb(SF_YBBRFSJE,3,10));--限额金额 exception when others then LS_YBBRFSJE_Num:=0;--限额金额 end; LS_KSRQ00:=to_char(sysdate-LS_ZZJGHYXTS,'YYYYMMDD'); LS_JSRQ00:=to_char(sysdate,'YYYYMMDD'); --医保新接口参数设置','BKC007_FSYSGJBM','0','新医保接口明细上传bkc007节点是否开启发送医师国家编码(=BM_YGBM00.YBYGDM),=0原来模式[0:否,1:门诊,2:住院,3:门诊住院] 默认0 LS_BKC007_FSYSGJBM := trim(SF_SF_TYZD00('医保新接口参数设置','BKC007_FSYSGJBM')); --新医保医院科室编码类型0:(akf001:医保编码bkf237:院内编码)1:(akf001:院内编码bkf237:医保编码)默认值:0 LS_YYKSBMFSLX:=nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','yyksbmfslx'),1,50),'0'); --LS_HISLSHQZFS HISLSHQZFS:新医保接口His流水号(bke042)取值方式 Y:系统序列号 N:挂号ID或住院ID 默认:N LS_HISLSHQZFS:=nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','HISLSHQZFS'),1,10),'N'); LS_YBSJSFRQMS:=nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','MZ_AKC192_BKC014_BKC171'),1,50),'0,0');--新医保门诊(AKC192、BKC014、BKC171)是否取挂号日期和时间:格式(1:是0:否|有效天数0:当天,1:两天) 默认:0|0 LS_SFFSGHRQ:=substrb(SF_SF_RETURNINDEXEH(LS_YBSJSFRQMS,'|', 1),1,1);--新医保门诊是否发送挂号日期1:是0:否 if LS_SFFSGHRQ='1' then --1:发送挂号日期和时间 begin LS_FSGHRQTS:=to_number(SF_SF_RETURNINDEXEH(LS_YBSJSFRQMS,'|', 2));--新医保门诊发送挂号日期有效天数0:当天,1:两天 exception when others then LS_FSGHRQTS:=0; end; end if; --2021.05.27 LS_SettlementType:=nvl(substrb(SF_SF_TYZD00('多点结算接口参数','SettlementType'),1,10),'0');--门诊多点结算是否只结算本次挂号号对应的处方 1:是(只结算本挂号号对应的业务数据) 0:否(按时间段结算所有对应的业务数据) 默认:1 LS_SettlementType:=nvl(LS_SettlementType,'0'); if LS_SFAGHIDJS=1 and LS_SettlementType in ('0') then --是否按挂号ID结算 1:是 0:否 LS_SFAGHIDJS:=0;--是否按挂号ID结算 1:是 0:否 end if; --in_cjlybm:厂家来源编码 YH:易惠 YX:医信 YL:医联 RB:睿博,in_qdcjbm:渠道编码 1:自助机,2:收费窗口,3:移动结算,4:多点结算 5:互联网结算 6:微信公众号 7:支付宝小程序 --LS_SFAGHIDJS:=1;--是否按挂号ID结算 1:是 0:否 ,LS_BCJSGHID number(10);--本次结算挂号ID if in_cjlybm in ('RB') and in_qdcjbm in ('5') and nvl(LS_BCJSGHID,0)>0 then --厂家为RB:睿博 and 渠道编码=5:互联网结算 只删除本挂号号对应的中间表数据 LS_SFAGHIDJS:=1;--是否按挂号ID结算 1:是 0:否 LS_DeleDataType:=1;--删除中间表标志 0:删除全部 1:只删除本挂号号 end if; --2021.06.07 择日住院自助结算结算状态(Y:记账并结算 M:只记账不结算) SST_ZRZY_JSJZZT:=substrb(SF_SF_TYZD00('自助机结算字典参数','SST_ZRZY_JSJZZT'),1,1); --门诊收费系统(akf001、bkf237)取值方式(SF_BRXXB0) 0:GHKS00挂号科室 1:GHY000挂号医生所属科室 2:JZKS00就诊科室 3:JZYS00就诊所属科室 默认值:0 LS_mz_akf001_bkf237_type:= nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','mz_akf001_bkf237_type'),1,10),'0'); Ls_Errors:='获取对应收费员'; --获取自助机终端编号对应的收费员原编号 begin select YGBH00,ZWXM00 into LS_YGBH00,LS_YGXM00 from VW_SST_YGBMDYXX where ZZJBH0=P_ZDBH00; exception when no_data_found then if P_FZXBH0 in ('DD','YD','WLZS','APP_DD','YBDZPZ') then --参保机构编号(DD:多点结算 YD:移动结算 YB:医保结算 WLZS:网络诊室多点结算) begin select YGBH00,ZWXM00 into LS_YGBH00,LS_YGXM00 from BM_YGBM00 where YGBH00=P_YYJGDM; --医院机构代码(员工编码); exception when no_data_found then P_ERRMSG:='未找到有效的操作员员工信息!'; return; end; else P_ERRMSG:='终端编号:'||P_ZDBH00||'在本院SST_YGBHDY表中未对应收费员!'; return; end if; end; select SF_SST_GETICKH00_YKT(P_CARDNO) into LS_CARDNO from dual; begin select BRID00 into LS_BRID00 from IC_YHXX00 where ICKH00 =LS_CARDNO and ZT0000 ='1'; exception when no_data_found then P_ERRMSG:='未找到该病人的信息,请确认是否在院内已经建档登记!'; return; end; begin Select a.YBKH00,a.BRXM00,a.BRXB00,a.FBBH00, SF_YS_CSRQTONL(BRCSRQ)BRNL00,C.YBZXLB,C.SFXNH0, a.YBID00,A.BRZJBH,C.YBLB00,C.YBMC00,a.YBBRLB,a.BRZTQK,A.XZQH00,c.YBSDLB,A.AAE140, a.XBBH00,a.MZBH00,a.ZJLXBH,a.ZTQKBH,a.GJBH00,a.LXGXBH,a.HYZKBH,a.ZYBH00,a.PSN_NO into LS_YBKH00,LS_BRXM00,LS_BRXB00 ,LS_FBBH00,LS_BRNL00,LS_YBZXLB,LS_SFXNH0, LS_YBID00,LS_BRZJBH,LS_YBLB00,LS_YBMC00,LS_YBBRLB,LS_BRZTQK,LS_XZQH00,LS_YBSDLB,LS_AAE140, BM_XBBH00,BM_MZBH00,BM_ZJLXBH,BM_ZTQKBH,BM_GJBH00,BM_LXGXBH,BM_HYZKBH,BM_ZYBH00,BM_PSN_NO from BM_BRXXB0 a ,IC_YBBRLB c Where a.FBBH00=c.FBBH00 and a.YBLB00 = c.YBLB00 and a.BRID00=LS_BRID00; exception when no_data_found then P_ERRMSG := '未找到该病人的基本信息!'; return; end; if LS_FBBH00=3 then LS_SFYGWD:='Y'; LS_KSRQ00:=to_char(sysdate-LS_ZZJGHYXTS,'YYYYMMDD'); --医保病人结算开始日期 LS_JSRQ00:=to_char(sysdate,'YYYYMMDD'); --医保病人结算结束日期 else LS_SFYGWD:='N'; LS_KSRQ00:=to_char(sysdate-LS_FYBGHYXTS,'YYYYMMDD'); --非医保结算开始日期 LS_JSRQ00:=to_char(sysdate,'YYYYMMDD'); --非医保结算结束日期 end if; LS_ID0000:=substrb(trim(LS_YBID00),1,18);--社会保障号 if SP_SF_CHECKSFZH(trim(LS_BRZJBH))=1 then --1:身份证号码通过校验(通过身份证校验通过后,个人管理码赋值为身份证号) LS_ID0000:=substrb(trim(LS_BRZJBH),1,18);--社会保障号 end if; --获取结算是否按药品性质分开结算 LS_AYPXZFKJS:='N'; if LS_FBBH00='3' then begin select SP_SF_YBBRCFAYPXZFK(LS_BRID00,LS_YBLB00,LS_YBBRLB,LS_BRZTQK,trim(a.VALUE0)) into LS_AYPXZFKJS from XT_XTCS00 a where NAME00 = 'SF_AYPXZFKJS' and substr(VALUE0,1,1)='Y'; exception when others then LS_AYPXZFKJS:='N'; end; end if; if LS_FZXBH0 is null then select SF_SST_FZXBH0_YKT(LS_BRID00) into LS_FZXBH0 from dual; end if; --/* --农合病人暂时不支持自助结算功能 if (LS_SFXNH0='1') and (SST_NHBRSFJS='N') and nvl(LS_YBJSZT,'Y') not in ('M') then --医保结算状态=M:医保转自费结算 不限制 P_ERRMSG := '农合病人暂时不提供自助结算功能!'; return; end if; --异地医保病人暂时不支持自助结算功能 if (LS_SFXNH0='3') and (SST_NHBRSFJS='N') and nvl(LS_YBJSZT,'Y') not in ('M') then --医保结算状态=M:医保转自费结算 不限制 P_ERRMSG := '异地医保病人暂时不提供自助结算功能!'; return; end if; -- */ --获取非税发票信息 2018.04.14 zhangyc --begin-- --机构代码(财政统一分配) begin select trim(MC0000) into LS_organ from BM_TYZD00 where ZDMC00='非税收入医疗票据开票接口' and BH0000='Organ'; exception when others then LS_organ:=null; end; begin select max(PJLYID) into LS_PJLYID from BM_PJLYQK where PJLXBM = 1 and SYBZ00='Y' and PJSYR0=LS_YGBH00; select FSPJLX,FSZCH0 into LS_PJLX,LS_PJZCH from BM_PJLYQK where PJLYID=LS_PJLYID; exception when others then LS_PJLX:=null; LS_PJZCH:=null; end; begin select FPUSER,FPPWD0 into LS_fpuser,LS_fppwd from BM_YGBM00 where YGBH00=LS_YGBH00; exception when others then LS_fpuser:=null; LS_fppwd:=null; end; --获取非税发票信息 2018.04.14 zhangyc --end-- Ls_Errors:='删除中间表'; --LS_SFAGHIDJS: 是否按挂号ID结算 1:是 0:否 --LS_DeleDataType:删除中间表标志 0:删除全部 1:只删除本挂号号 if LS_DeleDataType=1 and LS_SFAGHIDJS=1 and nvl(LS_BCJSGHID,0)>0 then --厂家为RB:睿博 and 渠道编码=5:互联网结算 只删除本挂号号对应的中间表数据 --互联网结算,只删除本次挂号的数据 delete SF_FYMX00_TEMP00 where CARDNO=P_CARDNO and BRID00=LS_BRID00 and XTGZH0 in (select XTGZH0 from SST_JSDP_JBXX where CARDNO=P_CARDNO and BRID00=LS_BRID00 and GHID00=LS_BCJSGHID); delete SST_JSDP_JSMX where CARDNO=P_CARDNO and BRID00=LS_BRID00 and XTGZH0 in (select XTGZH0 from SST_JSDP_JBXX where CARDNO=P_CARDNO and BRID00=LS_BRID00 and GHID00=LS_BCJSGHID); delete SST_JSDP_JBXX where CARDNO=P_CARDNO and BRID00=LS_BRID00 and GHID00=LS_BCJSGHID; delete SST_CFLSH0 where CARDNO=P_CARDNO and BRID00=LS_BRID00 and GHID00=LS_BCJSGHID; else delete SF_FYMX00_TEMP00 where CARDNO=P_CARDNO and BRID00=LS_BRID00; delete SST_JSDP_JBXX where CARDNO=P_CARDNO and BRID00=LS_BRID00; delete SST_JSDP_JSMX where CARDNO=P_CARDNO and BRID00=LS_BRID00; delete SST_CFLSH0 where CARDNO=P_CARDNO and BRID00=LS_BRID00; delete SF_FYMX00_TEMP00 where CARDNO=P_CARDNO; delete SST_JSDP_JBXX where CARDNO=P_CARDNO; delete SST_JSDP_JSMX where CARDNO=P_CARDNO; delete SST_CFLSH0 where CARDNO=P_CARDNO; end if; begin select count(1) into LS_COUNT from VW_SF_BRGH00 A where 1=1 and A.SFYY00 = 'N' and a.THRQ00 is null and A.BRID00=LS_BRID00 and A.GHLB00<>-99999 and((LS_SFAGHIDJS=0 and 1=1) or (LS_SFAGHIDJS=1 and A.GHID00=LS_BCJSGHID)) --只结算本挂号挂号 and ((LS_SFAGHIDJS=0 and A.GHRQ00>=LS_KSRQ00 and A.GHRQ00 <=LS_JSRQ00) or (LS_SFAGHIDJS=1 and 1=1)) ; exception when no_data_found then LS_COUNT:=0; end; if LS_COUNT=0 then P_ERRMSG:='未找到该病人有效挂号信息!'; return; end if; if LS_COUNT>0 then Ls_Errors:='开始循环整理数据:数量='||LS_COUNT; for CUR_GH in CUR_SF_GHXX00 loop Ls_Errors:='循环整理数据变量初始化'; LS_TEPNUM:=0;--临时变量 LS_YBGHH0:=CUR_GH.YBGHH0; LS_GHID00:=CUR_GH.GHID00; LS_GHH000:=CUR_GH.GHH000; LS_TSBZBH:=null; --特殊病种编号 LS_TSBZBH_ORD:=null; --特殊病种编号(原来) LS_HIS_TSBZBH:=null; --特殊病种编号 LS_TSBZMC:='无'; LS_SFTSMZ:='N'; LS_SFTSBZ:='N'; LS_TSBZBH:='无'; LS_TSBZMC:='无'; LS_SFFKJS:='Y';--是否分开结算 Y是 N 否 LS_ZXCS00:=0; LS_YYKSBM:=substrb(SF_SF_GETYYKSBM(LS_BRID00,LS_GHH000,0),1,20); --医院科室编码 LS_YSZJHM:=substrb(SF_SF_GETYYKSBM(LS_BRID00,LS_GHH000,1),1,20); --医生证件号码 LS_BAE465:=null;--国家病种代码 LS_BAEMC0:=null;--国家病种名称 LS_TSBZBHTONULL_NUM:=0;--门诊特殊病种转为空值发送字典(变量) LS_TSBZBHTCBZF_NUM:=0;--门诊统筹不支付特殊病种字典(变量) LS_TSBZBHGWYTJ_NUM:=0;--门诊公务员体检特殊病种字典(变量) LS_BZDYBH_bkea96:=null;--通用字典:门诊统筹不支付特殊病种字典 bkea96属性(Y或N) LS_BZDYBH_aka078:=null;--通用字典:门诊公务员体检特殊病种字典 aka078值(60) LS_BAKXML:=null;--HIS备用字段(xml格式)后续扩展 if LS_YBGHH0 not in ('0') then LS_MZLSH0:=substrb(trim(LS_YBGHH0),1,16); LS_SFXTGH:='N'; else LS_MZLSH0:='无'; end if; select count(1) into LS_Num from BM_BRGMXX Where BRID00=LS_BRID00 and GHID00=LS_GHID00 and MZBZ00='0' and DM0000='001' ;--孕妇 if LS_Num>0 then P_ERRMSG:='生育病人不允许在自助机做结算!请到生育收费窗口结算!'; return; end if; --2021.06.07 择日住院自助结算结算状态(Y:记账并结算 M:只记账不结算) if SST_ZRZY_JSJZZT is not null and CUR_GH.SFZRZY='Y' then LS_JSJZZT:=substrb(SST_ZRZY_JSJZZT,1,1);--结算记账状态:Y:记账并结算 M:只记账不结算 end if; --择日住院病人,状态为Y:记账并结算 限制 if CUR_GH.SFZRZY='Y' and nvl(LS_JSJZZT,'Y') not in ('M') then P_ERRMSG := '择日住院病人,请充足够预交金后,直接到检查科室执行!'; return; end if; --获取挂号科室对应医院id begin select aa.YYID00 into LS_BMYYID from BM_BMBM00 aa where aa.BMBH00 =CUR_GH.GHKS00; exception when no_data_found then LS_BMYYID:=LS_YYID00; end; LS_BMYYID:=trim(nvl(LS_BMYYID,LS_YYID00));--挂号科室对应的医院ID LS_orgCode:=LS_BMYYID;--机构编号 --医保病人结算是否按发票限额或总额拆分选择发送项目。参数格式:第一位为是否启用功能 Y启用按总额 M:按发票限额 N不启用,第二位为费用限额(第一位=Y 为总费用限额 =M颗粒剂费用限额) 默认值:N,0 --国医堂西药限额--begin-- if LS_FBBH00='3' and LS_YBBRFSJE_Open in ('Y','M') then begin select count(1) into LS_TEPNUM from ( select nvl(sum(B.YPZSL0 * B.LSDJ00),0) HJJE00 , to_number(c.LBBH00)+1 MZFPID from YF_MZCF00 A ,YF_MZCFMX B,BM_YD0000 C where 1=1 and A.CFLSH0=B.CFLSH0 and C.YPNM00=B.YPNM00 and A.GHID00=LS_GHID00 and A.BRID00=LS_BRID00 and C.YPCZFL='0' and c.lbbh00<'3' group by C.LBBH00 union all select sum(B.JJJE00*b.sfcs00*b.sl0000),C.MZFPID from YJ_YW0000 A,YJ_YWJJ00 B,BM_YYSFXM C where 1=1 and A.BRID00=LS_BRID00 and A.ZYGHID=LS_GHID00 and A.MZZYBZ='0' and A.YJDJH0=B.YJDJH0 and B.SFXMID=C.SFXMID group by MZFPID ) E,BM_FPXM00 F where 1=1 and E.MZFPID=F.FPXMID and E.HJJE00>F.FPCFXE and nvl(F.FPCFXE,0)>0 ; exception when others then LS_TEPNUM:=0; end; if nvl(LS_TEPNUM,0)>0 then P_ERRMSG := '超出限额!请到收费窗口结算!'; return; end if; if nvl(LS_YBBRFSJE_Num,0)>0 then select nvl(round(sum(B.YPZSL0 * B.LSDJ00),2),0) into LS_TEPNUM from YF_MZCF00 A ,YF_MZCFMX B,BM_YD0000 C where A.CFLSH0=B.CFLSH0 and C.YPNM00 = B.YPNM00 and A.GHID00=LS_GHID00 and A.BRID00=LS_BRID00 and C.YPCZFL='1'; if nvl(LS_TEPNUM,0)>nvl(LS_YBBRFSJE_Num,0) then P_ERRMSG := '颗粒剂超出限额!请到收费窗口结算!'; return; end if; end if; end if; --国医堂西药限额--end-- --取医生病情诊断编码 begin select ICD900,ZDMC00 into LS_BQZDBM,LS_BQZDMS from YS_BRZDXX where GHID00=LS_GHID00 and ZZDBZ0 in ('3'); exception when others then LS_BQZDBM:=null; LS_BQZDMS:=null; end; if LS_BQZDBM is null then begin select FSZDBM,FSZDMC into LS_BQZDBM,LS_BQZDMS from VW_SF_BRMZZZ where GHID00=LS_GHID00 and ZZDBZ0 not in ('3') and rownum=1; exception when others then LS_BQZDBM:=null; LS_BQZDMS:=null; end; end if; --获取挂号类别名称以及其它信息--begin-- if LS_GHID00>0 and LS_BRID00>0 then begin select a.SFLG00,a.SFJZLB,a.GHLB00,a.GHKS00,a.JZKS00,a.GHY000,a.GHYXM0,a.JZYS00,a.JZYSXM,a.GHRQ00,a.GHSJ00,substrb(trim(A.bke042),1,30)bke042,A.YBGHHT into LS_SFLG00,LS_SFJZLB,LS_GHLB00,LS_GHKS00,LS_JZKS00,LS_GHY000,LS_GHYXM0,LS_JZYS00,LS_JZYSXM,LS_GHRQ00,LS_GHSJ00,LS_GH_bke042,LS_YBGHHT from SF_BRXXB0 A where A.GHID00=LS_GHID00 and A.BRID00=LS_BRID00; exception when others then LS_GHLB00:=null; end; --LS_GHLB00 begin select B.LBMC00,B.YSZJDJ into LS_LBMC00,LS_YSZJDJ from BM_GHLBB0 B where B.LBBH00=LS_GHLB00; exception when others then LS_LBMC00:=null; LS_YSZJDJ:=null; end; --挂号科室名称 begin select D.BMMC00 into LS_GHKSMC from BM_BMBM00 D where D.BMBH00=LS_GHKS00; exception when others then LS_GHKSMC:=null; end; --就诊科室名称 begin select D.BMMC00 into LS_JZKSMC from BM_BMBM00 D where D.BMBH00=LS_JZKS00; exception when others then LS_JZKSMC:=null; end; --挂号员(所属科室) begin select C.BMBH00,D.BMMC00 into LS_GHY000_KSBH,LS_GHY000_KSMC from BM_YGBM00 C,BM_BMBM00 D where C.BMBH00=D.BMBH00 and C.YGBH00=LS_GHY000; exception when others then LS_GHY000_KSBH:=null;--挂号员(所属科室编号) LS_GHY000_KSMC:=null;--挂号员(所属科室名称) end; --就诊医生(所属科室) begin select C.BMBH00 as JZYS00_KSBH,trim(D.BMMC00) as JZYS00_KSMC,trim(C.ZWXM00) as YSXM00,trim(C.YSZJHM) as YSZJHM, trim(C.SFZBH0) as SFZBH0,trim(C.YBYGDM) as YBYGDM into LS_JZYS00_KSBH,LS_JZYS00_KSMC,LS_YSXM00,LS_YSZJHM,LS_SFZBH0,LS_YBYGDM from BM_YGBM00 C,BM_BMBM00 D where C.BMBH00=D.BMBH00 and C.YGBH00=LS_JZYS00; exception when others then LS_JZYS00_KSBH:=null;--就诊医生(所属科室编号) LS_JZYS00_KSMC:=null;--就诊医生(所属科室名称) LS_YSZJHM:=null;--医生证件编码 LS_YSXM00:=null;--医生姓名 LS_SFZBH0:=null;--身份证号 LS_YBYGDM:=null;--医保医师代码/医保护士代码 end; --门诊收费系统(akf001、bkf237)取值方式(SF_BRXXB0) 0:GHKS00挂号科室 1:GHY000挂号医生所属科室 2:JZKS00就诊科室 3:JZYS00就诊所属科室 默认值:0 if LS_mz_akf001_bkf237_type='3' then LS_BMKSBH:=nvl(LS_JZYS00_KSBH,LS_JZKS00); --部门科室编码 elsif LS_mz_akf001_bkf237_type='2' then LS_BMKSBH:=LS_JZKS00; --部门科室编码 elsif LS_mz_akf001_bkf237_type='1' then LS_BMKSBH:=nvl(LS_GHY000_KSBH,LS_GHKS00); --部门科室编码 else LS_BMKSBH:=LS_GHKS00; --部门科室编码 end if; --获取医保科室编码以及名称 if LS_BMKSBH is not null then begin select D.BMMC00,D.YYKSBM,nvl(D.YBKSMC,D.BMMC00)YBKSMC,D.KSYBKS into LS_BMKSMC,LS_YYKSBM,LS_YBKSMC,LS_KSYBKS from BM_BMBM00 D where D.BMBH00=LS_BMKSBH; exception when others then LS_BMKSMC:=null;--部门科室名称 LS_YYKSBM:=null;--医保科室编码 LS_YBKSMC:=null;--医保科室名称 LS_KSYBKS:=null;--跨省医保科室编码 end; end if; if LS_YYKSBM is null then begin LS_YYKSBM:=substrb(SF_SF_GetYYKSBM(LS_BRID00,trim(LS_GHH000),0),1,20); --医院科室取值 exception when others then LS_YYKSBM:=null; end; end if; --2021.07.21 跨省病人标识 LS_KSBRBZ:跨省病人标识 0:本地、1:省内、2:省外 --规则1:IC_YBBRLB.YBSDLB:医保属地类别;0本地、1省内、2省外(未定义的都默认为本地0)=2:省外 --规则2:BM_BRXXB0.XZQH00:行政区号=头两位不是35 if (LS_YBSDLB in ('2')) or (LS_XZQH00 is not null and LS_XZQH00 not in ('本地') and substrb(LS_XZQH00,1,2) not in ('35')) then LS_KSBRBZ:='2';--跨省病人标识 0:本地、1:省内、2:省外 end if; --2021.07.21 跨省病人科室转化 (BM_BMBM00.KSYBKS:跨省医保科室编码) LS_KSBRBZ:跨省病人标识 0:本地、1:省内、2:省外 if LS_KSBRBZ ='2' then --跨省病人标识 0:本地、1:省内、2:省外 if LS_KSYBKS is not null then LS_YYKSBM:=trim(LS_KSYBKS); end if; end if; --新医保医院科室编码类型0:(akf001:医保编码bkf237:院内编码)1:(akf001:院内编码 bkf237:医保编码)默认值:0 if LS_YYKSBMFSLX='1' then LS_akf001:=substrb(nvl(LS_BMKSBH,LS_GHKS00),1,50);--院内科室编码 LS_akf002:=substrb(nvl(LS_BMKSMC,LS_GHKSMC),1,50);--院内科室名称 LS_bkf237:=substrb(LS_YYKSBM,1,50); --医保科室编码 LS_bkf238:=substrb(nvl(LS_YBKSMC,LS_GHKSMC),1,50);--医保科室名称 else LS_bkf237:=substrb(nvl(LS_BMKSBH,LS_GHKS00),1,50);--院内科室编码 LS_bkf238:=substrb(nvl(LS_BMKSMC,LS_GHKSMC),1,50);--院内科室名称 LS_akf001:=substrb(LS_YYKSBM,1,50); --医保科室编码 LS_akf002:=substrb(nvl(LS_YBKSMC,LS_GHKSMC),1,50);--医保科室名称 end if; LS_bkc006:=substrb(LS_YSXM00,1,50);--医疗服务人员姓名 if LS_BKC007_FSYSGJBM in ('1','3') and LS_YBYGDM is not null then LS_YSZJHM:=substrb(LS_YBYGDM,1,18);--医疗服务人员证件号码 LS_bkc007:=substrb(LS_YBYGDM,1,30);--医疗服务人员证件号码 else if SP_SF_CHECKSFZH(trim(LS_SFZBH0))=1 and length(LS_SFZBH0)=18 then LS_YSZJHM:=substrb(LS_SFZBH0,1,18);--医疗服务人员证件号码 LS_bkc007:=substrb(LS_SFZBH0,1,30); --医疗服务人员证件号码 else LS_YSZJHM:=substrb(LS_YSZJHM,1,18);--医疗服务人员证件号码 LS_bkc007:=substrb(LS_YSZJHM,1,30); --医疗服务人员证件号码 end if; end if; end if; --获取挂号类别名称以及其它信息--end-- LS_bkb526 := SF_XT_GETYYGJBZBM(LS_GHKS00); if LS_SFLG00='Y' then LS_MZLB00:='103'; else if LS_SFJZLB='1' then LS_MZLB00:='102'; else LS_MZLB00:='101'; end if; end if; /* 11 普通门诊 51 生育门诊 12 急诊 52 生育住院 13 门诊大病(特殊病种门诊) 61 失业门诊 21 普通住院 62 失业住院 22 特殊病种住院 71 工伤门诊 23 转外诊治住院 72 工伤住院 31 家庭病床 81 体检 41 定点药店购药 24 择日住院 */ --门诊类别=普通门诊:101 急诊:102 急诊观留床:103 if LS_MZLB00 is null then LS_MZLB00:='101'; end if; --医师诊金等级 =BM_YSLB00.YSZJDJ 普通医师:111 if LS_YSZJDJ is null then LS_YSZJDJ:='111'; end if; if P_FZXBH0 in ('DD','YD','WLZS','APP_DD','YBDZPZ') then --参保机构编号(DD:多点结算 YD:移动结算 YB:医保结算) LS_BQZDBM:=nvl(LS_BQZDBM,'无');--病情诊断编码 LS_BQZDMS:=nvl(LS_BQZDMS,'无');--病情诊断描述 end if; --查找是否有未病种编码 Select count(0) into LS_COUNT from ( select distinct TSBZBH from VW_SST_WJZCF where BRID00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and TSBZBH is not null); if LS_COUNT=0 then --无特殊病种 不分开结算 LS_SFFKJS:='N'; LS_TSBZBH:='无'; LS_TSBZMC:='无'; end if; if (LS_COUNT=1) and (LS_TSBZJSLX='2') then --只有一个病种按病种结算模式为2:病种+非病种所有费用 不分开结算 -- select distinct TSBZBH into LS_TSBZBH from VW_SST_WJZCF where BRID00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and TSBZBH is not null ; LS_SFFKJS:='N'; end if; LS_TSBZBH_ORD:=LS_TSBZBH; --特殊病种编号(原来) LS_HIS_TSBZBH:=LS_TSBZBH; --特殊病种编号 if trim(LS_HIS_TSBZBH) in ('无') then LS_HIS_TSBZBH:=null; end if; LS_TSBZMC:=null; LS_TSBZFL:=null; LS_BAE465:=null; LS_BAEMC0:=null;--国家病种名称 LS_TSBZBHTONULL_NUM:=0;--门诊特殊病种转为空值发送字典(变量) LS_TSBZBHTCBZF_NUM:=0;--门诊统筹不支付特殊病种字典(变量) LS_TSBZBHGWYTJ_NUM:=0;--门诊公务员体检特殊病种字典(变量) LS_BZDYBH_bkea96:=null;--通用字典:门诊统筹不支付特殊病种字典 bkea96属性(Y或N) LS_BZDYBH_aka078:=null;--通用字典:门诊公务员体检特殊病种字典 aka078值(60) --泉州:特殊病种:公务员体检以及门诊统筹不支付业务处理 by MZSF-20211126-004--begin-- if trim(LS_TSBZBH) is not null and trim(LS_TSBZBH) not in ('无') then begin select MC0000,TSBZFL,trim(nvl(BAE465,BH0000))BAE465,substrb(trim(nvl(BAEMC0,MC0000)),1,100) as BAEMC0 into LS_TSBZMC,LS_TSBZFL,LS_BAE465,LS_BAEMC0 from BM_TSBZB0 where trim(BH0000)=ls_TSBZBH and YBZXLB =LS_YBZXLB; exception when no_data_found then LS_TSBZMC:=''; LS_TSBZFL:=''; LS_BAE465:=null; LS_BAEMC0:=null;--国家病种名称 end; --门诊特殊病种转为空值发送字典(变量) begin select count(1) into LS_TSBZBHTONULL_NUM from BM_TYZD00 where ZDMC00='门诊特殊病种转为空值发送字典' and BH0000=trim(LS_TSBZBH) and YXBZ00='1'; exception when others then LS_TSBZBHTONULL_NUM:=0; --门诊特殊病种转为空值发送字典(变量) end; --门诊统筹不支付特殊病种字典(变量) begin select count(1) as num,substrb(max(BZDYBH),1,3) as bkea96 into LS_TSBZBHTCBZF_NUM,LS_BZDYBH_bkea96 from BM_TYZD00 where ZDMC00='门诊统筹不支付特殊病种字典' and BH0000=trim(LS_TSBZBH) and YXBZ00='1'; exception when others then LS_TSBZBHTCBZF_NUM:=0; --门诊统筹不支付特殊病种字典(变量) LS_BZDYBH_bkea96:=null;--通用字典:门诊统筹不支付特殊病种字典 bkea96属性(Y或N) end; --门诊公务员体检特殊病种字典(变量) begin select count(1) as num,substrb(max(BZDYBH),1,3) as aka078 into LS_TSBZBHGWYTJ_NUM,LS_BZDYBH_aka078 from BM_TYZD00 where ZDMC00='门诊公务员体检特殊病种字典' and BH0000=trim(LS_TSBZBH) and YXBZ00='1'; exception when others then LS_TSBZBHGWYTJ_NUM:=0; --门诊公务员体检特殊病种字典(变量) LS_BZDYBH_aka078:=null;--通用字典:门诊公务员体检特殊病种字典 aka078值(60) end; LS_BAKXML:=substrb(''||LS_TSBZBH_ord||''||''||LS_BZDYBH_bkea96||''||''||LS_BZDYBH_aka078||'',1,200);--HIS备用字段(xml格式)后续扩展 end if; --LS_TSBZBHTONULL_NUM:门诊特殊病种转为空值发送字典(变量) if nvl(LS_TSBZBHTONULL_NUM,0)>0 then LS_TSBZBH:=null; LS_AAZ149:=null; LS_bae465:=null; LS_BAEMC0:=null;--国家病种名称 LS_TSBZMC:=null; LS_TSBZFL:=null; end if; --泉州:公务员体检以及门诊统筹不支付业务处理 by MZSF-20211126-004--begin-- --新医保接口--begin-- if LS_TSBZFL in ('2') then --单病种优先级最高 LS_BRLBBH:='4';--4:单病种 else LS_BRLBBH:='0';--0:普通 end if; Ls_Errors:='开始医保变量初始化'; LS_YBBZ00:='0';-- varchar2(2) ,--自助机填写:医保标志(区分新旧医保)1:新医保,0:旧医保 LS_aaz501:=null;-- varchar2(32) ,--自助机填写:卡识别码 LS_bke286:='2';-- varchar2(3) ,--自助机填写:结算标识 0:预结算 1:中途结算 2:门诊结算/出院结算 LS_bke241:=null;-- varchar2(3) ,--自助机填写:数据来源 if trim(LS_YBKH00)='0' then LS_aaz500:=null; -- varchar2(30) ,--his填写:社会保障卡号 else LS_aaz500:=trim(LS_YBKH00);-- end if; if trim(LS_YBID00)='0' then LS_aac002:=null;-- varchar2(30) ,--his填写:证件号码(社会保障号) else LS_aac002:=trim(LS_YBID00); end if; LS_aac003:=trim(LS_BRXM00);-- varchar2(50) ,--his填写:姓名 if LS_BRXB00='男' then LS_aac004:='1';-- varchar2(1) ,--his填写:性别 1男 2女 else LS_aac004:='2'; end if; LS_akc023:=LS_BRNL00;-- number(3) ,--his填写:年龄 --LS_bke298:=LS_YBJKID;-- varchar2(32) ,--his填写:his收费单据流水号 LS_bke042:=LS_GHID00;-- varchar2(32) ,--his填写:his流水号 LS_aab034:=null;-- varchar2(8) ,--医保返回:所属经办机构编码(分中心编码) LS_aab034_mc:=substrb(LS_YBMC00,1,100);-- varchar2(100) ,--医保返回:所属经办机构编码名称(分中心名称) LS_akc069:='0';-- varchar2(3) ,--his填写:急诊标志 0 否,1 是 LS_akc066:='0';-- varchar2(3) ,--his填写:外伤标志 0 否,1 是 if (trim(LS_TSBZBH)='无') or (trim(LS_TSBZBH) is null ) then LS_aaz149:=null; else LS_aaz149:=trim(LS_TSBZBH);-- varchar2(20) ,--his填写:特殊病种编号 end if; if (trim(LS_TSBZMC)='无') or (trim(LS_TSBZMC) is null ) then LS_aka121:=null;-- varchar2(50) ,--his填写:特殊病种名称 else LS_aka121:=trim(LS_TSBZMC); end if; LS_akf001:=LS_akf001; --his填写:院内科室编码 LS_akf002:=LS_akf002; --his填写:院内科室名称 LS_bkf237:=LS_bkf237; --his填写:医保科室编码 LS_bkf238:=LS_bkf238; --his填写:医保科室名称 LS_bkc014:=to_char(sysdate,'YYYYMMDD');-- varchar2(8) ,--his填写:实际就诊日期 LS_bkc171:=to_char(sysdate,'HH24MISS');-- varchar2(6) ,--his填写:实际就诊时间 LS_akc192:=to_char(sysdate,'yyyymmddhh24miss');-- varchar2(14) ,--his填写:实际门诊/入院日期 LS_aae030:=null;-- varchar2(8) ,--his填写:择日住院起始日期 LS_aae031:=null;-- varchar2(8) ,--his填写:择日住院截止日期 LS_bka190:='Y';-- varchar2(2) ,--his填写:是否共济扣款 y:共济扣款 n:不共济扣款 LS_akc193:=null;-- varchar2(50) ,--his填写:入院登记主诊断编码 LS_bka535:=null;-- varchar2(3) ,--his填写:医师诊查费等级 LS_bkea92:=null;-- varchar2(6) ,--his填写:保健体检项目编号 LS_aka042:=null;-- varchar2(3) ,--his填写:住院类别 LS_akc194:=null;-- varchar2(14) ,--his填写:出院日期 LS_bke078:=null;-- varchar2(3) ,--his填写:离院方式 LS_bke058:=null;-- varchar2(4) ,--his填写:住院天数 LS_amc029:=null;-- varchar2(3) ,--his填写:计划生育手术类别 LS_amc026:=null;-- varchar2(3) ,--his填写:生育类别 LS_amc028:=null;-- varchar2(3) ,--his填写:胎儿数 LS_amc020:=null;-- varchar2(8) ,--his填写:计划生育手术或生育日期 LS_bmc041:=null;-- varchar2(3) ,--his填写:怀孕天数 LS_bkc007:=LS_bkc007; --医疗服务人员证件号码 LS_bkc006:=LS_bkc006; --医疗服务人员姓名 LS_itemcount:=0;-- number(3) ,--his填写:明细项目数量 if LS_YBGHH0 not in ('0') then LS_akc190:=trim(LS_YBGHH0); else LS_akc190:=null;-- varchar2(16) ,--医保返回:医保门诊挂号流水号/住院登记流水号 end if; LS_bke297:=null;-- varchar2(20) ,--医保返回:医保明细流水号 LS_aae072:=null;-- varchar2(16) ,--医保返回:医保收费流水号 LS_aac999:=null;-- varchar2(20) ,--医保返回:个人管理码地市唯一标识码(id0000) LS_bka531:=null;-- varchar2(1) ,--医保返回: 是否精准扶贫对象 LS_bkc001:=null;-- varchar2(3) ,--医保返回:人员待遇类别 LS_bkc001_mc:=null;-- varchar2(30) ,--医保返回:人员待遇类别名称 LS_bkc026:=null;-- varchar2(3) ,--医保返回:医疗待遇状态 LS_bkc026_mc:=null;-- varchar2(30) ,--医保返回:医疗待遇状态名称 LS_bke174:=null;-- varchar2(3) ,--医保返回:异地就医类型 LS_bke174_mc:=null;-- varchar2(30) ,--医保返回:异地就医类型名称 LS_akc227:=0;-- number(12,2) ,--医保返回:医疗费总金额=个人现金支付金额+个人账户支付金额+基金支付总额 LS_bkc040:=0;-- number(12,2) ,--医保返回:个人现金支付金额(实付现金) LS_bkc041:=0;-- number(12,2) ,--医保返回:个人账户支付金额 LS_bkc102:=0;-- number(12,2) ,--医保返回:医保基金支付总额=统筹基金支付+商保基金支付+公务员医疗补助+精准扶贫医疗叠加+医疗救助基金+其他基金支付+企业补充 LS_bkc045:=0;-- number(12,2) ,--医保返回:其中:统筹基金支付 LS_bkc052:=0;-- number(12,2) ,--医保返回:其中:大病保险基金支付(商保支付或商业保险) LS_bkc059:=0;-- number(12,2) ,--医保返回:公务员医疗补助 LS_bkc062:=0;-- number(12,2) ,--医保返回:其中:精准扶贫医疗叠加 LS_bkc060:=0;-- number(12,2) ,--医保返回:其中:医疗救助基金 LS_ake173:=0;-- number(12,2) ,--医保返回:其中:其他基金支付 LS_ake026:=0;-- number(12,2) ,--医保返回:其中:企业补充 LS_bke921:=0;-- varchar2(40) ,--医保返回:(家庭健康)共济账户扣款人 LS_bke922:=0;-- varchar2(40) ,--医保返回:(家庭健康)共济账户扣款人金额 LS_bkc166:=0;-- number(12,2) ,--医保返回:(其中)一般诊疗费补偿金额 LS_bkc167:=0;-- number(12,2) ,--医保返回:(其中)一般诊疗费个人支付金额 LS_bkc011:=0;-- number(12,2) ,--医保返回:个人自费(非医保费用) LS_akc087:=0;-- number(12,2) ,--医保返回:个人账户余额 LS_bkc591:=0;-- number(12,2) ,--医保返回:家庭共济账户余额 LS_bkc075:=0;-- number(12,2) ,--医保返回:家庭共济账户支付 LS_bkc054:=0;-- number(12,2) ,--医保返回:商保账户支付 LS_bkc612:=0;-- number(12,2) ,--医保返回:补助基金支付bkc612=bkc052 大病保险基金支付+bkc059公务员医疗补助+bkc062精准扶贫医疗叠加+bkc060医疗救助基金+ake173 其他基金支付+ake026企业补充+bkc061保健基金支付 LS_bkc061:=0;-- number(12,2) ,--医保返回:其中:保健基金支付 LS_bkc077:=0;-- number(12,2) ,--医保返回:其中:账户支付 LS_bkc076:=0;-- number(12,2) ,--医保返回:其中:健康账户支付 LS_ake094:=0;-- number(12,2) ,--医保返回:个人自付 LS_bkc160:=0;-- number(12,2) ,--医保返回:公务员体检帐户余额 LS_bkc079:=0;-- number(12,2) ,--医保返回:健康账户余额 LS_bkec26:=0;-- number(12,2) ,--医保返回:职工医疗互助 LS_bkc101:=0;-- number(12,2) ,--医保返回:除外耗材范围内费用 LS_bkc125:=0;-- number(12,2) ,--医保返回:超标床位费 LS_bkc053:=0;-- number(12,2) ,--医保返回:商保现金支付 LS_aka151:=0;-- number(12,2) ,--医保返回:统筹支付医保费用起付标准 LS_aka150:=null;-- number(3) ,--医保返回:本年度住院次数 LS_bka193:=null;-- varchar2(3) ,--医保返回:保健级别 LS_bka193_mc:=null;-- varchar2(50) ,--医保返回:保健级别名称 LS_bka555:=null;-- varchar2(3) ,--医保返回:对账数据分类 LS_bka188:=null;-- varchar2(2) ,--医保返回:是否进入单病种结算 LS_ake007:=null;-- varchar2(8) ,--医保返回:费用发生日期(结算日期) LS_bae029:=null;-- varchar2(4) ,--医保返回:费用发生时间(结算时间) LS_aae011:=null;-- varchar2(20) ,--医保返回:收费人 LS_bka079:=null;-- number(12,2) ,--his填写:收付费定额 LS_akc196:=null;-- varchar2(50) ,--his填写:出院主要诊断 LS_bkc038:=null;-- varchar2(50) ,--his填写:出院次要诊断 LS_bkc039:=null;-- varchar2(50) ,--his填写:出院第三诊断 LS_ake021:=null;-- varchar2(50) ,--his填写:出院诊断医生 LS_bkc511:=null;-- varchar2(50) ,--his填写:医保签约号 LS_bae113:=null;-- varchar2(50) ,--his填写:签约受理人身份证号 LS_bkc023:=null;-- varchar2(50) ,--his填写:签约人关系 LS_itemcountys:=null;-- varchar2(4) ,--his填写:医生数量 LS_bke598:=null;-- varchar2(14) ,--his填写:签约开始日期 LS_bke599:=null;-- varchar2(14) ,--his填写: 签约截至日期 LS_bkc512:=null;-- varchar2(20) ,--his填写:医院签约号 LS_aae005:=null;-- varchar2(20) ,--his填写:联系电话 LS_aae006:=null;-- varchar2(200) ,--his填写:通讯地址 LS_bke466:=null;-- varchar2(100) ,--his填写:签约病种 LS_bke467:=null;-- varchar2(200) ,--his填写: 服务内容 LS_bke468:=null;-- varchar2(10) ,--his填写: 服务方式 LS_OutYbghJson:=null;-- varchar2(2000) ,--医保返回:医保登记返回的消息串 LS_OutYbsfJson:=null;-- varchar2(4000) --医保返回:医保收费返回的消息串 --医疗就诊方式aka078: 10:门(急)诊 20:住院 40:药店购药 60:体检 81:生育门诊 82:生育住院 91:工伤门诊 92:工伤住院 50:特殊门诊(漳州地区) LS_aka078:=SF_SF_GETYBSXZD(LS_BRID00,'0','aka078',LS_aaz149,nvl(LS_BRLBBH,'0'),'');-- varchar2(3) ,--his填写:医疗就诊方式 --医疗类别aka130:11:普通门诊 12:急诊 13:门诊慢(特)病种 16:急诊观留床 21:普通住院 29:择日住院 31:家庭病床 34:按病种住院 42:处方购药 43:非处方购药 A1:体检 52:生育住院 LS_aka130:=SF_SF_GETYBSXZD(LS_BRID00,'0','aka130',LS_aaz149,nvl(LS_BRLBBH,'0'),'');-- varchar2(3) ,--his填写:医疗类别 --数据来源bke241: 50:收费终端 51:自助终端 52:医生工作站 53:移动支付 LS_BKE241:='51';--SF_SF_GETYBSXZD(LS_BRID00,'0','bke241',LS_aaz149,nvl(LS_BRLBBH,'0'),''); if instrb(LS_GHKSMC,'公务员')>0 then LS_AKA078:='60';--60:体检 LS_AKA130:='A3'; end if; --bka535:医师诊查费等级 110 普通医师 111 主治医师 112 副主任医师 113 主任医师 114 专家 120 普通医师[中医辩证] 121 主治医师[中医辩证] 122 副主任医师[中医辩证] 123 主任医师[中医辩证] 124 国医大师[中医辩证] if instrb(LS_LBMC00,'主治医师')>0 then LS_BKA535:='111'; elsif instrb(LS_LBMC00,'副主任医师')>0 then LS_BKA535:='112'; elsif instrb(LS_LBMC00,'主任医师')>0 then LS_BKA535:='113'; elsif instrb(LS_LBMC00,'专家')>0 then LS_BKA535:='114'; elsif instrb(LS_LBMC00,'普通医师[中医辩证]')>0 then LS_BKA535:='120'; elsif instrb(LS_LBMC00,'主治医师[中医辩证]')>0 then LS_BKA535:='121'; elsif instrb(LS_LBMC00,'副主任医师[中医辩证]')>0 then LS_BKA535:='122'; elsif instrb(LS_LBMC00,'主任医师[中医辩证]')>0 then LS_BKA535:='123'; elsif instrb(LS_LBMC00,'国医大师[中医辩证]')>0 then LS_BKA535:='124'; else LS_BKA535:='110'; end if; --医师诊金等级接口编码 if LS_YSZJDJ is not null then LS_BKA535:=LS_YSZJDJ; end if; --挂号类别名称包含急诊,AKA130 医疗类别 12 急诊 if instrb(LS_LBMC00,'急诊')>0 then LS_AKA130:='12'; end if; --350128:平潭 359900:省直(K) 350100:福州(A) 350300:莆田(B) 350500:泉州(C) 350200:厦门(D) 350600:漳州(E) 350800:龙岩(F) 350400: 三明(G) 350700:南平(H) 350900:宁德(J) if trim(LS_aaz500) is not null then LS_KHQZ00:=substrb(LS_aaz500,1,1); end if; if trim(LS_XZQH00) is not null and trim(LS_XZQH00) not in ('本地') then LS_aab034:=substrb(trim(LS_XZQH00),1,8); else if LS_KHQZ00='K' then LS_aab034:='359900'; --省直 elsif LS_KHQZ00='A' then LS_aab034:='350100'; --福州 elsif LS_KHQZ00='B' then LS_aab034:='350300'; --莆田 elsif LS_KHQZ00='C' then LS_aab034:='350500'; --泉州 elsif LS_KHQZ00='D' then LS_aab034:='350200'; --厦门 elsif LS_KHQZ00='E' then LS_aab034:='350600'; --漳州 elsif LS_KHQZ00='F' then LS_aab034:='350800'; --龙岩 elsif LS_KHQZ00='G' then LS_aab034:='350400'; --三明 elsif LS_KHQZ00='H' then LS_aab034:='350700'; --南平 elsif LS_KHQZ00='J' then LS_aab034:='350900'; --宁德 end if; end if; if LS_FBBH00=3 then LS_aab301:=substrb(SF_SF_AAB301(LS_BRID00, LS_XZQH00, LS_AAZ500),1,10); --参保地行政区划 end if; --LS_psnNo:=substrb(SF_SF_GETYBSXZD(LS_BRID00,'0','psnno',LS_aaz149,LS_FZXBH0,'sst'),1,30);--移动医保支付:人员编码 LS_psnNo:=substrb(BM_PSN_NO,1,30); LS_insuType:=substrb(SF_SF_GETYBSXZD(LS_BRID00,'0','insutype',LS_aaz149,LS_FZXBH0,'sst'),1,10);--移动医保支付:险种类型(310:职工基本医疗保险 390:城乡居民基本医疗保险 320:公务员医疗补助 392:城乡居民大病医疗保险 330:大额医疗费用补助 510:生育保险 340:离休人员医疗保障 ) LS_psnSetlway:='01';--varchar2(10) null ,--移动医保支付:结算方式(01:按项目结算 02:按定额结算) LS_ectoken:=null;--varchar2(100) null ,--移动医保支付:电子凭证解码返回 LS_insuCode:=substrb(LS_aab301,1,10);--varchar2(10) null ,--移动医保支付:参保人所在统筹区编码 LS_chrgBchno:=null;--varchar2(50) null ,--移动医保支付:收费批次号 LS_mainCondDscr:=substrb(LS_BQZDMS,1,1000);--varchar2(1000) null --移动医保支付:主要病情描述 8包需要 Ls_Errors:='结束医保变量初始化'; --2020.11.30 根据挂号日期和时间转化--begin--- if trim(LS_GHRQ00) is not null and trim(LS_GHRQ00) not in ('0','20991231') and LS_SFFSGHRQ='1' then --1:发送挂号日期和时间 begin LS_YXTSNUM:=to_date(LS_CZRQ00,'YYYYMMDD')-to_date(LS_GHRQ00,'YYYYMMDD'); --有效天数临时变量 exception when others then LS_YXTSNUM:=0; LS_FSGHRQTS:=-1; end; if LS_YXTSNUM<=LS_FSGHRQTS then --当前时间-挂号日期<=系统设置的有效时间 LS_BKC014:=LS_GHRQ00; --实际就诊日期 门诊为实际就诊日期,住院为实际出院日期(或中途结算日期) if LS_GHSJ00 is not null then LS_BKC171:=rpad(substrb(LS_GHSJ00,1,2)||substrb(LS_GHSJ00,4,2)||substrb(LS_GHSJ00,7,2),6,'0'); --实际就诊时间 住院指病人实际出院时间 end if; LS_AKC192:=LS_BKC014||LS_BKC171;--实际门诊/入院日期 格式:yyyymmddhh24miss end if; end if; --2020.11.27 根据挂号日期和时间转化--end-- --2021.05.27 判断aac002是否是身份证 if SP_SF_CHECKSFZH(LS_BRZJBH)=1 and length(LS_BRZJBH)=18 then LS_aac002:=trim(LS_BRZJBH); end if; --门诊公务员体检特殊病种字典 if nvl(LS_TSBZBHGWYTJ_NUM,0)>0 and LS_BZDYBH_aka078 is not null then LS_AKA078:=LS_BZDYBH_aka078;--医疗就诊方式 end if; --新医保接口--End-- ----------不分开结算----------begin---------- if LS_SFFKJS='N' and LS_AYPXZFKJS='N' then Ls_Errors:='不分开结算开始'; select SST_JSDP_JBXX_XTGZH0.nextval into LS_XTGZH0 from dual; select SQ_SF_YBJKRZ_YBJKID.nextval into LS_YBJKID from dual; -- number(12) ,--医保接口ID(HIS内部使用) LS_bke298:=LS_YBJKID;-- varchar2(32) ,--his填写:his收费单据流水号 --厦门医保 bke042:his流水号 挂号、明细上传、结算保存一致 if LS_GHID00>0 and LS_HISLSHQZFS not in ('Y') then LS_bke042:=LS_GHID00;-- varchar2(32) ,--his填写:his流水号 else LS_bke042:=LS_YBJKID;-- varchar2(32) ,--his填写:his流水号 end if; /* --挂号表,bke042有值直接取该值 if LS_GH_bke042 is not null and LS_GH_bke042 not in ('0') then LS_bke042:=LS_GH_bke042; end if; */ if (trim(LS_TSBZBH)='无') or (trim(LS_TSBZBH) is null ) then LS_SFTSMZ:='N'; LS_MZLX00:='P';--mzlx00:P-普通门诊 T-特殊门诊 if P_FZXBH0 in ('DD','YD','WLZS','APP_DD','YBDZPZ') then --参保机构编号(DD:多点结算 YD:移动结算 YB:医保结算) LS_MZLB00:='11';--病情诊断编码 end if; else LS_SFTSMZ:='Y'; LS_SFTSBZ:='Y'; LS_MZLX00:='T';--mzlx00:P-普通门诊 T-特殊门诊 if P_FZXBH0 in ('DD','YD','WLZS','APP_DD','YBDZPZ') then --参保机构编号(DD:多点结算 YD:移动结算 YB:医保结算) LS_MZLB00:='13';--病情诊断编码 end if; end if; --2021.06.10 增加获特殊病种医保挂号号处理--being-- if LS_aaz149 is not null and LS_aaz149 not in ('无') then if LS_YBGHHT not in ('0') then LS_akc190:=trim(LS_YBGHHT); else LS_akc190:=null;-- end if; else if LS_YBGHH0 not in ('0') then LS_akc190:=trim(LS_YBGHH0); else LS_akc190:=null; end if; end if; LS_MZLSH0:=substrb(nvl(LS_akc190,'无'),1,16); --2021.06.10 增加获特殊病种医保挂号号处理--end-- Ls_Errors:='费用表数据'; --SFLSCF 0:处方表数据 1:医技表数据 2:费用表数据 3:中药待煎费 insert into SST_CFLSH0(XTGZH0,CARDNO,BRID00,GHID00,GHH000,TSBZBH,DJLSH0,FJLSH0,SFLSCF,HJJE00, DJH000,JZDH00,CZRQ00,CZSJ00,YPXZ00) select LS_XTGZH0,P_CARDNO,LS_BRID00,LS_GHID00,LS_GHH000,decode(trim(LS_TSBZBH),'无','',trim(LS_TSBZBH)),A.DJH000,'','2',A.HJJE00, A.DJH000,0,LS_CZRQ00,LS_CZSJ00,'0' from SF_BRFY00 A where brid00=LS_BRID00 and mzid00=LS_GHID00 and mzh000=LS_GHH000 and jzdh00+0=0; Ls_Errors:='未扣费的处方和医技'; insert into SST_CFLSH0(XTGZH0,CARDNO,BRID00,GHID00,GHH000,TSBZBH,DJLSH0,FJLSH0,SFLSCF,HJJE00, DJH000,JZDH00,CZRQ00,CZSJ00,YPXZ00) select LS_XTGZH0,P_CARDNO,LS_BRID00,LS_GHID00,LS_GHH000,decode(trim(LS_TSBZBH),'无','',trim(LS_TSBZBH)),A.DJLSH0,A.ZLDCCF,A.SFLSCF,A.HJJE00, 0,0,LS_CZRQ00,LS_CZSJ00,'0' from VW_SST_WJZCF A where brid00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and ZT0000='0'; Ls_Errors:='处方金额'; Select nvl(sum(HJJE00),0) into LS_CFJE00 from VW_SST_WJZCF where brid00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and DJLSH0 in (select DJLSH0 from SST_CFLSH0 where XTGZH0=LS_XTGZH0 and brid00=LS_BRID00 and SFLSCF in ('0')); Ls_Errors:='费用金额'; Select nvl(sum(b.HJJE00),0),count(1) into LS_FYJE00,LS_CFXMS3 from SF_BRFY00 a,SF_FYMX00 b where a.djh000=b.DJH000 and a.brid00=LS_BRID00 and a.mzid00=LS_GHID00 and a.mzh000=LS_GHH000 and a.jzdh00+0=0 and a.DJH000 in (select DJLSH0 from SST_CFLSH0 where XTGZH0=LS_XTGZH0 and brid00=LS_BRID00 and SFLSCF in ('2')); --处方项目数 begin select count(1) into LS_CFXMS1 from YF_MZCFMX where CFLSH0 in ( Select DJLSH0 from VW_SST_WJZCF where brid00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and CFYJBZ='0' and DJLSH0 in (select DJLSH0 from SST_CFLSH0 where XTGZH0=LS_XTGZH0 and BRID00=LS_BRID00 and SFLSCF in ('0','1'))); exception when NO_DATA_FOUND then LS_CFXMS1:=0; end; --医技金额和项目数 begin select nvl(sum(JJJE00*SL0000*SFCS00),0),count(1) into LS_YJJE00,LS_CFXMS2 from YJ_YWJJ00 where yjdjh0 in ( Select DJLSH0 from VW_SST_WJZCF where brid00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and CFYJBZ='1' and DJLSH0 in (select DJLSH0 from SST_CFLSH0 where XTGZH0=LS_XTGZH0 and BRID00=LS_BRID00 and SFLSCF in ('0','1'))); exception when no_data_found then LS_CFXMS2:=0; end; LS_HJJE00:=nvl(LS_CFJE00,0)+nvl(LS_YJJE00,0)+nvl(LS_FYJE00,0); LS_CFXMS0:=nvl(LS_CFXMS1,0)+nvl(LS_CFXMS2,0)+nvl(LS_CFXMS3,0); ---插入基础表数据HJJE00有可能没有包含待煎费用 --select nvl(ZYE000,0)-nvl(TYJE00,0) into LS_YJJYE0 from SF_BRZHXX where brid00=LS_BRID00; --参数:0 门诊 1住院,BRID00,交费类型:1门诊 2住院 ,返回类型 0:可用余额 1:总余额 2:现金余额 3:停用金额 LS_YJJYE0:=SF_SST_GetBRZHYE_YKT(0,LS_BRID00,1,0); LS_chrgBchno:=LS_XTGZH0;--varchar2(50) null ,--移动医保支付:收费批次号 Ls_Errors:='不分开插入表SST_JSDP_JBXX'; insert into SST_JSDP_JBXX( FBBH00,YBZXLB,YBLB00,YBMC00,YBKH00,YBID00,SFZHAO, XTGZH0,CARDNO,BRID00,JZDH00,GHID00,GHH000,ID0000,XMING0,XBIE00,MZLSH0, BQBM00,BQMC00,BRNL00,BCKBCS,BCSFCS,GHKSMC,SFTSMZ,SFTSBZ,YSXM00, BCFYZE,XJZFFS,JSXXTS,SFSYU0,Serialno,ZDBH00,QBKKQR,HJJE00,KSBM00,YSZJHM, YJJYE0,CFXMS0,SFXTGH,FZXBH0,YYDJH0,YYKSBM,BQZDBM,BQZDMS,MZLB00,YSZJDJ, PJHM,PJLX,PJZCH,JSH,organ,service,fpuser,fppwd,FHJG00,FHXX00,SZZW00,JDPH00, PJHM00,PJLX00,PJMC00,PJZCH0,SFYGWD,MZLX00,CZRQ00,CZSJ00, YBJKID,YBBZ00,aaz501,bke286,bke241,aaz500,aac002,aac003,aac004,akc023, aka078,aka130 ,bke298 ,bke042,aab034,aab034_mc,akc069,akc066,aaz149,aka121, akf001,akf002,bkf237,bkf238,bkc014,bkc171,akc192,aae030,aae031,bka190, akc193,bka535,bkea92,aka042,akc194,bke078,bke058,amc029,amc026,amc028, amc020,bmc041,itemcount,akc190,bke297,aae072,aac999,bka531,bkc001,bkc001_mc, bkc026,bkc026_mc,bke174 ,bke174_mc,akc227,bkc040,bkc041,bkc102,bkc045,bkc052, bkc059,bkc062,bkc060,ake173,ake026,bke921,bke922,bkc166,bkc167,bkc011, akc087,bkc591,bkc075,bkc054,bkc612,bkc061,bkc077,bkc076,ake094,bkc160, bkc079,bkec26,bkc101,bkc125,bkc053,aka151,aka150,bka193,bka193_mc,bka555, bka188,ake007,bae029,aae011,bka079,akc196,bkc038,bkc039,ake021,bkc511, bae113,bkc023,itemcountys,bke598,bke599,bkc512,aae005,aae006,bke466,bke467, bke468,OutYbghJson,OutYbsfJson,bkc006,bkc007,bke284,bkeg23,JSJZZT,YBJSZT, BAE465,yyid00,orgCode,patientType,bkb526,BAKXML, aab301,psnNo,insuType,psnSetlway,ectoken,insuCode,chrgBchno,mainCondDscr, BAEMC0,tsbzbh,bkea96) values( LS_FBBH00,LS_YBZXLB,LS_YBLB00,LS_YBMC00,LS_YBKH00,LS_YBID00,LS_BRZJBH, LS_XTGZH0,P_CARDNO,LS_BRID00,0,LS_GHID00,LS_GHH000,trim(LS_ID0000),trim(LS_BRXM00),decode(LS_BRXB00,'男','1','0'),LS_MZLSH0, nvl(trim(LS_TSBZBH),'无'),nvl(substrb(trim(LS_TSBZMC),1,20),'无'),LS_BRNL00,0,0,LS_GHKSMC,LS_SFTSMZ,LS_SFTSBZ,LS_YSXM00, LS_HJJE00,LS_XJZFFS,'无','N','无',P_ZDBH00,LS_SFSYU0,LS_HJJE00,LS_YYKSBM,LS_YSZJHM, LS_YJJYE0,LS_CFXMS0,LS_SFXTGH,LS_FZXBH0,LS_XTGZH0,LS_YYKSBM,LS_BQZDBM,LS_BQZDMS,LS_MZLB00,LS_YSZJDJ, LS_PJHM,LS_PJLX,LS_PJZCH,LS_JSH,LS_organ,LS_service,LS_fpuser,LS_fppwd,LS_FHJG00,LS_FHXX00,LS_SZZW00,LS_JDPH00, LS_PJHM00,LS_PJLX00,LS_PJMC00,LS_PJZCH0,LS_SFYGWD,LS_MZLX00,LS_CZRQ00,LS_CZSJ00, LS_YBJKID,LS_YBBZ00,LS_aaz501,LS_bke286,LS_bke241,LS_aaz500,LS_aac002,LS_aac003,LS_aac004,LS_akc023, LS_aka078,LS_aka130 ,LS_bke298 ,LS_bke042,LS_aab034,LS_aab034_mc,LS_akc069,LS_akc066,LS_aaz149,LS_aka121, LS_akf001,LS_akf002,LS_bkf237,LS_bkf238,LS_bkc014,LS_bkc171,LS_akc192,LS_aae030,LS_aae031,LS_bka190, LS_akc193,LS_bka535,LS_bkea92,LS_aka042,LS_akc194,LS_bke078,LS_bke058,LS_amc029,LS_amc026,LS_amc028, LS_amc020,LS_bmc041,LS_itemcount,LS_akc190,LS_bke297,LS_aae072,LS_aac999,LS_bka531,LS_bkc001,LS_bkc001_mc, LS_bkc026,LS_bkc026_mc,LS_bke174 ,LS_bke174_mc,LS_akc227,LS_bkc040,LS_bkc041,LS_bkc102,LS_bkc045,LS_bkc052, LS_bkc059,LS_bkc062,LS_bkc060,LS_ake173,LS_ake026,LS_bke921,LS_bke922,LS_bkc166,LS_bkc167,LS_bkc011, LS_akc087,LS_bkc591,LS_bkc075,LS_bkc054,LS_bkc612,LS_bkc061,LS_bkc077,LS_bkc076,LS_ake094,LS_bkc160, LS_bkc079,LS_bkec26,LS_bkc101,LS_bkc125,LS_bkc053,LS_aka151,LS_aka150,LS_bka193,LS_bka193_mc,LS_bka555, LS_bka188,LS_ake007,LS_bae029,LS_aae011,LS_bka079,LS_akc196,LS_bkc038,LS_bkc039,LS_ake021,LS_bkc511, LS_bae113,LS_bkc023,LS_itemcountys,LS_bke598,LS_bke599,LS_bkc512,LS_aae005,LS_aae006,LS_bke466,LS_bke467, LS_bke468,LS_OutYbghJson,LS_OutYbsfJson,LS_bkc006,LS_bkc007,'01','1',LS_JSJZZT,LS_YBJSZT, LS_BAE465,LS_yyid00,LS_orgCode,LS_patientType,LS_bkb526,LS_BAKXML, LS_aab301,LS_psnNo,LS_insuType,LS_psnSetlway,LS_ectoken,LS_insuCode,nvl(LS_chrgBchno,LS_XTGZH0),LS_mainCondDscr, LS_BAEMC0,substrb(LS_HIS_TSBZBH,1,20),substrb(LS_BZDYBH_bkea96,1,2)); end if; Ls_Errors:='不分开结算结束'; ----------不分开结算----------end---------- ----------分开结算----------begin---------- if LS_SFFKJS='Y' or LS_AYPXZFKJS='Y' then --分开结算 Ls_Errors:='分开结算开始'; for CUR_WSF in CUR_SF_WJZCFYJ loop LS_BAE465:=null;--国家病种代码 LS_BAEMC0:=null;--国家病种名称 LS_TSBZBH:=CUR_WSF.TSBZBH; LS_TSBZBH_ORD:=LS_TSBZBH;--特殊病种编号(原来) LS_HIS_TSBZBH:=LS_TSBZBH; --特殊病种编号 if trim(LS_HIS_TSBZBH) in ('无') then LS_HIS_TSBZBH:=null; end if; LS_YPXZ00:=CUR_WSF.YPXZ00; select SST_JSDP_JBXX_XTGZH0.nextval into LS_XTGZH0 from dual; select SQ_SF_YBJKRZ_YBJKID.nextval into LS_YBJKID from dual; -- number(12) ,--医保接口ID(HIS内部使用) LS_bke298:=LS_YBJKID;-- varchar2(32) ,--his填写:his收费单据流水号 --厦门医保 bke042:his流水号 挂号、明细上传、结算保存一致 if LS_GHID00>0 and LS_HISLSHQZFS not in ('Y') then LS_bke042:=LS_GHID00;-- varchar2(32) ,--his填写:his流水号 else LS_bke042:=LS_YBJKID;-- varchar2(32) ,--his填写:his流水号 end if; LS_TSBZMC:=null; LS_TSBZFL:=null; LS_BAE465:=null; LS_BAEMC0:=null;--国家病种名称 LS_TSBZBHTONULL_NUM:=0;--门诊特殊病种转为空值发送字典(变量) LS_TSBZBHTCBZF_NUM:=0;--门诊统筹不支付特殊病种字典(变量) LS_TSBZBHGWYTJ_NUM:=0;--门诊公务员体检特殊病种字典(变量) LS_BZDYBH_bkea96:=null;--通用字典:门诊统筹不支付特殊病种字典 bkea96属性(Y或N) LS_BZDYBH_aka078:=null;--通用字典:门诊公务员体检特殊病种字典 aka078值(60) --泉州:特殊病种:公务员体检以及门诊统筹不支付业务处理 by MZSF-20211126-004--begin-- if trim(LS_TSBZBH) is not null and trim(LS_TSBZBH) not in ('无') then begin select MC0000,TSBZFL,trim(nvl(BAE465,BH0000))BAE465,substrb(trim(nvl(BAEMC0,MC0000)),1,100) as BAEMC0 into LS_TSBZMC,LS_TSBZFL,LS_BAE465,LS_BAEMC0 from BM_TSBZB0 where trim(BH0000)=ls_TSBZBH and YBZXLB =LS_YBZXLB; exception when no_data_found then LS_TSBZMC:=''; LS_TSBZFL:=''; LS_BAE465:=null; LS_BAEMC0:=null;--国家病种名称 end; --门诊特殊病种转为空值发送字典(变量) begin select count(1) into LS_TSBZBHTONULL_NUM from BM_TYZD00 where ZDMC00='门诊特殊病种转为空值发送字典' and BH0000=trim(LS_TSBZBH) and YXBZ00='1'; exception when others then LS_TSBZBHTONULL_NUM:=0; --门诊特殊病种转为空值发送字典(变量) end; --门诊统筹不支付特殊病种字典(变量) begin select count(1) as num,substrb(max(BZDYBH),1,3) as bkea96 into LS_TSBZBHTCBZF_NUM,LS_BZDYBH_bkea96 from BM_TYZD00 where ZDMC00='门诊统筹不支付特殊病种字典' and BH0000=trim(LS_TSBZBH) and YXBZ00='1'; exception when others then LS_TSBZBHTCBZF_NUM:=0; --门诊统筹不支付特殊病种字典(变量) LS_BZDYBH_bkea96:=null;--通用字典:门诊统筹不支付特殊病种字典 bkea96属性(Y或N) end; --门诊公务员体检特殊病种字典(变量) begin select count(1) as num,substrb(max(BZDYBH),1,3) as aka078 into LS_TSBZBHGWYTJ_NUM,LS_BZDYBH_aka078 from BM_TYZD00 where ZDMC00='门诊公务员体检特殊病种字典' and BH0000=trim(LS_TSBZBH) and YXBZ00='1'; exception when others then LS_TSBZBHGWYTJ_NUM:=0; --门诊公务员体检特殊病种字典(变量) LS_BZDYBH_aka078:=null;--通用字典:门诊公务员体检特殊病种字典 aka078值(60) end; LS_BAKXML:=substrb(''||LS_TSBZBH_ord||''||''||LS_BZDYBH_bkea96||''||''||LS_BZDYBH_aka078||'',1,200);--HIS备用字段(xml格式)后续扩展 end if; --LS_TSBZBHTONULL_NUM:门诊特殊病种转为空值发送字典(变量) if nvl(LS_TSBZBHTONULL_NUM,0)>0 then LS_TSBZBH:=null; LS_AAZ149:=null; LS_bae465:=null; LS_BAEMC0:=null;--国家病种名称 LS_TSBZMC:=null; LS_TSBZFL:=null; end if; --泉州:公务员体检以及门诊统筹不支付业务处理 by MZSF-20211126-004--begin-- if (trim(LS_TSBZBH)='无') or (trim(LS_TSBZBH) is null ) then LS_SFTSMZ:='N'; LS_MZLX00:='P';--mzlx00:P-普通门诊 T-特殊门诊 if P_FZXBH0 in ('DD','YD','WLZS','APP_DD','YBDZPZ') then --参保机构编号(DD:多点结算 YD:移动结算 YB:医保结算) LS_MZLB00:='11';--病情诊断编码 end if; else LS_SFTSMZ:='Y'; LS_SFTSBZ:='Y'; LS_MZLX00:='T';--mzlx00:P-普通门诊 T-特殊门诊 if P_FZXBH0 in ('DD','YD','WLZS','APP_DD','YBDZPZ') then --参保机构编号(DD:多点结算 YD:移动结算 YB:医保结算) LS_MZLB00:='13';--病情诊断编码 end if; end if; if LS_TSBZFL in ('2') then --单病种优先级最高 LS_BRLBBH:='4';--4:单病种 else LS_BRLBBH:='0';--0:普通 end if; if (trim(LS_TSBZBH)='无') or (trim(LS_TSBZBH) is null ) then LS_aaz149:=null; else LS_aaz149:=trim(LS_TSBZBH);-- varchar2(20) ,--his填写:特殊病种编号 end if; if (trim(LS_TSBZMC)='无') or (trim(LS_TSBZMC) is null ) then LS_aka121:=null;-- varchar2(50) ,--his填写:特殊病种名称 else LS_aka121:=trim(LS_TSBZMC); end if; --医疗就诊方式aka078: 10:门(急)诊 20:住院 40:药店购药 60:体检 81:生育门诊 82:生育住院 91:工伤门诊 92:工伤住院 50:特殊门诊(漳州地区) LS_aka078:=SF_SF_GETYBSXZD(LS_BRID00,'0','aka078',LS_aaz149,nvl(LS_BRLBBH,'0'),'');-- varchar2(3) ,--his填写:医疗就诊方式 --医疗类别aka130:11:普通门诊 12:急诊 13:门诊慢(特)病种 16:急诊观留床 21:普通住院 29:择日住院 31:家庭病床 34:按病种住院 42:处方购药 43:非处方购药 A1:体检 52:生育住院 LS_aka130:=SF_SF_GETYBSXZD(LS_BRID00,'0','aka130',LS_aaz149,nvl(LS_BRLBBH,'0'),'');-- varchar2(3) ,--his填写:医疗类别 --数据来源bke241: 50:收费终端 51:自助终端 52:医生工作站 53:移动支付 LS_BKE241:='51';--SF_SF_GETYBSXZD(LS_BRID00,'0','bke241',LS_aaz149,nvl(LS_BRLBBH,'0'),''); --2021.06.10 增加获特殊病种医保挂号号处理--being-- if LS_aaz149 is not null and LS_aaz149 not in ('无') then if LS_YBGHHT not in ('0') then LS_akc190:=trim(LS_YBGHHT); else LS_akc190:=null;-- end if; else if LS_YBGHH0 not in ('0') then LS_akc190:=trim(LS_YBGHH0); else LS_akc190:=null; end if; end if; LS_MZLSH0:=substrb(nvl(LS_akc190,'无'),1,16); --2021.06.10 增加获特殊病种医保挂号号处理--end-- if LS_GHID00>0 then begin select A.GHRQ00,A.GHSJ00 into LS_GHRQ00,LS_GHSJ00 from SF_BRXXB0 A where A.GHID00=LS_GHID00 and A.BRID00=LS_BRID00; exception when others then LS_GHRQ00:=to_char(sysdate,'YYYYMMDD'); LS_GHSJ00:=to_char(sysdate,'HH24:MI:SS'); end; end if; --2020.11.30 根据挂号日期和时间转化--begin--- if trim(LS_GHRQ00) is not null and trim(LS_GHRQ00) not in ('0','20991231') and LS_SFFSGHRQ='1' then --1:发送挂号日期和时间 begin LS_YXTSNUM:=to_date(LS_CZRQ00,'YYYYMMDD')-to_date(LS_GHRQ00,'YYYYMMDD'); --有效天数临时变量 exception when others then LS_YXTSNUM:=0; LS_FSGHRQTS:=-1; end; if LS_YXTSNUM<=LS_FSGHRQTS then --当前时间-挂号日期<=系统设置的有效时间 LS_BKC014:=LS_GHRQ00; --实际就诊日期 门诊为实际就诊日期,住院为实际出院日期(或中途结算日期) if LS_GHSJ00 is not null then LS_BKC171:=rpad(substrb(LS_GHSJ00,1,2)||substrb(LS_GHSJ00,4,2)||substrb(LS_GHSJ00,7,2),6,'0'); --实际就诊时间 住院指病人实际出院时间 end if; LS_AKC192:=LS_BKC014||LS_BKC171;--实际门诊/入院日期 格式:yyyymmddhh24miss end if; end if; --2020.11.27 根据挂号日期和时间转化--end-- --门诊公务员体检特殊病种字典 if nvl(LS_TSBZBHGWYTJ_NUM,0)>0 and LS_BZDYBH_aka078 is not null then LS_AKA078:=LS_BZDYBH_aka078;--医疗就诊方式 end if; --未结算的费用 :SFLSCF 0:处方表数据 1:医技表数据 2:费用表数据 3:中药待煎费 --插入记账未结算非病种的费用 insert into SST_CFLSH0(XTGZH0,CARDNO,BRID00,GHID00,GHH000,TSBZBH,DJLSH0,FJLSH0,SFLSCF,HJJE00, DJH000,JZDH00,CZRQ00,CZSJ00,YPXZ00) select LS_XTGZH0,P_CARDNO,LS_BRID00,LS_GHID00,LS_GHH000,decode(trim(LS_TSBZBH),'无','',trim(LS_TSBZBH)),A.DJH000,'','2',A.HJJE00, A.DJH000,0,LS_CZRQ00,LS_CZSJ00,SF_SF_GETCFYPXZ(D.DJH000,'0') from SF_FYMX00 A,BM_YYSFXM B,SF_BRFY00 D,BM_FPXM00 E where 1=1 and A.XMBH00 = B.SFXMID and A.DJH000 = D.DJH000 and B.MZFPID = E.FPXMID and D.JZDH00+0 = 0 and D.BRID00 =LS_BRID00 and D.CZRQ00>=LS_KSRQ00 and D.CZRQ00<=LS_JSRQ00 and D.MZH000 =LS_GHH000 and not exists ( select 1 from VW_SF_YBTZBZ e where e.brid00=d.brid00 and e.djh000=decode(nvl(d.CXDJH0,0),0,d.djh000,D.CXDJH0) and e.tsbzbh in ( select TSBZBH from VW_SST_WJZCF where BRID00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and nvl(trim(TSBZBH),'无') not in ('无') and TSBZBH is not null ) ) and A.DJH000 not in (select AA.DJH000 from SST_CFLSH0 AA where AA.BRID00=LS_BRID00 and AA.GHID00=LS_GHID00 ); --查询本费用对应的已记账未结算费用 insert into SST_CFLSH0(XTGZH0,CARDNO,BRID00,GHID00,GHH000,TSBZBH,DJLSH0,FJLSH0,SFLSCF,HJJE00, DJH000,JZDH00,CZRQ00,CZSJ00,YPXZ00) select LS_XTGZH0,P_CARDNO,LS_BRID00,LS_GHID00,LS_GHH000,decode(trim(LS_TSBZBH),'无','',trim(LS_TSBZBH)),A.DJH000,'','2',A.HJJE00, A.DJH000,0,LS_CZRQ00,LS_CZSJ00,SF_SF_GETCFYPXZ(D.DJH000,'0') from SF_FYMX00 A,BM_YYSFXM B,SF_BRFY00 D,BM_FPXM00 E where 1=1 and A.XMBH00 = B.SFXMID and A.DJH000 = D.DJH000 and B.MZFPID = E.FPXMID and D.JZDH00+0 = 0 and D.BRID00 =LS_BRID00 and D.CZRQ00>=LS_KSRQ00 and D.CZRQ00<=LS_JSRQ00 and D.MZH000 =LS_GHH000 and exists ( select 1 from VW_SF_YBTZBZ e where e.brid00=d.brid00 and e.djh000=decode(nvl(d.CXDJH0,0),0,d.djh000,D.CXDJH0) and e.tsbzbh =nvl(LS_TSBZBH_ORD,LS_TSBZBH) ) and A.DJH000 not in (select AA.DJH000 from SST_CFLSH0 AA where AA.BRID00=LS_BRID00 and AA.GHID00=LS_GHID00 ); if LS_ZXCS00=0 then --把未结算的金额和没有单病种的费用挂在第一个单病种 --医技业务表中的挂号费和诊查费 insert into SST_CFLSH0(XTGZH0,CARDNO,BRID00,GHID00,GHH000,TSBZBH,DJLSH0,FJLSH0,SFLSCF,HJJE00, DJH000,JZDH00,CZRQ00,CZSJ00,YPXZ00) select LS_XTGZH0,P_CARDNO,LS_BRID00,LS_GHID00,LS_GHH000,decode(trim(LS_TSBZBH),'无','',trim(LS_TSBZBH)),A.DJLSH0,A.ZLDCCF,A.SFLSCF,A.HJJE00, 0,0,LS_CZRQ00,LS_CZSJ00,A.YPXZ00 from VW_SST_WJZCF A where brid00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and ZT0000='0' and a.FJDJBZ in ('3','4') and A.YPXZ00=LS_YPXZ00; end if; insert into SST_CFLSH0(XTGZH0,CARDNO,BRID00,GHID00,GHH000,TSBZBH,DJLSH0,FJLSH0,SFLSCF,HJJE00, DJH000,JZDH00,CZRQ00,CZSJ00,YPXZ00) select LS_XTGZH0,P_CARDNO,LS_BRID00,LS_GHID00,LS_GHH000,decode(trim(LS_TSBZBH),'无','',trim(LS_TSBZBH)),A.DJLSH0,A.ZLDCCF,A.SFLSCF,A.HJJE00, 0,0,LS_CZRQ00,LS_CZSJ00,A.YPXZ00 from VW_SST_WJZCF A where brid00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and ZT0000='0' and nvl(TSBZBH,'0')=nvl(nvl(LS_TSBZBH_ORD,LS_TSBZBH),'0') and ((LS_ZXCS00=0) or (LS_ZXCS00<>0 and FJDJBZ not in ('3','4') )) and A.YPXZ00=LS_YPXZ00 ; --在医技表的挂号费已经累加就不能在添加 ---处方金额 Select nvl(sum(HJJE00),0) into LS_CFJE00 from VW_SST_WJZCF where brid00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and DJLSH0 in (select DJLSH0 from SST_CFLSH0 where XTGZH0=LS_XTGZH0 and brid00=LS_BRID00 and SFLSCF in ('0')); --费用金额 Select nvl(sum(b.HJJE00),0),count(1) into LS_FYJE00,LS_CFXMS3 from SF_BRFY00 a,SF_FYMX00 b where a.djh000=b.DJH000 and a.brid00=LS_BRID00 and a.mzid00=LS_GHID00 and a.mzh000=LS_GHH000 and a.jzdh00+0=0 and a.DJH000 in (select DJLSH0 from SST_CFLSH0 where XTGZH0=LS_XTGZH0 and brid00=LS_BRID00 and SFLSCF in ('2')); --处方项目数 begin select count(1) into LS_CFXMS1 from YF_MZCFMX where CFLSH0 in ( Select DJLSH0 from VW_SST_WJZCF where brid00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and CFYJBZ='0' and DJLSH0 in (select DJLSH0 from SST_CFLSH0 where XTGZH0=LS_XTGZH0 and BRID00=LS_BRID00 and SFLSCF in ('0','1'))); exception when NO_DATA_FOUND then LS_CFXMS1:=0; end; --医技金额和项目数 begin select nvl(sum(JJJE00),0),count(1) into LS_YJJE00,LS_CFXMS2 from YJ_YWJJ00 where yjdjh0 in ( Select DJLSH0 from VW_SST_WJZCF where brid00=LS_BRID00 and GHID00=LS_GHID00 and GHH000=LS_GHH000 and CFYJBZ='1' and DJLSH0 in (select DJLSH0 from SST_CFLSH0 where XTGZH0=LS_XTGZH0 and BRID00=LS_BRID00 and SFLSCF in ('0','1'))); exception when NO_DATA_FOUND then LS_CFXMS2:=0; end; LS_HJJE00:=nvl(LS_CFJE00,0)+nvl(LS_YJJE00,0)+nvl(LS_FYJE00,0); LS_CFXMS0:=nvl(LS_CFXMS1,0)+nvl(LS_CFXMS2,0)+nvl(LS_CFXMS3,0); ----插入到基础表 --select nvl(ZYE000,0)-nvl(TYJE00,0) into LS_YJJYE0 from SF_BRZHXX where brid00=LS_BRID00; --参数:0 门诊 1住院,BRID00,交费类型:1门诊 2住院 ,返回类型 0:可用余额 1:总余额 2:现金余额 3:停用金额 LS_YJJYE0:=SF_SST_GetBRZHYE_YKT(0,LS_BRID00,1,0); insert into SST_JSDP_JBXX( FBBH00,YBZXLB,YBLB00,YBMC00,YBKH00,YBID00,SFZHAO, XTGZH0,CARDNO,BRID00,JZDH00,GHID00,GHH000,ID0000,XMING0,XBIE00,MZLSH0, BQBM00,BQMC00,BRNL00,BCKBCS,BCSFCS,GHKSMC,SFTSMZ,SFTSBZ,YSXM00, BCFYZE,XJZFFS,JSXXTS,SFSYU0,Serialno,ZDBH00,QBKKQR,HJJE00,KSBM00,YSZJHM, YJJYE0,CFXMS0,SFXTGH,FZXBH0,YYDJH0,YYKSBM,BQZDBM,BQZDMS,MZLB00,YSZJDJ, PJHM,PJLX,PJZCH,JSH,organ,service,fpuser,fppwd,FHJG00,FHXX00,SZZW00,JDPH00, PJHM00,PJLX00,PJMC00,PJZCH0,SFYGWD,MZLX00,CZRQ00,CZSJ00, YBJKID,YBBZ00,aaz501,bke286,bke241,aaz500,aac002,aac003,aac004,akc023, aka078,aka130 ,bke298 ,bke042,aab034,aab034_mc,akc069,akc066,aaz149,aka121, akf001,akf002,bkf237,bkf238,bkc014,bkc171,akc192,aae030,aae031,bka190, akc193,bka535,bkea92,aka042,akc194,bke078,bke058,amc029,amc026,amc028, amc020,bmc041,itemcount,akc190,bke297,aae072,aac999,bka531,bkc001,bkc001_mc, bkc026,bkc026_mc,bke174 ,bke174_mc,akc227,bkc040,bkc041,bkc102,bkc045,bkc052, bkc059,bkc062,bkc060,ake173,ake026,bke921,bke922,bkc166,bkc167,bkc011, akc087,bkc591,bkc075,bkc054,bkc612,bkc061,bkc077,bkc076,ake094,bkc160, bkc079,bkec26,bkc101,bkc125,bkc053,aka151,aka150,bka193,bka193_mc,bka555, bka188,ake007,bae029,aae011,bka079,akc196,bkc038,bkc039,ake021,bkc511, bae113,bkc023,itemcountys,bke598,bke599,bkc512,aae005,aae006,bke466,bke467, bke468,OutYbghJson,OutYbsfJson,bkc006,bkc007,bke284,bkeg23,JSJZZT,YBJSZT, BAE465,yyid00,orgCode,patientType,bkb526,BAKXML,BAEMC0,tsbzbh,bkea96) values( LS_FBBH00,LS_YBZXLB,LS_YBLB00,LS_YBMC00,LS_YBKH00,LS_YBID00,LS_BRZJBH, LS_XTGZH0,P_CARDNO,LS_BRID00,0,LS_GHID00,LS_GHH000,trim(LS_ID0000),trim(LS_BRXM00),decode(LS_BRXB00,'男','1','2'),LS_MZLSH0, --男1 女2 nvl(trim(LS_TSBZBH),'无'),nvl(substrb(trim(LS_TSBZMC),1,20),'无'),LS_BRNL00,0,0,LS_GHKSMC,LS_SFTSMZ,LS_SFTSBZ,LS_YSXM00, LS_HJJE00,LS_XJZFFS,'无','N','无',P_ZDBH00,LS_SFSYU0,LS_HJJE00,LS_YYKSBM,LS_YSZJHM, LS_YJJYE0,LS_CFXMS0,LS_SFXTGH,LS_FZXBH0,LS_XTGZH0,LS_YYKSBM,LS_BQZDBM,LS_BQZDMS,LS_MZLB00,LS_YSZJDJ, LS_PJHM,LS_PJLX,LS_PJZCH,LS_JSH,LS_organ,LS_service,LS_fpuser,LS_fppwd,LS_FHJG00,LS_FHXX00,LS_SZZW00,LS_JDPH00, LS_PJHM00,LS_PJLX00,LS_PJMC00,LS_PJZCH0,LS_SFYGWD,LS_MZLX00,LS_CZRQ00,LS_CZSJ00, LS_YBJKID,LS_YBBZ00,LS_aaz501,LS_bke286,LS_bke241,LS_aaz500,LS_aac002,LS_aac003,LS_aac004,LS_akc023, LS_aka078,LS_aka130 ,LS_bke298 ,LS_bke042,LS_aab034,LS_aab034_mc,LS_akc069,LS_akc066,LS_aaz149,LS_aka121, LS_akf001,LS_akf002,LS_bkf237,LS_bkf238,LS_bkc014,LS_bkc171,LS_akc192,LS_aae030,LS_aae031,LS_bka190, LS_akc193,LS_bka535,LS_bkea92,LS_aka042,LS_akc194,LS_bke078,LS_bke058,LS_amc029,LS_amc026,LS_amc028, LS_amc020,LS_bmc041,LS_itemcount,LS_akc190,LS_bke297,LS_aae072,LS_aac999,LS_bka531,LS_bkc001,LS_bkc001_mc, LS_bkc026,LS_bkc026_mc,LS_bke174 ,LS_bke174_mc,LS_akc227,LS_bkc040,LS_bkc041,LS_bkc102,LS_bkc045,LS_bkc052, LS_bkc059,LS_bkc062,LS_bkc060,LS_ake173,LS_ake026,LS_bke921,LS_bke922,LS_bkc166,LS_bkc167,LS_bkc011, LS_akc087,LS_bkc591,LS_bkc075,LS_bkc054,LS_bkc612,LS_bkc061,LS_bkc077,LS_bkc076,LS_ake094,LS_bkc160, LS_bkc079,LS_bkec26,LS_bkc101,LS_bkc125,LS_bkc053,LS_aka151,LS_aka150,LS_bka193,LS_bka193_mc,LS_bka555, LS_bka188,LS_ake007,LS_bae029,LS_aae011,LS_bka079,LS_akc196,LS_bkc038,LS_bkc039,LS_ake021,LS_bkc511, LS_bae113,LS_bkc023,LS_itemcountys,LS_bke598,LS_bke599,LS_bkc512,LS_aae005,LS_aae006,LS_bke466,LS_bke467, LS_bke468,LS_OutYbghJson,LS_OutYbsfJson,LS_bkc006,LS_bkc007,'01','1',LS_JSJZZT,LS_YBJSZT, LS_BAE465,LS_yyid00,LS_orgCode,LS_patientType,LS_bkb526,LS_BAKXML,LS_BAEMC0,substrb(LS_HIS_TSBZBH,1,20),substrb(LS_BZDYBH_bkea96,1,2)); LS_ZXCS00:=LS_ZXCS00+1; end loop; end if; Ls_Errors:='分开结算结束'; ----------分开结算----------end---------- end loop; end if; update SST_JSDP_JBXX set JSH=XTGZH0 where BRID00=LS_BRID00; delete SST_JSDP_JBXX where BRID00=LS_BRID00 and CARDNO=P_CARDNO and HJJE00=0; Select count(0) into LS_COUNT from SST_JSDP_JBXX where BRID00=LS_BRID00 and CARDNO=P_CARDNO; if LS_COUNT<=0 then P_ERRMSG := '未找到该病人未结算的有效挂号号!'; return; end if; --循环执行SP_SST_JSDP_DBJSMX_YKT for CUR_MX in CUR_DBJSMX loop LS_DBJSMX_ERRMSG:=''; SP_SST_JSDP_DBJSMX_YKT ( P_ZDBH00, --in varchar2, --终端编号 P_FZXBH0, --in varchar2, --参保机构编号 P_YYJGDM, --in varchar2, --医院机构代码 P_CARDTYPE, --in varchar2, --0 代表院内卡 1 代表社保卡 P_CARDNO, --in varchar2, --IC卡号 CUR_MX.XTGZH0, --in varchar2, --系统跟踪号 P_BYRC00, --in varchar2, --备用入参 LS_DBJSMX_ERRMSG --out varchar2 --出错信息 ); if LS_DBJSMX_ERRMSG is not null then P_ERRMSG:=substrb(LS_DBJSMX_ERRMSG,1,200); return; end if; end loop; --重新调整XTGZH0,已经院内记账的要先结算 if LS_FBBH00=3 then select count(*) into ls_COUNTGZ from SST_JSDP_JBXX a where a.CARDNO=P_CARDNO and a.BRID00=LS_BRID00 and (LS_SFAGHIDJS=0 or A.GHID00=LS_BCJSGHID); LS_YJZJE0:=0; if nvl(ls_COUNTGZ,0)>1 then begin select sum(XMJE00) into LS_YJZJE0 from SST_JSDP_JBXX a,SST_JSDP_JSMX b where a.xtgzh0 =b.xtgzh0 and b.SFYJZ0='Y' and a.CARDNO=P_CARDNO and a.BRID00=LS_BRID00 and (LS_SFAGHIDJS=0 or A.GHID00=LS_BCJSGHID); exception when others then LS_YJZJE0:=0; end; if nvl(LS_YJZJE0,0)>0 then for CUR_NEW in CUR_NEWXGZHG loop select SST_JSDP_JBXX_XTGZH0.nextval into LS_XTGZH1 from dual; update SST_JSDP_JBXX set XTGZH0=LS_XTGZH1 where CARDNO=P_CARDNO and BRID00=LS_BRID00 and XTGZH0=CUR_NEW.XTGZH0; update SST_JSDP_JSMX set XTGZH0=LS_XTGZH1 where XTGZH0=CUR_NEW.XTGZH0; update SST_CFLSH0 set XTGZH0=LS_XTGZH1 where XTGZH0=CUR_NEW.XTGZH0; update SF_FYMX00_TEMP00 set XTGZH0=LS_XTGZH1 where XTGZH0=CUR_NEW.XTGZH0 and BRID00=LS_BRID00; --诊断信息 update SST_JSDP_DZMX set XTGZH0=LS_XTGZH1 where XTGZH0=CUR_NEW.XTGZH0; end loop; end if; end if; --nvl(ls_COUNTGZ,0)>1 end if; --LS_FBBH00=3 exception when no_data_found then P_ERRMSG:=substrb('获取有效挂号号失败!'||'位置:['||Ls_Errors||']'||',原因:'||sqlerrm,1,200); when others then P_ERRMSG:=substrb('获取有效挂号号失败!'||'位置:['||Ls_Errors||']'||',原因:'||sqlerrm,1,200); end;