using System; using System.Collections.Generic; using System.Text; using CIA_CSS; using CSS_User; using System.Windows.Forms; using IndianHealthService.BMXNet.Services; using IndianHealthService.BMXNet.EHR.Model; namespace IndianHealthService.BMXNet.EHR { internal class BMXNetEhrBroker : BMXNetBroker, BMXNetSessionConnectionSource { public static BMXNetEhrBroker Open(ICSS_Session aCiaSession, ICSS_User aCiaUser, IndianHealthService.BMXNet.Model.User aUser) { CiaVisit.InitialzeAccessToCSSEncounter(); BMXNetEhrBroker broker = new BMXNetEhrBroker(); if (broker.OpenOn(aCiaSession, aCiaUser,aUser)) { return broker; } else { throw new BMXNetException("Unable to connection BMX to EHR session."); } } private ICSS_Session _ciaSession = null; public ICSS_Session CiaSession { get { return _ciaSession; } set { _ciaSession = value; } } private ICSS_User _ciaUser = null; public ICSS_User CiaUser { get { return _ciaUser; } set { _ciaUser = value; } } internal bool OpenOn(ICSS_Session aCiaSession, ICSS_User aCiaUser, IndianHealthService.BMXNet.Model.User aUser) { this.CiaSession = aCiaSession; this.CiaUser = aCiaUser; this.User = aUser; this.SessionPool = this.CreateRemoteSessionPool(this, 1); this.PrimarySession = this.SessionPool.OpenSession(this.Log); return this.PrimaryRemoteSession != null; } private RemoteSessionPool _sessionPool = null; public RemoteSessionPool SessionPool { get { return _sessionPool; } set { _sessionPool = value; } } public override bool IsConnected { get { throw new NotImplementedException(); } } public override void Close() { //Do nothing. Can't close this broker } private RemoteSession _primarySession = null; internal RemoteSession PrimarySession { get { return _primarySession; } set { _primarySession = value; } } public override RemoteSession PrimaryRemoteSession { get { return this.PrimarySession; } } public override RemoteSessionPool RemoteSessionPool { get { return this.SessionPool; } } BMXNetSessionConnection BMXNetSessionConnectionSource.OpenConnection() { return BMXNetEhrSessionConnection.OpenOn(this,this.CiaSession, this.CiaUser); } void BMXNetSessionConnectionSource.CloseConnection(BMXNetSessionConnection aConnection) { //Do nothing. We don't close the primary connection } } }