Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/AssemblyInfo.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/AssemblyInfo.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/AssemblyInfo.cs	(revision 1174)
@@ -28,5 +28,5 @@
 // by using the '*' as shown below:
 
-[assembly: AssemblyVersion("1.5.0.*")]
+[assembly: AssemblyVersion("1.5.1.*")]
 
 //
@@ -58,4 +58,4 @@
 [assembly: AssemblyKeyFile("")]
 [assembly: AssemblyKeyName("")]
-[assembly: AssemblyFileVersionAttribute("1.5.0.0")]
+[assembly: AssemblyFileVersionAttribute("1.5.1.0")]
 [assembly: ComVisibleAttribute(false)]
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/CGAppointment.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/CGAppointment.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/CGAppointment.cs	(revision 1174)
@@ -4,46 +4,74 @@
     using System.Drawing;
     /// <summary>
-    /// Data Structuer to Represent an Appointment
-    /// 
+    /// Data Structure to Represent an Appointment
     /// </summary>
     [Serializable]
     public class CGAppointment
     {
-        private bool m_bAccessBlock;
-        private bool m_bNoShow;
-        private bool m_bSelected = false;
-        private bool m_bWalkIn;
-        public DateTime m_dAuxTime;
-        public DateTime m_dCheckIn;
-        private DateTime m_EndTime;
-        public int m_nAccessTypeID = -1;
-        private int m_nColumn;
-        public int m_nKey;
-        private string m_Note;
-        public int m_nPatientID;
-        public int m_nSlots;
-        private Rectangle m_rectangle;
-        public string m_sAccessTypeName;
-        private string m_sHRN = "";
-        private string m_sPatientName;
-        public string m_sResource;
-        private DateTime m_StartTime;
-        private string m_Text;
+        public int AccessTypeID { get; set; }
+        public string AccessTypeName { get; set; }
+
+        public int AppointmentKey { get; set; }
+
+        public DateTime AuxTime { get; set; }
+        public DateTime CheckInTime { get; set; }
+        public DateTime EndTime { get; set; }
+        public DateTime StartTime { get; set; }
+
+        public int GridColumn { get; set; }
+        public Rectangle GridRectangle { get; set; }
+        
+        public bool IsAccessBlock { get; set; }
+
+        public bool NoShow { get; set; }
+
+        public string Note { get; set; }
+
+        public int PatientID { get; set; }
+        public string PatientName { get; set; }
+        public string Resource { get; set; }
+        public string HealthRecordNumber { get; set; }
+        
+        public bool Selected { get; set; }
+
+        public int Slots { get; set; }
+
+        public bool WalkIn { get; set; }
+
+        public Patient Patient { get; set; }
+        public Provider Provider { get; set; }
+
+        public int? RadiologyExamIEN { get; set; }
+
+
+        public CGAppointment()
+        {
+            AccessTypeID = -1;
+            Selected = false;
+            HealthRecordNumber = "";
+            }
 
         public void CreateAppointment(DateTime StartTime, DateTime EndTime, string Note, int Key, string sResource)
         {
-            this.m_StartTime = StartTime;
-            this.m_EndTime = EndTime;
-            this.m_Note = Note;
-            this.m_nKey = Key;
-            this.m_sResource = sResource;
-        }
+            this.StartTime = StartTime;
+            this.EndTime = EndTime;
+            this.Note = Note;
+            this.AppointmentKey = Key;
+            this.Resource = sResource;
+            }
+
+        public int Duration
+        {
+            get
+            {
+                TimeSpan span = (TimeSpan) (this.EndTime - this.StartTime);
+                return (int) span.TotalMinutes;
+            }
+            }
 
         public override string ToString()
         {
-            //StringFormat sf = new StringFormat();
-            //sf.SetDigitSubstitution(System.Threading.Thread.CurrentThread.CurrentCulture.LCID, StringDigitSubstitute.National);
             string patientName = "";
-            if (this.m_bAccessBlock)
+            if (this.IsAccessBlock)
             {
                 string str2 = (this.Slots == 1) ? " Slot, " : " Slots, ";
@@ -57,254 +85,5 @@
             return (patientName + " " + this.Note);
         }
-
-        public int AccessTypeID
-        {
-            get
-            {
-                return this.m_nAccessTypeID;
             }
-            set
-            {
-                this.m_nAccessTypeID = value;
-            }
-        }
-
-        public string AccessTypeName
-        {
-            get
-            {
-                return this.m_sAccessTypeName;
-            }
-            set
-            {
-                this.m_sAccessTypeName = value;
-            }
-        }
-
-        public int AppointmentKey
-        {
-            get
-            {
-                return this.m_nKey;
-            }
-            set
-            {
-                this.m_nKey = value;
-            }
-        }
-
-        public DateTime AuxTime
-        {
-            get
-            {
-                return this.m_dAuxTime;
-            }
-            set
-            {
-                this.m_dAuxTime = value;
-            }
-        }
-
-        public DateTime CheckInTime
-        {
-            get
-            {
-                return this.m_dCheckIn;
-            }
-            set
-            {
-                this.m_dCheckIn = value;
-            }
-        }
-
-        public int Duration
-        {
-            get
-            {
-                TimeSpan span = (TimeSpan) (this.EndTime - this.StartTime);
-                return (int) span.TotalMinutes;
-            }
-        }
-
-        public DateTime EndTime
-        {
-            get
-            {
-                return this.m_EndTime;
-            }
-            set
-            {
-                this.m_EndTime = value;
-            }
-        }
-
-        public int GridColumn
-        {
-            get
-            {
-                return this.m_nColumn;
-            }
-            set
-            {
-                this.m_nColumn = value;
-            }
-        }
-
-        public Rectangle GridRectangle
-        {
-            get
-            {
-                return this.m_rectangle;
-            }
-            set
-            {
-                this.m_rectangle = value;
-            }
-        }
-
-        public string HealthRecordNumber
-        {
-            get
-            {
-                return this.m_sHRN;
-            }
-            set
-            {
-                this.m_sHRN = value;
-            }
-        }
-
-        public bool IsAccessBlock
-        {
-            get
-            {
-                return this.m_bAccessBlock;
-            }
-            set
-            {
-                this.m_bAccessBlock = value;
-            }
-        }
-
-        public bool NoShow
-        {
-            get
-            {
-                return this.m_bNoShow;
-            }
-            set
-            {
-                this.m_bNoShow = value;
-            }
-        }
-
-        public string Note
-        {
-            get
-            {
-                return this.m_Note;
-            }
-            set
-            {
-                this.m_Note = value;
-            }
-        }
-
-        public int PatientID
-        {
-            get
-            {
-                return this.m_nPatientID;
-            }
-            set
-            {
-                this.m_nPatientID = value;
-            }
-        }
-
-        public string PatientName
-        {
-            get
-            {
-                return this.m_sPatientName;
-            }
-            set
-            {
-                this.m_sPatientName = value;
-            }
-        }
-
-        public string Resource
-        {
-            get
-            {
-                return this.m_sResource;
-            }
-            set
-            {
-                this.m_sResource = value;
-            }
-        }
-
-        public bool Selected
-        {
-            get
-            {
-                return this.m_bSelected;
-            }
-            set
-            {
-                this.m_bSelected = value;
-            }
-        }
-
-        public int Slots
-        {
-            get
-            {
-                return this.m_nSlots;
-            }
-            set
-            {
-                this.m_nSlots = value;
-            }
-        }
-
-        public DateTime StartTime
-        {
-            get
-            {
-                return this.m_StartTime;
-            }
-            set
-            {
-                this.m_StartTime = value;
-            }
-        }
-
-        public string Text
-        {
-            get
-            {
-                this.m_Text = this.m_sPatientName;
-                return this.m_Text;
-            }
-        }
-
-        public bool WalkIn
-        {
-            get
-            {
-                return this.m_bWalkIn;
-            }
-            set
-            {
-                this.m_bWalkIn = value;
-            }
-        }
-
-        public Patient Patient { get; set; }
-        public Provider Provider { get; set; }
-    }
 }
 
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/CGDocument.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/CGDocument.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/CGDocument.cs	(revision 1174)
@@ -238,4 +238,5 @@
                     sWalkIn = r["WALKIN"].ToString();
                     bWalkIn = (sWalkIn == "1") ? true : false;
