Index: /Scheduling/trunk/cs/bsdx0200GUISourceCode/CGView.cs
===================================================================
--- /Scheduling/trunk/cs/bsdx0200GUISourceCode/CGView.cs	(revision 1185)
+++ /Scheduling/trunk/cs/bsdx0200GUISourceCode/CGView.cs	(revision 1186)
@@ -2216,5 +2216,14 @@
             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
+            //Can we cancel the appointment?
+            bool _canCancel = CGDocumentManager.Current.DAL.CanCancelRadExam(a.RadiologyExamIEN.Value);
+
+            if (!_canCancel)
+            {
+                MessageBox.Show(this,"You cannot cancel this request. It has either been discontinued, or registered for an examination");
+                return;
+            }
+
+            //Prior to making expensive db calls, tell the grid nothing is selected anymore so nobody would try to pick it up later
             this.calendarGrid1.SelectedAppointment = 0;
 
@@ -2228,4 +2237,5 @@
             this.UpdateArrays();
 
+            //Tell other instances that this schedule has been updated
             RaiseRPMSEvent("BSDX SCHEDULE", a.Resource);
         }
@@ -3470,4 +3480,11 @@
 					return;
 				}
+
+                if (a.RadiologyExamIEN.HasValue)
+                {
+                    MessageBox.Show("Cannot move a radiology appointment to the clipboard");
+                    return;
+                }
+
 				m_ClipList.AddAppointment(a);
 				lstClip.Items.Add(a);
Index: /Scheduling/trunk/cs/bsdx0200GUISourceCode/DAL.cs
===================================================================
--- /Scheduling/trunk/cs/bsdx0200GUISourceCode/DAL.cs	(revision 1185)
+++ /Scheduling/trunk/cs/bsdx0200GUISourceCode/DAL.cs	(revision 1186)
@@ -233,4 +233,15 @@
             return result == "1" ? true : false;
         }
+        
+        /// <summary>
+        /// Can we Cancel an Exam appointment? Exams that are discontinued, Active or Complete cannot be discontinued
+        /// </summary>
+        /// <param name="examIEN">IEN of exam in 75.1 (RAD/NUC MED ORDERS) file</param>
+        /// <returns>true or false</returns>
+        public bool CanCancelRadExam(int examIEN)
+        {
+            string result = _thisConnection.bmxNetLib.TransmitRPC("BSDX CAN HOLD RAD EXAM", examIEN.ToString());
+            return result == "1" ? true : false;
+        }
 
         /// <summary>
