示例#1
0
        ///<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));
        }