+                    int? RadiologyExamIEN = r["RADIOLOGY_EXAM"] as Int32?; //new in v 1.6 - Get Radiology Exam
 
                     Patient pt = new Patient()
@@ -262,4 +263,5 @@
                     pAppointment.AccessTypeID = nAccessTypeID;
                     pAppointment.WalkIn = bWalkIn;
+                    pAppointment.RadiologyExamIEN = RadiologyExamIEN;
                     this.m_appointments.AddAppointment(pAppointment);
 
@@ -973,5 +975,5 @@
             }
 
-            string sSql = "BSDX ADD NEW APPOINTMENT^" + sStart + "^" + sEnd + "^" + sPatID + "^" + sResource + "^" + sLen + "^" + sNote + "^" + sApptID;
+            string sSql = "BSDX ADD NEW APPOINTMENT^" + sStart + "^" + sEnd + "^" + sPatID + "^" + sResource + "^" + sLen + "^" + sNote + "^" + sApptID + "^" + rApptInfo.RadiologyExamIEN;
             System.Data.DataTable dtAppt = m_DocManager.RPMSDataTable(sSql, "NewAppointment");
 
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/CGSchedLib.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/CGSchedLib.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/CGSchedLib.cs	(revision 1174)
@@ -2,6 +2,4 @@
 using System.Data;
 using System.Collections;
-using System.Diagnostics;
-using System.Drawing;
 
 namespace IndianHealthService.ClinicalScheduling
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/CGView.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/CGView.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/CGView.cs	(revision 1174)
@@ -1,4 +1,5 @@
 using System;
 using System.Collections;
+using System.Collections.Generic;
 using System.ComponentModel;
 using System.Windows.Forms;
@@ -48,5 +49,5 @@
 		private System.Windows.Forms.Panel panelBottom;
 		private System.Windows.Forms.Label lblResource;
-		private System.Windows.Forms.ContextMenu contextMenu1;
+		private System.Windows.Forms.ContextMenu ctxResourceTree;
 		private System.Windows.Forms.MenuItem ctxOpenSchedule;
 		private System.Windows.Forms.MenuItem ctxEditAvailability;
@@ -90,13 +91,13 @@
 		private System.Windows.Forms.MenuItem mnuPrintCancellationLetters;
 		private System.Windows.Forms.MenuItem mnuWalkIn;
-		private System.Windows.Forms.MenuItem menuItem5;
-		private System.Windows.Forms.MenuItem menuItem8;
+		private System.Windows.Forms.MenuItem sepApptMenu1;
+		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;
@@ -106,4 +107,11 @@
         private MenuItem menuItem12;
         private MenuItem mnuRefresh;
+        private MenuItem ctxCalGridMkRadAppt;
+        private MenuItem ctxCalGridCancelRadAppt;
+        private MenuItem mnuMkRadAppt;
+        private MenuItem mnuCancelRadAppt;
+        private MenuItem mnuUndoCheckin;
+        private MenuItem sepApptMenu3;
+        private MenuItem mnuReprintApptSlip;
         private IContainer components;
 
@@ -194,15 +202,20 @@
             this.mnuAppointment = new System.Windows.Forms.MenuItem();
             this.mnuNewAppointment = new System.Windows.Forms.MenuItem();
+            this.mnuWalkIn = new System.Windows.Forms.MenuItem();
+            this.mnuMkRadAppt = new System.Windows.Forms.MenuItem();
             this.mnuEditAppointment = new System.Windows.Forms.MenuItem();
             this.mnuDeleteAppointment = new System.Windows.Forms.MenuItem();
-            this.menuItem5 = new System.Windows.Forms.MenuItem();
+            this.mnuCancelRadAppt = new System.Windows.Forms.MenuItem();
+            this.sepApptMenu1 = new System.Windows.Forms.MenuItem();
             this.mnuNoShow = new System.Windows.Forms.MenuItem();
             this.mnuNoShowUndo = new System.Windows.Forms.MenuItem();
-            this.menuItem8 = new System.Windows.Forms.MenuItem();
+            this.sepApptMenu2 = new System.Windows.Forms.MenuItem();
+            this.mnuCheckIn = new System.Windows.Forms.MenuItem();
+            this.mnuUndoCheckin = new System.Windows.Forms.MenuItem();
+            this.sepApptMenu3 = new System.Windows.Forms.MenuItem();
+            this.mnuFindAppt = new System.Windows.Forms.MenuItem();
             this.mnuCopyAppointment = new System.Windows.Forms.MenuItem();
