[772] | 1 | using System;
|
---|
| 2 | using System.Collections.Generic;
|
---|
| 3 | using System.Linq;
|
---|
| 4 | using System.Text;
|
---|
| 5 | using System.Drawing.Printing;
|
---|
| 6 | using System.Drawing;
|
---|
| 7 | using System.Data;
|
---|
| 8 | using System.Drawing.Drawing2D;
|
---|
| 9 |
|
---|
| 10 | namespace IndianHealthService.ClinicalScheduling
|
---|
| 11 | {
|
---|
| 12 | /// <summary>
|
---|
| 13 | /// Class that encapsulates printing functions in Clinical Scheduling
|
---|
| 14 | /// </summary>
|
---|
| 15 | public static class Printing
|
---|
| 16 | {
|
---|
| 17 | /// <summary>
|
---|
| 18 | /// Print Appointments
|
---|
| 19 | /// </summary>
|
---|
| 20 | /// <param name="ds">Strongly Typed DataSet contains Resources and Appointments</param>
|
---|
| 21 | /// <param name="e">PrintPageEventArgs from PrintDocument Print handler</param>
|
---|
| 22 | /// <param name="beg">Begin Datetime to print appointments</param>
|
---|
| 23 | /// <param name="end">End Datetime to print appointments</param>
|
---|
| 24 | /// <remarks>beg and end have no effect on operation--they are there for documentation for user only</remarks>
|
---|
| 25 | public static void PrintAppointments(dsPatientApptDisplay2 ds, PrintPageEventArgs e, DateTime beg, DateTime end,
|
---|
| 26 | int resourceToPrint, ref int apptPrinted)
|
---|
| 27 | {
|
---|
| 28 | Graphics g = e.Graphics;
|
---|
| 29 | //g.PageUnit = GraphicsUnit.Millimeter;
|
---|
| 30 | //SizeF szVCB = g.VisibleClipBounds.Size;
|
---|
| 31 | //PointF[] ptszVCB = {new PointF(szVCB.Width,szVCB.Height)};
|
---|
| 32 | //g.TransformPoints(CoordinateSpace.Page, CoordinateSpace.Device, ptszVCB);
|
---|
| 33 | //Create Fonts
|
---|
| 34 | Font f8 = new Font(FontFamily.GenericSerif, 8);
|
---|
| 35 | Font f10 = new Font(FontFamily.GenericSerif, 10);
|
---|
| 36 | Font f14bold = new Font(FontFamily.GenericSerif, 14, FontStyle.Bold);
|
---|
| 37 |
|
---|
| 38 | //Center Alignment for some stuff
|
---|
| 39 | StringFormat sf = new StringFormat();
|
---|
| 40 | sf.Alignment = StringAlignment.Center;
|
---|
| 41 |
|
---|
| 42 | g.DrawString("Confidential Patient Information", f8, Brushes.Black, e.PageBounds, sf);
|
---|
| 43 |
|
---|
| 44 | //Typical manipulable print area
|
---|
| 45 | Rectangle printArea = e.MarginBounds;
|
---|
| 46 |
|
---|
| 47 | dsPatientApptDisplay2.BSDXResourceRow r = ds.BSDXResource[resourceToPrint];
|
---|
| 48 |
|
---|
| 49 | string toprint;
|
---|
| 50 | if (beg == end) toprint = "Appointments for " + r.RESOURCE_NAME + " on " + beg.ToLongDateString();
|
---|
| 51 | else toprint = "Appointments for " + r.RESOURCE_NAME + " from " + beg.ToShortDateString() + " to "
|
---|
| 52 | + end.ToShortDateString();
|
---|
| 53 | g.DrawString(toprint, f14bold, Brushes.Black, printArea);
|
---|
| 54 |
|
---|
| 55 | printArea.Y += (int)f14bold.GetHeight();
|
---|
| 56 | g.DrawLine(new Pen(Brushes.Black, 0), printArea.X, printArea.Y, printArea.X + printArea.Width, printArea.Y);
|
---|
| 57 | printArea.Y += 5;
|
---|
| 58 |
|
---|
| 59 | System.Data.DataRow[] appts = r.GetChildRows(ds.Relations[0]); //only one relation
|
---|
| 60 |
|
---|
| 61 | toprint = "";
|
---|
| 62 | StringFormat sf2 = new StringFormat();
|
---|
| 63 | sf2.SetTabStops(50, new float[] { 100, 200, 200 });
|
---|
| 64 |
|
---|
| 65 | foreach (dsPatientApptDisplay2.PatientApptsRow a in appts)
|
---|
| 66 | {
|
---|
| 67 | toprint += a.ApptDate.ToString() + "\t" + a.Name +"(" + a.Sex + ")" + "\t" + "DOB: " + a.DOB.ToString("dd-MMM-yyyy") + "\t" + "ID: " + a.HRN;
|
---|
| 68 | toprint += "\n";
|
---|
| 69 | toprint += "Home Phone: " + a.HOMEPHONE + "\t" + "Address: " + a.STREET + ", " + a.CITY + ", " + a.STATE + " " + a.ZIP;
|
---|
| 70 | toprint += "\n";
|
---|
| 71 | toprint += "Note: " + a.NOTE;
|
---|
| 72 | toprint += "\n";
|
---|
| 73 | toprint += "Appointment made by " + a.APPT_MADE_BY + " on " + a.DATE_APPT_MADE;
|
---|
| 74 | toprint += "\n\n";
|
---|
| 75 | }
|
---|
| 76 | g.DrawString(toprint, f10, Brushes.Black, printArea, sf2);
|
---|
| 77 | }
|
---|
| 78 | }
|
---|
| 79 | }
|
---|