public void Initialize(AdvancedSettings advancedSettings, ServerSettings Settings, string ServerDirectory) { _AdvancedSettings = advancedSettings; _Settings = Settings; try { IOptionsDataAccessAgent optionsAgent; IAeManagementDataAccessAgent aeManagementAgent; if (!DataAccessServices.IsDataAccessServiceRegistered <IOptionsDataAccessAgent> ( )) { optionsAgent = DataAccessFactory.GetInstance(new OptionsDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(ServerDirectory), null, Settings.ServiceName)).CreateDataAccessAgent <IOptionsDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IOptionsDataAccessAgent>(optionsAgent); } if (!DataAccessServices.IsDataAccessServiceRegistered <IAeManagementDataAccessAgent> ( )) { aeManagementAgent = DataAccessFactory.GetInstance(new AeManagementDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(ServerDirectory), null, Settings.ServiceName)).CreateDataAccessAgent <IAeManagementDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IAeManagementDataAccessAgent>(aeManagementAgent); } _patientUpdaterDlg = new ConfigureDialog( ); _patientUpdaterPresenter = new PatientUpdaterPresenter( ); _patientUpdaterPresenter.RunView(_patientUpdaterDlg.PatientUpdaterConfigurationView, ServerDirectory); } catch (Exception e) { Logger.Global.Exception(Module.Source, e); } }
public static ConnectionStringSettings GetConnectionSettings() { Configuration configPacs = DicomDemoSettingsManager.GetGlobalPacsConfiguration(); return(GetConnectionString(configPacs, new StorageDataAccessConfigurationView(configPacs, DicomDemoSettingsManager.ProductNameStorageServer, null).DataAccessSettingsSectionName, DicomDemoSettingsManager.ProductNameStorageServer)); }
public override void Load(string serviceDirectory, string displayName) { System.Configuration.Configuration configuration; DicomServer server = ServiceLocator.Retrieve <DicomServer>(); ServiceDirectory = serviceDirectory; ServiceName = server.Name; ServerAE = server.AETitle; server.ServerSettingsChanged += new EventHandler(server_ServerSettingsChanged); StorageConfigManager = new StorageModuleConfigurationManager(true); StorageConfigManager.Load(serviceDirectory); configuration = DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(serviceDirectory); if (!DataAccessServices.IsDataAccessServiceRegistered <IStorageDataAccessAgent>()) { StorageAgent = DataAccessFactory.GetInstance(new StorageDataAccessConfigurationView(configuration, null, displayName)).CreateDataAccessAgent <IStorageDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IStorageDataAccessAgent>(StorageAgent); } else { StorageAgent = DataAccessServices.GetDataAccessService <IStorageDataAccessAgent>(); } try { AdvancedSettings settings = AdvancedSettings.Open(ServiceDirectory); string name = Assembly.GetExecutingAssembly().GetName().Name; RegisterServerEvents(settings); Options = settings.GetAddInCustomData <PatientUpdaterOptions>(_AddIn, _Name); if (Options == null) { Options = new PatientUpdaterOptions(); } if (Options.EnableAutoUpdate) { UpdateQueue = new AutoUpdateQueue(Options.AutoUpdateThreads); UpdateQueue.InitializeDatabase(); } } catch (Exception e) { if (Options == null) { Options = new PatientUpdaterOptions(); } Logger.Global.Error(Source, e.Message); } if (Options.EnableRetry) { if (string.IsNullOrEmpty(Module.Options.RetryDirectory)) { Module.Options.RetryDirectory = Path.Combine(ServiceDirectory, @"AutoUpdate\"); } RetryProcessor = new AutoRetryProcessor(Options.RetryDirectory); RetryProcessor.Start(Options.RetrySeconds, Options.RetryDays); } }
private void SetPermissions() { IPermissionManagementDataAccessAgent agent = DataAccessFactory.GetInstance(new PermissionManagementDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsConfiguration(), DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IPermissionManagementDataAccessAgent>(); _RolesView.SetPermissions(agent.GetPermissions()); }
public void Initialize(AdvancedSettings advancedSettings, ServerSettings Settings, string ServerDirectory) { _AdvancedSettings = advancedSettings; _Settings = Settings; if (Settings != null) { Module.ServiceName = Settings.ServiceName; } try { IAeManagementDataAccessAgent aeManagementAgent; if (!DataAccessServices.IsDataAccessServiceRegistered <IAeManagementDataAccessAgent>()) { aeManagementAgent = DataAccessFactory.GetInstance(new AeManagementDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(ServerDirectory), null, Settings.ServiceName)).CreateDataAccessAgent <IAeManagementDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IAeManagementDataAccessAgent>(aeManagementAgent); } else { aeManagementAgent = DataAccessServices.GetDataAccessService <IAeManagementDataAccessAgent>(); } _autoCopyDlg = new ConfigureDialog( ); _autoCopyPresenter = new AutoCopyPresenter( ); _autoCopyPresenter.RunView(_autoCopyDlg.AutoCopyView, advancedSettings); } catch (Exception e) { Logger.Global.Exception(Module.Source, e); } }
void dlgPassword_ValidatePassword(object sender, ValidatePasswordEventArgs e) { IOptionsDataAccessAgent agent; PasswordOptions options; string message; agent = DataAccessFactory.GetInstance(new OptionsDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsConfiguration(), DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IOptionsDataAccessAgent>(); options = agent.Get <PasswordOptions>(PasswordOptionsPresenter.PasswordOptions, new PasswordOptions()); if (!PasswordValidator.Validate(e.Password, e.ConfirmPassword, options, out message)) { e.Valid = false; Messager.ShowError(null, message); } else { e.Valid = true; if (UserManager.IsPreviousPassword(View.UsersAccounts.SelectedUser, e.Password.ToSecureString())) { e.Valid = false; Messager.ShowError(sender as Form, "The password chosen has already been used. Please choose a new password."); } } }
void UsersAccounts_PasswordRequest(object sender, PasswordRequestEventArgs e) { PasswordDialog dlgPassword = new PasswordDialog(); dlgPassword.ValidatePassword += new EventHandler <ValidatePasswordEventArgs>(dlgPassword_ValidatePassword); e.Cancel = dlgPassword.ShowDialog() == DialogResult.Cancel; if (!e.Cancel) { IOptionsDataAccessAgent agent; PasswordOptions options; agent = DataAccessFactory.GetInstance(new OptionsDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsConfiguration(), DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IOptionsDataAccessAgent>(); options = agent.Get <PasswordOptions>(PasswordOptionsPresenter.PasswordOptions, new PasswordOptions()); e.Password = dlgPassword.Password; if (options.DaysToExpire > 0) { e.Expires = DateTime.Now.AddDays(options.DaysToExpire); } View_SettingsChanged(sender, e); } }
private void RegisterDataAccessLayers( ) { #if (LEADTOOLS_V19_OR_LATER && !TUTORIAL_CUSTOM_DATABASE) IStorageDataAccessAgent3 storageAgent; #else IStorageDataAccessAgent storageAgent; #endif ILoggingDataAccessAgent2 loggingAgent; //IOptionsDataAccessAgent optionsAgent ; IAeManagementDataAccessAgent aeManagementAgent; IPermissionManagementDataAccessAgent permissionManagementAgent; IForwardDataAccessAgent forwardManagementAgent; #if (LEADTOOLS_V19_OR_LATER_MEDICAL_EXTERNAL_STORE) || (LEADTOOLS_V19_OR_LATER) IExternalStoreDataAccessAgent externalStoreAgent; #endif #if (LEADTOOLS_V20_OR_LATER) IPatientRightsDataAccessAgent2 patientRightsAgent; #endif System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsConfiguration(); #if TUTORIAL_CUSTOM_DATABASE // To use a custom database schema, you must create a data access configuration view that implements IDataAccessConfigurationView. // This helper class is used to create your custom data access agent. // For more details, see the "Changing the LEAD Medical Storage Server to use a different database schema" tutorial. storageAgent = DataAccessFactory.GetInstance(new MyStorageDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IStorageDataAccessAgent> ( ); #elif (LEADTOOLS_V19_OR_LATER) storageAgent = DataAccessFactory.GetInstance(new StorageDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IStorageDataAccessAgent3> ( ); #else storageAgent = DataAccessFactory.GetInstance(new StorageDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IStorageDataAccessAgent> ( ); #endif loggingAgent = DataAccessFactory.GetInstance(new LoggingDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <ILoggingDataAccessAgent2>(); //optionsAgent = DataAccessFactory.GetInstance(new OptionsDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent<IOptionsDataAccessAgent>(); aeManagementAgent = DataAccessFactory.GetInstance(new AeManagementDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IAeManagementDataAccessAgent>(); permissionManagementAgent = DataAccessFactory.GetInstance(new AePermissionManagementDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IPermissionManagementDataAccessAgent>(); forwardManagementAgent = DataAccessFactory.GetInstance(new ForwardDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IForwardDataAccessAgent>(); #if (LEADTOOLS_V19_OR_LATER_MEDICAL_EXTERNAL_STORE) || (LEADTOOLS_V19_OR_LATER) externalStoreAgent = DataAccessFactory.GetInstance(new ExternalStoreDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IExternalStoreDataAccessAgent>(); #endif #if (LEADTOOLS_V20_OR_LATER) patientRightsAgent = DataAccessFactory.GetInstance(new PatientRightsDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IPatientRightsDataAccessAgent2>(); #endif DataAccessServices.RegisterDataAccessService <IStorageDataAccessAgent> (storageAgent); DataAccessServices.RegisterDataAccessService <ILoggingDataAccessAgent2> (loggingAgent); //DataAccessServices.RegisterDataAccessService<IOptionsDataAccessAgent>(optionsAgent); DataAccessServices.RegisterDataAccessService <IAeManagementDataAccessAgent>(aeManagementAgent); DataAccessServices.RegisterDataAccessService <IPermissionManagementDataAccessAgent>(permissionManagementAgent); DataAccessServices.RegisterDataAccessService <IForwardDataAccessAgent>(forwardManagementAgent); #if (LEADTOOLS_V19_OR_LATER_MEDICAL_EXTERNAL_STORE) || (LEADTOOLS_V19_OR_LATER) DataAccessServices.RegisterDataAccessService <IExternalStoreDataAccessAgent>(externalStoreAgent); #endif #if (LEADTOOLS_V20_OR_LATER) DataAccessServices.RegisterDataAccessService <IPatientRightsDataAccessAgent2>(patientRightsAgent); #endif }
/// <summary> /// Initiates the forward process. /// </summary> private void Forward(string destinationAE) { try { IForwardDataAccessAgent forwardAgent; IAeManagementDataAccessAgent aeAgent; System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(Module.ServiceDirectory); if (!DataAccessServices.IsDataAccessServiceRegistered <IForwardDataAccessAgent>()) { forwardAgent = DataAccessFactory.GetInstance(new ForwardDataAccessConfigurationView(configuration, null, Module.ServiceName)).CreateDataAccessAgent <IForwardDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IForwardDataAccessAgent>(forwardAgent); } else { forwardAgent = DataAccessServices.GetDataAccessService <IForwardDataAccessAgent>(); } if (!DataAccessServices.IsDataAccessServiceRegistered <IAeManagementDataAccessAgent>()) { aeAgent = DataAccessFactory.GetInstance(new AeManagementDataAccessConfigurationView(configuration, null, Module.ServiceName)).CreateDataAccessAgent <IAeManagementDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IAeManagementDataAccessAgent>(aeAgent); } else { aeAgent = DataAccessServices.GetDataAccessService <IAeManagementDataAccessAgent>(); } if (forwardAgent != null && aeAgent != null) { AeInfoExtended ae = aeAgent.GetAeTitle(destinationAE); if (ae != null) { #if LEADTOOLS_V20_OR_LATER // Update dbo.AeInfo.LastAccessDate to Date.Now ae.LastAccessDate = DateTime.Now; aeAgent.Update(ae.AETitle, ae); #endif DicomScp scp = null; IPAddress address = IPAddress.None; if (!IPAddress.TryParse(ae.Address, out address)) { IPHostEntry host = Dns.GetHostEntry(ae.Address); if (host.AddressList.Length > 0) { address = host.AddressList[0]; } } if (address != IPAddress.None) { scp = new DicomScp(address, ae.AETitle, ae.Port) { Timeout = Module.Timeout }; new ForwardProcess(Module.Options, Module.ServerAE).Run(scp, forwardAgent); } else { string message = string.Format("[Forwarder] Could resolve host name ({0}) not found on server", ae.Address); Logger.Global.SystemMessage(LogType.Error, message, Module.ServerAE); } } else { string message = string.Format("[Forwarder] AE title ({0}) not found on server", destinationAE); Logger.Global.SystemMessage(LogType.Warning, message, Module.ServerAE); } } } catch (Exception e) { Logger.Global.SystemMessage(LogType.Error, e.Message, Module.ServerAE); } }
public void InitializeDatabase() { _ConfigView = new AeManagementDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(Module.ServiceDirectory), null, Module.ServiceName); _AccessAgent = DataAccessFactory.GetInstance(_ConfigView).CreateDataAccessAgent <IAeManagementDataAccessAgent>(); }
static void Main() { // Still want to let this application run with an expired license (as this is an enterprise level application), but in very a limited mode // For example, the user should be able to view the log //Support.SetLicense(); //if (Support.KernelExpired) // return; InitializeLicense(); if (ProcessChecker.IsOnlyProcess(Shell.storageServerName)) { #if (LEADTOOLS_V20_OR_LATER) if (DemosGlobal.IsDotNet45OrLaterInstalled() == false) { MessageBox.Show("To run this application, you must first install Microsoft .NET Framework 4.5 or later.", "Microsoft .NET Framework 4.5 or later Required", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } #endif Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); PacsProduct.ProductName = DicomDemoSettingsManager.ProductNameStorageServer; bool ok; string exeName = Path.GetFileNameWithoutExtension(Application.ExecutablePath); if (Demos.DemosGlobal.Is64Process( )) { exeName += "64"; } else { exeName += "32"; } Mutex m = new Mutex(true, exeName, out ok); #if !TUTORIAL_CUSTOM_DATABASE && !LEADTOOLS_V19_OR_LATER_MEDICAL_EXTERNAL_STORE CheckPacsConfigDemo(); #endif string globalPacsConfigPath = DicomDemoSettingsManager.GlobalPacsConfigFullFileName; if (File.Exists(globalPacsConfigPath)) { try { if (false == UpgradeConfigFiles()) { return; } } catch (Exception ex) { string msg = string.Format("Upgrade Failed!\n\n{0}", ex.Message); MessageBox.Show(msg, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } try { string message = string.Empty; string[] productsToCheck = new string[] { DicomDemoSettingsManager.ProductNameStorageServer }; bool dbConfigured = GlobalPacsUpdater.IsDbComponentsConfigured(productsToCheck, out message); #if TUTORIAL_CUSTOM_DATABASE // When manually configuring the storage server to use a different database schema, the helper funciton 'IsDbComponentsConfigured' // will incorrectly detect that the database has not been configured. In this case, set 'dbConfigured' to true. // For more details, see the "Changing the LEAD Medical Storage Server to use a different database schema" tutorial. dbConfigured = true; #endif if (!dbConfigured && !RequestUserToConfigureDbSucess(message)) { return; } #if !TUTORIAL_CUSTOM_DATABASE if (!GlobalPacsUpdater.IsProductDatabaseUpTodate(DicomDemoSettingsManager.ProductNameStorageServer) && !RequestUserToUpgradeDbSucess( )) { return; } #endif IOptionsDataAccessAgent optionsAgent; System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsConfiguration(); if (!ok) { return; } optionsAgent = DataAccessFactory.GetInstance(new OptionsDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IOptionsDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IOptionsDataAccessAgent>(optionsAgent); if (Login(string.Empty, false)) { //#if !DEBUG SplashForm.ShowSplash(); // #endif Shell shell = new Shell( ); shell.Run( ); } } catch (Exception ex) { MessageBox.Show("The program failed to run with the following error:\n\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { #if LEADTOOLS_V19_OR_LATER ProducerConsumerQueue.Instance.Shutdown(true); #endif m.Close( ); } } }
static bool SilentConfigure() { bool success = true; try { if (_commandLineOptions.DatabaseType == DatabaseTypeEnum.New) { DicomStorageServerSqlInstaller.InstallDatabase(_commandLineOptions.GetConnectionString()); } MainForm.ConfigMachine = MainForm.GetConfiguration(); MainForm.GlobalPacsAlreadyExists = MainForm.VerifyAlreadyExistGlobalPacsConfig(); MainForm.ConfigGlobalPacs = DicomDemoSettingsManager.GetGlobalPacsConfiguration(); MainForm.ConfigSource = MainForm.GetConfigurationSource(); if (MainForm.ConfigGlobalPacs != null) { GlobalPacsUpdater.BackupFile(MainForm.ConfigGlobalPacs.FilePath); } List <ConnectionStringSettings> connectionStringSettingList = new List <ConnectionStringSettings>(); ConnectionStringSettings storageServerConnectionStringSetting = new ConnectionStringSettings(_commandLineOptions.DatabaseName, _commandLineOptions.GetConnectionString(), ConnectionProviders.SqlServerProvider.Name); connectionStringSettingList.Add(storageServerConnectionStringSetting); MainForm.StoreConnectionStringsCommandLine(connectionStringSettingList); MainForm.RegisterConfigSectionsCommandLine(); if (_commandLineOptions.DatabaseType == DatabaseTypeEnum.Existing) { // Get DICOM listening service name from options database table // Update globalpacs.config to include service name for each DataAccesLayer entry AddDicomServiceNameToGlobalPacsConfig(); } if (_commandLineOptions.DatabaseType == DatabaseTypeEnum.New) { //if (databaseOptions1.WorklistDbSelected) //{ // // FillModalityWorklistDummyData ( ) ; //} //if (databaseOptions1.UserManagementDbSelected) //{ // InsertWorkstationUser(); //} } if (_commandLineOptions.DatabaseType == DatabaseTypeEnum.New) { bool storageServerDbSelected = true; if (storageServerDbSelected) { MainForm.InsertStorageServerUser(_commandLineOptions.DicomServerUsername, _commandLineOptions.DicomServerPassword); if (Program.IsToolkitDemo == true) { // Program.AddDefaultImages(MainForm.ConfigGlobalPacs); } MainForm.AddDefaultIodClasses(); } } } catch (Exception ex) { success = false; MyShowError(ex.Message); } return(success); }
public static bool AddDicomServiceNameToGlobalPacsConfig() { bool success = true; try { OptionsDataAccessConfigurationView optionsConfigView = new OptionsDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsConfiguration(), DicomDemoSettingsManager.ProductNameStorageServer, null); IOptionsDataAccessAgent optionsAgent = DataAccessFactory.GetInstance(optionsConfigView).CreateDataAccessAgent <IOptionsDataAccessAgent>(); if (optionsAgent != null) { StorageServerInformation serverInfo = null; string name = typeof(StorageServerInformation).Name; if (optionsAgent.OptionExits(name)) { serverInfo = optionsAgent.Get <StorageServerInformation>(name, null, new Type[0]); if (serverInfo != null && !string.IsNullOrEmpty(serverInfo.ServiceName)) { GlobalPacsUpdater.ModifyGlobalPacsConfiguration(DicomDemoSettingsManager.ProductNameStorageServer, serverInfo.ServiceName, GlobalPacsUpdater.ModifyConfigurationType.Add); } } } } catch (Exception) { success = false; } return(success); }
public void Configure(DicomServer server) { ServiceDirectory = server.ServerDirectory; DisplayName = server.Name; try { AeManagementDataAccessConfigurationView configView = new AeManagementDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(server.ServerDirectory), null, server.Name); IAeManagementDataAccessAgent aeAgent = DataAccessFactory.GetInstance(configView).CreateDataAccessAgent <IAeManagementDataAccessAgent>(); ServiceLocator.Register <IAETitle>(new AeTitle(aeAgent)); } catch (Exception e) { Logger.Global.Exception("AE Configuration", e); } }
static int Main(string[] args) { if (!DicomDemoSettingsManager.Is64Process()) { _demoName = "LEADTOOLS PACS Configuration Demo (32 bit)"; } else { _demoName = "LEADTOOLS PACS Configuration Demo (64 bit)"; } if (DemosGlobal.MustRestartElevated()) { DemosGlobal.TryRestartElevated(args); return(0); } ReadCommandLine(args); MySettings mySettings = new MySettings(); if (_bInitialize) { #if !FOR_DOTNET4 if (false == DemosGlobal.IsDotNet35Installed()) { return(0); } #endif MyUtils.RemoveConfigurationFiles(); MyUtils.RemoveGlobalPacsConfig(); mySettings.Save(); return(0); } bool showUI = !_bUninstall && !_bInitialize; #if !FOR_DOTNET4 bool dotNet35Installed = DemosGlobal.IsDotNet35Installed(); if (showUI && !dotNet35Installed) { Messager.ShowWarning(null, ".NET Framework 3.5 could not be found on this machine.\n\nPlease install the .NET Framework 3.5 runtime and try again. This program will now exit."); } if (!dotNet35Installed) { return(0); } #endif mySettings.Load(); #if LEADTOOLS_V19_OR_LATER if (showUI) { if (!Support.SetLicense()) { return(-1); } } #endif // If calling with the /uninstall flag, do not display the nag message if (_bUninstall == false) { if (RasterSupport.KernelExpired) { return(-1); } } #if LEADTOOLS_V175_OR_LATER if (showUI) { if (RasterSupport.IsLocked(RasterSupportType.DicomCommunication)) { MessageBox.Show(String.Format("{0} Support is locked!", RasterSupportType.DicomCommunication.ToString()), "Warning"); return(-1); } } #else if (RasterSupport.IsLocked(RasterSupportType.MedicalNet)) { MessageBox.Show(String.Format("{0} Support is locked!", RasterSupportType.MedicalNet.ToString()), "Warning"); return(-1); } if (RasterSupport.IsLocked(RasterSupportType.MedicalServer)) { MessageBox.Show(String.Format("{0} Support is locked!", RasterSupportType.MedicalServer.ToString()), "Warning"); return(-1); } #endif //_admin = new ServiceAdministrator(_baseDir); //_admin.Unlock(Support.MedicalServerKey); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); #if (LEADTOOLS_V20_OR_LATER) if (DemosGlobal.IsDotNet45OrLaterInstalled() == false) { MessageBox.Show("To run this application, you must first install Microsoft .NET Framework 4.5 or later.", "Microsoft .NET Framework 4.5 or later Required", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(-1); } #endif //Utils.EngineStartup(); DicomEngine.Startup(); if (_bUninstall) { try { using (ServiceAdministrator serviceAdmin = CreateServiceAdministrator()) { MyUtils.UninstallAllDicomServersSilent(serviceAdmin); MyUtils.RemoveConfigurationFiles(); } } catch (Exception) { } } else { string missingDbComponents; DialogResult result = DialogResult.Yes; Messager.Caption = _demoName; string platform = "32-bit"; if (DicomDemoSettingsManager.Is64Process()) { platform = "64-bit"; } string [] productsToCheck = new string[] { DicomDemoSettingsManager.ProductNameDemoServer, DicomDemoSettingsManager.ProductNameWorkstation, DicomDemoSettingsManager.ProductNameStorageServer }; bool isDbConfigured = GlobalPacsUpdater.IsDbComponentsConfigured(productsToCheck, out missingDbComponents); if (!isDbConfigured) // databases not configured { string message = "The following databases are not configured:\n\n{0}\nRun the {1} CSPacsDatabaseConfigurationDemo to configure the missing databases then run this demo again.\n\nDo you want to run the {2} CSPacsDatabaseConfigurationDemo wizard now?"; message = string.Format(message, missingDbComponents, platform, platform); result = Messager.ShowQuestion(null, message, MessageBoxButtons.YesNo); if (DialogResult.Yes == result) { RunDatabaseConfigurationDemo(); } } mySettings._settings.FirstRun = false; mySettings.Save(); // Add event handler for handling UI thread exceptions to the event Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); // Set the unhandled exception mode to force all Windows Forms errors to go through our handler. Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); // Add the event handler for handling non-UI thread exceptions to the event. AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); try { Application.Run(new MainForm()); } catch (FileNotFoundException ex) { MessageBox.Show("File not found exception.\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } DicomEngine.Shutdown(); return(0); }
public string GetSettingsFilename() { return(DicomDemoSettingsManager.GetSettingsFilename("CSPrintToPacsDemo")); }
private void LoadSettings( ) { _mySettings = DicomDemoSettingsManager.LoadSettings(_demoName); if (_mySettings == null) { _mySettings = new DicomDemoSettings(); _mySettings.FirstRun = false; DicomDemoSettingsManager.SaveSettings(_demoName, _mySettings); } RegistryKey user = Registry.CurrentUser; RegistryKey settings = user.OpenSubKey(_settingsLocation, true); if (settings == null) { // // We haven't saved any setting yet. Will use the default // settings. return; } _useTls = Convert.ToBoolean(settings.GetValue("UseTls", false)); if (_useTls) { if (Utils.VerifyOpensslVersion(this) == false) { _useTls = false; } } server.AETitle = Convert.ToString(settings.GetValue("ServerAE")); server.Port = Convert.ToInt32(settings.GetValue("ServerPort", 104)); string sValue = Convert.ToString(settings.GetValue("ServerIpType")); if (string.IsNullOrEmpty(sValue)) { server.IpType = DicomNetIpTypeFlags.Ipv4; } else { server.IpType = (DicomNetIpTypeFlags)DemosGlobal.StringToEnum(typeof(DicomNetIpTypeFlags), sValue); } _ipType = server.IpType; server.Address = IPAddress.Parse(Convert.ToString(settings.GetValue("ServerAddress", "127.0.0.1"))); server.Timeout = Convert.ToInt32(settings.GetValue("ServerTimeout", 0)); AETitle = Convert.ToString(settings.GetValue("ClientAE")); disableLogging = Convert.ToBoolean(settings.GetValue("DisableLogging")); GroupLengthDataElements = Convert.ToBoolean(settings.GetValue("GroupLengthDataElements", false)); _presentationContextType = Convert.ToInt32(settings.GetValue("PresentationContextType")); _cstoreCompressionType = (DicomImageCompressionType)Enum.Parse(typeof(DicomImageCompressionType), Convert.ToString(settings.GetValue("Compression"))); if (cstore != null) { cstore.PresentationContextType = _presentationContextType; cstore.Compression = _cstoreCompressionType; } }
public void Initialize(AdvancedSettings advancedSettings, ServerSettings Settings, string ServerDirectory) { _AdvancedSettings = advancedSettings; _Settings = Settings; if (!DataAccessServices.IsDataAccessServiceRegistered <IAeManagementDataAccessAgent>()) { _AccessAgent = DataAccessFactory.GetInstance(new AeManagementDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(ServerDirectory), null, Settings.ServiceName)).CreateDataAccessAgent <IAeManagementDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IAeManagementDataAccessAgent>(_AccessAgent); } _ConfigureDialog = new ConfigureDialog(); _Presenter = new ForwardManagerPresenter(); _Presenter.RunView(_ConfigureDialog.View, _AdvancedSettings); }
void UsersAccounts_EditUserPermissions(object sender, EditUserPermissionsEventArgs e) { PermissionsDialog permissionDialog = new PermissionsDialog(); IPermissionManagementDataAccessAgent agent = DataAccessFactory.GetInstance(new PermissionManagementDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsConfiguration(), DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IPermissionManagementDataAccessAgent>(); Permission[] permissions = agent.GetPermissions(); permissionDialog.Username = e.Username; permissionDialog.SetPermissions(permissions, e.Permissions); permissionDialog.SetRoles(RoleManager.GetAllRoles(), RoleManager.GetUserRoles(e.Username)); if (permissionDialog.ShowDialog() == DialogResult.OK) { View.UsersAccounts.SetUserPermissions(permissionDialog.SelectedPermissions); RoleManager.SetUserRoles(e.Username, permissionDialog.Roles); View_SettingsChanged(sender, e); } }
static RoleManager() { _BuiltInRoles.Add(Admin); permissionsAgent = GetDataAccess <IPermissionManagementDataAccessAgent2>(new PermissionManagementDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsConfiguration(), DicomDemoSettingsManager.ProductNameStorageServer, null)); }
internal static void RegisterServices(string serviceName) { if (!DataAccessServices.IsDataAccessServiceRegistered <IMediaCreationDataAccessAgent> ( )) { IMediaCreationDataAccessAgent mediaCreationService; System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsConfiguration(); mediaCreationService = DataAccessFactory.GetInstance(new MediaCreationDataAccessConfigurationView(configuration, null, serviceName)).CreateDataAccessAgent <IMediaCreationDataAccessAgent> ( ); DataAccessServices.RegisterDataAccessService <IMediaCreationDataAccessAgent> (mediaCreationService); } IStorageDataAccessAgent storageService; if (!DataAccessServices.IsDataAccessServiceRegistered <IStorageDataAccessAgent> ( )) { System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsConfiguration(); storageService = DataAccessFactory.GetInstance(new StorageDataAccessConfigurationView(configuration, null, serviceName)).CreateDataAccessAgent <IStorageDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IStorageDataAccessAgent> (storageService); } else { storageService = DataAccessServices.GetDataAccessService <IStorageDataAccessAgent> ( ); } if (!CommandRequestValidationManager.IsRegistered <CommandRequestDataSetValidator> ( )) { CommandRequestValidationManager.AddValidator(new CommandRequestDataSetValidator( )); } if (!CommandRequestValidationManager.IsRegistered <MediaCreationReferencedSopsValidator> ( )) { MediaCreationReferencedSopsValidator validator = new MediaCreationReferencedSopsValidator(storageService); validator.Enabled = AddInConfiguration.ValidateReferencedSopInstances; CommandRequestValidationManager.AddValidator(validator); } if (!DicomCommandFactory.IsCommandServiceRegistered(typeof(MediaNCreateCommand))) { DicomCommandFactory.RegisterCommandInitializationService(typeof(MediaNCreateCommand), new MediaNCreateCommandInitializationService( )); } if (!ServiceLocator.IsRegistered <MediaServicesState> ( )) { MediaServicesState servicesState; servicesState = new MediaServicesState( ); servicesState.AutoCreationServiceEnabled = MediaAutoCreationConfiguration.EnableAutoMediaCreation; servicesState.MediaMaintenanceServiceEnabled = MaintenanceConfiguration.Enabled; servicesState.AutoCreationServiceStateChanged += new EventHandler(servicesState_AutoCreationServiceStateChanged); servicesState.MediaMaintenanceServiceStateChanged += new EventHandler(servicesState_MediaMaintenanceServiceStateChanged); ServiceLocator.Register <MediaServicesState> (servicesState); } if (!ServiceLocator.IsRegistered <SettingsChangedNotifier> ( )) { SettingsChangedNotifier configChangedNotifier = new SettingsChangedNotifier(_settings); configChangedNotifier.SettingsChanged += new EventHandler(configChangedNotifier_SettingsChanged); configChangedNotifier.Enabled = true; ServiceLocator.Register <SettingsChangedNotifier> (configChangedNotifier); } }
public override void Load(string serviceDirectory, string displayName) { IForwardDataAccessAgent forwardAgent; IAeManagementDataAccessAgent aeAgent; IStorageDataAccessAgent storageAgent; AdvancedSettings settings = AdvancedSettings.Open(serviceDirectory); RegisterServerEvents(settings); _serviceDirectory = serviceDirectory; DicomServer server = ServiceLocator.Retrieve <DicomServer>(); ServiceName = server.Name; _Timeout = server.ClientTimeout <= 0 ? 30 : server.ClientTimeout; try { Options = settings.GetAddInCustomData <ForwardOptions>(ForwardManagerPresenter._addinName, "ForwardOptions"); if (Options == null) { Options = new ForwardOptions(); } } catch (Exception e) { if (Options == null) { Options = new ForwardOptions(); } Logger.Global.Error(Source, e.Message); } StorageConfigManager = new StorageModuleConfigurationManager(true); StorageConfigManager.Load(ServiceDirectory); System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(serviceDirectory); if (!DataAccessServices.IsDataAccessServiceRegistered <IForwardDataAccessAgent>()) { forwardAgent = DataAccessFactory.GetInstance(new ForwardDataAccessConfigurationView(configuration, null, displayName)).CreateDataAccessAgent <IForwardDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IForwardDataAccessAgent>(forwardAgent); } else { forwardAgent = DataAccessServices.GetDataAccessService <IForwardDataAccessAgent>(); } if (!DataAccessServices.IsDataAccessServiceRegistered <IAeManagementDataAccessAgent>()) { aeAgent = DataAccessFactory.GetInstance(new AeManagementDataAccessConfigurationView(configuration, null, displayName)).CreateDataAccessAgent <IAeManagementDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IAeManagementDataAccessAgent>(aeAgent); } else { aeAgent = DataAccessServices.GetDataAccessService <IAeManagementDataAccessAgent>(); } _aeManagementAgent = aeAgent; if (!DataAccessServices.IsDataAccessServiceRegistered <IStorageDataAccessAgent>()) { storageAgent = DataAccessFactory.GetInstance(new StorageDataAccessConfigurationView(configuration, null, displayName)).CreateDataAccessAgent <IStorageDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IStorageDataAccessAgent>(storageAgent); } else { storageAgent = DataAccessServices.GetDataAccessService <IStorageDataAccessAgent>(); } JobManager = new JobManager(Options, forwardAgent, aeAgent, storageAgent); JobManager.ServerAE = _ServerAE; if (IsLicenseValid()) { JobManager.Start(); } }
private void ConfigureServerInfoConrol(ServerInformationControl serverInfoControl) { ConnectionStringSettings logging; ConnectionStringSettings storage; ConnectionStringSettings options; ConnectionStringSettings userManagement; ConnectionStringSettings userPermissions; ConnectionStringSettings aeManagement; ConnectionStringSettings aePermissions; ConnectionStringSettings forwarding; System.Configuration.Configuration configPacs = DicomDemoSettingsManager.GetGlobalPacsConfiguration(); // Machine.config file System.Configuration.Configuration configMachine = ConfigurationManager.OpenMachineConfiguration(); #if TUTORIAL_CUSTOM_DATABASE // To use a custom database schema with the Database Manager, you must define a connection string in the 'globalPacs.config' for your database. // You must use your 'MyStorageDataAccessConfigurationView' class to retrieve the connection string. // For more details, see the "Changing the LEAD Medical Storage Server to use a different database schema" tutorial. storage = GetConnectionString(configPacs, configMachine, new MyStorageDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName); #else storage = GetConnectionString(configPacs, configMachine, new StorageDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName); #endif logging = GetConnectionString(configPacs, configMachine, new LoggingDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName); options = GetConnectionString(configPacs, configMachine, new OptionsDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName); userManagement = GetConnectionString(configPacs, configMachine, new UserManagementDataAccessConfigurationView(configPacs, ProductName, null).DataAccessSettingsSectionName); userPermissions = GetConnectionString(configPacs, configMachine, new PermissionManagementDataAccessConfigurationView(configPacs, ProductName, null).DataAccessSettingsSectionName); aeManagement = GetConnectionString(configPacs, configMachine, new AeManagementDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName); aePermissions = GetConnectionString(configPacs, configMachine, new AePermissionManagementDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName); forwarding = GetConnectionString(configPacs, configMachine, new ForwardDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName); Dictionary <string, string> connections = new Dictionary <string, string>(); string storageDatabaseName = "Storage Database"; connections.Add(storageDatabaseName, storage.ConnectionString); connections.Add("Logging Database", logging.ConnectionString); connections.Add("Server Configuration Database", options.ConnectionString); connections.Add("User Management Database", userManagement.ConnectionString); connections.Add("User Permissions Database", userPermissions.ConnectionString); connections.Add("Client Management Database", aeManagement.ConnectionString); connections.Add("Client Permissions Database", aePermissions.ConnectionString); connections.Add("Forwarding Database", forwarding.ConnectionString); serverInfoControl.SqlDatabaseList = connections; serverInfoControl.StorageDatabaseName = storageDatabaseName; serverInfoControl.MaximumClientConnectionCount = ServerState.Instance.ServerService == null?5:ServerState.Instance.ServerService.Settings.MaxClients; serverInfoControl.RequestCurrentClientConnectionCount += new EventHandler <CurrentClientConnectionCountEventArgs>(serverInfoControl_RequestCurrentClientConnectionCount); serverInfoControl.ServiceName = ServerState.Instance.ServerService == null ? string.Empty : ServerState.Instance.ServiceName; _serverInfoControl = serverInfoControl; _serverInfoControl.HideUserDetails = Program.ShouldHideUserDetails(); if (ServerState.Instance.ServerService != null) { ServerState.Instance.ServerService.Message += new EventHandler <Leadtools.Dicom.Server.Admin.MessageEventArgs>(ServerService_Message); ServerState.Instance.ServerService.StatusChange += new EventHandler(ServerService_StatusChange); if (ServerState.Instance.ServerService.Status == System.ServiceProcess.ServiceControllerStatus.Running) { _serverInfoControl.SetStartTime(); } } ServerState.Instance.ServerServiceChanged += new EventHandler(Instance_ServerServiceChanged); EventBroker.Instance.Subscribe <ServerSettingsAppliedEventArgs>(new EventHandler <ServerSettingsAppliedEventArgs>(OnSettingsChanged)); }
public MyAppSettings( ) { ConfigureStorageServer = true; ConfigureWorklistServer = true; ConfigureDemoServer = true; ConfigureWSServer = true; ConfigureMainClient = true; ConfigureWSClient = true; ResetClientConfigurations = true; ShowHelpOnStart = true; FirstRun = true; #if LEADTOOLS_V175_OR_LATER InstallBrokerHost = true; #endif if (!DicomDemoSettingsManager.Is64Process()) { #if LTV17_CONFIG ServerAE = "L17_SERVER_32"; ServerPort = 204; ClientAE = "L17_CLIENT_32"; ClientPort = 1000; WsServerAE = "L17_WS_SERVER_32"; WsServerPort = 205; WsClientAE = "L17_WS_CLIENT_32"; WsClientPort = 1001; RoutingServerAE = "L17_ROUTER_32"; RoutingServerPort = 206; #elif LTV175_CONFIG ServerAE = "L175_SERVER32"; ServerPort = 304; ClientAE = "L175_CLIENT32"; ClientPort = 1000; StorageServerAE = "L175_PACS_SCP32"; StorageServerPort = 504; WorklistServerAE = "L175_MWL_SCP32"; WorklistServerPort = 604; WsServerAE = "L175_WS_SERVER32"; WsServerPort = 305; WsClientAE = "L175_WS_CLIENT32"; WsClientPort = 1001; //RoutingServerAE = "L175_ROUTER32"; //RoutingServerPort = 306; BrokerHostPort = 8731; #elif LTV18_CONFIG ServerAE = "L18_SERVER32"; ServerPort = 304; ClientAE = "L18_CLIENT32"; ClientPort = 1000; StorageServerAE = "L18_PACS_SCP32"; StorageServerPort = 504; WorklistServerAE = "L18_MWL_SCP32"; WorklistServerPort = 604; WsServerAE = "L18_WS_SERVER32"; WsServerPort = 305; WsClientAE = "L18_WS_CLIENT32"; WsClientPort = 1001; //RoutingServerAE = "L18_ROUTER32"; //RoutingServerPort = 306; BrokerHostPort = 8731; #elif LTV19_CONFIG ServerAE = "L19_SERVER32"; ServerPort = 324; ClientAE = "L19_CLIENT32"; ClientPort = 1020; StorageServerAE = "L19_PACS_SCP32"; StorageServerPort = 524; WorklistServerAE = "L19_MWL_SCP32"; WorklistServerPort = 624; WsServerAE = "L19_WS_SERVER32"; WsServerPort = 325; WsClientAE = "L19_WS_CLIENT32"; WsClientPort = 1021; //RoutingServerAE = "L19_ROUTER32"; //RoutingServerPort = 306; BrokerHostPort = 8751; #elif LTV20_CONFIG ServerAE = "L20_SERVER32"; ServerPort = 324; ClientAE = "L20_CLIENT32"; ClientPort = 1020; StorageServerAE = "L20_PACS_SCP32"; StorageServerPort = 524; WorklistServerAE = "L20_MWL_SCP32"; WorklistServerPort = 624; WsServerAE = "L20_WS_SERVER32"; WsServerPort = 325; WsClientAE = "L20_WS_CLIENT32"; WsClientPort = 1021; //RoutingServerAE = "L20_ROUTER32"; //RoutingServerPort = 306; BrokerHostPort = 8751; #endif StartServer = true; StorageStartServer = true; WsStartServer = true; WorklistStartServer = true; // RoutingStartServer = true; } else { #if LTV17_CONFIG ServerAE = "L17_SERVER_64"; ServerPort = 214; ClientAE = "L17_CLIENT_64"; ClientPort = 1010; WsServerAE = "L17_WS_SERVER_64"; WsServerPort = 215; WsClientAE = "L17_WS_CLIENT_64"; WsClientPort = 1011; RoutingServerAE = "L17_ROUTER_64"; RoutingServerPort = 216; #elif LTV175_CONFIG ServerAE = "L175_SERVER64"; ServerPort = 314; ClientAE = "L175_CLIENT64"; ClientPort = 1010; StorageServerAE = "L175_PACS_SCP64"; StorageServerPort = 514; WorklistServerAE = "L175_MWL_SCP_64"; WorklistServerPort = 614; WsServerAE = "L175_WS_SERVER64"; WsServerPort = 315; WsClientAE = "L175_WS_CLIENT64"; WsClientPort = 1011; // RoutingServerAE = "L175_ROUTER64"; // RoutingServerPort = 316; #elif LTV18_CONFIG ServerAE = "L18_SERVER64"; ServerPort = 314; ClientAE = "L18_CLIENT64"; ClientPort = 1010; StorageServerAE = "L18_PACS_SCP64"; StorageServerPort = 514; WorklistServerAE = "L18_MWL_SCP_64"; WorklistServerPort = 614; WsServerAE = "L18_WS_SERVER64"; WsServerPort = 315; WsClientAE = "L18_WS_CLIENT64"; WsClientPort = 1011; // RoutingServerAE = "L18_ROUTER64"; // RoutingServerPort = 316; #elif LTV19_CONFIG ServerAE = "L19_SERVER64"; ServerPort = 334; ClientAE = "L19_CLIENT64"; ClientPort = 1030; StorageServerAE = "L19_PACS_SCP64"; StorageServerPort = 534; WorklistServerAE = "L19_MWL_SCP_64"; WorklistServerPort = 634; WsServerAE = "L19_WS_SERVER64"; WsServerPort = 335; WsClientAE = "L19_WS_CLIENT64"; WsClientPort = 1031; // RoutingServerAE = "L19_ROUTER64"; // RoutingServerPort = 316; BrokerHostPort = 8761; #elif LTV20_CONFIG ServerAE = "L20_SERVER64"; ServerPort = 334; ClientAE = "L20_CLIENT64"; ClientPort = 1030; StorageServerAE = "L20_PACS_SCP64"; StorageServerPort = 534; WorklistServerAE = "L20_MWL_SCP64"; WorklistServerPort = 634; WsServerAE = "L20_WS_SERVER64"; WsServerPort = 335; WsClientAE = "L20_WS_CLIENT64"; WsClientPort = 1031; // RoutingServerAE = "L20_ROUTER64"; // RoutingServerPort = 316; BrokerHostPort = 8761; #endif StartServer = true; StorageStartServer = true; WsStartServer = true; WorklistStartServer = true; // RoutingStartServer = true; #if LEADTOOLS_V175_OR_LATER BrokerHostPort = 8800; #endif } }