-            this.mnuWalkIn = new System.Windows.Forms.MenuItem();
-            this.mnuFindAppt = new System.Windows.Forms.MenuItem();
-            this.mnuCheckIn = new System.Windows.Forms.MenuItem();
             this.mnuViewPatientAppts = new System.Windows.Forms.MenuItem();
+            this.mnuReprintApptSlip = new System.Windows.Forms.MenuItem();
             this.mnuCalendar = new System.Windows.Forms.MenuItem();
             this.mnuDisplayWalkIns = new System.Windows.Forms.MenuItem();
@@ -225,5 +238,5 @@
             this.mnuTest1 = new System.Windows.Forms.MenuItem();
             this.tvSchedules = new System.Windows.Forms.TreeView();
-            this.contextMenu1 = new System.Windows.Forms.ContextMenu();
+            this.ctxResourceTree = new System.Windows.Forms.ContextMenu();
             this.ctxOpenSchedule = new System.Windows.Forms.MenuItem();
             this.ctxEditAvailability = new System.Windows.Forms.MenuItem();
@@ -246,14 +259,16 @@
             this.ctxCalendarGrid = new System.Windows.Forms.ContextMenu();
             this.ctxCalGridAdd = new System.Windows.Forms.MenuItem();
+            this.ctxCalGridMkRadAppt = new System.Windows.Forms.MenuItem();
             this.ctxCalGridEdit = new System.Windows.Forms.MenuItem();
             this.ctxCalGridDelete = new System.Windows.Forms.MenuItem();
+            this.ctxCalGridCancelRadAppt = new System.Windows.Forms.MenuItem();
             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();
@@ -369,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);
@@ -411,15 +426,20 @@
             this.mnuAppointment.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
             this.mnuNewAppointment,
+            this.mnuWalkIn,
+            this.mnuMkRadAppt,
             this.mnuEditAppointment,
             this.mnuDeleteAppointment,
-            this.menuItem5,
+            this.mnuCancelRadAppt,
+            this.sepApptMenu1,
             this.mnuNoShow,
             this.mnuNoShowUndo,
-            this.menuItem8,
+            this.sepApptMenu2,
+            this.mnuCheckIn,
+            this.mnuUndoCheckin,
+            this.sepApptMenu3,
+            this.mnuFindAppt,
             this.mnuCopyAppointment,
-            this.mnuWalkIn,
-            this.mnuFindAppt,
-            this.mnuCheckIn,
-            this.mnuViewPatientAppts});
+            this.mnuViewPatientAppts,
+            this.mnuReprintApptSlip});
             this.mnuAppointment.Text = "&Appointment";
             this.mnuAppointment.Popup += new System.EventHandler(this.mnuAppointment_Popup);
@@ -432,7 +452,21 @@
             this.mnuNewAppointment.Click += new System.EventHandler(this.mnuNewAppointment_Click);
             // 
+            // mnuWalkIn
+            // 
+            this.mnuWalkIn.Index = 1;
+            this.mnuWalkIn.Shortcut = System.Windows.Forms.Shortcut.ShiftIns;
+            this.mnuWalkIn.Text = "Create Wal&k-In Appointment";
+            this.mnuWalkIn.Click += new System.EventHandler(this.mnuWalkIn_Click);
+            // 
+            // mnuMkRadAppt
+            // 
+            this.mnuMkRadAppt.Index = 2;
+            this.mnuMkRadAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlIns;
+            this.mnuMkRadAppt.Text = "Make Radiology Appointment";
+            this.mnuMkRadAppt.Click += new System.EventHandler(this.mnuMkRadAppt_Click);
+            // 
             // mnuEditAppointment
             // 
-            this.mnuEditAppointment.Index = 1;
+            this.mnuEditAppointment.Index = 3;
             this.mnuEditAppointment.Shortcut = System.Windows.Forms.Shortcut.F2;
             this.mnuEditAppointment.Text = "&Edit Appointment";
@@ -441,17 +475,25 @@
             // mnuDeleteAppointment
             // 
-            this.mnuDeleteAppointment.Index = 2;
+            this.mnuDeleteAppointment.Index = 4;
             this.mnuDeleteAppointment.Shortcut = System.Windows.Forms.Shortcut.Del;
             this.mnuDeleteAppointment.Text = "Cance&l Appointment";
             this.mnuDeleteAppointment.Click += new System.EventHandler(this.mnuDeleteAppointment_Click);
             // 
-            // menuItem5
-            // 
-            this.menuItem5.Index = 3;
-            this.menuItem5.Text = "-";
+            // mnuCancelRadAppt
+            // 
+            this.mnuCancelRadAppt.Index = 5;
+            this.mnuCancelRadAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlDel;
+            this.mnuCancelRadAppt.Text = "Cancel Radiology Appointment";
+            this.mnuCancelRadAppt.Click += new System.EventHandler(this.mnuCancelRadAppt_Click);
+            // 
+            // sepApptMenu1
+            // 
+            this.sepApptMenu1.Index = 6;
+            this.sepApptMenu1.Text = "-";
             // 
             // mnuNoShow
             // 
-            this.mnuNoShow.Index = 4;
+            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);
@@ -459,43 +501,60 @@
             // mnuNoShowUndo
             // 
-            this.mnuNoShowUndo.Index = 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);
             // 
-            // menuItem8
-            // 
-            this.menuItem8.Index = 6;
-            this.menuItem8.Text = "-";
-            // 
-            // mnuCopyAppointment
-            // 
-            this.mnuCopyAppointment.Index = 7;
-            this.mnuCopyAppointment.Text = "&Copy  Appointment to Clipboard";
-            this.mnuCopyAppointment.Click += new System.EventHandler(this.mnuCopyAppointment_Click);
-            // 
-            // mnuWalkIn
-            // 
-            this.mnuWalkIn.Index = 8;
-            this.mnuWalkIn.Text = "Create Wal&k-In Appointment";
-            this.mnuWalkIn.Click += new System.EventHandler(this.mnuWalkIn_Click);
+            // sepApptMenu2
+            // 
+            this.sepApptMenu2.Index = 9;
+            this.sepApptMenu2.Text = "-";
+            // 
+            // mnuCheckIn
+            // 
+            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);
+            // 
+            // mnuUndoCheckin
+            // 
+            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
+            // 
+            this.sepApptMenu3.Index = 12;
+            this.sepApptMenu3.Text = "-";
             // 
             // mnuFindAppt
             // 
