///<summary>Computes the claimproc estimates for all TP procedures belonging to the specified patient. Returns the claimprocs.</summary> public static List <ClaimProc> ComputeEstimates(Patient pat, List <PatPlan> listPatPlans, List <InsPlan> listPlans, List <InsSub> listSubs, List <Benefit> listBens, DateTime dateCalc) { List <ClaimProc> claimProcs = ClaimProcs.Refresh(pat.PatNum); List <ClaimProc> claimProcListOld = claimProcs.Select(x => x.Copy()).ToList(); List <ClaimProcHist> histList = ClaimProcs.GetHistList(pat.PatNum, listBens, listPatPlans, listPlans, dateCalc, listSubs); List <ClaimProcHist> loopList = new List <ClaimProcHist>(); List <Procedure> ProcList = Procedures.Refresh(pat.PatNum); Procedure[] ProcListTP = Procedures.GetListTPandTPi(ProcList); //sorted by priority, then toothnum for (int i = 0; i < ProcListTP.Length; i++) { Procedures.ComputeEstimates(ProcListTP[i], pat.PatNum, ref claimProcs, false, listPlans, listPatPlans, listBens, histList, loopList, false, pat.Age, listSubs); //then, add this information to loopList so that the next procedure is aware of it. loopList.AddRange(ClaimProcs.GetHistForProc(claimProcs, ProcListTP[i].ProcNum, ProcListTP[i].CodeNum)); } //save changes in the list to the database ClaimProcs.Synch(ref claimProcs, claimProcListOld); return(ClaimProcs.Refresh(pat.PatNum)); }