BMXWIN40 Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. The LoginProcess provides the AttemptingLoginEvent to allow changes in workflow with this Cancelable event args class The LoginProcess can be modified (e.g. ConnectionSpec) after the user has OK'd the dialog but before the login attempt is made. The receiver of the event can perform the login differently or not allow the login. If Handled is set the True the LoginProcess assumes the login was attempted. Set HandledSucccessfully is the Handled logging was successful. Container for all persistent and available connection spec Add aSpec to the receiver. Not persisted Remove aSpec from the receiver. Not persisted. True if there was any movement True if there was any movement Refresh the receiver from the current state of the persistent store Answer all connection specs in user defined order Answer all available connection specs, including command-line spec Answer the default connection spec. If there is not user defined default, answer the first connection spec Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. The persistent store interface is to save local setting configuration data. The settings are written and read based on a string a keys, like a path. The keys are application specific. Some example could be: "Product","Version" The location of the PersistentStore is based on the implementation. The LocalPersistentStore provides the settings to be stored in special OS forlders like Environment.SpecialFolder.LocalApplicationData so that the settings would be based both on the logged in user and keys. The implementor must serialize the object anObject given the keys. The type of the object to be serialized to the store The objects to be stored The key used to locate the settings The implementor must deserialize an object of type T from the given location based on the keys The type of the object to be deserialized from the store The keys used to locate the object An deserialized object, or null if no valid objects exists at the keys The LoginProcess provides feedback after every LoginAttempt, even if the login attempt was performer using the AttemptingLoginEvent. If a custom dialog box or action can take place and Handled set to True, the LoginProcess will not display the standard dialog. The LoginProcess is available so examine or modify. Stardardized "About" dialog that displays information from the executable's (RootAssembly) AssemblyInfo: AssemblyTitle AssemblyProduct AssemblyVersion AssemblyCopyright AssemblyCompany AssemblyDescription Additionally, a list box showing all non-system .NET assemblies is displayed. Set IncludeRoot=True if the RootAssembly should be included in the list. Usage of dialog: AboutDialog dialog=new AboutDialog(); dialog.RootAssembly = Assembly.GetExecutingAssembly(); dialog.IncludeRoot = true; dialog.Show(this.Parent); By default, the RootAssebmly is the Assembly.GetExecutingAssembly(); Required designer variable. Clean up any resources being used. Required method for Designer support - do not modify the contents of this method with the code editor. Set to True if the RootAssembly should be included in the list of displayed assemblies. False by default. The assembly that all references are followed from. The EntryAssembly by default. Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. Implementation of Patient. Attempt to stay within CSS_Patient capabilties this.CssPatient.Age this.CssPatient.DOB this.CssPatient.Detail this.CssPatient.DOD this.CssPatient.HRN this.CssPatient.ICN this.CssPatient.Location this.CssPatient.LocationName this.CssPatient.PrimaryProvider this.CssPatient.PrimaryTeam this.CssPatient.RoomBed this.CssPatient.Sex this.CssPatient.SSN*/ Provides settings interface and implementation for settings from command-line, stored in PersistentStore, or hardcoded in application. Update the Setting value aName to aBool Name of the Setting Boolean value to set True if the setting was changed, False if the setting was the same value Update the Setting value aName to anInt Name of the Setting Integer value to set True if the setting was changed, False if the setting was the same value Update the Setting value aName to a string Name of the Setting String value to set True if the setting was changed, False if the setting was the same value Get the string Setting named aString. Answer the defaultValue if the Setting named aString does not exist in the receiver or it's Backup chain. Name of the setting Default value Get the boolean Setting named aString. Answer the defaultValue if the Setting named aString does not exist in the receiver or it's Backup chain. Name of the setting Default value Get the Integer Setting named aString. Answer the defaultValue if the Setting named aString does not exist in the receiver or it's Backup chain. Name of the setting Default value Merge the settings from someSettings into the receiver Settings to copy Load the receiver's settings from the PersistentStore Save the receiver's settings to the PersistentStore After set to true, every setting update will be flushed the PersistentStore if the Settings is configured with one Answer true if the current Settings IsPersistent. It is possible that the Backup Settings IsPersistennt LocalPersistentStore is the core BMX implementation for the most common local setting store patterns: 1) In a special folder 2) In any specified path 3) In IsolatedStorage Use the object factory static class methods to create the different storage mechanisms. Remove on non-letters, digits, to _ and add Bmx_ to the front. Isolated storage is scoped on user/application isolated storage Isolated storage is scoped on user/application isolated storage Specification for BMX RPMS Connection. Instances of this class are serialized as XML to a PersisentStore and are used is picklists for users to select from. The required display name of a connection used in pick lists The required Name/IP Address of the RPMS Host The optional time in millseconds to wait for a response from RPMS The optional time in millseconds to wait when sending a request to RPMS The required TCP/IP port number of the RPMS BMX Broker The optional Namespace to use in RPMS. Will default to BMX Brokers namespace. The optional flag to specify this connection as the users default. The optional flag to specify that WindowsAuthenication should be attempted. The optional flag to specify that the BMX Broker default namespace should be used. This class models the workflow of the LoginProcess. It correographs UI and non-UI login methods, login cancelling, management dialogs, and provides hooks (events) to customize the login workflow. See the SDK for other examples. this.Framework = WinFramework.CreateWithNetworkBroker(true); this.Framework.LoadSettings(LocalPersistentStore.CreateIn(Environment.SpecialFolder.LocalApplicationData, EntryAssemblyInfo.AssemblyCompany + "/" + EntryAssemblyInfo.AssemblyProduct, false), "settings"); this.Framework.LoadConnectionSpecs(LocalPersistentStore.CreateIn(Environment.SpecialFolder.LocalApplicationData, EntryAssemblyInfo.AssemblyCompany + "/" + EntryAssemblyInfo.AssemblyProduct, false), "connectiosn"); LoginProcess login = this.Framework.CreateLoginProcess(); //Attempt a non-UI WindowsAuth if and only if there is a default connection with WindowsAuth //Of course, an application can set its own policy of when to AttemptWindowsAuthLogin() if (login.HasDefaultConnectionWithUseWindowsAuth) { login.AttemptWindowsAuthLogin(); } //If not attempted yet, i.e. skipped the AttemptWindowsAuthLogin(), or was unsuccessul, try and UI login if (!login.WasLoginAttempted || !login.WasSuccessful) { login.AttemptUserInputLogin(IndianHealthService.BMXNet.Util.EntryAssemblyInfo.AssemblyTitle+" Login", 3,!this.Framework.BootStrapSettings.Get("lockedit",false), this); } //If the login process was unable to login after the max tries (or fow other configuration reasons), exit the application if (!login.WasSuccessful) { this.Close(); return; } // Making sure that the user's division is set. Can use AttemptUserInputSetDivision() or the application can devise another solution if ((this.Framework.User.Division == null) && !this.Framework.AttemptUserInputSetDivision("Set Initial Division", this)) { this.Close(); return; } // Logged in with valid user and division this.RemoteSession = this.Framework.PrimaryRemoteSession; Attempt a WindowsAuthentication Login and answer true if it was successful. True if login was successful Using the current default connection spec, attempt a WindowsAuthentication Login and answer true if it was successful. Most common approach when using the DefaultConnection feature the RpmsConnection spec class. True if login was successful Attempt an interactive UI login. There are several useful arguments to control the process and appearance of the this process. The title of the login. Customize to be something like "MyApplication Login" The number of attempts before cancelling If false, the user will not be able to change the connections. This is useful for lockdown situations Provide your main application as the window owner so the LoginDialog box is correctly managed. True if login was successful If the application is managing the actual login, send Succeeded() to indicate success. Do not set WasSuccessful to true. True if successful Attempt a headless non-interactive UI login. This would be useful for an ASP.NET or NT-service type application The RpmsConnectionSpec to use during the login process The clear text access code The clear text verify code True if the login was successful Will trigger the LoginAttempted event Answer true if the LoginProcess has been Canceled or handled Triggered before every login attempt. See for details . Triggered after every login attempt. See for details . During a LoginAttempted the LoginProcess can be Cancelled by setting Cancel to True. If set to True, the Connection combo box on the Login screen with be dropped down when the dialog is displayed. This is useful for applications that have an option to change Connections. The default is False. If set to True, RPMS is checked and if there was a previously set division for the user it will be used, otherwise MustResolveDivision will be set to True and the division will need to be set for the user. The default is True If the division for the user has not been determine after the LoginProcess, MustResolveDivision will be set to True. The default if False. The number of login attempts so far. This value can be modified during the AttemptingLogin and LoginAttempted events. The number of login attempts before cancelling the LoginProcess. The default value is 3. This value can be modified during the AttemptingLogin and LoginAttempted events. True if a login was attempted. False if the user is presented with a LoginDialog and "Cancel" is selected. The value is changed during every login attempt cycle. True if the most recent login attempt was successful. A reasonable message to display to the user if the last login attempt failed. If an exception occured during the last login attempt, FailureException will be set to it. The active ConnectionSpec being used to login. With care, the property can be changed or the instance can be modified during the AttemptingLogin and LoginAttempted events with care. Answer True if there is a default managed connection that uses WindowsAuthenication Instance manages the context/access to RPMS - Configuration information - Login entry points - External changes to patient context Ping the server, will reset read-timeout Answer true if changed, false if the same Logger to be used by all BMX objects.