培训文档

444 阅读9分钟
  1. fee_out_account --门诊收费结算总表,一次收费,一条记录
  2. fee_out_invoice --门诊收费发票项目表,门诊费用明细表
  3. fee_out_drug --门诊药品明细表
  4. fee_out_treat --门诊治疗项目明细表
  5. fee_out_lis --门诊检验项目明细表
  6. fee_registered_detail --挂号项目明细表
  7. fee_out_mater --门诊材料项目明细表
  1. 表间关联 费用总表与发票表以及明细表间均以门诊收费流水号account_no连接 药品明细对应药品字典. 治疗,检验,挂号明细对应材料字典
  • fee_out_account.account_no = fee_out_invoice.account_no
  • fee_out_account.account_no = fee_out_drug.account_no
  • fee_out_account.account_no = fee_out_mater.account_no
  • fee_out_account.account_no = fee_registered_detail.account_no
  1. 字典类
  • fee_out_drug.code = dict_drug_union.code
  • fee_out_treat.fee_code = dict_fee_union.code
  • fee_out_list.fee_code = dict_fee_union.code
  • fee_registered_detail.fee_code = dict_fee_union.code
  • fee_out_mater.mater_code = dict_mater_union.code
  1. 门诊收费流程
  • 门诊医师开医嘱
  • 在费用明细表中产生记录
  • 根据门诊号查询费用明细记录
  • HIS调用医保接口程序进行医保结算(ybgl_gaoutaccount, fee_out_ybdetail)
  • HIS调用第三方接口(微信 支付宝)扣款
  • HIS门诊结算
        a. 产生门诊收费结算总表 fee_out_account 记录产生发票记录 fee_out_invoice
        b. 标记明细收费表中的收款流水号
        C 收费时间
        d 发票明细ID
        e HIS调用医保接口标记医保已收完
        f HIS调用标记第三方支付已收完
        g 打印发票

三. 门诊医保结算基本流程

    1. 基本流程: 读医保卡-->预结算-->结算
    1. 预结算和结算过程具体要参考医保说明文档,一般情况下预结算和结算传入的入参一致. 只是调用方式不一样而已.
  1. 多步方式 门诊登记: 传入医保业务类型 普通门诊 慢性病 疾病等 发送数据明细: 根据医保对照表找到医保项目代码,形成医保待收费明细 预结算 结算
  2. 一步方式: 登记及结算方式一起执行(一个接口把登记信息和费用明细发送给医保).
  3. 医保结算后,要在门诊医保登记表和门诊医保结算结果表 fee_out_ybdetail 分别写入院登记信息和返回的医保结算信息.

四.门诊医保相关表

  1. 门诊医保登记表 修水为ybgl_xyboutaccount. 每种医保可以不一样,但关键字段应该一样,具体参考ybgl_xyboutaccount说明. 一般一个医保接口一个. 用于记录医保登记信息,比如医保结算时间,医保登记流水号,医保单据号,总费用,医保结算时间,门诊收费流水号等. 里面有一系列字段用于保证吞卡(即医保收了,HIS没有收)记录的处理等.
  2. 门诊医保结算结果表 fee_out_ybdetail, 用于存医保返回的各种报销信息. 比如总费用,个人账户等等数字型内容. 若是文字型内容要存入到医保登记表中.
  3. 门诊医保登记表与门诊医保结算结果表(fee_out_ybdetail)关系. fee_out_ybdetail.main_tal 为门诊医保登记表 表名称大写. fee_out_ybdetail.key_value 为对应名字医保登记表中唯一行号记录表.

五. 门诊医保接口实现

  1. 整体调用流程
  • 1 根据医保类型,找到医保接口(HIS门诊收费)
  • 2 调用门诊医保接口(医保接口中代码)
  a. 读医保卡
  b. 数据处理, 根据医保对照获取医保目录等上传医保明细时必要信息.
  c. 选择医保业务类型和疾病等.
  d. 医保预结算.
  e. 医保结算.
  • 3 填入记账项目(HIS门诊收费中)
  • 4 标记医保记录HIS为收费状态(HIS中代码) 2.门诊医保前端程序实现
