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.