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); } }
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 { } }
/// <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); } }
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(); }