public void EvaluateIfClaimHasNoPayerTest() { // Arrange _target = new EvaluateableClaimLogic(); IEvaluateableClaim claim = new EvaluateableClaim(); claim.ClaimId = 123; List <PaymentResult> paymentResults = new List <PaymentResult>(); PaymentResult paymentResult = new PaymentResult { ClaimId = 123 }; paymentResults.Add(paymentResult); PaymentResult paymentResultForLine = new PaymentResult { ClaimId = 123, Line = 1 }; paymentResults.Add(paymentResultForLine); //Act List <PaymentResult> actual = _target.Evaluate(claim, paymentResults, false, false); // Assert PaymentResult overAllClaimPaymentResult = actual.FirstOrDefault( payment => payment.Line == null && payment.ServiceTypeId == null); if (overAllClaimPaymentResult != null) { Assert.AreEqual(overAllClaimPaymentResult.ClaimStatus, (byte)Enums.AdjudicationOrVarianceStatuses.ClaimDataError); } }
public void IsMatchTest() { // Arrange _target = new EvaluateableClaimLogic(); IEvaluateableClaim claim = new EvaluateableClaim(); Exception expectedExcetpion = null; // Act try { _target.IsMatch(claim); } catch (Exception ex) { expectedExcetpion = ex; } // Assert Assert.IsNotNull(expectedExcetpion); }
public void EvaluateIfClaimHasNoLineTest() { // Arrange _target = new EvaluateableClaimLogic(); IEvaluateableClaim claim = new EvaluateableClaim(); claim.ClaimId = 123; claim.PriPayerName = "Blue Cross"; claim.BillType = "141"; claim.ClaimState = "Billed"; claim.ClaimType = "hosp"; claim.StatementFrom = DateTime.Now; claim.StatementThru = DateTime.Now; claim.ClaimTotal = 200; List <PaymentResult> paymentResults = new List <PaymentResult>(); PaymentResult paymentResult = new PaymentResult { ClaimId = 123 }; paymentResults.Add(paymentResult); PaymentResult paymentResultForLine = new PaymentResult { ClaimId = 123, Line = 1 }; paymentResults.Add(paymentResultForLine); // Act List <PaymentResult> actual = _target.Evaluate(claim, paymentResults, false, false); // Assert PaymentResult overAllClaimPaymentResult = actual.FirstOrDefault( payment => payment.Line == null && payment.ServiceTypeId == null); if (overAllClaimPaymentResult != null) { Assert.AreEqual(overAllClaimPaymentResult.ClaimStatus, (byte)Enums.AdjudicationOrVarianceStatuses.AdjudicationErrorMissingServiceLine); } }
public void UpdateEvaluateableClaimsTest() { // Arrange _target = new EvaluateableClaimLogic(); ConditionCode conditionCode = new ConditionCode { ClaimId = 123, Code = "0300" }; List <ConditionCode> conditionCodes = new List <ConditionCode> { conditionCode }; PatientData patientData = new PatientData { FirstName = "Jim" }; DiagnosisCode diagnosisCode = new DiagnosisCode { Instance = "P", ClaimId = 123, IcddCode = "0800" }; List <DiagnosisCode> diagnosisCodes = new List <DiagnosisCode> { diagnosisCode }; ClaimCharge claimCharge = new ClaimCharge { Line = 1, RevCode = "0123", Amount = 5556.2, }; // Act List <ClaimCharge> claimCharges = new List <ClaimCharge> { claimCharge }; EvaluateableClaim evaluateableClaim = new EvaluateableClaim { ClaimId = 123, StatementThru = Convert.ToDateTime("2012-01-12 00:00:00.000"), StatementFrom = Convert.ToDateTime("2012-01-12 00:00:00.000"), ConditionCodes = conditionCodes, PatientData = patientData, DiagnosisCodes = diagnosisCodes, ClaimCharges = claimCharges }; List <EvaluateableClaim> evaluateableClaimLists = new List <EvaluateableClaim> { evaluateableClaim }; List <EvaluateableClaim> actual = _target.UpdateEvaluateableClaims(evaluateableClaimLists); // Assert EvaluateableClaim updatedEvaluateableClaim = actual.FirstOrDefault(); if (updatedEvaluateableClaim != null) { CRecord cRecord = updatedEvaluateableClaim.MicrodynApcEditInput.CRecord; if (cRecord != null) { Assert.AreEqual(cRecord.PatientData, evaluateableClaim.PatientData); Assert.AreNotEqual(cRecord.ClaimId, evaluateableClaim.ClaimId); } DRecord dRecord = updatedEvaluateableClaim.MicrodynApcEditInput.DRecord; if (dRecord != null) { Assert.AreEqual(dRecord.PrincipalDiagnosisCode, evaluateableClaim.DiagnosisCodes.First().IcddCode); } LRecord lRecord = updatedEvaluateableClaim.MicrodynApcEditInput.LRecords.FirstOrDefault(); if (lRecord != null) { Assert.AreEqual(lRecord.RevenueCode, evaluateableClaim.ClaimCharges.First().RevCode); Assert.AreEqual(lRecord.LineItemId, evaluateableClaim.ClaimCharges.First().Line); } MedicareOutPatient medicareOutPatient = updatedEvaluateableClaim.MicrodynApcEditInput.MedicareOutPatientRecord; if (medicareOutPatient != null) { Assert.AreEqual(medicareOutPatient.ClaimId, evaluateableClaim.ClaimId); Assert.AreEqual(medicareOutPatient.BeneDeductible, 0); } } }