Release build for Scheduling v 1.42 for .net 3.5.

This commit is contained in:
sam 2010-12-12 07:44:49 +00:00
parent 54b4cdf2b4
commit 079ed41a00
8 changed files with 132 additions and 82 deletions

View File

@ -554,7 +554,6 @@ namespace IndianHealthService.ClinicalScheduling
v.UpdateArrays();
}
}
}
#endregion

View File

@ -58,7 +58,6 @@ namespace IndianHealthService.ClinicalScheduling
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
this.lblResource = new System.Windows.Forms.Label();
this.panelCenter = new System.Windows.Forms.Panel();
this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
this.ctxCalendarGrid = new System.Windows.Forms.ContextMenu();
this.ctxCalGridAdd = new System.Windows.Forms.MenuItem();
this.ctxCalGridEdit = new System.Windows.Forms.MenuItem();
@ -92,6 +91,7 @@ namespace IndianHealthService.ClinicalScheduling
this.mnuHelpAbout = new System.Windows.Forms.MenuItem();
this.splitter1 = new System.Windows.Forms.Splitter();
this.saveAccessBlocksWorker = new System.ComponentModel.BackgroundWorker();
this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
this.panelRight.SuspendLayout();
this.panelClip.SuspendLayout();
this.panelBottom.SuspendLayout();
@ -105,7 +105,7 @@ namespace IndianHealthService.ClinicalScheduling
this.panelRight.Dock = System.Windows.Forms.DockStyle.Right;
this.panelRight.Location = new System.Drawing.Point(728, 0);
this.panelRight.Name = "panelRight";
this.panelRight.Size = new System.Drawing.Size(120, 393);
this.panelRight.Size = new System.Drawing.Size(120, 364);
this.panelRight.TabIndex = 1;
//
// panelClip
@ -166,7 +166,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(8, 369);
this.panelBottom.Location = new System.Drawing.Point(8, 340);
this.panelBottom.Name = "panelBottom";
this.panelBottom.Size = new System.Drawing.Size(720, 24);
this.panelBottom.TabIndex = 2;
@ -218,37 +218,9 @@ namespace IndianHealthService.ClinicalScheduling
this.panelCenter.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelCenter.Location = new System.Drawing.Point(8, 24);
this.panelCenter.Name = "panelCenter";
this.panelCenter.Size = new System.Drawing.Size(712, 345);
this.panelCenter.Size = new System.Drawing.Size(712, 316);
this.panelCenter.TabIndex = 4;
//
// calendarGrid1
//
this.calendarGrid1.AllowDrop = true;
this.calendarGrid1.Appointments = null;
this.calendarGrid1.ApptDragSource = null;
this.calendarGrid1.AutoScroll = true;
this.calendarGrid1.AutoScrollMinSize = new System.Drawing.Size(600, 1898);
this.calendarGrid1.AvailabilityArray = null;
this.calendarGrid1.BackColor = System.Drawing.SystemColors.Window;
this.calendarGrid1.Columns = 5;
this.calendarGrid1.ContextMenu = this.ctxCalendarGrid;
this.calendarGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
this.calendarGrid1.DrawWalkIns = true;
this.calendarGrid1.GridBackColor = "blue";
this.calendarGrid1.GridEnter = false;
this.calendarGrid1.Location = new System.Drawing.Point(0, 0);
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(712, 345);
this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
this.calendarGrid1.TabIndex = 2;
this.calendarGrid1.TimeScale = 20;
this.calendarGrid1.CGAppointmentAdded += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentAdded);
this.calendarGrid1.CGAppointmentChanged += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentChanged);
this.calendarGrid1.CGSelectionChanged += new IndianHealthService.ClinicalScheduling.CGSelectionChangedHandler(this.calendarGrid1_CGSelectionChanged);
this.calendarGrid1.DoubleClick += new System.EventHandler(this.calendarGrid1_DoubleClick);
//
// ctxCalendarGrid
//
this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
@ -282,7 +254,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(8, 393);
this.tvSchedules.Size = new System.Drawing.Size(8, 364);
this.tvSchedules.Sorted = true;
this.tvSchedules.TabIndex = 5;
//
@ -483,7 +455,7 @@ namespace IndianHealthService.ClinicalScheduling
this.splitter1.Dock = System.Windows.Forms.DockStyle.Right;
this.splitter1.Location = new System.Drawing.Point(720, 24);
this.splitter1.Name = "splitter1";
this.splitter1.Size = new System.Drawing.Size(8, 345);
this.splitter1.Size = new System.Drawing.Size(8, 316);
this.splitter1.TabIndex = 6;
this.splitter1.TabStop = false;
//
@ -494,10 +466,38 @@ namespace IndianHealthService.ClinicalScheduling
this.saveAccessBlocksWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.saveAccessBlocksWorker_ProgressChanged);
this.saveAccessBlocksWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.saveAccessBlocksWorker_RunWorkerCompleted);
//
// calendarGrid1
//
this.calendarGrid1.AllowDrop = true;
this.calendarGrid1.Appointments = null;
this.calendarGrid1.ApptDragSource = null;
this.calendarGrid1.AutoScroll = true;
this.calendarGrid1.AutoScrollMinSize = new System.Drawing.Size(600, 1898);
this.calendarGrid1.AvailabilityArray = null;
this.calendarGrid1.BackColor = System.Drawing.SystemColors.Window;
this.calendarGrid1.Columns = 5;
this.calendarGrid1.ContextMenu = this.ctxCalendarGrid;
this.calendarGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
this.calendarGrid1.DrawWalkIns = true;
this.calendarGrid1.GridBackColor = "blue";
this.calendarGrid1.GridEnter = false;
this.calendarGrid1.Location = new System.Drawing.Point(0, 0);
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(712, 316);
this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
this.calendarGrid1.TabIndex = 2;
this.calendarGrid1.TimeScale = 20;
this.calendarGrid1.CGAppointmentAdded += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentAdded);
this.calendarGrid1.CGAppointmentChanged += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentChanged);
this.calendarGrid1.CGSelectionChanged += new IndianHealthService.ClinicalScheduling.CGSelectionChangedHandler(this.calendarGrid1_CGSelectionChanged);
this.calendarGrid1.DoubleClick += new System.EventHandler(this.calendarGrid1_DoubleClick);
//
// CGAVView
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(848, 393);
this.ClientSize = new System.Drawing.Size(848, 364);
this.Controls.Add(this.panelCenter);
this.Controls.Add(this.splitter1);
this.Controls.Add(this.panelTop);
@ -767,32 +767,43 @@ namespace IndianHealthService.ClinicalScheduling
}
}//End AvailabilityAddNew
/// <summary>
/// Delete All slots from certain dates in one swoop. DAL does actualy deletion.
/// </summary>
private void MassSlotDelete()
{
DialogResult msgResult = MessageBox.Show("Delete all Access Slots?", "Delete Slots?",MessageBoxButtons.YesNo);
if (msgResult != DialogResult.Yes) return;
// Ask users for from and to dates
DMassSlotDelete dMassSlotDelete = new DMassSlotDelete();
DialogResult res = dMassSlotDelete.ShowDialog();
CGAppointments appointments = new CGAppointments();
appointments = this.Document.AVBlocks;
// peel off if user cancelled.
if (res != DialogResult.OK) return;
foreach (CGAppointment a in appointments.AppointmentTable.Values)
{
int nApptID = a.AppointmentKey;
Debug.Assert(nApptID != 0);
try
{
Document.DeleteAvailability(nApptID);
}
catch (Exception ex)
{
MessageBox.Show("Unable to delete access block" + ex.Message, "Clinical Scheduling");
}
// Get this ResourceID from here, and the start and end dates from the dialog.
string sResourceID = this.m_Document.ResourceID.ToString();
DateTime dStartDate = dMassSlotDelete.StartDate;
DateTime dEndDate = dMassSlotDelete.EndDate;
}
// Deletes Slots through DAL.
DataTable result = this.m_DocManager.DAL.MassSlotDelete(sResourceID, dStartDate, dEndDate);
// One row (and only one) expected:
Debug.Assert(result.Rows.Count == 1);
this.m_DocManager.UpdateViews((string)this.m_Document.Resources[0], "");
// -1 Expected in first row, otherwise, there is an error
if (result.Rows[0][0].ToString() != "-1")
throw new ApplicationException(
@"VISTA couldn't delete the slots. Contact tech support.\r\n
Error Message from VISTA: " + result.Rows[0][1].ToString());
// Update Access Blocks views
this.Document.RefreshDaysSchedule(); // Retrieve the slots from the server
this.Document.UpdateAllViews(); // Recalibrate the calendar grid with the new cells
this.calendarGrid1.Invalidate(); // Redraw it.
// Tell other clients that slots have changed.
RaiseRPMSEvent("BSDX SCHEDULE", m_Document.DocName);
this.calendarGrid1.Invalidate();
}
private void AppointmentDelete()
@ -1049,6 +1060,11 @@ namespace IndianHealthService.ClinicalScheduling
try
{
this.saveAccessBlocksWorker.RunWorkerAsync(dlg);
/*
* Moved to RunWorkerAsync. Leave until I think I am safe removing it.
*
*/
//OpenFileDialog openFileDialog1 = dlg.FileDialog;
//openFileDialog1.RestoreDirectory = false; // go back to our dir
//Stream streamFile;
@ -1493,27 +1509,13 @@ namespace IndianHealthService.ClinicalScheduling
DateTime dtEnd = dtStart.AddDays(6); // or 7?
string sResourceID = this.m_Document.ResourceID.ToString();
DataTable dt;
for (int j = 1; j < nWeeksToApply + 1; j++)
{
float fProgressPercentage = ((float)j / (float)nWeeksToApply) * 100;
float fProgressPercentage = ((float)(j-1) / (float)nWeeksToApply) * 100;
int iProgressPercentage = (int)fProgressPercentage;
worker.ReportProgress(iProgressPercentage);
//Convert start and end to string
//string sStart = dtStart.ToString("M/d/yyyy");
//string sEnd = dtEnd.ToString("M/d/yyyy");
//i18n
string sStart = FMDateTime.Create(dtStart).DateOnly.FMDateString;
string sEnd = FMDateTime.Create(dtEnd).DateOnly.FMDateString;
//Cancel all existing access blocks in the date range
string sSql = "BSDX CANCEL AV BY DATE^" + sResourceID + "^" + sStart + "^" + sEnd;
CGDocumentManager.RPMSDataTableDelegate d = new CGDocumentManager.RPMSDataTableDelegate(m_DocManager.RPMSDataTable);
//dt = this.m_DocManager.RPMSDataTable(sSql, "Cancelled");
dt = d(sSql, "Cancelled");
//for each CGAppointment in AVBlocks, call AddNew
string sResource = "";
sResource = (string)this.Document.Resources[0];
string sResource = (string)this.Document.Resources[0];
foreach (CGAppointment a in cgaTemp.AppointmentTable.Values)
{
//Change the resource to the current one
@ -1547,6 +1549,14 @@ namespace IndianHealthService.ClinicalScheduling
private void saveAccessBlocksWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// Update Access Blocks views
this.Document.RefreshDaysSchedule(); // Retrieve the slots from the server
this.Document.UpdateAllViews(); // Recalibrate the calendar grid with the new cells
this.calendarGrid1.Invalidate(); // Redraw it.
// Tell other clients that slots have changed.
RaiseRPMSEvent("BSDX SCHEDULE", m_Document.DocName);
this.statusBar1.Text = "Done saving access blocks.";
}
@ -1557,7 +1567,7 @@ namespace IndianHealthService.ClinicalScheduling
private void mnuDeleteAllSlots_Click(object sender, EventArgs e)
{
MassSlotDelete();
}
}

View File

@ -323,19 +323,37 @@ namespace IndianHealthService.ClinicalScheduling
m_ds.SetStatus("Getting Version Info...");
m_ds.Refresh();
DataTable ver = _dal.GetVersion("BSDX"); //sCmd, "VersionInfo", m_dsGlobal);
DataTable ver = _dal.GetVersion("BSDX");
ver.TableName = "VersionInfo";
m_dsGlobal.Tables.Add(ver);
//Keep the following commented code for future use:
//How to extract the version numbers:
//DataTable dtVersion = m_dsGlobal.Tables["VersionInfo"];
//Debug.Assert(dtVersion.Rows.Count == 1);
//DataRow rVersion = dtVersion.Rows[0];
//string sMajor = rVersion["MAJOR_VERSION"].ToString();
//string sMinor = rVersion["MINOR_VERSION"].ToString();
//string sBuild = rVersion["BUILD"].ToString();
//decimal fBuild = Convert.ToDecimal(sBuild);
DataTable dtVersion = m_dsGlobal.Tables["VersionInfo"];
Debug.Assert(dtVersion.Rows.Count == 1);
DataRow rVersion = dtVersion.Rows[0];
string sMajor = rVersion["MAJOR_VERSION"].ToString();
string sMinor = rVersion["MINOR_VERSION"].ToString();
string sBuild = rVersion["BUILD"].ToString();
decimal fBuild = Convert.ToDecimal(sBuild);
//Make sure that the server is running the same version the client is.
Version x = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
//if version numbers mismatch, don't continue.
//TODO: For future: Include in v. 1.5
/*
if (!(x.Major.ToString() == sMajor && x.Minor.ToString() + x.Build.ToString() == sMinor))
{
MessageBox.Show(
"Server runs version " + sMajor + "." + sMinor + "\r\n" +
"You are running " + x.ToString() + "\r\n\r\n" +
"Major, Minor and Build versions must match",
"Version Mismatch");
m_ds.Close();
return;
}
*/
//Change encoding
if (m_Encoding == String.Empty)

View File

@ -291,6 +291,12 @@
<Compile Include="FMDateTime.cs">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Compile>
<Compile Include="DMassSlotDelete.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DMassSlotDelete.Designer.cs">
<DependentUpon>DMassSlotDelete.cs</DependentUpon>
</Compile>
<Compile Include="Options.cs" />
<Compile Include="Printing.cs" />
<Compile Include="UCPatientAppts.cs">
@ -355,6 +361,9 @@
<DependentUpon>DManagement.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="DMassSlotDelete.resx">
<DependentUpon>DMassSlotDelete.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DNoShow.resx">
<DependentUpon>DNoShow.cs</DependentUpon>
<SubType>Designer</SubType>

View File

@ -116,6 +116,20 @@ namespace IndianHealthService.ClinicalScheduling
return RPMSDataTable(cmd, "");
}
/// <summary>
/// Delete All Slots for a Resource
/// </summary>
/// <param name="sResourceID"></param>
/// <param name="BeginDate"></param>
/// <param name="EndDate"></param>
/// <returns></returns>
public DataTable MassSlotDelete(string sResourceID, DateTime BeginDate, DateTime EndDate)
{
string sBegin = FMDateTime.Create(BeginDate).DateOnly.FMDateString;
string sEnd = FMDateTime.Create(EndDate).DateOnly.FMDateString;
string cmd = String.Format("BSDX CANCEL AV BY DATE^{0}^{1}^{2}", sResourceID, sBegin, sEnd);
return RPMSDataTable(cmd, "Cancelled");
}
/// <summary>
/// Workhorse