-            this.mnuFindAppt.Index = 9;
+            this.mnuFindAppt.Index = 13;
             this.mnuFindAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlF;
             this.mnuFindAppt.Text = "&Find Empty Slots";
             this.mnuFindAppt.Click += new System.EventHandler(this.mnuFindAppt_Click);
             // 
-            // mnuCheckIn
-            // 
-            this.mnuCheckIn.Index = 10;
-            this.mnuCheckIn.Text = "Check &In Patient";
-            this.mnuCheckIn.Click += new System.EventHandler(this.mnuCheckIn_Click);
+            // mnuCopyAppointment
+            // 
+            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);
             // 
             // mnuViewPatientAppts
             // 
-            this.mnuViewPatientAppts.Index = 11;
+            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);
+            // 
+            // mnuReprintApptSlip
+            // 
+            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
@@ -519,4 +578,5 @@
             this.mnuDisplayWalkIns.Checked = true;
             this.mnuDisplayWalkIns.Index = 0;
+            this.mnuDisplayWalkIns.Shortcut = System.Windows.Forms.Shortcut.F12;
             this.mnuDisplayWalkIns.Text = "&Display Walk-Ins";
             this.mnuDisplayWalkIns.Click += new System.EventHandler(this.mnuDisplayWalkIns_Click);
@@ -592,5 +652,7 @@
             // mnuViewScheduleTree
             // 
+            this.mnuViewScheduleTree.Checked = true;
             this.mnuViewScheduleTree.Index = 6;
+            this.mnuViewScheduleTree.Shortcut = System.Windows.Forms.Shortcut.F4;
             this.mnuViewScheduleTree.Text = "&Schedule Tree";
             this.mnuViewScheduleTree.Click += new System.EventHandler(this.mnuViewScheduleTree_Click);
@@ -645,10 +707,10 @@
             // 
             this.tvSchedules.BackColor = System.Drawing.SystemColors.ControlLight;
-            this.tvSchedules.ContextMenu = this.contextMenu1;
+            this.tvSchedules.ContextMenu = this.ctxResourceTree;
             this.tvSchedules.Dock = System.Windows.Forms.DockStyle.Left;
             this.tvSchedules.HotTracking = true;
             this.tvSchedules.Location = new System.Drawing.Point(0, 0);
             this.tvSchedules.Name = "tvSchedules";
-            this.tvSchedules.Size = new System.Drawing.Size(128, 317);
+            this.tvSchedules.Size = new System.Drawing.Size(128, 392);
             this.tvSchedules.Sorted = true;
             this.tvSchedules.TabIndex = 1;
@@ -658,7 +720,7 @@
             this.tvSchedules.MouseEnter += new System.EventHandler(this.tvSchedules_MouseEnter);
             // 
-            // contextMenu1
-            // 
-            this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
+            // ctxResourceTree
+            // 
+            this.ctxResourceTree.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
             this.ctxOpenSchedule,
             this.ctxEditAvailability,
@@ -668,5 +730,5 @@
             this.ctxPrintScheduleT1,
             this.ctxPrintScheduleT3});
-            this.contextMenu1.Popup += new System.EventHandler(this.contextMenu1_Popup);
+            this.ctxResourceTree.Popup += new System.EventHandler(this.contextMenu1_Popup);
             // 
             // ctxOpenSchedule
@@ -719,5 +781,5 @@
             this.panelRight.Location = new System.Drawing.Point(996, 0);
             this.panelRight.Name = "panelRight";
-            this.panelRight.Size = new System.Drawing.Size(128, 317);
+            this.panelRight.Size = new System.Drawing.Size(128, 392);
             this.panelRight.TabIndex = 3;
             this.panelRight.Visible = false;
@@ -815,5 +877,5 @@
             this.panelCenter.Location = new System.Drawing.Point(136, 24);
             this.panelCenter.Name = "panelCenter";
-            this.panelCenter.Size = new System.Drawing.Size(857, 269);
+            this.panelCenter.Size = new System.Drawing.Size(857, 344);
             this.panelCenter.TabIndex = 7;
             // 
@@ -822,14 +884,16 @@
             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.ctxCalGridSep1,
             this.ctxCalGridNoShow,
             this.ctxCalGridNoShowUndo,
-            this.menuItem9,
+            this.ctxCalGridSep2,
             this.ctxCalGridWalkin,
-            this.menuItem10,
+            this.ctxCalGridSep3,
             this.ctxCalGridReprintApptSlip});
             this.ctxCalendarGrid.Popup += new System.EventHandler(this.ctxCalendarGrid_Popup);
@@ -841,7 +905,13 @@
             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 = 1;
+            this.ctxCalGridEdit.Index = 2;
             this.ctxCalGridEdit.Text = "Edit Appointment";
             this.ctxCalGridEdit.Click += new System.EventHandler(this.ctxCalGridEdit_Click);
@@ -849,11 +919,17 @@
             // ctxCalGridDelete
             // 
-            this.ctxCalGridDelete.Index = 2;
+            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 = 3;
+            this.ctxCalGridCheckIn.Index = 5;
             this.ctxCalGridCheckIn.Text = "Check In Patient";
             this.ctxCalGridCheckIn.Click += new System.EventHandler(this.ctxCalGridCheckIn_Click);
@@ -861,16 +937,16 @@
             // ctxCalGridUndoCheckin
             // 
-            this.ctxCalGridUndoCheckin.Index = 4;
+            this.ctxCalGridUndoCheckin.Index = 6;
             this.ctxCalGridUndoCheckin.Text = "&Undo Check In";
             this.ctxCalGridUndoCheckin.Click += new System.EventHandler(this.ctxCalGridUndoCheckin_Click);
             // 
-            // menuItem2
-            // 
-            this.menuItem2.Index = 5;
-            this.menuItem2.Text = "-";
+            // ctxCalGridSep1
+            // 
+            this.ctxCalGridSep1.Index = 7;
+            this.ctxCalGridSep1.Text = "-";
             // 
             // ctxCalGridNoShow
             // 
-            this.ctxCalGridNoShow.Index = 6;
+            this.ctxCalGridNoShow.Index = 8;
             this.ctxCalGridNoShow.Text = "Mark as No Show";
             this.ctxCalGridNoShow.Click += new System.EventHandler(this.ctxCalGridNoShow_Click);
