Exemplo n.º 1
0
        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 FormDatabaseMaintenance.butApptProcs_Click()  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);
            }
            List <Procedure> procsMultApts = Procedures.GetProcsMultApts(aptNums);
            for (int i = 0; i < aptList.Length; i++)
            {
                Appointment newApt = aptList[i].Clone();
                newApt.ProcDescript = "";
                Procedure[] procsForOne  = Procedures.GetProcsOneApt(aptList[i].AptNum, procsMultApts);
                string      procDescript = "";
                for (int j = 0; j < procsForOne.Length; j++)
                {
                    ProcedureCode procCode = ProcedureCodes.GetProcCodeFromDb(procsForOne[j].CodeNum);
                    if (j > 0)
                    {
                        procDescript += ", ";
                    }
                    switch (procCode.TreatArea)
                    {
                    case TreatmentArea.Surf:
                        procDescript += "#" + Tooth.GetToothLabel(procsForOne[j].ToothNum) + "-"
                                        + procsForOne[j].Surf + "-";             //""#12-MOD-"
                        break;

                    case TreatmentArea.Tooth:
                        procDescript += "#" + Tooth.GetToothLabel(procsForOne[j].ToothNum) + "-";                          //"#12-"
                        break;

                    case TreatmentArea.Quad:
                        procDescript += procsForOne[j].Surf + "-";                            //"UL-"
                        break;

                    case TreatmentArea.Sextant:
                        procDescript += "S" + procsForOne[j].Surf + "-";                          //"S2-"
                        break;

                    case TreatmentArea.Arch:
                        procDescript += procsForOne[j].Surf + "-";                            //"U-"
                        break;

                    case TreatmentArea.ToothRange:
                        break;

                    default:                            //area 3 or 0 (mouth)
                        break;
                    }
                    procDescript += procCode.AbbrDesc;
                }
                newApt.ProcDescript = procDescript;
                Appointments.Update(newApt, aptList[i]);
            }
            #endregion
            Cursor = Cursors.Default;
            MsgBox.Show(this, "Done. Please refresh Appt module to see the changes.");
        }