private static void HandleError(FindScuBase scu, QueryRequest request, string message)
 {
     if (request.IgnoreFailureOnPartialResults && scu.Results.Any())
     {
         Platform.Log(LogLevel.Info, "Partial results returned with error: {0}", message);
     }
     else
     {
         var fault = new QueryFailedFault {
             Description = message
         };
         throw new FaultException <QueryFailedFault>(fault, fault.Description);
     }
 }
Пример #2
0
        private void buttonQueryScuSearch_Click(object sender, EventArgs e)
        {
            if (_findScu != null)
            {
                if (_findScu.Status == ScuOperationStatus.Running)
                {
                    return;
                }
                _findScu.Dispose();
                _findScu = null;
            }
            var theDoc = new XmlDocument();

            try
            {
                theDoc.LoadXml(textBoxQueryMessage.Text);
                var instanceXml = new InstanceXml(theDoc.DocumentElement, null);
                DicomAttributeCollection queryMessage = instanceXml.Collection;

                if (queryMessage == null)
                {
                    Platform.Log(LogLevel.Error, "Unexpected error parsing query message");
                }

                int maxResults;
                if (!int.TryParse(textBoxQueryScuMaxResults.Text, out maxResults))
                {
                    maxResults = -1;
                }

                IList <DicomAttributeCollection> resultsList;
                if (comboBoxQueryScuQueryType.SelectedIndex == 0)
                {
                    _findScu = new StudyRootFindScu
                    {
                        MaxResults = maxResults
                    };
                    _findScu.BeginFind(textBoxQueryScuLocalAe.Text,
                                       textBoxQueryScuRemoteAe.Text,
                                       textBoxQueryScuRemoteHost.Text,
                                       int.Parse(textBoxQueryScuRemotePort.Text), queryMessage, delegate
                    {
                        foreach (DicomAttributeCollection msg in _findScu.Results)
                        {
                            Platform.Log(LogLevel.Info, msg.DumpString);
                        }
                    }, this);
                }
                else
                {
                    _findScu = new PatientRootFindScu
                    {
                        MaxResults = maxResults
                    };
                    _findScu.BeginFind(textBoxQueryScuLocalAe.Text,
                                       textBoxQueryScuRemoteAe.Text,
                                       textBoxQueryScuRemoteHost.Text,
                                       int.Parse(textBoxQueryScuRemotePort.Text), queryMessage, delegate
                    {
                        foreach (DicomAttributeCollection msg in _findScu.Results)
                        {
                            Platform.Log(LogLevel.Info, msg.DumpString);
                        }
                    }, this);
                }
            }
            catch (Exception x)
            {
                Platform.Log(LogLevel.Error, x, "Unable to perform query");
            }
        }
Пример #3
0
		private void buttonQueryScuSearch_Click(object sender, EventArgs e)
		{
            if (_findScu != null)
            {
                if (_findScu.Status == ScuOperationStatus.Running)
                {
                    return;
                }
                _findScu.Dispose();
                _findScu = null;
            }
		    var theDoc = new XmlDocument();

			try
			{
				theDoc.LoadXml(textBoxQueryMessage.Text);
				var instanceXml = new InstanceXml(theDoc.DocumentElement, null);
				DicomAttributeCollection queryMessage = instanceXml.Collection;

				if (queryMessage == null)
				{
					Platform.Log(LogLevel.Error, "Unexpected error parsing query message");
				}

				int maxResults;
				if (!int.TryParse(textBoxQueryScuMaxResults.Text, out maxResults))
					maxResults = -1;

				IList<DicomAttributeCollection> resultsList;
				if (comboBoxQueryScuQueryType.SelectedIndex == 0)
				{
				    _findScu = new StudyRootFindScu
				                      {
				                          MaxResults = maxResults
				                      };
                    _findScu.BeginFind(textBoxQueryScuLocalAe.Text,
								 textBoxQueryScuRemoteAe.Text,
								 textBoxQueryScuRemoteHost.Text,
								 int.Parse(textBoxQueryScuRemotePort.Text), queryMessage, delegate
								                                                             {
                                                                                                 foreach (DicomAttributeCollection msg in _findScu.Results)
                                                                                                 {
                                                                                                     Platform.Log(LogLevel.Info, msg.DumpString);
                                                                                                 }
								                                                             },this);
				}
				else
				{
                    _findScu = new PatientRootFindScu
				                      {
				                          MaxResults = maxResults
				                      };
                    _findScu.BeginFind(textBoxQueryScuLocalAe.Text,
								 textBoxQueryScuRemoteAe.Text,
								 textBoxQueryScuRemoteHost.Text,
								 int.Parse(textBoxQueryScuRemotePort.Text), queryMessage, delegate
								                                                             {
                                                                                                 foreach (DicomAttributeCollection msg in _findScu.Results)
                                                                                                 {
                                                                                                     Platform.Log(LogLevel.Info, msg.DumpString);
                                                                                                 }
								                                                             },this);
              
				}

			
			}
			catch (Exception x)
			{
				Platform.Log(LogLevel.Error, x, "Unable to perform query");
			}		
		}