Absorbed all changed from Radiology Support branch.

Patient and Provider classes now serializable to address new bug: Availablity slots cannot be saved b/c these classes are not serializable.
This commit is contained in:
sam 2011-05-08 09:17:53 +00:00
parent 3a4ce73bf6
commit d17cc4fc56
21 changed files with 1008 additions and 400 deletions

View File

@ -27,7 +27,7 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Revision and Build Numbers // You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
[assembly: AssemblyVersion("1.5.0.*")] [assembly: AssemblyVersion("1.5.1.*")]
// //
// In order to sign your assembly you must specify a key to use. Refer to the // In order to sign your assembly you must specify a key to use. Refer to the
@ -57,5 +57,5 @@ using System.Runtime.InteropServices;
[assembly: AssemblyDelaySign(false)] [assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")] [assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")] [assembly: AssemblyKeyName("")]
[assembly: AssemblyFileVersionAttribute("1.5.0.0")] [assembly: AssemblyFileVersionAttribute("1.5.1.0")]
[assembly: ComVisibleAttribute(false)] [assembly: ComVisibleAttribute(false)]

View File

@ -3,48 +3,76 @@
using System; using System;
using System.Drawing; using System.Drawing;
/// <summary> /// <summary>
/// Data Structuer to Represent an Appointment /// Data Structure to Represent an Appointment
///
/// </summary> /// </summary>
[Serializable] [Serializable]
public class CGAppointment public class CGAppointment
{ {
private bool m_bAccessBlock; public int AccessTypeID { get; set; }
private bool m_bNoShow; public string AccessTypeName { get; set; }
private bool m_bSelected = false;
private bool m_bWalkIn; public int AppointmentKey { get; set; }
public DateTime m_dAuxTime;
public DateTime m_dCheckIn; public DateTime AuxTime { get; set; }
private DateTime m_EndTime; public DateTime CheckInTime { get; set; }
public int m_nAccessTypeID = -1; public DateTime EndTime { get; set; }
private int m_nColumn; public DateTime StartTime { get; set; }
public int m_nKey;
private string m_Note; public int GridColumn { get; set; }
public int m_nPatientID; public Rectangle GridRectangle { get; set; }
public int m_nSlots;
private Rectangle m_rectangle; public bool IsAccessBlock { get; set; }
public string m_sAccessTypeName;
private string m_sHRN = ""; public bool NoShow { get; set; }
private string m_sPatientName;
public string m_sResource; public string Note { get; set; }
private DateTime m_StartTime;
private string m_Text; public int PatientID { get; set; }
public string PatientName { get; set; }
public string Resource { get; set; }
public string HealthRecordNumber { get; set; }
public bool Selected { get; set; }
public int Slots { get; set; }
public bool WalkIn { get; set; }
public Patient Patient { get; set; }
public Provider Provider { get; set; }
public int? RadiologyExamIEN { get; set; }
public CGAppointment()
{
AccessTypeID = -1;
Selected = false;
HealthRecordNumber = "";
}
public void CreateAppointment(DateTime StartTime, DateTime EndTime, string Note, int Key, string sResource) public void CreateAppointment(DateTime StartTime, DateTime EndTime, string Note, int Key, string sResource)
{ {
this.m_StartTime = StartTime; this.StartTime = StartTime;
this.m_EndTime = EndTime; this.EndTime = EndTime;
this.m_Note = Note; this.Note = Note;
this.m_nKey = Key; this.AppointmentKey = Key;
this.m_sResource = sResource; this.Resource = sResource;
} }
public int Duration
{
get
{
TimeSpan span = (TimeSpan) (this.EndTime - this.StartTime);
return (int) span.TotalMinutes;
}
}
public override string ToString() public override string ToString()
{ {
//StringFormat sf = new StringFormat();
//sf.SetDigitSubstitution(System.Threading.Thread.CurrentThread.CurrentCulture.LCID, StringDigitSubstitute.National);
string patientName = ""; string patientName = "";
if (this.m_bAccessBlock) if (this.IsAccessBlock)
{ {
string str2 = (this.Slots == 1) ? " Slot, " : " Slots, "; string str2 = (this.Slots == 1) ? " Slot, " : " Slots, ";
return ((((this.AccessTypeName + ": ") + this.Slots.ToString() + str2) + this.Duration.ToString() + " Minutes. ") + this.Note); return ((((this.AccessTypeName + ": ") + this.Slots.ToString() + str2) + this.Duration.ToString() + " Minutes. ") + this.Note);
@ -56,255 +84,6 @@
} }
return (patientName + " " + this.Note); return (patientName + " " + this.Note);
} }
public int AccessTypeID
{
get
{
return this.m_nAccessTypeID;
} }
set
{
this.m_nAccessTypeID = value;
}
}
public string AccessTypeName
{
get
{
return this.m_sAccessTypeName;
}
set
{
this.m_sAccessTypeName = value;
}
}
public int AppointmentKey
{
get
{
return this.m_nKey;
}
set
{
this.m_nKey = value;
}
}
public DateTime AuxTime
{
get
{
return this.m_dAuxTime;
}
set
{
this.m_dAuxTime = value;
}
}
public DateTime CheckInTime
{
get
{
return this.m_dCheckIn;
}
set
{
this.m_dCheckIn = value;
}
}
public int Duration
{
get
{
TimeSpan span = (TimeSpan) (this.EndTime - this.StartTime);
return (int) span.TotalMinutes;
}
}
public DateTime EndTime
{
get
{
return this.m_EndTime;
}
set
{
this.m_EndTime = value;
}
}
public int GridColumn
{
get
{
return this.m_nColumn;
}
set
{
this.m_nColumn = value;
}
}
public Rectangle GridRectangle
{
get
{
return this.m_rectangle;
}
set
{
this.m_rectangle = value;
}
}
public string HealthRecordNumber
{
get
{
return this.m_sHRN;
}
set
{
this.m_sHRN = value;
}
}
public bool IsAccessBlock
{
get
{
return this.m_bAccessBlock;
}
set
{
this.m_bAccessBlock = value;
}
}
public bool NoShow
{
get
{
return this.m_bNoShow;
}
set
{
this.m_bNoShow = value;
}
}
public string Note
{
get
{
return this.m_Note;
}
set
{
this.m_Note = value;
}
}
public int PatientID
{
get
{
return this.m_nPatientID;
}
set
{
this.m_nPatientID = value;
}
}
public string PatientName
{
get
{
return this.m_sPatientName;
}
set
{
this.m_sPatientName = value;
}
}
public string Resource
{
get
{
return this.m_sResource;
}
set
{
this.m_sResource = value;
}
}
public bool Selected
{
get
{
return this.m_bSelected;
}
set
{
this.m_bSelected = value;
}
}
public int Slots
{
get
{
return this.m_nSlots;
}
set
{
this.m_nSlots = value;
}
}
public DateTime StartTime
{
get
{
return this.m_StartTime;
}
set
{
this.m_StartTime = value;
}
}
public string Text
{
get
{
this.m_Text = this.m_sPatientName;
return this.m_Text;
}
}
public bool WalkIn
{
get
{
return this.m_bWalkIn;
}
set
{
this.m_bWalkIn = value;
}
}
public Patient Patient { get; set; }
public Provider Provider { get; set; }
}
} }

View File

@ -237,6 +237,7 @@ namespace IndianHealthService.ClinicalScheduling
nAccessTypeID = (int)r["ACCESSTYPEID"]; nAccessTypeID = (int)r["ACCESSTYPEID"];
sWalkIn = r["WALKIN"].ToString(); sWalkIn = r["WALKIN"].ToString();
bWalkIn = (sWalkIn == "1") ? true : false; bWalkIn = (sWalkIn == "1") ? true : false;
int? RadiologyExamIEN = r["RADIOLOGY_EXAM"] as Int32?; //new in v 1.6 - Get Radiology Exam
Patient pt = new Patient() Patient pt = new Patient()
{ {
@ -261,6 +262,7 @@ namespace IndianHealthService.ClinicalScheduling
pAppointment.HealthRecordNumber = sHRN; pAppointment.HealthRecordNumber = sHRN;
pAppointment.AccessTypeID = nAccessTypeID; pAppointment.AccessTypeID = nAccessTypeID;
pAppointment.WalkIn = bWalkIn; pAppointment.WalkIn = bWalkIn;
pAppointment.RadiologyExamIEN = RadiologyExamIEN;
this.m_appointments.AddAppointment(pAppointment); this.m_appointments.AddAppointment(pAppointment);
} }
@ -972,7 +974,7 @@ namespace IndianHealthService.ClinicalScheduling
sApptID = rApptInfo.AccessTypeID.ToString(); sApptID = rApptInfo.AccessTypeID.ToString();
} }
string sSql = "BSDX ADD NEW APPOINTMENT^" + sStart + "^" + sEnd + "^" + sPatID + "^" + sResource + "^" + sLen + "^" + sNote + "^" + sApptID; string sSql = "BSDX ADD NEW APPOINTMENT^" + sStart + "^" + sEnd + "^" + sPatID + "^" + sResource + "^" + sLen + "^" + sNote + "^" + sApptID + "^" + rApptInfo.RadiologyExamIEN;
System.Data.DataTable dtAppt = m_DocManager.RPMSDataTable(sSql, "NewAppointment"); System.Data.DataTable dtAppt = m_DocManager.RPMSDataTable(sSql, "NewAppointment");
Debug.Assert(dtAppt.Rows.Count == 1); Debug.Assert(dtAppt.Rows.Count == 1);

View File

