Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGDocument.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGDocument.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGDocument.cs	(revision 1168)
@@ -238,5 +238,5 @@
                     sWalkIn = r["WALKIN"].ToString();
                     bWalkIn = (sWalkIn == "1") ? true : false;
-                    int? RadiologyExamIEN = r["RADIOLOGY_EXAM"] as Int32?;
+                    int? RadiologyExamIEN = r["RADIOLOGY_EXAM"] as Int32?; //new in v 1.6 - Get Radiology Exam
 
                     Patient pt = new Patient()
@@ -1018,11 +1018,5 @@
                 if (sErrorID == "-1")
                     pAppt.Note = sNote;
-
-                if (this.m_appointments.AppointmentTable.ContainsKey(nApptID))
-                {
-                    bool bRet = RefreshAvailabilitySchedule();
-                    UpdateAllViews();
                 }
-            }
             catch (Exception ex)
             {
@@ -1081,5 +1075,4 @@
         }
 
-        //TODO: MUST SEE IF RADIOLOGY STUFF WORKS WITH THIS ***
         public string AutoRebook(CGAppointment a, int nSearchType, int nMinimumDays, int nMaximumDays, out CGAppointment aRebook)
         {
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGDocumentManager.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGDocumentManager.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGDocumentManager.cs	(revision 1168)
@@ -400,5 +400,5 @@
                 catch (System.Net.Sockets.SocketException)
                 {
-                    MessageBox.Show("Cannot connect to VistA. Network Error");
+                    m_ds.RemoteMsgBox("Can't connect to server! Network Error");
                     return false;
                 }
@@ -438,9 +438,9 @@
                 catch (System.Net.Sockets.SocketException)
                 {
-                    MessageBox.Show("Cannot connect to VistA. Network Error");
+                    m_ds.RemoteMsgBox("Cannot connect to VistA. Network Error");
                 }
                 catch (BMXNetException ex)
                 {
-                    if (MessageBox.Show("Unable to connect to VistA.  " + ex.Message, "Clinical Scheduling", MessageBoxButtons.RetryCancel) == DialogResult.Retry)
+                    if (m_ds.RemoteMsgBox("Unable to connect to VistA.  " + ex.Message, "Clinical Scheduling", MessageBoxButtons.RetryCancel) == DialogResult.Retry)
                     {
                         bRetry = true;
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGView.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGView.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CGView.cs	(revision 1168)
@@ -94,10 +94,10 @@
 		private System.Windows.Forms.MenuItem sepApptMenu2;
 		private System.Windows.Forms.MenuItem ctxCalGridWalkin;
-		private System.Windows.Forms.MenuItem menuItem2;
-		private System.Windows.Forms.MenuItem menuItem9;
+		private System.Windows.Forms.MenuItem ctxCalGridSep1;
+		private System.Windows.Forms.MenuItem ctxCalGridSep2;
 		private System.Windows.Forms.MenuItem mnuOpenMultipleSchedules;
 		private System.Windows.Forms.MenuItem mnuDisplayWalkIns;
         private System.Windows.Forms.MenuItem mnuRPMSDivision;
-        private MenuItem menuItem10;
+        private MenuItem ctxCalGridSep3;
         private MenuItem ctxCalGridReprintApptSlip;
         private MenuItem ctxCalGridUndoCheckin;
@@ -257,5 +257,4 @@
             this.lblResource = new System.Windows.Forms.Label();
             this.panelCenter = new System.Windows.Forms.Panel();
-            this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
             this.ctxCalendarGrid = new System.Windows.Forms.ContextMenu();
             this.ctxCalGridAdd = new System.Windows.Forms.MenuItem();
@@ -266,10 +265,10 @@
             this.ctxCalGridCheckIn = new System.Windows.Forms.MenuItem();
             this.ctxCalGridUndoCheckin = new System.Windows.Forms.MenuItem();
-            this.menuItem2 = new System.Windows.Forms.MenuItem();
+            this.ctxCalGridSep1 = new System.Windows.Forms.MenuItem();
             this.ctxCalGridNoShow = new System.Windows.Forms.MenuItem();
             this.ctxCalGridNoShowUndo = new System.Windows.Forms.MenuItem();
-            this.menuItem9 = new System.Windows.Forms.MenuItem();
+            this.ctxCalGridSep2 = new System.Windows.Forms.MenuItem();
             this.ctxCalGridWalkin = new System.Windows.Forms.MenuItem();
-            this.menuItem10 = new System.Windows.Forms.MenuItem();
+            this.ctxCalGridSep3 = new System.Windows.Forms.MenuItem();
             this.ctxCalGridReprintApptSlip = new System.Windows.Forms.MenuItem();
             this.panelBottom = new System.Windows.Forms.Panel();
@@ -277,4 +276,5 @@
             this.splitter1 = new System.Windows.Forms.Splitter();
             this.splitter2 = new System.Windows.Forms.Splitter();
+            this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
             this.panelRight.SuspendLayout();
             this.panelClip.SuspendLayout();
@@ -384,5 +384,5 @@
             // 
             this.mnuPrintReminderLetters.Index = 10;
-            this.mnuPrintReminderLetters.Shortcut = System.Windows.Forms.Shortcut.CtrlI;
+            this.mnuPrintReminderLetters.Shortcut = System.Windows.Forms.Shortcut.CtrlE;
             this.mnuPrintReminderLetters.Text = "Print Rem&inder Letters";
             this.mnuPrintReminderLetters.Click += new System.EventHandler(this.mnuPrintReminderLetters_Click);
@@ -462,6 +462,7 @@
             // 
             this.mnuMkRadAppt.Index = 2;
-            this.mnuMkRadAppt.Shortcut = System.Windows.Forms.Shortcut.Ins;
+            this.mnuMkRadAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlIns;
             this.mnuMkRadAppt.Text = "Make Radiology Appointment";
+            this.mnuMkRadAppt.Click += new System.EventHandler(this.mnuMkRadAppt_Click);
             // 
             // mnuEditAppointment
@@ -482,6 +483,7 @@
             // 
             this.mnuCancelRadAppt.Index = 5;
-            this.mnuCancelRadAppt.Shortcut = System.Windows.Forms.Shortcut.Del;
+            this.mnuCancelRadAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlDel;
             this.mnuCancelRadAppt.Text = "Cancel Radiology Appointment";
+            this.mnuCancelRadAppt.Click += new System.EventHandler(this.mnuCancelRadAppt_Click);
             // 
             // sepApptMenu1
@@ -493,4 +495,5 @@
             // 
             this.mnuNoShow.Index = 7;
+            this.mnuNoShow.Shortcut = System.Windows.Forms.Shortcut.CtrlN;
             this.mnuNoShow.Text = "Mark as No Sho&w";
             this.mnuNoShow.Click += new System.EventHandler(this.mnuNoShow_Click);
@@ -499,4 +502,5 @@
             // 
             this.mnuNoShowUndo.Index = 8;
+            this.mnuNoShowUndo.Shortcut = System.Windows.Forms.Shortcut.CtrlShiftN;
             this.mnuNoShowUndo.Text = "&Undo No Show";
             this.mnuNoShowUndo.Click += new System.EventHandler(this.mnuNoShowUndo_Click);
@@ -510,4 +514,5 @@
             // 
             this.mnuCheckIn.Index = 10;
+            this.mnuCheckIn.Shortcut = System.Windows.Forms.Shortcut.CtrlI;
             this.mnuCheckIn.Text = "Check &In Patient";
             this.mnuCheckIn.Click += new System.EventHandler(this.mnuCheckIn_Click);
@@ -516,5 +521,7 @@
             // 
             this.mnuUndoCheckin.Index = 11;
+            this.mnuUndoCheckin.Shortcut = System.Windows.Forms.Shortcut.CtrlShiftI;
             this.mnuUndoCheckin.Text = "Undo Checkin";
+            this.mnuUndoCheckin.Click += new System.EventHandler(this.mnuUndoCheckin_Click);
             // 
             // sepApptMenu3
@@ -527,5 +534,5 @@
             this.mnuFindAppt.Index = 13;
             this.mnuFindAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlF;
-            this.mnuFindAppt.Text = "&Find Available Appointment";
+            this.mnuFindAppt.Text = "&Find Empty Slots";
             this.mnuFindAppt.Click += new System.EventHandler(this.mnuFindAppt_Click);
             // 
@@ -533,4 +540,5 @@
             // 
             this.mnuCopyAppointment.Index = 14;
+            this.mnuCopyAppointment.Shortcut = System.Windows.Forms.Shortcut.CtrlC;
             this.mnuCopyAppointment.Text = "&Copy  Appointment to Clipboard";
             this.mnuCopyAppointment.Click += new System.EventHandler(this.mnuCopyAppointment_Click);
@@ -539,4 +547,5 @@
             // 
             this.mnuViewPatientAppts.Index = 15;
+            this.mnuViewPatientAppts.Shortcut = System.Windows.Forms.Shortcut.CtrlShiftZ;
             this.mnuViewPatientAppts.Text = "&View Patient Appointments";
             this.mnuViewPatientAppts.Click += new System.EventHandler(this.mnuViewPatientAppts_Click);
@@ -545,5 +554,7 @@
             // 
             this.mnuReprintApptSlip.Index = 16;
+            this.mnuReprintApptSlip.Shortcut = System.Windows.Forms.Shortcut.CtrlShiftP;
             this.mnuReprintApptSlip.Text = "Reprint Appointment Slip";
+            this.mnuReprintApptSlip.Click += new System.EventHandler(this.mnuReprintApptSlip_Click);
             // 
             // mnuCalendar
@@ -701,5 +712,5 @@
             this.tvSchedules.Location = new System.Drawing.Point(0, 0);
             this.tvSchedules.Name = "tvSchedules";
-            this.tvSchedules.Size = new System.Drawing.Size(128, 396);
+            this.tvSchedules.Size = new System.Drawing.Size(128, 392);
             this.tvSchedules.Sorted = true;
             this.tvSchedules.TabIndex = 1;
@@ -743,5 +754,5 @@
             // 
             this.ctxFindAppt.Index = 3;
-            this.ctxFindAppt.Text = "&Find Available Appointment";
+            this.ctxFindAppt.Text = "&Find Empty Slots";
             this.ctxFindAppt.Click += new System.EventHandler(this.ctxFindAppt_Click);
             // 
@@ -770,5 +781,5 @@
             this.panelRight.Location = new System.Drawing.Point(996, 0);
             this.panelRight.Name = "panelRight";
-            this.panelRight.Size = new System.Drawing.Size(128, 396);
+            this.panelRight.Size = new System.Drawing.Size(128, 392);
             this.panelRight.TabIndex = 3;
             this.panelRight.Visible = false;
@@ -866,6 +877,141 @@
             this.panelCenter.Location = new System.Drawing.Point(136, 24);
             this.panelCenter.Name = "panelCenter";
-            this.panelCenter.Size = new System.Drawing.Size(857, 348);
+            this.panelCenter.Size = new System.Drawing.Size(857, 344);
             this.panelCenter.TabIndex = 7;
+            // 
+            // ctxCalendarGrid
+            // 
+            this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
+            this.ctxCalGridAdd,
+            this.ctxCalGridMkRadAppt,
+            this.ctxCalGridEdit,
+            this.ctxCalGridDelete,
+            this.ctxCalGridCancelRadAppt,
+            this.ctxCalGridCheckIn,
+            this.ctxCalGridUndoCheckin,
+            this.ctxCalGridSep1,
+            this.ctxCalGridNoShow,
+            this.ctxCalGridNoShowUndo,
+            this.ctxCalGridSep2,
+            this.ctxCalGridWalkin,
+            this.ctxCalGridSep3,
+            this.ctxCalGridReprintApptSlip});
+            this.ctxCalendarGrid.Popup += new System.EventHandler(this.ctxCalendarGrid_Popup);
+            // 
+            // ctxCalGridAdd
+            // 
+            this.ctxCalGridAdd.Index = 0;
+            this.ctxCalGridAdd.Text = "Add Appointment";
+            this.ctxCalGridAdd.Click += new System.EventHandler(this.ctxCalGridAdd_Click);
+            // 
+            // ctxCalGridMkRadAppt
+            // 
+            this.ctxCalGridMkRadAppt.Index = 1;
+            this.ctxCalGridMkRadAppt.Text = "Make Radiology Appointment";
+            this.ctxCalGridMkRadAppt.Click += new System.EventHandler(this.ctxCalGridMkRadAppt_Click);
+            // 
+            // ctxCalGridEdit
+            // 
+            this.ctxCalGridEdit.Index = 2;
+            this.ctxCalGridEdit.Text = "Edit Appointment";
+            this.ctxCalGridEdit.Click += new System.EventHandler(this.ctxCalGridEdit_Click);
+            // 
+            // ctxCalGridDelete
+            // 
+            this.ctxCalGridDelete.Index = 3;
+            this.ctxCalGridDelete.Text = "Cancel Appointment";
+            this.ctxCalGridDelete.Click += new System.EventHandler(this.ctxCalGridDelete_Click);
+            // 
+            // ctxCalGridCancelRadAppt
+            // 
+            this.ctxCalGridCancelRadAppt.Index = 4;
+            this.ctxCalGridCancelRadAppt.Text = "Cancel Radiology Appointment";
+            this.ctxCalGridCancelRadAppt.Click += new System.EventHandler(this.ctxCalGridCancelRadAppt_Click);
+            // 
+            // ctxCalGridCheckIn
+            // 
+            this.ctxCalGridCheckIn.Index = 5;
+            this.ctxCalGridCheckIn.Text = "Check In Patient";
+            this.ctxCalGridCheckIn.Click += new System.EventHandler(this.ctxCalGridCheckIn_Click);
+            // 
+            // ctxCalGridUndoCheckin
+            // 
+            this.ctxCalGridUndoCheckin.Index = 6;
+            this.ctxCalGridUndoCheckin.Text = "&Undo Check In";
+            this.ctxCalGridUndoCheckin.Click += new System.EventHandler(this.ctxCalGridUndoCheckin_Click);
+            // 
+            // ctxCalGridSep1
+            // 
+            this.ctxCalGridSep1.Index = 7;
+            this.ctxCalGridSep1.Text = "-";
+            // 
+            // ctxCalGridNoShow
+            // 
+            this.ctxCalGridNoShow.Index = 8;
+            this.ctxCalGridNoShow.Text = "Mark as No Show";
+            this.ctxCalGridNoShow.Click += new System.EventHandler(this.ctxCalGridNoShow_Click);
+            // 
+            // ctxCalGridNoShowUndo
+            // 
+            this.ctxCalGridNoShowUndo.Index = 9;
+            this.ctxCalGridNoShowUndo.Text = "Undo NoShow";
+            this.ctxCalGridNoShowUndo.Click += new System.EventHandler(this.ctxCalGridNoShowUndo_Click);
+            // 
+            // ctxCalGridSep2
+            // 
+            this.ctxCalGridSep2.Index = 10;
+            this.ctxCalGridSep2.Text = "-";
+            // 
+            // ctxCalGridWalkin
+            // 
+            this.ctxCalGridWalkin.Index = 11;
+            this.ctxCalGridWalkin.Text = "Create Wal&k-In Appointment";
+            this.ctxCalGridWalkin.Click += new System.EventHandler(this.ctxCalGridWalkin_Click);
+            // 
+            // ctxCalGridSep3
+            // 
+            this.ctxCalGridSep3.Index = 12;
+            this.ctxCalGridSep3.Text = "-";
+            // 
+            // ctxCalGridReprintApptSlip
+            // 
+            this.ctxCalGridReprintApptSlip.Index = 13;
+            this.ctxCalGridReprintApptSlip.Text = "&Reprint Appointment Slip";
+            this.ctxCalGridReprintApptSlip.Click += new System.EventHandler(this.ctxCalGridReprintApptSlip_Click);
+            // 
+            // panelBottom
+            // 
+            this.panelBottom.Controls.Add(this.statusBar1);
+            this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.panelBottom.Location = new System.Drawing.Point(136, 368);
+            this.panelBottom.Name = "panelBottom";
+            this.panelBottom.Size = new System.Drawing.Size(857, 24);
+            this.panelBottom.TabIndex = 8;
+            // 
+            // statusBar1
+            // 
+            this.statusBar1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.statusBar1.Location = new System.Drawing.Point(0, 0);
+            this.statusBar1.Name = "statusBar1";
+            this.statusBar1.Size = new System.Drawing.Size(857, 24);
+            this.statusBar1.SizingGrip = false;
+            this.statusBar1.TabIndex = 0;
+            // 
+            // splitter1
+            // 
+            this.splitter1.Location = new System.Drawing.Point(128, 24);
+            this.splitter1.Name = "splitter1";
+            this.splitter1.Size = new System.Drawing.Size(8, 368);
+            this.splitter1.TabIndex = 9;
+            this.splitter1.TabStop = false;
+            // 
+            // splitter2
+            // 
+            this.splitter2.Dock = System.Windows.Forms.DockStyle.Right;
+            this.splitter2.Location = new System.Drawing.Point(993, 24);
+            this.splitter2.Name = "splitter2";
+            this.splitter2.Size = new System.Drawing.Size(3, 368);
+            this.splitter2.TabIndex = 10;
+            this.splitter2.TabStop = false;
             // 
             // calendarGrid1
@@ -888,5 +1034,5 @@
             this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources")));
             this.calendarGrid1.SelectedAppointment = 0;
-            this.calendarGrid1.Size = new System.Drawing.Size(857, 348);
+            this.calendarGrid1.Size = new System.Drawing.Size(857, 344);
             this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
             this.calendarGrid1.TabIndex = 0;
@@ -898,143 +1044,8 @@
             this.calendarGrid1.MouseEnter += new System.EventHandler(this.calendarGrid1_MouseEnter);
             // 
-            // ctxCalendarGrid
-            // 
-            this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
-            this.ctxCalGridAdd,
-            this.ctxCalGridMkRadAppt,
-            this.ctxCalGridEdit,
-            this.ctxCalGridDelete,
-            this.ctxCalGridCancelRadAppt,
-            this.ctxCalGridCheckIn,
-            this.ctxCalGridUndoCheckin,
-            this.menuItem2,
-            this.ctxCalGridNoShow,
-            this.ctxCalGridNoShowUndo,
-            this.menuItem9,
-            this.ctxCalGridWalkin,
-            this.menuItem10,
-            this.ctxCalGridReprintApptSlip});
-            this.ctxCalendarGrid.Popup += new System.EventHandler(this.ctxCalendarGrid_Popup);
-            // 
-            // ctxCalGridAdd
-            // 
-            this.ctxCalGridAdd.Index = 0;
-            this.ctxCalGridAdd.Text = "Add Appointment";
-            this.ctxCalGridAdd.Click += new System.EventHandler(this.ctxCalGridAdd_Click);
-            // 
-            // ctxCalGridMkRadAppt
-            // 
-            this.ctxCalGridMkRadAppt.Index = 1;
-            this.ctxCalGridMkRadAppt.Text = "Make Radiology Appointment";
-            this.ctxCalGridMkRadAppt.Click += new System.EventHandler(this.ctxCalGridMkRadAppt_Click);
-            // 
-            // ctxCalGridEdit
-            // 
-            this.ctxCalGridEdit.Index = 2;
-            this.ctxCalGridEdit.Text = "Edit Appointment";
-            this.ctxCalGridEdit.Click += new System.EventHandler(this.ctxCalGridEdit_Click);
-            // 
-            // ctxCalGridDelete
-            // 
-            this.ctxCalGridDelete.Index = 3;
-            this.ctxCalGridDelete.Text = "Cancel Appointment";
-            this.ctxCalGridDelete.Click += new System.EventHandler(this.ctxCalGridDelete_Click);
-            // 
-            // ctxCalGridCancelRadAppt
-            // 
-            this.ctxCalGridCancelRadAppt.Index = 4;
-            this.ctxCalGridCancelRadAppt.Text = "Cancel Radiology Appointment";
-            this.ctxCalGridCancelRadAppt.Click += new System.EventHandler(this.ctxCalGridCancelRadAppt_Click);
-            // 
-            // ctxCalGridCheckIn
-            // 
-            this.ctxCalGridCheckIn.Index = 5;
-            this.ctxCalGridCheckIn.Text = "Check In Patient";
-            this.ctxCalGridCheckIn.Click += new System.EventHandler(this.ctxCalGridCheckIn_Click);
-            // 
-            // ctxCalGridUndoCheckin
-            // 
-            this.ctxCalGridUndoCheckin.Index = 6;
-            this.ctxCalGridUndoCheckin.Text = "&Undo Check In";
-            this.ctxCalGridUndoCheckin.Click += new System.EventHandler(this.ctxCalGridUndoCheckin_Click);
-            // 
-            // menuItem2
-            // 
-            this.menuItem2.Index = 7;
-            this.menuItem2.Text = "-";
-            // 
-            // ctxCalGridNoShow
-            // 
-            this.ctxCalGridNoShow.Index = 8;
-            this.ctxCalGridNoShow.Text = "Mark as No Show";
-            this.ctxCalGridNoShow.Click += new System.EventHandler(this.ctxCalGridNoShow_Click);
-            // 
-            // ctxCalGridNoShowUndo
-            // 
-            this.ctxCalGridNoShowUndo.Index = 9;
-            this.ctxCalGridNoShowUndo.Text = "Undo NoShow";
-            this.ctxCalGridNoShowUndo.Click += new System.EventHandler(this.ctxCalGridNoShowUndo_Click);
-            // 
-            // menuItem9
-            // 
-            this.menuItem9.Index = 10;
-            this.menuItem9.Text = "-";
-            // 
-            // ctxCalGridWalkin
-            // 
-            this.ctxCalGridWalkin.Index = 11;
-            this.ctxCalGridWalkin.Text = "Create Wal&k-In Appointment";
-            this.ctxCalGridWalkin.Click += new System.EventHandler(this.ctxCalGridWalkin_Click);
-            // 
-            // menuItem10
-            // 
-            this.menuItem10.Index = 12;
-            this.menuItem10.Text = "-";
-            // 
-            // ctxCalGridReprintApptSlip
-            // 
-            this.ctxCalGridReprintApptSlip.Index = 13;
-            this.ctxCalGridReprintApptSlip.Text = "&Reprint Appointment Slip";
-            this.ctxCalGridReprintApptSlip.Click += new System.EventHandler(this.ctxCalGridReprintApptSlip_Click);
-            // 
-            // panelBottom
-            // 
-            this.panelBottom.Controls.Add(this.statusBar1);
-            this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
-            this.panelBottom.Location = new System.Drawing.Point(136, 372);
-            this.panelBottom.Name = "panelBottom";
-            this.panelBottom.Size = new System.Drawing.Size(857, 24);
-            this.panelBottom.TabIndex = 8;
-            // 
-            // statusBar1
-            // 
-            this.statusBar1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.statusBar1.Location = new System.Drawing.Point(0, 0);
-            this.statusBar1.Name = "statusBar1";
-            this.statusBar1.Size = new System.Drawing.Size(857, 24);
-            this.statusBar1.SizingGrip = false;
-            this.statusBar1.TabIndex = 0;
-            // 
-            // splitter1
-            // 
-            this.splitter1.Location = new System.Drawing.Point(128, 24);
-            this.splitter1.Name = "splitter1";
-            this.splitter1.Size = new System.Drawing.Size(8, 372);
-            this.splitter1.TabIndex = 9;
-            this.splitter1.TabStop = false;
-            // 
-            // splitter2
-            // 
-            this.splitter2.Dock = System.Windows.Forms.DockStyle.Right;
-            this.splitter2.Location = new System.Drawing.Point(993, 24);
-            this.splitter2.Name = "splitter2";
-            this.splitter2.Size = new System.Drawing.Size(3, 372);
-            this.splitter2.TabIndex = 10;
-            this.splitter2.TabStop = false;
-            // 
             // CGView
             // 
             this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
