示例#1
0
        public IHttpActionResult ProfessionalPaymentRate(PaymentRateRequestModel oPaymentRate)
        {
            string sIPAddress = Request.GetOwinContext().Request.RemoteIpAddress;

            try
            {
                PaymentRateReturnModel oPaymentRateReturn = oPaymentCalc.CalculateProfessionalPaymentRate(oPaymentRate);

                oLogger.LogData("ROUTE: api/MPFS/ProfessionalPaymentRate; METHOD: POST; IP_ADDRESS: " + sIPAddress);

                return(Json <PaymentRateReturnModel>(oPaymentRateReturn));
            }
            catch (Exception ex)
            {
                oLogger.LogData("ROUTE: api/MPFS/ProfessionalPaymentRate; METHOD: POST; IP_ADDRESS: " + sIPAddress + "; EXCEPTION: " + ex.Message + "; INNER EXCEPTION: " + ex.InnerException);
                return(InternalServerError());
            }
        }
示例#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);
        }