@ -1,8 +1,6 @@
using System; using System;
using System.Data; using System.Data;
using System.Collections; using System.Collections;
using System.Diagnostics;
using System.Drawing;
namespace IndianHealthService.ClinicalScheduling namespace IndianHealthService.ClinicalScheduling
{ {

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Windows.Forms; using System.Windows.Forms;
using System.Diagnostics; using System.Diagnostics;
@ -47,7 +48,7 @@ namespace IndianHealthService.ClinicalScheduling
private System.Windows.Forms.Panel panelCenter; private System.Windows.Forms.Panel panelCenter;
private System.Windows.Forms.Panel panelBottom; private System.Windows.Forms.Panel panelBottom;
private System.Windows.Forms.Label lblResource; private System.Windows.Forms.Label lblResource;
private System.Windows.Forms.ContextMenu contextMenu1; private System.Windows.Forms.ContextMenu ctxResourceTree;
private System.Windows.Forms.MenuItem ctxOpenSchedule; private System.Windows.Forms.MenuItem ctxOpenSchedule;
private System.Windows.Forms.MenuItem ctxEditAvailability; private System.Windows.Forms.MenuItem ctxEditAvailability;
private System.Windows.Forms.MenuItem ctxProperties; private System.Windows.Forms.MenuItem ctxProperties;
@ -89,15 +90,15 @@ namespace IndianHealthService.ClinicalScheduling
private System.Windows.Forms.MenuItem mnuPrintRebookLetters; private System.Windows.Forms.MenuItem mnuPrintRebookLetters;
private System.Windows.Forms.MenuItem mnuPrintCancellationLetters; private System.Windows.Forms.MenuItem mnuPrintCancellationLetters;
private System.Windows.Forms.MenuItem mnuWalkIn; private System.Windows.Forms.MenuItem mnuWalkIn;
private System.Windows.Forms.MenuItem menuItem5; private System.Windows.Forms.MenuItem sepApptMenu1;
private System.Windows.Forms.MenuItem menuItem8; private System.Windows.Forms.MenuItem sepApptMenu2;
private System.Windows.Forms.MenuItem ctxCalGridWalkin; private System.Windows.Forms.MenuItem ctxCalGridWalkin;
private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.MenuItem ctxCalGridSep1;
private System.Windows.Forms.MenuItem menuItem9; private System.Windows.Forms.MenuItem ctxCalGridSep2;
private System.Windows.Forms.MenuItem mnuOpenMultipleSchedules; private System.Windows.Forms.MenuItem mnuOpenMultipleSchedules;
private System.Windows.Forms.MenuItem mnuDisplayWalkIns; private System.Windows.Forms.MenuItem mnuDisplayWalkIns;
private System.Windows.Forms.MenuItem mnuRPMSDivision; private System.Windows.Forms.MenuItem mnuRPMSDivision;
private MenuItem menuItem10; private MenuItem ctxCalGridSep3;
private MenuItem ctxCalGridReprintApptSlip; private MenuItem ctxCalGridReprintApptSlip;
private MenuItem ctxCalGridUndoCheckin; private MenuItem ctxCalGridUndoCheckin;
private MenuItem ctxPrintScheduleT0; private MenuItem ctxPrintScheduleT0;
@ -105,6 +106,13 @@ namespace IndianHealthService.ClinicalScheduling
private MenuItem ctxPrintScheduleT3; private MenuItem ctxPrintScheduleT3;
private MenuItem menuItem12; private MenuItem menuItem12;
private MenuItem mnuRefresh; private MenuItem mnuRefresh;
private MenuItem ctxCalGridMkRadAppt;
private MenuItem ctxCalGridCancelRadAppt;
private MenuItem mnuMkRadAppt;
private MenuItem mnuCancelRadAppt;
private MenuItem mnuUndoCheckin;
private MenuItem sepApptMenu3;
private MenuItem mnuReprintApptSlip;
private IContainer components; private IContainer components;
#region Initialization #region Initialization
@ -193,17 +201,22 @@ namespace IndianHealthService.ClinicalScheduling
this.mnuClose = new System.Windows.Forms.MenuItem(); this.mnuClose = new System.Windows.Forms.MenuItem();
this.mnuAppointment = new System.Windows.Forms.MenuItem(); this.mnuAppointment = new System.Windows.Forms.MenuItem();
this.mnuNewAppointment = new System.Windows.Forms.MenuItem(); this.mnuNewAppointment = new System.Windows.Forms.MenuItem();
this.mnuWalkIn = new System.Windows.Forms.MenuItem();
this.mnuMkRadAppt = new System.Windows.Forms.MenuItem();
this.mnuEditAppointment = new System.Windows.Forms.MenuItem(); this.mnuEditAppointment = new System.Windows.Forms.MenuItem();
this.mnuDeleteAppointment = new System.Windows.Forms.MenuItem(); this.mnuDeleteAppointment = new System.Windows.Forms.MenuItem();
this.menuItem5 = new System.Windows.Forms.MenuItem(); this.mnuCancelRadAppt = new System.Windows.Forms.MenuItem();
this.sepApptMenu1 = new System.Windows.Forms.MenuItem();
this.mnuNoShow = new System.Windows.Forms.MenuItem(); this.mnuNoShow = new System.Windows.Forms.MenuItem();
this.mnuNoShowUndo = new System.Windows.Forms.MenuItem(); this.mnuNoShowUndo = new System.Windows.Forms.MenuItem();
this.menuItem8 = new System.Windows.Forms.MenuItem(); this.sepApptMenu2 = new System.Windows.Forms.MenuItem();
this.mnuCopyAppointment = new System.Windows.Forms.MenuItem();
this.mnuWalkIn = new System.Windows.Forms.MenuItem();
this.mnuFindAppt = new System.Windows.Forms.MenuItem();
this.mnuCheckIn = new System.Windows.Forms.MenuItem(); this.mnuCheckIn = new System.Windows.Forms.MenuItem();
this.mnuUndoCheckin = new System.Windows.Forms.MenuItem();
this.sepApptMenu3 = new System.Windows.Forms.MenuItem();
this.mnuFindAppt = new System.Windows.Forms.MenuItem();
this.mnuCopyAppointment = new System.Windows.Forms.MenuItem();
this.mnuViewPatientAppts = new System.Windows.Forms.MenuItem(); this.mnuViewPatientAppts = new System.Windows.Forms.MenuItem();
this.mnuReprintApptSlip = new System.Windows.Forms.MenuItem();
this.mnuCalendar = new System.Windows.Forms.MenuItem(); this.mnuCalendar = new System.Windows.Forms.MenuItem();
this.mnuDisplayWalkIns = new System.Windows.Forms.MenuItem(); this.mnuDisplayWalkIns = new System.Windows.Forms.MenuItem();
this.mnu1Day = new System.Windows.Forms.MenuItem(); this.mnu1Day = new System.Windows.Forms.MenuItem();
@ -224,7 +237,7 @@ namespace IndianHealthService.ClinicalScheduling
this.mnuTest = new System.Windows.Forms.MenuItem(); this.mnuTest = new System.Windows.Forms.MenuItem();
this.mnuTest1 = new System.Windows.Forms.MenuItem(); this.mnuTest1 = new System.Windows.Forms.MenuItem();
this.tvSchedules = new System.Windows.Forms.TreeView(); this.tvSchedules = new System.Windows.Forms.TreeView();
this.contextMenu1 = new System.Windows.Forms.ContextMenu(); this.ctxResourceTree = new System.Windows.Forms.ContextMenu();
this.ctxOpenSchedule = new System.Windows.Forms.MenuItem(); this.ctxOpenSchedule = new System.Windows.Forms.MenuItem();
this.ctxEditAvailability = new System.Windows.Forms.MenuItem(); this.ctxEditAvailability = new System.Windows.Forms.MenuItem();
this.ctxProperties = new System.Windows.Forms.MenuItem(); this.ctxProperties = new System.Windows.Forms.MenuItem();
@ -245,16 +258,18 @@ namespace IndianHealthService.ClinicalScheduling
this.panelCenter = new System.Windows.Forms.Panel(); this.panelCenter = new System.Windows.Forms.Panel();
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.ctxCalGridMkRadAppt = new System.Windows.Forms.MenuItem();
this.ctxCalGridEdit = new System.Windows.Forms.MenuItem(); this.ctxCalGridEdit = new System.Windows.Forms.MenuItem();
this.ctxCalGridDelete = new System.Windows.Forms.MenuItem(); this.ctxCalGridDelete = new System.Windows.Forms.MenuItem();
this.ctxCalGridCancelRadAppt = new System.Windows.Forms.MenuItem();
this.ctxCalGridCheckIn = new System.Windows.Forms.MenuItem(); this.ctxCalGridCheckIn = new System.Windows.Forms.MenuItem();
this.ctxCalGridUndoCheckin = new System.Windows.Forms.MenuItem(); this.ctxCalGridUndoCheckin = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem(); this.ctxCalGridSep1 = new System.Windows.Forms.MenuItem();
this.ctxCalGridNoShow = new System.Windows.Forms.MenuItem(); this.ctxCalGridNoShow = new System.Windows.Forms.MenuItem();
this.ctxCalGridNoShowUndo = new System.Windows.Forms.MenuItem(); this.ctxCalGridNoShowUndo = new System.Windows.Forms.MenuItem();
this.menuItem9 = new System.Windows.Forms.MenuItem(); this.ctxCalGridSep2 = new System.Windows.Forms.MenuItem();
this.ctxCalGridWalkin = new System.Windows.Forms.MenuItem(); this.ctxCalGridWalkin = new System.Windows.Forms.MenuItem();
this.menuItem10 = new System.Windows.Forms.MenuItem(); this.ctxCalGridSep3 = new System.Windows.Forms.MenuItem();
this.ctxCalGridReprintApptSlip = new System.Windows.Forms.MenuItem(); this.ctxCalGridReprintApptSlip = new System.Windows.Forms.MenuItem();
this.panelBottom = new System.Windows.Forms.Panel(); this.panelBottom = new System.Windows.Forms.Panel();
this.statusBar1 = new System.Windows.Forms.StatusBar(); this.statusBar1 = new System.Windows.Forms.StatusBar();
@ -368,7 +383,7 @@ namespace IndianHealthService.ClinicalScheduling
// mnuPrintReminderLetters // mnuPrintReminderLetters
// //
this.mnuPrintReminderLetters.Index = 10; this.mnuPrintReminderLetters.Index = 10;
this.mnuPrintReminderLetters.Shortcut = System.Windows.Forms.Shortcut.CtrlI; this.mnuPrintReminderLetters.Shortcut = System.Windows.Forms.Shortcut.CtrlE;
this.mnuPrintReminderLetters.Text = "Print Rem&inder Letters"; this.mnuPrintReminderLetters.Text = "Print Rem&inder Letters";
this.mnuPrintReminderLetters.Click += new System.EventHandler(this.mnuPrintReminderLetters_Click); this.mnuPrintReminderLetters.Click += new System.EventHandler(this.mnuPrintReminderLetters_Click);
// //
@ -410,17 +425,22 @@ namespace IndianHealthService.ClinicalScheduling
this.mnuAppointment.Index = 1; this.mnuAppointment.Index = 1;
this.mnuAppointment.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.mnuAppointment.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.mnuNewAppointment, this.mnuNewAppointment,
this.mnuWalkIn,
this.mnuMkRadAppt,
this.mnuEditAppointment, this.mnuEditAppointment,
this.mnuDeleteAppointment, this.mnuDeleteAppointment,
this.menuItem5, this.mnuCancelRadAppt,
this.sepApptMenu1,
this.mnuNoShow, this.mnuNoShow,
this.mnuNoShowUndo, this.mnuNoShowUndo,
this.menuItem8, this.sepApptMenu2,
this.mnuCopyAppointment,
this.mnuWalkIn,
this.mnuFindAppt,
this.mnuCheckIn, this.mnuCheckIn,
this.mnuViewPatientAppts}); this.mnuUndoCheckin,
this.sepApptMenu3,
this.mnuFindAppt,
this.mnuCopyAppointment,
this.mnuViewPatientAppts,
this.mnuReprintApptSlip});
this.mnuAppointment.Text = "&Appointment"; this.mnuAppointment.Text = "&Appointment";
this.mnuAppointment.Popup += new System.EventHandler(this.mnuAppointment_Popup); this.mnuAppointment.Popup += new System.EventHandler(this.mnuAppointment_Popup);
// //
@ -431,73 +451,112 @@ namespace IndianHealthService.ClinicalScheduling
this.mnuNewAppointment.Text = "&New Appointment"; this.mnuNewAppointment.Text = "&New Appointment";
this.mnuNewAppointment.Click += new System.EventHandler(this.mnuNewAppointment_Click); this.mnuNewAppointment.Click += new System.EventHandler(this.mnuNewAppointment_Click);
// //
// mnuWalkIn
//
this.mnuWalkIn.Index = 1;
this.mnuWalkIn.Shortcut = System.Windows.Forms.Shortcut.ShiftIns;
this.mnuWalkIn.Text = "Create Wal&k-In Appointment";
this.mnuWalkIn.Click += new System.EventHandler(this.mnuWalkIn_Click);
//
// mnuMkRadAppt
//
this.mnuMkRadAppt.Index = 2;
this.mnuMkRadAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlIns;
this.mnuMkRadAppt.Text = "Make Radiology Appointment";
this.mnuMkRadAppt.Click += new System.EventHandler(this.mnuMkRadAppt_Click);
//
// mnuEditAppointment // mnuEditAppointment
// //
this.mnuEditAppointment.Index = 1; this.mnuEditAppointment.Index = 3;
this.mnuEditAppointment.Shortcut = System.Windows.Forms.Shortcut.F2; this.mnuEditAppointment.Shortcut = System.Windows.Forms.Shortcut.F2;
this.mnuEditAppointment.Text = "&Edit Appointment"; this.mnuEditAppointment.Text = "&Edit Appointment";
this.mnuEditAppointment.Click += new System.EventHandler(this.mnuEditAppointment_Click); this.mnuEditAppointment.Click += new System.EventHandler(this.mnuEditAppointment_Click);
// //
// mnuDeleteAppointment // mnuDeleteAppointment
// //
this.mnuDeleteAppointment.Index = 2; this.mnuDeleteAppointment.Index = 4;
this.mnuDeleteAppointment.Shortcut = System.Windows.Forms.Shortcut.Del; this.mnuDeleteAppointment.Shortcut = System.Windows.Forms.Shortcut.Del;
this.mnuDeleteAppointment.Text = "Cance&l Appointment"; this.mnuDeleteAppointment.Text = "Cance&l Appointment";
this.mnuDeleteAppointment.Click += new System.EventHandler(this.mnuDeleteAppointment_Click); this.mnuDeleteAppointment.Click += new System.EventHandler(this.mnuDeleteAppointment_Click);
// //
// menuItem5 // mnuCancelRadAppt
// //
this.menuItem5.Index = 3; this.mnuCancelRadAppt.Index = 5;
this.menuItem5.Text = "-"; this.mnuCancelRadAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlDel;
this.mnuCancelRadAppt.Text = "Cancel Radiology Appointment";
this.mnuCancelRadAppt.Click += new System.EventHandler(this.mnuCancelRadAppt_Click);
//
// sepApptMenu1
//
this.sepApptMenu1.Index = 6;
this.sepApptMenu1.Text = "-";
// //
// mnuNoShow // mnuNoShow
// //
this.mnuNoShow.Index = 4; this.mnuNoShow.Index = 7;
this.mnuNoShow.Shortcut = System.Windows.Forms.Shortcut.CtrlN;
this.mnuNoShow.Text = "Mark as No Sho&w"; this.mnuNoShow.Text = "Mark as No Sho&w";
this.mnuNoShow.Click += new System.EventHandler(this.mnuNoShow_Click); this.mnuNoShow.Click += new System.EventHandler(this.mnuNoShow_Click);
// //
// mnuNoShowUndo // mnuNoShowUndo
// //
this.mnuNoShowUndo.Index = 5; this.mnuNoShowUndo.Index = 8;
this.mnuNoShowUndo.Shortcut = System.Windows.Forms.Shortcut.CtrlShiftN;
this.mnuNoShowUndo.Text = "&Undo No Show"; this.mnuNoShowUndo.Text = "&Undo No Show";
this.mnuNoShowUndo.Click += new System.EventHandler(this.mnuNoShowUndo_Click); this.mnuNoShowUndo.Click += new System.EventHandler(this.mnuNoShowUndo_Click);
// //
// menuItem8 // sepApptMenu2
// //
this.menuItem8.Index = 6; this.sepApptMenu2.Index = 9;
this.menuItem8.Text = "-"; this.sepApptMenu2.Text = "-";
//
// mnuCopyAppointment
//
this.mnuCopyAppointment.Index = 7;
this.mnuCopyAppointment.Text = "&Copy Appointment to Clipboard";
this.mnuCopyAppointment.Click += new System.EventHandler(this.mnuCopyAppointment_Click);
//
// mnuWalkIn
//
this.mnuWalkIn.Index = 8;
this.mnuWalkIn.Text = "Create Wal&k-In Appointment";
this.mnuWalkIn.Click += new System.EventHandler(this.mnuWalkIn_Click);
//
// mnuFindAppt
//
this.mnuFindAppt.Index = 9;
this.mnuFindAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlF;
this.mnuFindAppt.Text = "&Find Empty Slots";
this.mnuFindAppt.Click += new System.EventHandler(this.mnuFindAppt_Click);
// //
// mnuCheckIn // mnuCheckIn
// //
this.mnuCheckIn.Index = 10; this.mnuCheckIn.Index = 10;
this.mnuCheckIn.Shortcut = System.Windows.Forms.Shortcut.CtrlI;
this.mnuCheckIn.Text = "Check &In Patient"; this.mnuCheckIn.Text = "Check &In Patient";
this.mnuCheckIn.Click += new System.EventHandler(this.mnuCheckIn_Click); this.mnuCheckIn.Click += new System.EventHandler(this.mnuCheckIn_Click);
// //
// mnuUndoCheckin
//
this.mnuUndoCheckin.Index = 11;
this.mnuUndoCheckin.Shortcut = System.Windows.Forms.Shortcut.CtrlShiftI;
this.mnuUndoCheckin.Text = "Undo Checkin";
this.mnuUndoCheckin.Click += new System.EventHandler(this.mnuUndoCheckin_Click);
//
// sepApptMenu3
//
this.sepApptMenu3.Index = 12;
this.sepApptMenu3.Text = "-";
//
// mnuFindAppt
//
this.mnuFindAppt.Index = 13;
this.mnuFindAppt.Shortcut = System.Windows.Forms.Shortcut.CtrlF;
this.mnuFindAppt.Text = "&Find Empty Slots";
this.mnuFindAppt.Click += new System.EventHandler(this.mnuFindAppt_Click);
//
// mnuCopyAppointment
//
this.mnuCopyAppointment.Index = 14;
this.mnuCopyAppointment.Shortcut = System.Windows.Forms.Shortcut.CtrlC;
this.mnuCopyAppointment.Text = "&Copy Appointment to Clipboard";
this.mnuCopyAppointment.Click += new System.EventHandler(this.mnuCopyAppointment_Click);
//
// mnuViewPatientAppts // mnuViewPatientAppts
// //
this.mnuViewPatientAppts.Index = 11; this.mnuViewPatientAppts.Index = 15;
this.mnuViewPatientAppts.Shortcut = System.Windows.Forms.Shortcut.CtrlShiftZ;
this.mnuViewPatientAppts.Text = "&View Patient Appointments"; this.mnuViewPatientAppts.Text = "&View Patient Appointments";
this.mnuViewPatientAppts.Click += new System.EventHandler(this.mnuViewPatientAppts_Click); this.mnuViewPatientAppts.Click += new System.EventHandler(this.mnuViewPatientAppts_Click);
// //
// mnuReprintApptSlip
//
this.mnuReprintApptSlip.Index = 16;
this.mnuReprintApptSlip.Shortcut = System.Windows.Forms.Shortcut.CtrlShiftP;
this.mnuReprintApptSlip.Text = "Reprint Appointment Slip";
this.mnuReprintApptSlip.Click += new System.EventHandler(this.mnuReprintApptSlip_Click);
//
// mnuCalendar // mnuCalendar
// //
this.mnuCalendar.Index = 2; this.mnuCalendar.Index = 2;
@ -518,6 +577,7 @@ namespace IndianHealthService.ClinicalScheduling
// //
this.mnuDisplayWalkIns.Checked = true; this.mnuDisplayWalkIns.Checked = true;
this.mnuDisplayWalkIns.Index = 0; this.mnuDisplayWalkIns.Index = 0;
this.mnuDisplayWalkIns.Shortcut = System.Windows.Forms.Shortcut.F12;
this.mnuDisplayWalkIns.Text = "&Display Walk-Ins"; this.mnuDisplayWalkIns.Text = "&Display Walk-Ins";
this.mnuDisplayWalkIns.Click += new System.EventHandler(this.mnuDisplayWalkIns_Click); this.mnuDisplayWalkIns.Click += new System.EventHandler(this.mnuDisplayWalkIns_Click);
// //
@ -591,7 +651,9 @@ namespace IndianHealthService.ClinicalScheduling
// //
// mnuViewScheduleTree // mnuViewScheduleTree
// //
this.mnuViewScheduleTree.Checked = true;
this.mnuViewScheduleTree.Index = 6; this.mnuViewScheduleTree.Index = 6;
this.mnuViewScheduleTree.Shortcut = System.Windows.Forms.Shortcut.F4;
this.mnuViewScheduleTree.Text = "&Schedule Tree"; this.mnuViewScheduleTree.Text = "&Schedule Tree";
this.mnuViewScheduleTree.Click += new System.EventHandler(this.mnuViewScheduleTree_Click); this.mnuViewScheduleTree.Click += new System.EventHandler(this.mnuViewScheduleTree_Click);
// //
@ -644,12 +706,12 @@ namespace IndianHealthService.ClinicalScheduling
// tvSchedules // tvSchedules
// //
this.tvSchedules.BackColor = System.Drawing.SystemColors.ControlLight; this.tvSchedules.BackColor = System.Drawing.SystemColors.ControlLight;
this.tvSchedules.ContextMenu = this.contextMenu1; this.tvSchedules.ContextMenu = this.ctxResourceTree;
this.tvSchedules.Dock = System.Windows.Forms.DockStyle.Left; this.tvSchedules.Dock = System.Windows.Forms.DockStyle.Left;
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(128, 317); this.tvSchedules.Size = new System.Drawing.Size(128, 392);
this.tvSchedules.Sorted = true; this.tvSchedules.Sorted = true;
this.tvSchedules.TabIndex = 1; this.tvSchedules.TabIndex = 1;
this.tvSchedules.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvSchedules_AfterSelect); this.tvSchedules.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvSchedules_AfterSelect);
@ -657,9 +719,9 @@ namespace IndianHealthService.ClinicalScheduling
this.tvSchedules.DoubleClick += new System.EventHandler(this.tvSchedules_DoubleClick); this.tvSchedules.DoubleClick += new System.EventHandler(this.tvSchedules_DoubleClick);
this.tvSchedules.MouseEnter += new System.EventHandler(this.tvSchedules_MouseEnter); this.tvSchedules.MouseEnter += new System.EventHandler(this.tvSchedules_MouseEnter);
// //
// contextMenu1 // ctxResourceTree
// //
this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.ctxResourceTree.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.ctxOpenSchedule, this.ctxOpenSchedule,
this.ctxEditAvailability, this.ctxEditAvailability,
this.ctxProperties, this.ctxProperties,
@ -667,7 +729,7 @@ namespace IndianHealthService.ClinicalScheduling
this.ctxPrintScheduleT0, this.ctxPrintScheduleT0,
this.ctxPrintScheduleT1, this.ctxPrintScheduleT1,
this.ctxPrintScheduleT3}); this.ctxPrintScheduleT3});
this.contextMenu1.Popup += new System.EventHandler(this.contextMenu1_Popup); this.ctxResourceTree.Popup += new System.EventHandler(this.contextMenu1_Popup);
// //
// ctxOpenSchedule // ctxOpenSchedule
// //
@ -718,7 +780,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(996, 0); this.panelRight.Location = new System.Drawing.Point(996, 0);
this.panelRight.Name = "panelRight"; this.panelRight.Name = "panelRight";
this.panelRight.Size = new System.Drawing.Size(128, 317); this.panelRight.Size = new System.Drawing.Size(128, 392);
this.panelRight.TabIndex = 3; this.panelRight.TabIndex = 3;
this.panelRight.Visible = false; this.panelRight.Visible = false;
// //
@ -814,23 +876,25 @@ 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(136, 24); this.panelCenter.Location = new System.Drawing.Point(136, 24);
this.panelCenter.Name = "panelCenter"; this.panelCenter.Name = "panelCenter";
this.panelCenter.Size = new System.Drawing.Size(857, 269); this.panelCenter.Size = new System.Drawing.Size(857, 344);
this.panelCenter.TabIndex = 7; this.panelCenter.TabIndex = 7;
// //
// ctxCalendarGrid // ctxCalendarGrid
// //
this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.ctxCalendarGrid.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.ctxCalGridAdd, this.ctxCalGridAdd,
this.ctxCalGridMkRadAppt,
this.ctxCalGridEdit, this.ctxCalGridEdit,
this.ctxCalGridDelete, this.ctxCalGridDelete,
this.ctxCalGridCancelRadAppt,
this.ctxCalGridCheckIn, this.ctxCalGridCheckIn,
this.ctxCalGridUndoCheckin, this.ctxCalGridUndoCheckin,
this.menuItem2, this.ctxCalGridSep1,
this.ctxCalGridNoShow, this.ctxCalGridNoShow,
this.ctxCalGridNoShowUndo, this.ctxCalGridNoShowUndo,
this.menuItem9, this.ctxCalGridSep2,
this.ctxCalGridWalkin, this.ctxCalGridWalkin,
this.menuItem10, this.ctxCalGridSep3,
this.ctxCalGridReprintApptSlip}); this.ctxCalGridReprintApptSlip});
this.ctxCalendarGrid.Popup += new System.EventHandler(this.ctxCalendarGrid_Popup); this.ctxCalendarGrid.Popup += new System.EventHandler(this.ctxCalendarGrid_Popup);
// //
@ -840,66 +904,78 @@ namespace IndianHealthService.ClinicalScheduling
this.ctxCalGridAdd.Text = "Add Appointment"; this.ctxCalGridAdd.Text = "Add Appointment";
this.ctxCalGridAdd.Click += new System.EventHandler(this.ctxCalGridAdd_Click); this.ctxCalGridAdd.Click += new System.EventHandler(this.ctxCalGridAdd_Click);
// //
// ctxCalGridMkRadAppt
//
this.ctxCalGridMkRadAppt.Index = 1;
this.ctxCalGridMkRadAppt.Text = "Make Radiology Appointment";
this.ctxCalGridMkRadAppt.Click += new System.EventHandler(this.ctxCalGridMkRadAppt_Click);
//
// ctxCalGridEdit // ctxCalGridEdit
// //
this.ctxCalGridEdit.Index = 1; this.ctxCalGridEdit.Index = 2;
this.ctxCalGridEdit.Text = "Edit Appointment"; this.ctxCalGridEdit.Text = "Edit Appointment";
this.ctxCalGridEdit.Click += new System.EventHandler(this.ctxCalGridEdit_Click); this.ctxCalGridEdit.Click += new System.EventHandler(this.ctxCalGridEdit_Click);
// //
// ctxCalGridDelete // ctxCalGridDelete
// //
this.ctxCalGridDelete.Index = 2; this.ctxCalGridDelete.Index = 3;
this.ctxCalGridDelete.Text = "Cancel Appointment"; this.ctxCalGridDelete.Text = "Cancel Appointment";
this.ctxCalGridDelete.Click += new System.EventHandler(this.ctxCalGridDelete_Click); this.ctxCalGridDelete.Click += new System.EventHandler(this.ctxCalGridDelete_Click);
// //
// ctxCalGridCancelRadAppt
//
this.ctxCalGridCancelRadAppt.Index = 4;
this.ctxCalGridCancelRadAppt.Text = "Cancel Radiology Appointment";
this.ctxCalGridCancelRadAppt.Click += new System.EventHandler(this.ctxCalGridCancelRadAppt_Click);
//
// ctxCalGridCheckIn // ctxCalGridCheckIn
// //
this.ctxCalGridCheckIn.Index = 3; this.ctxCalGridCheckIn.Index = 5;
this.ctxCalGridCheckIn.Text = "Check In Patient"; this.ctxCalGridCheckIn.Text = "Check In Patient";
this.ctxCalGridCheckIn.Click += new System.EventHandler(this.ctxCalGridCheckIn_Click); this.ctxCalGridCheckIn.Click += new System.EventHandler(this.ctxCalGridCheckIn_Click);
// //
// ctxCalGridUndoCheckin // ctxCalGridUndoCheckin
// //
this.ctxCalGridUndoCheckin.Index = 4; this.ctxCalGridUndoCheckin.Index = 6;
this.ctxCalGridUndoCheckin.Text = "&Undo Check In"; this.ctxCalGridUndoCheckin.Text = "&Undo Check In";
this.ctxCalGridUndoCheckin.Click += new System.EventHandler(this.ctxCalGridUndoCheckin_Click); this.ctxCalGridUndoCheckin.Click += new System.EventHandler(this.ctxCalGridUndoCheckin_Click);
// //
// menuItem2 // ctxCalGridSep1
// //
this.menuItem2.Index = 5; this.ctxCalGridSep1.Index = 7;
this.menuItem2.Text = "-"; this.ctxCalGridSep1.Text = "-";
// //
// ctxCalGridNoShow // ctxCalGridNoShow
// //
this.ctxCalGridNoShow.Index = 6; this.ctxCalGridNoShow.Index = 8;
this.ctxCalGridNoShow.Text = "Mark as No Show"; this.ctxCalGridNoShow.Text = "Mark as No Show";
this.ctxCalGridNoShow.Click += new System.EventHandler(this.ctxCalGridNoShow_Click); this.ctxCalGridNoShow.Click += new System.EventHandler(this.ctxCalGridNoShow_Click);
// //
// ctxCalGridNoShowUndo // ctxCalGridNoShowUndo
// //
this.ctxCalGridNoShowUndo.Index = 7; this.ctxCalGridNoShowUndo.Index = 9;
this.ctxCalGridNoShowUndo.Text = "Undo NoShow"; this.ctxCalGridNoShowUndo.Text = "Undo NoShow";
this.ctxCalGridNoShowUndo.Click += new System.EventHandler(this.ctxCalGridNoShowUndo_Click); this.ctxCalGridNoShowUndo.Click += new System.EventHandler(this.ctxCalGridNoShowUndo_Click);
// //
// menuItem9 // ctxCalGridSep2
// //
this.menuItem9.Index = 8; this.ctxCalGridSep2.Index = 10;
this.menuItem9.Text = "-"; this.ctxCalGridSep2.Text = "-";
// //
// ctxCalGridWalkin // ctxCalGridWalkin
// //
this.ctxCalGridWalkin.Index = 9; this.ctxCalGridWalkin.Index = 11;
this.ctxCalGridWalkin.Text = "Create Wal&k-In Appointment"; this.ctxCalGridWalkin.Text = "Create Wal&k-In Appointment";
this.ctxCalGridWalkin.Click += new System.EventHandler(this.ctxCalGridWalkin_Click); this.ctxCalGridWalkin.Click += new System.EventHandler(this.ctxCalGridWalkin_Click);
// //
// menuItem10 // ctxCalGridSep3
// //
this.menuItem10.Index = 10; this.ctxCalGridSep3.Index = 12;
this.menuItem10.Text = "-"; this.ctxCalGridSep3.Text = "-";
// //
// ctxCalGridReprintApptSlip // ctxCalGridReprintApptSlip
// //
this.ctxCalGridReprintApptSlip.Index = 11; this.ctxCalGridReprintApptSlip.Index = 13;
this.ctxCalGridReprintApptSlip.Text = "&Reprint Appointment Slip"; this.ctxCalGridReprintApptSlip.Text = "&Reprint Appointment Slip";
this.ctxCalGridReprintApptSlip.Click += new System.EventHandler(this.ctxCalGridReprintApptSlip_Click); this.ctxCalGridReprintApptSlip.Click += new System.EventHandler(this.ctxCalGridReprintApptSlip_Click);
// //
@ -907,7 +983,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(136, 293); this.panelBottom.Location = new System.Drawing.Point(136, 368);
this.panelBottom.Name = "panelBottom"; this.panelBottom.Name = "panelBottom";
this.panelBottom.Size = new System.Drawing.Size(857, 24); this.panelBottom.Size = new System.Drawing.Size(857, 24);
this.panelBottom.TabIndex = 8; this.panelBottom.TabIndex = 8;
@ -925,7 +1001,7 @@ namespace IndianHealthService.ClinicalScheduling
// //
this.splitter1.Location = new System.Drawing.Point(128, 24); this.splitter1.Location = new System.Drawing.Point(128, 24);
this.splitter1.Name = "splitter1"; this.splitter1.Name = "splitter1";
this.splitter1.Size = new System.Drawing.Size(8, 293); this.splitter1.Size = new System.Drawing.Size(8, 368);
this.splitter1.TabIndex = 9; this.splitter1.TabIndex = 9;
this.splitter1.TabStop = false; this.splitter1.TabStop = false;
// //
@ -934,7 +1010,7 @@ namespace IndianHealthService.ClinicalScheduling
this.splitter2.Dock = System.Windows.Forms.DockStyle.Right; this.splitter2.Dock = System.Windows.Forms.DockStyle.Right;
this.splitter2.Location = new System.Drawing.Point(993, 24); this.splitter2.Location = new System.Drawing.Point(993, 24);
this.splitter2.Name = "splitter2"; this.splitter2.Name = "splitter2";
this.splitter2.Size = new System.Drawing.Size(3, 293); this.splitter2.Size = new System.Drawing.Size(3, 368);
this.splitter2.TabIndex = 10; this.splitter2.TabIndex = 10;
this.splitter2.TabStop = false; this.splitter2.TabStop = false;
// //
@ -957,7 +1033,7 @@ namespace IndianHealthService.ClinicalScheduling
this.calendarGrid1.Name = "calendarGrid1"; this.calendarGrid1.Name = "calendarGrid1";
this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources"))); this.calendarGrid1.Resources = ((System.Collections.ArrayList)(resources.GetObject("calendarGrid1.Resources")));
this.calendarGrid1.SelectedAppointment = 0; this.calendarGrid1.SelectedAppointment = 0;
this.calendarGrid1.Size = new System.Drawing.Size(857, 269); this.calendarGrid1.Size = new System.Drawing.Size(857, 344);
this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0); this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0);
this.calendarGrid1.TabIndex = 0; this.calendarGrid1.TabIndex = 0;
this.calendarGrid1.TimeScale = 20; this.calendarGrid1.TimeScale = 20;
@ -970,7 +1046,7 @@ namespace IndianHealthService.ClinicalScheduling
// CGView // CGView
// //
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(1124, 317); this.ClientSize = new System.Drawing.Size(1124, 392);
this.Controls.Add(this.panelCenter); this.Controls.Add(this.panelCenter);
this.Controls.Add(this.panelBottom); this.Controls.Add(this.panelBottom);
this.Controls.Add(this.splitter2); this.Controls.Add(this.splitter2);
@ -1081,26 +1157,35 @@ namespace IndianHealthService.ClinicalScheduling
#endregion #endregion
#region AppointmentMenu Handlers #region AppointmentMenu Handlers
private void mnuAppointment_Popup(object sender, System.EventArgs e) private void mnuAppointment_Popup(object sender, System.EventArgs e)
{ {
bool bEnabled = (this.Document.Resources.Count > 0)? true : false ; // our flags
this.mnuFindAppt.Enabled = bEnabled; bool _findApptsEnabled = (this.Document.Resources.Count > 0)? true : false ;
bool _addApptsEnabled = AddAppointmentEnabled();
bool _editApptsEnabled = EditAppointmentEnabled();
bool _isRadAppt = IsThisARadiologyResource();
bool _noShowEnabled = NoShowEnabled();
bool _undoCheckinEnabled = UndoCheckinEnabled();
//end flags
//Toggle availability of make, edit, checkin and delete appointments mnuNewAppointment.Enabled = _addApptsEnabled && !_isRadAppt;
//based on whether a range is selected. mnuWalkIn.Enabled = _addApptsEnabled && !_isRadAppt;
mnuMkRadAppt.Enabled = _isRadAppt && _addApptsEnabled;
mnuNewAppointment.Enabled = AddAppointmentEnabled(); mnuEditAppointment.Enabled = _editApptsEnabled && !_isRadAppt;
this.mnuWalkIn.Enabled = mnuNewAppointment.Enabled; mnuDeleteAppointment.Enabled = _editApptsEnabled && !_isRadAppt;
bool bEditAppointments = this.EditAppointmentEnabled(); mnuCancelRadAppt.Enabled = _isRadAppt && _editApptsEnabled;
mnuNoShow.Enabled = _noShowEnabled && _editApptsEnabled;
mnuNoShowUndo.Enabled = !_noShowEnabled && _editApptsEnabled;
mnuCheckIn.Enabled = _editApptsEnabled && !_isRadAppt;
mnuUndoCheckin.Enabled = _undoCheckinEnabled && !_isRadAppt;
mnuDeleteAppointment.Enabled = bEditAppointments; mnuFindAppt.Enabled = _findApptsEnabled;
mnuCheckIn.Enabled = bEditAppointments; mnuCopyAppointment.Enabled = _editApptsEnabled && !_isRadAppt;
mnuEditAppointment.Enabled = bEditAppointments; mnuViewPatientAppts.Enabled = true;
mnuNoShow.Enabled = bEditAppointments; mnuReprintApptSlip.Enabled = _editApptsEnabled;
mnuNoShowUndo.Enabled = bEditAppointments;
} }
private void mnuCheckIn_Click(object sender, System.EventArgs e) private void mnuCheckIn_Click(object sender, System.EventArgs e)
@ -1117,12 +1202,12 @@ namespace IndianHealthService.ClinicalScheduling
{ {
foreach (CGAppointment a in this.calendarGrid1.SelectedAppointments.AppointmentTable.Values) foreach (CGAppointment a in this.calendarGrid1.SelectedAppointments.AppointmentTable.Values)
{ {
if (m_ClipList.AppointmentTable.Contains((int) a.AppointmentKey)) if (m_ClipList.AppointmentTable.Contains((int)a.AppointmentKey))
{ {
return; return;
} }
m_ClipList.AddAppointment(a); m_ClipList.AddAppointment(a);
lstClip.Items.Add(a.PatientName); lstClip.Items.Add(a);
} }
} }
catch (Exception ex) catch (Exception ex)
@ -1163,6 +1248,31 @@ namespace IndianHealthService.ClinicalScheduling
AppointmentUndoCheckin(); AppointmentUndoCheckin();
} }
private void mnuMkRadAppt_Click(object sender, EventArgs e)
{
AppointmentAddNewRadiology();
}
private void mnuCancelRadAppt_Click(object sender, EventArgs e)
{
AppointmentDeleteOneRadiology();
}
private void mnuUndoCheckin_Click(object sender, EventArgs e)
{
AppointmentUndoCheckin();
}
private void mnuReprintApptSlip_Click(object sender, EventArgs e)
{
int apptID = this.CGrid.SelectedAppointment;
if (apptID <= 0) return;
CGAppointment a = (CGAppointment)this.Appointments.AppointmentTable[apptID];
PrintAppointmentSlip(a);
}
#endregion AppointmentMenu Handlers #endregion AppointmentMenu Handlers
#region ContextMenu1 Handlers #region ContextMenu1 Handlers
@ -1291,20 +1401,60 @@ namespace IndianHealthService.ClinicalScheduling
private void ctxCalendarGrid_Popup(object sender, System.EventArgs e) private void ctxCalendarGrid_Popup(object sender, System.EventArgs e)
{ {
bool bEditAppointments = (EditAppointmentEnabled() && (calendarGrid1.SelectedAppointment > 0)) ;
if (IsThisARadiologyResource())//this is a radiology resource
{
ctxCalGridAdd.Visible = false;
ctxCalGridDelete.Visible = false;
ctxCalGridEdit.Visible = false;
ctxCalGridCheckIn.Visible = false;
ctxCalGridNoShow.Visible = false;
ctxCalGridNoShowUndo.Visible = false;
ctxCalGridWalkin.Visible = false;
ctxCalGridUndoCheckin.Visible = false;
ctxCalGridSep1.Visible = false;
ctxCalGridSep2.Visible = false;
ctxCalGridMkRadAppt.Visible = true;
ctxCalGridCancelRadAppt.Visible = true;
}
else // this is a normal resource
{
ctxCalGridAdd.Visible = true;
ctxCalGridDelete.Visible = true;
ctxCalGridEdit.Visible = true;
ctxCalGridCheckIn.Visible = true;
ctxCalGridNoShow.Visible = true;
ctxCalGridNoShowUndo.Visible = true;
ctxCalGridWalkin.Visible = true;
ctxCalGridUndoCheckin.Visible = true;
ctxCalGridSep1.Visible = true;
ctxCalGridSep2.Visible = true;
ctxCalGridMkRadAppt.Visible = false;
ctxCalGridCancelRadAppt.Visible = false;
}
//Toggle availability of make, edit, checkin and delete appointments //Toggle availability of make, edit, checkin and delete appointments
//based on whether appropriate element is selected. //based on whether appropriate element is selected.
ctxCalGridAdd.Enabled = AddAppointmentEnabled(); ctxCalGridAdd.Enabled = AddAppointmentEnabled();
bool bEditAppointments = (EditAppointmentEnabled() && (calendarGrid1.SelectedAppointment > 0)) ;
ctxCalGridDelete.Enabled = bEditAppointments; ctxCalGridDelete.Enabled = bEditAppointments;
ctxCalGridEdit.Enabled = bEditAppointments; ctxCalGridEdit.Enabled = bEditAppointments;
ctxCalGridCheckIn.Enabled = bEditAppointments; ctxCalGridCheckIn.Enabled = bEditAppointments;
ctxCalGridNoShow.Enabled = NoShowEnabled(); ctxCalGridNoShow.Enabled = NoShowEnabled();
ctxCalGridNoShowUndo.Enabled = !NoShowEnabled() && calendarGrid1.SelectedAppointment > 0; ctxCalGridNoShowUndo.Enabled = !NoShowEnabled() && calendarGrid1.SelectedAppointment > 0;
ctxCalGridWalkin.Enabled = ctxCalGridAdd.Enabled; ctxCalGridWalkin.Enabled = ctxCalGridAdd.Enabled;
//smh new code
ctxCalGridReprintApptSlip.Enabled = bEditAppointments; ctxCalGridReprintApptSlip.Enabled = bEditAppointments;
ctxCalGridUndoCheckin.Enabled = UndoCheckinEnabled(); ctxCalGridUndoCheckin.Enabled = UndoCheckinEnabled();
//end new code
//if the rad ones are visible, then these apply
ctxCalGridMkRadAppt.Enabled = !bEditAppointments;
ctxCalGridCancelRadAppt.Enabled = bEditAppointments;
} }
private void ctxCalGridAdd_Click(object sender, System.EventArgs e) private void ctxCalGridAdd_Click(object sender, System.EventArgs e)
@ -1343,7 +1493,16 @@ namespace IndianHealthService.ClinicalScheduling
AppointmentNoShow(false); AppointmentNoShow(false);
} }
//new code smh private void ctxCalGridMkRadAppt_Click(object sender, EventArgs e)
{
AppointmentAddNewRadiology();
}
private void ctxCalGridCancelRadAppt_Click(object sender, EventArgs e)
{
AppointmentDeleteOneRadiology();
}
private void ctxCalGridReprintApptSlip_Click(object sender, EventArgs e) private void ctxCalGridReprintApptSlip_Click(object sender, EventArgs e)
{ {
int apptID = this.CGrid.SelectedAppointment; int apptID = this.CGrid.SelectedAppointment;
@ -1353,12 +1512,68 @@ namespace IndianHealthService.ClinicalScheduling
PrintAppointmentSlip(a); PrintAppointmentSlip(a);
} }
//end new code
#endregion ctxCalGridMenu Handlers #endregion ctxCalGridMenu Handlers
#region Methods #region Methods
/// <summary>
/// Decides whether this is a Radiology Resource. Local Helper to decide what menu items to enable/display
/// </summary>
/// <returns></returns>
private bool IsThisARadiologyResource()
{
//I don't like this logic!!! but works for now!
//Note: I use banana peeling model below
//If no cell is selected AND no appointment is selected, then it's false
if (this.calendarGrid1.SelectedRange.Cells.CellCount < 1 && this.calendarGrid1.SelectedAppointment < 1)
return false;
//If an appointment is selected then...
if (this.calendarGrid1.SelectedAppointment > 0)
{
CGAppointment appt = this.Appointments.AppointmentTable[this.calendarGrid1.SelectedAppointment] as CGAppointment;
if (appt == null) return false; //appt doesn't exist; old appointment and grid wasn't refreshed yet
if (appt.RadiologyExamIEN.HasValue && appt.RadiologyExamIEN.Value > 0) return true; //this appointment is a radiology appointment since it has that member
else return false;
}
//Otherwise, we are for sure dealing with a cell.
//We need to determine if the cell resource is mapped to a Radiology Hospital Location.
DateTime dStart;
DateTime dEnd;
string sResource;
// Get resource
bool bRet = this.calendarGrid1.GetSelectedTime(out dStart, out dEnd, out sResource);
// If we fail, return false (but this is not supposed to ever happen)
if (bRet == false)
{
return false;
}
// see if resource is mapped to a Radiology Hospital Location.
return IsThisARadiologyResource(sResource);
}
private bool IsThisARadiologyResource(string sResource)
{
// see if resource is mapped to a Radiology Hospital Location.
return ( //select all Hospital Locations which are radiology locations
from hl in CGDocumentManager.Current.GlobalDataSet.Tables["HospitalLocation"].AsEnumerable()
where hl.Field<string>("IS_RADIOLOGY_LOCATION") == "1"
//join this to the resources table using the foreign ID (plain jane relational join)
join res in CGDocumentManager.Current.GlobalDataSet.Tables["Resources"].AsEnumerable()
on hl.Field<int>("HOSPITAL_LOCATION_ID") equals res.Field<int>("HOSPITAL_LOCATION_ID")
//then filter this down to the resource that we have
where res.Field<string>("RESOURCE_NAME") == sResource
//if we have any row left, then it is true.
select hl).Any();
}
private bool EditAppointmentEnabled() private bool EditAppointmentEnabled()
{ {
try try
@ -1979,6 +2194,30 @@ namespace IndianHealthService.ClinicalScheduling
} }
} }
/// <summary>
/// Delete one Radiology Appointment
/// </summary>
private void AppointmentDeleteOneRadiology()
{
Debug.Assert(this.calendarGrid1.SelectedAppointment > 0);
CGAppointment a = this.Appointments.AppointmentTable[this.calendarGrid1.SelectedAppointment] as CGAppointment;
Debug.Assert(a.RadiologyExamIEN.HasValue);
//Prior to making expensive db calls, tell the grid nothing is selected anymore so nobody would try to pick it up
this.calendarGrid1.SelectedAppointment = 0;
//Cancel Radiology Exam
CGDocumentManager.Current.DAL.CancelRadiologyExam(a.PatientID, a.RadiologyExamIEN.Value);
//Now, Cancel the appointment
this.Document.DeleteAppointment(a.AppointmentKey);
//redraw the grid to display new set of appointments after this appt was removed.
this.UpdateArrays();
}
/// <summary> /// <summary>
/// Delete appointment ApptID /// Delete appointment ApptID
/// </summary> /// </summary>
@ -2015,6 +2254,11 @@ namespace IndianHealthService.ClinicalScheduling
return; return;
} }
//At this point, the appointment will be deleted...
//Remove the Selected Appointment from the grid because we don't anybody to think there's still
//an appointment selected while we are still updating the grid
this.calendarGrid1.SelectedAppointment = 0;
bool bClinic = dCancel.ClinicCancelled; bool bClinic = dCancel.ClinicCancelled;
int nReason = dCancel.CancelReason; int nReason = dCancel.CancelReason;
string sRemarks = dCancel.CancelRemarks; string sRemarks = dCancel.CancelRemarks;
@ -2380,6 +2624,85 @@ namespace IndianHealthService.ClinicalScheduling
} }
} }
/// <summary>
/// Add a new Radiology Appointment to VISTA (ÒÝÊì as my mom calls it)
/// </summary>
private void AppointmentAddNewRadiology()
{
DateTime dStart, dEnd; //return vales for below
string sResource; //ditto
int nAccessTypeID = 0; //ditto
this.calendarGrid1.GetSelectedTime(out dStart, out dEnd, out sResource);
this.calendarGrid1.GetSelectedType(out nAccessTypeID);
Debug.Assert(sResource != null);
Debug.Assert(dStart > DateTime.MinValue);
//Display a dialog to collect Patient Name
DPatientLookup dPat = new DPatientLookup();
dPat.DocManager = m_DocManager;
if (dPat.ShowDialog(this) == DialogResult.Cancel)
{
return;
}
int DFN = Int32.Parse(dPat.PatientIEN);
// Hospital Location IEN
int hlIEN = (from resource in CGDocumentManager.Current.GlobalDataSet.Tables["Resources"].AsEnumerable()
where resource.Field<string>("RESOURCE_NAME") == sResource
select resource.Field<int>("HOSPITAL_LOCATION_ID")).FirstOrDefault();
//Get Radiology Exams from the DB
List<RadiologyExam> _radExams = CGDocumentManager.Current.DAL.GetRadiologyExamsForPatientinHL(DFN, hlIEN);
//If none found...
if (!_radExams.Any())
{
MessageBox.Show("Patient does not have any radiology exams to register.");
return;
}
//Display a form for the user to select radiology exams.
DRadExamsSelect _radform = new DRadExamsSelect(_radExams);
if (_radform.ShowDialog() == DialogResult.Cancel) return;
//Get some return values
int _examien = _radform.ExamIEN;
string _procedurename = _radform.ProcedureName;
//Save Radiology Exam Schedule Info to Radiology Package
CGDocumentManager.Current.DAL.ScheduleRadiologyExam(DFN, _examien, dStart);
//Now create and save the appointment
CGAppointment appt = new CGAppointment();
string _sNote = "Radiology Exam (" + _examien + "): " + _procedurename;
appt.CreateAppointment(dStart, dEnd, _sNote, 0, sResource);
appt.PatientID = Int32.Parse(dPat.PatientIEN);
appt.PatientName = dPat.PatientName;
appt.AccessTypeID = nAccessTypeID;
appt.RadiologyExamIEN = _examien;
appt.Patient = new Patient
{
DFN = Convert.ToInt32(dPat.PatientIEN),
ID = dPat.PatientPID,
Name = dPat.PatientName,
HRN = dPat.HealthRecordNumber,
DOB = dPat.PatientDOB
};
this.Document.CreateAppointment(appt);
//Print Appointment Slip if requested
if (_radform.PrintAppointmentSlip) this.PrintAppointmentSlip(appt);
//Now redraw the grid to display the new appointments
this.UpdateArrays();
}
#region BMX Event Processing and Callbacks #region BMX Event Processing and Callbacks
/// <summary> /// <summary>
/// Loosely typed delegate used several times below. /// Loosely typed delegate used several times below.
@ -2891,9 +3214,25 @@ namespace IndianHealthService.ClinicalScheduling
{ {
try try
{ {
// added April 13 2011
// Can't edit radiology appointments (Why? b/c it's intimately tied to Radiology Entry of the Hosp Loc)
if (e.Appointment.RadiologyExamIEN.HasValue && e.Appointment.RadiologyExamIEN.Value > 0)
{
MessageBox.Show("You cannot move a radiology appointment.", "Clinical Scheduling");
return;
}
// added May 5 2011
// Can't move an appointment to a radiology resource
if (IsThisARadiologyResource(e.Resource))
{
MessageBox.Show("You cannot move an appointment to a radiology location.", "Clinical Scheduling");
return;
}
if (e.Appointment.CheckInTime.Ticks > 0) if (e.Appointment.CheckInTime.Ticks > 0)
{ {
MessageBox.Show("You cannot change the appointment time because the patient has already checked in.", "Clinical Scheduling", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); MessageBox.Show("You cannot change the appointment time because the patient has already checked in.", "Clinical Scheduling");
return; return;
} }
@ -3565,8 +3904,5 @@ namespace IndianHealthService.ClinicalScheduling
} }
}//End class }//End class
} }