@@ -878,27 +954,27 @@
             // ctxCalGridNoShowUndo
             // 
-            this.ctxCalGridNoShowUndo.Index = 7;
+            this.ctxCalGridNoShowUndo.Index = 9;
             this.ctxCalGridNoShowUndo.Text = "Undo NoShow";
             this.ctxCalGridNoShowUndo.Click += new System.EventHandler(this.ctxCalGridNoShowUndo_Click);
             // 
-            // menuItem9
-            // 
-            this.menuItem9.Index = 8;
-            this.menuItem9.Text = "-";
+            // ctxCalGridSep2
+            // 
+            this.ctxCalGridSep2.Index = 10;
+            this.ctxCalGridSep2.Text = "-";
             // 
             // ctxCalGridWalkin
             // 
-            this.ctxCalGridWalkin.Index = 9;
+            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 = 10;
-            this.menuItem10.Text = "-";
+            // ctxCalGridSep3
+            // 
+            this.ctxCalGridSep3.Index = 12;
+            this.ctxCalGridSep3.Text = "-";
             // 
             // ctxCalGridReprintApptSlip
             // 
-            this.ctxCalGridReprintApptSlip.Index = 11;
+            this.ctxCalGridReprintApptSlip.Index = 13;
             this.ctxCalGridReprintApptSlip.Text = "&Reprint Appointment Slip";
             this.ctxCalGridReprintApptSlip.Click += new System.EventHandler(this.ctxCalGridReprintApptSlip_Click);
@@ -908,5 +984,5 @@
             this.panelBottom.Controls.Add(this.statusBar1);
             this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
-            this.panelBottom.Location = new System.Drawing.Point(136, 293);
+            this.panelBottom.Location = new System.Drawing.Point(136, 368);
             this.panelBottom.Name = "panelBottom";
             this.panelBottom.Size = new System.Drawing.Size(857, 24);
@@ -926,5 +1002,5 @@
             this.splitter1.Location = new System.Drawing.Point(128, 24);
             this.splitter1.Name = "splitter1";
-            this.splitter1.Size = new System.Drawing.Size(8, 293);
+            this.splitter1.Size = new System.Drawing.Size(8, 368);
             this.splitter1.TabIndex = 9;
             this.splitter1.TabStop = false;
@@ -935,5 +1011,5 @@
             this.splitter2.Location = new System.Drawing.Point(993, 24);
             this.splitter2.Name = "splitter2";
-            this.splitter2.Size = new System.Drawing.Size(3, 293);
+            this.splitter2.Size = new System.Drawing.Size(3, 368);
             this.splitter2.TabIndex = 10;
             this.splitter2.TabStop = false;
@@ -958,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, 269);
+            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;
@@ -971,5 +1047,5 @@
             // 
             this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
-            this.ClientSize = new System.Drawing.Size(1124, 317);
+            this.ClientSize = new System.Drawing.Size(1124, 392);
             this.Controls.Add(this.panelCenter);
             this.Controls.Add(this.panelBottom);
@@ -1082,24 +1158,33 @@
 		#endregion
 
-
 		#region AppointmentMenu Handlers
 
 		private void mnuAppointment_Popup(object sender, System.EventArgs e)
 		{
-			bool bEnabled = (this.Document.Resources.Count > 0)? true : false ;
-			this.mnuFindAppt.Enabled = bEnabled;
-
-			//Toggle availability of make, edit, checkin and delete appointments
-			//based on whether a range is selected.
-
-			mnuNewAppointment.Enabled = AddAppointmentEnabled();
-			this.mnuWalkIn.Enabled = mnuNewAppointment.Enabled;
-			bool bEditAppointments = this.EditAppointmentEnabled();
-
-			mnuDeleteAppointment.Enabled = bEditAppointments;
-			mnuCheckIn.Enabled = bEditAppointments;
-			mnuEditAppointment.Enabled = bEditAppointments;
-			mnuNoShow.Enabled = bEditAppointments;
-			mnuNoShowUndo.Enabled = bEditAppointments;
+            // our flags
+			bool _findApptsEnabled = (this.Document.Resources.Count > 0)? true : false ;
+            bool _addApptsEnabled = AddAppointmentEnabled();
+            bool _editApptsEnabled = EditAppointmentEnabled();
+            bool _isRadAppt = IsThisARadiologyResource();
+            bool _noShowEnabled = NoShowEnabled();
+            bool _undoCheckinEnabled = UndoCheckinEnabled();
+            //end flags
+
+            mnuNewAppointment.Enabled = _addApptsEnabled && !_isRadAppt;
+            mnuWalkIn.Enabled = _addApptsEnabled && !_isRadAppt;
+            mnuMkRadAppt.Enabled = _isRadAppt && _addApptsEnabled;
+
+            mnuEditAppointment.Enabled = _editApptsEnabled && !_isRadAppt;
+            mnuDeleteAppointment.Enabled = _editApptsEnabled && !_isRadAppt;
+            mnuCancelRadAppt.Enabled = _isRadAppt && _editApptsEnabled;
+            mnuNoShow.Enabled = _noShowEnabled && _editApptsEnabled;
+            mnuNoShowUndo.Enabled = !_noShowEnabled && _editApptsEnabled;
+            mnuCheckIn.Enabled = _editApptsEnabled && !_isRadAppt;
+            mnuUndoCheckin.Enabled = _undoCheckinEnabled && !_isRadAppt;
+
+            mnuFindAppt.Enabled = _findApptsEnabled;
+            mnuCopyAppointment.Enabled = _editApptsEnabled && !_isRadAppt;
+            mnuViewPatientAppts.Enabled = true;
+            mnuReprintApptSlip.Enabled = _editApptsEnabled;
 		}
 
@@ -1118,10 +1203,10 @@
 				foreach (CGAppointment a in this.calendarGrid1.SelectedAppointments.AppointmentTable.Values)
 				{
-					if (m_ClipList.AppointmentTable.Contains((int) a.AppointmentKey))
+                    if (m_ClipList.AppointmentTable.Contains((int)a.AppointmentKey))
 					{
 						return;
 					}
 					m_ClipList.AddAppointment(a);
-					lstClip.Items.Add(a.PatientName);
+                    lstClip.Items.Add(a);
 				}
 			}
