diff --git a/cs/bsdx0200GUISourceCode/CGDocument.cs b/cs/bsdx0200GUISourceCode/CGDocument.cs
index e47b31e..7f91c50 100644
--- a/cs/bsdx0200GUISourceCode/CGDocument.cs
+++ b/cs/bsdx0200GUISourceCode/CGDocument.cs
@@ -798,7 +798,9 @@ namespace IndianHealthService.ClinicalScheduling
string sErrorID;
sErrorID = r["ERRORID"].ToString();
if ((sErrorID != "") || (nApptID < 1))
+ {
throw new Exception(sErrorID);
+ }
aCopy.AppointmentKey = nApptID;
this.m_appointments.AddAppointment(aCopy);
@@ -884,8 +886,10 @@ namespace IndianHealthService.ClinicalScheduling
if (this.m_appointments.AppointmentTable.ContainsKey(nApptID))
{
this.m_appointments.RemoveAppointment(nApptID);
- bool bRet = RefreshAvailabilitySchedule();
- UpdateAllViews();
+
+ // View responsible for deciding to redraw the grid; not the document now.
+ //bool bRet = RefreshAvailabilitySchedule();
+ //UpdateAllViews();
}
return "";
}
diff --git a/cs/bsdx0200GUISourceCode/CGView.cs b/cs/bsdx0200GUISourceCode/CGView.cs
index 5bf41e2..7718dc3 100644
--- a/cs/bsdx0200GUISourceCode/CGView.cs
+++ b/cs/bsdx0200GUISourceCode/CGView.cs
@@ -616,7 +616,7 @@ namespace IndianHealthService.ClinicalScheduling
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, 290);
+ this.tvSchedules.Size = new System.Drawing.Size(128, 400);
this.tvSchedules.Sorted = true;
this.tvSchedules.TabIndex = 1;
this.tvSchedules.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvSchedules_AfterSelect);
@@ -663,7 +663,7 @@ namespace IndianHealthService.ClinicalScheduling
this.panelRight.Dock = System.Windows.Forms.DockStyle.Right;
this.panelRight.Location = new System.Drawing.Point(941, 0);
this.panelRight.Name = "panelRight";
- this.panelRight.Size = new System.Drawing.Size(128, 290);
+ this.panelRight.Size = new System.Drawing.Size(128, 400);
this.panelRight.TabIndex = 3;
this.panelRight.Visible = false;
//
@@ -753,7 +753,6 @@ namespace IndianHealthService.ClinicalScheduling
this.lblResource.Name = "lblResource";
this.lblResource.Size = new System.Drawing.Size(456, 19);
this.lblResource.TabIndex = 2;
- this.lblResource.Text = "lblResource";
//
// panelCenter
//
@@ -761,7 +760,7 @@ namespace IndianHealthService.ClinicalScheduling
this.panelCenter.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelCenter.Location = new System.Drawing.Point(136, 24);
this.panelCenter.Name = "panelCenter";
- this.panelCenter.Size = new System.Drawing.Size(802, 242);
+ this.panelCenter.Size = new System.Drawing.Size(802, 352);
this.panelCenter.TabIndex = 7;
//
// ctxCalendarGrid
@@ -847,7 +846,7 @@ namespace IndianHealthService.ClinicalScheduling
//
this.panelBottom.Controls.Add(this.statusBar1);
this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.panelBottom.Location = new System.Drawing.Point(136, 266);
+ this.panelBottom.Location = new System.Drawing.Point(136, 376);
this.panelBottom.Name = "panelBottom";
this.panelBottom.Size = new System.Drawing.Size(802, 24);
this.panelBottom.TabIndex = 8;
@@ -865,7 +864,7 @@ namespace IndianHealthService.ClinicalScheduling
//
this.splitter1.Location = new System.Drawing.Point(128, 24);
this.splitter1.Name = "splitter1";
- this.splitter1.Size = new System.Drawing.Size(8, 266);
+ this.splitter1.Size = new System.Drawing.Size(8, 376);
this.splitter1.TabIndex = 9;
this.splitter1.TabStop = false;
//
@@ -874,7 +873,7 @@ namespace IndianHealthService.ClinicalScheduling
this.splitter2.Dock = System.Windows.Forms.DockStyle.Right;
this.splitter2.Location = new System.Drawing.Point(938, 24);
this.splitter2.Name = "splitter2";
- this.splitter2.Size = new System.Drawing.Size(3, 266);
+ this.splitter2.Size = new System.Drawing.Size(3, 376);
this.splitter2.TabIndex = 10;
this.splitter2.TabStop = false;
//
@@ -902,7 +901,7 @@ namespace IndianHealthService.ClinicalScheduling
this.calendarGrid1.Name = "calendarGrid1";
this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources")));
this.calendarGrid1.SelectedAppointment = 0;
- this.calendarGrid1.Size = new System.Drawing.Size(802, 242);
+ this.calendarGrid1.Size = new System.Drawing.Size(802, 352);
this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
this.calendarGrid1.TabIndex = 0;
this.calendarGrid1.TimeScale = 20;
@@ -915,7 +914,7 @@ namespace IndianHealthService.ClinicalScheduling
// CGView
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
- this.ClientSize = new System.Drawing.Size(1069, 290);
+ this.ClientSize = new System.Drawing.Size(1069, 400);
this.Controls.Add(this.panelCenter);
this.Controls.Add(this.panelBottom);
this.Controls.Add(this.splitter2);
@@ -1837,7 +1836,7 @@ namespace IndianHealthService.ClinicalScheduling
private void AppointmentDelete()
{
calendarGrid1.CGToolTip.Active = false;
- CGAppointments alRebookList = new CGAppointments();
+ CGAppointments alRebookList = new CGAppointments();
DCancelAppt dCancel = new DCancelAppt();
dCancel.InitializePage(this.m_DocManager);
@@ -1901,7 +1900,12 @@ namespace IndianHealthService.ClinicalScheduling
{
try
{
+ this.UpdateArrays();
RaiseRPMSEvent("BSDX SCHEDULE" , m_Document.DocName);
+
+ //Get the appointments and availabilities, async, from Server. Callback updates this thread's controls.
+ OnUpdateScheduleDelegate ousd = new OnUpdateScheduleDelegate(OnUpdateSchedule);
+ ousd.BeginInvoke(OnUpdateScheduleCallback, null);
}
catch (Exception ex)
{
@@ -2121,7 +2125,7 @@ namespace IndianHealthService.ClinicalScheduling
{
try
{
- CGAppointment appt = new CGAppointment();
+
//Get Time and Resource from Selected Cell
DateTime dStart = DateTime.Today;
@@ -2195,6 +2199,7 @@ namespace IndianHealthService.ClinicalScheduling
return;
}
+ CGAppointment appt = new CGAppointment();
appt.PatientID = Convert.ToInt32(dPat.PatientIEN);
appt.PatientName = dPat.PatientName;
appt.StartTime = dStart;
@@ -2323,6 +2328,9 @@ namespace IndianHealthService.ClinicalScheduling
/// Calls UpdateArrays via this.Invoke to make sure that the grid is redrawn on the UI thread
private void OnUpdateScheduleCallback(IAsyncResult itfAR)
{
+ // if the view meanwhile closed, just return
+ if (this == null) return;
+
OnUpdateScheduleDelegate d = new OnUpdateScheduleDelegate(UpdateArrays);
this.Invoke(d);
}
@@ -2709,6 +2717,11 @@ namespace IndianHealthService.ClinicalScheduling
UpdateStatusBar(e.StartTime, e.EndTime, sAccessType, sAvailabilityMessage);
}
+ ///
+ /// Fired during drag and drop, on the drop action.
+ ///
+ ///
+ ///
private void calendarGrid1_CGAppointmentChanged(object sender, IndianHealthService.ClinicalScheduling.CGAppointmentChangedArgs e)
{
try
@@ -2726,8 +2739,11 @@ namespace IndianHealthService.ClinicalScheduling
if (result == DialogResult.No) return;
}
+ //Can user edit destination resource?
if (EditAppointmentEnabled(e.Resource) == false)
return;
+
+ //Can user edit original schedule?
if (EditAppointmentEnabled(e.Appointment.Resource) == false)
return;
@@ -2771,11 +2787,29 @@ namespace IndianHealthService.ClinicalScheduling
}
}
- e.Appointment.StartTime = e.StartTime;
- e.Appointment.EndTime = e.EndTime;
- e.Appointment.Resource = e.Resource;
- e.Appointment.AccessTypeID = e.AccessTypeID;
- m_Document.CreateAppointment(e.Appointment);
+ //Create a new appointment using old data for patient demographics and note and new data
+ //for StartTime, EndTime, Resource, AccessTypeID
+ CGAppointment appt = new CGAppointment();
+ appt.PatientID = e.Appointment.PatientID;
+ appt.PatientName = e.Appointment.PatientName;
+ appt.StartTime = e.StartTime;
+ appt.EndTime = e.EndTime;
+ appt.Resource = e.Resource;
+ appt.Note = e.Appointment.Note;
+ appt.HealthRecordNumber = e.Appointment.HealthRecordNumber;
+ appt.AccessTypeID = e.AccessTypeID;
+ this.Document.CreateAppointment(appt);
+
+ //CGAppointment a = new CGAppointment();
+ //a.StartTime = e.StartTime;
+ ////e.Appointment.StartTime = e.StartTime
+ //a.EndTime = e.EndTime;
+ ////e.Appointment.EndTime = e.EndTime;
+ //a.Resource = e.Resource;
+ ////e.Appointment.Resource = e.Resource;
+ //a.AccessTypeID = e.AccessTypeID;
+ ////e.Appointment.AccessTypeID = e.AccessTypeID;
+ //m_Document.CreateAppointment(a);
string sError = AppointmentDeleteOne(e.Appointment.AppointmentKey);
@@ -2789,19 +2823,21 @@ namespace IndianHealthService.ClinicalScheduling
catch (Exception ex)
{
MessageBox.Show("Unable to change appointment " + ex.Message, "Clinical Scheduling");
- this.m_DocManager.UpdateViews();
+ //this.m_DocManager.UpdateViews();
return;
}
finally
{
-
+ this.UpdateArrays();
}
try
{
RaiseRPMSEvent("BSDX SCHEDULE" , e.Resource);
if (e.Resource != e.OldResource)
RaiseRPMSEvent("BSDX SCHEDULE", e.OldResource);
- this.m_DocManager.UpdateViews(e.Resource, e.OldResource);
+
+ //That will take too long. Don't do it. Try and see what happens when you come
+ //this.m_DocManager.UpdateViews(e.Resource, e.OldResource);
}
catch (Exception ex)
{
diff --git a/cs/bsdx0200GUISourceCode/ClinicalScheduling.sln b/cs/bsdx0200GUISourceCode/ClinicalScheduling.sln
index b7838e6..ca69e2a 100644
--- a/cs/bsdx0200GUISourceCode/ClinicalScheduling.sln
+++ b/cs/bsdx0200GUISourceCode/ClinicalScheduling.sln
@@ -10,12 +10,12 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8C05C4F7-FE81-479F-87A0-44E04C7F6E0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8C05C4F7-FE81-479F-87A0-44E04C7F6E0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8C05C4F7-FE81-479F-87A0-44E04C7F6E0F}.Release|Any CPU.ActiveCfg = Debug|Any CPU
- {8C05C4F7-FE81-479F-87A0-44E04C7F6E0F}.Release|Any CPU.Build.0 = Debug|Any CPU
- {DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8C05C4F7-FE81-479F-87A0-44E04C7F6E0F}.Debug|Any CPU.ActiveCfg = Release|Any CPU
+ {8C05C4F7-FE81-479F-87A0-44E04C7F6E0F}.Debug|Any CPU.Build.0 = Release|Any CPU
+ {8C05C4F7-FE81-479F-87A0-44E04C7F6E0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8C05C4F7-FE81-479F-87A0-44E04C7F6E0F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}.Debug|Any CPU.ActiveCfg = Release|Any CPU
+ {DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}.Debug|Any CPU.Build.0 = Release|Any CPU
{DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE8E4CC9-4F3A-4E32-8DFE-EE5692E8FC45}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
diff --git a/cs/bsdx0200GUISourceCode/ClinicalScheduling.suo b/cs/bsdx0200GUISourceCode/ClinicalScheduling.suo
index 8df8d94..1145cae 100644
Binary files a/cs/bsdx0200GUISourceCode/ClinicalScheduling.suo and b/cs/bsdx0200GUISourceCode/ClinicalScheduling.suo differ
diff --git a/cs/bsdx0200GUISourceCode/bin/Release/BMXNet23.dll b/cs/bsdx0200GUISourceCode/bin/Release/BMXNet23.dll
index 50e7aea..a5cbdeb 100644
Binary files a/cs/bsdx0200GUISourceCode/bin/Release/BMXNet23.dll and b/cs/bsdx0200GUISourceCode/bin/Release/BMXNet23.dll differ
diff --git a/cs/bsdx0200GUISourceCode/bin/Release/ClinicalScheduling.exe b/cs/bsdx0200GUISourceCode/bin/Release/ClinicalScheduling.exe
index 83c5f6b..b763385 100644
Binary files a/cs/bsdx0200GUISourceCode/bin/Release/ClinicalScheduling.exe and b/cs/bsdx0200GUISourceCode/bin/Release/ClinicalScheduling.exe differ