// // GET: /Scheduling/Insurance/ public ActionResult Edit(long chargeCardId = 0) { if (chargeCardId > 0) { var chargeCard = _chargeCardRepository.GetById(chargeCardId); var model = new EligibilityEditModel { CardDetail = chargeCard, HideCardDetails = true }; return(View(model)); } return(View(new EligibilityEditModel())); }
public ActionResult CheckEligibility(EligibilityEditModel model) { if (!ModelState.IsValid) { return(PartialView(model)); } long?createdByOrgRoleUserId = null; if (_sessionContext != null && _sessionContext.UserSession != null) { createdByOrgRoleUserId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId; } model = _eligibilityService.CheckEligibility(model, createdByOrgRoleUserId); ModelState.Clear(); return(PartialView(model)); }
public EligibilityEditModel CheckEligibility(EligibilityEditModel model, long?orgRoleUserId) { var insuranceCompany = _insuranceCompanyRepository.GetById(model.Request.InsuranceCompanyId); var insuranceServiceType = _insuranceServiceTypeRepository.GetById((long)EligibilityServiceType.HBPC); var eligibilityRespose = _eligibilityApi.GetCoverage(model.Request, insuranceCompany, insuranceServiceType); var creditCardResponse = CheckCreditCard(model.CardDetail); if (eligibilityRespose.Plan != null && (eligibilityRespose.Plan.CoverageStatus == EligibleCoverageStatus.ActiveCoverage || eligibilityRespose.Plan.CoverageStatus == EligibleCoverageStatus.ActiveFullRiskCapitation || eligibilityRespose.Plan.CoverageStatus == EligibleCoverageStatus.ActiveServicesCapitated || eligibilityRespose.Plan.CoverageStatus == EligibleCoverageStatus.ActiveServicesCapitatedToPrimaryCarePhysician) && creditCardResponse.ProcessorResult == ProcessorResponseResult.Accepted) { decimal coPay = 0; decimal coInsurance = 0; if (eligibilityRespose.Plan.FinancialData != null) { if (eligibilityRespose.Plan.FinancialData.CoPayment != null && eligibilityRespose.Plan.FinancialData.CoPayment.Amounts != null) { if (insuranceCompany.InNetwork) { if (eligibilityRespose.Plan.FinancialData.CoPayment.Amounts.InNetWork != null && eligibilityRespose.Plan.FinancialData.CoPayment.Amounts.InNetWork.Any()) { coPay = eligibilityRespose.Plan.FinancialData.CoPayment.Amounts.InNetWork.First().Amount; } } else { if (eligibilityRespose.Plan.FinancialData.CoPayment.Amounts.OutNetWork != null && eligibilityRespose.Plan.FinancialData.CoPayment.Amounts.OutNetWork.Any()) { coPay = eligibilityRespose.Plan.FinancialData.CoPayment.Amounts.OutNetWork.First().Amount; } } } if (eligibilityRespose.Plan.FinancialData.CoInsurance != null && eligibilityRespose.Plan.FinancialData.CoInsurance.Percents != null) { if (insuranceCompany.InNetwork) { if (eligibilityRespose.Plan.FinancialData.CoInsurance.Percents.InNetWork != null && eligibilityRespose.Plan.FinancialData.CoInsurance.Percents.InNetWork.Any()) { coInsurance = eligibilityRespose.Plan.FinancialData.CoInsurance.Percents.InNetWork.First().Amount; } } else { if (eligibilityRespose.Plan.FinancialData.CoInsurance.Percents.OutNetWork != null && eligibilityRespose.Plan.FinancialData.CoInsurance.Percents.OutNetWork.Any()) { coPay = eligibilityRespose.Plan.FinancialData.CoInsurance.Percents.OutNetWork.First().Amount; } } } } var eligibility = new Eligibility { Id = model.EligibilityId, Guid = eligibilityRespose.Guid, InsuranceCompanyId = model.Request.InsuranceCompanyId, PlanName = eligibilityRespose.Plan.PlanName, GroupName = eligibilityRespose.Demographics.Subscriber.GroupName, CoPayment = coPay, CoInsurance = coInsurance, Request = JsonConvert.SerializeObject(model.Request), Response = eligibilityRespose.RawResponse, DateCreated = DateTime.Now, CreatedByOrgRoleUserId = orgRoleUserId }; eligibility = _eligibilityRepository.Save(eligibility); model.EligibilityId = eligibility.Id; var chargeCard = model.CardDetail; chargeCard.DataRecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = new OrganizationRoleUser(orgRoleUserId.HasValue && orgRoleUserId.Value > 0 ? orgRoleUserId.Value : 1), DateCreated = DateTime.Now }; chargeCard = _chargeCardRepository.Save(chargeCard); model.CardDetail = chargeCard; } model.Response = eligibilityRespose; if (creditCardResponse.ProcessorResult != ProcessorResponseResult.Accepted) { model.ChargeCardResponse = creditCardResponse.Message; model.HideCardDetails = false; } return(model); }