public void Initialize(PatientUpdaterOptions options, IAeManagementDataAccessAgent accessAgent)
        {
            _Options = options;

            // Request Dataset Validation
            checkBoxStation.Checked     = _Options.ValidateStationName;
            checkBoxOperator.Checked    = _Options.ValidateOperatorsName;
            checkBoxTransaction.Checked = _Options.ValidateTransactionUID;
            checkBoxDate.Checked        = _Options.ValidateDate;
            checkBoxTime.Checked        = _Options.ValidateTime;
            checkBoxDescription.Checked = _Options.ValidateDescription;
            checkBoxReason.Checked      = _Options.ValidateReason;

            // AutoUpdate
            checkBoxAutoUpdate.Checked = _Options.EnableAutoUpdate;

            // AutoUpdate Retry
            checkBoxRetry.Checked    = _Options.EnableRetry;
            numericUpDownDays.Value  = Convert.ToDecimal(_Options.RetryDays);
            numericUpDownsSecs.Value = Convert.ToDecimal(_Options.RetrySeconds);
            textBoxDir.Text          = _Options.RetryDirectory;

            // AutoUpdate Messages
            GetAddAutoUpdateOptions(listViewPatientUpdaterMessages, _Options.AutoUpdateOptions);

            // AutoUpdate Advanced
            checkBoxCustomAE.Checked   = _Options.UseCustomAE;
            textBoxCustomAE.Text       = _Options.AutoUpdateAE;
            numericUpDownThreads.Value = Convert.ToDecimal(_Options.AutoUpdateThreads);

            _AccessAgent = accessAgent;
            EnableAutoUpdate();
        }
Example #2
0
        public void InitializeDatabase()
        {
            System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(Module.ServiceDirectory);

            if (!DataAccessServices.IsDataAccessServiceRegistered <IAeManagementDataAccessAgent>())
            {
                _ConfigView        = new AeManagementDataAccessConfigurationView(configuration, null, Module.ServiceName);
                _aeManagementAgent = DataAccessFactory.GetInstance(_ConfigView).CreateDataAccessAgent <IAeManagementDataAccessAgent>();
                DataAccessServices.RegisterDataAccessService <IAeManagementDataAccessAgent>(_aeManagementAgent);
            }
            else
            {
                _aeManagementAgent = DataAccessServices.GetDataAccessService <IAeManagementDataAccessAgent>();
            }

            if (!DataAccessServices.IsDataAccessServiceRegistered <IStorageDataAccessAgent>())
            {
                _StorageAgent = DataAccessFactory.GetInstance(new StorageDataAccessConfigurationView(configuration, null, Module.ServiceName)).CreateDataAccessAgent <IStorageDataAccessAgent>();
                DataAccessServices.RegisterDataAccessService <IStorageDataAccessAgent>(_StorageAgent);
            }
            else
            {
                _StorageAgent = DataAccessServices.GetDataAccessService <IStorageDataAccessAgent>();
            }
        }
Example #3
0
 public JobManager(ForwardOptions options, IForwardDataAccessAgent fagent, IAeManagementDataAccessAgent aagent, IStorageDataAccessAgent sagent)
 {
     _Options      = options;
     _forwardAgent = fagent;
     _aeAgent      = aagent;
     _storageAgent = sagent;
 }
Example #4
0
        public bool CanAccessDatabase(out string error)
        {
            error = string.Empty;
            bool ret = false;

            try
            {
                System.Configuration.Configuration configuration     = DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(ServerConfig.ServiceDirectory);
                IAeManagementDataAccessAgent       aeManagementAgent = GetAgent <IAeManagementDataAccessAgent>(configuration, new AeManagementDataAccessConfigurationView(configuration, null, ServerConfig.DisplayName));

                bool bContinue = true;
                if (aeManagementAgent == null)
                {
                    error     = string.Format("{0} {1}", AssemblyName, "Cannot create IAeManagementDataAccessAgent");
                    bContinue = false;
                }

                if (bContinue)
                {
                    aeManagementAgent.GetAeTitle("notUsed");
                }
            }
            catch (Exception e)
            {
                error = string.Format("{0} {1}", AssemblyName, e.Message);
            }

            ret = string.IsNullOrEmpty(error);
            return(ret);
        }
