///<summary>Adds procedures to the appointment.</summary> ///<returns>First item of tuple is the newly added procedures. Second item is all procedures for the appointment.</returns> public static ODTuple <List <Procedure>, List <Procedure> > QuickAddProcs(Appointment apt, Patient pat, List <string> listProcCodesToAdd, long provNum, long provHyg, List <InsSub> SubList, List <InsPlan> listInsPlans, List <PatPlan> listPatPlans, List <Benefit> listBenefits) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { return(Meth.GetObject <ODTuple <List <Procedure>, List <Procedure> > >(MethodBase.GetCurrentMethod(), apt, pat, listProcCodesToAdd, provNum, provHyg, SubList, listInsPlans, listPatPlans, listBenefits)); } Procedures.SetDateFirstVisit(apt.AptDateTime.Date, 1, pat); List <ClaimProc> ClaimProcList = ClaimProcs.Refresh(apt.PatNum); List <ProcedureCode> listProcedureCodes = new List <ProcedureCode>(); foreach (string procCode in listProcCodesToAdd) { listProcedureCodes.Add(ProcedureCodes.GetProcCode(procCode)); } List <long> listProvNumsTreat = new List <long>(); listProvNumsTreat.Add(provNum); listProvNumsTreat.Add(provHyg); //these were both passed in List <SubstitutionLink> listSubstLinks = SubstitutionLinks.GetAllForPlans(listInsPlans); //not available in FormApptEdit List <Fee> listFees = Fees.GetListFromObjects(listProcedureCodes, null, //no procs to pull medicalCodes from listProvNumsTreat, pat.PriProv, pat.SecProv, pat.FeeSched, listInsPlans, new List <long>() { apt.ClinicNum }, null, //procNums for appt already handled above listSubstLinks, pat.DiscountPlanNum); //null,listProvNumsTreat,listProcedureCodes.Select(x=>x.ProvNumDefault).ToList(), //pat.PriProv,pat.SecProv,pat.FeeSched,listInsPlans,new List<long>(){apt.ClinicNum},listProcCodesToAdd,null);//procnums for appt already handled above List <Procedure> listAddedProcs = new List <Procedure>(); //Make a copy of apt with provNum and provHyg, in order to maintain behavior of this method prior to using Procedures.ConstructProcedureForAppt //provNum and provHyg are sent in and are the selected provs in FormApptEdit, which may be different than the current provs on apt Appointment aptCur = apt.Copy(); aptCur.ProvNum = provNum; aptCur.ProvHyg = provHyg; foreach (string procCode in listProcCodesToAdd) { ProcedureCode procCodeCur = ProcedureCodes.GetProcCode(procCode); Procedure proc = Procedures.ConstructProcedureForAppt(procCodeCur.CodeNum, aptCur, pat, listPatPlans, listInsPlans, SubList, listFees); Procedures.Insert(proc); //recall synch not required Procedures.ComputeEstimates(proc, pat.PatNum, ref ClaimProcList, true, listInsPlans, listPatPlans, listBenefits, null, null, true, pat.Age, SubList, null, false, false, listSubstLinks, false, listFees); listAddedProcs.Add(proc); } return(new ODTuple <List <Procedure>, List <Procedure> >(listAddedProcs, Procedures.GetProcsForApptEdit(apt))); }
///<summary>Update Appointment.Confirmed. Returns true if update was allowed. Returns false if it was prevented.</summary> public static bool UpdateAppointmentConfirmationStatus(long aptNum, long confirmDefNum, string commaListOfExcludedDefNums) { Appointment aptCur = Appointments.GetOneApt(aptNum); if (aptCur == null) { return(false); } List <long> preventChangeFrom = commaListOfExcludedDefNums.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(long.Parse).ToList(); if (preventChangeFrom.Contains(aptCur.Confirmed)) //This appointment is in a confirmation state that can no longer be updated. { return(false); } //Keep the update small. Appointment aptOld = aptCur.Copy(); aptCur.Confirmed = confirmDefNum; Appointments.Update(aptCur, aptOld); //Appointments S-Class handles Signalods SecurityLogs.MakeLogEntry(Permissions.ApptConfirmStatusEdit, aptCur.PatNum, "Appointment confirmation status changed from " + Defs.GetName(DefCat.ApptConfirmed, aptOld.Confirmed) + " to " + Defs.GetName(DefCat.ApptConfirmed, aptCur.Confirmed) + " due to an eConfirmation.", aptCur.AptNum, LogSources.AutoConfirmations, aptOld.DateTStamp); return(true); }
///<summary></summary> public FormApptEditOld(Appointment aptCur){ InitializeComponent();// Required for Windows Form Designer support tbTime.CellClicked += new OpenDental.ContrTable.CellEventHandler(tbTime_CellClicked); tbProc.CellClicked += new OpenDental.ContrTable.CellEventHandler(tbProc_CellClicked); tbCommlog.CellDoubleClicked+=new OpenDental.ContrTable.CellEventHandler(tbCommlog_CellDoubleClicked); Lan.F(this); AptCur=aptCur; AptOld=aptCur.Copy(); }