/// <summary>
        /// Generates the model compassion report.
        /// </summary>
        /// <param name="modelComparisonForPost">The model comparison for post.</param>
        /// <returns></returns>
        public ModelComparisonReport Generate(ModelComparisonReport modelComparisonForPost)
        {
            ModelComparisonReport modelComparisonReportData = new ModelComparisonReport();

            // Initialize the Stored Procedure
            _databaseCommandObj = _databaseObj.GetStoredProcCommand("GetModelComparisonReport");
            // Pass parameters to Stored Procedure(i.e., @ParamName), add values for
            _databaseObj.AddInParameter(_databaseCommandObj, "@SelectedModels ", DbType.String, modelComparisonForPost.SelectedModelList);
            _databaseObj.AddInParameter(_databaseCommandObj, "@IsDetailedView ", DbType.Int32, modelComparisonForPost.IsCheckedDetailLevel);
            _databaseObj.AddInParameter(_databaseCommandObj, "@DetailedViewAt ", DbType.Int32, modelComparisonForPost.DetailSelectValue);
            _databaseObj.AddInParameter(_databaseCommandObj, "@FacilityId ", DbType.Int32, modelComparisonForPost.FacilityId);
            _databaseObj.AddInParameter(_databaseCommandObj, "@DateType", DbType.Int32, modelComparisonForPost.DateType);
            _databaseObj.AddInParameter(_databaseCommandObj, "@DateFrom", DbType.DateTime, modelComparisonForPost.StartDate);
            _databaseObj.AddInParameter(_databaseCommandObj, "@DateTo", DbType.DateTime, modelComparisonForPost.EndDate);
            _databaseObj.AddInParameter(_databaseCommandObj, "@SelectCriteria", DbType.String, modelComparisonForPost.ClaimSearchCriteria);
            _databaseObj.AddInParameter(_databaseCommandObj, "@RequestedUserID", DbType.String, modelComparisonForPost.RequestedUserId);
            _databaseObj.AddInParameter(_databaseCommandObj, "@RequestedUserName", DbType.String, modelComparisonForPost.RequestedUserName);

            // Retrieve the results of the Stored Procedure in Data table
            _databaseCommandObj.CommandTimeout = 1000;
            DataSet modelComparisonDataSet = _databaseObj.ExecuteDataSet(_databaseCommandObj);

            if (modelComparisonDataSet.IsTableDataPopulated())
            {
                List <ModelComparisonReportDetails> modelComparisonReportList = new List <ModelComparisonReportDetails>();

                DataRowCollection modelComparisonRowCollection = modelComparisonDataSet.Tables[0].Rows;
                for (int indexCount = 0; indexCount < modelComparisonRowCollection.Count; indexCount++)
                {
                    ModelComparisonReportDetails modelComparisonReportDetails = new ModelComparisonReportDetails();
                    DataRow           modelComparisonRow = modelComparisonRowCollection[indexCount];
                    EvaluateableClaim claimData          = new EvaluateableClaim
                    {
                        NodeText              = DBNull.Value == modelComparisonRow["ModelName"] ? string.Empty : modelComparisonRow["ModelName"].ToString(),
                        ModelId               = DBNull.Value == modelComparisonRow["ModelId"] ? (int?)null : Convert.ToInt32(modelComparisonRow["ModelId"]),
                        ClaimTotal            = DBNull.Value == modelComparisonRow["ClaimTotalCharges"] ? (double?)null : Convert.ToDouble(modelComparisonRow["ClaimTotalCharges"]),
                        AdjudicatedValue      = DBNull.Value == modelComparisonRow["AdjudicatedValue"] ? (double?)null : Convert.ToDouble(modelComparisonRow["AdjudicatedValue"]),
                        CalculatedAdjustment  = DBNull.Value == modelComparisonRow["CalculatedAdjudtment"] ? (double?)null : Convert.ToDouble(modelComparisonRow["CalculatedAdjudtment"]),
                        ActualPayment         = DBNull.Value == modelComparisonRow["ActualPayment"] ? (double?)null : Convert.ToDouble(modelComparisonRow["ActualPayment"]),
                        ActualAdjustment      = DBNull.Value == modelComparisonRow["ActualAdjustment"] ? (double?)null : Convert.ToDouble(modelComparisonRow["ActualAdjustment"]),
                        PatientResponsibility = DBNull.Value == modelComparisonRow["PatientResponsibility"] ? (double?)null : Convert.ToDouble(modelComparisonRow["PatientResponsibility"]),
                        RemitAllowedAmt       = DBNull.Value == modelComparisonRow["RemitAllowed"] ? (double?)null : Convert.ToDouble(modelComparisonRow["RemitAllowed"]),
                        RemitNonCovered       = DBNull.Value == modelComparisonRow["RemitNonCovered"] ? (double?)null : Convert.ToDouble(modelComparisonRow["RemitNonCovered"]),
                        RemitContrAdj         = DBNull.Value == modelComparisonRow["RemitNonCovered"] ? (double?)null : Convert.ToDouble(modelComparisonRow["RemitNonCovered"]),
                        ContractualVariance   = DBNull.Value == modelComparisonRow["ContractualVariance"] ? (double?)null : Convert.ToDouble(modelComparisonRow["ContractualVariance"]),
                        PaymentVariance       = DBNull.Value == modelComparisonRow["PaymentVariance"] ? (double?)null : Convert.ToDouble(modelComparisonRow["PaymentVariance"]),
                        DetailedSelection     = DBNull.Value == modelComparisonRow["DetailedSelection"] ? string.Empty : modelComparisonRow["DetailedSelection"].ToString()
                    };
                    modelComparisonReportDetails.ClaimData = claimData;
                    modelComparisonReportDetails.Count     = DBNull.Value == modelComparisonRow["ClaimCount"]
                        ? string.Empty
                        : modelComparisonRow["ClaimCount"].ToString();
                    modelComparisonReportList.Add(modelComparisonReportDetails);
                }
                modelComparisonReportData.ModelComparisonData = modelComparisonReportList;
            }

            return(modelComparisonReportData);
        }
        public void GenerateModelComparisonReportNoDataTest()
        {
            var mockModelComparisonReportRepository = new Mock <IModelComparisonReportRepository>();
            var value  = new ModelComparisonReport();
            var result = new ModelComparisonReport();

            mockModelComparisonReportRepository.Setup(f => f.Generate(It.IsAny <ModelComparisonReport>())).Returns(result);
            ModelComparisonReportLogic target = new ModelComparisonReportLogic(mockModelComparisonReportRepository.Object);
            ModelComparisonReport      actual = target.Generate(value);

            Assert.AreEqual(actual, result);
        }
        public void EmptyModelListWhenFacilityIdNotPresent()
        {
            var mockModelComparisonReportRepository = new Mock <IModelComparisonReportRepository>();
            var value  = new ModelComparisonReport();
            var result = new List <ModelComparisonReport> {
                new ModelComparisonReport()
            };

            mockModelComparisonReportRepository.Setup(f => f.GetModels(It.IsAny <ModelComparisonReport>())).Returns(result);
            ModelComparisonReportLogic   target = new ModelComparisonReportLogic(mockModelComparisonReportRepository.Object);
            List <ModelComparisonReport> actual = target.GetModels(value);

            Assert.AreEqual(result, actual);
        }