View File

@ -120,7 +120,7 @@
<metadata name="mainMenu1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="mainMenu1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<metadata name="contextMenu1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ctxResourceTree.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>126, 17</value> <value>126, 17</value>
</metadata> </metadata>
<metadata name="ctxApptClipMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ctxApptClipMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -479,7 +479,7 @@
if (bRet && (!appointment.WalkIn || this.m_bDrawWalkIns)) if (bRet && (!appointment.WalkIn || this.m_bDrawWalkIns))
{ {
rect.Inflate(-10, 0); rect.Inflate(-10, 0);
num = (int) this.m_ApptOverlapTable[appointment.m_nKey]; num = (int) this.m_ApptOverlapTable[appointment.AppointmentKey];
num2 = rect.Right - rect.Left; num2 = rect.Right - rect.Left;
x = num2 / (num + 1); x = num2 / (num + 1);
rect.Width = x; rect.Width = x;
@ -1266,7 +1266,7 @@
num2 = appointment.EndTime.Minute + (60 * appointment.EndTime.Hour); num2 = appointment.EndTime.Minute + (60 * appointment.EndTime.Hour);
x = (this.m_sResourcesArray.Count > 1) ? (((int) this.m_ColumnInfoTable[resource]) + 1) : appointment.StartTime.DayOfYear; x = (this.m_sResourcesArray.Count > 1) ? (((int) this.m_ColumnInfoTable[resource]) + 1) : appointment.StartTime.DayOfYear;
Rectangle rectangle = new Rectangle(x, y, 1, num2 - y); Rectangle rectangle = new Rectangle(x, y, 1, num2 - y);
hashtable.Add(appointment.m_nKey, rectangle); hashtable.Add(appointment.AppointmentKey, rectangle);
} }
} }
this.m_ApptOverlapTable.Clear(); this.m_ApptOverlapTable.Clear();

