private void CreateIndividual() { ReportComplex report = new ReportComplex(true, false); bool isAnyClinicMedical = false; //Used to determine whether or not to display 'Tooth' column if (AnyClinicSelectedIsMedical()) { isAnyClinicMedical = true; } DataTable table = new DataTable(); try { table = RpProcSheet.GetIndividualTable(date1.SelectionStart, date2.SelectionStart, _listProvNums, _listClinicNums, textCode.Text, isAnyClinicMedical, checkAllProv.Checked, PrefC.HasClinicsEnabled); } catch (Exception ex) { report.CloseProgressBar(); string text = Lan.g(this, "Error getting report data:") + " " + ex.Message + "\r\n\r\n" + ex.StackTrace; MsgBoxCopyPaste msgBox = new MsgBoxCopyPaste(text); msgBox.ShowDialog(); return; } if (table.Columns.Contains("ToothNum")) { foreach (DataRow row in table.Rows) { row["ToothNum"] = Tooth.GetToothLabel(row["ToothNum"].ToString()); } } string subtitleProvs = ConstructProviderSubtitle(); string subtitleClinics = ConstructClinicSubtitle(); Font font = new Font("Tahoma", 9); Font fontBold = new Font("Tahoma", 9, FontStyle.Bold); Font fontTitle = new Font("Tahoma", 17, FontStyle.Bold); Font fontSubTitle = new Font("Tahoma", 10, FontStyle.Bold); report.ReportName = Lan.g(this, "Daily Procedures"); report.AddTitle("Title", Lan.g(this, "Daily Procedures"), fontTitle); report.AddSubTitle("Practice Title", PrefC.GetString(PrefName.PracticeTitle), fontSubTitle); report.AddSubTitle("Dates of Report", date1.SelectionStart.ToString("d") + " - " + date2.SelectionStart.ToString("d"), fontSubTitle); report.AddSubTitle("Providers", subtitleProvs, fontSubTitle); if (PrefC.HasClinicsEnabled) { report.AddSubTitle("Clinics", subtitleClinics, fontSubTitle); } QueryObject query = report.AddQuery(table, Lan.g(this, "Date") + ": " + DateTimeOD.Today.ToString("d")); query.AddColumn(Lan.g(this, "Date"), 90, FieldValueType.Date, font); query.GetColumnDetail(Lan.g(this, "Date")).StringFormat = "d"; query.AddColumn(Lan.g(this, "Patient Name"), 150, FieldValueType.String, font); if (isAnyClinicMedical) { query.AddColumn(Lan.g(this, "Code"), 140, FieldValueType.String, font); } else { query.AddColumn(Lan.g(this, "Code"), 70, FieldValueType.String, font); query.AddColumn("Tooth", 40, FieldValueType.String, font); } query.AddColumn(Lan.g(this, "Description"), 140, FieldValueType.String, font); query.AddColumn(Lan.g(this, "Provider"), 80, FieldValueType.String, font); if (PrefC.HasClinicsEnabled) { query.AddColumn(Lan.g(this, "Clinic"), 100, FieldValueType.String, font); } query.AddColumn(Lan.g(this, "Fee"), 80, FieldValueType.Number, font); report.AddPageNum(font); if (!report.SubmitQueries()) { return; } FormReportComplex FormR = new FormReportComplex(report); FormR.ShowDialog(); DialogResult = DialogResult.OK; }
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."); }
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."); }