private void butAdd_Click(object sender, EventArgs e) { FormProcCodes FormP = new FormProcCodes(); FormP.IsSelectionMode = true; FormP.ShowDialog(); if (FormP.DialogResult != DialogResult.OK) { return; } Procedure ProcCur; ProcCur = new Procedure(); //going to be an insert, so no need to set Procedures.CurOld ProcCur.CodeNum = FormP.SelectedCodeNum; //procnum ProcCur.PatNum = AptCur.PatNum; //aptnum //proccode //ProcCur.CodeNum=ProcedureCodes.GetProcCode(ProcCur.OldCode).CodeNum;//already set ProcCur.ProcDate = DateTime.Today; ProcCur.DateTP = ProcCur.ProcDate; //int totUnits = ProcCur.BaseUnits + ProcCur.UnitQty; Family fam = Patients.GetFamily(AptCur.PatNum); Patient pat = fam.GetPatient(AptCur.PatNum); List <InsSub> subList = InsSubs.RefreshForFam(fam); List <InsPlan> planList = InsPlans.RefreshForSubList(subList); List <PatPlan> patPlanList = PatPlans.Refresh(pat.PatNum); ProcedureCode procCodeCur = ProcedureCodes.GetProcCode(ProcCur.CodeNum); ProcCur.MedicalCode = procCodeCur.MedicalCode; if (procCodeCur.IsHygiene && pat.SecProv != 0) { ProcCur.ProvNum = pat.SecProv; } else { ProcCur.ProvNum = pat.PriProv; } ProcCur.ClinicNum = pat.ClinicNum; ProcCur.ProcFee = Procedures.GetProcFee(pat, patPlanList, subList, planList, ProcCur.CodeNum, ProcCur.ProvNum, ProcCur.ClinicNum, ProcCur.MedicalCode); //surf //ToothNum //Procedures.Cur.ToothRange //ProcCur.NoBillIns=ProcedureCodes.GetProcCode(ProcCur.ProcCode).NoBillIns; ProcCur.Priority = 0; ProcCur.ProcStatus = ProcStat.TP; ProcCur.Note = ""; //dx //nextaptnum ProcCur.DateEntryC = DateTime.Now; ProcCur.BaseUnits = procCodeCur.BaseUnits; ProcCur.SiteNum = pat.SiteNum; ProcCur.RevCode = procCodeCur.RevenueCodeDefault; ProcCur.DiagnosticCode = PrefC.GetString(PrefName.ICD9DefaultForNewProcs); ProcCur.PlaceService = (PlaceOfService)PrefC.GetInt(PrefName.DefaultProcedurePlaceService); //Default proc place of service for the Practice is used. if (Userods.IsUserCpoe(Security.CurUser)) { //This procedure is considered CPOE because the provider is the one that has added it. ProcCur.IsCpoe = true; } Procedures.Insert(ProcCur); List <Benefit> benefitList = Benefits.Refresh(patPlanList, subList); Procedures.ComputeEstimates(ProcCur, pat.PatNum, new List <ClaimProc>(), true, planList, patPlanList, benefitList, pat.Age, subList); FormProcEdit FormPE = new FormProcEdit(ProcCur, pat.Copy(), fam); FormPE.IsNew = true; FormPE.ShowDialog(); if (FormPE.DialogResult == DialogResult.Cancel) { //any created claimprocs are automatically deleted from within procEdit window. try{ Procedures.Delete(ProcCur.ProcNum); //also deletes the claimprocs } catch (Exception ex) { MessageBox.Show(ex.Message); } } else if (Programs.UsingOrion) { //No need to synch with Orion mode. } else { //Default is set to TP, so Synch is usually not needed. if (ProcCur.ProcStatus == ProcStat.C || ProcCur.ProcStatus == ProcStat.EC || ProcCur.ProcStatus == ProcStat.EO) { Recalls.Synch(pat.PatNum); } } FillGrid(); }