コード例 #1
0
ファイル: AeTitle.cs プロジェクト: sakpung/webstudy
        public void Add(AeInfo aeInfo)
        {
            if (aeInfo is AeInfoExtended)
            {
                _Agent.Add(aeInfo as AeInfoExtended);
            }
            else
            {
                AeInfoExtended extended = new AeInfoExtended();

                extended.Address = aeInfo.Address;
                extended.AETitle = aeInfo.AETitle;
                extended.Port    = aeInfo.Port;
                // extended.UseSecurePort = aeInfo.SecurePort != 0;
                extended.SecurePort      = aeInfo.SecurePort;
                extended.ClientPortUsage = aeInfo.ClientPortUsage;
#if LEADTOOLS_V20_OR_LATER
                extended.LastAccessDate = aeInfo.LastAccessDate;
#endif
                _Agent.Add(extended);
            }
        }
コード例 #2
0
ファイル: JobManager.cs プロジェクト: sakpung/webstudy
        public void Start(ForwardOptions options)
        {
            try
            {
                _AeInfo = _aeAgent.GetAeTitle(options.ForwardTo);
                if (_AeInfo != null)
                {
                    IPAddress address = IPAddress.None;

                    if (!IPAddress.TryParse(_AeInfo.Address, out address))
                    {
                        IPHostEntry host = Dns.GetHostEntry(_AeInfo.Address);

                        if (host.AddressList.Length > 0)
                        {
                            address = host.AddressList[0];
                        }
                    }

                    _Scp = new DicomScp(address, _AeInfo.AETitle, _AeInfo.Port);
                    if (options.Forward != null)
                    {
                        FixUpJob(options.Forward);
                        Scheduler.SubmitJob(options.Forward, new Action <Job>(Forward));
                    }

                    if (options.Clean != null)
                    {
                        FixUpJob(options.Clean);
                        Scheduler.SubmitJob(options.Clean, new Action <Job>(Clean));
                    }
                }
                _Options = options;
            }
            catch { }
        }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
        private void UpdateSearchDictionary()
        {
            if (_clientInformationList == null)
            {
                return;
            }

            // Dictionary<string, ClientInformation> d = new Dictionary<string, ClientInformation>();

            if (_searchDictionary == null)
            {
                _searchDictionary = new Dictionary <string, ClientInformation>();
            }
            _searchDictionary.Clear();

            foreach (var value in _clientInformationList.ClientDictionary)
            {
                ClientInformation ci = value.Value;
                AeInfoExtended    ae = ci.Client;

                bool contains = true;

                // AE Title
                if (contains)
                {
                    string aeTitle = textBoxAeTitle.Text.Trim();
                    if (!string.IsNullOrWhiteSpace(aeTitle))
                    {
                        contains = ae.AETitle.CaseInsensitiveContains(aeTitle);
                    }
                }

                // Alias
                if (contains)
                {
                    string friendlyName = textBoxAlias.Text.Trim();
                    if (!string.IsNullOrWhiteSpace(friendlyName))
                    {
                        contains = ae.FriendlyName.CaseInsensitiveContains(friendlyName);
                    }
                }

                // Address
                if (contains)
                {
                    string address = textBoxAddress.Text.Trim();
                    if (!string.IsNullOrWhiteSpace(address))
                    {
                        contains = ae.Address.CaseInsensitiveContains(address);
                    }
                }

                // Subnet Mask
                if (contains)
                {
                    string subnetMask = textBoxSubnetMask.Text.Trim();
                    if (!string.IsNullOrWhiteSpace(subnetMask))
                    {
                        contains = ae.Address.CaseInsensitiveContains(subnetMask);
                    }
                }

                // Port
                if (contains)
                {
                    string port = textBoxPort.Text.Trim();
                    if (!string.IsNullOrWhiteSpace(port))
                    {
                        string stringPort = ae.Port.ToString();
                        contains = stringPort.CaseInsensitiveContains(port);
                    }
                }

                // Secure Port
                if (contains)
                {
                    string securePort = textBoxSecurePort.Text.Trim();
                    if (!string.IsNullOrWhiteSpace(securePort))
                    {
                        string stringPort = ae.SecurePort.ToString();
                        contains = stringPort.CaseInsensitiveContains(securePort);
                    }
                }

                // Port Usage
                if (contains)
                {
                    if (comboBoxPortUsage.SelectedItem is ClientPortUsageType)
                    {
                        ClientPortUsageType clientPortUsage = (ClientPortUsageType)comboBoxPortUsage.SelectedItem;

                        if (clientPortUsage != ClientPortUsageType.None)
                        {
                            contains = (ae.ClientPortUsage == clientPortUsage);
                        }
                    }
                }

                // Delete
                if (contains)
                {
                    if (this.checkBoxDelete.CheckState != CheckState.Indeterminate)
                    {
                        bool containsPermission = ci.Permissions.Contains("Delete");
                        contains =
                            (containsPermission && (checkBoxDelete.CheckState == CheckState.Checked)) ||
                            (!containsPermission && (checkBoxDelete.CheckState != CheckState.Checked));
                    }
                }

                // Overwrite
                if (contains)
                {
                    if (this.checkBoxOverwrite.CheckState != CheckState.Indeterminate)
                    {
                        bool containsPermission = ci.Permissions.Contains("Overwrite");
                        contains =
                            (containsPermission && (checkBoxOverwrite.CheckState == CheckState.Checked)) ||
                            (!containsPermission && (checkBoxOverwrite.CheckState != CheckState.Checked));
                    }
                }

                // Update
                if (contains)
                {
                    if (this.checkBoxUpdate.CheckState != CheckState.Indeterminate)
                    {
                        bool containsPermission = ci.Permissions.Contains("Update");
                        contains =
                            (containsPermission && (checkBoxUpdate.CheckState == CheckState.Checked)) ||
                            (!containsPermission && (checkBoxUpdate.CheckState != CheckState.Checked));
                    }
                }

                // Last Access
                if (contains)
                {
                    if (dateTimePickerStartDate.Checked)
                    {
                        contains = (ae.LastAccessDate >= dateTimePickerStartDate.Value);
                    }
                }

                if (contains)
                {
                    if (dateTimePickerEndDate.Checked)
                    {
                        DateTime myEndDate = dateTimePickerEndDate.Value;
                        myEndDate = myEndDate.AddDays(1).AddTicks(-1);
                        contains  = (ae.LastAccessDate <= myEndDate);
                    }
                }

                //
                if (contains)
                {
                    _searchDictionary.Add(value.Key, value.Value);
                }
            }
            UpdatePaginationMaxPageNumber();
            UpdateUI();
        }