public void X835_TryGetMatchedClaimProc_SpecificSupplemental() { TryEnterPayment(_x835, _eraJustinSmithClaim, _claimPrimaryJustinSmith, true); //Will return if payment already entered. List <ClaimProc> listClaimProcs = ClaimProcs.Refresh(_claimPrimaryJustinSmith.PatNum); //TODO: limit list to claimProcs for primary claim only. listClaimProcs.AddRange(ClaimProcs.CreateSuppClaimProcs(listClaimProcs)); long claimProcNumExpected = listClaimProcs.Find(x => x.ClaimNum == _claimPrimaryJustinSmith.ClaimNum && x.Status == ClaimProcStatus.Received && x.CodeSent == "D0120" ).ClaimProcNum; long claimProcNumActual = 0; bool isSupplemental = _eraJustinSmithClaim.GetIsSupplemental(_listEtrans835Attaches, listClaimProcs); List <Hx835_Proc> listProcsNotMatched = new List <Hx835_Proc>(); foreach (Hx835_Proc proc in _eraJustinSmithClaim.ListProcs) { ClaimProc matchedClaimProc = null; if (!proc.TryGetMatchedClaimProc(out matchedClaimProc, listClaimProcs, isSupplemental)) { listProcsNotMatched.Add(proc); continue; } listClaimProcs.Remove(matchedClaimProc); //So it cannot be matched twice. if (claimProcNumActual != claimProcNumExpected) { claimProcNumActual = matchedClaimProc.ClaimProcNum; } else //Found a match, thats all we care about. { break; } } Assert.AreEqual(claimProcNumExpected, claimProcNumActual); }
public void X835_IsProcessed_WithPartialSupplemental() { TryEnterPayment(_x835, _eraJustinSmithClaim, _claimPrimaryJustinSmith, true); //Will return if payment already entered. List <ClaimProc> listClaimProcs = ClaimProcs.Refresh(_claimPrimaryJustinSmith.PatNum); List <ClaimProc> listSupplementalClaimProcs = ClaimProcs.CreateSuppClaimProcs(listClaimProcs); listSupplementalClaimProcs.RemoveAt(0); //For this test, only enter supplemental payment for some of the procs. listClaimProcs.AddRange(listSupplementalClaimProcs); Assert.AreEqual(true, _eraJustinSmithClaim.IsProcessed(listClaimProcs, _listEtrans835Attaches)); }
public void X835_GetIsSupplemental_FalsePossitive() { TryEnterPayment(_x835, _eraJustinSmithClaim, _claimPrimaryJustinSmith, true); //Will return if payment already entered. List <ClaimProc> listClaimProcs = ClaimProcs.Refresh(_claimPrimaryJustinSmith.PatNum); List <ClaimProc> listSupplementalClaimProcs = ClaimProcs.CreateSuppClaimProcs(listClaimProcs); listSupplementalClaimProcs.RemoveAt(0); //Only enter supplemental payment for some of the procs. listClaimProcs.AddRange(listSupplementalClaimProcs); bool isEraClaimSupplemental = _eraJustinSmithClaim.GetIsSupplemental(_listEtrans835Attaches, listClaimProcs); Assert.AreEqual(false, isEraClaimSupplemental); }