-            this.ClientSize = new System.Drawing.Size(1124, 396);
+            this.ClientSize = new System.Drawing.Size(1124, 392);
             this.Controls.Add(this.panelCenter);
             this.Controls.Add(this.panelBottom);
@@ -1238,4 +1249,29 @@
         }
 
+        private void mnuMkRadAppt_Click(object sender, EventArgs e)
+        {
+            AppointmentAddNewRadiology();
+        }
+
+        private void mnuCancelRadAppt_Click(object sender, EventArgs e)
+        {
+            AppointmentDeleteOneRadiology();
+        }
+
+        private void mnuUndoCheckin_Click(object sender, EventArgs e)
+        {
+            AppointmentUndoCheckin();
+        }
+
+        private void mnuReprintApptSlip_Click(object sender, EventArgs e)
+        {
+            int apptID = this.CGrid.SelectedAppointment;
+            if (apptID <= 0) return;
+
+            CGAppointment a = (CGAppointment)this.Appointments.AppointmentTable[apptID];
+
+            PrintAppointmentSlip(a);
+        }
+
 		#endregion AppointmentMenu Handlers
 
@@ -1378,4 +1414,6 @@
                 ctxCalGridWalkin.Visible = false;
                 ctxCalGridUndoCheckin.Visible = false;