Example #5
0
        public bool CanAccessDatabase(out string error)
        {
            error = string.Empty;
            bool ret = false;

            try
            {
                System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(Module.ServiceDirectory);

                IStorageDataAccessAgent      storageAgent      = GetAgent <IStorageDataAccessAgent>(configuration, new StorageDataAccessConfigurationView(configuration, null, Module.ServiceName));
                IAeManagementDataAccessAgent aeManagementAgent = GetAgent <IAeManagementDataAccessAgent>(configuration, new AeManagementDataAccessConfigurationView(configuration, null, Module.ServiceName));
                IOptionsDataAccessAgent      optionsAgent      = GetAgent <IOptionsDataAccessAgent>(configuration, new OptionsDataAccessConfigurationView(configuration, null, Module.ServiceName));


                bool bContinue = true;
                if (aeManagementAgent == null)
                {
                    error     = string.Format("{0} {1}", AssemblyName, "Cannot create IAeManagementDataAccessAgent");
                    bContinue = false;
                }

                if (bContinue)
                {
                    if (storageAgent == null)
                    {
                        error     = string.Format("{0} {1}", AssemblyName, "Cannot create IStorageDataAccessAgent");
                        bContinue = false;
                    }
                }

                if (bContinue)
                {
                    if (optionsAgent == null)
                    {
                        error     = string.Format("{0} {1}", AssemblyName, "Cannot create IOptionsDataAccessAgent");
                        bContinue = false;
                    }
                }

                if (bContinue)
                {
                    storageAgent.MaxQueryResults = 10;
                    storageAgent.IsPatientsExists("patientIdNotUsed");

                    aeManagementAgent.GetAeTitle("notUsed");

                    optionsAgent.GetDefaultOptions();
                }
            }
            catch (Exception e)
            {
                error = string.Format("{0} {1}", AssemblyName, e.Message);
            }

            ret = string.IsNullOrEmpty(error);
            return(ret);
        }
        public void RunView(ForwardManagerConfigurationView view, AdvancedSettings settings)
        {
            ForwardOptions clonedOptions;

            _View     = view;
            _Settings = settings;

            if (!DataAccessServices.IsDataAccessServiceRegistered <IAeManagementDataAccessAgent>())
            {
                throw new InvalidOperationException(typeof(IAeManagementDataAccessAgent).Name + " is not registered.");
            }

            _AccessAgent = DataAccessServices.GetDataAccessService <IAeManagementDataAccessAgent>();

            if (settings != null)
            {
                try
                {
                    _Options = _Settings.GetAddInCustomData <ForwardOptions>(_addinName, _customDataName);
                    if (_Options == null)
                    {
                        _Options = new ForwardOptions();
                        _Settings.SetAddInCustomData <ForwardOptions>(_addinName, _customDataName, _Options);
                        _Settings.Save();
                    }
                }
                catch (Exception e)
                {
                    Logger.Global.Exception("Forwarder", e);
                    if (_Options == null)
                    {
                        _Options = new ForwardOptions();
                    }
                }

                clonedOptions = Clone(_Options);
                _View.Initialize(clonedOptions);
                _View.Enabled = false;
            }
            _View.SetAeTitles(_AccessAgent.GetAeTitles());

            _View.Forward         += new EventHandler <ForwardMessageEventArgs>(View_Forward);
            _View.Clean           += new EventHandler <SendMessageEventArgs>(View_Clean);
            _View.Reset           += new EventHandler <ResetEventArgs>(View_Reset);
            _View.SettingsChanged += new EventHandler(View_SettingsChanged);

#if LEADTOOLS_V18_OR_LATER
            _View.CancelForward += new EventHandler <EventArgs>(View_CancelForward);
            _View.CancelClean   += new EventHandler <EventArgs>(View_CancelClean);
#endif // #if LEADTOOLS_V18_OR_LATER
            EventBroker.Instance.Subscribe <ClientAddedEventArgs>(new EventHandler <ClientAddedEventArgs>(OnClientAdded));
            EventBroker.Instance.Subscribe <ClientRemovedEventArgs>(new EventHandler <ClientRemovedEventArgs>(OnClientRemoved));
            EventBroker.Instance.Subscribe <ClientUpdatedEventArgs>(new EventHandler <ClientUpdatedEventArgs>(OnClientUpdated));
        }
