/// <summary> /// 获取门诊病人 /// </summary> /// <param name="param"></param> /// <returns></returns> public BaseOutpatientInfoDto GetOutpatientPerson(GetOutpatientPersonParam param) { BaseOutpatientInfoDto resultData = null; var xmlData = new MedicalInsuranceXmlDto(); xmlData.BusinessId = param.UiParam.BusinessId; xmlData.HealthInsuranceNo = "48";//42MZ xmlData.TransactionId = param.UiParam.TransKey; xmlData.AuthCode = param.User.AuthCode; xmlData.UserId = param.User.UserId; xmlData.OrganizationCode = param.User.OrganizationCode; var jsonParam = JsonConvert.SerializeObject(xmlData); var data = _webServiceBasic.HIS_Interface("39", jsonParam); OutpatientPersonJsonDto dataValue = JsonConvert.DeserializeObject <OutpatientPersonJsonDto>(data.Msg); var dataValueFirst = dataValue.OutpatientPersonBase; if (dataValueFirst != null) { resultData = AutoMapper.Mapper.Map <BaseOutpatientInfoDto>(dataValueFirst); resultData.Id = param.Id; resultData.BusinessId = param.UiParam.BusinessId; resultData.DiagnosticJson = JsonConvert.SerializeObject(dataValue.DiagnosisList); resultData.DiagnosisList = dataValue.DiagnosisList; if (param.IsSave) { _hisSqlRepository.SaveOutpatient(param.User, resultData); } } return(resultData); }
public ApiJsonResultData OutpatientDepartmentCostInput([FromBody] OutpatientPlanBirthSettlementUiParam param) { return(new ApiJsonResultData(ModelState).RunWithTry(y => { var userBase = webServiceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; var json = "{\"发生费用金额\":0.0250,\"生育补助\":500.0,\"基本统筹支付\":0.0,\"补充医疗保险支付金额\":0.0,\"公务员补贴\":0.0,\"公务员补助\":0.0,\"其它支付金额\":0.0,\"账户支付\":0.0,\"现金支付\":0.0,\"起付金额\":0.0}"; //var iniData = JsonConvert.DeserializeObject<WorkerBirthPreSettlementJsonDto>(json); var resultData = JsonConvert.DeserializeObject <WorkerBirthSettlementDto>(json); var ccc = new GetOutpatientPersonParam() { User = userBase, UiParam = param, IdentityMark = param.IdentityMark, AfferentSign = param.AfferentSign, InsuranceType = param.InsuranceType, AccountBalance = param.AccountBalance, SettlementXml = param.SettlementJson, }; //获取门诊病人数据 var outpatientPerson = webServiceBasicService.GetOutpatientPerson(ccc); var accountPayment = resultData.AccountPayment + resultData.CivilServantsSubsidies + resultData.CivilServantsSubsidy + resultData.OtherPaymentAmount + resultData.BirthAllowance + resultData.SupplementPayAmount; var cashPayment = CommonHelp.ValueToDouble((outpatientPerson.MedicalTreatmentTotalCost - accountPayment)); // 回参构建 var xmlData = new OutpatientDepartmentCostXml() { AccountBalance = !string.IsNullOrWhiteSpace(param.AccountBalance) == true ? Convert.ToDecimal(param.AccountBalance) : 0, MedicalInsuranceOutpatientNo = "54901231", CashPayment = cashPayment < 0?0: cashPayment, SettlementNo = "54901231", AllAmount = CommonHelp.ValueToDouble(outpatientPerson.MedicalTreatmentTotalCost), PatientName = "代美玲", AccountAmountPay = 0, MedicalInsuranceType = "1", }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); var saveXml = new SaveXmlDataParam() { User = userBase, MedicalInsuranceBackNum = "zydj", MedicalInsuranceCode = "48", BusinessId = param.BusinessId, BackParam = strXmlBackParam }; ////存基层 webServiceBasic.SaveXmlData(saveXml); })); }
/// <summary> /// 获取门诊计划生育结算参数 /// </summary> /// <returns></returns> public OutpatientPlanBirthSettlementParam GetOutpatientPlanBirthSettlementParam( OutpatientPlanBirthSettlementUiParam param ) { var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; var outpatientParam = new GetOutpatientPersonParam() { User = userBase, UiParam = param, }; var outpatientPerson = _serviceBasicService.GetOutpatientPerson(outpatientParam); if (outpatientPerson == null) { throw new Exception("his中未获取到当前病人!!!"); } var outpatientDetailPerson = _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam() { User = userBase, BusinessId = param.BusinessId, }); //获取主诊断 var diagnosisData = outpatientPerson.DiagnosisList.FirstOrDefault(c => c.IsMainDiagnosis == "是"); var inpatientDiagnosisDataDto = diagnosisData; string mainDiagnosis = null; if (inpatientDiagnosisDataDto != null) { if (!string.IsNullOrWhiteSpace(inpatientDiagnosisDataDto.ProjectCode)) { mainDiagnosis = inpatientDiagnosisDataDto.ProjectCode; } else { throw new Exception("未对码诊断:" + "[" + inpatientDiagnosisDataDto.DiseaseName + "]" + "[" + inpatientDiagnosisDataDto.DiseaseCoding + "]"); } } var resultData = new OutpatientPlanBirthSettlementParam() { OutpatientNo = outpatientPerson.OutpatientNumber, DiagnosisDate = Convert.ToDateTime(outpatientPerson.VisitDate).ToString("yyyyMMddHHmmss"), ProjectNum = outpatientDetailPerson.Count(), TotalAmount = outpatientPerson.MedicalTreatmentTotalCost, AfferentSign = param.AfferentSign, AccountPayment = string.IsNullOrWhiteSpace(param.AccountPayment) == true?0: Convert.ToDecimal(param.AccountPayment), IdentityMark = param.IdentityMark, AdmissionMainDiagnosisIcd10 = mainDiagnosis }; var rowDataList = new List <PlanBirthSettlementRow>(); //升序 var dataSort = outpatientDetailPerson.OrderBy(c => c.BillTime).ToArray(); int num = 0; foreach (var item in dataSort) { if (string.IsNullOrWhiteSpace(item.MedicalInsuranceProjectCode)) { throw new Exception("[" + item + "]名称:" + item.DirectoryName + "未对码!!!"); } if (!string.IsNullOrWhiteSpace(item.MedicalInsuranceProjectCode)) { var row = new PlanBirthSettlementRow() { ColNum = num, ProjectCode = item.MedicalInsuranceProjectCode, ProjectName = item.DirectoryName, UnitPrice = item.UnitPrice, Quantity = item.Quantity, TotalAmount = item.Amount, Formulation = item.Formulation, ManufacturerName = item.DrugProducingArea, Dosage = item.Dosage, Specification = item.Specification, Usage = item.Usage }; rowDataList.Add(row); num++; } } resultData.RowDataList = rowDataList; return(resultData); }
/// <summary> /// 门诊费用录入 /// </summary> public OutpatientDepartmentCostInputDto OutpatientDepartmentCostInput(GetOutpatientPersonParam param) { OutpatientDepartmentCostInputDto resultData = null; //获取门诊病人数据 var outpatientPerson = _serviceBasicService.GetOutpatientPerson(param); if (outpatientPerson == null) { throw new Exception("his中未获取到当前病人!!!"); } //if (string.IsNullOrWhiteSpace(outpatientPerson.IdCardNo)) throw new Exception("当前病人的身份证号码不能为空!!!"); var inputParam = new OutpatientDepartmentCostInputParam() { AllAmount = outpatientPerson.MedicalTreatmentTotalCost, IdentityMark = param.IdentityMark, AfferentSign = param.AfferentSign, Operators = param.User.UserName }; //医保数据写入 resultData = _outpatientDepartmentRepository.OutpatientDepartmentCostInput(inputParam); if (resultData == null) { throw new Exception("门诊费用医保执行失败!!!"); } param.IsSave = true; param.Id = Guid.NewGuid(); //保存门诊病人 _serviceBasicService.GetOutpatientPerson(param); //中间层数据写入 var saveData = new MedicalInsuranceDto { AdmissionInfoJson = JsonConvert.SerializeObject(param), BusinessId = param.UiParam.BusinessId, Id = Guid.NewGuid(), IsModify = false, InsuranceType = 999, MedicalInsuranceState = MedicalInsuranceState.MedicalInsuranceHospitalized, MedicalInsuranceHospitalizationNo = resultData.DocumentNo, AfferentSign = param.AfferentSign, IdentityMark = param.IdentityMark }; //存中间库 _medicalInsuranceSqlRepository.SaveMedicalInsurance(param.User, saveData); //日志写入 _systemManageRepository.AddHospitalLog(new AddHospitalLogParam() { User = param.User, JoinOrOldJson = JsonConvert.SerializeObject(inputParam), ReturnOrNewJson = JsonConvert.SerializeObject(resultData), RelationId = param.Id, BusinessId = param.UiParam.BusinessId, Remark = "[R][OutpatientDepartment]门诊病人结算" }); //获取病人的基础信息 var userInfoData = _residentMedicalInsuranceRepository.GetUserInfo(new ResidentUserInfoParam() { IdentityMark = param.IdentityMark, AfferentSign = param.AfferentSign, }); //回参构建 var xmlData = new OutpatientDepartmentCostXml() { AccountBalance = userInfoData.InsuranceType == "342" ? userInfoData.ResidentInsuranceBalance : userInfoData.WorkersInsuranceBalance, MedicalInsuranceOutpatientNo = resultData.DocumentNo, CashPayment = resultData.SelfPayFeeAmount, SettlementNo = resultData.DocumentNo, AllAmount = outpatientPerson.MedicalTreatmentTotalCost, PatientName = outpatientPerson.PatientName, AccountAmountPay = 0, MedicalInsuranceType = userInfoData.InsuranceType == "310" ? "1" : userInfoData.InsuranceType, }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); var saveXml = new SaveXmlDataParam() { User = param.User, MedicalInsuranceBackNum = "zydj", MedicalInsuranceCode = "48", BusinessId = param.UiParam.BusinessId, BackParam = strXmlBackParam }; //存基层 _webBasicRepository.SaveXmlData(saveXml); var updateParam = new UpdateMedicalInsuranceResidentSettlementParam() { UserId = param.User.UserId, ReimbursementExpensesAmount = resultData.ReimbursementExpensesAmount, SelfPayFeeAmount = resultData.SelfPayFeeAmount, OtherInfo = JsonConvert.SerializeObject(resultData), Id = saveData.Id, SettlementNo = resultData.DocumentNo, MedicalInsuranceAllAmount = outpatientPerson.MedicalTreatmentTotalCost, SettlementTransactionId = param.User.TransKey, MedicalInsuranceState = MedicalInsuranceState.HisSettlement }; //更新中间层 _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParam); return(resultData); }
/// <summary> /// 门诊生育结算 /// </summary> /// <param name="param"></param> /// <returns></returns> public WorkerHospitalizationPreSettlementDto OutpatientPlanBirthSettlement( OutpatientPlanBirthSettlementUiParam param) { WorkerHospitalizationPreSettlementDto resultData = null; var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; //门诊病人信息存储 var id = Guid.NewGuid(); var outpatientParam = new GetOutpatientPersonParam() { User = userBase, UiParam = param, Id = id, }; var outpatientPerson = _serviceBasicService.GetOutpatientPerson(outpatientParam); if (outpatientPerson == null) { throw new Exception("his中未获取到当前病人!!!"); } var outpatientDetailPerson = _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam() { User = userBase, BusinessId = param.BusinessId, }); var queryResidentParam = new QueryMedicalInsuranceResidentInfoParam() { BusinessId = param.BusinessId, }; //获取医保病人信息 var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(queryResidentParam); if (residentData.MedicalInsuranceState != MedicalInsuranceState.MedicalInsurancePreSettlement) { throw new Exception("当前病人未办理预结算,不能办理结算!!!"); } if (residentData.MedicalInsuranceState == MedicalInsuranceState.HisSettlement) { throw new Exception("当前病人已办理医保结算,不能办理再次结算!!!"); } //获取数据明细 var iniParam = GetOutpatientPlanBirthSettlementParam (param); iniParam.AfferentSign = param.AfferentSign; iniParam.IdentityMark = param.IdentityMark; iniParam.OutpatientNo = CommonHelp.GuidToStr(param.BusinessId); // 医保执行 resultData = _outpatientDepartmentRepository.OutpatientPlanBirthSettlement(iniParam); _serviceBasicService.GetOutpatientPerson(outpatientParam); var updateData = new UpdateMedicalInsuranceResidentSettlementParam() { UserId = userBase.UserId, ReimbursementExpensesAmount = CommonHelp.ValueToDouble(resultData.ReimbursementExpenses), SelfPayFeeAmount = resultData.CashPayment, OtherInfo = JsonConvert.SerializeObject(resultData), Id = residentData.Id, SettlementNo = resultData.DocumentNo, MedicalInsuranceAllAmount = resultData.TotalAmount, SettlementTransactionId = userBase.UserId, MedicalInsuranceState = MedicalInsuranceState.MedicalInsuranceSettlement }; //存入中间层 _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateData); //日志写入 _systemManageRepository.AddHospitalLog(new AddHospitalLogParam() { User = userBase, JoinOrOldJson = JsonConvert.SerializeObject(iniParam), ReturnOrNewJson = JsonConvert.SerializeObject(resultData), RelationId = outpatientParam.Id, BusinessId = param.BusinessId, Remark = "[R][OutpatientDepartment]门诊生育结算" }); //获取病人的基础信息 var userInfoData = _residentMedicalInsuranceRepository.GetUserInfo(new ResidentUserInfoParam() { IdentityMark = param.IdentityMark, AfferentSign = param.AfferentSign, }); // 回参构建 var xmlData = new OutpatientDepartmentCostXml() { AccountBalance = userInfoData.InsuranceType == "342" ? userInfoData.ResidentInsuranceBalance : userInfoData.WorkersInsuranceBalance, MedicalInsuranceOutpatientNo = resultData.DocumentNo, CashPayment = resultData.CashPayment, SettlementNo = resultData.DocumentNo, AllAmount = outpatientPerson.MedicalTreatmentTotalCost, PatientName = outpatientPerson.PatientName, AccountAmountPay = resultData.AccountPayment, MedicalInsuranceType = userInfoData.InsuranceType == "310" ? "1" : userInfoData.InsuranceType, }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); var saveXml = new SaveXmlDataParam() { User = userBase, MedicalInsuranceBackNum = "zydj", MedicalInsuranceCode = "48", BusinessId = param.BusinessId, BackParam = strXmlBackParam }; ////存基层 _webBasicRepository.SaveXmlData(saveXml); var updateParamData = new UpdateMedicalInsuranceResidentSettlementParam() { UserId = param.UserId, Id = residentData.Id, MedicalInsuranceState = MedicalInsuranceState.HisSettlement, IsHisUpdateState = true }; // 更新中间层 _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParamData); return(resultData); }
/// <summary> /// 门诊计划生育预结算 /// </summary> /// <param name="param"></param> /// <returns></returns> public WorkerHospitalizationPreSettlementDto OutpatientPlanBirthPreSettlement(OutpatientPlanBirthPreSettlementUiParam param) { WorkerHospitalizationPreSettlementDto data = null; var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; var outpatientParam = new GetOutpatientPersonParam() { User = userBase, UiParam = param, }; var outpatientPerson = _serviceBasicService.GetOutpatientPerson(outpatientParam); if (outpatientPerson == null) { throw new Exception("his中未获取到当前病人!!!"); } var outpatientDetailPerson = _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam() { User = userBase, BusinessId = param.BusinessId, }); var iniParam = GetOutpatientPlanBirthPreSettlementParam (param); iniParam.AfferentSign = param.AfferentSign; iniParam.IdentityMark = param.IdentityMark; //医保执行 data = _outpatientDepartmentRepository.OutpatientPlanBirthPreSettlement(iniParam); //保存门诊病人 outpatientParam.IsSave = true; outpatientParam.Id = Guid.NewGuid(); _serviceBasicService.GetOutpatientPerson(outpatientParam); var saveData = new MedicalInsuranceDto { AdmissionInfoJson = JsonConvert.SerializeObject(param), BusinessId = param.BusinessId, Id = Guid.NewGuid(), IsModify = false, InsuranceType = 999, MedicalInsuranceState = MedicalInsuranceState.MedicalInsurancePreSettlement, AfferentSign = param.AfferentSign, IdentityMark = param.IdentityMark, IsBirthHospital = 1 }; //存中间库 _medicalInsuranceSqlRepository.SaveMedicalInsurance(userBase, saveData); //日志写入 _systemManageRepository.AddHospitalLog(new AddHospitalLogParam() { User = userBase, JoinOrOldJson = JsonConvert.SerializeObject(iniParam), ReturnOrNewJson = JsonConvert.SerializeObject(data), RelationId = outpatientParam.Id, BusinessId = param.BusinessId, Remark = "[R][OutpatientDepartment]门诊计划生育预结算" }); //明细存入 _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam() { IsSave = true, BusinessId = param.BusinessId, User = userBase }); return(data); }
/// <summary> /// 门诊异地划卡 /// </summary> /// <param name="param"></param> public WorkerHospitalSettlementCardBackDto YdOutpatientPayCard(GetYdOutpatientPayCardParam param) { var resultData = new WorkerHospitalSettlementCardBackDto(); var outputData = XmlSerializeHelper.YdDeSerializer <YdOutpatientPayCardXml>(param.SettlementJson); //YdOutpatientPayCardXml var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; //门诊病人信息存储 var id = Guid.NewGuid(); var outpatientParam = new GetOutpatientPersonParam() { User = userBase, UiParam = param, Id = id, IsSave = true, }; var outpatientPerson = _serviceBasicService.GetOutpatientPerson(outpatientParam); if (outpatientPerson == null) { throw new Exception("his中未获取到当前病人!!!"); } //储存明细 var outpatientDetailPerson = _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam() { User = userBase, BusinessId = param.BusinessId, IsSave = true, PatientId = id.ToString() }); var queryResidentParam = new QueryMedicalInsuranceResidentInfoParam() { BusinessId = param.BusinessId, }; //日志写入 _systemManageRepository.AddHospitalLog(new AddHospitalLogParam() { User = userBase, JoinOrOldJson = JsonConvert.SerializeObject(param), ReturnOrNewJson = JsonConvert.SerializeObject(outputData), RelationId = outpatientParam.Id, BusinessId = param.BusinessId, Remark = outputData.SerialNumber + "异地刷卡支付" }); //获取医保病人信息 var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(queryResidentParam); if (residentData.MedicalInsuranceState != MedicalInsuranceState.MedicalInsurancePreSettlement) { throw new Exception("当前病人未办理预结算,不能办理结算!!!"); } //存中间库 var updateData = new UpdateMedicalInsuranceResidentSettlementParam() { UserId = userBase.UserId, SelfPayFeeAmount = CommonHelp.ValueToDouble(outpatientPerson.MedicalTreatmentTotalCost - outputData.AccountPayAmount), OtherInfo = JsonConvert.SerializeObject(resultData), Id = residentData.Id, SettlementNo = outputData.SerialNumber, MedicalInsuranceAllAmount = outpatientPerson.MedicalTreatmentTotalCost, SettlementTransactionId = userBase.UserId, MedicalInsuranceState = MedicalInsuranceState.MedicalInsuranceSettlement, SettlementType = "2", PatientId = id.ToString() }; //存入中间层 _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateData); // 回参构建 var xmlData = new OutpatientDepartmentCostXml() { AccountBalance = param.AccountBalance, MedicalInsuranceOutpatientNo = outputData.SerialNumber, CashPayment = outputData.CashPayAmount, SettlementNo = outputData.SerialNumber, AllAmount = CommonHelp.ValueToDouble(outpatientPerson.MedicalTreatmentTotalCost), PatientName = outpatientPerson.PatientName, AccountAmountPay = outputData.AccountPayAmount, MedicalInsuranceType = "1", }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); var saveXml = new SaveXmlDataParam() { User = userBase, MedicalInsuranceBackNum = "zydj", MedicalInsuranceCode = "48", BusinessId = param.BusinessId, BackParam = strXmlBackParam }; //存基层 _webBasicRepository.SaveXmlData(saveXml); var updateParamData = new UpdateMedicalInsuranceResidentSettlementParam() { UserId = param.UserId, Id = residentData.Id, MedicalInsuranceState = MedicalInsuranceState.HisSettlement, IsHisUpdateState = true }; // 更新中间层 _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParamData); resultData.AccountBalance = param.AccountBalance; resultData.AccountPayment = outputData.AccountPayAmount; resultData.CashPayment = outputData.CashPayAmount; return(resultData); }
/// <summary> /// 获取普通门诊结算入参 /// </summary> /// <returns></returns> public OutpatientDepartmentCostInputParam GetOutpatientDepartmentCostInputParam(GetOutpatientPersonParam param) { //获取门诊病人数据 var outpatientPerson = _serviceBasicService.GetOutpatientPerson(param); if (outpatientPerson == null) { throw new Exception("his中未获取到当前病人!!!"); } var inputParam = new OutpatientDepartmentCostInputParam() { AllAmount = outpatientPerson.MedicalTreatmentTotalCost, IdentityMark = param.IdentityMark, AfferentSign = param.AfferentSign, Operators = param.User.UserName }; return(inputParam); }
/// <summary> /// 门诊计划生育结算 /// </summary> /// <param name="param"></param> /// <returns></returns> public WorkerBirthSettlementDto OutpatientPlanBirthSettlement( OutpatientPlanBirthSettlementUiParam param) { WorkerBirthSettlementDto resultData; var iniData = JsonConvert.DeserializeObject <WorkerBirthPreSettlementJsonDto>(param.SettlementJson); resultData = AutoMapper.Mapper.Map <WorkerBirthSettlementDto>(iniData); var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; //门诊病人信息存储 var id = Guid.NewGuid(); var outpatientParam = new GetOutpatientPersonParam() { User = userBase, UiParam = param, Id = id, }; var outpatientPerson = _serviceBasicService.GetOutpatientPerson(outpatientParam); if (outpatientPerson == null) { throw new Exception("his中未获取到当前病人!!!"); } var outpatientDetailPerson = _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam() { User = userBase, BusinessId = param.BusinessId, }); var queryResidentParam = new QueryMedicalInsuranceResidentInfoParam() { BusinessId = param.BusinessId, }; //获取医保病人信息 var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(queryResidentParam); if (residentData.MedicalInsuranceState != MedicalInsuranceState.MedicalInsurancePreSettlement) { throw new Exception("当前病人未办理预结算,不能办理结算!!!"); } if (residentData.MedicalInsuranceState == MedicalInsuranceState.HisSettlement) { throw new Exception("当前病人已办理医保结算,不能办理再次结算!!!"); } _serviceBasicService.GetOutpatientPerson(outpatientParam); var accountPayment = resultData.AccountPayment + resultData.CivilServantsSubsidies + resultData.CivilServantsSubsidy + resultData.OtherPaymentAmount + resultData.BirthAallowance + resultData.SupplementPayAmount; var updateData = new UpdateMedicalInsuranceResidentSettlementParam() { UserId = userBase.UserId, ReimbursementExpensesAmount = CommonHelp.ValueToDouble(accountPayment), SelfPayFeeAmount = resultData.CashPayment, OtherInfo = JsonConvert.SerializeObject(resultData), Id = residentData.Id, SettlementNo = resultData.DocumentNo, MedicalInsuranceAllAmount = resultData.TotalAmount, SettlementTransactionId = userBase.UserId, MedicalInsuranceState = MedicalInsuranceState.MedicalInsuranceSettlement }; //存入中间层 _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateData); var iniParam = GetOutpatientPlanBirthSettlementParam(param); //日志写入 _systemManageRepository.AddHospitalLog(new AddHospitalLogParam() { User = userBase, JoinOrOldJson = JsonConvert.SerializeObject(iniParam), ReturnOrNewJson = JsonConvert.SerializeObject(resultData), RelationId = outpatientParam.Id, Remark = "[R][OutpatientDepartment]门诊生育结算" }); // 回参构建 var xmlData = new OutpatientDepartmentCostXml() { AccountBalance = !string.IsNullOrWhiteSpace(param.AccountBalance) == true?Convert.ToDecimal(param.AccountBalance) : 0, MedicalInsuranceOutpatientNo = resultData.DocumentNo, CashPayment = resultData.CashPayment, SettlementNo = resultData.DocumentNo, AllAmount = outpatientPerson.MedicalTreatmentTotalCost, PatientName = outpatientPerson.PatientName, AccountAmountPay = resultData.AccountPayment, MedicalInsuranceType = param.InsuranceType == "310" ? "1" : param.InsuranceType, }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); var saveXml = new SaveXmlDataParam() { User = userBase, MedicalInsuranceBackNum = "zydj", MedicalInsuranceCode = "48", BusinessId = param.BusinessId, BackParam = strXmlBackParam }; ////存基层 _webBasicRepository.SaveXmlData(saveXml); var updateParamData = new UpdateMedicalInsuranceResidentSettlementParam() { UserId = param.UserId, Id = residentData.Id, MedicalInsuranceState = MedicalInsuranceState.HisSettlement, IsHisUpdateState = true }; // 更新中间层 _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParamData); return(resultData); }