Exemple #1
0
        ///<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)));
        }
Exemple #2
0
        ///<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);
        }
Exemple #3
0
		///<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();
		}