Beispiel #4
0
        public JsonResult GetModels(int facilityId)
        {
            ModelComparisonReport modelComparisonForPost = new ModelComparisonReport
            {
                FacilityId = facilityId
            };

            List <ModelComparisonReport> availableModelsList = PostApiResponse <List <ModelComparisonReport> >(Constants.ModelComparisonReport,
                                                                                                               Constants.GetModels,
                                                                                                               modelComparisonForPost);
            List <ModelComparisonReportViewModel> modelsList =
                AutoMapper.Mapper.Map <List <ModelComparisonReport>, List <ModelComparisonReportViewModel> >(availableModelsList);

            return(Json(new { modelsList }));
        }
Beispiel #5
0
        public JsonResult GenerateModelComparasionReport(ModelComparisonReportViewModel reportview)
        {
            reportview.RequestedUserId   = GetUserKey();
            reportview.RequestedUserName = GetCurrentUserName();

            ModelComparisonReport modelComparisoneReportInfo =
                PostApiResponse <ModelComparisonReport>(Constants.ModelComparisonReport, Constants.Get,
                                                        reportview);
            ModelComparisonReportViewModel modelComparisonReportlist =
                AutoMapper.Mapper.Map <ModelComparisonReport, ModelComparisonReportViewModel>(modelComparisoneReportInfo);

            modelComparisonReportlist.IsCheckedDetailLevel = reportview.IsCheckedDetailLevel;

            // Gets the current CST time.
            modelComparisonReportlist.CurrentDateTime = Utilities.GetLocalTimeString(reportview.CurrentDateTime);

            return(Json(new ModelComparisonReportUtil().GetExportedFileName(modelComparisonReportlist, GlobalConfigVariable.ReportsFilePath)));
        }
        /// <summary>
        /// Gets the available models.
        /// </summary>
        /// <param name="modelComparisonForPost">The model comparison for post.</param>
        /// <returns></returns>
        public List <ModelComparisonReport> GetModels(ModelComparisonReport modelComparisonForPost)
        {
            _databaseCommandObj = _databaseObj.GetStoredProcCommand("GetModelsByFacilityId");
            _databaseObj.AddInParameter(_databaseCommandObj, "@FacilityID ", DbType.Int64, modelComparisonForPost.FacilityId);

            // Retrieve the results of the Stored Procedure in Datatable
            DataSet modelComparisonDataSet = _databaseObj.ExecuteDataSet(_databaseCommandObj);

            if (modelComparisonDataSet.IsTableDataPopulated(0) && modelComparisonDataSet.Tables[0].Rows != null && modelComparisonDataSet.Tables[0].Rows.Count > 0)
            {
                List <ModelComparisonReport> availableModels = (from DataRow row in modelComparisonDataSet.Tables[0].Rows
                                                                select new ModelComparisonReport
                {
                    NodeId = long.Parse(row["NodeID"].ToString()),
                    ModelName = Convert.ToString(row["NodeText"])
                }).ToList();

                return(availableModels);
            }

            return(null);
        }
        public void GenerateModelComparisonReportTest()
        {
            var mockModelComparisonReportRepository = new Mock <IModelComparisonReportRepository>();
            ModelComparisonReport value             = new ModelComparisonReport
            {
                FacilityId          = 1,
                SelectedModelList   = "287103,11672",
                DetailSelectValue   = 1,
                StartDate           = DateTime.MinValue,
                EndDate             = DateTime.MinValue,
                ClaimSearchCriteria = "-99|2|Test"
            };
            EvaluateableClaim claimData = new EvaluateableClaim
            {
                NodeText = "Testing",
                ModelId  = 123
            };

            List <ModelComparisonReportDetails> modelComparisonReportDetailsList = new List
                                                                                   <ModelComparisonReportDetails>
            {
                new ModelComparisonReportDetails
                {
                    ClaimData = claimData
                }
            };
            ModelComparisonReport result = new ModelComparisonReport
            {
                ModelComparisonData = modelComparisonReportDetailsList
            };

            mockModelComparisonReportRepository.Setup(
                f => f.Generate(It.IsAny <ModelComparisonReport>())).Returns(result);
            ModelComparisonReportLogic target =
                new ModelComparisonReportLogic(mockModelComparisonReportRepository.Object);
            ModelComparisonReport actual = target.Generate(value);

            Assert.AreEqual(actual, result);
        }