View File

@ -139,7 +139,14 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="DRadExamsSelect.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DRadExamsSelect.Designer.cs">
<DependentUpon>DRadExamsSelect.cs</DependentUpon>
</Compile>
<Compile Include="Provider.cs" /> <Compile Include="Provider.cs" />
<Compile Include="RadiologyExam.cs" />
<Compile Include="strings.ar.Designer.cs"> <Compile Include="strings.ar.Designer.cs">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
@ -151,7 +158,6 @@
<DependentUpon>strings.resx</DependentUpon> <DependentUpon>strings.resx</DependentUpon>
</Compile> </Compile>
<Compile Include="UserPreferences.cs" /> <Compile Include="UserPreferences.cs" />
<None Include="app.config" />
<None Include="dsPatientApptDisplay2.xsc"> <None Include="dsPatientApptDisplay2.xsc">
<DependentUpon>dsPatientApptDisplay2.xsd</DependentUpon> <DependentUpon>dsPatientApptDisplay2.xsd</DependentUpon>
</None> </None>
@ -391,6 +397,9 @@
<DependentUpon>DPatientLookup.cs</DependentUpon> <DependentUpon>DPatientLookup.cs</DependentUpon>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="DRadExamsSelect.resx">
<DependentUpon>DRadExamsSelect.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DResource.resx"> <EmbeddedResource Include="DResource.resx">
<DependentUpon>DResource.cs</DependentUpon> <DependentUpon>DResource.cs</DependentUpon>
<SubType>Designer</SubType> <SubType>Designer</SubType>

