Provided framework for Rebook letters; but they don't work.

Added the appointment dates to the printed letters.
Made more shortcuts on the main menu.
Changed version to 1.1, to be more congruous with the state of the software.
This commit is contained in:
sam 2010-06-07 00:59:53 +00:00
parent 55766d0a5c
commit 3b9b21d70f
8 changed files with 271 additions and 61 deletions

View File

@ -1,13 +1,14 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: AssemblyTitle("ClinicalScheduling")]
[assembly: AssemblyDescription("Windows Scheduling Application")]
[assembly: AssemblyTitle("Clinical Scheduling")]
[assembly: AssemblyDescription("Windows Scheduling Application for VistA")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("WorldVistA")]
[assembly: AssemblyProduct("")]
@ -26,7 +27,7 @@ using System.Runtime.CompilerServices;
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("2.2.*")]
[assembly: AssemblyVersion("1.1.*")]
//
// In order to sign your assembly you must specify a key to use. Refer to the
@ -56,4 +57,5 @@ using System.Runtime.CompilerServices;
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]
[assembly: AssemblyFileVersionAttribute("2.2.0.0")]
[assembly: AssemblyFileVersionAttribute("1.1.0.0")]
[assembly: ComVisibleAttribute(false)]

View File

@ -265,7 +265,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();
@ -280,6 +279,7 @@ namespace IndianHealthService.ClinicalScheduling
this.statusBar1 = new System.Windows.Forms.StatusBar();
this.splitter1 = new System.Windows.Forms.Splitter();
this.splitter2 = new System.Windows.Forms.Splitter();
this.calendarGrid1 = new IndianHealthService.ClinicalScheduling.CalendarGrid();
this.panelRight.SuspendLayout();
this.panelClip.SuspendLayout();
this.panelTop.SuspendLayout();
@ -403,6 +403,7 @@ namespace IndianHealthService.ClinicalScheduling
// mnuPrintPatientLetter
//
this.mnuPrintPatientLetter.Index = 13;
this.mnuPrintPatientLetter.Shortcut = System.Windows.Forms.Shortcut.CtrlL;
this.mnuPrintPatientLetter.Text = "Print Patient Le&tter";
this.mnuPrintPatientLetter.Click += new System.EventHandler(this.mnuPrintPatientLetter_Click);
//
@ -414,6 +415,7 @@ namespace IndianHealthService.ClinicalScheduling
// mnuClose
//
this.mnuClose.Index = 15;
this.mnuClose.Shortcut = System.Windows.Forms.Shortcut.CtrlW;
this.mnuClose.Text = "&Close Schedule";
this.mnuClose.Click += new System.EventHandler(this.mnuClose_Click);
//
@ -632,7 +634,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, 473);
this.tvSchedules.Size = new System.Drawing.Size(128, 410);
this.tvSchedules.Sorted = true;
this.tvSchedules.TabIndex = 1;
this.tvSchedules.DoubleClick += new System.EventHandler(this.tvSchedules_DoubleClick);
@ -680,7 +682,7 @@ namespace IndianHealthService.ClinicalScheduling
this.panelRight.Dock = System.Windows.Forms.DockStyle.Right;
this.panelRight.Location = new System.Drawing.Point(676, 0);
this.panelRight.Name = "panelRight";
this.panelRight.Size = new System.Drawing.Size(128, 473);
this.panelRight.Size = new System.Drawing.Size(128, 410);
this.panelRight.TabIndex = 3;
this.panelRight.Visible = false;
//
@ -776,37 +778,9 @@ 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(537, 425);
this.panelCenter.Size = new System.Drawing.Size(537, 362);
this.panelCenter.TabIndex = 7;
//
// 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 = null;
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(537, 425);
this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
this.calendarGrid1.TabIndex = 0;
this.calendarGrid1.TimeScale = 20;
this.calendarGrid1.DoubleClick += new System.EventHandler(this.calendarGrid1_DoubleClick);
this.calendarGrid1.CGSelectionChanged += new IndianHealthService.ClinicalScheduling.CGSelectionChangedHandler(this.calendarGrid1_CGSelectionChanged);
this.calendarGrid1.CGAppointmentChanged += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentChanged);
this.calendarGrid1.CGAppointmentAdded += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentAdded);
//
// ctxCalendarGrid
//
this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
@ -877,7 +851,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, 449);
this.panelBottom.Location = new System.Drawing.Point(136, 386);
this.panelBottom.Name = "panelBottom";
this.panelBottom.Size = new System.Drawing.Size(537, 24);
this.panelBottom.TabIndex = 8;
@ -895,7 +869,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, 449);
this.splitter1.Size = new System.Drawing.Size(8, 386);
this.splitter1.TabIndex = 9;
this.splitter1.TabStop = false;
//
@ -904,14 +878,42 @@ namespace IndianHealthService.ClinicalScheduling
this.splitter2.Dock = System.Windows.Forms.DockStyle.Right;
this.splitter2.Location = new System.Drawing.Point(673, 24);
this.splitter2.Name = "splitter2";
this.splitter2.Size = new System.Drawing.Size(3, 449);
this.splitter2.Size = new System.Drawing.Size(3, 386);
this.splitter2.TabIndex = 10;
this.splitter2.TabStop = false;
//
// 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 = null;
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(537, 362);
this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
this.calendarGrid1.TabIndex = 0;
this.calendarGrid1.TimeScale = 20;
this.calendarGrid1.DoubleClick += new System.EventHandler(this.calendarGrid1_DoubleClick);
this.calendarGrid1.CGSelectionChanged += new IndianHealthService.ClinicalScheduling.CGSelectionChangedHandler(this.calendarGrid1_CGSelectionChanged);
this.calendarGrid1.CGAppointmentChanged += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentChanged);
this.calendarGrid1.CGAppointmentAdded += new IndianHealthService.ClinicalScheduling.CGAppointmentChangedHandler(this.calendarGrid1_CGAppointmentAdded);
//
// CGView
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(804, 473);
this.ClientSize = new System.Drawing.Size(804, 410);
this.Controls.Add(this.panelCenter);
this.Controls.Add(this.panelBottom);
this.Controls.Add(this.splitter2);
@ -1783,7 +1785,8 @@ namespace IndianHealthService.ClinicalScheduling
if (a.Contains(appt.Resource) == false)
a.Add(appt.Resource);
}
//Call rebook letters RPC to get datatable
// Print rebooks
string sClinicList = "";
foreach (string sRes in a)
{

View File

@ -30,6 +30,7 @@ namespace IndianHealthService.ClinicalScheduling
//dataset to load the results of queries into and set to print routines
dsPatientApptDisplay2 _dsApptDisplay;
private PrintDocument printCancelLetters;
private PrintDocument printRebookLetters;
dsRebookAppts _dsRebookAppts;
#endregion Fields
@ -72,6 +73,13 @@ namespace IndianHealthService.ClinicalScheduling
}
}
/// <summary>
/// Print Rebook Letters by Date
/// </summary>
/// <param name="docManager">This docManger</param>
/// <param name="sClinicList">Clinics for which to print</param>
/// <param name="dtBegin">Beginning Date</param>
/// <param name="dtEnd">End Date</param>
public void InitializeFormRebookLetters(CGDocumentManager docManager,
string sClinicList,
DateTime dtBegin,
@ -89,16 +97,28 @@ namespace IndianHealthService.ClinicalScheduling
//Call RPC to get list of appt ids that have been rebooked for these clinics on these dates
string sSql1 = "BSDX REBOOK CLINIC LIST^" + sClinicList + "^" + sBegin + "^" + sEnd;
DataTable dtLetters = docManager.RPMSDataTable(sSql1, "PatientAppts");
string sSql2 = "BSDX RESOURCE LETTERS^" + sClinicList;
DataTable dt = docManager.RPMSDataTable(sSql2, "Resources");
_dsRebookAppts = new dsRebookAppts();
_dsRebookAppts.PatientAppts.Merge(docManager.RPMSDataTable(sSql1, "PatientAppts"));
_dsRebookAppts.BSDXResource.Merge(docManager.RPMSDataTable(sSql2, "Resources"));
}
catch (Exception ex)
{
throw ex;
}
PrintPreviewControl.Document = printRebookLetters;
}
/// <summary>
/// Print Rebook Letters by Date
/// </summary>
/// <param name="docManager">This docManger</param>
/// <param name="sClinicList">Clinics for which to print</param>
/// <param name="sApptIDList">List of appointments IENs in ^BSDXAPPT, delimited by |</param>
public void InitializeFormRebookLetters(CGDocumentManager docManager,
string sClinicList,
string sApptIDList)
@ -110,17 +130,21 @@ namespace IndianHealthService.ClinicalScheduling
throw new Exception("At least one clinic must be selected.");
}
string sSql = "BSDX REBOOK LIST^" + sApptIDList;
DataTable dtLetters = docManager.RPMSDataTable(sSql, "PatientAppts");
string sSql1 = "BSDX REBOOK LIST^" + sApptIDList;
string sSql2 = "BSDX RESOURCE LETTERS^" + sClinicList;
DataTable dt = docManager.RPMSDataTable(sSql2, "Resources");
_dsRebookAppts = new dsRebookAppts();
_dsRebookAppts.PatientAppts.Merge(docManager.RPMSDataTable(sSql1, "PatientAppts"));
_dsRebookAppts.BSDXResource.Merge(docManager.RPMSDataTable(sSql2, "Resources"));
}
catch (Exception ex)
{
throw ex;
}
PrintPreviewControl.Document = printRebookLetters;
}
/// <summary>
@ -202,7 +226,9 @@ namespace IndianHealthService.ClinicalScheduling
}
}
/// <summary>
/// Ctor
/// </summary>
public DPatientLetter() : base()
{
//
@ -240,6 +266,7 @@ namespace IndianHealthService.ClinicalScheduling
this.printAppts = new System.Drawing.Printing.PrintDocument();
this.printReminderLetters = new System.Drawing.Printing.PrintDocument();
this.printCancelLetters = new System.Drawing.Printing.PrintDocument();
this.printRebookLetters = new System.Drawing.Printing.PrintDocument();
this.SuspendLayout();
//
// printAppts
@ -254,6 +281,10 @@ namespace IndianHealthService.ClinicalScheduling
//
this.printCancelLetters.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printCancelLetters_PrintPage);
//
// printRebookLetters
//
this.printRebookLetters.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printRebookLetters_PrintPage);
//
// DPatientLetter
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
@ -331,5 +362,26 @@ namespace IndianHealthService.ClinicalScheduling
}
}
private void printRebookLetters_PrintPage(object sender, PrintPageEventArgs e)
{
// no patients
if (_dsRebookAppts.PatientAppts.Count == 0)
{
ClinicalScheduling.Printing.PrintMessage("No Appointments found", e);
return;
}
// if there are patients
else if (_currentApptPrinting < _dsRebookAppts.PatientAppts.Count)
{
dsRebookAppts.BSDXResourceRow c = (dsRebookAppts.BSDXResourceRow)
_dsRebookAppts.PatientAppts[_currentApptPrinting].GetParentRow(_dsRebookAppts.Relations[0]);
//XXX: Rebook letter rather oddly currently stored in NO SHOW LETTER field. What gives???
ClinicalScheduling.Printing.PrintRebookLetter(_dsRebookAppts.PatientAppts[_currentApptPrinting], e, c.NO_SHOW_LETTER, "Rebook Letter");
_currentApptPrinting++;
if (_currentApptPrinting < _dsRebookAppts.PatientAppts.Count)
e.HasMorePages = true;
}
}
}
}

