--## 2022.12.02 ZYSF13X-20221202-002
prompt [住院][易惠博思电子发票][结账发票视图] VW_ZY_op_electronic_bill
create or replace view VW_ZY_op_electronic_bill
as
-- MODIFICATION HISTORY                                                       
-- Person    Date          Comments                                           
-- zhangyc   2020.12.07    created  [住院][易惠博思电子发票][结账发票视图] by 	ZYSF9-20201207-003
-- zhangyc   2020.12.09    medicalInstitution改为取通用字典 为空默认"综合医院"  by ZYSF9-20201210-001
-- zhangyc   2020.12.11    busNo改为函数 '01'||to_char(SF_ZY_GETYXPJH(a.PJH000)) by ZYSF9-20201211-001
-- zhangyc   2020.12.15    单病种费用根据decode(nvl(a.dbzbm0,a.FFBZBM),'',a.HJJE00,nvl(a.YBYL04,0)+nvl(a.YBYL33,0)+nvl(a.YBYL34,0)+nvl(a.YBYL69,0)) by ZYSF9-20201216-004
-- zhangyc   2020.12.18    hospitalNo=trim(C.ZYH000)，caseNumber=trim(B.BRBLH0) by ZYSF9-20201221-001
-- jlg       2021.07.01    remark字段增加单病种信息  ZYSF9-20210701-001
-- jlg       2021.07.20    payer姓名字段改为函数SF_ZY_GETYEXMXS获取 ZYSF9-20210715-001 
-- jlg       2021.07.29    修改payChannelDetail的取值，去掉dbzbm0的判断 	ZYSF9-20210730-001
-- chenHeyi  2021.12.20    增加CDRG组别，CDRG标准费用，可报高值耗材费(C-DRG),超标床位费(C-DRG),超标高值耗材费(C-DRG),另收高值药品费(C-DRG),CDRG总金额;及修改payChannelDetail的CDRG模式,增加remark备注体现单病种或CDGR组别  ZYSF9-20211216-001
-- chenrh    2022.12.02    增加备注：单病种名称及退款详情  	ZYSF13X-20221202-002