1  具体医保业务类继承于医保基类
2  医保基类门诊相关说明(HIS和医保接口程序之间的接口函数)
  1. 医保后端程序实现

//获取医保对照信息

  • DataTable GetMedItemInfo (string UnitId, int ItemType,string SelfCode,string JGBM). //存入门诊结算记录
  • OutYBAccountPayInf OutAccount(OutMedAccountInf entOutMedAccountInf); // 门诊退费查询待退费用
  • DataTable GetOutReturningInf(string HisAccountId, string JGBM,string PersonCode); // 存入门诊退结算记录
  • OutYBAccountPayInf SaveOutReturnedInf(string Ordinalno, string StationId, string OperatorId, string UnitId, int OperateType); // 获的退费之后的合计金额
  • OutYBAccountPayInf GetOutReturnAccountDetail(string ReturnOrdinalNo, string AcceptOrdinaNo, string OrginOrdinalNo); // 获得需要同步的记录
  • DataTable GetSynInf(string PersonCode, string JGBM); //门诊收费后同步
  • string OutMedAccountSyn(string AcceptOdinalNo, string ReturnOrdinalNo, string AccountNo);

六 门诊医保同步问题

  1. 医保没有部分退功能,只能整笔退费, 所以部分退要先撤销原先整笔退再收部分.
  2. 门诊操作中,先执行医保操作,在执行HIS操作. 门诊收费,先医保结算,再HIS门诊收费结算. 门诊退费,先医保退费,再HIS门诊退费.
  3. 收费过程中, 有可能医保结算了,但是HIS没收费记录,就会多扣了患者医保的款,退费过程中医保先退了,HIS没有退,患者医保的款就多了.
  4. 事后补救,根据同步标志,若未同步的,需要执行医保逆操作,此操作简称医保同步.

住院医保接口相关说明

七 住院收费系统

1.相关表

  • cis_inpatient 住院花名册表 一次入院 一条记录
  • fee_in_pregtcash 住院预收款表,住院期间缴款明细存入此表.担保只是允许患者开药,做检查.不涉及任务账务计算.
  • fee_in_account 住院结算支付表,出院结算时写入. 记录结算汇总性信息.比如结算时间.结算流水号, 总费用,总预收款, 结算收/退款等. 一般一次,住院就一次结算. 但也可以一次住院多次结算. 撤销结算也存入此表,相关费用用字段用负记录.
  • fee_in_invoice 住院结算发票明细表,存入某次住院结算的发票项目明细信息.
    住院费用明细相表.
  • fee_in_drug 住院药品明细表 对应字典表 dict_drug_union
  • fee_in_treat 住院治疗明细表 对应字典表 dict_fee_union
  • fee_in_lis 住院检验明细表 对应字典表 dict_fee_union
  • fee_in_day 住院检验明细表 对应字典表 dict_fee_union
  • fee_in_mater 住院材料明细表 对应字典表 dict_mat_union

2.表间关联

  1. cis_inpatient 花名册表与其他业务表均是 一对多的关系,用字段住院流水号Visit_id关联.
  2. fee_in_account 住院结算支付表 与其他业务表(住院预收款表 fee_In_pregtcash, 住院担保表 fee_in_guanrantee, 住院发票表 fee_in_invoice,5个住院费用明细表)是一对多的关系, 以字段结算流水号AccountId进行关联.

