public async Task <IHttpActionResult> GetCaseSummary(int CaseId, CaseSummaryRequestModel oCaseRequest) { string sIPAddress = Request.GetOwinContext().Request.RemoteIpAddress; try { var CaseCodesByID = await oCaseCodeRepo.GetCaseCaseCodesByCaseID(CaseId); var lstCaseSummary = oCaseRepo.GetCaseSummary(CaseCodesByID, oCaseRequest); return(Json(lstCaseSummary)); } catch (Exception ex) { oLogger.LogData("ROUTE: api/Case/{CaseId}/CaseSummary; METHOD: POST; IP_ADDRESS: " + sIPAddress + "; EXCEPTION: " + ex.Message + "; INNER EXCEPTION: " + ex.InnerException); return(InternalServerError()); } }
public List <CaseSummaryReturnModel> GetCaseSummary(List <CaseCode> lstCaseCodes, CaseSummaryRequestModel oCaseSummary) { List <CaseSummaryReturnModel> lstCaseReturn = new List <CaseSummaryReturnModel>(); foreach (var caseCode in lstCaseCodes) { CaseSummaryReturnModel oCaseReturn = new CaseSummaryReturnModel(); PaymentRateReturnModel oPaymentRateReturn = new PaymentRateReturnModel(); PaymentRateRequestModel oPaymentRateRequest = new PaymentRateRequestModel(); PaymentRateCalculations oPaymentCalculations = new PaymentRateCalculations(); if (oCaseSummary.treatment_setting.Equals("Hospital")) { var OppsByCPT = oOPPSRepo.GetOPPSCByCPT(caseCode.CaseCode1).FirstOrDefault(); if (OppsByCPT.Payment_Rate_ == 0 || OppsByCPT.Payment_Rate_ == null) { oCaseReturn.payment_rate = 0; } else { oCaseReturn.payment_rate = Convert.ToDouble(OppsByCPT.Payment_Rate_); } oCaseReturn.cpt_code = OppsByCPT.HCPCS_Code; oCaseReturn.number_of_treatments = 0; oCaseReturn.treatment_cost = oCaseReturn.payment_rate * oCaseReturn.number_of_treatments; oCaseReturn.treatment_setting = oCaseSummary.treatment_setting; lstCaseReturn.Add(oCaseReturn); } if (oCaseSummary.treatment_setting.Equals("Global")) { oPaymentRateRequest.CPTCode = caseCode.CaseCode1; oPaymentRateRequest.Locale = oCaseSummary.locality; oPaymentRateRequest.PaymentRateScope = oCaseSummary.scope; var GlobalCalculation = oPaymentCalculations.CalculateGlobalPaymentRate(oPaymentRateRequest); oCaseReturn.cpt_code = GlobalCalculation.CPTCode; oCaseReturn.number_of_treatments = 0; oCaseReturn.treatment_setting = oCaseSummary.treatment_setting; oCaseReturn.payment_rate = GlobalCalculation.PaymentRate; oCaseReturn.treatment_cost = oCaseReturn.payment_rate * oCaseReturn.number_of_treatments; lstCaseReturn.Add(oCaseReturn); } if (oCaseSummary.treatment_setting.Equals("Professional")) { oPaymentRateRequest.CPTCode = caseCode.CaseCode1; oPaymentRateRequest.Locale = oCaseSummary.locality; oPaymentRateRequest.PaymentRateScope = oCaseSummary.scope; var ProfessionalCalculation = oPaymentCalculations.CalculateProfessionalPaymentRate(oPaymentRateRequest); oCaseReturn.cpt_code = ProfessionalCalculation.CPTCode; oCaseReturn.number_of_treatments = 0; oCaseReturn.treatment_setting = oCaseSummary.treatment_setting; oCaseReturn.payment_rate = ProfessionalCalculation.PaymentRate; oCaseReturn.treatment_cost = oCaseReturn.payment_rate * oCaseReturn.number_of_treatments; lstCaseReturn.Add(oCaseReturn); } if (oCaseSummary.treatment_setting.Equals("Technical")) { oPaymentRateRequest.CPTCode = caseCode.CaseCode1; oPaymentRateRequest.Locale = oCaseSummary.locality; oPaymentRateRequest.PaymentRateScope = oCaseSummary.scope; var TechnicalCalculation = oPaymentCalculations.CalculateTechnicalPaymentRate(oPaymentRateRequest); oCaseReturn.cpt_code = TechnicalCalculation.CPTCode; oCaseReturn.number_of_treatments = 0; oCaseReturn.treatment_setting = oCaseSummary.treatment_setting; oCaseReturn.payment_rate = TechnicalCalculation.PaymentRate; oCaseReturn.treatment_cost = oCaseReturn.payment_rate * oCaseReturn.number_of_treatments; lstCaseReturn.Add(oCaseReturn); } } return(lstCaseReturn); }