select 
  c.ZYID00 as  ZYID00,                                                        --住院ID
  C.BRID00 as  BRID00,                                                        --病人ID
  c.ZYH000 as  ZYH000,                                                        --住院号
  a.JZDH00 as  JZDH00,                                                        --结账单号
  a.JZRQ00 as  JZRQ00,                                                        --结账日期
  a.JZSJ00 as  JZSJ00,                                                        --结账时间
  a.JZY000 as  JZY000,                                                        --结账员编码
  d.ZWXM00 as  JZYXM0,                                                        --结账员姓名
  a.CZYKS0 as  CZYKS0,                                                        --操作员科室 
  a.YBZHYE as  ybzhye,                                                        --医保账户余额
  0 as ptmzlj,                                                                --普通门诊累计
  0 as tsmzlj,                                                                --特殊门诊累计
  trim(a.dbzbm0) as dbzbm0,                                                   --单病种编码
  trim(a.FFBZBM) as ffbzbm,                                                   --付费病种编码 
  nvl(a.YBYL04,0) as  bzdebz,                                                 --单病种限额
  nvl(a.YBYL33,0) as  bzcbcw,                                                 --超标床位费用(付费单病种写入)
  nvl(a.YBYL34,0) as  bzcwhc,                                                 --除外耗材费用(付费单病种写入)   
  nvl(a.YBYL69,0) as  bztsyl,                                                 --特需医疗服务费（付费单病种写入）
  nvl(a.YBYL04,0)+nvl(a.YBYL33,0)+nvl(a.YBYL34,0)+nvl(a.YBYL69,0) as BZHJJE,  --单病种合计金额 
  a.YBSM09,                                                                   --CDRG组别
  a.YBSM10,                                                                   --CDRG病例类型
  a.YBYL39,                                                                   --CDRG标准费用
  a.YBYL43,                                                                   --可报高值耗材费(C-DRG)
  a.YBYL44,                                                                   --超标床位费(C-DRG)
  a.YBYL45,                                                                   --超标高值耗材费(C-DRG)
  a.CBYPF0,                                                                   --另收高值药品费(C-DRG)
  nvl(a.YBYL39,0)+nvl(a.YBYL43,0)+nvl(a.YBYL44,0)+nvl(a.YBYL45,0)+nvl(a.CBYPF0,0)  as CDRGJE,                --CDRG总金额       
  a.JZDH00 as  ywlsh,                                                         --ywlsh	              业务流水号	              string        是	
  '01' as busType,                                                            --busType	            业务标识	                String	20	     (01:住院 02	门诊 03	急诊 04	门特 05	体检中心 06	挂号 07	住院预交金 08	体检预交金)
  '01'||to_char(SF_ZY_GETYXPJH(a.PJH000))  as busNo,                          --busNo               业务流水号                String  50    是 单位内部唯一
  substr(SF_ZY_GETYEXMXS(b.BRXM00,a.YEXM00),1,50) as payer,                   --payer               患者姓名                  String  100   是
  a.JZRQ00||substrb(a.JZSJ00,1,2)||substrb(a.JZSJ00,4,2)||substrb(a.JZSJ00,7,2)||'000' as  busDateTime,                                             --busDateTime	业务发生时间	String	17	是	格式：yyyyMMddHHmmssSSS
  d.xkh000 as  placeCode,                                                     --placeCode	          开票点编码	              String	50	  是 直接填写业务系统内部编码值，由医疗平台配置对照
  d.ZWXM00 as  payee,                                                         --payee	              收费员	                  String	50	  是 
  d.ZWXM00 as  author,                                                        --author	            票据编制人	              String	100	  是 如收费员与开票人员为同一人，则值与payee相同
  d.ZWXM00 as  checker,                                                       --checker	            票据复核人                                 
  a.HJJE00 as totalAmt,                                                       --totalAmt            开票总金额                Number  14,2  是 
  '1' as  payerType,                                                          --payerType	          交款人类型	              String	1	    是 交款人类型：1 个人 2 单位 
  decode(trim(b.YBKH00),'0','3101','1102') as  cardType,                      --cardType	          卡类型	                  String	10	  是(1101	身份证号码 1102	社会保障卡号 3101	诊疗卡/就诊卡 4101	居民户口簿 5101	京通卡)
  decode(trim(b.YBKH00),'0',c.ZYH000,b.YBKH00) as cardNo,                     --cardNo              卡号              String  50    是 根据卡类型填写 
  trim(c.ZYH000) as patientNo,                                                --patientNo           患者就诊编号              String  20    是 患者每次就诊一次就生成的一个新的编号。（患者登记号）
  c.XB0000 as sex,                                                            --sex                 性别                      String  2     是
  to_number(to_char(sysdate,'YYYY'))-to_number(substr(b.BRCSRQ,1,4)) as age,  --age                 年龄                      String  10    是 
  b.BRZJBH as idCardNo,                                                       --idCardNo            患者身份证号码            String  20    否 
  nvl(b.BRDH00,b.BRLXDH) as tel,                                              --tel	                患者手机号码	            String	13	  否 患者手机号（如需要用于电子票归集、电子票据短信通知，必填）
  '' as email,                                                                --email	              患者邮箱地址	            String	100	  否 患者邮箱地址（如需用于电子票归集、电子票据邮箱通知，必填）
  substrb(nvl(SF_SF_TYZD00('第三方电子发票平台接口','medicalInstitution'),'综合医院'),1,60) as medicalInstitution,    --      String  60    否 医疗机构类型			
  e.FBBH00 as medCareInstitution,                                             --medCareInstitution	医保机构编码	            String	60	  否 医保机构的唯一编码  
  e.YBLB00 as medCareTypeCode,                                                --medCareTypeCode     医保类型编码              String  60    否 
  e.YBMC00 as medicalCareType,                                                --medicalCareType     医保类型名称              String  60    否 由城镇职工基本医疗保险、城镇居民基本医疗保险、新型农村合作医疗、其它医疗保险等构成
  trim(b.YBID00) as medicalInsuranceID,                                       --medicalInsuranceID  患者医保编号              String  60    否 参保人在医保系统中的唯一标识(医保号)      
  c.RYRQ00 as consultationDate,                                               --consultationDate    就诊日期                  String  10    否 患者就医时间格式:yyyyMMdd
  (select aa.BMMC00 from BM_BMBM00 aa where aa.BMBH00=c.DQKS00) as category,  --category            就诊科室                  String  200   否 
  c.DQKS00 as patientCategoryCode,                                            --patientCategoryCode 就诊科室编码              String  60    否  
  b.BRID00 as patientId,                                                      --patientId           患者唯一ID                String  50    否 患者在业务系统中的唯一标识ID，类似身份证号码。
  trim(B.BRBLH0) as caseNumber,                                               --caseNumber          病历号                    String  50    否 
  (select BZMC00 from BM_BZSFBZ where FBBH00 = a.FBBH00 and YBZXLB = a.YBZXLB and FFBZBM = a.FFBZBM and rownum=1) as specialDiseasesName,                                          --specialDiseasesName 特殊病种名称      String  200   否 
  nvl(a.GRZHZF,0) as accountPay,                                              --accountPay          个人账户支付              Number  14,2  是 按政策规定用个人账户支付参保人的医疗费用（含基本医疗保险目录范围内和目录范围外的费用）；
  nvl(a.TCJJZF,0) as fundPay,                                                 --fundPay             医保统筹基金支付          Number  14,2  是 患者本次就医所发生的医疗费用中按规定由基本医疗保险统筹基金支付的金额；
  --nvl(a.YBYL24,0)+nvl(a.YBYL26,0)+nvl(a.YBYL02,0)+nvl(a.YBYL03,0)+nvl(a.YBYL04,0)+nvl(a.YBYL57,0) as otherfundPay,                                                               --otherfundPay        其它医保支付      Number  14,2  是 患者本次就医所发生的医疗费用中按规定由大病保险、医疗救助、公务员医疗补助、大额补充、企业补充等基金或资金支付的金额；
  0 as otherfundPay,                                                          --otherfundPay        其它医保支付              Number  14,2  是 患者本次就医所发生的医疗费用中按规定由大病保险、医疗救助、公务员医疗补助、大额补充、企业补充等基金或资金支付的金额；
  nvl(a.YBYL63,0) as ownPay,                                                  --ownPay              自费金额                  Number  14,2  是 患者本次就医所发生的医疗费用中按照有关规定不属于基本医疗保险目录范围而全部由个人支付的费用；
  nvl(a.YBYL31,0) as selfConceitedAmt,                                        --selfConceitedAmt    个人自负                  Number  14,2  是 医保患者起付标准内个人支付费用；
  nvl(a.ZFJE00,0) as selfPayAmt,                                              --selfPayAmt          个人自付                  Number  14,2  是 患者本次就医所发生的医疗费用中由个人负担的属于基本医疗保险目录范围内自付部分的金额；开展按病种、病组、床日等打包付费方式且由患者定额付费的费用。该项为个人所得税大病医疗专项附加扣除信；息项如无金额，填写0
  nvl(a.ZFJE00,0) as selfCashPay,                                             --selfCashPay         个人现金支付              Number  14,2  是 个人通过现金、银行卡、微信、支付宝等渠道支付的金额；
  nvl(a.YSZJE0,0) as cashPay,                                                 --cashPay             现金预交款金额            Number  14,2  否 =ZY_JZB000.YSZJE0
  0 as chequePay,                                                             --chequePay           支票预交款金额            Number  14,2  否 
  nvl(a.ZZZJE0,0) as transferAccountPay,                                      --transferAccountPay  转账预交款金额            Number  14,2  否 =ZY_JZB000.ZZZJE0  
  decode(sign(a.XJYE00),-1,-a.XJYE00,0) as cashRecharge,                      --cashRecharge        补交金额(现金)            Number  14,2  否 
  0 as chequeRecharge,                                                        --chequeRecharge      补交金额(支票)            Number  14,2  否 
  decode(sign(a.ZZYE00),-1,-a.ZZYE00,0) as transferRecharge,                  --transferRecharge    补交金额（转账）          Number  14,2  否 
  decode(sign(a.XJYE00),-1,0,a.XJYE00)+nvl(a.YHTKJE,0)+nvl(a.WXTK00,0)+nvl(a.ZFBTK0,0) as cashRefund,                                                                             --cashRefund          退还金额(现金、银行卡、微信、支付宝)    Number  14,2  否=现金+银行卡+微信+支付宝 
  0 as chequeRefund,                                                          --chequeRefund        退交金额(支票)            Number  14,2  否 
  decode(sign(a.ZZYE00),-1,0,a.ZZYE00) as transferRefund,                     --transferRefund      退交金额(转账)            Number  14,2  否 
  nvl((select aa.ZYE000 from zy_brzhxx aa where aa.zyid00=c.zyid00),0)  as ownAcBalance,--ownAcBalance        个人账户余额    Number  14,2  否 
  nvl(a.TCJJZF,0)+nvl(a.GRZHZF,0) as reimbursementAmt,                        --reimbursementAmt    报销总金额                Number  14,2  否 医保结算后返回的总金额
  a.YBDJH0  as balancedNumber,                                                --balancedNumber      结算号                    String  100   否 医保结算后生成的号码/入账唯一值
  '' as alipayCode,                                                           --alipayCode	        患者支付宝账户	          String	100	  否 患者如果使用支付宝结算，可传入患者的支付宝UserID，用于电子票据归集到支付宝发票管家
  '' as weChatOrderNo,                                                        --weChatOrderNo	      微信支付订单号	          String	100	  否 微信结算时，可传入患者支付成功的订单号，用来发微信服务通知
  '' as weChatMedTransNo,                                                     --weChatMedTransNo	  微信医保支付订单号        String	100	  否 医保患者使用微信医保支付结算时，填写对应的微信医保支付的订单号
  '' as openID,                                                               --openID	            微信公众号或小程序用户ID	String	60	  否
  '' as eBillRelateNo,                                                        --eBillRelateNo	      业务票据关联号	          String	32	  否
  SF_ZY_BSDJPJ_JSON(a.ZYID00,a.JZDH00,a.HJJE00,1) as chargeDetail,            --chargeDetail	      收费项目明细列表	        String	不限	是 JSON
  '' as listDetail,                                                           --listDetail	        清单项目明细列表	        String           JSON (明细太多数据直接取视图：VW_SF_listDetail)
  SF_ZY_BSDJPJ_JSON(a.ZYID00,a.JZDH00,a.HJJE00,3) as otherInfo,               --otherInfo 	        其它扩展信息列表	        String	不限	否 JSON
  SF_ZY_BSDJPJ_JSON(a.ZYID00,a.JZDH00,a.HJJE00,4) as otherMedicalList,        --otherMedicalList	  其它医保信息列表	        String	不限	否 JSON
  SF_ZY_BSDJPJ_JSON(a.ZYID00,a.JZDH00,decode(nvl(a.YBSM10,''),'',decode(a.FFBZBM,null,a.HJJE00,nvl(a.YBYL04,0)+nvl(a.YBYL33,0)+nvl(a.YBYL34,0)+nvl(a.YBYL69,0)),nvl(a.YBYL39,0)+nvl(a.YBYL43,0)+nvl(a.YBYL44,0)+nvl(a.YBYL45,0)+nvl(a.CBYPF0,0)),5) as payChannelDetail,           --payChannelDetail	交费渠道列表	String	不限	是(01	POS刷卡 02	现金03	转账04	支付宝05	微信06	支票07	卡支付08	银联卡09	自助机缴费10	软POS11	医保支付12	预交金13	公众平台)
  SF_ZY_GETDZFPREMARK(a.ZYID00,a.JZDH00) as remark,                           --remark    备注      String  200    否	
  trim(C.ZYH000) as hospitalNo,                                               --hospitalNo          患者住院号【住院】门诊用病历号
  trim(C.ZYH000) as visitNo ,                                                 --visitNo             住院就诊编号【住院】
  C.ZYID00 as patiendId ,                                                     --patiendId           患者唯一ID=bm_brxxb0.brid00
  C.RYRQ00 as  inHospitalDate,                                                --inHospitalDate      住院日期【住院】
  nvl(decode(C.CYRQ00,'20991231',to_char(sysdate,'YYYYMMDD'),C.CYRQ00),to_char(sysdate,'YYYYMMDD')) as  outHospitalDate,--outHospitalDate 出院日期【住院】
  '1' as isArrears,                                                           --isArrears           是否可流通【住院】0-否、1-是（如欠费情况根 据医院业务要求该票据是 否可流通）
  null as arrearsReason                                                       --arrearsReason       不可流通原因
from ZY_JZB000 a,BM_BRXXB0 b,ZY_BRXXB0 c,BM_YGBM00 d,IC_YBBRLB E
where a.BRID00=b.BRID00 
  and a.ZYID00=c.ZYID00
  and a.JZY000=d.YGBH00
  and b.YBLB00=e.YBLB00
  and b.FBBH00=e.FBBH00
/
--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%