+                ctxCalGridSep1.Visible = false;
+                ctxCalGridSep2.Visible = false;
 
                 ctxCalGridMkRadAppt.Visible = true;
@@ -1395,4 +1433,6 @@
                 ctxCalGridWalkin.Visible = true;
                 ctxCalGridUndoCheckin.Visible = true;
+                ctxCalGridSep1.Visible = true;
+                ctxCalGridSep2.Visible = true;
 
                 ctxCalGridMkRadAppt.Visible = false;
@@ -1464,5 +1504,4 @@
         }
 
-        //new code smh
         private void ctxCalGridReprintApptSlip_Click(object sender, EventArgs e)
         {
@@ -1474,5 +1513,4 @@
             PrintAppointmentSlip(a);
         }
-        //end new code
 
 		#endregion ctxCalGridMenu Handlers
@@ -1480,7 +1518,13 @@
 		#region Methods
 
+        /// <summary>
+        /// Decides whether this is a Radiology Resource. Local Helper to decide what menu items to enable/display
+        /// </summary>
+        /// <returns></returns>
         private bool IsThisARadiologyResource()
         {
-            // I don't like this logic!!! but works for now!
+            //I don't like this logic!!! but works for now!
+            //Note: I use banana peeling model below
+
             //If no cell is selected AND no appointment is selected, then it's false
             if (this.calendarGrid1.SelectedRange.Cells.CellCount < 1 && this.calendarGrid1.SelectedAppointment < 1)
@@ -1491,10 +1535,11 @@
             {
                 CGAppointment appt = this.Appointments.AppointmentTable[this.calendarGrid1.SelectedAppointment] as CGAppointment;
-                if (appt.RadiologyExamIEN.HasValue && appt.RadiologyExamIEN.Value > 0) return true;
+                if (appt == null) return false; //appt doesn't exist; old appointment and grid wasn't refreshed yet
+                if (appt.RadiologyExamIEN.HasValue && appt.RadiologyExamIEN.Value > 0) return true; //this appointment is a radiology appointment since it has that member
                 else return false;
 
             }
 
-            //Otherwise, we are forsure dealing with a cell.
+            //Otherwise, we are for sure dealing with a cell.
             //We need to determine if the cell resource is mapped to a Radiology Hospital Location.
             DateTime dStart;
@@ -1512,12 +1557,22 @@
 
             // see if resource is mapped to a Radiology Hospital Location.
-            return (from hl in CGDocumentManager.Current.GlobalDataSet.Tables["HospitalLocation"].AsEnumerable()
-                       where hl.Field<string>("IS_RADIOLOGY_LOCATION")=="1"
+            return IsThisARadiologyResource(sResource);
+        }
+
+        private bool IsThisARadiologyResource(string sResource)
+        {
+            // see if resource is mapped to a Radiology Hospital Location.
+            return (   //select all Hospital Locations which are radiology locations
+                       from hl in CGDocumentManager.Current.GlobalDataSet.Tables["HospitalLocation"].AsEnumerable()
+                       where hl.Field<string>("IS_RADIOLOGY_LOCATION") == "1"
+                       //join this to the resources table using the foreign ID (plain jane relational join)
                        join res in CGDocumentManager.Current.GlobalDataSet.Tables["Resources"].AsEnumerable()
                        on hl.Field<int>("HOSPITAL_LOCATION_ID") equals res.Field<int>("HOSPITAL_LOCATION_ID")
+                       //then filter this down to the resource that we have
                        where res.Field<string>("RESOURCE_NAME") == sResource
+                       //if we have any row left, then it is true.
                        select hl).Any();
         }
-        
+
         private bool EditAppointmentEnabled()
         {
@@ -1980,4 +2035,14 @@
 				this.Document.EditAppointment(a, sNote);
 
+                if (dAppt.PrintAppointmentSlip)
+                {
+                    PrintAppointmentSlip(a);
+                }
+
+                //Redraw appointments
+                this.UpdateArrays();
+
+                //Then tell RPMS that we are updated
+                RaiseRPMSEvent("BSDX SCHEDULE", a.Resource);
 			}
 			catch (Exception ex)
@@ -2130,4 +2195,7 @@
 		}
 