Beispiel #8
0
        /// <summary>
        /// Generates the model comparison report.
        /// </summary>
        /// <param name="modelComparisonReport">The model comparison report.</param>
        /// <returns></returns>
        public ModelComparisonReport Generate(ModelComparisonReport modelComparisonReport)
        {
            if (modelComparisonReport != null)
            {
                if (modelComparisonReport.StartDate == DateTime.MinValue &&
                    modelComparisonReport.EndDate == DateTime.MinValue)
                {
                    // If search criteria contains "-99|" means search criteria contains "adjudication request name" and ignoring the date type filter in sp level
                    if (!string.IsNullOrEmpty(modelComparisonReport.ClaimSearchCriteria) &&
                        modelComparisonReport.ClaimSearchCriteria.Contains(Constants.AdjudicationRequestCriteria))
                    {
                        modelComparisonReport.DateType = Constants.DefaultDateType;
                    }

                    modelComparisonReport.EndDate   = DateTime.Now;
                    modelComparisonReport.StartDate =
                        DateTime.Now.AddYears(-GlobalConfigVariable.PullDataForNumberOfYears);
                }
                return(_modelComparisonReportRepository.Generate(modelComparisonReport));
            }
            return(null);
        }
Beispiel #9
0
 public List <ModelComparisonReport> GetModels(ModelComparisonReport modelComparisonForPost)
 {
     return(_modelComparisonReportRepository.GetModels(modelComparisonForPost));
 }
 public ModelComparisonReport Get(ModelComparisonReport reportview)
 {
     return(_modelComparisonReportLogic.Generate(reportview));
 }