八 住院基本流程

  1. 医师开入院证,入院证记录存入表cis_enterorder.
  2. 住院处办理入院登记,建立一条住院登记记录. 存入表cis_inpatient中,同时相应的病案相关表中也产生一条记录.
  3. 住院期间交预交款,每交一次在住院预收款表fee_in_pregetcash中添加一条记录,退预收款则在此表中添加一条负记录. 同时更新cis_inpatient中预收款合计字段Pre_Amount.
  4. 住院期间担保,每担保一次在住院担保表fee_in_guarantee中添加一条记录,撤销担保则添加一条负记录. 同时更新cis_inpatient中预约时间bespoke_time及预约人bespoke_man.
  5. 住院护士预约,修改cis_inpatient中预约时间bespoke_time及预约人bespoke_man.
  6. 若是医保患者则调用医保接口
  7. 获得各记账金额.
  8. 出院结算.
    1. 在住院结算支付表fee_in_account中产生一条结算支付记录,产生住院结算流水号及住院结算时间字段等.
    1. 在住院预收款表fee_in_pregetcash中产生一条结算收款或者结算退款记录.
    1. 在住院结算发票明细表fee_in_invoice中产生N条发票明细记录.
    1. 回写fee_in_pregetcash中的住院期间收退款记录的部分的住院结算流水号字段account_id及住院结算时间字段account_dt.
    1. 回写5个费用明细记录中住院结算流水号字段account_id及住院结算时间字段account_dt.
    1. 回写担保明细表 fee_in_guarantee 住院结算流水号字段 account_id及住院结算时间字段account_dt. 9.标记医保已收完. 10.标记第三方支付已收完. 11 打印住院发票.

九 住院医保相关表

  1. 住院医保登记表(修水为ybgl_xybinhospotalinf,每种一医保表名称可以不一样,但关键字段应该一样,具体参考ybgl_xybinhospitalinf说明),一般一个医保接口一个,用于记录医保登记信息,比如医保结算时间.医保登记流水号,医保结算时间,一波啊类别,报销金额,结算序号等.
  2. 住院医保结算结果表fee_in_ybdetail,用于存医保返回的各种报销信息,比如总费用,个人账户等等数字型内容,若是文字型内容要存入到医保登记表中
  3. 住院医保登记表与住院医保结算结果表(FEE_IN_YBDETAIL)关系.
   1.fee_in_ybdetail.maintbl 为住院医保登记表名称大写.
   2.fee_in_ybdetail.keyValue 为对应名字医保登记表中的唯一行号记录表.

十 住院医保接口调用流程

  1. 转医保/自费流程(HIS入院登记中)
      1.根据结算类型获取医保接口,调用医保入院函数
      2.调用转自费(撤销转医保)
  2.医保结算流程.
      通过调用医保接口中的住院管理界面来操作    

十一 住院医保基类前端接口.

    //医保入院
    public async InPatientEnter(){ }
    //住院患者发送费用明细到医保
    public async SendDetailToMed(){ }
    //医保退院
    public async LeaveHospital() { }
    //医保结算
    public async  InPatientAccount(){ }
    //撤销医保结算
    public async InpatientUndoMedAccount() { }
    //住院医保是否结算
    public  async InpatientMedIsAccounted(){ }
    //获取医保报销金额信息
    public async GetInpatientMedAccountPay(){ }
    //获得医保管理页面
    public async CallBXSImple() { }
    //住院结算同步
    public  async InMedAccountSyn(){ }

十二 住院医保基类后端接口

//检查住院入院登记信息

  • string CheckInpatientEnter(string UnitId, string VisitId, int AccountOrd); //获得医保登记信息
  • YBInpatientRegInf GetInpatientYBRegInf(string VisitId, int AccountOrd); // 获得患者HIS住院登记信息
  • DataTable GetInPatientRegInf(YBInpatientRegInf, int OperateType,string OperatorId, string StationId); //医保退院
  • string LeaveHospital(string VisitId, int AccountOrd); //检查住院结算前检查
  • InpatientAccountCheckResult CheckInpatientAccount(string UnitId,string VisitId,int AccountOrd, int IsPreAccount); //存入住院结算结果
  • string SaveInpatientAccount(YBInpatientRegInf INpatientRegInf, string MedAccountResultInf,string OperatorId); //住院结算撤销前检查
  • InpatientAccountChecBoxResult CheckUndoINpatientAccount(string UnitId, string VisitId, int AccountOrd); //住院结算撤销
  • string SaveInpatientUndoAccount(string VisitId, int AccountOrd); // 获得待发送数据明细
  • DataTable GetInpatientSendDetail(string VIsitId, int AccountOrd, string UnitId,stirng JGBM); //标记为已发送状态
  • string MarkInpatientMedIsAccounted(string VisitId, int AccountOrd, double HisTotalFee); // 获取医保报销金额信息
  • InYBAccountPayInf GetInpatientMedAccountPay(string VisitId, int AccountOrd);