+        /// <summary>
+        /// Delete one Radiology Appointment
+        /// </summary>
         private void AppointmentDeleteOneRadiology()
         {
@@ -2137,4 +2205,7 @@
 
             Debug.Assert(a.RadiologyExamIEN.HasValue);
+
+            //Prior to making expensive db calls, tell the grid nothing is selected anymore so nobody would try to pick it up
+            this.calendarGrid1.SelectedAppointment = 0;
 
             //Cancel Radiology Exam
@@ -2171,5 +2242,5 @@
                 if (a.CheckInTime.Ticks > 0)
                 {
-                    MessageBox.Show("You must Un-checkin the appointment first before removing it.");
+                    MessageBox.Show("You must undo the check-in first before removing the appointment.");
                     return;
                 }
@@ -2183,4 +2254,9 @@
                 return;
             }
+
+            //At this point, the appointment will be deleted...
+            //Remove the Selected Appointment from the grid because we don't anybody to think there's still
+            //an appointment selected while we are still updating the grid
+            this.calendarGrid1.SelectedAppointment = 0;
 
             bool bClinic = dCancel.ClinicCancelled;
@@ -2549,12 +2625,19 @@
 		}
 
+        /// <summary>
+        /// Add a new Radiology Appointment to VISTA (ÒÝÊì as my mom calls it)
+        /// </summary>
         private void AppointmentAddNewRadiology()
         {
-            DateTime dStart, dEnd;
-            string sResource;
-            int nAccessTypeID = 0;
+            DateTime dStart, dEnd;  //return vales for below
+            string sResource;       //ditto
+            int nAccessTypeID = 0;  //ditto
 
             this.calendarGrid1.GetSelectedTime(out dStart, out dEnd, out sResource);
             this.calendarGrid1.GetSelectedType(out nAccessTypeID);
+
+            Debug.Assert(sResource != null);
+            Debug.Assert(dStart > DateTime.MinValue);
+
             //Display a dialog to collect Patient Name
             DPatientLookup dPat = new DPatientLookup();
@@ -2567,10 +2650,13 @@
 
             int DFN = Int32.Parse(dPat.PatientIEN);
+            // Hospital Location IEN
             int hlIEN = (from resource in CGDocumentManager.Current.GlobalDataSet.Tables["Resources"].AsEnumerable()
                          where resource.Field<string>("RESOURCE_NAME") == sResource
                          select resource.Field<int>("HOSPITAL_LOCATION_ID")).FirstOrDefault();
 
+            //Get Radiology Exams from the DB
             List<RadiologyExam> _radExams = CGDocumentManager.Current.DAL.GetRadiologyExamsForPatientinHL(DFN, hlIEN);
 
+            //If none found...
             if (!_radExams.Any())
             {
@@ -2579,12 +2665,15 @@
             }
 
+            //Display a form for the user to select radiology exams.
             DRadExamsSelect _radform = new DRadExamsSelect(_radExams);
 
             if (_radform.ShowDialog() == DialogResult.Cancel) return;
 
+            //Get some return values
             int _examien = _radform.ExamIEN;
             string _procedurename = _radform.ProcedureName;
 
-            CGDocumentManager.Current.DAL.ScheduleRadiologyExam(DFN, _examien);
+            //Save Radiology Exam Schedule Info to Radiology Package
+            CGDocumentManager.Current.DAL.ScheduleRadiologyExam(DFN, _examien, dStart);
 
             //Now create and save the appointment
@@ -2596,5 +2685,17 @@
             appt.AccessTypeID = nAccessTypeID;
             appt.RadiologyExamIEN = _examien;
+            appt.Patient = new Patient
+            {
+                DFN = Convert.ToInt32(dPat.PatientIEN),
+                ID = dPat.PatientPID,
+                Name = dPat.PatientName,
+                HRN = dPat.HealthRecordNumber,
+                DOB = dPat.PatientDOB
+            };
+
             this.Document.CreateAppointment(appt);
+
+            //Print Appointment Slip if requested
+            if (_radform.PrintAppointmentSlip) this.PrintAppointmentSlip(appt);
 
             //Now redraw the grid to display the new appointments
@@ -2919,6 +3020,4 @@
 			this.calendarGrid1.Columns = 5;
             this.Document.m_nColumnCount = 5; // MJL 1/17/2007
-            //this.Document.UpdateAllViews();
-            //TODO: Is there a way to just reuse the existing arrays? How far in the future do they go?
             RequestRefreshGrid();
 		}
@@ -2928,5 +3027,4 @@
 			this.calendarGrid1.Columns = 7;
             this.Document.m_nColumnCount = 7; // MJL 1/17/2007
-            //TODO: Is there a way to just reuse the existing arrays? How far in the future do they go?
             RequestRefreshGrid();
         }
@@ -3122,4 +3220,12 @@
                 {
                     MessageBox.Show("You cannot move a radiology appointment.", "Clinical Scheduling");
+                    return;
+                }
+
+                // added May 5 2011
+                // Can't move an appointment to a radiology resource
+                if (IsThisARadiologyResource(e.Resource))
+                {
+                    MessageBox.Show("You cannot move an appointment to a radiology location.", "Clinical Scheduling");
                     return;
                 }
@@ -3196,4 +3302,6 @@
                 appt.HealthRecordNumber = e.Appointment.HealthRecordNumber;
                 appt.AccessTypeID = e.AccessTypeID;
+                appt.Patient = e.Appointment.Patient;
+
                 this.Document.CreateAppointment(appt);
 
@@ -3751,23 +3859,32 @@
         }
 
-        LoadingSplash _loadingSplash; // Splash object a data point in class
+        //private delegate DialogResult dLoadingSplash(IWin32Window owner);
+        string _tempStatusBartext;
 
         /// <summary>