@@ -1162,4 +1247,29 @@
         {
             AppointmentUndoCheckin();
+        }
+
+        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);
         }
 
@@ -1292,8 +1402,46 @@
 		private void ctxCalendarGrid_Popup(object sender, System.EventArgs e)
 		{
+            bool bEditAppointments = (EditAppointmentEnabled() && (calendarGrid1.SelectedAppointment > 0)) ;
+
+            if (IsThisARadiologyResource())//this is a radiology resource
+            {
+                ctxCalGridAdd.Visible = false;
+                ctxCalGridDelete.Visible = false;
+                ctxCalGridEdit.Visible = false;
+                ctxCalGridCheckIn.Visible = false;
+                ctxCalGridNoShow.Visible = false;
+                ctxCalGridNoShowUndo.Visible = false;
+                ctxCalGridWalkin.Visible = false;
+                ctxCalGridUndoCheckin.Visible = false;
+                ctxCalGridSep1.Visible = false;
+                ctxCalGridSep2.Visible = false;
+
+                ctxCalGridMkRadAppt.Visible = true;
+                ctxCalGridCancelRadAppt.Visible = true;
+
+                
+            }
+
+            else // this is a normal resource
+            {
+                ctxCalGridAdd.Visible = true;
+                ctxCalGridDelete.Visible = true;
+                ctxCalGridEdit.Visible = true;
+                ctxCalGridCheckIn.Visible = true;
+                ctxCalGridNoShow.Visible = true;
+                ctxCalGridNoShowUndo.Visible = true;
+                ctxCalGridWalkin.Visible = true;
+                ctxCalGridUndoCheckin.Visible = true;
+                ctxCalGridSep1.Visible = true;
+                ctxCalGridSep2.Visible = true;
+
+                ctxCalGridMkRadAppt.Visible = false;
+                ctxCalGridCancelRadAppt.Visible = false;
+            }
+
 			//Toggle availability of make, edit, checkin and delete appointments
 			//based on whether appropriate element is selected.
 			ctxCalGridAdd.Enabled = AddAppointmentEnabled();
-			bool bEditAppointments = (EditAppointmentEnabled() && (calendarGrid1.SelectedAppointment > 0)) ;
+			
 			ctxCalGridDelete.Enabled = bEditAppointments;
 			ctxCalGridEdit.Enabled = bEditAppointments;
@@ -1302,8 +1450,10 @@
             ctxCalGridNoShowUndo.Enabled = !NoShowEnabled() && calendarGrid1.SelectedAppointment > 0;
 			ctxCalGridWalkin.Enabled = ctxCalGridAdd.Enabled;
-            //smh new code
             ctxCalGridReprintApptSlip.Enabled = bEditAppointments;
             ctxCalGridUndoCheckin.Enabled = UndoCheckinEnabled();
-            //end new code
+
+            //if the rad ones are visible, then these apply
+            ctxCalGridMkRadAppt.Enabled = !bEditAppointments;
+            ctxCalGridCancelRadAppt.Enabled = bEditAppointments;
         }
 
@@ -1344,5 +1494,14 @@
 		}
 
-        //new code smh
+        private void ctxCalGridMkRadAppt_Click(object sender, EventArgs e)
+        {
+            AppointmentAddNewRadiology();
+        }
+
+        private void ctxCalGridCancelRadAppt_Click(object sender, EventArgs e)
+        {
+            AppointmentDeleteOneRadiology();
+        }
+
         private void ctxCalGridReprintApptSlip_Click(object sender, EventArgs e)
         {
@@ -1354,9 +1513,65 @@
             PrintAppointmentSlip(a);
         }
-        //end new code
 
 		#endregion ctxCalGridMenu Handlers
 
 		#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!
+            //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)
+                return false;
+
+            //If an appointment is selected then...
+            if (this.calendarGrid1.SelectedAppointment > 0)
+            {
+                CGAppointment appt = this.Appointments.AppointmentTable[this.calendarGrid1.SelectedAppointment] as CGAppointment;
+                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 for sure dealing with a cell.
+            //We need to determine if the cell resource is mapped to a Radiology Hospital Location.
+            DateTime dStart;
+            DateTime dEnd;
+            string sResource;
+            
+            // Get resource
+            bool bRet = this.calendarGrid1.GetSelectedTime(out dStart, out dEnd, out sResource);
+            
+            // If we fail, return false (but this is not supposed to ever happen)
+            if (bRet == false)
+            {
+                return false;
+            }
+
+            // see if resource is mapped to a Radiology Hospital Location.
+            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()
@@ -1981,4 +2196,28 @@
 
 		/// <summary>
+        /// Delete one Radiology Appointment
+        /// </summary>
+        private void AppointmentDeleteOneRadiology()
+        {
+            Debug.Assert(this.calendarGrid1.SelectedAppointment > 0);
+
+            CGAppointment a = this.Appointments.AppointmentTable[this.calendarGrid1.SelectedAppointment] as CGAppointment;
+
+            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
+            CGDocumentManager.Current.DAL.CancelRadiologyExam(a.PatientID, a.RadiologyExamIEN.Value);
+
+            //Now, Cancel the appointment
+            this.Document.DeleteAppointment(a.AppointmentKey);
+
+            //redraw the grid to display new set of appointments after this appt was removed.
+            this.UpdateArrays();
+        }
+
+		/// <summary>
 		/// Delete appointment ApptID
 		/// </summary>
@@ -2015,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;
@@ -2381,4 +2625,83 @@
 		}
 
+        /// <summary>
+        /// Add a new Radiology Appointment to VISTA (ÒÝÊì as my mom calls it)
+        /// </summary>
+        private void AppointmentAddNewRadiology()
+        {
+            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();
+            dPat.DocManager = m_DocManager;
+
+            if (dPat.ShowDialog(this) == DialogResult.Cancel)
+            {
+                return;
+            }
+
+            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())
+            {
+                MessageBox.Show("Patient does not have any radiology exams to register.");
+                return;
+            }
+
+            //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;
+
+            //Save Radiology Exam Schedule Info to Radiology Package
+            CGDocumentManager.Current.DAL.ScheduleRadiologyExam(DFN, _examien, dStart);
+
+            //Now create and save the appointment
+            CGAppointment appt = new CGAppointment();
+            string _sNote = "Radiology Exam (" + _examien + "): " + _procedurename;
+            appt.CreateAppointment(dStart, dEnd, _sNote, 0, sResource);
+            appt.PatientID = Int32.Parse(dPat.PatientIEN);
+            appt.PatientName = dPat.PatientName;
+            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
+            this.UpdateArrays();
+        }
+
+
         #region BMX Event Processing and Callbacks
         /// <summary>