Example #7
0
        public void Initialize(AutoCopyOptions options, int autocopyRelation, IAeManagementDataAccessAgent accessAgent)
        {
            AutocopyRelation = autocopyRelation;
            _Options         = options;

            if (_Options != null)
            {
                checkBoxAutoCopy.Checked   = _Options.EnableAutoCopy;
                checkBoxCustomAE.Checked   = _Options.UseCustomAE;
                textBoxCustomAE.Text       = _Options.AutoCopyAE;
                numericUpDownThreads.Value = _Options.AutoCopyThreads;
            }
            _AccessAgent = accessAgent;
            EnableAutoCopy();
        }
Example #8
0
        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);
        }
Example #9
0
        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);
            }
        }
Example #10
0
        public void RunView(AutoCopyView view, AdvancedSettings settings)
        {
            AutoCopyOptions clonedOptions;

            _view     = view;
            _Settings = settings;


            if (!DataAccessServices.IsDataAccessServiceRegistered <IAeManagementDataAccessAgent> ( ))
            {
                throw new InvalidOperationException(typeof(IAeManagementDataAccessAgent).Name + " is not registered.");
            }

            _aeAccessAgent = DataAccessServices.GetDataAccessService <IAeManagementDataAccessAgent> ( );

            if (settings != null)
            {
                try
                {
                    _Options = _Settings.GetAddInCustomData <AutoCopyOptions>("Auto Copy", "AutoCopyOptions");
                    if (_Options == null)
                    {
                        _Options = new AutoCopyOptions();
                        _Settings.SetAddInCustomData <AutoCopyOptions>("Auto Copy", "AutoCopyOptions", _Options);
                        _Settings.Save();
                    }
                }
                catch (Exception e)
                {
                    Logger.Global.Exception("Auto Copy", e);
                    if (_Options == null)
                    {
                        _Options = new AutoCopyOptions();
                    }
                }

                clonedOptions = Clone(_Options);
                view.Initialize(clonedOptions, AUTOCOPY_RELATION, _aeAccessAgent);
                _view.SettingsChanged += new EventHandler(View_SettingsChanged);
            }

            EventBroker.Instance.Subscribe <ClientAddedEventArgs>(new EventHandler <ClientAddedEventArgs>(OnClientAdded));
            EventBroker.Instance.Subscribe <ClientRemovedEventArgs>(new EventHandler <ClientRemovedEventArgs>(OnClientRemoved));
        }
        public void UpdateSettings(AdvancedSettings settings)
        {
            ForwardOptions clonedOptions;

            _Settings = settings;

            try
            {
                _Options = _Settings.GetAddInCustomData <ForwardOptions>(_addinName, _customDataName);
                if (_Options == null)
                {
                    _Options = new ForwardOptions();
                    _Settings.SetAddInCustomData <ForwardOptions>(_addinName, _customDataName, _Options);
                    _Settings.Save();
                }
            }
            catch (Exception e)
            {
                Logger.Global.Exception("Forwarder", e);
                if (_Options == null)
                {
                    _Options = new ForwardOptions();
                }
            }

            clonedOptions = Clone(_Options);
            _View.Initialize(clonedOptions);
            _View.Enabled = true;

            if (_AccessAgent == null)
            {
                _AccessAgent = DataAccessServices.GetDataAccessService <IAeManagementDataAccessAgent>();
            }

            _View.SetAeTitles(_AccessAgent.GetAeTitles());
        }
