Ejemplo n.º 1
0
        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());
            }
        }
Ejemplo n.º 2
0
        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);
        }