@@ -2892,7 +3215,23 @@
 			try
 			{
+                // added April 13 2011
+                // Can't edit radiology appointments (Why? b/c it's intimately tied to Radiology Entry of the Hosp Loc)
+                if (e.Appointment.RadiologyExamIEN.HasValue && e.Appointment.RadiologyExamIEN.Value > 0)
+                {
+                    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;
+                }
+                
 				if (e.Appointment.CheckInTime.Ticks > 0)
 				{
-					MessageBox.Show("You cannot change the appointment time because the patient has already checked in.", "Clinical Scheduling",  MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
+					MessageBox.Show("You cannot change the appointment time because the patient has already checked in.", "Clinical Scheduling");
 					return;
 				}
@@ -3566,7 +3905,4 @@
 
 
-
-
-
     }//End class
 }
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/CGView.resx
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/CGView.resx	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/CGView.resx	(revision 1174)
@@ -121,5 +121,5 @@
     <value>17, 17</value>
   </metadata>
-  <metadata name="contextMenu1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="ctxResourceTree.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>126, 17</value>
   </metadata>
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/CalendarGrid.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/CalendarGrid.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/CalendarGrid.cs	(revision 1174)
@@ -480,5 +480,5 @@
                     {
                         rect.Inflate(-10, 0);
-                        num = (int) this.m_ApptOverlapTable[appointment.m_nKey];
+                        num = (int) this.m_ApptOverlapTable[appointment.AppointmentKey];
                         num2 = rect.Right - rect.Left;
                         x = num2 / (num + 1);
@@ -1267,5 +1267,5 @@
                     x = (this.m_sResourcesArray.Count > 1) ? (((int) this.m_ColumnInfoTable[resource]) + 1) : appointment.StartTime.DayOfYear;
                     Rectangle rectangle = new Rectangle(x, y, 1, num2 - y);
-                    hashtable.Add(appointment.m_nKey, rectangle);
+                    hashtable.Add(appointment.AppointmentKey, rectangle);
                 }
             }
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/ClinicalScheduling.csproj	(revision 1174)
@@ -140,5 +140,12 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="DRadExamsSelect.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="DRadExamsSelect.Designer.cs">
+      <DependentUpon>DRadExamsSelect.cs</DependentUpon>
+    </Compile>
     <Compile Include="Provider.cs" />
+    <Compile Include="RadiologyExam.cs" />
     <Compile Include="strings.ar.Designer.cs">
       <AutoGen>True</AutoGen>
@@ -152,5 +159,4 @@
     </Compile>
     <Compile Include="UserPreferences.cs" />
-    <None Include="app.config" />
     <None Include="dsPatientApptDisplay2.xsc">
       <DependentUpon>dsPatientApptDisplay2.xsd</DependentUpon>
@@ -391,4 +397,7 @@
       <DependentUpon>DPatientLookup.cs</DependentUpon>
       <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="DRadExamsSelect.resx">
+      <DependentUpon>DRadExamsSelect.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="DResource.resx">
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/DAL.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/DAL.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/DAL.cs	(revision 1174)
@@ -1,3 +1,5 @@
-﻿using System;
+﻿/* Licensed under LGPL */
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -187,4 +189,50 @@
 
         /// <summary>
