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(); v.UpdateArrays();
} }
} }
} }
#endregion #endregion

View File

@ -58,7 +58,6 @@ namespace IndianHealthService.ClinicalScheduling
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker(); this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
this.lblResource = new System.Windows.Forms.Label(); this.lblResource = new System.Windows.Forms.Label();
this.panelCenter = new System.Windows.Forms.Panel(); this.panelCenter = new System.Windows.Forms.Panel();
this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
this.ctxCalendarGrid = new System.Windows.Forms.ContextMenu(); this.ctxCalendarGrid = new System.Windows.Forms.ContextMenu();
this.ctxCalGridAdd = new System.Windows.Forms.MenuItem(); this.ctxCalGridAdd = new System.Windows.Forms.MenuItem();
this.ctxCalGridEdit = 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.mnuHelpAbout = new System.Windows.Forms.MenuItem();
this.splitter1 = new System.Windows.Forms.Splitter(); this.splitter1 = new System.Windows.Forms.Splitter();
this.saveAccessBlocksWorker = new System.ComponentModel.BackgroundWorker(); this.saveAccessBlocksWorker = new System.ComponentModel.BackgroundWorker();
this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
this.panelRight.SuspendLayout(); this.panelRight.SuspendLayout();
this.panelClip.SuspendLayout(); this.panelClip.SuspendLayout();
this.panelBottom.SuspendLayout(); this.panelBottom.SuspendLayout();
@ -105,7 +105,7 @@ namespace IndianHealthService.ClinicalScheduling
this.panelRight.Dock = System.Windows.Forms.DockStyle.Right; this.panelRight.Dock = System.Windows.Forms.DockStyle.Right;
this.panelRight.Location = new System.Drawing.Point(728, 0); this.panelRight.Location = new System.Drawing.Point(728, 0);
this.panelRight.Name = "panelRight"; 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; this.panelRight.TabIndex = 1;
// //
// panelClip // panelClip
@ -166,7 +166,7 @@ namespace IndianHealthService.ClinicalScheduling
// //
this.panelBottom.Controls.Add(this.statusBar1); this.panelBottom.Controls.Add(this.statusBar1);
this.panelBottom.Dock = System.Windows.Forms.DockStyle.Bottom; 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.Name = "panelBottom";
this.panelBottom.Size = new System.Drawing.Size(720, 24); this.panelBottom.Size = new System.Drawing.Size(720, 24);
this.panelBottom.TabIndex = 2; this.panelBottom.TabIndex = 2;
@ -218,37 +218,9 @@ namespace IndianHealthService.ClinicalScheduling
this.panelCenter.Dock = System.Windows.Forms.DockStyle.Fill; this.panelCenter.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelCenter.Location = new System.Drawing.Point(8, 24); this.panelCenter.Location = new System.Drawing.Point(8, 24);
this.panelCenter.Name = "panelCenter"; 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; 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 // ctxCalendarGrid
// //
this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
@ -282,7 +254,7 @@ namespace IndianHealthService.ClinicalScheduling
this.tvSchedules.HotTracking = true; this.tvSchedules.HotTracking = true;
this.tvSchedules.Location = new System.Drawing.Point(0, 0); this.tvSchedules.Location = new System.Drawing.Point(0, 0);
this.tvSchedules.Name = "tvSchedules"; 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.Sorted = true;
this.tvSchedules.TabIndex = 5; this.tvSchedules.TabIndex = 5;
// //
@ -483,7 +455,7 @@ namespace IndianHealthService.ClinicalScheduling
this.splitter1.Dock = System.Windows.Forms.DockStyle.Right; this.splitter1.Dock = System.Windows.Forms.DockStyle.Right;
this.splitter1.Location = new System.Drawing.Point(720, 24); this.splitter1.Location = new System.Drawing.Point(720, 24);
this.splitter1.Name = "splitter1"; 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.TabIndex = 6;
this.splitter1.TabStop = false; this.splitter1.TabStop = false;
// //
@ -494,10 +466,38 @@ namespace IndianHealthService.ClinicalScheduling
this.saveAccessBlocksWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.saveAccessBlocksWorker_ProgressChanged); this.saveAccessBlocksWorker.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.saveAccessBlocksWorker_ProgressChanged);
this.saveAccessBlocksWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.saveAccessBlocksWorker_RunWorkerCompleted); 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 // CGAVView
// //
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); 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.panelCenter);
this.Controls.Add(this.splitter1); this.Controls.Add(this.splitter1);
this.Controls.Add(this.panelTop); this.Controls.Add(this.panelTop);
@ -767,32 +767,43 @@ namespace IndianHealthService.ClinicalScheduling
} }
}//End AvailabilityAddNew }//End AvailabilityAddNew
/// <summary>
/// Delete All slots from certain dates in one swoop. DAL does actualy deletion.
/// </summary>
private void MassSlotDelete() private void MassSlotDelete()
{ {
DialogResult msgResult = MessageBox.Show("Delete all Access Slots?", "Delete Slots?",MessageBoxButtons.YesNo); // Ask users for from and to dates
if (msgResult != DialogResult.Yes) return; DMassSlotDelete dMassSlotDelete = new DMassSlotDelete();
DialogResult res = dMassSlotDelete.ShowDialog();
CGAppointments appointments = new CGAppointments(); // peel off if user cancelled.
appointments = this.Document.AVBlocks; if (res != DialogResult.OK) return;
foreach (CGAppointment a in appointments.AppointmentTable.Values) // Get this ResourceID from here, and the start and end dates from the dialog.
{ string sResourceID = this.m_Document.ResourceID.ToString();
int nApptID = a.AppointmentKey; DateTime dStartDate = dMassSlotDelete.StartDate;
Debug.Assert(nApptID != 0); DateTime dEndDate = dMassSlotDelete.EndDate;
try
{
Document.DeleteAvailability(nApptID);
}
catch (Exception ex)
{
MessageBox.Show("Unable to delete access block" + ex.Message, "Clinical Scheduling");
}
} // 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); RaiseRPMSEvent("BSDX SCHEDULE", m_Document.DocName);
this.calendarGrid1.Invalidate();
} }
private void AppointmentDelete() private void AppointmentDelete()
@ -1049,6 +1060,11 @@ namespace IndianHealthService.ClinicalScheduling
try try
{ {
this.saveAccessBlocksWorker.RunWorkerAsync(dlg); this.saveAccessBlocksWorker.RunWorkerAsync(dlg);
/*
* Moved to RunWorkerAsync. Leave until I think I am safe removing it.
*
*/
//OpenFileDialog openFileDialog1 = dlg.FileDialog; //OpenFileDialog openFileDialog1 = dlg.FileDialog;
//openFileDialog1.RestoreDirectory = false; // go back to our dir //openFileDialog1.RestoreDirectory = false; // go back to our dir
//Stream streamFile; //Stream streamFile;
@ -1493,27 +1509,13 @@ namespace IndianHealthService.ClinicalScheduling
DateTime dtEnd = dtStart.AddDays(6); // or 7? DateTime dtEnd = dtStart.AddDays(6); // or 7?
string sResourceID = this.m_Document.ResourceID.ToString(); string sResourceID = this.m_Document.ResourceID.ToString();
DataTable dt;
for (int j = 1; j < nWeeksToApply + 1; j++) 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; int iProgressPercentage = (int)fProgressPercentage;
worker.ReportProgress(iProgressPercentage); worker.ReportProgress(iProgressPercentage);
//Convert start and end to string string sResource = (string)this.Document.Resources[0];
//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];
foreach (CGAppointment a in cgaTemp.AppointmentTable.Values) foreach (CGAppointment a in cgaTemp.AppointmentTable.Values)
{ {
//Change the resource to the current one //Change the resource to the current one
@ -1547,6 +1549,14 @@ namespace IndianHealthService.ClinicalScheduling
private void saveAccessBlocksWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 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."; this.statusBar1.Text = "Done saving access blocks.";
} }
@ -1557,7 +1567,7 @@ namespace IndianHealthService.ClinicalScheduling
private void mnuDeleteAllSlots_Click(object sender, EventArgs e) 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.SetStatus("Getting Version Info...");
m_ds.Refresh(); m_ds.Refresh();
DataTable ver = _dal.GetVersion("BSDX"); //sCmd, "VersionInfo", m_dsGlobal); DataTable ver = _dal.GetVersion("BSDX");
ver.TableName = "VersionInfo"; ver.TableName = "VersionInfo";
m_dsGlobal.Tables.Add(ver); m_dsGlobal.Tables.Add(ver);
//Keep the following commented code for future use:
//How to extract the version numbers: //How to extract the version numbers:
//DataTable dtVersion = m_dsGlobal.Tables["VersionInfo"]; DataTable dtVersion = m_dsGlobal.Tables["VersionInfo"];
//Debug.Assert(dtVersion.Rows.Count == 1); Debug.Assert(dtVersion.Rows.Count == 1);
//DataRow rVersion = dtVersion.Rows[0]; DataRow rVersion = dtVersion.Rows[0];
//string sMajor = rVersion["MAJOR_VERSION"].ToString(); string sMajor = rVersion["MAJOR_VERSION"].ToString();
//string sMinor = rVersion["MINOR_VERSION"].ToString(); string sMinor = rVersion["MINOR_VERSION"].ToString();
//string sBuild = rVersion["BUILD"].ToString(); string sBuild = rVersion["BUILD"].ToString();
//decimal fBuild = Convert.ToDecimal(sBuild); 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 //Change encoding
if (m_Encoding == String.Empty) if (m_Encoding == String.Empty)

View File

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

View File

@ -116,6 +116,20 @@ namespace IndianHealthService.ClinicalScheduling
return RPMSDataTable(cmd, ""); 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> /// <summary>
/// Workhorse /// Workhorse