-        /// Loads a splash that says "Loading"
+        /// Loads a splash that says "Loading" -- removed it april 13 2010
         /// </summary>
         private void LoadSplash()
         {
-            _loadingSplash = new LoadingSplash();
-            _loadingSplash.StartPosition = FormStartPosition.CenterScreen;  //XXX: Don't like this, but will do for now.
-            _loadingSplash.UseWaitCursor = true;    // tell user we are working
-            Thread threadSplash = new Thread(new ThreadStart(() => _loadingSplash.ShowDialog())); // lambda
-            threadSplash.IsBackground = true; //expendable thread -- exit even if still running.
-            threadSplash.Name = "Loading Thread";
-            threadSplash.Start();
+            _tempStatusBartext = this.statusBar1.Text;
+            this.statusBar1.Text = "Refreshing Schedule...";
+            //_loadingSplash = new LoadingSplash();
+            //_loadingSplash.StartPosition = FormStartPosition.CenterScreen;  //XXX: Don't like this, but will do for now.
+            //_loadingSplash.UseWaitCursor = true;    // tell user we are working
+            //_loadingSplash.Show(this);
+            //Thread threadSplash = new Thread(tstart);
+            //threadSplash.IsBackground = true;
+            //threadSplash.Name = "Loading Thread";
+            //threadSplash.Start(this);
+
+            //Thread threadSplash = new Thread(new ThreadStart(() => _loadingSplash.ShowDialog())); // lambda
+            //threadSplash.IsBackground = true; //expendable thread -- exit even if still running.
+            //threadSplash.Name = "Loading Thread";
+            //threadSplash.Start();
         }
 
         private void StopSplash()
         {
-            _loadingSplash.RemoteClose();
+            this.statusBar1.Text = _tempStatusBartext;
         }
 
@@ -3787,4 +3904,5 @@
         }
 
+
     }//End class
 }
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CalendarGrid.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CalendarGrid.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/CalendarGrid.cs	(revision 1168)
@@ -9,4 +9,5 @@
     using System.Runtime.InteropServices;
     using System.Windows.Forms;
+    using System.Linq;
 
     /// <summary>
@@ -125,22 +126,31 @@
             try
             {
+                //calculate each cell's height
                 SizeF ef = g.MeasureString("Test", this.m_fCell);
                 this.m_cellHeight = ((int) ef.Height) + 4;
-                int nColumns = this.m_nColumns;
-                int num2 = 60 / this.m_nTimeScale;
-                int num3 = 24 * num2;
-                nColumns++;
-                num3++;
-                this.m_cellWidth = 600 / nColumns;
+
+                int nColumns = this.m_nColumns; // columns set via property
+                int slotsPerHour = 60 / this.m_nTimeScale; //time scale set via property
+                int slotsPerDay = 24 * slotsPerHour;
+                nColumns++; // add extra column for time display
+                slotsPerDay++; // not sure here why that's don't
+
+                //calculate each cell's height
+                this.m_cellWidth = 600 / nColumns; // base size is 600 pixels
+                // if larger:
                 if (base.ClientRectangle.Width > 600)
                 {
                     this.m_cellWidth = (base.ClientRectangle.Width - this.m_col0Width) / (nColumns - 1);
                 }
+                // if only one column
                 if (this.m_nColumns == 1)
                 {
                     this.m_cellWidth = base.ClientRectangle.Width - this.m_col0Width;
                 }
+                //next line seems to be useless (we don't use X and Y below)
                 g.TranslateTransform((float) base.AutoScrollPosition.X, (float) base.AutoScrollPosition.Y);
-                for (int i = num3; i > -1; i--)
+                
+                //now, build the grid cells
+                for (int i = slotsPerDay; i > -1; i--)
                 {
                     for (int j = 1; j < nColumns; j++)
@@ -233,4 +243,52 @@
         }
 
+        void CalendarGrid_DragOver(object sender, DragEventArgs e)
+        {
+            //Translate point to client point
+            Point pt = this.PointToClient(new Point(e.X, e.Y));
+            
+            //clear selections
+            foreach (DictionaryEntry entry in this.m_gridCells.CellHashTable)
+            {
+                CGCell cell = (CGCell)entry.Value;
+                cell.IsSelected = false;
+            }
+            this.m_selectedRange.Cells.ClearAllCells();
+
+            //select a cell based on current drag position to visually assist the user
+            int nRow = -1;
+            int nCol = -1;
+            if (this.HitTest(pt.X, pt.Y, ref nRow, ref nCol))
+            {
+                CGCell cellFromRowCol = this.m_gridCells.GetCellFromRowCol(nRow, nCol);
+                if (cellFromRowCol != null)
+                {
+                    this.m_currentCell = cellFromRowCol;
+                    this.m_selectedRange.StartCell = null;
+                    this.m_selectedRange.EndCell = null;
+                    this.m_selectedRange.CreateRange(this.m_gridCells, cellFromRowCol, cellFromRowCol);
+
+                    cellFromRowCol.IsSelected = true;
+                }
+
+                base.Invalidate();
+            }
+
+            //if Y axis is outside the top or bottom
+
+            if ((pt.Y + 40 >= this.ClientRectangle.Bottom) || (pt.Y - 40 <= this.ClientRectangle.Top))
+            {
+                //start auto scrolling. m_bScrollDown decides whether we scroll up or down.
+                this.m_bScrollDown = (pt.Y + 40) >= this.ClientRectangle.Bottom;
+                AutoDragStart();
+            }
+
+            //if Y axis within client rectagle, stop dragging (whether you started or not)
+            if ((pt.Y + 40 < this.ClientRectangle.Bottom) && (pt.Y - 40 > this.ClientRectangle.Top))
+            {
+                AutoDragStop();
+            }
+        }
+
         private void CalendarGrid_MouseDown(object sender, MouseEventArgs e)
         {
@@ -247,11 +305,46 @@
                 this.OnLButtonDown(e.X, e.Y, true);
             }
+            //new code!!! smh 4/13/2011 -- refactor later
+            
+            else if (e.Button == MouseButtons.Right)
+            {
+                // clear all selected cells, but ONLY if the the pointer is NOT over one of the cells in
+                // the selected range
+
+                int nRow = -1;
+                int nCol = -1;
+                CGCell cellFromRowCol = null;
+                bool _isCellInRange = false;
+                if (this.HitTest(e.X, e.Y, ref nRow, ref nCol))
+                {
+                    cellFromRowCol = this.m_gridCells.GetCellFromRowCol(nRow, nCol);
+        }
+
+                if (cellFromRowCol != null)
+                    _isCellInRange = this.m_selectedRange.CellIsInRange(cellFromRowCol);
+
+                if (!_isCellInRange)
+                {
+                    foreach (DictionaryEntry entry in this.m_gridCells.CellHashTable)
+                    {
+                        CGCell cell = (CGCell)entry.Value;
+                        cell.IsSelected = false;
+                    }
+                    this.m_selectedRange.Cells.ClearAllCells();
+                }
+
+                // clear all selected appointments
+                this.m_SelectedAppointments.ClearAllAppointments();
+                foreach (CGAppointment a in this.m_Appointments.AppointmentTable.Values) a.Selected = false;
+                this.m_nSelectID = 0;
+
+                OnRButtonDown(e.X, e.Y, _isCellInRange);
+            }
+             
+            //end new code!!! /smh 4/13/2011
         }
 
         private void CalendarGrid_MouseMove(object Sender, MouseEventArgs e)
         {
-            //test
-            //System.Diagnostics.Debug.Write(watch.ElapsedMilliseconds + "\n");
-            //test
 
             //if the left mouse button is down and we are moving the mouse...
@@ -292,7 +385,8 @@
             else
             {
-                //test
-                AutoDragStop(); //is this needed?
-                //test
+            
+                AutoDragStop(); //is this needed?  //just in case maybe
+
+                //this code below displays the tooltip if we are moving the mouse over an appointment
                 int y = e.Y - base.AutoScrollPosition.Y;
                 int x = e.X - base.AutoScrollPosition.X;
@@ -307,27 +401,4 @@
                 }
                 this.m_toolTip.RemoveAll();
-
-                ////smh new code -- select cell
-                //int nRow = -1;
-                //int nCol = -1;
-
-                ////Is the mouse over a known cell? If so, highlight cell
-                //if (this.HitTest(x, y, ref nRow, ref nCol))
-                //{
-                //    CGCell cellFromRowCol = this.m_gridCells.GetCellFromRowCol(nRow, nCol);
-                //    if (cellFromRowCol != null)
-                //    {
-                //        this.m_currentCell = cellFromRowCol;
-                //        this.m_selectedRange.StartCell = null;
-                //        this.m_selectedRange.EndCell = null;
-                //        this.m_selectedRange.CreateRange(this.m_gridCells, cellFromRowCol, cellFromRowCol);
-                //        this.m_bSelectingRange = true;
-                //        cellFromRowCol.IsSelected = true;
-                //        base.Invalidate(this.m_currentCell.CellRectangle);
-                //        //base.Invalidate();
-                //    }
-                //}
-
-
             }
         }