+        /// Gets All radiology exams for a Patient in a specific hospital location
+        /// </summary>
+        /// <param name="DFN"></param>
+        /// <param name="SCIEN">Hospital Location IEN</param>
+        /// <returns>Generic List of type RadiologyExam</returns>
+        public List<RadiologyExam> GetRadiologyExamsForPatientinHL(int DFN, int SCIEN)
+        {
+            string cmd = string.Format("BSDX GET RAD EXAM FOR PT^{0}^{1}", DFN, SCIEN);
+            DataTable tbl = RPMSDataTable(cmd, "");
+            return (from row in tbl.AsEnumerable()
+                    select new RadiologyExam
+                    {
+                        IEN = row.Field<int>("BMXIEN"),
+                        Status = row.Field<string>("STATUS"),
+                        Procedure = row.Field<string>("PROCEDURE"),
+                        RequestDate = row.Field<DateTime>("REQUEST_DATE")
+                    }).ToList();
+        }
+
+        /// <summary>
+        /// Schedules a Single Radiology Exam for a patient
+        /// </summary>
+        /// <param name="DFN"></param>
+        /// <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>
+        /// Put the radiology exam on Hold because the appointment has been cancelled for it
+        /// </summary>
+        /// <param name="DFN"></param>
+        /// <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)
+        {
+            string result = _thisConnection.bmxNetLib.TransmitRPC("BSDX HOLD RAD EXAM", string.Format("{0}^{1}", DFN, examIEN));
+            return result == "1" ? true : false;
+        }
+
+        /// <summary>
         /// Save User Preference in DB For Printing Routing Slip
         /// Uses Parameter BSDX AUTO PRINT RS
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/DRadExamsSelect.Designer.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/DRadExamsSelect.Designer.cs	(revision 1174)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/DRadExamsSelect.Designer.cs	(revision 1174)
@@ -0,0 +1,195 @@
+﻿namespace IndianHealthService.ClinicalScheduling
+{
+    partial class DRadExamsSelect
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.lstExams = new System.Windows.Forms.ListBox();
+            this.tableOKCancel = new System.Windows.Forms.TableLayoutPanel();
+            this.btnOK = new System.Windows.Forms.Button();
+            this.btnCancel = new System.Windows.Forms.Button();
+            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();
+            this.splitContainer1.Panel1.SuspendLayout();
+            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();
+            // 
+            // lstExams
+            // 
+            this.lstExams.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.lstExams.FormattingEnabled = true;
+            this.lstExams.Location = new System.Drawing.Point(0, 0);
+            this.lstExams.Name = "lstExams";
+            this.lstExams.Size = new System.Drawing.Size(497, 237);
+            this.lstExams.TabIndex = 0;
+            this.lstExams.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.lstExams_MouseDoubleClick);
+            // 
+            // tableOKCancel
+            // 
+            this.tableOKCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.tableOKCancel.ColumnCount = 2;
+            this.tableOKCancel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableOKCancel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableOKCancel.Controls.Add(this.btnOK, 0, 0);
+            this.tableOKCancel.Controls.Add(this.btnCancel, 1, 0);
+            this.tableOKCancel.Location = new System.Drawing.Point(328, -1);
+            this.tableOKCancel.Name = "tableOKCancel";
+            this.tableOKCancel.RowCount = 1;
+            this.tableOKCancel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableOKCancel.Size = new System.Drawing.Size(166, 29);
+            this.tableOKCancel.TabIndex = 1;
+            // 
+            // btnOK
+            // 
+            this.btnOK.Location = new System.Drawing.Point(3, 3);
+            this.btnOK.Name = "btnOK";
+            this.btnOK.Size = new System.Drawing.Size(75, 23);
+            this.btnOK.TabIndex = 0;
+            this.btnOK.Text = "OK";
+            this.btnOK.UseVisualStyleBackColor = true;
+            this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
+            // 
+            // btnCancel
+            // 
+            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+            this.btnCancel.Location = new System.Drawing.Point(86, 3);
+            this.btnCancel.Name = "btnCancel";
+            this.btnCancel.Size = new System.Drawing.Size(75, 23);
+            this.btnCancel.TabIndex = 1;
+            this.btnCancel.Text = "Cancel";
+            this.btnCancel.UseVisualStyleBackColor = true;
+            // 
+            // lblInfo
+            // 
+            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
+            // 
+            this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+            this.splitContainer1.Name = "splitContainer1";
+            this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
+            // 
+            // splitContainer1.Panel1
+            // 
+            this.splitContainer1.Panel1.Controls.Add(this.lstExams);
+            // 
+            // splitContainer1.Panel2
+            // 
+            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
+            // 
+            this.AcceptButton = this.btnOK;
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.CancelButton = this.btnCancel;
+            this.ClientSize = new System.Drawing.Size(497, 302);
+            this.ControlBox = false;
+            this.Controls.Add(this.splitContainer1);
+            this.MinimumSize = new System.Drawing.Size(500, 250);
+            this.Name = "DRadExamsSelect";
+            this.Text = "Select an Exam";
+            this.tableOKCancel.ResumeLayout(false);
+            this.splitContainer1.Panel1.ResumeLayout(false);
+            this.splitContainer1.Panel2.ResumeLayout(false);
+            ((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);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ListBox lstExams;
+        private System.Windows.Forms.TableLayoutPanel tableOKCancel;
+        private System.Windows.Forms.Button btnOK;
+        private System.Windows.Forms.Button btnCancel;
+        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/trunk/cs/bsdx0200GUISourceCode/DRadExamsSelect.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/DRadExamsSelect.cs	(revision 1174)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/DRadExamsSelect.cs	(revision 1174)
@@ -0,0 +1,82 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace IndianHealthService.ClinicalScheduling
+{
+    /// <summary>
+    /// Form which displays exams for User so that the user would pick one of them
+    /// for which to make an appointment
+    /// </summary>
+    public partial class DRadExamsSelect : Form
+    {
+        //return values
+        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>
+        /// ctor
+        /// </summary>
+        /// <param name="_radExams">Strongly Typed Table of Exams</param>
+        public DRadExamsSelect(List<RadiologyExam> _radExams)
+        {
+            InitializeComponent();
+
+            this.lstExams.DataSource = _radExams;
+            this.lstExams.SelectionMode = SelectionMode.One;
+
+            //Set Default Checkbox
+            _myCodeIsFiringIstheCheckBoxChangedEvent = true;
+            chkPrint.Checked = CGDocumentManager.Current.UserPreferences.PrintAppointmentSlipAutomacially;
+            _myCodeIsFiringIstheCheckBoxChangedEvent = false;
+        }
+
+        private void btnOK_Click(object sender, EventArgs e)
+        {
+            SharedFinishLine();
+        }
+
+        private void lstExams_MouseDoubleClick(object sender, MouseEventArgs e)
+        {
+            SharedFinishLine();
+        }
+
+        private void SharedFinishLine()
+        {
+            if (lstExams.SelectedIndex < 0)
+            {
+                this.DialogResult = DialogResult.None;
+                return;
+            }
+
+            ExamIEN = (lstExams.Items[lstExams.SelectedIndex] as RadiologyExam).IEN;
+            ProcedureName = (lstExams.Items[lstExams.SelectedIndex] as RadiologyExam).Procedure;
+            this.DialogResult = DialogResult.OK;
+        }
+
+        /// <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/trunk/cs/bsdx0200GUISourceCode/DRadExamsSelect.resx
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/DRadExamsSelect.resx	(revision 1174)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/DRadExamsSelect.resx	(revision 1174)
@@ -0,0 +1,120 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/FMDateTime.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/FMDateTime.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/FMDateTime.cs	(revision 1174)
@@ -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/trunk/cs/bsdx0200GUISourceCode/Patient.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/Patient.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/Patient.cs	(revision 1174)
@@ -18,4 +18,5 @@
     /// Puppet standing for a Real Patient
     /// </summary>
+    [Serializable]
     public class Patient
     {
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/Provider.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/Provider.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/Provider.cs	(revision 1174)
@@ -9,4 +9,5 @@
     /// Provider puppet
     /// </summary>
+    [Serializable]
     public class Provider
     {
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/RadiologyExam.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/RadiologyExam.cs	(revision 1174)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/RadiologyExam.cs	(revision 1174)
@@ -0,0 +1,29 @@
+﻿/* Licensed under LGPL */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace IndianHealthService.ClinicalScheduling
+{   
+    /// <summary>
+    /// 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
+    {
+        public int IEN { get; set; }
+        public string Status { get; set; }
+        public string Procedure { get; set; }
+        public DateTime RequestDate { get; set; }
+
+        public override string ToString()
+        {
+            return Procedure + "\t" + "Requested: " + RequestDate.ToString();
+        }
+    }
+}
Index: Scheduling/trunk/cs/bsdx0200GUISourceCode/UserPreferences.cs
===================================================================
--- Scheduling/trunk/cs/bsdx0200GUISourceCode/UserPreferences.cs	(revision 1171)
+++ Scheduling/trunk/cs/bsdx0200GUISourceCode/UserPreferences.cs	(revision 1174)
@@ -1,3 +1,5 @@
-﻿using System;
+﻿/*Licensed under LGPL*/
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