View File

@ -126,4 +126,7 @@
<metadata name="printCancelLetters.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>374, 17</value>
</metadata>
<metadata name="printRebookLetters.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>515, 17</value>
</metadata>
</root>

View File

@ -148,6 +148,15 @@ namespace IndianHealthService.ClinicalScheduling
printArea.Y += 15;
printArea.Height -= 15;
// write appointment date
string str = "Appointment Date: " + ptRow.ApptDate + "\n\n";
g.DrawString(str, fBody, Brushes.Black, printArea);
// move down
int strHeight = (int)g.MeasureString(str, fBody, printArea.Width).Height;
printArea.Y += strHeight;
printArea.Height -= strHeight;
// write missive
g.DrawString(letter, fBody, Brushes.Black, printArea);
@ -164,9 +173,9 @@ namespace IndianHealthService.ClinicalScheduling
}
/// <summary>
/// Print Letter to be given or mailed to the patient
/// Cancellation Letter to be given or mailed to the patient
/// </summary>
/// <param name="ptrow">Strongly typed PatientApptsRow to pass (just one ApptRow)</param>
/// <param name="ptRow">Strongly typed PatientApptsRow to pass (just one ApptRow)</param>
/// <param name="e">You know what that is</param>
/// <param name="letter">Contains letter string</param>
/// <param name="title">Title of the letter</param>
@ -190,6 +199,15 @@ namespace IndianHealthService.ClinicalScheduling
printArea.Y += 15;
printArea.Height -= 15;
// write appointment date
string str = "Appointment Date: " + ptRow.OldApptDate + "\n\n";
g.DrawString(str, fBody, Brushes.Black, printArea);
// move down
int strHeight = (int)g.MeasureString(str, fBody, printArea.Width).Height;
printArea.Y += strHeight;
printArea.Height -= strHeight;
// write missive
g.DrawString(letter, fBody, Brushes.Black, printArea);
@ -205,6 +223,64 @@ namespace IndianHealthService.ClinicalScheduling
g.DrawString(address.ToString(), fBody, Brushes.Black, printArea, sf);
}
/// <summary>
/// Print rebook letters. Prints old and new appointments dates then the missive.
/// </summary>
/// <param name="ptRow">Strongly typed appointment row</param>
/// <param name="e">etc</param>
/// <param name="letter">Text of the letter to print</param>
/// <param name="title">Title to print at the top of the letter</param>
public static void PrintRebookLetter(dsRebookAppts.PatientApptsRow ptRow, PrintPageEventArgs e, string letter, string title)
{
Rectangle printArea = e.MarginBounds;
Graphics g = e.Graphics;
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center; //for title
Font fTitle = new Font(FontFamily.GenericSerif, 24, FontStyle.Bold); //for title
Font fBody = new Font(FontFamily.GenericSerif, 12);
g.DrawString(title, fTitle, Brushes.Black, printArea, sf); //title
// move down
int titleHeight = (int)g.MeasureString(title, fTitle, printArea.Width).Height;
printArea.Y += titleHeight;
printArea.Height -= titleHeight;
// draw underline
g.DrawLine(Pens.Black, printArea.Location, new Point(printArea.Right, printArea.Y));
printArea.Y += 15;
printArea.Height -= 15;
// write old and new appointment dates
string str = "Old Appointment Date:\t\t" + ptRow.OldApptDate + "\n";
str += "New Appointment Date:\t\t" + ptRow.NewApptDate + "\n\n";
g.DrawString(str, fBody, Brushes.Black, printArea);
// move down
int strHeight = (int)g.MeasureString(str, fBody, printArea.Width).Height;
printArea.Y += strHeight;
printArea.Height -= strHeight;
// write missive
g.DrawString(letter, fBody, Brushes.Black, printArea);
//print Address in lower left corner for windowed envolopes
printArea.Location = new Point(e.MarginBounds.X, (int)(e.PageBounds.Height * 0.66));
printArea.Height = (int)(e.MarginBounds.Height * 0.20);
sf.Alignment = StringAlignment.Near;
sf.LineAlignment = StringAlignment.Center;
StringBuilder address = new StringBuilder(100);
address.AppendLine(ptRow.Name);
address.AppendLine(ptRow.STREET);
address.AppendLine(ptRow.CITY + ", " + ptRow.STATE + " " + ptRow.ZIP);
g.DrawString(address.ToString(), fBody, Brushes.Black, printArea, sf);
}
/// <summary>
/// Print message on a page; typically that there are no appointments to be found.
/// </summary>
/// <param name="msg">The exact string to print.</param>
/// <param name="e">Print Page event args</param>
public static void PrintMessage(string msg, PrintPageEventArgs e)
{
e.Graphics.DrawString(msg, new Font(FontFamily.GenericSerif, 14),

View File

@ -167,6 +167,55 @@
Required designer variable.
</summary>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.DPatientLetter.InitializeFormClinicSchedule(IndianHealthService.ClinicalScheduling.CGDocumentManager,System.String,System.DateTime,System.DateTime)">
<summary>
Print Clinic Schedules
</summary>
<param name="docManager">This docManger</param>
<param name="sClinicList">Clinics for which to print</param>
<param name="dtBegin">Beginning Date</param>
<param name="dtEnd">End Date</param>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.DPatientLetter.InitializeFormRebookLetters(IndianHealthService.ClinicalScheduling.CGDocumentManager,System.String,System.DateTime,System.DateTime)">
<summary>
Print Rebook Letters by Date
</summary>
<param name="docManager">This docManger</param>
<param name="sClinicList">Clinics for which to print</param>
<param name="dtBegin">Beginning Date</param>
<param name="dtEnd">End Date</param>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.DPatientLetter.InitializeFormRebookLetters(IndianHealthService.ClinicalScheduling.CGDocumentManager,System.String,System.String)">
<summary>
Print Rebook Letters by Date
</summary>
<param name="docManager">This docManger</param>
<param name="sClinicList">Clinics for which to print</param>
<param name="sApptIDList">List of appointments IENs in ^BSDXAPPT, delimited by |</param>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.DPatientLetter.InitializeFormCancellationLetters(IndianHealthService.ClinicalScheduling.CGDocumentManager,System.String,System.DateTime,System.DateTime)">
<summary>
Print Cancellation letters to mail to patients
</summary>
<param name="docManager">This Docmanager</param>
<param name="sClinicList">| delemited clinic list (IEN's)</param>
<param name="dtBegin">Beginning Date</param>
<param name="dtEnd">Ending Date</param>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.DPatientLetter.InitializeFormPatientReminderLetters(IndianHealthService.ClinicalScheduling.CGDocumentManager,System.String,System.DateTime,System.DateTime)">
<summary>
Print Reminder Letters to give or mail to patients
</summary>
<param name="docManager">This docManger</param>
<param name="sClinicList">Clinics for which to print</param>
<param name="dtBegin">Beginning Date</param>
<param name="dtEnd">End Date</param>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.DPatientLetter.#ctor">
<summary>
Ctor
</summary>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.DPatientLetter.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
@ -504,15 +553,40 @@
Class that encapsulates printing functions in Clinical Scheduling
</summary>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.Printing.PrintAppointments(IndianHealthService.ClinicalScheduling.dsPatientApptDisplay2,System.Drawing.Printing.PrintPageEventArgs,System.DateTime,System.DateTime,System.Int32,System.Int32@)">
<!-- Badly formed XML comment ignored for member "M:IndianHealthService.ClinicalScheduling.Printing.PrintAppointments(IndianHealthService.ClinicalScheduling.dsPatientApptDisplay2,System.Drawing.Printing.PrintPageEventArgs,System.DateTime,System.DateTime,System.Int32,System.Int32@,System.Int32)" -->
<member name="M:IndianHealthService.ClinicalScheduling.Printing.PrintReminderLetter(IndianHealthService.ClinicalScheduling.dsPatientApptDisplay2.PatientApptsRow,System.Drawing.Printing.PrintPageEventArgs,System.String,System.String)">
<summary>
Print Appointments
Print Letter to be given or mailed to the patient
</summary>
<param name="ds">Strongly Typed DataSet contains Resources and Appointments</param>
<param name="e">PrintPageEventArgs from PrintDocument Print handler</param>
<param name="beg">Begin Datetime to print appointments</param>
<param name="end">End Datetime to print appointments</param>
<remarks>beg and end have no effect on operation--they are there for documentation for user only</remarks>
<param name="ptrow">Strongly typed PatientApptsRow to pass (just one ApptRow)</param>
<param name="e">You know what that is</param>
<param name="letter">Contains letter string</param>
<param name="title">Title of the letter</param>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.Printing.PrintCancelLetter(IndianHealthService.ClinicalScheduling.dsRebookAppts.PatientApptsRow,System.Drawing.Printing.PrintPageEventArgs,System.String,System.String)">
<summary>
Cancellation Letter to be given or mailed to the patient
</summary>
<param name="ptRow">Strongly typed PatientApptsRow to pass (just one ApptRow)</param>
<param name="e">You know what that is</param>
<param name="letter">Contains letter string</param>
<param name="title">Title of the letter</param>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.Printing.PrintRebookLetter(IndianHealthService.ClinicalScheduling.dsRebookAppts.PatientApptsRow,System.Drawing.Printing.PrintPageEventArgs,System.String,System.String)">
<summary>
Print rebook letters. Prints old and new appointments dates then the missive.
</summary>
<param name="ptRow">Strongly typed appointment row</param>
<param name="e">etc</param>
<param name="letter">Text of the letter to print</param>
<param name="title">Title to print at the top of the letter</param>
</member>
<member name="M:IndianHealthService.ClinicalScheduling.Printing.PrintMessage(System.String,System.Drawing.Printing.PrintPageEventArgs)">
<summary>
Print message on a page; typically that there are no appointments to be found.
</summary>
<param name="msg">The exact string to print.</param>
<param name="e">Print Page event args</param>
</member>
<member name="T:IndianHealthService.ClinicalScheduling.DResourceGroupItem">
<summary>