/// <summary> /// 住院预结算 /// </summary> /// <param name="inPara">住院接口入参</param> /// <returns></returns> public void InNetworkPreSettle(InPayParameter para) { inReimPara = para; if (inReimPara.SettleInfo != null && inReimPara.SettleInfo.MedAmountTotal != 0) { PayAPIInterface.Model.Comm.PayType payType; inReimPara.PayTypeList = new List <PayType>(); payType = new PayAPIInterface.Model.Comm.PayType(); payType.PayTypeId = 4; payType.PayTypeName = "医保"; payType.PayAmount = inReimPara.SettleInfo.MedAmountTotal; inReimPara.PayTypeList.Add(payType); payType = new PayAPIInterface.Model.Comm.PayType(); payType.PayTypeId = 5; payType.PayTypeName = "医保卡"; payType.PayAmount = inReimPara.SettleInfo.MedAmountZhzf; inReimPara.PayTypeList.Add(payType); return; } InterfaceInit(); inReimPara.Details = PayAPIUtilities.Tools.CommonTools.GetGroupList(inReimPara.Details); string notMatchedCharge = ""; foreach (var item in inReimPara.Details) { if (item.NetworkItemCode.ToString().Trim().Length == 0) { notMatchedCharge += "编码:" + item.ChargeCode + "," + "名称:" + item.ChargeName + ";"; } } if (notMatchedCharge.Trim().Length > 0) { if (MessageBox.Show("有以下项目未对应:\n" + notMatchedCharge + "\n是否继续?选择”是“将按自费项目进行收费报销。否则,取消本次收费报销!", "提示", MessageBoxButtons.YesNo) == DialogResult.No) { throw new Exception("取消上传费用"); } //MessageBox.Show("有以下项目未对应:\n" + notMatchedCharge + "\n不能收费报销!", "提示", MessageBoxButtons.OK); //throw new Exception("项目未对照"); } handelModel.InitZY(inReimPara.PatInfo.PatInHosCode); string ishaceCed = ""; if (MessageBox.Show("是否有医保卡?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { ishaceCed = "1"; } else { ishaceCed = "0"; } handelModel.DelAllInItems(inReimPara.PatInfo.PatInHosCode); if (inReimPara.Details.Count > 0) { handelModel.SaveInItems(inReimPara.Details, //"001", // 医师编码 inReimPara.PatInfo.DoctorCode, inReimPara.PatInfo.OutDateTime.ToString("yyyy-MM-dd"), //费用发生日期 inReimPara.PatInfo.PatInHosCode ); // if (MessageBox.Show("是否有医保卡?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) if (ishaceCed == "1") { dicSettleInfo = handelModel.SettleZY(""); //SaveInSettleMain(); //保存住院结算数据 #region 保存中心返回值参数列表 //保存中心返回值参数列表 #region 保存SettleList值 try { InNetworkSettleList inNetworkSettleList = new InNetworkSettleList(); foreach (var item in dicSettleInfo) { inNetworkSettleList = new InNetworkSettleList(); inNetworkSettleList.PatInHosId = inReimPara.PatInfo.PatInHosId; inNetworkSettleList.InNetworkSettleId = -1; inNetworkSettleList.ParaName = item.Key; inNetworkSettleList.ParaValue = item.Value.ToString(); inNetworkSettleList.Memo = ""; inReimPara.SettleParaList.Add(inNetworkSettleList); } } catch (Exception ex) { LogManager.Error("保存农合中心返回值参数列表 插入值 失败" + ex.Message, ex); } #endregion InNetworkSettleMain inSettleMain = new InNetworkSettleMain(); inSettleMain.PatInHosId = inReimPara.PatInfo.PatInHosId; inSettleMain.SettleNo = dicSettleInfo["brjsh"] + "|" + DateTime.Now.ToString("yyyyMMddHHmmss"); //医保中心交易流水号 inSettleMain.Amount = Convert.ToDecimal(dicSettleInfo["brfdje"]) + Convert.ToDecimal(dicSettleInfo["ybfdje"]) + Convert.ToDecimal(dicSettleInfo["yljmje"]); //本次医疗费用 inSettleMain.GetAmount = Convert.ToDecimal(dicSettleInfo["brfdje"]) - Convert.ToDecimal(dicSettleInfo["grzhzf"]); //本次现金支出 inSettleMain.MedAmountZhzf = Convert.ToDecimal(dicSettleInfo["grzhzf"]); //本次帐户支出 inSettleMain.MedAmountTc = Convert.ToDecimal(dicSettleInfo["ybfdje"]); //本次统筹支出 inSettleMain.MedAmountDb = 0; //本次大病支出 inSettleMain.MedAmountBz = Convert.ToDecimal(dicSettleInfo["ylbzje"]); //本次大病支出 inSettleMain.MedAmountJm = Convert.ToDecimal(dicSettleInfo["yljmje"]); //减免金额 inSettleMain.MedAmountTotal = Convert.ToDecimal(inSettleMain.Amount) - Convert.ToDecimal(inSettleMain.GetAmount); inSettleMain.NetworkingPatClassId = Convert.ToInt32(inReimPara.CommPara.NetworkPatClassId); inSettleMain.NetworkPatName = inReimPara.PatInfo.InPatName; inSettleMain.NetworkPatType = "0"; inSettleMain.SettleBackNo = inReimPara.PatInfo.PatInHosCode; inSettleMain.SettleType = "1"; inReimPara.SettleInfo = inSettleMain; //保存结算数据 IInClientBLL inBLl = PayAPIClassLib.Factory.ClientBLLFactory.GetInClientBLLInstance(); //获取联网结算ID 并重新组织数据 inBLl.GetInSettleIdAndReorganizeData(inReimPara); inBLl.SaveInNetworkSettleMain(inSettleMain); inBLl.SaveInNetworkSettleList(inReimPara.SettleParaList);//保存settleLis结算数据 PayAPIInterface.Model.Comm.PayType payType; inReimPara.PayTypeList = new List <PayType>(); payType = new PayAPIInterface.Model.Comm.PayType(); payType.PayTypeId = 4; payType.PayTypeName = "医保"; payType.PayAmount = Convert.ToDecimal(inSettleMain.MedAmountTotal); inReimPara.PayTypeList.Add(payType); payType = new PayAPIInterface.Model.Comm.PayType(); payType.PayTypeId = 5; payType.PayTypeName = "医保卡"; payType.PayAmount = Convert.ToDecimal(inSettleMain.MedAmountZhzf); inReimPara.PayTypeList.Add(payType); #endregion } else { dicSettleInfo = handelModel.SettleZY("wkzy"); //SaveInSettleMain(); //保存住院结算数据 #region 保存中心返回值参数列表 //保存中心返回值参数列表 #region 保存SettleList值 try { InNetworkSettleList inNetworkSettleList = new InNetworkSettleList(); foreach (var item in dicSettleInfo) { inNetworkSettleList = new InNetworkSettleList(); inNetworkSettleList.PatInHosId = inReimPara.PatInfo.PatInHosId; inNetworkSettleList.InNetworkSettleId = -1; inNetworkSettleList.ParaName = item.Key; inNetworkSettleList.ParaValue = item.Value.ToString(); inNetworkSettleList.Memo = ""; inReimPara.SettleParaList.Add(inNetworkSettleList); } } catch (Exception ex) { LogManager.Error("保存农合中心返回值参数列表 插入值 失败" + ex.Message, ex); } #endregion InNetworkSettleMain inSettleMain = new InNetworkSettleMain(); inSettleMain.PatInHosId = inReimPara.PatInfo.PatInHosId; inSettleMain.SettleNo = dicSettleInfo["brjsh"] + "|" + DateTime.Now.ToString("yyyyMMddHHmmss"); //医保中心交易流水号 inSettleMain.Amount = Convert.ToDecimal(dicSettleInfo["brfdje"]) + Convert.ToDecimal(dicSettleInfo["ybfdje"]) + Convert.ToDecimal(dicSettleInfo["yljmje"]); //本次医疗费用 inSettleMain.GetAmount = Convert.ToDecimal(dicSettleInfo["brfdje"]) - Convert.ToDecimal(dicSettleInfo["grzhzf"]); //本次现金支出 inSettleMain.MedAmountZhzf = Convert.ToDecimal(dicSettleInfo["grzhzf"]); //本次帐户支出 inSettleMain.MedAmountTc = Convert.ToDecimal(dicSettleInfo["ybfdje"]); //本次统筹支出 inSettleMain.MedAmountDb = 0; //本次大病支出 inSettleMain.MedAmountBz = Convert.ToDecimal(dicSettleInfo["ylbzje"]); //本次大病支出 inSettleMain.MedAmountJm = Convert.ToDecimal(dicSettleInfo["yljmje"]); //减免金额 inSettleMain.MedAmountTotal = Convert.ToDecimal(inSettleMain.Amount) - Convert.ToDecimal(inSettleMain.GetAmount); inSettleMain.NetworkingPatClassId = Convert.ToInt32(inReimPara.CommPara.NetworkPatClassId); inSettleMain.NetworkPatName = inReimPara.PatInfo.InPatName; inSettleMain.NetworkPatType = "0"; inSettleMain.SettleBackNo = inReimPara.PatInfo.PatInHosCode; inSettleMain.SettleType = "1"; inReimPara.SettleInfo = inSettleMain; //保存结算数据 IInClientBLL inBLl = PayAPIClassLib.Factory.ClientBLLFactory.GetInClientBLLInstance(); //获取联网结算ID 并重新组织数据 inBLl.GetInSettleIdAndReorganizeData(inReimPara); inBLl.SaveInNetworkSettleMain(inSettleMain); inBLl.SaveInNetworkSettleList(inReimPara.SettleParaList);//保存settleLis结算数据 PayAPIInterface.Model.Comm.PayType payType; inReimPara.PayTypeList = new List <PayType>(); payType = new PayAPIInterface.Model.Comm.PayType(); payType.PayTypeId = 4; payType.PayTypeName = "医保"; payType.PayAmount = Convert.ToDecimal(inSettleMain.MedAmountTotal); inReimPara.PayTypeList.Add(payType); payType = new PayAPIInterface.Model.Comm.PayType(); payType.PayTypeId = 5; payType.PayTypeName = "医保卡"; payType.PayAmount = Convert.ToDecimal(inSettleMain.MedAmountZhzf); inReimPara.PayTypeList.Add(payType); #endregion } } }
/// <summary> /// 保存住院结算数据 /// </summary> public void SaveInSettleMain() { #region 保存中心返回值参数列表 //保存中心返回值参数列表 try { InNetworkSettleList inNetworkSettleList = new InNetworkSettleList(); foreach (var item in dicSettleInfo) { inNetworkSettleList = new InNetworkSettleList(); inNetworkSettleList.PatInHosId = inReimPara.PatInfo.PatInHosId; inNetworkSettleList.InNetworkSettleId = -1; inNetworkSettleList.ParaName = item.Key; inNetworkSettleList.ParaValue = item.Value.ToString(); inNetworkSettleList.Memo = ""; inReimPara.SettleParaList.Add(inNetworkSettleList); } } catch (Exception ex) { LogManager.Info("保存农合中心返回值参数列表 插入值 失败" + ex.Message); } #endregion InNetworkSettleMain inSettleMain = new InNetworkSettleMain(); inSettleMain.PatInHosId = inReimPara.PatInfo.PatInHosId; inSettleMain.SettleNo = dicSettleInfo["brjsh"]; //医保中心交易流水号 inSettleMain.Amount = Convert.ToDecimal(dicSettleInfo["brfdje"]) + Convert.ToDecimal(dicSettleInfo["ybfdje"]) + Convert.ToDecimal(dicSettleInfo["ylbzje"]); //本次医疗费用 inSettleMain.GetAmount = Convert.ToDecimal(dicSettleInfo["brfdje"]) - Convert.ToDecimal(dicSettleInfo["grzhzf"]); //本次现金支出 inSettleMain.MedAmountZhzf = Convert.ToDecimal(dicSettleInfo["grzhzf"]); //本次帐户支出 inSettleMain.MedAmountTc = Convert.ToDecimal(dicSettleInfo["ybfdje"]); //本次统筹支出 inSettleMain.MedAmountDb = 0; //本次大病支出 inSettleMain.MedAmountBz = Convert.ToDecimal(dicSettleInfo["ylbzje"]); //本次大病支出 inSettleMain.CreateTime = DateTime.Now; inSettleMain.InvoiceId = -1; inSettleMain.IsCash = true; inSettleMain.IsInvalid = false; inSettleMain.IsNeedRefund = false; inSettleMain.IsRefundDo = false; inSettleMain.IsSettle = true; inSettleMain.MedAmountTotal = Convert.ToDecimal(inSettleMain.Amount) - Convert.ToDecimal(inSettleMain.GetAmount); inSettleMain.NetworkingPatClassId = Convert.ToInt32(inReimPara.SettleInfo.NetworkingPatClassId); inSettleMain.NetworkPatName = netPatInfo.PatName; inSettleMain.NetworkPatType = "0"; inSettleMain.NetworkRefundTime = Convert.ToDateTime("2000-01-01"); inSettleMain.NetworkSettleTime = DateTime.Now; inSettleMain.OperatorId = operatorInfo.UserSysId; inSettleMain.SettleBackNo = ""; inSettleMain.SettleType = "1"; PayAPIInterface.Model.Comm.PayType payType; inReimPara.PayTypeList = new List <PayType>(); payType = new PayAPIInterface.Model.Comm.PayType(); payType.PayTypeId = 4; payType.PayTypeName = "医保"; payType.PayAmount = Convert.ToDecimal(inSettleMain.MedAmountTotal); inReimPara.PayTypeList.Add(payType); payType.PayTypeId = 5; payType.PayTypeName = "医保卡"; payType.PayAmount = Convert.ToDecimal(inSettleMain.MedAmountZhzf); inReimPara.PayTypeList.Add(payType); }
public void SaveInSettleMain() { try { InNetworkSettleList inNetworkSettleList = new InNetworkSettleList(); foreach (var item in dicSettleInfo) { inNetworkSettleList = new InNetworkSettleList(); inNetworkSettleList.PatInHosId = InPayPara.PatInfo.PatInHosId; inNetworkSettleList.InNetworkSettleId = -1; inNetworkSettleList.ParaName = item.Key; inNetworkSettleList.ParaValue = item.Value.ToString(); inNetworkSettleList.Memo = ""; InPayPara.SettleParaList.Add(inNetworkSettleList); } } catch (Exception ex) { //LogManager.RecordException("保存农合中心返回值参数列表 插入值 失败" + ex.Message, "@JSBCInterfaceModel:住院结算"); } InPayPara.SettleInfo = new PayAPIInterface.Model.In.InNetworkSettleMain(); InPayPara.SettleInfo.PatInHosId = InPayPara.PatInfo.PatInHosId; InPayPara.SettleInfo.SettleNo = dicSettleInfo["brjsh"]; //医保中心交易流水号 InPayPara.SettleInfo.Amount = Convert.ToDecimal(dicSettleInfo["brfdje"]) + Convert.ToDecimal(dicSettleInfo["ybfdje"]) + Convert.ToDecimal(dicSettleInfo["ylbzje"]) + Convert.ToDecimal(dicSettleInfo["yyfdje"]); //本次医疗费用 InPayPara.SettleInfo.GetAmount = Convert.ToDecimal(dicSettleInfo["brfdje"]) - Convert.ToDecimal(dicSettleInfo["grzhzf"]); //本次现金支出 InPayPara.SettleInfo.MedAmountZhzf = Convert.ToDecimal(dicSettleInfo["grzhzf"]); //本次帐户支出 InPayPara.SettleInfo.MedAmountTc = Convert.ToDecimal(dicSettleInfo["ybfdje"]); //本次统筹支出 InPayPara.SettleInfo.MedAmountDb = 0; //大病救助 InPayPara.SettleInfo.MedAmountBz = Convert.ToDecimal(dicSettleInfo["ylbzje"]); //医疗补助金额(优抚对象补助) InPayPara.SettleInfo.MedAmountGwy = 0; //公务员补助 InPayPara.SettleInfo.MedAmountJm = Convert.ToDecimal(dicSettleInfo["yyfdje"]); //医院负担金额 InPayPara.SettleInfo.CreateTime = DateTime.Now; InPayPara.SettleInfo.InvoiceId = -1; InPayPara.SettleInfo.IsCash = true; InPayPara.SettleInfo.IsInvalid = false; InPayPara.SettleInfo.IsNeedRefund = false; InPayPara.SettleInfo.IsRefundDo = false; InPayPara.SettleInfo.IsSettle = true; InPayPara.SettleInfo.MedAmountTotal = Convert.ToDecimal(InPayPara.SettleInfo.Amount) - Convert.ToDecimal(InPayPara.SettleInfo.GetAmount); InPayPara.SettleInfo.NetworkingPatClassId = Convert.ToInt32(InPayPara.CommPara.NetworkPatClassId); InPayPara.SettleInfo.NetworkPatName = InPayPara.RegInfo.NetPatName; InPayPara.SettleInfo.NetworkPatType = InPayPara.RegInfo.NetPatType; // "0"; InPayPara.SettleInfo.NetworkRefundTime = Convert.ToDateTime("2000-01-01"); InPayPara.SettleInfo.NetworkSettleTime = DateTime.Now; InPayPara.SettleInfo.OperatorId = PayAPIConfig.Operator.UserSysId; InPayPara.SettleInfo.SettleBackNo = InPayPara.RegInfo.NetPatType; InPayPara.SettleInfo.SettleType = InPayPara.RegInfo.NetType; InPayPara.RegInfo.OutDiagnoseCode = ""; //出院诊断编号 InPayPara.RegInfo.OutDiagnoseName = ""; //出院诊断名称 //门诊付费方式 本接口 4 医保 6农合 PayAPIInterface.Model.Comm.PayType payType; InPayPara.PayTypeList = new List <PayType>(); payType = new PayAPIInterface.Model.Comm.PayType(); payType.PayTypeId = 4; payType.PayTypeName = "医保"; payType.PayAmount = InPayPara.SettleInfo.MedAmountTotal; InPayPara.PayTypeList.Add(payType); }