///// <summary> ///// 门诊计划生育结算 ///// </summary> ///// <param name="param"></param> ///// <returns></returns> //public void OutpatientPlanBirthSettlement(OutpatientPlanBirthSettlementUiParam param) //{ // var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId); // userBase.TransKey = param.TransKey; // //门诊病人信息存储 // var id = Guid.NewGuid(); // var outpatientParam = new GetOutpatientPersonParam() // { // User = userBase, // UiParam = param, // IsSave = true, // 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 iniParam = GetOutpatientPlanBirthSettlementParam(param); // var dataIni = JsonConvert.DeserializeObject<WorkerBirthPreSettlementJsonDto>(param.ResultData); // var resultData = AutoMapper.Mapper.Map<WorkerHospitalizationPreSettlementDto>(dataIni); // var saveData = new MedicalInsuranceDto // { // AdmissionInfoJson = JsonConvert.SerializeObject(param), // BusinessId = param.BusinessId, // Id = Guid.NewGuid(), // IsBirthHospital = 1, // IsModify = false, // InsuranceType = 999, // MedicalInsuranceState = MedicalInsuranceState.HisHospitalized, // MedicalInsuranceHospitalizationNo = outpatientPerson.OutpatientNumber, // AfferentSign = param.AfferentSign, // IdentityMark = param.IdentityMark // }; // //存中间库 // _medicalInsuranceSqlRepository.SaveMedicalInsurance(userBase, saveData); // //日志写入 // _systemManageRepository.AddHospitalLog(new AddHospitalLogParam() // { // User = userBase, // JoinOrOldJson = JsonConvert.SerializeObject(iniParam), // ReturnOrNewJson = param.ResultData, // RelationId = outpatientParam.Id, // 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 == "342" ? "10" : 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 updateParam = new UpdateMedicalInsuranceResidentSettlementParam() // { // UserId = userBase.UserId, // SelfPayFeeAmount = resultData.CashPayment, // OtherInfo = JsonConvert.SerializeObject(resultData), // Id = saveData.Id, // SettlementNo = resultData.DocumentNo, // MedicalInsuranceAllAmount = outpatientPerson.MedicalTreatmentTotalCost, // SettlementTransactionId = userBase.TransKey, // MedicalInsuranceState = MedicalInsuranceState.HisSettlement // }; // //更新中间层 // _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParam); // //明细存入 // _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam() // { IsSave = true, // BusinessId = param.BusinessId, // User = userBase // }); //} /// <summary> /// 门诊计划生育结算查询 /// </summary> /// <param name="param"></param> /// <returns></returns> public WorkerHospitalizationPreSettlementDto OutpatientPlanBirthSettlementQuery( UiBaseDataParam param) {//OutpatientPlanBirthSettlementQueryParam var resultData = new WorkerHospitalizationPreSettlementDto(); //获取医保病人信息 var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(new QueryMedicalInsuranceResidentInfoParam() { BusinessId = param.BusinessId }); if (residentData == null) { throw new Exception("获取当前病人医保信息失败!!!"); } if (residentData.MedicalInsuranceState != MedicalInsuranceState.HisSettlement) { throw new Exception("当前病人未办理结算!!!"); } //医保登录 _residentMedicalInsuranceService.Login(new QueryHospitalOperatorParam() { UserId = param.UserId }); _outpatientDepartmentRepository.OutpatientPlanBirthSettlementQuery( new OutpatientPlanBirthSettlementQueryParam() { }); return(resultData); }
public ApiJsonResultData OutpatientSettlement([FromBody] UiBaseDataParam param) { return(new ApiJsonResultData(ModelState, new UiInIParam()).RunWithTry(y => { var userBase = webServiceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; //回参构建88866 var xmlData = new OutpatientDepartmentCostXml() { AccountBalance = 10, MedicalInsuranceOutpatientNo = "88866", CashPayment = 0, SettlementNo = "88866", AllAmount = Convert.ToDecimal(0.07), PatientName = "代美玲", AccountAmountPay = 0, MedicalInsuranceType = "342" }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); var saveXml = new SaveXmlDataParam() { User = userBase, MedicalInsuranceBackNum = "zydj", MedicalInsuranceCode = "48", BusinessId = param.BusinessId, BackParam = strXmlBackParam }; //存基层 webServiceBasic.SaveXmlData(saveXml); })); }
public ApiJsonResultData Icd10BatchUpload([FromBody] UiBaseDataParam param) { return(new ApiJsonResultData(ModelState, new UiInIParam()).RunWithTry(y => { var userBase = webServiceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; var dataList = new List <Icd10PairCodeDataParam>(); //基层 var queryData = hisSqlRepository.QueryAllICD10(); if (queryData.Any()) { dataList = queryData.Select(d => new Icd10PairCodeDataParam { DiseaseId = d.DiseaseId, ProjectCode = d.DiseaseCoding, ProjectName = d.DiseaseName }).ToList(); } if (dataList.Any()) { int a = 0; int limit = 400; //限制条数 int num = dataList.Count; var count = Convert.ToInt32(num / limit) + ((num % limit) > 0 ? 1 : 0); var idList = new List <string>(); while (a < count) { //排除已上传数据 var rowDataListAll = dataList.Where(d => !idList.Contains(d.DiseaseId)) .ToList(); var sendList = rowDataListAll.Take(limit).ToList(); webServiceBasicService.Icd10PairCode(new Icd10PairCodeParam() { DataList = sendList, User = userBase, BusinessId = "00000000000000000000000000000000" }); //更新数据上传状态 idList.AddRange(sendList.Select(d => d.DiseaseId).ToList()); a++; } } })); }
/// <summary> /// 门诊结算查询 /// </summary> /// <param name="param"></param> /// <returns></returns> public QueryOutpatientDepartmentCostjsonDto QueryOutpatientDepartmentCost(UiBaseDataParam param) { var resultData = new QueryOutpatientDepartmentCostjsonDto(); var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; var outpatientSettlementNo = _serviceBasicService.GetOutpatientSettlementNo(new GetOutpatientSettlementNoParam() { BusinessId = param.BusinessId, User = userBase }); //获取医保病人信息 var queryResidentParam = new QueryMedicalInsuranceResidentInfoParam() { BusinessId = param.BusinessId, OrganizationCode = userBase.OrganizationCode, SettlementNo = outpatientSettlementNo }; var outpatient = _hisSqlRepository.QueryOutpatient(new QueryOutpatientParam() { BusinessId = param.BusinessId }); if (outpatient == null) { throw new Exception("当前病人查找失败!!!"); } var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(queryResidentParam); if (residentData == null) { throw new Exception("当前病人未结算,无结算数据!!!"); } if (residentData.MedicalInsuranceState != MedicalInsuranceState.HisSettlement) { throw new Exception("当前病人无结算数据!!!"); } resultData.ReimbursementExpensesAmount = residentData.ReimbursementExpensesAmount; resultData.SelfPayFeeAmount = residentData.SelfPayFeeAmount; resultData.AllAmount = residentData.MedicalInsuranceAllAmount; return(resultData); }
/// <summary> /// 职工住院预结算 /// </summary> /// <param name="param"></param> /// <returns></returns> public WorkerHospitalizationPreSettlementDto WorkerHospitalizationPreSettlement(UiBaseDataParam param) { //获取操作人员信息 var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; var queryResidentParam = new QueryMedicalInsuranceResidentInfoParam() { BusinessId = param.BusinessId, OrganizationCode = userBase.OrganizationCode }; var infoData = new GetInpatientInfoParam() { User = userBase, BusinessId = param.BusinessId, }; //获取his预结算 var hisPreSettlementData = _serviceBasicService.GetHisHospitalizationPreSettlement(infoData); var preSettlementData = hisPreSettlementData.PreSettlementData.FirstOrDefault(); //获取医保病人信息 var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(queryResidentParam); //获取医院等级 var gradeData = _systemManageRepository.QueryHospitalOrganizationGrade(userBase.OrganizationCode); if (string.IsNullOrWhiteSpace(preSettlementData.EndDate)) { throw new Exception("当前病人在基层中未办理出院,不能办理医保预结算!!!"); } //获取医保账号 var userData = _systemManageRepository.QueryHospitalOperator( new QueryHospitalOperatorParam() { UserId = param.UserId }); var preSettlement = new WorkerHospitalizationPreSettlementParam() { User = userBase, Id = residentData.Id, BusinessId = param.BusinessId, MedicalInsuranceHospitalizationNo = residentData.MedicalInsuranceHospitalizationNo, LeaveHospitalDate = Convert.ToDateTime(preSettlementData.EndDate).ToString("yyyyMMdd"), AdministrativeArea = gradeData.AdministrativeArea, Operators = preSettlementData.Operator, IsHospitalizationFrequency = "0", OrganizationCode = gradeData.MedicalInsuranceAccount, }; //医保结算 var resultData = _workerMedicalInsuranceRepository.WorkerHospitalizationPreSettlement(preSettlement); //报销金额 =统筹支付+补充医疗保险支付金额+专项基金支付金额+ //公务员补贴+公务员补助+其它支付金额 decimal reimbursementExpenses = resultData.BasicOverallPay + resultData.SupplementPayAmount + resultData.SpecialFundPayAmount + resultData.CivilServantsSubsidies + resultData.CivilServantsSubsidy + resultData.OtherPaymentAmount; var updateParam = new UpdateMedicalInsuranceResidentSettlementParam() { ReimbursementExpensesAmount = CommonHelp.ValueToDouble(reimbursementExpenses), SelfPayFeeAmount = resultData.CashPayment, OtherInfo = JsonConvert.SerializeObject(resultData), Id = residentData.Id, UserId = userBase.UserId, SettlementNo = resultData.DocumentNo, MedicalInsuranceAllAmount = resultData.TotalAmount, PreSettlementTransactionId = userBase.TransKey, MedicalInsuranceState = MedicalInsuranceState.MedicalInsurancePreSettlement }; //存入中间库 _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParam); var logParam = new AddHospitalLogParam() { JoinOrOldJson = JsonConvert.SerializeObject(param), ReturnOrNewJson = JsonConvert.SerializeObject(resultData), User = userBase, Remark = "职工住院病人预结算" }; _systemManageRepository.AddHospitalLog(logParam); return(resultData); }
public ApiJsonResultData Icd10BatchUpload([FromBody] UiBaseDataParam param) { return(new ApiJsonResultData(ModelState, new UiInIParam()).RunWithTry(y => { var userBase = webServiceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; var dataList = new List <Icd10PairCodeDataParam>(); //基层 var queryDataNew = _sqlSugarRepository.QueryICD10PairCode(); var queryData = queryDataNew.Where(c => c.IsDelete == false && c.State == 0).ToList(); if (queryData.Any()) { dataList = queryData.Select(d => new Icd10PairCodeDataParam { DiseaseId = d.DiseaseId, ProjectName = d.ProjectName, ProjectCode = d.ProjectCode }).ToList(); } if (dataList.Any()) { int a = 0; int limit = 400; //限制条数 int num = dataList.Count; var count = Convert.ToInt32(num / limit) + ((num % limit) > 0 ? 1 : 0); var idList = new List <string>(); while (a < count) { //排除已上传数据 var rowDataListAll = dataList.Where(d => !idList.Contains(d.DiseaseId)) .ToList(); var sendList = rowDataListAll.Take(limit).ToList(); //回参构建 var icd10List = new List <Icd10PairCodeDateXml>(); icd10List.AddRange(sendList.Select(c => new Icd10PairCodeDateXml() { DiseaseId = c.DiseaseId, DiseaseName = c.ProjectName, DiseaseCoding = c.ProjectCode })); var xmlData = new Icd10PairCodeXml() { row = icd10List }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); var saveXml = new SaveXmlDataParam() { User = userBase, MedicalInsuranceBackNum = "CXJB002", MedicalInsuranceCode = "91", BusinessId = param.BusinessId, BackParam = strXmlBackParam }; //存基层 webServiceBasic.SaveXmlData(saveXml); idList.AddRange(sendList.Select(c => c.DiseaseId)); a++; } hisSqlRepository.ExecuteSql("update [dbo].[ICD10PairCode] set state=1 where [PairCodeUserName]='医保接口对码'"); } })); }
//public void PrescriptionUploadAll(UploadAllParam param) //{ // //更新费用 //} /// <summary> /// 居民住院预结算 /// </summary> /// <param name="param"></param> /// <returns></returns> public HospitalizationPresettlementDto HospitalizationPreSettlement(UiBaseDataParam param) { HospitalizationPresettlementDto resultData = null; //获取操作人员信息 var userBase = _webserviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; var queryResidentParam = new QueryMedicalInsuranceResidentInfoParam() { BusinessId = param.BusinessId, OrganizationCode = userBase.OrganizationCode }; var infoData = new GetInpatientInfoParam() { User = userBase, BusinessId = param.BusinessId, }; //获取his预结算 var hisPreSettlementData = _webserviceBasicService.GetHisHospitalizationPreSettlement(infoData); var preSettlementData = hisPreSettlementData.PreSettlementData.FirstOrDefault(); //获取医保病人信息 var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(queryResidentParam); if (string.IsNullOrWhiteSpace(preSettlementData.EndDate)) { throw new Exception("当前病人在基层中未办理出院,不能办理医保预结算!!!"); } //医保执行 var data = _residentMedicalInsuranceRepository.HospitalizationPreSettlement(new HospitalizationPresettlementParam() { LeaveHospitalDate = Convert.ToDateTime(preSettlementData.EndDate).ToString("yyyyMMdd"), MedicalInsuranceHospitalizationNo = residentData.MedicalInsuranceHospitalizationNo, }); resultData = data ?? throw new Exception("居民预结算返回结果有误!!!"); //报销金额 =统筹支付+补充险支付+生育补助+民政救助+民政重大疾病救助+精准扶贫+民政优抚+其它支付 decimal reimbursementExpenses = data.BasicOverallPay + data.SupplementPayAmount + data.BirthAAllowance + data.CivilAssistancePayAmount + data.CivilAssistanceSeriousIllnessPayAmount + data.AccurateAssistancePayAmount + data.CivilServicessistancePayAmount + data.OtherPaymentAmount; resultData.ReimbursementExpenses = reimbursementExpenses; var updateParam = new UpdateMedicalInsuranceResidentSettlementParam() { ReimbursementExpensesAmount = CommonHelp.ValueToDouble(reimbursementExpenses), SelfPayFeeAmount = data.CashPayment, OtherInfo = JsonConvert.SerializeObject(data), Id = residentData.Id, UserId = param.UserId, SettlementNo = data.DocumentNo, MedicalInsuranceAllAmount = data.TotalAmount, PreSettlementTransactionId = param.TransKey, MedicalInsuranceState = MedicalInsuranceState.MedicalInsurancePreSettlement }; //存入中间库 _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParam); var logParam = new AddHospitalLogParam() { JoinOrOldJson = JsonConvert.SerializeObject(param), ReturnOrNewJson = JsonConvert.SerializeObject(data), User = userBase, BusinessId = param.BusinessId, Remark = "居民住院病人预结算" }; _systemManageRepository.AddHospitalLog(logParam); return(resultData); }