View File

@ -1,4 +1,6 @@
using System; /* Licensed under LGPL */
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Data; using System.Data;
@ -185,6 +187,52 @@ namespace IndianHealthService.ClinicalScheduling
return RPMSDataTable(cmd, ""); return RPMSDataTable(cmd, "");
} }
/// <summary>
/// Gets All radiology exams for a Patient in a specific hospital location
/// </summary>
/// <param name="DFN"></param>
/// <param name="SCIEN">Hospital Location IEN</param>
/// <returns>Generic List of type RadiologyExam</returns>
public List<RadiologyExam> GetRadiologyExamsForPatientinHL(int DFN, int SCIEN)
{
string cmd = string.Format("BSDX GET RAD EXAM FOR PT^{0}^{1}", DFN, SCIEN);
DataTable tbl = RPMSDataTable(cmd, "");
return (from row in tbl.AsEnumerable()
select new RadiologyExam
{
IEN = row.Field<int>("BMXIEN"),
Status = row.Field<string>("STATUS"),
Procedure = row.Field<string>("PROCEDURE"),
RequestDate = row.Field<DateTime>("REQUEST_DATE")
}).ToList();
}
/// <summary>
/// Schedules a Single Radiology Exam for a patient
/// </summary>
/// <param name="DFN"></param>
/// <param name="examIEN">IEN of exam in 75.1 (RAD/NUC MED ORDERS) file</param>
/// <param name="dStart">Start DateTime of appointment</param>
/// <returns>should always return true</returns>
public bool ScheduleRadiologyExam(int DFN, int examIEN, DateTime dStart)
{
string fmStartDate = FMDateTime.Create(dStart).FMDateString;
string result = _thisConnection.bmxNetLib.TransmitRPC("BSDX SCHEDULE RAD EXAM", string.Format("{0}^{1}^{2}", DFN, examIEN, fmStartDate));
return result == "1" ? true : false;
}
/// <summary>
/// Put the radiology exam on Hold because the appointment has been cancelled for it
/// </summary>
/// <param name="DFN"></param>
/// <param name="examIEN">IEN of exam in 75.1 (RAD/NUC MED ORDERS) file</param>
/// <returns>should always return true</returns>
public bool CancelRadiologyExam(int DFN, int examIEN)
{
string result = _thisConnection.bmxNetLib.TransmitRPC("BSDX HOLD RAD EXAM", string.Format("{0}^{1}", DFN, examIEN));
return result == "1" ? true : false;
}
/// <summary> /// <summary>
/// Save User Preference in DB For Printing Routing Slip /// Save User Preference in DB For Printing Routing Slip
/// Uses Parameter BSDX AUTO PRINT RS /// Uses Parameter BSDX AUTO PRINT RS

