private void butApptProcs_Click(object sender, EventArgs e) { if (!MsgBox.Show(this, MsgBoxButtons.OKCancel, "This will fix procedure descriptions in the Appt module that aren't correctly showing tooth numbers.\r\nContinue?")) { return; } Cursor = Cursors.WaitCursor; //The ApptProcDescript region is also in FormProcEdit.SaveAndClose() and FormApptEdit.UpdateToDB() Make any changes there as well. #region ApptProcDescript List <long> aptNums = new List <long>(); Appointment[] aptList = Appointments.GetForPeriod(DateTime.Now.Date.AddMonths(-6), DateTime.MaxValue.AddDays(-10)); for (int i = 0; i < aptList.Length; i++) { aptNums.Add(aptList[i].AptNum); } for (int i = 0; i < aptList.Length; i++) { //This gets the list of procedures in the correct order. DataTable procTable = Appointments.GetProcTable(aptList[i].PatNum.ToString(), aptList[i].AptNum.ToString(), ((int)aptList[i].AptStatus).ToString(), aptList[i].AptDateTime.ToString()); Appointment newApt = aptList[i].Clone(); newApt.ProcDescript = ""; newApt.ProcsColored = ""; int count = 0; for (int j = 0; j < procTable.Rows.Count; j++) { if (procTable.Rows[j]["attached"].ToString() != "1") { continue; } string procDescOne = ""; string procCode = procTable.Rows[j]["ProcCode"].ToString(); if (count > 0) { newApt.ProcDescript += ", "; } switch (procTable.Rows[j]["TreatArea"].ToString()) { case "1": //TreatmentArea.Surf: procDescOne += "#" + Tooth.GetToothLabel(procTable.Rows[j]["ToothNum"].ToString()) + "-" + procTable.Rows[j]["Surf"].ToString() + "-"; //""#12-MOD-" break; case "2": //TreatmentArea.Tooth: procDescOne += "#" + Tooth.GetToothLabel(procTable.Rows[j]["ToothNum"].ToString()) + "-"; //"#12-" break; default: //area 3 or 0 (mouth) break; case "4": //TreatmentArea.Quad: procDescOne += procTable.Rows[j]["Surf"].ToString() + "-"; //"UL-" break; case "5": //TreatmentArea.Sextant: procDescOne += "S" + procTable.Rows[j]["Surf"].ToString() + "-"; //"S2-" break; case "6": //TreatmentArea.Arch: procDescOne += procTable.Rows[j]["Surf"].ToString() + "-"; //"U-" break; case "7": //TreatmentArea.ToothRange: //strLine+=table.Rows[j][13].ToString()+" ";//don't show range break; } procDescOne += procTable.Rows[j]["AbbrDesc"].ToString(); newApt.ProcDescript += procDescOne; //Color and previous date are determined by ProcApptColor object ProcApptColor pac = ProcApptColors.GetMatch(procCode); System.Drawing.Color pColor = System.Drawing.Color.Black; string prevDateString = ""; if (pac != null) { pColor = pac.ColorText; if (pac.ShowPreviousDate) { prevDateString = Procedures.GetRecentProcDateString(newApt.PatNum, newApt.AptDateTime, pac.CodeRange); if (prevDateString != "") { prevDateString = " (" + prevDateString + ")"; } } } newApt.ProcsColored += "<span color=\"" + pColor.ToArgb().ToString() + "\">" + procDescOne + prevDateString + "</span>"; count++; } Appointments.Update(newApt, aptList[i]); } #endregion Cursor = Cursors.Default; MsgBox.Show(this, "Done. Please refresh Appt module to see the changes."); }