From b0028cef06682dfd9ec2181c7e6622e3cfa85aa4 Mon Sep 17 00:00:00 2001 From: sam Date: Tue, 29 Mar 2011 09:46:30 +0000 Subject: [PATCH] CGView: - New Context Menu to Uncheck-in Patient - New Context Menus to Print Clinic Schedules for today, tomorrow, and 3 days from now. - ContextMenu for NoShow and Undo Noshow have changed logic for when they become enabled. - New logic to prevent checked-in appointments from being deleted. - PrintClinicSchedule method to be called by printing context menus just added. - Events are now NOT raised back to us from CGView. - In many circumstances, the job to update from the DB is not performed anymore after you make appointments or cancel appointments. We will rely on events to let us know of changes in the appointments in the DB. --- cs/bsdx0200GUISourceCode/CGView.cs | 396 +++++++++++------- .../ClinicalScheduling.suo | Bin 84480 -> 84480 bytes 2 files changed, 238 insertions(+), 158 deletions(-) diff --git a/cs/bsdx0200GUISourceCode/CGView.cs b/cs/bsdx0200GUISourceCode/CGView.cs index 6ead2a0..9e05d0a 100644 --- a/cs/bsdx0200GUISourceCode/CGView.cs +++ b/cs/bsdx0200GUISourceCode/CGView.cs @@ -99,6 +99,10 @@ namespace IndianHealthService.ClinicalScheduling private System.Windows.Forms.MenuItem mnuRPMSDivision; private MenuItem menuItem10; private MenuItem ctxCalGridReprintApptSlip; + private MenuItem ctxCalGridUndoCheckin; + private MenuItem ctxPrintScheduleT0; + private MenuItem ctxPrintScheduleT1; + private MenuItem ctxPrintScheduleT3; private IContainer components; #region Initialization @@ -221,6 +225,8 @@ namespace IndianHealthService.ClinicalScheduling this.ctxEditAvailability = new System.Windows.Forms.MenuItem(); this.ctxProperties = new System.Windows.Forms.MenuItem(); this.ctxFindAppt = new System.Windows.Forms.MenuItem(); + this.ctxPrintScheduleT0 = new System.Windows.Forms.MenuItem(); + this.ctxPrintScheduleT1 = new System.Windows.Forms.MenuItem(); this.panelRight = new System.Windows.Forms.Panel(); this.panelClip = new System.Windows.Forms.Panel(); this.lstClip = new System.Windows.Forms.ListBox(); @@ -238,6 +244,7 @@ namespace IndianHealthService.ClinicalScheduling this.ctxCalGridEdit = new System.Windows.Forms.MenuItem(); this.ctxCalGridDelete = new System.Windows.Forms.MenuItem(); this.ctxCalGridCheckIn = new System.Windows.Forms.MenuItem(); + this.ctxCalGridUndoCheckin = new System.Windows.Forms.MenuItem(); this.menuItem2 = new System.Windows.Forms.MenuItem(); this.ctxCalGridNoShow = new System.Windows.Forms.MenuItem(); this.ctxCalGridNoShowUndo = new System.Windows.Forms.MenuItem(); @@ -249,6 +256,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.ctxPrintScheduleT3 = new System.Windows.Forms.MenuItem(); this.panelRight.SuspendLayout(); this.panelClip.SuspendLayout(); this.panelTop.SuspendLayout(); @@ -615,7 +623,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, 393); + this.tvSchedules.Size = new System.Drawing.Size(128, 351); this.tvSchedules.Sorted = true; this.tvSchedules.TabIndex = 1; this.tvSchedules.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvSchedules_AfterSelect); @@ -629,7 +637,10 @@ namespace IndianHealthService.ClinicalScheduling this.ctxOpenSchedule, this.ctxEditAvailability, this.ctxProperties, - this.ctxFindAppt}); + this.ctxFindAppt, + this.ctxPrintScheduleT0, + this.ctxPrintScheduleT1, + this.ctxPrintScheduleT3}); this.contextMenu1.Popup += new System.EventHandler(this.contextMenu1_Popup); // // ctxOpenSchedule @@ -648,22 +659,34 @@ namespace IndianHealthService.ClinicalScheduling // ctxProperties // this.ctxProperties.Index = 2; - this.ctxProperties.Text = "&Properties"; + this.ctxProperties.Text = "P&roperties"; this.ctxProperties.Click += new System.EventHandler(this.ctxProperties_Click); // // ctxFindAppt // this.ctxFindAppt.Index = 3; - this.ctxFindAppt.Text = "Find Available Appointment"; + this.ctxFindAppt.Text = "&Find Available Appointment"; this.ctxFindAppt.Click += new System.EventHandler(this.ctxFindAppt_Click); // + // ctxPrintScheduleT0 + // + this.ctxPrintScheduleT0.Index = 4; + this.ctxPrintScheduleT0.Text = "Print Clinic Schedule(s) (T+&0)"; + this.ctxPrintScheduleT0.Click += new System.EventHandler(this.ctxPrintScheduleT0_Click); + // + // ctxPrintScheduleT1 + // + this.ctxPrintScheduleT1.Index = 5; + this.ctxPrintScheduleT1.Text = "Print Clinic Schedule(s) (T+&1)"; + this.ctxPrintScheduleT1.Click += new System.EventHandler(this.ctxPrintScheduleT1_Click); + // // panelRight // this.panelRight.Controls.Add(this.panelClip); this.panelRight.Dock = System.Windows.Forms.DockStyle.Right; this.panelRight.Location = new System.Drawing.Point(996, 0); this.panelRight.Name = "panelRight"; - this.panelRight.Size = new System.Drawing.Size(128, 393); + this.panelRight.Size = new System.Drawing.Size(128, 351); this.panelRight.TabIndex = 3; this.panelRight.Visible = false; // @@ -759,7 +782,7 @@ 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(857, 345); + this.panelCenter.Size = new System.Drawing.Size(857, 303); this.panelCenter.TabIndex = 7; // // calendarGrid1 @@ -781,7 +804,7 @@ namespace IndianHealthService.ClinicalScheduling 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(857, 345); + this.calendarGrid1.Size = new System.Drawing.Size(857, 303); this.calendarGrid1.StartDate = new System.DateTime(2003, 1, 27, 0, 0, 0, 0); this.calendarGrid1.TabIndex = 0; this.calendarGrid1.TimeScale = 20; @@ -798,6 +821,7 @@ namespace IndianHealthService.ClinicalScheduling this.ctxCalGridEdit, this.ctxCalGridDelete, this.ctxCalGridCheckIn, + this.ctxCalGridUndoCheckin, this.menuItem2, this.ctxCalGridNoShow, this.ctxCalGridNoShowUndo, @@ -831,42 +855,48 @@ namespace IndianHealthService.ClinicalScheduling this.ctxCalGridCheckIn.Text = "Check In Patient"; this.ctxCalGridCheckIn.Click += new System.EventHandler(this.ctxCalGridCheckIn_Click); // + // ctxCalGridUndoCheckin + // + this.ctxCalGridUndoCheckin.Index = 4; + this.ctxCalGridUndoCheckin.Text = "&Undo Check In"; + this.ctxCalGridUndoCheckin.Click += new System.EventHandler(this.ctxCalGridUndoCheckin_Click); + // // menuItem2 // - this.menuItem2.Index = 4; + this.menuItem2.Index = 5; this.menuItem2.Text = "-"; // // ctxCalGridNoShow // - this.ctxCalGridNoShow.Index = 5; + this.ctxCalGridNoShow.Index = 6; this.ctxCalGridNoShow.Text = "Mark as No Show"; this.ctxCalGridNoShow.Click += new System.EventHandler(this.ctxCalGridNoShow_Click); // // ctxCalGridNoShowUndo // - this.ctxCalGridNoShowUndo.Index = 6; + this.ctxCalGridNoShowUndo.Index = 7; this.ctxCalGridNoShowUndo.Text = "Undo NoShow"; this.ctxCalGridNoShowUndo.Click += new System.EventHandler(this.ctxCalGridNoShowUndo_Click); // // menuItem9 // - this.menuItem9.Index = 7; + this.menuItem9.Index = 8; this.menuItem9.Text = "-"; // // ctxCalGridWalkin // - this.ctxCalGridWalkin.Index = 8; + this.ctxCalGridWalkin.Index = 9; this.ctxCalGridWalkin.Text = "Create Wal&k-In Appointment"; this.ctxCalGridWalkin.Click += new System.EventHandler(this.ctxCalGridWalkin_Click); // // menuItem10 // - this.menuItem10.Index = 9; + this.menuItem10.Index = 10; this.menuItem10.Text = "-"; // // ctxCalGridReprintApptSlip // - this.ctxCalGridReprintApptSlip.Index = 10; + this.ctxCalGridReprintApptSlip.Index = 11; this.ctxCalGridReprintApptSlip.Text = "&Reprint Appointment Slip"; this.ctxCalGridReprintApptSlip.Click += new System.EventHandler(this.ctxCalGridReprintApptSlip_Click); // @@ -874,7 +904,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, 369); + this.panelBottom.Location = new System.Drawing.Point(136, 327); this.panelBottom.Name = "panelBottom"; this.panelBottom.Size = new System.Drawing.Size(857, 24); this.panelBottom.TabIndex = 8; @@ -892,7 +922,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, 369); + this.splitter1.Size = new System.Drawing.Size(8, 327); this.splitter1.TabIndex = 9; this.splitter1.TabStop = false; // @@ -901,14 +931,20 @@ namespace IndianHealthService.ClinicalScheduling this.splitter2.Dock = System.Windows.Forms.DockStyle.Right; this.splitter2.Location = new System.Drawing.Point(993, 24); this.splitter2.Name = "splitter2"; - this.splitter2.Size = new System.Drawing.Size(3, 369); + this.splitter2.Size = new System.Drawing.Size(3, 327); this.splitter2.TabIndex = 10; this.splitter2.TabStop = false; // + // ctxPrintScheduleT3 + // + this.ctxPrintScheduleT3.Index = 6; + this.ctxPrintScheduleT3.Text = "Print Clinic Schedule(s) (T+&3)"; + this.ctxPrintScheduleT3.Click += new System.EventHandler(this.ctxPrintScheduleT3_Click); + // // CGView // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(1124, 393); + this.ClientSize = new System.Drawing.Size(1124, 351); this.Controls.Add(this.panelCenter); this.Controls.Add(this.panelBottom); this.Controls.Add(this.splitter2); @@ -1096,6 +1132,11 @@ namespace IndianHealthService.ClinicalScheduling AppointmentNoShow(false); } + private void ctxCalGridUndoCheckin_Click(object sender, EventArgs e) + { + AppointmentUndoCheckin(); + } + #endregion AppointmentMenu Handlers #region ContextMenu1 Handlers @@ -1106,6 +1147,9 @@ namespace IndianHealthService.ClinicalScheduling bool bEnabled = (m_alSelectedTreeResourceArray.Count > 0)? true : false ; this.ctxOpenSchedule.Enabled = bEnabled; this.ctxFindAppt.Enabled = bEnabled; + this.ctxPrintScheduleT0.Enabled = bEnabled; + this.ctxPrintScheduleT1.Enabled = bEnabled; + this.ctxPrintScheduleT3.Enabled = bEnabled; //properties not supported now this.ctxProperties.Enabled = false; @@ -1161,6 +1205,21 @@ namespace IndianHealthService.ClinicalScheduling OpenSelectedSchedule(m_alSelectedTreeResourceArray, DateTime.Today); } + private void ctxPrintScheduleT0_Click(object sender, EventArgs e) + { + PrintClinicSchedule(DateTime.Today, DateTime.Today); + } + + private void ctxPrintScheduleT1_Click(object sender, EventArgs e) + { + PrintClinicSchedule(DateTime.Today.AddDays(1), DateTime.Today.AddDays(1)); + } + + private void ctxPrintScheduleT3_Click(object sender, EventArgs e) + { + PrintClinicSchedule(DateTime.Today.AddDays(3), DateTime.Today.AddDays(3)); + } + private void ctxProperties_Click(object sender, System.EventArgs e) { //TODO: Implement Properties dialog @@ -1213,12 +1272,13 @@ namespace IndianHealthService.ClinicalScheduling ctxCalGridDelete.Enabled = bEditAppointments; ctxCalGridEdit.Enabled = bEditAppointments; ctxCalGridCheckIn.Enabled = bEditAppointments; - ctxCalGridNoShow.Enabled = bEditAppointments; - ctxCalGridNoShowUndo.Enabled = bEditAppointments; + ctxCalGridNoShow.Enabled = NoShowEnabled(); + ctxCalGridNoShowUndo.Enabled = !NoShowEnabled() && calendarGrid1.SelectedAppointment > 0; ctxCalGridWalkin.Enabled = ctxCalGridAdd.Enabled; //smh new code - ctxCalGridReprintApptSlip.Enabled = ctxCalGridEdit.Enabled; - //end new code + ctxCalGridReprintApptSlip.Enabled = bEditAppointments; + ctxCalGridUndoCheckin.Enabled = UndoCheckinEnabled(); + //end new code } private void ctxCalGridAdd_Click(object sender, System.EventArgs e) @@ -1343,6 +1403,21 @@ namespace IndianHealthService.ClinicalScheduling } } + private bool NoShowEnabled() + { + if (calendarGrid1.SelectedAppointment < 1) + return false; + CGAppointment appt = (CGAppointment)this.Appointments.AppointmentTable[calendarGrid1.SelectedAppointment]; + return !appt.NoShow; + } + + private bool UndoCheckinEnabled() + { + if (calendarGrid1.SelectedAppointment < 1) return false; + CGAppointment appt = (CGAppointment)this.Appointments.AppointmentTable[calendarGrid1.SelectedAppointment]; + return appt.CheckInTime.Ticks > 0; + } + /// /// Clean up any resources being used. /// @@ -1685,19 +1760,20 @@ namespace IndianHealthService.ClinicalScheduling } /// - /// Marks all selected appointments as No Show + /// Marks all selected appointments as No Show from this.calendarGrid1.SelectedAppointments /// - /// - /// + /// True - Mark as noshow; False - undo noshow private void AppointmentNoShow(bool bNoShow) { //bNoShow indicates whether to mark or un-mark as noshow bool bMarked = false; //Indicates at least one attempt to mark as noshow succeeded bool bRebook = false; //Stores user's response to auto-rebook dialog question - CGAppointments alRebookList = new CGAppointments(); - DNoShow dlg = new DNoShow();; - if (bNoShow == true) + CGAppointments alRebookList = new CGAppointments(); // list of appointments to rebook + + DNoShow dlg = new DNoShow(); // no show dialog + + if (bNoShow == true) // if noshowing, show the dialog to ask the user { if (dlg.ShowDialog(this) == DialogResult.Cancel) { @@ -1713,16 +1789,16 @@ namespace IndianHealthService.ClinicalScheduling Debug.Assert(nApptID != 0); try { - if ((bNoShow == true) + if ((bNoShow == true) // if no-showing && (a.StartTime.Date > DateTime.Today.Date) && (MessageBox.Show(this, "The appointment for " + a.PatientName + " is in the future. Are you sure you want to No-Show?", "Windows Scheduling", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)) { } - else + else // otherwise, make or undo show { - string sError = Document.AppointmentNoShow(nApptID, bNoShow); + string sError = Document.AppointmentNoShow(a, bNoShow); if (sError != "1") throw new Exception(sError); @@ -1733,6 +1809,7 @@ namespace IndianHealthService.ClinicalScheduling { MessageBox.Show("Unable to mark appointment No Show: " + ex.Message, "Clinical Scheduling"); } + if (bRebook == true) { try @@ -1772,26 +1849,29 @@ namespace IndianHealthService.ClinicalScheduling MessageBox.Show("Unable to rebook: " + ex.Message); } } - } - - if (bMarked == true) - { - //Notify other scheduling users that this schedule has changed - try - { - this.Document.RefreshDocument(); - RaiseRPMSEvent("BSDX SCHEDULE" , m_Document.DocName); - } - catch (Exception ex) - { - Debug.Write(ex.Message); - } - this.calendarGrid1.Invalidate(); - - AutoRebookFromList(alRebookList); - } + + if (bMarked == true) + { + //Notify other scheduling users that this schedule has changed + try + { + //this.Document.RefreshDocument(); no need for this; event raised back and prompts refresh itself. + RaiseRPMSEvent("BSDX SCHEDULE", a.Resource); + } + catch (Exception ex) + { + Debug.Write(ex.Message); + } + this.calendarGrid1.Invalidate(); + } + } + AutoRebookFromList(alRebookList); } + /// + /// Prints Auto Rebook Letters; does nothing else to DB!!! + /// + /// List of appointments private void AutoRebookFromList(CGAppointments alRebookList) { //Print AutoRebook letters. @@ -1835,92 +1915,88 @@ namespace IndianHealthService.ClinicalScheduling /// /// Delete all selected appointments /// - private void AppointmentDelete() - { - calendarGrid1.CGToolTip.Active = false; - CGAppointments alRebookList = new CGAppointments(); + private void AppointmentDelete() + { + calendarGrid1.CGToolTip.Active = false; + CGAppointments alRebookList = new CGAppointments(); - DCancelAppt dCancel = new DCancelAppt(); - dCancel.InitializePage(this.m_DocManager); - if (dCancel.ShowDialog(this) != DialogResult.OK) - { - calendarGrid1.CGToolTip.Active = true; - return; - } + // check to see if any appointment is checked in first + foreach (CGAppointment a in this.calendarGrid1.SelectedAppointments.AppointmentTable.Values) + { + if (a.CheckInTime.Ticks > 0) + { + MessageBox.Show("You must Un-checkin the appointment first before removing it."); + return; + } + } - bool bClinic = dCancel.ClinicCancelled; - int nReason = dCancel.CancelReason; - string sRemarks = dCancel.CancelRemarks; - bool bRebook = dCancel.AutoRebook; - int nRebookStart = dCancel.RebookStartDays; - int nRebookMax = dCancel.RebookMaxDays; - int nRebookAccessType = dCancel.RebookAccessType; + DCancelAppt dCancel = new DCancelAppt(); + dCancel.InitializePage(this.m_DocManager); + if (dCancel.ShowDialog(this) != DialogResult.OK) + { + calendarGrid1.CGToolTip.Active = true; + return; + } - calendarGrid1.CGToolTip.Active = true; + bool bClinic = dCancel.ClinicCancelled; + int nReason = dCancel.CancelReason; + string sRemarks = dCancel.CancelRemarks; + bool bRebook = dCancel.AutoRebook; + int nRebookStart = dCancel.RebookStartDays; + int nRebookMax = dCancel.RebookMaxDays; + int nRebookAccessType = dCancel.RebookAccessType; - bool bDeleted = false; - foreach (CGAppointment a in this.calendarGrid1.SelectedAppointments.AppointmentTable.Values) - { - int nApptID = a.AppointmentKey; - Debug.Assert(nApptID != 0); - try - { - string sError = Document.DeleteAppointment(nApptID,bClinic, nReason, sRemarks); - if (sError != "") - throw new Exception(sError); + calendarGrid1.CGToolTip.Active = true; - bDeleted = true; - if (bRebook == true) - { - try - { - //TODO: Parameterize or dialogize the minum and maximum rebook days - CGAppointment aRebook; - int nMinimumdays = nRebookStart; - int nMaximumdays = nRebookMax; - string sResult = Document.AutoRebook(a, nRebookAccessType, nMinimumdays, nMaximumdays, out aRebook); - if (sResult == "1") - { - //Add appointment to list of rebooked appointments - alRebookList.AddAppointment(a); - } + foreach (CGAppointment a in this.calendarGrid1.SelectedAppointments.AppointmentTable.Values) + { + + int nApptID = a.AppointmentKey; + Debug.Assert(nApptID != 0); + try + { + string sError = Document.DeleteAppointment(nApptID, bClinic, nReason, sRemarks); + if (sError != "") + throw new Exception(sError); - } - catch (Exception ex) - { - MessageBox.Show("Unable to rebook: " + ex.Message); - } - } - } - catch (Exception ex) - { - MessageBox.Show("Unable to delete appointment. " + ex.Message, "Clinical Scheduling"); - } + this.UpdateArrays(); //Redraw this calendar grid - } - if (bDeleted == true) - { - try - { - this.UpdateArrays(); - RaiseRPMSEvent("BSDX SCHEDULE" , m_Document.DocName); + if (bRebook == true) + { + try + { + //TODO: Parameterize or dialogize the minum and maximum rebook days + CGAppointment aRebook; + int nMinimumdays = nRebookStart; + int nMaximumdays = nRebookMax; + string sResult = Document.AutoRebook(a, nRebookAccessType, nMinimumdays, nMaximumdays, out aRebook); + if (sResult == "1") + { + //Add appointment to list of rebooked appointments + alRebookList.AddAppointment(a); + } - //Get the appointments and availabilities, async, from Server. Callback updates this thread's controls. - OnUpdateScheduleDelegate ousd = new OnUpdateScheduleDelegate(OnUpdateSchedule); - ousd.BeginInvoke(OnUpdateScheduleCallback, null); - } - catch (Exception ex) - { - Debug.Write(ex.Message); - } - this.calendarGrid1.Invalidate(); - if (bRebook == true) - { - AutoRebookFromList(alRebookList); - } - } + } + catch (Exception ex) + { + MessageBox.Show("Unable to rebook: " + ex.Message); + } + } - } + RaiseRPMSEvent("BSDX SCHEDULE", a.Resource); + } + catch (Exception ex) + { + MessageBox.Show("Unable to delete appointment. " + ex.Message, "Clinical Scheduling"); + } + + + if (alRebookList.AppointmentCount > 0) + { + AutoRebookFromList(alRebookList); + } + } + } private void AppointmentCheckIn() { @@ -1983,6 +2059,27 @@ namespace IndianHealthService.ClinicalScheduling } + private void AppointmentUndoCheckin() + { + Debug.Assert(calendarGrid1.SelectedAppointment > 0); + + foreach (CGAppointment a in this.calendarGrid1.SelectedAppointments.AppointmentTable.Values) + { + string msg; //out var + bool didweSucceed = Document.AppointmentUndoCheckin(a, out msg); + + if (!didweSucceed) + { + MessageBox.Show("Error: " + msg); + continue; + } + + RaiseRPMSEvent("BSDX SCHEDULE", a.Resource); + } + + this.UpdateArrays(); + } + private void AppointmentAddWalkin() { try @@ -2069,11 +2166,7 @@ namespace IndianHealthService.ClinicalScheduling //Show the new set of appointments by calling UpdateArrays. Fetches Document's CGAppointments this.UpdateArrays(); - //Get the appointments and availabilities, async, from Server. Callback updates this thread's controls. - OnUpdateScheduleDelegate ousd = new OnUpdateScheduleDelegate(OnUpdateSchedule); - ousd.BeginInvoke(OnUpdateScheduleCallback, null); - - + RaiseRPMSEvent("BSDX SCHEDULE", appt.Resource); } catch (Exception ex) { @@ -2086,17 +2179,6 @@ namespace IndianHealthService.ClinicalScheduling MessageBox.Show("VISTA says: \r\n" + msg, "Unable to Make Walk-in Appointment"); return; } - - try - { - RaiseRPMSEvent("BSDX SCHEDULE", m_Document.DocName); - } - catch (Exception ex) - { - Debug.Write(ex.Message); - } - - } private void AppointmentAddNew() @@ -2194,10 +2276,8 @@ namespace IndianHealthService.ClinicalScheduling //Show the new set of appointments by calling UpdateArrays. Fetches Document's CGAppointments this.UpdateArrays(); - - //Get the appointments and availabilities, async, from Server. Callback updates this thread's controls. - OnUpdateScheduleDelegate ousd = new OnUpdateScheduleDelegate(OnUpdateSchedule); - ousd.BeginInvoke(OnUpdateScheduleCallback, null); + + RaiseRPMSEvent("BSDX SCHEDULE", appt.Resource); } catch (Exception ex) { @@ -2210,16 +2290,6 @@ namespace IndianHealthService.ClinicalScheduling MessageBox.Show("VISTA says: \r\n" + msg, "Unable to Make Appointment"); return; } - - try - { - RaiseRPMSEvent("BSDX SCHEDULE" , m_Document.DocName); - this.calendarGrid1.Invalidate(); - } - catch (Exception ex) - { - Debug.Write(ex.Message); - } } #region BMX Event Processing and Callbacks @@ -2331,7 +2401,7 @@ namespace IndianHealthService.ClinicalScheduling try { //Signal RPMS to raise an event - m_ConnectInfo.RaiseEvent(sEvent, sParams, true); + m_ConnectInfo.RaiseEvent(sEvent, sParams, false); } catch (Exception ex) { @@ -3366,10 +3436,20 @@ namespace IndianHealthService.ClinicalScheduling } + private void PrintClinicSchedule(DateTime dStart, DateTime dEnd) + { + DPatientLetter dpl = new DPatientLetter(); + int[] resourceIENs = (from resource in CGDocumentManager.Current.GlobalDataSet.Tables["Resources"].AsEnumerable() + join resource_name in m_alSelectedTreeResourceArray.Cast() on resource.Field("RESOURCE_NAME") equals resource_name + select resource.Field("RESOURCEID") + ).ToArray(); + // + | is an oddity in the Mumps code which I haven't investigated yet. + dpl.InitializeFormClinicSchedule(this.DocManager, string.Join("|", resourceIENs) + "|", dStart, dEnd); + dpl.ShowDialog(this); + } - }//End class diff --git a/cs/bsdx0200GUISourceCode/ClinicalScheduling.suo b/cs/bsdx0200GUISourceCode/ClinicalScheduling.suo index bd12fd45b98026462acb55281fb46390372deab7..06236705c49485a19590ad8e411ff40abfa0d6be 100644 GIT binary patch delta 635 zcmbV{O=uHQ5Xa}A-HmCxt8E%ZYm6GiUhI5~`l+iyxR?9o~a^KYlZBW;~~j=d|Lm zsy%2~YFgyeYCm^t?Hp27{;sC@RZ}~^@Tq)GOBvWmM3%fuGWe~!#ja>&OHH{b&(^HsqZy z69Wq86TM<+H=gmAHm{iPz+DmSz!Ndsid|g3-YZ;TObBljS@C&0ykao|zmp4NAMUim z#|JL>L?H@~{NvOw!I|EHwDP-rB%a_IPorE<5g%i?iq||jW{H6quHiA?-v7wS$Kh5) e(n3Kb6Ug$t_d$`c;C2=)gz(=ZIfWkdyM6))o!E8& delta 644 zcmZpe!rCx}bwdsdYeDRX6JI75vIOxm{s#g{1_lNYJz0=LWAYCc@9Bqy7>y>Evik8d z$OEMuVbT{_R5pKMy}-)D2o&K!5#_!lBI~eS!dlnRarVs{^3NW}oV~UIssd!R-R8#% z4|pdZW-;9SMbAH;myr!9$%Je~N#A)^UIuockT8ny6c$rPy~&j)y?MNW;?Br&Urt_N z<^h@RiX5KfpM7}Bj0o(14f7G4mykn zwjZ!$bYR@>pvM@&Jh{m(Z+e>%qYUG+>5A%%z0(bh8M!9USjh)8O-i)EPx4$JB~U*E472 zm|Wzcg5W%wWP(M99?)@O%#6n-FRXK%o@c|@#n>>}(6e;9j18jz#M%N|yXh0G8O0b^ zO`aIFa{D4%MmFZ@E_RG1ljmJk0y