using System; using System.Collections.Generic; using System.Text; using IndianHealthService.Model; using System.Data; namespace IndianHealthService.BMXNet.Desktop { public class DesktopPatientContext : DesktopObject, PatientContext { internal static DesktopPatientContext CreateFrom(DesktopSession aSession) { DesktopPatientContext answer = new DesktopPatientContext(); return answer; } #region PatientContext Members public event EventHandler Changed; public event EventHandler Changing; public bool HasPatient { get { return this.Patient != null; } } public bool HasEncounter { get { return this.Encounter != null; } } #endregion private User _user = null; public User User { get { return _user; } set { _user = value; } } Patient _patient = null; private Encounter _encounter = null; public Encounter Encounter { get { return _encounter; } } public Patient Patient { get { return _patient; } } public bool ChangePatient(Patient aPatient, bool force) { if (this.Changing != null) { ContextChangingArgs args = new ContextChangingArgs(); args.IsPatientChange = true; args.Cancel = false; args.BeforeContext = this; this.Changing.Invoke(this, args); if (args.Cancel && (!force)) { return false; } } this._patient = aPatient; this._encounter = null; if (this.Changed != null) { ContextChangedArgs args = new ContextChangedArgs(); args.IsPatientChange = true; args.AfterContext = this; this.Changed.Invoke(this, args); } return true; } public bool ChangeEncounter(Encounter anEncounter, bool force) { if (this.Changing != null) { ContextChangingArgs args = new ContextChangingArgs(); args.IsVisitChange = true; args.Cancel = false; args.BeforeContext = this; this.Changing.Invoke(this, args); if (args.Cancel && (!force)) { return false; } } this._encounter = anEncounter; if (this.Changed != null) { ContextChangedArgs args = new ContextChangedArgs(); args.IsVisitChange = true; args.AfterContext = this; this.Changed.Invoke(this, args); } return true; } public bool ChangeEncounter(Encounter aEncounter) { return this.ChangeEncounter(aEncounter, false); } public bool ChangePatient(Patient aPatient) { return this.ChangePatient(aPatient, false); } public bool AlertAll() { return this.ChangePatient(this.Patient); } } }