@@ -515,5 +586,5 @@
             // flag is true only if there are no cells what so ever in the screen
             // Only true when no resource is selected.
-            bool flag = this.m_gridCells.CellCount == 0;
+            bool noCellsFlag = this.m_gridCells.CellCount == 0;
 
             // Move the base point from the client screen to the scrolling region top-left corner.
@@ -600,28 +671,30 @@
                         num12 = this.m_col0Width;
                     }
-                    if (k > 1)      // 
+                    if (k > 1)      // if we are subsequent columns, adjust accordingly
                     {
                         num12 = this.m_col0Width + (this.m_cellWidth * (k - 1));
                     }
+                    //make a rectangle for the cell
                     Point point4 = new Point(num12, j * this.m_cellHeight);
                     Rectangle r = new Rectangle(point4.X, point4.Y, this.m_cellWidth, this.m_cellHeight);
-                    if (j != 0)
-                    {
-                        CGCell cellFromRowCol = null;
-                        if (flag)
+                    if (j != 0) // if we are not at the top (we are starting from the bottom)
+                    {
+                        CGCell cellFromRowCol = null; 
+                        if (noCellsFlag)  //if there are no cells, create the cell
                         {
                             cellFromRowCol = new CGCell(r, j, k);
                             this.m_gridCells.AddCell(cellFromRowCol);
                         }
-                        else
+                        else // otherwise, get the cell from the m_gridCells array
                         {
                             cellFromRowCol = this.m_gridCells.GetCellFromRowCol(j, k);
                             cellFromRowCol.CellRectangle = r;
                         }
-                        if (this.m_sResourcesArray.Count > 0)
+                        if (this.m_sResourcesArray.Count > 0) // if we have any resources open
                         {
                             //IMP
                             //this is the place where we the selected cells are drawn in Light Light Blue.
                             //IMP
+                            // if cell is selected, draw it in Aquamarine (light light blue)
                             if (this.m_selectedRange.CellIsInRange(cellFromRowCol))
                             {
@@ -629,9 +702,12 @@
                                 //g.FillRectangle(Brushes.AntiqueWhite, r);
                             }
+                            // otherwise, draw it from Appointment Type Color set by BuildGridCellsArray()
                             else
                             {
                                 g.FillRectangle(cellFromRowCol.AppointmentTypeColor, r);
                             }
+                            // finally the drawing
                             g.DrawRectangle(pen, r.X, r.Y, r.Width, r.Height);
+                            // once done with availabilities, draw the appointments
                             if (j == 1)
                             {
@@ -641,4 +717,6 @@
                         continue;
                     }
+                    
+                    //Below draws the top column either containing the dates or resources
                     if (!this.m_bScroll)
                     {
@@ -922,8 +1000,10 @@
             this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.CalendarGrid_MouseUp);
             this.DragEnter += new System.Windows.Forms.DragEventHandler(this.CalendarGrid_DragEnter);
+            this.DragOver += new DragEventHandler(CalendarGrid_DragOver);
             this.ResumeLayout(false);
 
         }
 
+ 
         private static int MinSince80(DateTime d)
         {
@@ -931,4 +1011,57 @@
             TimeSpan span = (TimeSpan) (d - time);
             return (int) span.TotalMinutes;
+        }
+
+        //new code1!! smh 4/14/2011
+        private void OnRButtonDown(int X, int Y, bool RangeAlreadySelected)
+        {
+            //if right mouse button is clicked, select an appointment if mouse hovers over one
+            foreach (CGAppointment appointment3 in this.m_Appointments.AppointmentTable.Values)
+            {
+                int y = Y - base.AutoScrollPosition.Y;
+                int x = X - base.AutoScrollPosition.X;
+                Point pt = new Point(x, y);
+
+                if (!appointment3.GridRectangle.Contains(pt))
+                {
+                    continue;
+                }
+                this.m_bMouseDown = false;
+
+                this.m_SelectedAppointments.AddAppointment(appointment3);
+                appointment3.Selected = true;
+                this.m_nSelectID = appointment3.AppointmentKey;
+                //this.m_bGridEnter = true;
+            }
+
+            // if we find an appointment, redraw the grid
+            if (this.m_SelectedAppointments.AppointmentCount > 0)
+            {
+                base.Invalidate();
+                return;
+            }
+
+            // Otherwise, select a cell, but only if we don't don't have an existing range
+            if (RangeAlreadySelected) return;
+
+            // Ok, select cell here
+            int nRow = -1;
+            int nCol = -1;
+            if (this.HitTest(X, Y, ref nRow, ref nCol))
+            {
+                CGCell cellFromRowCol = this.m_gridCells.GetCellFromRowCol(nRow, nCol);
+                if (cellFromRowCol != null)
+                {
+                    this.m_currentCell = cellFromRowCol;
+                    this.m_selectedRange.StartCell = null;
+                    this.m_selectedRange.EndCell = null;
+                    this.m_selectedRange.CreateRange(this.m_gridCells, cellFromRowCol, cellFromRowCol);
+
+                    cellFromRowCol.IsSelected = true;
+                }
+
+                base.Invalidate();
+                return;
+            }
         }
 
@@ -1067,4 +1200,5 @@
             if (this.m_gridCells.CellCount != 0)
             {
+                // this happens for the CGAVView Grid
                 foreach (DictionaryEntry entry in this.m_gridCells.CellHashTable)
                 {
@@ -1072,4 +1206,6 @@
                     cell.AppointmentTypeColor = (this.m_GridBackColor == "blue") ? Brushes.CornflowerBlue : Brushes.Khaki;
                 }
+                // won't happen for CGAVView Grid b/c it has no availabilites
+                // BUT, will happen for normal CGView Grid if there any availabilies
                 if ((this.m_pAvArray != null) && (this.m_pAvArray.Count != 0))
                 {
@@ -1080,7 +1216,10 @@
                         int num3 = 0;
                         int num4 = 0;
+                        // pick the color from the availability
                         Brush brush = new SolidBrush(Color.FromArgb(availability.Red, availability.Green, availability.Blue));
+                        // get starting and ending cell
                         this.GetCellFromTime(availability.StartTime, ref nRow, ref nCol, true, availability.ResourceList);
                         this.GetCellFromTime(availability.EndTime, ref num3, ref num4, false, availability.ResourceList);
+                        // for each of the range cells between starting and ending, change their color
                         for (int i = nCol; i <= num4; i++)
                         {
@@ -1328,10 +1467,13 @@
                 {
                     this.m_nColumns = value;
-                    this.m_gridCells.ClearAllCells();
-                    this.m_selectedRange.Cells.ClearAllCells();
+                    //new line
+                    this.SetColumnInfo();  // redoes the columns if we have multiple resources
+                    //end new line
+                    this.m_gridCells.ClearAllCells();               //remove all cells
+                    this.m_selectedRange.Cells.ClearAllCells();     //remove selected range
                     Graphics g = base.CreateGraphics();
-                    this.BuildGridCellsArray(g);
-                    this.SetAppointmentTypes();
-                    base.Invalidate();
+                    this.BuildGridCellsArray(g);                    //rebuild the cells
+                    this.SetAppointmentTypes();                     //set the colors on the cells for availabilities
+                    base.Invalidate();                              //Fire paint to call DrawGrid
                 }
             }
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj.user
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj.user	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj.user	(revision 1168)
@@ -37,5 +37,5 @@
     </RemoteDebugMachine>
     <StartAction>Project</StartAction>
-    <StartArguments>/s=172.16.16.108 /p=9255 /a=s.habiel /v=catdog.66</StartArguments>
+    <StartArguments>/s=172.16.16.108 /p=9255 /a=s.habiel /v=catdog.77</StartArguments>
     <StartPage>
     </StartPage>
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DAL.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DAL.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DAL.cs	(revision 1168)
@@ -1,3 +1,5 @@
-﻿using System;
+﻿/* Licensed under LGPL */
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -187,9 +189,9 @@
 
         /// <summary>
-        /// TODO
+        /// Gets All radiology exams for a Patient in a specific hospital location
         /// </summary>
         /// <param name="DFN"></param>
-        /// <param name="SCIEN"></param>
-        /// <returns></returns>
+        /// <param name="SCIEN">Hospital Location IEN</param>
+        /// <returns>Generic List of type RadiologyExam</returns>
         public List<RadiologyExam> GetRadiologyExamsForPatientinHL(int DFN, int SCIEN)
         {
@@ -207,21 +209,23 @@
 
         /// <summary>
-        /// TODO
+        /// Schedules a Single Radiology Exam for a patient
         /// </summary>
         /// <param name="DFN"></param>
-        /// <param name="examIEN"></param>
-        /// <returns></returns>
-        public bool ScheduleRadiologyExam(int DFN, int examIEN)
-        {
-            string result = _thisConnection.bmxNetLib.TransmitRPC("BSDX SCHEDULE RAD EXAM", string.Format("{0}^{1}",DFN,examIEN));
+        /// <param name="examIEN">IEN of exam in 75.1 (RAD/NUC MED ORDERS) file</param>
+        /// <param name="dStart">Start DateTime of appointment</param>
+        /// <returns>should always return true</returns>
+        public bool ScheduleRadiologyExam(int DFN, int examIEN, DateTime dStart)
+        {
+            string fmStartDate = FMDateTime.Create(dStart).FMDateString;
+            string result = _thisConnection.bmxNetLib.TransmitRPC("BSDX SCHEDULE RAD EXAM", string.Format("{0}^{1}^{2}", DFN, examIEN, fmStartDate));
             return result == "1" ? true : false;
         }
 
         /// <summary>
-        /// TODO
+        /// Put the radiology exam on Hold because the appointment has been cancelled for it
         /// </summary>
         /// <param name="DFN"></param>
-        /// <param name="examIEN"></param>
-        /// <returns></returns>
+        /// <param name="examIEN">IEN of exam in 75.1 (RAD/NUC MED ORDERS) file</param>
+        /// <returns>should always return true</returns>
         public bool CancelRadiologyExam(int DFN, int examIEN)
         {
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DApptSearch.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DApptSearch.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DApptSearch.cs	(revision 1168)
@@ -5,5 +5,4 @@
 using System.Data;
 using System.Linq;
-//using System.Data.OleDb;
 
 namespace IndianHealthService.ClinicalScheduling
@@ -114,5 +113,5 @@
 		{
 
-            this.Text = "Searching for Appointments in: " + string.Join(" | ", alResources.Cast<string>());
+            this.Text = "Searching for available slots in: " + string.Join(" | ", alResources.Cast<string>());
             
             this.m_DocManager = docManager;
@@ -275,4 +274,5 @@
 		{
             this.panel1 = new System.Windows.Forms.Panel();
+            this.lblMessage = new System.Windows.Forms.Label();
             this.cmdSearch = new System.Windows.Forms.Button();
             this.cmdCancel = new System.Windows.Forms.Button();
@@ -313,5 +313,4 @@
             this.colSlots = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             this.colAccessType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-            this.lblMessage = new System.Windows.Forms.Label();
             this.panel1.SuspendLayout();
             this.pnlDescription.SuspendLayout();
@@ -335,4 +334,14 @@
             this.panel1.TabIndex = 4;
             // 
+            // lblMessage
+            // 
+            this.lblMessage.AutoSize = true;
+            this.lblMessage.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.lblMessage.ForeColor = System.Drawing.Color.Red;
+            this.lblMessage.Location = new System.Drawing.Point(337, 16);
+            this.lblMessage.Name = "lblMessage";
+            this.lblMessage.Size = new System.Drawing.Size(0, 16);
+            this.lblMessage.TabIndex = 3;
+            // 
             // cmdSearch
             // 
@@ -390,7 +399,7 @@
             this.lblDescription.Size = new System.Drawing.Size(917, 45);
             this.lblDescription.TabIndex = 1;
-            this.lblDescription.Text = "Search for available appointment times using this panel.  You may narrow your sea" +
-                "rch by selecting an access type or by selecting specific days of the week or tim" +
-                "es of day.";
+            this.lblDescription.Text = "Search for available slots times using this panel.  You may narrow your search by" +
+                " selecting an access type or by selecting specific days of the week or times of " +
+                "day.";
             // 
             // groupBox1
@@ -676,14 +685,4 @@
             this.colAccessType.Text = "Access Type";
             this.colAccessType.Width = 101;
-            // 
-            // lblMessage
-            // 
-            this.lblMessage.AutoSize = true;
-            this.lblMessage.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.lblMessage.ForeColor = System.Drawing.Color.Red;
-            this.lblMessage.Location = new System.Drawing.Point(337, 16);
-            this.lblMessage.Name = "lblMessage";
-            this.lblMessage.Size = new System.Drawing.Size(0, 16);
-            this.lblMessage.TabIndex = 3;
             // 
             // DApptSearch
@@ -899,5 +898,5 @@
 
             if (items.Length > 0) lstResults.Items.AddRange(items); // add new data
-            else this.lblMessage.Text = "No available Appointment Slots Found!";
+            else this.lblMessage.Text = "No available slots found!";
 
             lstResults.EndUpdate(); // ok done adding items, draw now.
@@ -944,9 +943,9 @@
             {
                 this.DialogResult = DialogResult.None;
-                lblMessage.Text = "No Appointment Slot selected!";
+                lblMessage.Text = "No slot selected!";
                 return;
             }
 
-            long availabilityKey = long.Parse(lstResults.SelectedItems[0].SubItems[0].Text);
+            int availabilityKey = Int32.Parse(lstResults.SelectedItems[0].SubItems[0].Text);
             _selectedAvailability = (from av in lstResultantAvailabilities
                                      where av.AvailabilityType == availabilityKey
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DRadExamsSelect.Designer.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DRadExamsSelect.Designer.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DRadExamsSelect.Designer.cs	(revision 1168)
@@ -33,6 +33,8 @@
             this.btnOK = new System.Windows.Forms.Button();
             this.btnCancel = new System.Windows.Forms.Button();
-            this.label1 = new System.Windows.Forms.Label();
+            this.lblInfo = new System.Windows.Forms.Label();
             this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+            this.splitContainer2 = new System.Windows.Forms.SplitContainer();
+            this.chkPrint = new System.Windows.Forms.CheckBox();
             this.tableOKCancel.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
@@ -40,4 +42,8 @@
             this.splitContainer1.Panel2.SuspendLayout();
             this.splitContainer1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
+            this.splitContainer2.Panel1.SuspendLayout();
+            this.splitContainer2.Panel2.SuspendLayout();
+            this.splitContainer2.SuspendLayout();
             this.SuspendLayout();
             // 
@@ -48,5 +54,5 @@
             this.lstExams.Location = new System.Drawing.Point(0, 0);
             this.lstExams.Name = "lstExams";
-            this.lstExams.Size = new System.Drawing.Size(497, 193);
+            this.lstExams.Size = new System.Drawing.Size(497, 237);
             this.lstExams.TabIndex = 0;
             this.lstExams.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.lstExams_MouseDoubleClick);
@@ -60,5 +66,5 @@
             this.tableOKCancel.Controls.Add(this.btnOK, 0, 0);
             this.tableOKCancel.Controls.Add(this.btnCancel, 1, 0);
-            this.tableOKCancel.Location = new System.Drawing.Point(328, 5);
+            this.tableOKCancel.Location = new System.Drawing.Point(328, -1);
             this.tableOKCancel.Name = "tableOKCancel";
             this.tableOKCancel.RowCount = 1;
@@ -87,12 +93,13 @@
             this.btnCancel.UseVisualStyleBackColor = true;
             // 
-            // label1
+            // lblInfo
             // 
-            this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(12, 9);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(245, 13);
-            this.label1.TabIndex = 2;
-            this.label1.Text = "Select an Exam from the exams listed to Schedule";
+            this.lblInfo.Anchor = System.Windows.Forms.AnchorStyles.Left;
+            this.lblInfo.AutoSize = true;
+            this.lblInfo.Location = new System.Drawing.Point(4, 6);
+            this.lblInfo.Name = "lblInfo";
+            this.lblInfo.Size = new System.Drawing.Size(245, 13);
+            this.lblInfo.TabIndex = 2;
+            this.lblInfo.Text = "Select an Exam from the exams listed to Schedule";
             // 
             // splitContainer1
@@ -109,9 +116,39 @@
             // splitContainer1.Panel2
             // 
-            this.splitContainer1.Panel2.Controls.Add(this.tableOKCancel);
-            this.splitContainer1.Panel2.Controls.Add(this.label1);
-            this.splitContainer1.Size = new System.Drawing.Size(497, 234);
-            this.splitContainer1.SplitterDistance = 193;
+            this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
+            this.splitContainer1.Size = new System.Drawing.Size(497, 302);
+            this.splitContainer1.SplitterDistance = 237;
             this.splitContainer1.TabIndex = 3;
+            // 
+            // splitContainer2
+            // 
+            this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.splitContainer2.Location = new System.Drawing.Point(0, 0);
+            this.splitContainer2.Name = "splitContainer2";
+            this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
+            // 
+            // splitContainer2.Panel1
+            // 
+            this.splitContainer2.Panel1.Controls.Add(this.lblInfo);
+            // 
+            // splitContainer2.Panel2
+            // 
+            this.splitContainer2.Panel2.Controls.Add(this.chkPrint);
+            this.splitContainer2.Panel2.Controls.Add(this.tableOKCancel);
+            this.splitContainer2.Size = new System.Drawing.Size(497, 61);
+            this.splitContainer2.SplitterDistance = 25;
+            this.splitContainer2.TabIndex = 3;
+            // 
+            // chkPrint
+            // 
+            this.chkPrint.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+            this.chkPrint.AutoSize = true;
+            this.chkPrint.Location = new System.Drawing.Point(3, 11);
+            this.chkPrint.Name = "chkPrint";
+            this.chkPrint.Size = new System.Drawing.Size(131, 17);
+            this.chkPrint.TabIndex = 2;
+            this.chkPrint.Text = "Print Appointment Slip";
+            this.chkPrint.UseVisualStyleBackColor = true;
+            this.chkPrint.CheckedChanged += new System.EventHandler(this.chkPrint_CheckedChanged);
             // 
             // DRadExamsSelect
@@ -121,5 +158,5 @@
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.CancelButton = this.btnCancel;
-            this.ClientSize = new System.Drawing.Size(497, 234);
+            this.ClientSize = new System.Drawing.Size(497, 302);
             this.ControlBox = false;
             this.Controls.Add(this.splitContainer1);
@@ -130,7 +167,12 @@
             this.splitContainer1.Panel1.ResumeLayout(false);
             this.splitContainer1.Panel2.ResumeLayout(false);
-            this.splitContainer1.Panel2.PerformLayout();
             ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
             this.splitContainer1.ResumeLayout(false);
+            this.splitContainer2.Panel1.ResumeLayout(false);
+            this.splitContainer2.Panel1.PerformLayout();
+            this.splitContainer2.Panel2.ResumeLayout(false);
+            this.splitContainer2.Panel2.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
+            this.splitContainer2.ResumeLayout(false);
             this.ResumeLayout(false);
 
@@ -143,6 +185,8 @@
         private System.Windows.Forms.Button btnOK;
         private System.Windows.Forms.Button btnCancel;
-        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label lblInfo;
         private System.Windows.Forms.SplitContainer splitContainer1;
+        private System.Windows.Forms.SplitContainer splitContainer2;
+        private System.Windows.Forms.CheckBox chkPrint;
 
 
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DRadExamsSelect.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DRadExamsSelect.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DRadExamsSelect.cs	(revision 1168)
@@ -19,5 +19,10 @@
         public int ExamIEN { get; private set; }
         public string ProcedureName { get; private set; }
+        public bool PrintAppointmentSlip { get { return chkPrint.Checked; } }
         //end return values
+
+        //private fields
+        public bool _myCodeIsFiringIstheCheckBoxChangedEvent = false;
+        //private fields
 
         /// <summary>
@@ -31,4 +36,9 @@
             this.lstExams.DataSource = _radExams;
             this.lstExams.SelectionMode = SelectionMode.One;
+
+            //Set Default Checkbox
+            _myCodeIsFiringIstheCheckBoxChangedEvent = true;
+            chkPrint.Checked = CGDocumentManager.Current.UserPreferences.PrintAppointmentSlipAutomacially;
+            _myCodeIsFiringIstheCheckBoxChangedEvent = false;
         }
 
@@ -56,4 +66,16 @@
         }
 
+        /// <summary>
+        /// Save preference for Auto Printing Appointment Slip in the DB
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void chkPrint_CheckedChanged(object sender, EventArgs e)
+        {
+            if (_myCodeIsFiringIstheCheckBoxChangedEvent) return;
+
+            CGDocumentManager.Current.UserPreferences.PrintAppointmentSlipAutomacially = chkPrint.Checked;
+        }
+
 
     }
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DSplash.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DSplash.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/DSplash.cs	(revision 1168)
@@ -8,5 +8,8 @@
 {
 	/// <summary>
-	/// Summary description for DSplash.
+	/// Program loading splash screen. Notice the numerous remote methods intended
+    /// to mickey mouse the form from another thread.
+    /// 
+    /// I don't know of a better way of doing this right now.
 	/// </summary>
 	public class DSplash : System.Windows.Forms.Form
@@ -147,4 +150,6 @@
         public delegate void dAny();
         public delegate void dProgressBarSet(int number);
+        public delegate DialogResult dMessageBox(IWin32Window owner, string message);
+        public delegate DialogResult dMessageBox2(IWin32Window owner, string message, string caption, MessageBoxButtons btns);
 		
         public void SetStatus(string sStatus)
@@ -165,7 +170,31 @@
 		}
 
+        public DialogResult RemoteMsgBox(string msg)
+        {
+            dMessageBox d = new dMessageBox(MessageBox.Show);
+            return (DialogResult)this.Invoke(d, this, msg);
+        }
+
+        public DialogResult RemoteMsgBox(string msg, string caption, MessageBoxButtons btns)
+        {
+            dMessageBox2 d = new dMessageBox2(MessageBox.Show);
+            return (DialogResult)this.Invoke(d, this, msg, caption, btns);
+        }
+
         public void RemoteClose()
         {
             dAny d = new dAny(this.Close);
+            this.Invoke(d);
+        }
+
+        public void RemoteActivate()
+        {
+            dAny d = new dAny(this.Activate);
+            this.Invoke(d);
+        }
+
+        public void RemoteHide()
+        {
+            dAny d = new dAny(this.Hide);
             this.Invoke(d);
         }
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/FMDateTime.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/FMDateTime.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/FMDateTime.cs	(revision 1168)
@@ -17,5 +17,5 @@
  * 
 
- Mods by Sam Habiel to use in Scheduling GUI.
+ Modified by Sam Habiel to use in Scheduling GUI. Modified class licensed under LGPL.
  */
 
@@ -250,4 +250,10 @@
 		}
 
+        public static string FMDate (this DateTime d)
+        {
+            return Create(d, FMDateTimePrecision.DateAndTime).FMDateString;
+        }
+
+
 		public static FMDateTime Parse (string str)
 		{
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/Printing.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/Printing.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/Printing.cs	(revision 1168)
@@ -156,5 +156,5 @@
                 X = e.MarginBounds.X,
                 Y = e.PageBounds.Y,
-                Height = e.MarginBounds.Y - e.PageBounds.Y,
+                Height = e.MarginBounds.Y - e.PageBounds.Y - 50,
                 Width = e.MarginBounds.Width
             };
@@ -553,5 +553,5 @@
         /// </summary>
         /// <param name="a">Appointment Data Structure</param>
-        /// <param name="title">String to print for title</param>
+        /// <param name="apptOrder">Order of Appointment</param>
         /// <param name="e">etc</param>
         public virtual void PrintRoutingSlip(CGAppointment appt, int apptOrder, PrintPageEventArgs e)
@@ -563,7 +563,7 @@
             Rectangle headerArea = new Rectangle()
             {
-                X = e.MarginBounds.X,
-                Y = e.PageBounds.Y,
-                Height = e.MarginBounds.Y - e.PageBounds.Y,
+                X = e.MarginBounds.X, 
+                Y = e.PageBounds.Y,  //0
+                Height = e.MarginBounds.Y - e.PageBounds.Y - 50, //100px - 50px
                 Width = e.MarginBounds.Width
             };
@@ -697,5 +697,6 @@
             s = strings.ScratchArea;
             g.DrawString(s, fGroupTitle, Brushes.Black, printArea, sf3); 
-
+            
+            /* Per Al-Najjar, we don't want the next appointment instructions section
             // move down
             printArea.Y += 240;
@@ -713,4 +714,5 @@
             s = strings.NextAppointmentInstructions;
             g.DrawString(s, fGroupTitle, Brushes.Black, printArea, sf3);
+            */
 
             // Draw Footer
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/RadiologyExam.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/RadiologyExam.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/RadiologyExam.cs	(revision 1168)
@@ -1,3 +1,5 @@
-﻿using System;
+﻿/* Licensed under LGPL */
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -7,5 +9,9 @@
 {   
     /// <summary>
-    /// TODO: Sam would like to document this later
+    /// Class to stand for a Radiology Exam Order from file 75.1 (RAD/NUC MED ORDERS)
+    /// IEN: IEN in file 75.1
+    /// Status: Text: Pending or Hold
+    /// Procedure: Text
+    /// RequestDate: Time procedure was requested by physician
     /// </summary>
     public class RadiologyExam
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/UserPreferences.cs
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/UserPreferences.cs	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/UserPreferences.cs	(revision 1168)
@@ -1,3 +1,5 @@
-﻿using System;
+﻿/*Licensed under LGPL*/
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
Index: /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/strings.ar.resx
===================================================================
--- /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/strings.ar.resx	(revision 1167)
+++ /Scheduling/branches/Radiology-Support/cs/bsdx0200GUISourceCode/strings.ar.resx	(revision 1168)
@@ -197,8 +197,8 @@
   </data>
   <data name="RoutingSlip" xml:space="preserve">
-    <value>قسيمة التوجيه</value>
+    <value>بطاقة الزيارة</value>
   </data>
   <data name="ScratchArea" xml:space="preserve">
-    <value>ملاحضات زائدة</value>
+    <value>ملاحظات زائدة</value>
   </data>
 </root>