View File

@ -0,0 +1,195 @@
namespace IndianHealthService.ClinicalScheduling
{
partial class DRadExamsSelect
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lstExams = new System.Windows.Forms.ListBox();
this.tableOKCancel = new System.Windows.Forms.TableLayoutPanel();
this.btnOK = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.lblInfo = new System.Windows.Forms.Label();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
this.chkPrint = new System.Windows.Forms.CheckBox();
this.tableOKCancel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
this.SuspendLayout();
//
// lstExams
//
this.lstExams.Dock = System.Windows.Forms.DockStyle.Fill;
this.lstExams.FormattingEnabled = true;
this.lstExams.Location = new System.Drawing.Point(0, 0);
this.lstExams.Name = "lstExams";
this.lstExams.Size = new System.Drawing.Size(497, 237);
this.lstExams.TabIndex = 0;
this.lstExams.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.lstExams_MouseDoubleClick);
//
// tableOKCancel
//
this.tableOKCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.tableOKCancel.ColumnCount = 2;
this.tableOKCancel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableOKCancel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableOKCancel.Controls.Add(this.btnOK, 0, 0);
this.tableOKCancel.Controls.Add(this.btnCancel, 1, 0);
this.tableOKCancel.Location = new System.Drawing.Point(328, -1);
this.tableOKCancel.Name = "tableOKCancel";
this.tableOKCancel.RowCount = 1;
this.tableOKCancel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableOKCancel.Size = new System.Drawing.Size(166, 29);
this.tableOKCancel.TabIndex = 1;
//
// btnOK
//
this.btnOK.Location = new System.Drawing.Point(3, 3);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(75, 23);
this.btnOK.TabIndex = 0;
this.btnOK.Text = "OK";
this.btnOK.UseVisualStyleBackColor = true;
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
//
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(86, 3);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(75, 23);
this.btnCancel.TabIndex = 1;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
//
// lblInfo
//
this.lblInfo.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.lblInfo.AutoSize = true;
this.lblInfo.Location = new System.Drawing.Point(4, 6);
this.lblInfo.Name = "lblInfo";
this.lblInfo.Size = new System.Drawing.Size(245, 13);
this.lblInfo.TabIndex = 2;
this.lblInfo.Text = "Select an Exam from the exams listed to Schedule";
//
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
this.splitContainer1.Name = "splitContainer1";
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.lstExams);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
this.splitContainer1.Size = new System.Drawing.Size(497, 302);
this.splitContainer1.SplitterDistance = 237;
this.splitContainer1.TabIndex = 3;
//
// splitContainer2
//
this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer2.Location = new System.Drawing.Point(0, 0);
this.splitContainer2.Name = "splitContainer2";
this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
//
// splitContainer2.Panel1
//
this.splitContainer2.Panel1.Controls.Add(this.lblInfo);
//
// splitContainer2.Panel2
//
this.splitContainer2.Panel2.Controls.Add(this.chkPrint);
this.splitContainer2.Panel2.Controls.Add(this.tableOKCancel);
this.splitContainer2.Size = new System.Drawing.Size(497, 61);
this.splitContainer2.SplitterDistance = 25;
this.splitContainer2.TabIndex = 3;
//
// chkPrint
//
this.chkPrint.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.chkPrint.AutoSize = true;
this.chkPrint.Location = new System.Drawing.Point(3, 11);
this.chkPrint.Name = "chkPrint";
this.chkPrint.Size = new System.Drawing.Size(131, 17);
this.chkPrint.TabIndex = 2;
this.chkPrint.Text = "Print Appointment Slip";
this.chkPrint.UseVisualStyleBackColor = true;
this.chkPrint.CheckedChanged += new System.EventHandler(this.chkPrint_CheckedChanged);
//
// DRadExamsSelect
//
this.AcceptButton = this.btnOK;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel;
this.ClientSize = new System.Drawing.Size(497, 302);
this.ControlBox = false;
this.Controls.Add(this.splitContainer1);
this.MinimumSize = new System.Drawing.Size(500, 250);
this.Name = "DRadExamsSelect";
this.Text = "Select an Exam";
this.tableOKCancel.ResumeLayout(false);
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.splitContainer2.Panel1.ResumeLayout(false);
this.splitContainer2.Panel1.PerformLayout();
this.splitContainer2.Panel2.ResumeLayout(false);
this.splitContainer2.Panel2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
this.splitContainer2.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ListBox lstExams;
private System.Windows.Forms.TableLayoutPanel tableOKCancel;
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Label lblInfo;
private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.SplitContainer splitContainer2;
private System.Windows.Forms.CheckBox chkPrint;
}
}

