create or replace procedure SP_SF_NEWYBJK_YBJKRZ ( PJKCJBM in varchar2 , --输入(不可空):接口场景编码 PBRID00 in number , --输入(无值传0):BRID00 PGHID00 in number , --输入(无值传0):门诊(GHID000)流水号 PGHH000 in varchar2 , --输入(无值传0):门诊(GHH000)号 PCZY000 in number , --输入(不可空):操作员编码 PCZYXM0 in varchar2 , --输入(不可空):病人姓名 PCZYKS0 in number , --输入(不可空):操作员科室 PQQCSID in varchar2 default '' , --输入(可空):参数中间ID(HIS前台请求参数保存到中间表BM_ZFPTCS.JKQQCS) PINCS00 in varchar2 default '' , --输入(可空):请求参数 POTHER0 in varchar2 default '' , --输入(可空):备用参数 PCOMMIT in varchar2 default 'N' , --输入:是否提交事务 Y:提交 N:不提交 PZXZT00 out number , --输出:执行状态 0:失败 1:成功 PYBJKID out varchar2 , --输出:医保接口ID PERRMSG out varchar2 --输出:错误信息 ) -- MODIFICATION HISTORY -- Person Date Comments -- zhangyc 2019.11.04 created 门诊新医保接口日志写入过程 MZSF9-20191104-006 -- jlg 2019.11.07 重新整理 MZSF9-20191106-004 -- liwm 2019.11.20 中间表变更 MZSF9-20191120-003 -- liwm 2019.11.29 aka063节点始终为编号,ZY_YBFPBH未能生效 MZSF9-20191129-005 -- liwm 2019.12.03 结算冲销的时候需要去掉jzdh00的判断,否则医保已结算但是院内未成功的会失败 MZSF9-20191203-001 -- liwm 2019.12.06 增加生育工伤体检的处理 MZSF9-20191209-001 -- liwm 2019.12.10 处理处方日期为空问题,处理YBGHH0 同5.0获取方式的差异 MZSF9-20191210-003 -- liwm 2019.12.11 增加bke284 MZSF9-20191213-002 -- liwm 2019.12.14 增加漳州地区新增字段 MZSF9-20191214-001 -- liwm 2019.12.20 对账的YBGHH0和YBDJH0从SF_JZB000中获取 MZSF9-20191223-002 -- liwm 2019.12.25 若特殊病种有维护字典,前台结算有传特殊病种,判断是否生育 MZSF9-20191225-001 -- liwm 2019.12.27 修改新医保用户密码获得方式,适配分院模式 MZSF9-20191227-006 --zhangyc 2020.03.17 修改bkf237:医保科室编码 akf001:his挂号科室 by MZSF9-20200317-001 --zhangyc 2020.03.25 akf001:his挂号科室 、bke042:his流水号取挂号ID(挂号、明细上传、费用结算保存一致)、退费冲销增加节点aka130 医疗类别 bke042 his流水号 bkee70:his退费流水号、aka070剂型空着默认000(无)、增加超限制结算功能 by MZSF9-20200331-003 --zhangyc 2020.04.01 如果挂号类别名称有包含“急诊”aka130=12 同时BM_GHLBB0.YSZJDJ如果有维护BKA535取该值 by MZSF9-20200403-001 --zhangyc 2020.04.03 修正费用登记医保返回成功院内报错发起冲销是bke298同费用登记的发送的bke298不一致导致无法正常退费 by MZSF9-20200403-002 --zhangyc 2020.04.21 nvl(A.SFXMID,trim(A.XMBH00))-->nvl(to_char(A.SFXMID),trim(A.XMBH00)) by MZSF9-20200422-003 --liwm 2020.04.27 门诊病人费别修改,自费转医保,点击保存,发送的【资格信息查询】中aac002没有发送内容 MZSF9-20200423-001 --zhangyc 2020.06.05 akc192发送格式改为yyyymmddhh24miss by MZSF9-20200606-001 --qks 2020.06.18 SF_YBJKQD.AKA071:trim(A.QYZL00)->trim(A.YPYL00); for MZSF9-20200619-001 --linzetao 2020.08.13 修正费用明细作废AKC190节点发送为空的问题 MZSF9-20200812-002 --linzetao 2020.08.26 修正新医保报文药事服务费发送的姓名不正确问题 MZSF9-20200826-001 --linzetao 2020.09.04 调整aaz501节点的取值来源(取新医保接口通用配置) MZSF9-20200904-002 -- liwm 2020.09.02 两定机构补充aab301处理 MZSF9-20200831-001 --linzetao 2020.09.16 门诊费用冲销时HIS收费流水为空或0时, bke298节点传当前LS_YBJKID MZSF9-20200914-001 --linzetao 2020.09.28 调整YYKSBM取值, 从BM_BMBM00.YYKSBM调整为从函数SF_SF_GetYYKSBM返回 MZSF9-20200928-001 --zhangyc 2020.10.22 增加费用冲正功能 by MZSF9-20201022-002 -- liwm 2020.10.26 门诊收费冲销如果前端有传HISLSH,直接用前端传的HISLSH MZSF9-20201026-001 --linzetao 2020.10.27 通用明细上传bke182节点取院内项目名称, 为空时取医保项目名称 MZSF9-20201022-001 --zhangyc 2020.11.13 增加费用结算退费功能(bkee70) by MZSF9-20201113-001 --linzetao 2020.11.17 增加医保人员信息验证功能(yb04.10.01.20) MZSF9-20201013-003 --linzetao 2020.11.23 调整AAC002当医保码(BKE284=06)结算时发送证件号码 MZSF9-20201123-001 --linzetao 2020.11.24 处理上传明细时药品项目单位转成医保编码 MZSF9-20201124-001 --zhangyc 2020.12.01 增加参数MZ_AKC192_BKC014_BKC171控制AKC192、BKC014、BKC171是否取挂号日期和时间 by MZSF9-20201201-002 --linzetao 2020.12.02 通用字典配置通用明细药品单位是否发送医保编码 MZSF9-20201202-003 --linzetao 2020.12.16 处理医保新接口参数设置字典BH0000='aka063'的配置 MZSF9-20201208-002 --linzetao 2020.12.18 处理两定机构通用收费需发送aab301节点 MZSF9-20201222-001 --linzetao 2020.12.28 医保码结算(bke284=06)时证件编号不符合身份证号规则aac002发送医保id, -- 急诊特殊病种aka130需发送特殊病种类别 MZSF9-20201228-002 --linzetao 2021.01.12 处理通用收费节点bka190(是否共济扣款),bkeg23(是否账户抵扣) MZSF9-20210108-001 --linzetao 2021.02.24 处理通用明细上传时诊断码转换及整理bkeh83,bkeh05,bkeh06,bakxml数据 MZSF9-20210223-002 --linzetao 2021.03.31 处理跨省科室编号 MZSF9-20210318-001 --linzetao 2021.04.29 截取AKF002,BKF238长度为20(原为50) MZSF9-20210427-004 --linzetao 2021.05.06 处理产前检查aka130发送17 MZSF9-20210427-006 --linzetao 2021.05.10 处理体检aka130发送A1 MZSF9-20210509-001 --linzetao 2021.05.18 处理通用明细上传zdlist列表的bke302问题 MZSF9-20210514-002 --zhangyc 2021.05.26 医保凭证读卡跳转到yb04.10.01.16(有参数YBDZPZ_funid设置编码)by MZSF9-20210528-003 --linzetao 2021.06.22 资格信息查询aaz500优先取前端传入的CARDNO MZSF9-20210617-002 --chenHeyi 2021.08.25 增加场景YBJK_GJYBJSD_0001: 国家医保结算单 by MZSF9-20210824-001 --zhangyc 2021.09.01 增加获取BM_BRXXB0.YBKSBM:医保卡识别码赋值给AAZ501 by MZSF9-20210901-005 --linzetao 2021.09.22 增加场景YBJK_JSQDXXSC_001:医疗保障基金结算清单信息上传 调用SP_SF_NEWYBJK_JSQDXXSC by MZSF9-20210922-003 --chenHeyi 2021.09.22 增加bkb526医疗机构国家码的取值与处理,bkc007的取值,BKC507与BKC506的取值 MZSF9-20210922-001 --linzetao 2021.09.24 场景YBJK_GJYBJSD_0001:门诊和住院国家医保结算单下载根据参数(Open_JSQD_DOWNLOAD)控制新模式 MZSF9-20210924-001 --zhangyc 2021.09.26 setl_id:结算ID取结账表SF_JZB000.YBDJH0 by MZSF9-20210926-001 --zhangyc 2021.09.28 基金清单查询医保返回setl_list_id放在data节点目录下 by MZSF9-20210928-001 --linzetao 2021.09.28 修正通用上传明细bkc007节点取值问题 MZSF9-20210928-002 --linzetao 2021.09.30 处理bke181,bke182发送问题 MZSF9-20210930-002 --zhangyc 2021.10.02 处理疾病诊断转化 by MZSF9-20211002-002 -- --------- ---------- -------------------------------- as LS_COUNT0 number(5); LS_CZRQ00 char(8); LS_CZSJ00 char(8); LS_GHID00 number(10); --挂号ID LS_FUNID varchar2(50); --功能编码 LS_BRXM00 SF_YBJKRZ.BRXM00%type; --病人姓名 LS_YBJKID SF_YBJKRZ.YBJKID%type; --医保接口ID LS_YBJKBM SF_YBJKRZ.YBJKBM%type; --医保接口编码 LS_YBJKMC SF_YBJKRZ.YBJKMC%type; --医保接口名称 LS_JKCJBM SF_YBJKRZ.JKCJBM%type; --接口场景编码 LS_AAZ500 SF_YBJKRZ.AAZ500%type; --社会保障卡号 LS_AAZ501 SF_YBJKRZ.AAZ501%type; --卡识别码 LS_BKZ543 SF_YBJKRZ.BKZ543%type; --二维码 LS_AAC002 SF_YBJKRZ.AAC002%type; --证件号码(社会保障号) LS_AAC003 SF_YBJKRZ.AAC003%type; --病人姓名 LS_MKLXMC SF_YBJKRZ.MKLXMC%type; --模块类型名称 LS_YBKH00 BM_BRXXB0.YBKH00%type; --医保卡号 --LS_YBKH00 varchar2(30); --医保卡号 LS_YBID00 BM_BRXXB0.YBID00%type; --医保ID LS_BRZJBH BM_BRXXB0.BRZJBH%type; --病人证件号码 LS_YBKSBM varchar2(50); --BM_BRXXB0.YBKSBM%type; --医保卡识别码 LS_VALUE0 SF_YBJKMX.VALUE0%type; -- LS_FSLXBZ SF_YBJKMX.VALUE0%type; --发送类型标志 1:发送 2:返回 3:发送和返回共用 0:其它 LS_JKFSZ0 SF_YBJKMX.JKFSZ0%type; --接口发送值 LS_JKFHZ0 SF_YBJKMX.JKFHZ0%type; --接口返回值 LS_QTQQCS BM_ZFPTCS.JKQQCS%type; --前台接口请求参数临时中间变量 LS_HISCS0 SF_YBJKRZ.HISCS0%type; --HIS前台请求参数 LS_JKQQCS SF_YBJKRZ.JKQQCS%type; --接口请求参数 LS_JKFHCS SF_YBJKRZ.JKFHCS%type; --接口返回参数 LS_USR000 BM_YGBM00.YBYHBM%type; --医保接口_登录用户名 LS_PWD000 BM_YGBM00.YBYHMM%type; --医保接口_登录密码 LS_CARDNO varchar2(50); --卡号 LS_MZZYBZ varchar2(1); --门诊住院标识 0:门诊 1:住院 LS_JZDH00 SF_JZB000.JZDH00%type; --结账单号 LS_CXJZDH SF_JZB000.JZDH00%type; --冲销结账单号 LS_YBDJH0 SF_JZB000.YBDJH0%type; --医保单据号 LS_TSBZBH varchar2(30); --特殊病种编码 LS_AKA078 varchar2(10); --医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 LS_BKE241 varchar2(10); --数据来源:对外接口方式 01 接口02 自助机15 微信16 支付宝19 服务12 诊间结算 LS_BKE298 varchar2(50); --HIS收费单据流水号 LS_AKA130 varchar2(10); --医疗类别11:普通门诊 12:急诊、13:门诊慢(特)病种 16:急诊观留床 21:普通住院 29:择日住院 52:生育住院 LS_BKE286 varchar2(10); --结算标识 0:预结算 1:中途结算 2:门诊结算/出院结算 LS_FYJSLX varchar2(50); --费用结算类型 LS_MXLSH0 varchar2(50); --明细流水号 LS_YBGHH0 varchar2(50); --医保挂号号 LS_XMFSBZ varchar2(50); --项目选择发送 Y:BM_SFCFMX_TEMP01, N:BM_SFCF00_TEMP00 LS_ID0000 varchar2(50); --中间表ID LS_AKC190 varchar2(30); --医保门诊挂号流水号/住院登记流水号 LS_AAE072 varchar2(30);--医保单据号 LS_GHKS00 SF_BRXXB0.GHKS00%type; --挂号科室编码 LS_GHKSMC BM_BMBM00.BMMC00%type; --挂号科室名称 LS_KDYS00 SF_BRXXB0.JZYS00%type; --开单医生编码 LS_KDYSXM BM_YGBM00.ZWXM00%type; --开单医生姓名 LS_YSZJHM BM_YGBM00.YSZJHM%type; --医生证件编码 LS_YBYGDM BM_YGBM00.YBYGDM%type; --医保员工代码 LS_BKE042 varchar2(50); --his流水号 LS_BKC014 varchar2(8); --实际就诊日期 门诊为实际就诊日期,住院为实际出院日期(或中途结算日期) LS_BKC171 varchar2(8); --实际就诊时间 住院指病人实际出院时间 LS_CFXMSL number(12,2); --明细项目数量 LS_AKB065 number(12,2); --医疗费总金额 LS_JSOSTR SF_YBJKMX.VALUE0%type; -- LS_BKE301 varchar2(3); --诊断或症状类型 y 参见编码附件 LS_BKE302 varchar2(3); --诊断或症状序号 y 参见编码附件 LS_BKE087 varchar2(50); --诊断或症状编码 y 见icd-10或症状表编码 LS_BKE088 varchar2(100); --诊断或症状名称 y 见icd-10或症状表名称 LS_YBFPBH varchar2(10); --医保发票是否使用编号 Y:编码 N:明细 LS_AKA063 varchar2(50); --发票类别 LS_QDQZFS varchar2(50); --医保新接口费用清单取值方式 1:取SF_YBJKQD或ZY_YBJKQD 2:取SF_YBJKMX或ZY_YBJKMX 默认:1 LS_SFYJS0 varchar2(50); --是否预结算 'Y':是预结算,'N':不是预结算 LS_AAZ149 varchar2(30); --特殊病种编码 LS_YYKSBM BM_BMBM00.YYKSBM%type; --医院科室编码 LS_BXLB00 SF_BRXXB0.BXLB00%type; --保险类型,普通 生育 工伤 LS_YBBMMC BM_YBKSBM.YBBMMC%type; --挂号科室对应医保科室名称 LS_GHLBMC BM_GHLBB0.LBMC00%type; --挂号类别名称 LS_SFYBZGTJHSFYZMTJJK XT_XTCS00.VALUE0%type; --医保职工体检号是否有专门的体检接口 LS_BKE284 varchar2(50);--身份认证类型 身份认证类型 01:读卡 02:融合码 06:医保码 20:医疗证 LS_YBZXLB IC_YBBRLB.YBZXLB%type;--医保中心名称 LS_TSBZFL BM_TSBZB0.TSBZFL%type;--病种分类 0:特殊病种 1:生育病种 2:单病种 LS_MZID00 SF_JZB000.MZID00%type;--门诊iD LS_GHLB00 SF_BRXXB0.GHLB00%type;--挂号类别编号=BM_GHLBB0.LBBH00 LS_LBMC00 BM_GHLBB0.LBMC00%type;--挂号类别名称 LS_YSZJDJ BM_GHLBB0.YSZJDJ%type;--医师诊金等级接口编码 LS_BKA535 varchar2(10);--医师诊查费等级 110 普通医师 111 主治医师 112 副主任医师 113 主任医师 114 专家 120 普通医师[中医辩证] 121 主治医师[中医辩证] 122 副主任医师[中医辩证] 123 主任医师[中医辩证] 124 国医大师[中医辩证] LS_CFLSHQZFS varchar2(10);--新医保接口费用结算处方项目数(itemcount)取值方式 Y:处方项目数 N:医保明细流水号个数 默认:N LS_HISLSHQZFS varchar2(10);--新医保接口His流水号(bke042)取值方式 Y:系统序列号 N:挂号ID或住院ID 默认:N LS_BKEE70 varchar2(50);--his 退费流水号 varchar2(50) y 对帐时使用 LS_BKA555 varchar2(50);--bka555 对账数据分类YBSM23 varchar2(3) y 参见编码附件(本地、省内、跨省等),“门诊超限全自费” 01 本市 02 省内异地 03 省外异地 99 门诊超限全自费 LS_BKF237 varchar2(50);--his内部科室编码(医保科室编码) LS_BKF238 varchar2(50);--his内部科室名称 LS_AKF001 varchar2(50);--标准科室编码 LS_AKF002 varchar2(50);--标准科室名称 LS_CXZBZ0 varchar2(50);--超限制标志: (0:否 1:是) LS_HISLSH varchar2(50);--HIS流水号 LS_AKC192 varchar2(20);--实际门诊/入院日期 格式:yyyymmddhh24miss LS_XZQH00 BM_BRXXB0.XZQH00%type; --行政区划 LS_GHH000 SF_BRXXB0.GHH000%type; --挂号号 LS_aab301 varchar2(10);--参保地行政区划 LS_bae016 varchar2(50);--作废原因 in_AAC002 varchar2(30);--身份证号 in_AKC190 varchar2(30);--医保挂挂号或住院流水号[akc190] in_BKE297 varchar2(50);--医保明细流水号[bke297] in_YBJKID varchar2(50);--医保接口ID in_CXTYPE varchar2(50);--冲销类型 100: 费用明细冲销 110: 费用结算冲销 120: 入院登记冲销 in_RZTYPE varchar2(50);--日志类型 0:日志表 1:流水表 in_CZLX00 varchar2(50);--0:发送 1:返回 in_AKA078 varchar2(10);--医疗就诊方式 in_BKE241 varchar2(10);--数据来源 in_AAB301 varchar2(10);--参保行政区号 in_BAE016 varchar2(50);--作废原因 in_FUNID varchar2(50);--原交易功能代码[funid] in_AAE072 varchar2(30);--医保收费流水号[aae072] in_BKE042 varchar2(50);--his流水号[bke042] in_BKE298 varchar2(50);--his收费单据流水号[bke298] in_AAZ500 varchar2(30);--医保卡号[aaz500]: in_AAC003 varchar2(50);--姓名[aac003]: in_bkee70 varchar2(50);--his 退费流水号 varchar2(50) y 对帐时使用 in_BKEG23 varchar2(50); --是否账户抵扣 in_BKA190 varchar2(50); --是否共济扣款 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_YPDWSFFSYBBM varchar2(100); --通用明细药品单位是否发送医保编码, 0否1是, 默认0 LS_YBJKFPLBCS varchar2(50); --新医保接口发票类别(aka063)(格式:门诊,住院) 0:发送编码 1:发送名称 默认:0,0 LS_BKEG23 varchar2(50); --是否账户抵扣 LS_BKA190 varchar2(50); --是否共济扣款 LS_DYBZBM XT_ICD900.DYBZBM%type; --对应标准编码 LS_DYJBMC XT_ICD900.DYJBMC%type; --对应疾病名称 LS_YBLB00 SF_BRXXB0.YBLB00%type; --医保类别 LS_FBBH00 SF_BRXXB0.FBBH00%type; --费别编号 LS_YBSDLB IC_YBBRLB.YBSDLB%type; --医保属地类别 LS_SFCQJC SF_BRXXB0.SFCQJC%type; --是否产前检查 LS_ZZDBZ0 char(1); --主诊断标志, 用于记录主诊断是否已生成, 0未生成1已生成 in_YBDZPZ varchar2(10); --是否医保电子资格信息查询 1:是 0:否 LS_YBDZPZ_funid varchar2(50); --医保凭证就诊,医保功能编码funid in_CARSBM varchar2(50); --入参:卡识别码 LS_EXESQL varchar2(1000); LS_FHCS00 varchar2(1000);--输出:返回参数(XML格式) LS_bkb526 XT_YYXX00.GJBZBM%type; --bkb526医疗机构国家码 LS_BKC007_FSYSGJBM BM_TYZD00.MC0000%type; --字典参数BKC007_FSYSGJBM MZSF9-20210922-001 LS_bkc007 BM_YGBM00.YBYGDM%type; --bkc007医师国家编码 MZSF9-20210922-001 LS_aac999 BM_BRXXB0.aac999%type;--个人管理码(医保编号) LS_Open_JSQD_download varchar2(10); --新医保国家结算清单查询或下载接口是否开启(新模式:医保提供明细数据His自行设置模板) 1:门诊开启 2:住院开启 3:门诊和住院都开启 0:不开启 默认值:0 LS_psn_no varchar2(30); --psn_no:人员编号 LS_setl_id varchar2(30); --setl_id:结算ID LS_YYKSBMFSLX BM_TYZD00.MC0000%type; --新医保医院科室编码类型0:(akf001:医保编码bkf237:院内编码)1:(akf001:院内编码bkf237:医保编码)默认值:0 cursor CUR_YBFSZX is select YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ from SF_YBJKMX where YBJKID=LS_YBJKID and FSLXBZ in ('1','3') order by JKMXID; --诊断信息 2021.5.18 诊断信息按西医主诊断->中医疾病->其它诊断排序 cursor CUR_BRZDXX is select a.* from ( select decode(a.ZZDBZ0,'3','1','1','2','3') YBZDBZ,a.* from YS_BRZDXX a where GHID00=PGHID00 order by ZZDBZ0 ) a order by YBZDBZ; --select * from YS_BRZDXX where GHID00=PGHID00 order by ZZDBZ0; --清单明细 SF_YBJKQD cursor CUR_MXLIST is select * from SF_YBJKQD where YBJKID=LS_YBJKID order by JKMXID; begin LS_EXESQL:=''; LS_FHCS00:='';--输出:返回参数(XML格式) LS_YBSJSFRQMS:='0|0';--新医保门诊(AKC192、BKC014、BKC171)是否取挂号日期和时间:格式(1:是0:否|有效天数0:当天,1:两天) 默认:0|1 LS_SFFSGHRQ:='0'; --新医保门诊是否发送挂号日期1:是0:否 LS_FSGHRQTS:=0; --新医保门诊发送挂号日期有效天数0:当天,1:两天 LS_YPDWSFFSYBBM := '0'; --通用明细药品单位是否发送医保编码, 0否1是, 默认0 in_YBDZPZ:= '0';--是否医保电子资格信息查询 1:是 0:否 --医保发票是否使用编号 Y:编码 N:明细 begin select substrb(trim(VALUE0),1,10) into LS_YBFPBH from XT_XTCS00 where name00 in ('ZY_YBFPBH'); exception when others then LS_YBFPBH:='N'; end; --LS_QDQZFS YBQDMXFSLX:医保新接口费用清单取值方式 1:取SF_YBJKQD或ZY_YBJKQD 2:取SF_YBJKMX或ZY_YBJKMX 默认:1 LS_QDQZFS:=nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','YBQDMXFSLX'),1,10),'1'); --LS_CFLSHQZFS FYJSCFXMSQZFS:新医保接口费用结算处方项目数(itemcount)取值方式 Y:处方项目数 N:医保明细流水号个数 默认:N LS_CFLSHQZFS:=nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','FYJSCFXMSQZFS'),1,10),'N'); --LS_HISLSHQZFS HISLSHQZFS:新医保接口His流水号(bke042)取值方式 Y:系统序列号 N:挂号ID或住院ID 默认:N LS_HISLSHQZFS:=nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','HISLSHQZFS'),1,10),'N'); LS_AAZ501:=substrb(SF_SF_TYZD00('医保新接口参数设置','aaz501'),1,50); 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; LS_YPDWSFFSYBBM := nvl(SF_SF_TYZD00('医保新接口参数设置','YPDWSFFSYBBM'),'0'); --通用明细药品单位是否发送医保编码, 0否1是, 默认0 --新医保接口发票类别(aka063)(格式:门诊,住院) 0:发送编码 1:发送名称 默认:0,0 LS_YBJKFPLBCS := nvl(SF_XT_RETURNINDEXEH(nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','aka063'),1,50),'0,0'),',',1),'0'); LS_YBDZPZ_funid:=nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','YBDZPZ_funid'),1,50),'yb04.10.01.16');--医保凭证就诊,医保功能编码funid --字典参数BKC007_FSYSGJBM LS_BKC007_FSYSGJBM:=nvl(SF_SF_TYZD00('医保新接口参数设置','BKC007_FSYSGJBM'),'0'); --新医保国家结算清单查询或下载接口是否开启(新模式:医保提供明细数据His自行设置模板) 1:门诊开启 2:住院开启 3:门诊和住院都开启 0:不开启 默认值:0 LS_Open_JSQD_download:=nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','Open_JSQD_download'),1,10),'0'); --新医保医院科室编码类型0:(akf001:医保编码bkf237:院内编码)1:(akf001:院内编码bkf237:医保编码)默认值:1 LS_YYKSBMFSLX:=trim(nvl(substrb(SF_SF_TYZD00('医保新接口参数设置','yyksbmfslx'),1,50),'1')); select SQ_SF_YBJKRZ_YBJKID.nextval into LS_YBJKID from dual; select max(XZQH00) into LS_XZQH00 from BM_BRXXB0 where BRID00 = PBRID00; --取得行政区号 LS_GHID00:=PGHID00; --挂号ID LS_GHH000:=PGHH000; --取入参挂号号 PYBJKID:=LS_YBJKID; LS_JKCJBM:=PJKCJBM; LS_MZZYBZ:='0'; --门诊住院标识 0:门诊 1:住院 PZXZT00:=0; --执行状态 0:失败 1:成功 LS_CZRQ00:=to_char(sysdate,'YYYYMMDD'); LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS'); LS_QTQQCS:=null; --前台接口请求参数临时中间变量 LS_HISCS0:=null; --HIS前台请求参数 LS_JKQQCS:=null; --接口请求参数 LS_JKFHCS:=null; --接口返回参数 LS_YBKSBM:=null; --医保卡识别码 LS_USR000:=''; --医保接口_登录用户名(测试用) LS_PWD000:=''; --医保接口_登录密码(测试用) LS_TSBZBH:=''; --特殊病种编码 LS_AKA078:='10'; --医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 LS_BKE241:='01'; --数据来源:对外接口方式 01 接口02 自助机15 微信16 支付宝19 服务12 诊间结算 LS_BKE298:=LS_YBJKID; --HIS收费单据流水号 LS_AKA130:='11'; --医疗类别11:普通门诊 12:急诊、13:门诊慢(特)病种 16:急诊观留床 21:普通住院 29:择日住院 52:生育住院 LS_MXLSH0:=null; --明细流水号 LS_YBGHH0:=null; --医保挂号号 LS_XMFSBZ:='N'; --项目选择发送 Y:BM_SFCFMX_TEMP01, N:BM_SFCFMX_TEMP00 LS_ID0000:=null; --中间表ID LS_AKC190:=null; --医保门诊挂号流水号/住院登记流水号 LS_BKE042:=LS_YBJKID; --his流水号 LS_BKC014:=to_char(sysdate,'YYYYMMDD'); --实际就诊日期 门诊为实际就诊日期,住院为实际出院日期(或中途结算日期) LS_BKC171:=to_char(sysdate,'HH24MISS'); --实际就诊时间 住院指病人实际出院时间 LS_CFXMSL:=0; --明细项目数量 LS_AKB065:=0; --医疗费总金额 LS_CXJZDH:=0; --冲销结账单号 LS_BKA535:='110';--医师诊查费等级 110 普通医师 111 主治医师 112 副主任医师 113 主任医师 114 专家 120 普通医师[中医辩证] 121 主治医师[中医辩证] 122 副主任医师[中医辩证] 123 主任医师[中医辩证] 124 国医大师[中医辩证] LS_BKEE70:=LS_YBJKID;--his 退费流水号 varchar2(50) y 对帐时使用 LS_BKA555:='01';--bka555 对账数据分类 varchar2(3) y 参见编码附件(本地、省内、跨省等),“门诊超限全自费” 01 本市 02 省内异地 03 省外异地 99 门诊超限全自费 LS_AKC192:=to_char(sysdate,'yyyymmddhh24miss');--实际门诊/入院日期 格式:yyyymmddhh24miss LS_bae016:='失败作废';--作废原因 LS_BKEG23:='1'; --是否账户抵扣 LS_BKA190:='Y'; --是否共济扣款 select nvl(max(VALUE0),'N') into LS_SFYBZGTJHSFYZMTJJK from XT_XTCS00 where NAME00 = 'SF_YBZGTJHSFYZMTJJK'; begin select substrb(CJMC00,1,30)CJMC00,substrb(FUNCMC,1,20) into LS_YBJKMC, LS_YBJKBM from BM_TYCJBM where CJBM00=LS_JKCJBM; exception when others then LS_YBJKMC:=null; LS_YBJKBM:=null; end; --获取前端请求的参数 if PQQCSID is not null then begin select JKQQCS into LS_QTQQCS from BM_ZFPTCS where DDLSH0=PQQCSID; exception when others then LS_QTQQCS:=null; end; end if; if LS_QTQQCS is not null then LS_HISCS0:=substrb(LS_QTQQCS,1,2000); else LS_HISCS0:=substrb(PINCS00,1,2000); end if; --获取医保用户名和名 begin select A.YBYHBM,A.YBYHMM into LS_USR000, LS_PWD000 from BM_YGBM00 A where A.YGBH00=PCZY000; exception when others then LS_USR000:='';--医保接口_登录用户名 LS_PWD000:='';--医保接口_登录密码 end; --员工编码未维护授权码和密码根据部门科室编码从XT_YYXX00获取 if PCZYKS0 > 0 and LS_USR000 is null then begin select B.YBYHBM,B.YBYHMM into LS_USR000,LS_PWD000 from BM_BMBM00 A,XT_YYXX00 B where A.YYID00=B.YYID00 and A.BMBH00=PCZYKS0; exception when others then LS_USR000:='';--医保接口_登录用户名 LS_PWD000:='';--医保接口_登录密码 end; end if; --查找病人基本信息 if PBRID00>0 then begin select A.YBKH00,A.YBID00,A.BRZJBH,A.BRXM00,E.YBZXLB,A.XZQH00,substrb(trim(A.YBKSBM),1,50) as YBKSBM,AAC999 into LS_YBKH00, LS_YBID00,LS_BRZJBH,LS_BRXM00,LS_YBZXLB,LS_XZQH00,LS_YBKSBM,LS_AAC999 from BM_BRXXB0 A,IC_YBBRLB E where A.BRID00=PBRID00 and A.YBLB00=E.YBLB00 and A.FBBH00=E.FBBH00; exception when others then PZXZT00:=0; --执行状态 0:失败 1:成功 end; end if; LS_FUNID:=LS_YBJKBM;--功能编码 LS_MKLXMC:=substrb(SF_SF_GETXMLNOTE('MKLXMC',LS_HISCS0),1,50); --获取前端传入卡号 select substrb(SF_SF_GETXMLNOTE('CARDNO',LS_HISCS0),1,50) into LS_CARDNO from dual; --前端未传入卡号, 则取BM_BRXXB0.YBKH00 if trim(LS_CARDNO) in ('0') or trim(LS_CARDNO) is null then if trim(LS_YBKH00) not in ('0') and trim(LS_YBKH00) is not null then LS_CARDNO := trim(LS_YBKH00); end if; end if; --if trim(LS_YBKH00) in ('0') or trim(LS_YBKH00) is null then -- select substrb(SF_SF_GETXMLNOTE('CARDNO',LS_HISCS0),1,50) into LS_CARDNO from dual; --else -- LS_CARDNO:=trim(LS_YBKH00); --end if; --获取卡识别码(基本信息表卡识别码为空请求报文中获取) if LS_YBKSBM is null then in_CARSBM:=substrb(SF_SF_GETXMLNOTE('CARSBM',LS_HISCS0),1,50); if in_CARSBM is not null then LS_YBKSBM:=in_CARSBM; end if; --LS_YBKSBM:=LS_CARDNO; end if; --解析请求报文病人姓名 if LS_BRXM00 is null then select substrb(SF_SF_GETXMLNOTE('BRXM00',LS_HISCS0),1,50) into LS_BRXM00 from dual; end if; --解析报文中结账单号 begin select to_number(SF_SF_GETXMLNOTE('JZDH00',LS_HISCS0)) into LS_JZDH00 from dual; exception when others then LS_JZDH00:=0; end; --解析报文中冲销结账单号 begin select to_number(SF_SF_GETXMLNOTE('CXJZDH',LS_HISCS0)) into LS_CXJZDH from dual; exception when others then LS_CXJZDH:=0; end; --解析报文中特殊病种编码 select substrb(SF_SF_GETXMLNOTE('TSBZBH',LS_HISCS0),1,30) into LS_TSBZBH from dual; --解析报文中 明细流水号 select substrb(SF_SF_GETXMLNOTE('MXLSH0',LS_HISCS0),1,50) into LS_MXLSH0 from dual; --解析报文中 医保挂号号 select substrb(SF_SF_GETXMLNOTE('YBGHH0',LS_HISCS0),1,30) into LS_AKC190 from dual; --解析报文中 LS_XMFSBZ 项目选择发送 Y:BM_SFCFMX_TEMP01, N:SF_YBFSMX select substrb(SF_SF_GETXMLNOTE('XMFSBZ',LS_HISCS0),1,50) into LS_XMFSBZ from dual; --解析报文中 中间表ID select substrb(SF_SF_GETXMLNOTE('ID0000',LS_HISCS0),1,50) into LS_ID0000 from dual; --LS_SFYJS0 --是否预结算 'Y':是预结算,'N':不是预结算 select substrb(SF_SF_GETXMLNOTE('SFYJS0',LS_HISCS0),1,50) into LS_SFYJS0 from dual; --LS_CXZBZ0 varchar2(50);--超限制标志: (0:否 1:是) LS_CXZBZ0:=nvl(substrb(SF_SF_GETXMLNOTE('CXZBZ0',LS_HISCS0),1,50),'0');--超限制标志: (0:否 1:是) LS_HISLSH:=substrb(SF_SF_GETXMLNOTE('HISLSH',LS_HISCS0),1,50);--HIS流水号 LS_AAC002:=substrb(SF_SF_GETXMLNOTE('AAC002',LS_HISCS0),1,50);--证件号码(社会保障号) LS_BKE284:=substrb(SF_SF_GETXMLNOTE('BKE284',LS_HISCS0),1,50);--身份认证类型 in_AAC002:=trim(substrb(SF_SF_GETXMLNOTE('AAC002',LS_HISCS0),1,30));--身份证号 in_AKC190:=trim(substrb(SF_SF_GETXMLNOTE('AKC190',LS_HISCS0),1,50));--医保挂挂号或住院流水号[akc190] in_BKE297:=trim(substrb(SF_SF_GETXMLNOTE('BKE297',LS_HISCS0),1,50));--医保明细流水号[bke297] in_YBJKID:=trim(substrb(SF_SF_GETXMLNOTE('YBJKID',LS_HISCS0),1,50));--医保接口ID in_CXTYPE:=trim(substrb(SF_SF_GETXMLNOTE('CXTYPE',LS_HISCS0),1,50));--冲销类型 100: 费用明细冲销 110: 费用结算冲销 120: 入院登记冲销 in_RZTYPE:=trim(substrb(SF_SF_GETXMLNOTE('RZTYPE',LS_HISCS0),1,50));--日志类型 0:日志表 1:流水表 in_CZLX00:=trim(substrb(SF_SF_GETXMLNOTE('CZLX00',LS_HISCS0),1,50));--0:发送 1:返回 in_AKA078:=trim(substrb(SF_SF_GETXMLNOTE('AKA078',LS_HISCS0),1,10));--医疗就诊方式 in_BKE241:=trim(substrb(SF_SF_GETXMLNOTE('BKE241',LS_HISCS0),1,10));--数据来源 in_AAB301:=trim(substrb(SF_SF_GETXMLNOTE('AAB301',LS_HISCS0),1,10));--参保行政区号 in_BAE016:=trim(substrb(SF_SF_GETXMLNOTE('BAE016',LS_HISCS0),1,50));--作废原因 in_FUNID:=trim(substrb(SF_SF_GETXMLNOTE('FUNID',LS_HISCS0),1,50));--原交易功能代码[funid] in_AAE072:=trim(substrb(SF_SF_GETXMLNOTE('AAE072',LS_HISCS0),1,30));--医保收费流水号[aae072] in_BKE042:=trim(substrb(SF_SF_GETXMLNOTE('BKE042',LS_HISCS0),1,50));--his流水号[bke042] in_BKE298:=trim(substrb(SF_SF_GETXMLNOTE('BKE298',LS_HISCS0),1,50));--his收费单据流水号[bke298] in_AAZ500:=trim(substrb(SF_SF_GETXMLNOTE('AAZ500',LS_HISCS0),1,30));--医保卡号[aaz500]: in_AAC003:=trim(substrb(SF_SF_GETXMLNOTE('AAC003',LS_HISCS0),1,50));--姓名[aac003]: in_BKEE70:=trim(substrb(SF_SF_GETXMLNOTE('BKEE70',LS_HISCS0),1,50));--his 退费流水号 varchar2(50) y 对帐时使用 in_BKEG23:=trim(substrb(SF_SF_GETXMLNOTE('BKEG23',LS_HISCS0),1,50));--是否账户抵扣 in_BKA190:=trim(substrb(SF_SF_GETXMLNOTE('BKA190',LS_HISCS0),1,50));--是否共济扣款 in_YBDZPZ:=trim(substrb(SF_SF_GETXMLNOTE('YBDZPZ',LS_HISCS0),1,10));--是否医保电子资格信息查询 1:是 0:否 LS_psn_no:=trim(substrb(SF_ZY_GETXMLNOTE('PSN_NO',LS_HISCS0),1,30));--psn_no:人员编号 LS_setl_id:=trim(substrb(SF_ZY_GETXMLNOTE('SETL_ID',LS_HISCS0),1,30));--setl_id:结算ID LS_AAZ500:=LS_CARDNO;--社会保障卡号 LS_AAZ501:=nvl(LS_YBKSBM,LS_AAZ501);---卡识别码 LS_BKZ543:=null;--二维码 if LS_AAC002 is null or trim(LS_AAC002)='' then if LS_BKE284 in ('06') then if LS_BRZJBH is not null and SP_SF_CHECKSFZH(LS_BRZJBH) = 1 then LS_AAC002 := trim(LS_BRZJBH); else LS_AAC002 := trim(LS_YBID00); end if; else if trim(nvl(LS_YBID00,'0'))='0' then LS_AAC002:=trim(LS_BRZJBH);---证件号码(社会保障号) else LS_AAC002:=trim(LS_YBID00); end if; end if; end if; --TODO 考虑用一个函数来封装 if PGHID00 <> 0 then begin select a.BXLB00, (select YBBMMC from BM_YBKSBM where YBBMBH=b.YBKSBH and rownum=1) YBBMMC, (select LBMC00 from BM_GHLBB0 where LBBH00=a.GHLB00 and rownum=1) GHLBMC, A.GHRQ00,A.GHSJ00 into LS_BXLB00,LS_YBBMMC, LS_GHLBMC,LS_GHRQ00,LS_GHSJ00 from SF_BRXXB0 a,BM_BMBM00 b where a.GHKS00 = b.BMBH00 and a.GHID00 = PGHID00; exception when others then LS_BXLB00:='0'; --找不到就当普通 LS_YBBMMC :=''; LS_GHLBMC := ''; LS_GHRQ00:=to_char(sysdate,'YYYYMMDD'); LS_GHSJ00:=to_char(sysdate,'HH24:MI:SS'); end; --0:普通 1:生育 2:工伤 3:体检 if LS_YBBMMC='职工体检' or LS_YBBMMC='居民体检' or (LS_SFYBZGTJHSFYZMTJJK='Y' and LS_GHLBMC='体检号') then LS_BXLB00 := '3'; else --普通/工伤/生育 select max(BXLB00) into LS_BXLB00 from SF_BRXXB0 where GHID00 = PGHID00; if LS_BXLB00 = '普通' or trim(LS_BXLB00) is null then LS_BXLB00 := '0'; elsif LS_BXLB00 = '生育' then LS_BXLB00 := '1'; elsif LS_BXLB00 = '工伤' then LS_BXLB00 := '2'; end if; end if; end if; --病种分类 0:特殊病种 1:生育病种 2:单病种 if trim(LS_TSBZBH) is not null then begin select TSBZFL into LS_TSBZFL from BM_TSBZB0 where trim(BH0000)=trim(LS_TSBZBH) and YBZXLB=LS_YBZXLB; exception when others then LS_TSBZFL:=''; end; end if; if LS_TSBZFL in ('1') then LS_BXLB00:='1';--1:生育 end if; --医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 LS_AKA078:=SF_SF_GETYBSXZD(PBRID00,'0','aka078',LS_TSBZBH,LS_BXLB00,''); --医疗类别11:普通门诊12:急诊13:门诊慢(特)病种16:急诊观留床21:普通住院29:择日住院31:家庭病床34:按病种住院42:处方购药43:非处方购药A1:体检52:生育住院 LS_AKA130:=SF_SF_GETYBSXZD(PBRID00,'0','aka130',LS_TSBZBH,LS_BXLB00,''); --数据来源bke241: 50:收费终端 51:自助终端 52:医生工作站 53:移动支付 LS_BKE241:=SF_SF_GETYBSXZD(PBRID00,LS_MZZYBZ,'bke241',LS_TSBZBH,LS_BXLB00,''); --身份认证类型bke284:01:读卡 02:融合码 06:医保码 20:医疗证 if LS_BKE284 is null then LS_BKE284:=SF_SF_GETYBSXZD(PBRID00,LS_MZZYBZ,'bke284',LS_TSBZBH,LS_BXLB00,''); end if; --超限制标志: (0:否 1:是) AKA130:医疗类别 (1A 门诊超限全自费) if LS_CXZBZ0 in ('1') then LS_AKA130:='1A';--:1A 门诊超限全自费 end if; --结算标识 0:预结算 1:中途结算 2:门诊结算/出院结算 if PJKCJBM in ('YBJK_TYSF_0020_1','YBJK_TYSF_0021_1','YBJK_MXSC_0026_1') or LS_SFYJS0 in ('Y') then --门诊收费预结算、住院收费预结算 LS_BKE286:='0'; elsif PJKCJBM in ('YBJK_TYSF_0021_2') then --住院预结算 LS_BKE286:='1'; else LS_BKE286:='2'; end if; LS_AAZ149:=LS_TSBZBH;--特殊病种编码 if nvl(LS_JZDH00,0) in (0) and nvl(LS_CXJZDH,0) not in (0) then LS_JZDH00:=nvl(LS_CXJZDH,0); end if; --获取挂号类别名称 if LS_GHID00>0 and PBRID00>0 then begin select B.LBMC00,B.YSZJDJ,a.SFCQJC into LS_LBMC00,LS_YSZJDJ,LS_SFCQJC from SF_BRXXB0 A,BM_GHLBB0 B where A.GHLB00=B.LBBH00 and A.GHID00=LS_GHID00 and A.BRID00=PBRID00; exception when others then LS_LBMC00:=''; LS_YSZJDJ:=''; end; 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 and LS_TSBZBH is null then LS_AKA130:='12'; end if; --非特殊病种才判断产前检查和体检 if LS_TSBZBH is null then --产前检查发送17 if nvl(LS_SFCQJC,'0') = '1' then LS_AKA130:='17'; elsif nvl(LS_SFCQJC,'0') = '2' then LS_AKA130:='A1'; end if; end if; --体检发送A1 if PGHID00 > 0 then for ZDXX in CUR_BRZDXX loop if instrb(ZDXX.ZDMC00,'健康查体') > 0 then LS_AKA130:='A1'; end if; end loop; end if; --厦门医保 bke042:his流水号 挂号、明细上传、结算保存一致 if LS_GHID00>0 and LS_HISLSHQZFS not in ('Y') then LS_BKE042:=LS_GHID00; end if; --获取挂号科室和名称以及医保科室编码 if PGHID00>0 and PBRID00>0 then begin select a.GHKS00,b.BMMC00,a.GHH000,a.YBLB00,a.FBBH00 into LS_GHKS00,LS_GHKSMC,LS_GHH000,LS_YBLB00,LS_FBBH00 from SF_BRXXB0 a,BM_BMBM00 B where a.GHKS00=b.BMBH00 and A.GHID00=PGHID00 and a.BRID00=PBRID00; exception when others then LS_GHKS00:=''; LS_GHKSMC:=''; LS_GHH000:=PGHH000; end; if LS_GHH000 is not null then select SF_SF_GetYYKSBM(PBRID00,LS_GHH000,0) into LS_YYKSBM from dual; else begin select YBSDLB into LS_YBSDLB from IC_YBBRLB where YBLB00=LS_YBLB00 and FBBH00=LS_FBBH00; exception when others then LS_YBSDLB := '0'; end; begin --医保属地类别为2, 取跨省医保科室编码 if LS_YBSDLB = '2' then select KSYBKS into LS_YYKSBM from bm_bmbm00 where BMBH00=LS_GHKS00; else select YYKSBM into LS_YYKSBM from bm_bmbm00 where BMBH00=LS_GHKS00; end if; exception when others then LS_YYKSBM:=''; end; end if; end if; --LS_AAC003 病人姓名 LS_AAC003:=trim(LS_BRXM00); LS_aab301:=substrb(LS_XZQH00,1,10); --参保地行政区划 --2021.10.08 新医保医院科室编码类型0:(akf001:医保编码bkf237:院内编码)1:(akf001:院内编码bkf237:医保编码) if LS_YYKSBMFSLX = '0' then LS_BKF237:=substrb(LS_GHKS00,1,50);--院内科室编码 LS_BKF238:=substrb(LS_GHKSMC,1,50);--标准科室名称 LS_AKF001:=substrb(LS_YYKSBM,1,50);--医保科室编码 LS_AKF002:=substrb(LS_GHKSMC,1,50);--医保科室名称 else LS_AKF001:=substrb(LS_GHKS00,1,50);--院内科室编码 LS_AKF002:=substrb(LS_GHKSMC,1,50);--标准科室名称 LS_BKF237:=substrb(LS_YYKSBM,1,50);--医保科室编码 LS_BKF238:=substrb(LS_GHKSMC,1,50);--医保科室名称 end if; --行政区号如果没有保存,则根据卡号强制转换 if LS_XZQH00 is null or length(LS_XZQH00)<>6 then LS_aab301:=substrb(SF_SF_AAB301(-1, null, LS_AAZ500),1,10); --参保地行政区划 end if; --增加bkb526医疗机构国家码的取值与处理 MZSF9-20210922-001 begin select SF_XT_GETYYGJBZBM(to_number(LS_GHKS00)) into LS_bkb526 from dual; exception when others then LS_bkb526 := null; end; --2020.10.22 直接按报文前台传参数赋值--begin-- --医保卡号[aaz500] if in_AAZ500 is not nulL and in_AAZ500 not in ('0') then LS_aaz500:=in_AAZ500; else if trim(LS_YBKH00) not in ('0') and trim(LS_YBKH00) is not null then LS_AAZ500:=trim(LS_YBKH00); end if; end if; --身份证号[aac002] if in_aac002 is not null then LS_aac002:=in_aac002; end if; --姓名[aac003]: if in_AAC003 is not null then LS_AAC003:=in_AAC003; end if; --医保挂挂号或住院流水号[akc190] if in_AKC190 is not null and in_AKC190 not in ('0') then LS_AKC190:=substrb(in_AKC190,1,30); end if; --医保明细流水号[bke297] if in_BKE297 is not null then LS_MXLSH0:=substrb(in_BKE297,1,50); end if; --医疗就诊方式 if in_AKA078 is not null then LS_AKA078:=substrb(in_AKA078,1,10); end if; --数据来源 if in_BKE241 is not null then LS_BKE241:=substrb(in_BKE241,1,10); end if; --参保行政区号 if in_AAB301 is not null then LS_aab301:=substrb(in_AAB301,1,10); end if; --作废原因 if in_BAE016 is not null then LS_bae016:=substrb(in_BAE016,1,50); end if; --医保收费流水号[aae072]: if in_AAE072 is not null then LS_AAE072:=substrb(in_AAE072,1,30); end if; --his流水号[bke042]: if in_bke042 is not null then LS_bke042:=substrb(in_bke042,1,50); end if; --his收费单据流水号[bke298] if in_bke298 is not null then LS_BKE298:=substrb(in_bke298,1,50); end if; if in_BKEE70 is not null then ----his 退费流水号 varchar2(50) y 对帐时使用 LS_BKEE70:=substrb(in_BKEE70,1,50); end if; --是否账户抵扣 if in_BKEG23 is not null then LS_BKEG23 := in_BKEG23; end if; --是否共济扣款 if in_BKA190 is not null then LS_BKA190 := in_BKA190; end if; --2020.10.22 直接按报文前台传参数赋值--End- if LS_psn_no is null then --psn_no:人员编号 if trim(LS_aac999) is not null then LS_psn_no:=trim(LS_aac999); else if trim(LS_YBID00) not in ('0') then LS_psn_no:=trim(LS_YBID00); else LS_psn_no:=trim(LS_BRZJBH); end if; end if; end if; --2020.11.27 根据挂号日期和时间转化--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.26 跨省医保凭证结算,AAZ500赋值空 if (substrb(SF_SF_GETYBJKMX(PYBJKID,'bke284','0'),1,10)='06' or LS_BKE284 in ('06')) AND PJKCJBM not in ('YBJK_YBCX_0005') AND substrb(LS_XZQH00,1,2) not in ('35') and LS_XZQH00 is not null and length(LS_AAZ500) not in (9) then LS_aaz500:=substrb(LS_aaz500,1,9); end if; --2021.05.27 医保电子凭证资格信息查询 交易码转yb04.10.01.16 if (in_YBDZPZ='1' or LS_BKE284 in ('06')) and PJKCJBM in ('YBJK_YBCX_0005') then --是否医保电子资格信息查询 1:是 0:否 LS_FUNID:=LS_YBDZPZ_funid;--功能编码 end if; --步骤1:插入日志主表 insert into SF_YBJKRZ(YBJKID,YBJKBM,YBJKMC,JKCJBM,BRID00,GHID00,GHH000,CZRQ00,CZSJ00,CZY000,CZYXM0,CZYKS0, BRXM00,AAZ500,AAZ501,BKZ543,AAC002,AAC003,HISCS0,JKQQCS,JKFHCS,MKLXMC,BKE286,BKE241,AKA078, AKA130,AAZ149,AKC190,BKE298,JZDH00,AAB301,BKE042,BKEE70,AAE072,BKEG23,BKA190) select LS_YBJKID,LS_YBJKBM,LS_YBJKMC,LS_JKCJBM,PBRID00,PGHID00,PGHH000,LS_CZRQ00,LS_CZSJ00,PCZY000,PCZYXM0,PCZYKS0, LS_BRXM00,LS_AAZ500,LS_AAZ501,LS_BKZ543,LS_AAC002,LS_AAC003,LS_HISCS0,LS_JKQQCS,LS_JKFHCS,LS_MKLXMC,LS_BKE286,LS_BKE241,LS_AKA078, LS_AKA130,LS_AAZ149,LS_AKC190,LS_BKE298,LS_JZDH00,LS_aab301,LS_BKE042,LS_BKEE70,LS_AAE072,LS_BKEG23,LS_BKA190 from dual; --接口公共参数--begin-- --插入主项节点功能编码(main) --发送报文节点-------->FSLXBZ:(发送类型标志 1:发送 2:返回 3:发送和返回共用 0:其它)<-------- --usr 登录用户名 varchar2(50) y insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'main',null,'usr','登录用户名',LS_USR000,null,'1',null from dual; --pwd 密码 varchar2(32) y (md5加密) insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'main',null,'pwd','密码',LS_PWD000,null,'1',null from dual; --funid 功能点id varchar2(32) y insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'main',null,'funid','功能编码',LS_FUNID,null,'1',null from dual; ------->接口返回节点-------->FSLXBZ:(发送类型标志 1:发送 2:返回 3:发送和返回共用 0:其它)<-------- --flag 校验标志(0-未通过 1-已通过) number(1) insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'main',null,'flag','校验标志(0:未通过 1:已通过)',null,null,'2',null from dual; --cause 未通过原因说明 varchar2(500) n insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'main',null,'cause','未通过原因说明',null,null,'2',null from dual; ------->接口返回节点-------->FSLXBZ:(发送类型标志 1:发送 2:返回 3:发送和返回共用 0:其它)<-------- --接口公共参数--end-- if PJKCJBM in ('YBJK_JSQDXXSC_001') then --医疗保障基金结算清单信息上传 --setl_list_id 清单流水号 varchar2(9) insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'setl_list_id','医疗保障基金结算清单信息上传流水号', null,null,'2',null from dual; LS_EXESQL:='begin SP_SF_NEWYBJK_JSQDXXSC(:v1,:v2,:v3,:v4,:v5,:v6,:v7,:v8,:v9,:v10); end;'; execute immediate LS_EXESQL using in PBRID00, --PBRID00 in number ,--输入:病人ID in LS_GHID00, --PGHID00 in number ,--输入:挂号ID in PCZY000, --PCZY000 in number ,--输入:操作员编码 in LS_JZDH00, --PJZDH00 in number ,--输入:结账单号 in LS_YBJKID, --PYBJKID in number ,--输入:医保接口ID in LS_HISCS0, --PQQCS00 in varchar2 default '' ,--输入(可空):请求参数(XML格式) in PCOMMIT, --PCOMMIT in varchar2 default 'N' ,--输入:是否提交事务 Y:提交 N:不提交 out PZXZT00, --PZXZT00 out number ,--输出:执行状态 0:失败 1:成功 out LS_FHCS00, --PFHCS00 out varchar2 ,--输出:返回参数(XML格式) out PERRMSG --PERRMSG out varchar2 --输出:错误信息 ; if PZXZT00=0 then PZXZT00:=0; PERRMSG:=substrb('整理医疗保障基金结算清单信息上传数据失败!原因:'||PERRMSG,1,200); return; end if; elsif PJKCJBM in ('YBJK_GJYBJSD_0001') then --门诊和住院国家医保结算单下载 if LS_Open_JSQD_download in ('1','3') then --开启新模式 --setl_id 结算ID varchar2(30) Y =aae072(医保单据号) if LS_setl_id is null then begin select max(trim(nvl(AA.YBSM05,AA.YBDJH0))) into LS_setl_id from SF_JZB000 AA where aa.BRID00=PBRID00 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_setl_id:=null; end; end if; --psn_no 人员编号 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'psn_no','人员编号',LS_psn_no,null,'1',null from dual; --setl_id 结算ID insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'setl_id','结算ID',LS_setl_id,null,'1',null from dual; else if LS_FUNID in ('F12.03.01') then --reportid VARCHAR2 Y 报表ID 传固定值:1000001 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'reportid','报表ID','1000001',null,'1',null from dual; --argname1 VARCHAR2 Y 字段1名称 传固定值:akc190 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'argname1','字段1名称','akc190',null,'1',null from dual; --argtype1 VARCHAR2 Y 字段1类型 传固定值:String insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'argtype1','字段1类型','String',null,'1',null from dual; --arg1 VARCHAR2 Y 字段1值 医保住院流水号 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'arg1','医保住院流水号',trim(LS_YBGHH0),null,'1',null from dual; --argname2 VARCHAR2 Y 字段2名称 传固定值:aka078 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'argname2','字段2名称','aka078',null,'1',null from dual; --argtype2 VARCHAR2 Y 字段2类型 传固定值:String insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'argtype2','字段2类型','String',null,'1',null from dual; --arg2 VARCHAR2 Y 字段2值 就诊类型:住院20,特门50 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'arg2','字段2值(住院20,特门50)','20',null,'1',null from dual; --argcount VARCHAR2 N 字段数量 传固定值:2 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'argcount','字段数量','2',null,'1',null from dual; else --akc190 String 流水号 非空 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'akc190','医保挂号号',LS_akc190,null,'1',null from dual; insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aae072','医保结算单号',LS_AAE072,null,'1',null from dual; end if; end if; elsif PJKCJBM in ('YBJK_YBDZ_0004') then --医保冲正交易 --funid 原交易功能代码 varchar2(50) y 可被冲正的交易 通用收费(yb04.07.01.04) insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'funid','原交易功能代码',in_funid,null,'1',null from dual; --aka078 医疗就诊方式 varchar2(3) y 参见编码附件 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aka078','医疗就诊方式',LS_AKA078,null,'1',null from dual; --akc190 医保流水号 varchar2(20) n 医保门诊挂号流水号/住院登记流水号 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'akc190','医保门诊挂号流水号或住院登记流水号',LS_akc190,null,'1',null from dual; --aae072 医保收费流水号 varchar2(20) n insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aae072','医保收费流水号',LS_AAE072,null,'1',null from dual; --bke042 his流水号 varchar2(50) y his门诊流水号或住院流水号 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'bke042','his流水号',LS_BKE042,null,'1',null from dual; --bke298 his收费单据流水号 varchar2(50) y His收费单据流水号 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'bke298','his收费单据流水号',LS_bke298,null,'1',null from dual; --aab301 参保地行政区划 varchar2(6) n 两定机构必填 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aab301','参保地行政区划',LS_aab301,null,'1',null from dual; --bkb526医疗机构国家码 --insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) --select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'bkb526','医疗机构国家码',LS_bkb526,null,'1',null from dual; elsif PJKCJBM in ('YBJK_YBDZ_0000') then --医保交易对帐 --9.0门诊前端不好处理,改成从结帐表获取 select trim(a.YBDJH0),trim(a.YBGHH0),nvl(YBJKID,YBSM19),substrb(YBSM23,1,20) into LS_YBDJH0, LS_AKC190,LS_BKE298,LS_BKA555 from SF_JZB000 a where A.JZDH00 = LS_JZDH00; --超限制标志: (0:否 1:是) BKA555:对帐数据分类 (99 门诊超限全自费) if LS_CXZBZ0 in ('1') then LS_BKA555:='99';--:99:门诊超限全自费 end if; if trim(LS_YBDJH0) is not null and trim(LS_YBDJH0) not in ('0') then LS_AAE072:=substrb(trim(LS_YBDJH0),1,30); end if; --aka078 医疗就诊方式 varchar2(3) insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aka078','医疗就诊方式',LS_AKA078,null,'1',null from dual; --akc190 医保流水号 varchar2(20) insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'akc190','医保流水号',LS_AKC190,null,'1',null from dual; --aae072 医保收费流水号 varchar2(20) insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aae072','医保收费流水号', nvl(LS_AAE072,LS_YBDJH0),null,'1',null from dual; --bke298 his收费流水号 varchar2(50) insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'bke298','his收费流水号',LS_BKE298,null,'1',null from dual; --bka555 对账数据分类 varchar2(3) y 参见编码附件(本地、省内、跨省等),“门诊超限全自费” 不参与对帐 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'bka555','对账数据分类',nvl(LS_BKA555,'01'),null,'1',null from dual; --aab301 行政区号 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aab301','行政区号',LS_aab301,null,'1',null from dual; --bkb526医疗机构国家码 --insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) --select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'bkb526','医疗机构国家码',LS_bkb526,null,'1',null from dual; elsif PJKCJBM in ('YBJK_TYSF_0020','YBJK_TYSF_0020_1','YBJK_TYSF_0020_2') then --门诊收费 --插入主项节点功能编码(data)--从字典取值 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,substrb(SJJGBM,1,50),substrb(SJJGMC,1,50),null,null,MZSF00,null from BM_YBJKZD where MZSF00 in ('1','2','3') and nvl(SFYX00,'1')='1' and SJJGBM not in ('flag','cause') and JKBM00=1; select count(1),sum(XMJE00) into LS_CFXMSL,LS_AKB065 from SF_YBFSMX where ID0000=LS_ID0000; --医保发送变量赋值 for C_YBFS in CUR_YBFSZX loop LS_JKFSZ0:='';--接口发送值 if lower(C_YBFS.ZDBM00)='aaz500' then -- 社会保障卡号 varchar2(20) y LS_JKFSZ0:=trim(LS_AAZ500); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aaz501' then -- 卡识别码 varchar2(32) n “读卡”认证时必填 LS_JKFSZ0:=LS_AAZ501; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac002' then -- 证件号码(社会保障号) varchar2(18) n 省交易时必填 --LS_JKFSZ0:=trim(LS_YBID00); LS_JKFSZ0:=trim(LS_AAC002); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac003' then -- 姓名 varchar2(50) y LS_JKFSZ0:=LS_AAC003; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke284' then --身份认证类型 01:读卡 02:融合码 06:医保码 20:医疗证 LS_JKFSZ0:=LS_BKE284; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='ecToken' then --令牌 LS_JKFSZ0:=''; elsif lower(C_YBFS.ZDBM00)='aka078' then -- 医疗就诊方式 varchar2(3) y 参见编码附件 LS_JKFSZ0:=LS_AKA078;--医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aka130' then -- 医疗类别 varchar2(3) y 参见编码附件 --医疗类别11:普通门诊 12:急诊、13:门诊慢(特)病种 16:急诊观留床 21:普通住院 29:择日住院 52:生育住院 LS_JKFSZ0:=LS_AKA130; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akc190' then -- 医保流水号 varchar2(20) y 医保门诊挂号流水号/住院登记流水号 LS_JKFSZ0:=LS_AKC190; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke298' then -- his收费单据流水号 varchar2(50) y HIS收费单据流水号 LS_JKFSZ0:=LS_BKE298; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aaz149' then -- 病种编码 varchar2(16) n 参见编码附件门诊上传特殊病种、住院上传单病种 LS_JKFSZ0:=LS_AAZ149; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke286' then -- 结算标识 varchar2(3) n 参见编码附件 --结算标识 0:预结算 1:中途结算 2:门诊结算/出院结算 LS_JKFSZ0:=LS_BKE286; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkc014' then -- 实际就诊日期 number(8) y 门诊为实际就诊日期,住院为实际出院日期(或中途结算日期) LS_JKFSZ0:=LS_BKC014; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkc171' then -- 实际就诊时间 number(6) n 住院指病人实际出院时间 LS_JKFSZ0:=LS_BKC171; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akc194' then -- 出院日期 number(14) n 格式: yyyymmddhhmmss “出院结算”时必填 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke078' then -- 离院方式 varchar2(3) y 参见编码附件 --离院方式 1 医嘱离院 2 医嘱转院 3 医嘱转社区卫生服务机构/乡镇卫生院 4 非医嘱离院 5 死亡 9 其他 LS_JKFSZ0:='9'; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='itemcount' then -- 处方项目数 number(4) y --医保明细流水号个数(厦门医保) if LS_CFLSHQZFS not in ('Y') then LS_JKFSZ0:=1; --医保明细流水号个数(HIS系统暂时都是单次上传明细,单次结算所以个数都是1) else LS_JKFSZ0:=LS_CFXMSL; end if; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akc227' then -- 医疗费总金额 number(12,4) y LS_JKFSZ0:=LS_AKB065; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke058' then -- 住院天数 number(4,1) n 住院结算时必填 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='amc029' then -- 计划生育手术类别 varchar2(3) n update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='amc026' then -- 生育类别 varchar2(3) n update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='amc028' then -- 胎儿数 number(3) n update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='amc020' then -- 计划生育手术或生育日期 number(8) n update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bmc041' then -- 怀孕天数 number(3) n update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke241' then -- 数据来源 varchar2(3) y 参见编码附件 LS_JKFSZ0:=LS_BKE241;----数据来源:对外接口方式 01 接口02 自助机15 微信16 支付宝19 服务12 诊间结算 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke042' then -- his流水号 varchar2(50) y his门诊流水号或住院流水号 LS_JKFSZ0:=LS_BKE042; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bka535' then -- 医师诊查费等级 110 普通医师 111 主治医师 112 副主任医师 113 主任医师 114 专家 120 普通医师[中医辩证] 121 主治医师[中医辩证] 122 副主任医师[中医辩证] 123 主任医师[中医辩证] 124 国医大师[中医辩证] LS_JKFSZ0:=LS_BKA535; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aab301' then LS_JKFSZ0:=LS_aab301; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkb526' then --bkb526医疗机构国家码 LS_JKFSZ0:=LS_bkb526; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkeg23' then --是否账户抵扣 LS_JKFSZ0 := LS_BKEG23; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bka190' then --是否账户抵扣 LS_JKFSZ0 := LS_BKA190; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; end if; end loop; --费用明细上传流水开始 --bke297 医保明细流水号 varchar2(20) LS_JSOSTR:=LS_JSOSTR||'{'; LS_JSOSTR:=LS_JSOSTR||'"bke297"'||':'||'"'||trim(LS_MXLSH0)||'"'||''; LS_JSOSTR:=LS_JSOSTR||'}'; insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'cflist','data','cflist','费用明细上传流水',null,null,'1',null,LS_JSOSTR from dual; --费用明细上传流水结束 elsif PJKCJBM in ('YBJK_TYTF_0023') then --YBJK_TYTF_0023 :门诊费用冲销 if nvl(PBRID00,0)=0 then PZXZT00:=0;--输出:执行状态 0:失败 1:成功 PERRMSG:='未找到有效的基本信息!'; return; end if; /* 这段必须去掉 2019.12.03 if nvl(LS_JZDH00,0)=0 then PZXZT00:=0;--输出:执行状态 0:失败 1:成功 PERRMSG:='未找到有效的结账信息!'; return; end if; */ --获取YBDJH0:医保单据号 YBSM20:医保挂号号 begin select YBDJH0,substrb(YBGHH0,1,30),MZID00,nvl(a.YBJKID,a.YBSM19) into LS_YBDJH0,LS_AKC190,LS_MZID00,LS_BKE298 from SF_JZB000 a where BRID00=PBRID00 and JZDH00=LS_JZDH00; exception when others then LS_YBDJH0:=substrb(SF_SF_GETXMLNOTE('YBDJH0',LS_HISCS0),1,30); end; if LS_MZID00>0 and LS_HISLSHQZFS not in ('Y') then LS_BKE042:=LS_MZID00; end if; --如果结算未成功LS_BKE298直接取前台传入值 if LS_HISLSH is not null and trim(LS_HISLSH) <> '0' then LS_BKE298:=LS_HISLSH; end if; --如果HIS收费流水号为空或0, 则取当前LS_YBJKID if LS_BKE298 is null or LS_BKE298 = '0' then LS_BKE298 := LS_YBJKID; end if; if trim(LS_YBDJH0) is not null and trim(LS_YBDJH0) not in ('0') then LS_AAE072:=substrb(trim(LS_YBDJH0),1,30); end if; --插入主项节点功能编码(data)--从字典取值 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,substrb(SJJGBM,1,50),substrb(SJJGMC,1,50),null,null,MZSFCX,null from BM_YBJKZD where MZSFCX in ('1','2','3') and nvl(SFYX00,'1')='1' and SJJGBM not in ('flag','cause') and JKBM00=1; --医保发送变量赋值 for C_YBFS in CUR_YBFSZX loop LS_JKFSZ0:='';--接口发送值 if lower(C_YBFS.ZDBM00)='aaz500' then --社会保障卡号 LS_JKFSZ0:=trim(LS_AAZ500); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aaz501' then -- 卡识别码 varchar2(32) n “读卡”认证时必填 LS_JKFSZ0:=LS_AAZ501; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aab301' then LS_JKFSZ0:=LS_aab301; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkb526' then --bkb526医疗机构国家码 LS_JKFSZ0:=LS_bkb526; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac002' then --证件号码(社会保障号) --LS_JKFSZ0:=trim(LS_YBID00); LS_JKFSZ0:=trim(LS_AAC002); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac003' then --姓名 LS_JKFSZ0:=LS_AAC003; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke284' then --身份认证类型 01:读卡 02:融合码 06:医保码 20:医疗证 LS_JKFSZ0:=LS_BKE284; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='ecToken' then --令牌 LS_JKFSZ0:=''; elsif lower(C_YBFS.ZDBM00)='aka078' then --医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 LS_JKFSZ0:=LS_AKA078;--医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aka130' then --aka130 医疗类别 LS_JKFSZ0:=LS_AKA130; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akc190' then --医保流水号(医保挂号) LS_JKFSZ0:=LS_AKC190; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aae072' then --医保收费流水号(医保结账单号) LS_JKFSZ0:=nvl(LS_AAE072,LS_YBDJH0); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke298' then --his收费流水号 LS_JKFSZ0:=LS_BKE298; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke241' then --数据来源:对外接口方式 01 接口02 自助机15 微信16 支付宝19 服务12 诊间结算 LS_JKFSZ0:=LS_BKE241;----数据来源:对外接口方式 01 接口02 自助机15 微信16 支付宝19 服务12 诊间结算 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke042' then -- his流水号 varchar2(50) y his门诊流水号或住院流水号 LS_JKFSZ0:=LS_BKE042; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkee70' then -- his 退费流水号 varchar2(50) y 对帐时使用 LS_JKFSZ0:=LS_BKEE70; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; end if; end loop; elsif PJKCJBM in ('YBJK_MXSC_0026','YBJK_MXSC_0026_1','YBJK_MXSC_0026_2') then --门诊费用明细上传 --插入主项节点功能编码(data)--从字典取值 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,substrb(SJJGBM,1,50),substrb(SJJGMC,1,50),null,null,MZMXSC,null from BM_YBJKZD where MZMXSC in ('1','2','3') and nvl(SFYX00,'1')='1' and SJJGBM not in ('flag','cause') and JKBM00=1; if PGHID00>0 then begin select trim(a.YBGHH0)YBGHH0,a.GHKS00,b.BMMC00,a.JZYS00,C.ZWXM00,C.YSZJHM,nvl(C.YBYGDM,'') into LS_YBGHH0,LS_GHKS00,LS_GHKSMC,LS_KDYS00,LS_KDYSXM,LS_YSZJHM,LS_YBYGDM --LS_bkc007 from SF_BRXXB0 a,BM_BMBM00 B ,BM_YGBM00 C where a.GHKS00=b.BMBH00 and a.JZYS00=C.YGBH00 and A.GHID00=PGHID00 and a.BRID00=PBRID00; --if LS_bkc007='' then --MZSF9-20210922-001 -- LS_bkc007:=LS_YSZJHM; --end if; exception when others then LS_GHKS00:=''; LS_GHKSMC:=''; LS_YBGHH0:=''; end; end if; --字典启用取国家医师编码 LS_BKC007 := LS_YSZJHM; if LS_BKC007_FSYSGJBM in ('1','3') then LS_BKC007 := nvl(LS_YBYGDM,LS_YSZJHM); end if; --如果入参未传入医保挂号号,取收费病人信息表的医保挂号 if LS_AKC190 is null and LS_YBGHH0 is not null and LS_YBGHH0 not in ('0') then LS_AKC190:=LS_YBGHH0; end if; select count(1),sum(XMJE00) into LS_CFXMSL,LS_AKB065 from SF_YBFSMX where ID0000=LS_ID0000; --医保发送变量赋值 for C_YBFS in CUR_YBFSZX loop LS_JKFSZ0:='';--接口发送值 if lower(C_YBFS.ZDBM00)='aaz500' then -- 社会保障卡号 varchar2(20) y LS_JKFSZ0:=trim(LS_AAZ500); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aaz501' then -- 卡识别码 varchar2(32) n “读卡”认证时必填 LS_JKFSZ0:=LS_AAZ501; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac003' then -- 姓名 varchar2(50) y LS_JKFSZ0:=LS_AAC003; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke284' then --身份认证类型 01:读卡 02:融合码 06:医保码 20:医疗证 LS_JKFSZ0:=LS_BKE284; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='ecToken' then --令牌 LS_JKFSZ0:=''; elsif lower(C_YBFS.ZDBM00)='aac002' then -- 证件号码(社会保障号) varchar2(18) n --LS_JKFSZ0:=trim(LS_YBID00); LS_JKFSZ0:=trim(LS_AAC002); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aka078' then -- 医疗就诊方式 varchar2(3) y 参见编码附件 LS_JKFSZ0:=LS_AKA078;--医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akc190' then -- 医保流水号 varchar2(20) y 医保门诊挂号流水号/住院登记流水号 LS_JKFSZ0:=LS_AKC190; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke042' then -- his流水号 varchar2(50) y his门诊流水号或住院流水号 LS_JKFSZ0:=LS_BKE042; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='itemcount' then -- 明细项目数量 number(4) y LS_JKFSZ0:=LS_CFXMSL; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akb065' then -- 医疗费总金额 number(16,2) y LS_JKFSZ0:=LS_AKB065; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke241' then -- 数据来源 varchar2(3) y 参见编码附件 LS_JKFSZ0:=LS_BKE241;----数据来源:对外接口方式 01 接口02 自助机15 微信16 支付宝19 服务12 诊间结算 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aab301' then LS_JKFSZ0:=LS_aab301; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkb526' then --bkb526医疗机构国家码 LS_JKFSZ0:=LS_bkb526; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; end if; end loop; --诊断明细开始 /* bke301 诊断或症状类型 varchar2(3) y 参见编码附件 01:门诊 02:入院03:出院04:病理诊断 bke302 诊断或症状序号 varchar2(3) y 参见编码附件 01:主要、主病 02:次要、主症、其它 03:第三等 bke087 诊断或症状编码 varchar2(50) y 见icd-10或症状表编码 bke088 诊断或症状名称 varchar2(100) y 见icd-10或症状表名称 */ ls_ZZDBZ0 := '0'; for C_ZDXX in CUR_BRZDXX loop LS_JSOSTR:=''; LS_BKE301:='01'; --诊断或症状类型 01:门诊 02:入院03:出院04:病理诊断 /*if C_ZDXX.ZZDBZ0='3' then LS_BKE302:='01'; --诊断或症状序号 01:主要、主病 02:次要、主症、其它 03:第三等 else LS_BKE302:='02'; end if;*/ --2021.05.18主诊断优先取西医主诊断, 再取中医疾病, 主诊断只能有一条 if C_ZDXX.YBZDBZ = '1' then --先处理西医主诊断 if ls_ZZDBZ0 = '0' then --未发送主诊断, 则按主诊断发送, 否则按次诊断发送 ls_BKE302 := '01'; ls_ZZDBZ0 := '1'; else ls_BKE302 := '02'; end if; elsif C_ZDXX.YBZDBZ = '2' then --再处理中医疾病 if ls_ZZDBZ0 = '0' then --未发送主诊断, 则按主诊断发送, 否则按次诊断发送 ls_BKE302 := '01'; ls_ZZDBZ0 := '1'; else ls_BKE302 := '02'; end if; else --其余诊断或症候按次诊断发送 ls_BKE302 := '02'; end if; if nvl(SF_XT_TYZD00('医保新接口参数设置','change_zdbm_ssbm'),'0') = '1' then begin if C_ZDXX.ZZDBZ0='1' then --中医 select DYBZBM,DYJBMC into LS_DYBZBM,LS_DYJBMC from BM_ZYJB00 B where B.JBBH00=C_ZDXX.ICD900 and nvl(SYBZ00,'1')='1' and rownum=1; elsif C_ZDXX.ZZDBZ0='2' then --症候 select DYBZBM,DYJBMC into LS_DYBZBM,LS_DYJBMC from BM_ZYZH00 B where B.ZHBH00=C_ZDXX.ICD900 and nvl(SYBZ00,'1')='1' and rownum=1; else select DYBZBM,DYJBMC into LS_DYBZBM,LS_DYJBMC from xt_ICD900 B where B.ICD900=C_ZDXX.ICD900 and nvl(b.SYBZ00,'1')='1'; end if; exception when others then LS_DYBZBM:=C_ZDXX.ICD900; LS_DYJBMC:=C_ZDXX.ZDMC00; end; LS_BKE087:=substrb(nvl(LS_DYBZBM,C_ZDXX.ICD900),1,50); --诊断或症状编码 y 见icd-10或症状表编码 LS_BKE088:=substrb(nvl(LS_DYJBMC,C_ZDXX.ZDMC00),1,100);--诊断或症状名称 y 见icd-10或症状表名称 else LS_BKE087:=substrb(C_ZDXX.ICD900,1,50); --诊断或症状编码 y 见icd-10或症状表编码 LS_BKE088:=substrb(C_ZDXX.ZDMC00,1,100);--诊断或症状名称 y 见icd-10或症状表名称 end if; LS_JSOSTR:=LS_JSOSTR||'{'; LS_JSOSTR:=LS_JSOSTR||'"bke301"'||':'||'"'||trim(LS_BKE301)||'"'||','; LS_JSOSTR:=LS_JSOSTR||'"bke302"'||':'||'"'||trim(LS_BKE302)||'"'||','; LS_JSOSTR:=LS_JSOSTR||'"bke087"'||':'||'"'||trim(LS_BKE087)||'"'||','; LS_JSOSTR:=LS_JSOSTR||'"bke088"'||':'||'"'||trim(LS_BKE088)||'"'||''; LS_JSOSTR:=LS_JSOSTR||'}'; insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'zdlist','data','zdlist','诊断明细',null,null,'1',null,LS_JSOSTR from dual; end loop; --诊断明细结束 --插入到中间表SF_YBJKQD --SF_YBJKQD.AKA071:trim(A.QYZL00)->trim(A.YPYL00) insert into SF_YBJKQD(YBJKID,JKMXID,BKE162,BKEA97,BKE045,BKE046,AKA063,AKA074,AKA070,AKA067,AKC225,AKC226, AKC227,AKA071,AKA072,AKA073,AKC221,AKC229,AKF001,AKF002,BKF237,BKF238,BKC006,BKC007,BKEA96, BKA001,BKEAA0,BKEAA1,BKEAA2,BKEAA3,BKE181,BKE182,BKEC27,BKC541,BKE506,BKE507,BKE508,BKE509, BKEH83,BKEH05,BKEH06,BAKXML,BKC507,BKC506) select LS_YBJKID as YBJKID, LS_ID0000 as JKMXID, LS_YBJKID as BKE162, --his处方号 varchar2(20) SQ_SF_YBJKMX_JKMXID.nextval as BKEA97, --his处方明细流水号 varchar2(50) trim(A.XMBH00) as BKE045, --收费项目编码 varchar2(20) trim(A.XMMC00) as BKE046, --收费项目名称 varchar2(100) trim(A.FPXMBH) as AKA063, --发票项目类别 varchar2(3) substrb(nvl(trim(A.XMGG00),'无'),1,20) as AKA074, --规格型号 varchar2(50) nvl(trim(A.JX0000),'000') as AKA070, --剂型 varchar2(3) --substrb(nvl(trim(A.XMDW00),'无'),1,20) as AKA067, --单位 varchar2(20) decode(a.FLAG00,'0',substrb(trim(A.XMDW00),1,20), decode(LS_YPDWSFFSYBBM,'0',substrb(trim(A.XMDW00),1,20),substrb(SF_XT_GETYPYBDW(trim(a.XMDW00),'2'),1,20))) as AKA067, --单位 varchar2(20) A.XMDJ00 as AKC225, --单价 number(12,4) A.XMSL00 as AKC226, --数量 number(8) A.XMJE00 as AKC227, --金额 number(12,4) trim(A.YPYL00) as AKA071, --每次用量 number(5,2) trim(A.YPPL00) as AKA072, --使用频次 varchar2(5) trim(A.GYTJ00) as AKA073, --给药途径 varchar2(50) trim(A.CZRQ00) as AKC221, --处方日期 number(8) nvl(trim(A.YLTS00),'1') as AKC229, --执行天数 number(4,1) LS_AKF001 as AKF001, --科室编码 varchar2(50) LS_AKF002 as AKF002, --科室名称 varchar2(50) LS_BKF237 as BKF237, --his内部科室编码 varchar2(50) LS_BKF238 as BKF238, --his内部科室名称 varchar2(50) trim(decode(A.YSXM00,null,LS_KDYSXM,A.YSXM00)) as bkc006, --中间表医生姓名为空, 则取当前挂号就诊医生姓名 trim(decode(A.YSXM00,null,LS_bkc007,A.YSZJHM)) as bkc007, --中间表医生姓名为空, 则取当前挂号就诊医生证件号码(与医生姓名同步) --decode(LS_BKC007_FSYSGJBM,'1',LS_bkc007,'3',LS_bkc007,trim(decode(A.YSXM00,null,LS_YSZJHM,A.YSZJHM))) as bkc007, --中间表医生姓名为空, 则取当前挂号就诊医生证件号码(与医生姓名同步) trim(A.SFYB00) as bkea96, --限制范围类别 varchar2(3) substrb(A.SFYB00,1,2) as bka001, --是否医保项目 varchar(2) y y-是 n-否 'N' as bkeaa0, --处方外流标志 varchar2(3) y Y-外流项目、N-非外流项目 (1)处方开具医疗机构如果有处方外流需求的,需要标识外流项目和非外流项目 如果没有外流需求的,默认设置为非外流项目 null as bkeaa1, --处方开具医疗机构 varchar2(40) y 开具处方时默认填入,处方执行时由流转平台 null as bkeaa2, --处方执行医疗机构 varchar2(40) n 处方执行医疗机构编号 null as bkeaa3, --处方外流对应流水号 varchar2(20) n 处方开具时归属的医保流水号 nvl(A.BKE181,nvl(to_char(A.SFXMID),trim(A.XMBH00))) as BKE181,--HIS院内项目编码 nvl(A.BKE182,trim(nvl(A.YYXMMC,A.XMMC00))) as BKE182, --HIS院内项目名称 nvl(trim(A.CZRQ00),LS_CZRQ00) as BKEC27,--记帐日期1、住院:明细对应记帐日期或执行日期,与日清单时间对应。2、门诊,该值等于【处方日期】目录与价格动态调整依据 '001' as BKC541,--医保服务人员类别:001:医师 002:护师(士) 003:药师(士) 004:技师 005:收费员 006:助理医师 007:心理咨询师 substrb(trim(A.DCYYDW),1,20) as BKE506,--单次用药单位 substrb(trim(A.QYZL00),1,20) as BKE507,--取药总量 substrb(trim(A.QYZLDW),1,20) as BKE508,--取药总量单位 substrb(nvl(trim(A.YLTS00),'1'),1,20) as BKE509, --药量天数 a.BKEH83, --国家标准对应编码 a.BKEH05, --医保备用1 a.BKEH06, --医保备用2 a.BAKXML, --HIS备用字段(xml格式)后续扩展 a.BKC507, --药师国家编码 a.BKC506 --药师姓名 from SF_YBFSMX A where ID0000=LS_ID0000; if LS_YBJKFPLBCS = '1' then --医保发票是否发送名称, 1是0否 update SF_YBJKQD a set AKA063=(select trim(nvl(max(XMMC00),'其他费')) from BM_YBFPXM where BH0000=a.AKA063 and YBZXLB=ls_YBZXLB and rownum=1) where a.YBJKID=LS_YBJKID; end if; --if LS_YBFPBH in ('Y') then --医保发票是否使用编号 Y:编码 N:明细 -- update SF_YBJKQD a set a.AKA063=(select b.BH0000 from BM_FPXM00 b where b.XMMC00=a.AKA063) where YBJKID=LS_YBJKID; --end if; --LS_QDQZFS 医保新接口费用清单取值方式 1:取SF_YBJKQD或ZY_YBJKQD 2:取SF_YBJKMX或ZY_YBJKMX 默认:1 if LS_QDQZFS not in ('1') then --收费明细开始 SF_YBJKQD for C_CFMX in CUR_MXLIST loop LS_JSOSTR:=''; LS_JSOSTR:=LS_JSOSTR||'{'; LS_JSOSTR:=LS_JSOSTR||'"bke162"'||':'||'"'||trim(C_CFMX.bke162)||'"'||',';-- his处方号 varchar2(20) y LS_JSOSTR:=LS_JSOSTR||'"bkea97"'||':'||'"'||trim(C_CFMX.bkea97)||'"'||',';-- his处方明细流水号 varchar2(50) y 院内系统每条收费项目唯一标识 LS_JSOSTR:=LS_JSOSTR||'"bke045"'||':'||'"'||trim(C_CFMX.bke045)||'"'||',';-- 收费项目编码 varchar2(20) y 医保对应项目编码 LS_JSOSTR:=LS_JSOSTR||'"bke046"'||':'||'"'||trim(C_CFMX.bke046)||'"'||',';-- 收费项目名称 varchar2(100) y LS_JSOSTR:=LS_JSOSTR||'"aka063"'||':'||'"'||trim(C_CFMX.aka063)||'"'||','; -- 发票项目类别 varchar2(3) n 参见编码附件 LS_JSOSTR:=LS_JSOSTR||'"aka074"'||':'||'"'||trim(C_CFMX.aka074)||'"'||',';-- 规格型号 varchar2(50) y LS_JSOSTR:=LS_JSOSTR||'"aka070"'||':'||'"'||trim(C_CFMX.aka070)||'"'||',';-- 剂型 varchar2(3) y 参见编码附件 LS_JSOSTR:=LS_JSOSTR||'"aka067"'||':'||'"'||trim(C_CFMX.aka067)||'"'||',';-- 单位 varchar2(20) y 参见规范编码附件V1.0 LS_JSOSTR:=LS_JSOSTR||'"akc225"'||':'||'"'||C_CFMX.akc225||'"'||',';-- 单价 number(12,4) y LS_JSOSTR:=LS_JSOSTR||'"akc226"'||':'||'"'||C_CFMX.akc226||'"'||',';-- 数量 number(8) y LS_JSOSTR:=LS_JSOSTR||'"akc227"'||':'||'"'||C_CFMX.akc227||'"'||',';-- 金额 number(12,4) y LS_JSOSTR:=LS_JSOSTR||'"aka071"'||':'||'"'||trim(C_CFMX.aka071)||'"'||',';-- 每次用量 number(5,2) n 药品类项目必填 LS_JSOSTR:=LS_JSOSTR||'"aka072"'||':'||'"'||trim(C_CFMX.aka072)||'"'||',';-- 使用频次 varchar2(5) n 药品类项目必填,参见编码附件 LS_JSOSTR:=LS_JSOSTR||'"aka073"'||':'||'"'||trim(C_CFMX.aka073)||'"'||',';-- 给药途径 varchar2(50) n 药品类项目必填 LS_JSOSTR:=LS_JSOSTR||'"akc221"'||':'||'"'||trim(C_CFMX.akc221)||'"'||',';-- 处方日期 number(8) y 价调动态调整说明 LS_JSOSTR:=LS_JSOSTR||'"akc229"'||':'||'"'||trim(C_CFMX.akc229)||'"'||',';-- 执行天数 number(4,1) n LS_JSOSTR:=LS_JSOSTR||'"akf001"'||':'||'"'||trim(C_CFMX.akf001)||'"'||',';-- 科室编码 varchar2(50) n 即资格管理系统中的“医疗机构科室id” LS_JSOSTR:=LS_JSOSTR||'"akf002"'||':'||'"'||trim(C_CFMX.akf002)||'"'||',';-- 科室名称 varchar2(50) n 即资格管理系统中的“医院科室名称” LS_JSOSTR:=LS_JSOSTR||'"bkf237"'||':'||'"'||trim(C_CFMX.bkf237)||'"'||',';-- his内部科室编码 varchar2(50) y 院内编码 LS_JSOSTR:=LS_JSOSTR||'"bkf238"'||':'||'"'||trim(C_CFMX.bkf238)||'"'||',';-- his内部科室名称 varchar2(50) y 院内定义 LS_JSOSTR:=LS_JSOSTR||'"bkc006"'||':'||'"'||trim(C_CFMX.bkc006)||'"'||',';-- 医疗服务人员姓名 varchar2(50) y 开处方医疗服务人员姓名 LS_JSOSTR:=LS_JSOSTR||'"bkc007"'||':'||'"'||trim(C_CFMX.bkc007)||'"'||',';-- 医疗服务人员证件号码 varchar2(18) y 开处方医疗服务人员证件号码 LS_JSOSTR:=LS_JSOSTR||'"bkc507"'||':'||'"'||trim(C_CFMX.bkc507)||'"'||',';-- 药师国家编码 varchar2(50) n LS_JSOSTR:=LS_JSOSTR||'"bkc506"'||':'||'"'||trim(C_CFMX.bkc506)||'"'||',';-- 药师姓名 varchar2(50) n LS_JSOSTR:=LS_JSOSTR||'"bkea96"'||':'||'"'||trim(C_CFMX.bkea96)||'"'||','; -- 限制范围类别 varchar2(3) y Y-范围内、N-范围外(1)医保项目无限制范围的项目值为Y;自费项目值为N;(2)医保项目有限制范围的项目,在限制范围内的值为Y,否则为N LS_JSOSTR:=LS_JSOSTR||'"bka001"'||':'||'"'||trim(C_CFMX.bka001)||'"'||',';-- 是否医保项目 varchar(2) y y-是 n-否 LS_JSOSTR:=LS_JSOSTR||'"bkeaa0"'||':'||'"'||trim(C_CFMX.bkeaa0)||'"'||',';-- 处方外流标志 varchar2(3) y Y-外流项目、N-非外流项目(1)处方开具医疗机构如果有处方外流需求的,需要标识外流项目和非外流项目如果没有外流需求的,默认设置为非外流项目 LS_JSOSTR:=LS_JSOSTR||'"bkeaa1"'||':'||'"'||trim(C_CFMX.bkeaa1)||'"'||',';-- 处方开具医疗机构 varchar2(40) y 开具处方时默认填入,处方执行时由流转平台 LS_JSOSTR:=LS_JSOSTR||'"bkeaa2"'||':'||'"'||trim(C_CFMX.bkeaa2)||'"'||',';-- 处方执行医疗机构 varchar2(40) n 处方执行医疗机构编号 LS_JSOSTR:=LS_JSOSTR||'"bkeaa3"'||':'||'"'||trim(C_CFMX.bkeaa3)||'"'||',';-- 处方外流对应流水号 varchar2(20) n 处方开具时归属的医保流水号 LS_JSOSTR:=LS_JSOSTR||'"bke181"'||':'||'"'||trim(C_CFMX.BKE181)||'"'||',' ;--HIS院内项目编码 LS_JSOSTR:=LS_JSOSTR||'"bke182"'||':'||'"'||trim(C_CFMX.BKE182)||'"'||',' ;--HIS院内项目名称 LS_JSOSTR:=LS_JSOSTR||'"bkec27"'||':'||'"'||trim(C_CFMX.BKEC27)||'"'||',' ;--记帐日期1、住院:明细对应记帐日期或执行日期,与日清单时间对应。2、门诊,该值等于【处方日期】目录与价格动态调整依据 LS_JSOSTR:=LS_JSOSTR||'"bkc541"'||':'||'"'||trim(C_CFMX.BKC541)||'"'||',' ;--医保服务人员类别:001:医师 002:护师(士) 003:药师(士) 004:技师 005:收费员 006:助理医师 007:心理咨询师 LS_JSOSTR:=LS_JSOSTR||'"bke506"'||':'||'"'||trim(C_CFMX.BKE506)||'"'||',' ;--单次用药单位 LS_JSOSTR:=LS_JSOSTR||'"bke507"'||':'||'"'||trim(C_CFMX.BKE507)||'"'||',' ;--取药总量 LS_JSOSTR:=LS_JSOSTR||'"bke508"'||':'||'"'||trim(C_CFMX.BKE508)||'"'||',' ;--取药总量单位 LS_JSOSTR:=LS_JSOSTR||'"bke509"'||':'||'"'||trim(C_CFMX.BKE509)||'"'||' ' ;--药量天数 LS_JSOSTR:=LS_JSOSTR||'}'; insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000,VALUE0) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'mxlist','data','mxlist','收费明细',null,null,'1',null,LS_JSOSTR from dual; end loop; --收费明细结束 if LS_SFFSGHRQ='1' then --新医保门诊是否发送挂号日期1:是0:否 参数开后,AKC221,BKEC27 不能超过LS_BKC014 update SF_YBJKQD set AKC221=LS_BKC014 where YBJKID=LS_YBJKID and AKC221>LS_BKC014 ; update SF_YBJKQD set BKEC27=LS_BKC014 where YBJKID=LS_YBJKID and BKEC27>LS_BKC014; end if; end if; elsif PJKCJBM in ('YBJK_MXZF_0029') then --门诊费用明细作废 --获取YBDJH0:医保单据号 YBSM20:医保挂号号 begin select YBDJH0,substrb(YBGHH0,1,30),MZID00,nvl(a.YBJKID,a.YBSM19) into LS_YBDJH0,LS_AKC190,LS_MZID00,LS_BKE298 from SF_JZB000 a where BRID00=PBRID00 and JZDH00=LS_JZDH00; exception when others then LS_YBDJH0:=substrb(SF_SF_GETXMLNOTE('YBDJH0',LS_HISCS0),1,30); end; --插入主项节点功能编码(data)--从字典取值 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,substrb(SJJGBM,1,50),substrb(SJJGMC,1,50),null,null,MZMXCX,null from BM_YBJKZD where MZMXCX in ('1','2','3') and nvl(SFYX00,'1')='1' and SJJGBM not in ('flag','cause') and JKBM00=1; --医保发送变量赋值 for C_YBFS in CUR_YBFSZX loop LS_JKFSZ0:='';--接口发送值 if lower(C_YBFS.ZDBM00)='akc190' then -- 医保流水号 varchar2(20) y 医保门诊挂号流水号/住院登记流水号 LS_JKFSZ0:=LS_AKC190; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke297' then -- 医保明细流水号 varchar2(20) y LS_JKFSZ0:=LS_MXLSH0; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bae016' then -- 作废原因 varchar2(100) y LS_JKFSZ0:=LS_bae016; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke241' then -- 数据来源 varchar2(3) y 参见编码附件 LS_JKFSZ0:=LS_BKE241;--数据来源:对外接口方式 01 接口02 自助机15 微信16 支付宝19 服务12 诊间结算 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aka078' then -- 医疗就诊方式 varchar2(3) y 参见编码附件 LS_JKFSZ0:=LS_AKA078;--医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aab301' then --行政区号 LS_JKFSZ0:=LS_aab301; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkb526' then --bkb526医疗机构国家码 LS_JKFSZ0:=LS_bkb526; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; end if; end loop; elsif PJKCJBM in ('YBJK_MZDJ_0006') then --门诊挂号 --插入主项节点功能编码(data)--从字典取值 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,substrb(SJJGBM,1,50),substrb(SJJGMC,1,50),null,null,MZGH00,null from BM_YBJKZD where MZGH00 in ('1','2','3') and nvl(SFYX00,'1')='1' and SJJGBM not in ('flag','cause') and JKBM00=1; --医保发送变量赋值 for C_YBFS in CUR_YBFSZX loop LS_JKFSZ0:='';--接口发送值 if lower(C_YBFS.ZDBM00)='aaz500' then -- 社会保障卡号 varchar2(20) y LS_JKFSZ0:=trim(LS_AAZ500); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aaz501' then --卡识别码 LS_JKFSZ0:=LS_AAZ501; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aab301' then LS_JKFSZ0:=LS_aab301; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkb526' then --bkb526医疗机构国家码 LS_JKFSZ0:=LS_bkb526; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac002' then -- 证件号码(社会保障号) varchar2(18) n 跨省交易时必填 --LS_JKFSZ0:=trim(LS_YBID00); LS_JKFSZ0:=trim(LS_AAC002); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac003' then -- 姓名 varchar2(50) y LS_JKFSZ0:=LS_AAC003; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke284' then --身份认证类型 01:读卡 02:融合码 06:医保码 20:医疗证 LS_JKFSZ0:=LS_BKE284; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='ecToken' then --令牌 LS_JKFSZ0:=''; elsif lower(C_YBFS.ZDBM00)='aka078' then -- 医疗就诊方式 varchar2(3) y 参见编码附件, 填写规则参见表格尾部 LS_JKFSZ0:=LS_AKA078;--医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aka130' then -- 医疗类别 varchar2(3) y 参见编码附件,择日住院、家庭病床等通过此字段标识, 填写规则参见表格尾部 --医疗类别11:普通门诊 12:急诊、13:门诊慢(特)病种 16:急诊观留床 21:普通住院 29:择日住院 52:生育住院 LS_JKFSZ0:=LS_AKA130; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke042' then -- his流水号 varchar2(50) y his门诊流水号或住院流水号 LS_JKFSZ0:=LS_BKE042; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akf001' then -- 标准科室编码 varchar2(50) n 即资格管理系统中的“医疗机构科室id” LS_JKFSZ0:=LS_akf001; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akf002' then -- 标准科室名称 varchar2(50) n 即资格管理系统中的“医院科室名称” LS_JKFSZ0:=LS_akf002; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkf237' then -- his内部科室编码 varchar2(50) y 医保科室编码 LS_JKFSZ0:=LS_bkf237; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkf238' then -- his内部科室名称 varchar2(50) y 院内定义 LS_JKFSZ0:=LS_bkf238; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akc069' then -- 急诊标志 varchar2(3) y 0 否,1 是 LS_JKFSZ0:='0'; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akc066' then -- 外伤标志 varchar2(3) y 0 否,1 是 LS_JKFSZ0:='0'; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akc192' then -- 实际门诊/入院日期 number(14) y 若为空,默认取系统时间 LS_JKFSZ0:=LS_akc192; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aae030' then -- 择日住院起始日期 number(8) n update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aae031' then -- 择日住院截止日期 number(8) n update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke241' then -- 数据来源 varchar2(3) y 参见编码附件 LS_JKFSZ0:=LS_BKE241;----数据来源:对外接口方式 01 接口02 自助机15 微信16 支付宝19 服务12 诊间结算 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aaz501' then -- 卡识别码 varchar2(32) n “读卡”认证时必填 LS_JKFSZ0:=LS_AAZ501; --LS_JKFSZ0:=LS_YBKSBM; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aka042' then -- 住院类别 varchar2(3) n 参见编码附件(生育住院时该字段为必填项) LS_JKFSZ0:=''; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; end if; end loop; elsif PJKCJBM in ('YBJK_MZDJ_0008') then --门诊挂号冲销 --插入主项节点功能编码(data)--从字典取值 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,substrb(SJJGBM,1,50),substrb(SJJGMC,1,50),null,null,MZGHCX,null from BM_YBJKZD where MZGHCX in ('1','2','3') and nvl(SFYX00,'1')='1' and SJJGBM not in ('flag','cause') and JKBM00=1; --医保发送变量赋值 for C_YBFS in CUR_YBFSZX loop LS_JKFSZ0:='';--接口发送值 if lower(C_YBFS.ZDBM00)='aaz500' then -- 社会保障卡号 varchar2(20) y LS_JKFSZ0:=trim(LS_AAZ500); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aaz501' then -- 卡识别码 varchar2(32) n “读卡”认证时必填 LS_JKFSZ0:=LS_AAZ501; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aab301' then LS_JKFSZ0:=LS_aab301; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkb526' then --bkb526医疗机构国家码 LS_JKFSZ0:=LS_bkb526; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac002' then -- 证件号码(社会保障号) varchar2(18) n 跨省交易时必填 --LS_JKFSZ0:=trim(LS_YBID00); LS_JKFSZ0:=trim(LS_AAC002); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac003' then -- 姓名 varchar2(50) y LS_JKFSZ0:=LS_AAC003; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke284' then --身份认证类型 01:读卡 02:融合码 06:医保码 20:医疗证 LS_JKFSZ0:=LS_BKE284; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='ecToken' then --令牌 LS_JKFSZ0:=''; elsif lower(C_YBFS.ZDBM00)='aka078' then -- 医疗就诊方式 varchar2(3) y 参见编码附件 LS_JKFSZ0:=LS_AKA078;--医疗就诊方式 10:门(急)诊 20:住院 81:生育门诊 82:生育住院91:工伤门诊 92:工伤住院 50:特殊门诊 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='akc190' then -- 医保流水号 varchar2(20) y 医保门诊挂号流水号/住院登记流水号 LS_JKFSZ0:=LS_AKC190; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke042' then -- his流水号 varchar2(50) y his门诊流水号或住院流水号 if trim(LS_HISLSH) is not null then LS_JKFSZ0:=LS_HISLSH; else LS_JKFSZ0:=LS_BKE042; end if; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke241' then -- 数据来源 varchar2(3) y 参见编码附件 LS_JKFSZ0:=LS_BKE241;----数据来源:对外接口方式 01 接口02 自助机15 微信16 支付宝19 服务12 诊间结算 update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; end if; end loop; --本功能主要应用于his建档时调用,参保人在医疗机构首次就诊时,需调用此服务进行身份认证,获取参保人基本信息。 --医保支持多渠道认证方式,目前仅开通读卡验证。其它刷脸、扫码及二维码等几种认证方式支持扩展,扩展的内容解释权归本地医保 elsif PJKCJBM in ('YBJK_YBDK_0001','YBJK_YBDK_0002','YBJK_YBDK_0003','YBJK_YBDK_0004') then --医保身份认证(f04.10.01.16) --插入主项节点功能编码(data)--从字典取值 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,substrb(SJJGBM,1,50),substrb(SJJGMC,1,50),null,null,MZGHSK,null from BM_YBJKZD where MZGHSK in ('1','2','3') and nvl(SFYX00,'1')='1' and SJJGBM not in ('flag','cause') and JKBM00=1; --医保发送变量赋值 for C_YBFS in CUR_YBFSZX loop LS_JKFSZ0:='';--接口发送值 if lower(C_YBFS.ZDBM00)='aaz500' then --社会保障卡号 LS_JKFSZ0:=LS_CARDNO; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aaz501' then --卡识别码 LS_JKFSZ0:=LS_AAZ501; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aab301' then LS_JKFSZ0:=LS_aab301; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkb526' then --bkb526医疗机构国家码 LS_JKFSZ0:=LS_bkb526; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkz543' then --二维码 LS_JKFSZ0:=LS_BKZ543; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac003' then --姓名 LS_JKFSZ0:=LS_AAC003; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke284' then --身份认证类型 01:读卡 02:融合码 06:医保码 20:医疗证 LS_JKFSZ0:=LS_BKE284; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='ecToken' then --令牌 LS_JKFSZ0:=''; end if; end loop; elsif PJKCJBM in ('YBJK_YBCX_0005') then --资格信息查询(f04.10.01.17) --插入主项节点功能编码(data)--从字典取值 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,substrb(SJJGBM,1,50),substrb(SJJGMC,1,50),null,null,MZGHSK,null from BM_YBJKZD where MZGHSK in ('1','2','3') and nvl(SFYX00,'1')='1' and SJJGBM not in ('flag','cause') and JKBM00=1; --医保发送变量赋值 for C_YBFS in CUR_YBFSZX loop LS_JKFSZ0:='';--接口发送值 if lower(C_YBFS.ZDBM00)='aaz500' then --社会保障卡号 LS_JKFSZ0:=LS_CARDNO; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aaz501' then --卡识别码 LS_JKFSZ0:=LS_AAZ501; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aab301' then LS_JKFSZ0:=LS_aab301; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkb526' then --bkb526医疗机构国家码 LS_JKFSZ0:=LS_bkb526; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bkz543' then --二维码 LS_JKFSZ0:=LS_BKZ543; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac003' then --姓名 LS_JKFSZ0:=LS_AAC003; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='aac002' then -- 证件号码(社会保障号) varchar2(18) n 省交易时必填 LS_JKFSZ0:=trim(LS_AAC002); update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='bke284' then --身份认证类型 01:读卡 02:融合码 06:医保码 20:医疗证 LS_JKFSZ0:=LS_BKE284; update SF_YBJKMX set JKFSZ0=LS_JKFSZ0 where YBJKID=LS_YBJKID and ZDBM00=C_YBFS.ZDBM00; elsif lower(C_YBFS.ZDBM00)='ecToken' then --令牌 LS_JKFSZ0:=''; end if; end loop; elsif PJKCJBM in ('YBJK_YBCX_0053') then --医保人员信息验证(yb04.10.01.20) --aaz500 社会保障卡号 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aaz500','社会保障卡号',LS_AAZ500,null,'3',null from dual; --aac002 证件号码(社会保障号) insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aac002','证件号码(社会保障号)',LS_AAC002,null,'3',null from dual; --aac003 姓名 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'aac003','姓名',LS_AAC003,null,'3',null from dual; --aac003 姓名 insert into SF_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,JKFSZ0,JKFHZ0,FSLXBZ,BZ0000) select LS_YBJKID,SQ_SF_YBJKMX_JKMXID.nextval,'data',null,'bkeh16','校验结果',null,null,'2',null from dual; end if; if PCOMMIT='Y' then commit; end if; /* --医保凭证结算 不发送aaz500 if LS_BKE284 in ('06') then update SF_YBJKMX set FSLXBZ='0' where YBJKID=LS_YBJKID and ZDBM00='aaz500'; end if; */ PZXZT00:=1;--输出:执行状态 0:失败 1:成功 PYBJKID:=LS_YBJKID;--输出:订单流水号 exception when no_data_found then PZXZT00:=0; PERRMSG:=substrb('执行新医保接口交互日志失败!原因:'||sqlerrm,1,200); when others then PZXZT00:=0; PERRMSG:=substrb('执行新医保接口交互日志失败!原因:'||sqlerrm,1,200); end;