Example #12
0
        void OnUpdateServerSettings(object sender, EventArgs e)
        {
            if (_view != null)
            {
                IAeManagementDataAccessAgent         agent            = DataAccessServices.GetDataAccessService <IAeManagementDataAccessAgent>();
                IPermissionManagementDataAccessAgent permissionsAgent = DataAccessServices.GetDataAccessService <IPermissionManagementDataAccessAgent>();

#if LEADTOOLS_V20_OR_LATER
                IOptionsDataAccessAgent optionsAgent = DataAccessServices.GetDataAccessService <IOptionsDataAccessAgent>();

                if (optionsAgent != null)
                {
                    ClientConfigurationOptions clientConfigurationOptions = optionsAgent.Get <ClientConfigurationOptions>(ClientConfigurationOptionsKeyName, new ClientConfigurationOptions());
                    if (clientConfigurationOptions != null)
                    {
                        View.Options = clientConfigurationOptions;
                    }
                }
#endif // #if LEADTOOLS_V20_OR_LATER

                AeInfoExtended[] aeInfoExtendedArray = agent.GetAeTitles();
                List <string>    aeTitlesInDB        = new List <string>();

                foreach (AeInfoExtended ae in aeInfoExtendedArray)
                {
                    ClientInformation info = (from i in ServerState.Instance.ClientList.Items
                                              where i.Client.AETitle == ae.AETitle
                                              select i).FirstOrDefault();

                    //
                    // Only add items that existed when the database was first queried. If an ae title was added outside of this dialog
                    //  it will be ignored.
                    //
                    if (info != null)
                    {
                        aeTitlesInDB.Add(ae.AETitle.ToUpper());
                    }
                }

                // Updates and adds
                foreach (ClientInformation ci in _view.ClientInformationList.Items)
                {
                    string aeTitle = ci.Client.AETitle;
                    if (aeTitlesInDB.Contains(aeTitle, StringComparer.InvariantCultureIgnoreCase))
                    {
                        // update
                        ClientInformation ciPrevious = null;
                        ServerState.Instance.ClientList.ClientDictionary.TryGetValue(aeTitle, out ciPrevious);

                        if (!ciPrevious.Equals(ci))
                        {
                            agent.Update(aeTitle, ci.Client);
                        }
                        aeTitlesInDB.Remove(aeTitle.ToUpper());
                        try
                        {
                            EventBroker.Instance.PublishEvent <ClientUpdatedEventArgs>(this, new ClientUpdatedEventArgs(aeTitle, ci.Client));
                        }
                        catch { }
                    }
                    else
                    {
                        // insert
                        agent.Add(ci.Client);
                        try
                        {
                            EventBroker.Instance.PublishEvent <ClientAddedEventArgs>(this, new ClientAddedEventArgs(ci.Client));
                        }
                        catch { }
                    }
                    permissionsAgent.DeleteUserPermission(null, aeTitle);
                    foreach (string permissionName in ci.Permissions)
                    {
                        permissionsAgent.AddUserPermission(permissionName, aeTitle);
                    }
                }

                // Finally, remove the deleted AE titles from the database
                foreach (string aeTitle in aeTitlesInDB)
                {
                    agent.Remove(aeTitle);
                    try
                    {
                        EventBroker.Instance.PublishEvent <ClientRemovedEventArgs>(this, new ClientRemovedEventArgs(aeTitle));
                    }
                    catch { }
                }

                ServerState.Instance.ClientList = new ClientInformationList(_view.ClientInformationList);
            }
        }
Example #13
0
 public AeTitle(IAeManagementDataAccessAgent agent)
 {
     _Agent = agent;
 }
Example #14
0
        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();
            }
        }
Example #15
0
 public void InitializeDatabase()
 {
     _ConfigView  = new AeManagementDataAccessConfigurationView(DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(Module.ServiceDirectory), null, Module.ServiceName);
     _AccessAgent = DataAccessFactory.GetInstance(_ConfigView).CreateDataAccessAgent <IAeManagementDataAccessAgent>();
 }