View File

@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace IndianHealthService.ClinicalScheduling
{
/// <summary>
/// Form which displays exams for User so that the user would pick one of them
/// for which to make an appointment
/// </summary>
public partial class DRadExamsSelect : Form
{
//return values
public int ExamIEN { get; private set; }
public string ProcedureName { get; private set; }
public bool PrintAppointmentSlip { get { return chkPrint.Checked; } }
//end return values
//private fields
public bool _myCodeIsFiringIstheCheckBoxChangedEvent = false;
//private fields
/// <summary>
/// ctor
/// </summary>
/// <param name="_radExams">Strongly Typed Table of Exams</param>
public DRadExamsSelect(List<RadiologyExam> _radExams)
{
InitializeComponent();
this.lstExams.DataSource = _radExams;
this.lstExams.SelectionMode = SelectionMode.One;
//Set Default Checkbox
_myCodeIsFiringIstheCheckBoxChangedEvent = true;
chkPrint.Checked = CGDocumentManager.Current.UserPreferences.PrintAppointmentSlipAutomacially;
_myCodeIsFiringIstheCheckBoxChangedEvent = false;
}
private void btnOK_Click(object sender, EventArgs e)
{
SharedFinishLine();
}
private void lstExams_MouseDoubleClick(object sender, MouseEventArgs e)
{
SharedFinishLine();
}
private void SharedFinishLine()
{
if (lstExams.SelectedIndex < 0)
{
this.DialogResult = DialogResult.None;
return;
}
ExamIEN = (lstExams.Items[lstExams.SelectedIndex] as RadiologyExam).IEN;
ProcedureName = (lstExams.Items[lstExams.SelectedIndex] as RadiologyExam).Procedure;
this.DialogResult = DialogResult.OK;
}
/// <summary>
/// Save preference for Auto Printing Appointment Slip in the DB
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void chkPrint_CheckedChanged(object sender, EventArgs e)
{
if (_myCodeIsFiringIstheCheckBoxChangedEvent) return;
CGDocumentManager.Current.UserPreferences.PrintAppointmentSlipAutomacially = chkPrint.Checked;
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -16,7 +16,7 @@
* *
* *
Mods by Sam Habiel to use in Scheduling GUI. Modified by Sam Habiel to use in Scheduling GUI. Modified class licensed under LGPL.
*/ */
@ -249,6 +249,12 @@ namespace IndianHealthService.ClinicalScheduling
return Create (d, FMDateTimePrecision.DateAndTime); return Create (d, FMDateTimePrecision.DateAndTime);
} }
/*public static string FMDate (this DateTime d)
{
return Create(d, FMDateTimePrecision.DateAndTime).FMDateString;
}*/
public static FMDateTime Parse (string str) public static FMDateTime Parse (string str)
{ {
return Parse (str, FMDateTime.ValidationMethod); return Parse (str, FMDateTime.ValidationMethod);

View File

@ -17,6 +17,7 @@ namespace IndianHealthService.ClinicalScheduling
/// <summary> /// <summary>
/// Puppet standing for a Real Patient /// Puppet standing for a Real Patient
/// </summary> /// </summary>
[Serializable]
public class Patient public class Patient
{ {
public int DFN { get; set; } public int DFN { get; set; }

View File

@ -8,6 +8,7 @@ namespace IndianHealthService.ClinicalScheduling
/// <summary> /// <summary>
/// Provider puppet /// Provider puppet
/// </summary> /// </summary>
[Serializable]
public class Provider public class Provider
{ {
public int IEN { get; set; } public int IEN { get; set; }

View File

@ -0,0 +1,29 @@
/* Licensed under LGPL */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace IndianHealthService.ClinicalScheduling
{
/// <summary>
/// Class to stand for a Radiology Exam Order from file 75.1 (RAD/NUC MED ORDERS)
/// IEN: IEN in file 75.1
/// Status: Text: Pending or Hold
/// Procedure: Text
/// RequestDate: Time procedure was requested by physician
/// </summary>
public class RadiologyExam
{
public int IEN { get; set; }
public string Status { get; set; }
public string Procedure { get; set; }
public DateTime RequestDate { get; set; }
public override string ToString()
{
return Procedure + "\t" + "Requested: " + RequestDate.ToString();
}
}
}

View File

@ -1,4 +1,6 @@
using System; /*Licensed under LGPL*/
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;