Performs query operations against DICOM servers.
             
             
            
Syntax
| Visual Basic (Declaration) |   | 
|---|
Public Class PacsQueryClient 
   Inherits QueryClient  | 
 
| C++/CLI |   | 
|---|
public ref class PacsQueryClient : public QueryClient   | 
 
 
             
             
            
Example
 
             
| Visual Basic |  Copy Code | 
|---|
<Test> _ 
Public Sub QueryPACS() 
  Leadtools.Examples.Support.Unlock() 
  Dim clientInfo As AeInfo = New AeInfo() 
  Dim scpInfo As DicomScp = New DicomScp() 
 
  clientInfo.Address = Dns.GetHostName()  
  clientInfo.AETitle = "TEST_CLIENT" 
  clientInfo.Port = 1000 
 
 
  scpInfo.AETitle = "LEAD_SERVER" 
  scpInfo.Port = 104 
  scpInfo.Timeout = 30 
 
  Dim addressFound As Boolean 
  Dim addresses As IPAddress() 
 
  addressFound = False 
  addresses = Dns.GetHostAddresses (Dns.GetHostName ()) 
 
  For Each address As IPAddress In addresses 
      
     If address.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork Then 
       addressFound = True 
 
       scpInfo.PeerAddress = address 
 
       Exit For 
     End If 
  Next address 
 
  If (Not addressFound) Then 
     Throw New ArgumentException("Couldn't resolve a valid host Address. Address must conform to IP version 4") 
  End If 
 
  Dim client As PacsQueryClient = New PacsQueryClient(clientInfo, scpInfo) 
 
  client.EnableLog = True 
  client.LogFileName = ("c:\DicomLog.txt") 
 
  PerformClientQuery(client) 
End Sub 
 
Public Sub PerformClientQuery(ByVal client As QueryClient) 
  Dim studiesQuery As FindQuery = New FindQuery() 
 
 
  Dim studies As ClientQueryDataSet = client.FindStudies(studiesQuery) 
 
 
  If studies.Studies.Count > 0 Then 
     Dim study As ClientQueryDataSet.StudiesRow = studies.Studies(0) 
     Dim seriesQuery As FindQuery = New FindQuery() 
 
 
     seriesQuery.StudyInstanceUID = study.StudyInstanceUID 
 
     Dim series As ClientQueryDataSet = client.FindSeries(seriesQuery) 
 
     For Each seriesRow As ClientQueryDataSet.SeriesRow In series.Series 
       Dim imagesQuery As FindQuery = New FindQuery() 
 
 
       imagesQuery.SeriesInstanceUID = seriesRow.SeriesInstanceUID 
 
       Dim images As ClientQueryDataSet = client.FindImages(imagesQuery) 
 
 
       For Each image As ClientQueryDataSet.ImagesRow In images.Images 
         Console.WriteLine("SOPInstanceUID: {0}", image.SOPInstanceUID) 
 
         If (Not image.IsSeriesInstanceUIDNull()) Then 
           Console.WriteLine("SeriesInstanceUID: {0}", image.SeriesInstanceUID) 
         End If 
 
         If (Not image.IsStudyInstanceUIDNull()) Then 
           Console.WriteLine("StudyInstanceUID: {0}", image.StudyInstanceUID) 
         End If 
       Next image 
     Next seriesRow 
  End If 
End Sub | 
 
| C# |  Copy Code | 
|---|
public void QueryPACS()  {     Leadtools.Examples.Support.Unlock();       AeInfo clientInfo = new AeInfo();     DicomScp scpInfo = new DicomScp();       clientInfo.Address = Dns.GetHostName(); //local machine     clientInfo.AETitle = "TEST_CLIENT";     clientInfo.Port = 1000;         scpInfo.AETitle = "LEAD_SERVER";     scpInfo.Port = 104;     scpInfo.Timeout = 30;       bool addressFound;     IPAddress [] addresses ;       addressFound = false;     addresses = Dns.GetHostAddresses ( Dns.GetHostName ( ) ) ;       foreach (IPAddress address in addresses)     {        //we need to get an IP V4, won't work with IP V6        if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)        {           addressFound = true;             scpInfo.PeerAddress = address;             break;        }     }       if (!addressFound)     {        throw new ArgumentException("Couldn't resolve a valid host Address. Address must conform to IP version 4");     }       PacsQueryClient client = new PacsQueryClient(clientInfo, scpInfo);       client.EnableLog = true;     client.LogFileName = ( @"c:\DicomLog.txt" ) ;       PerformClientQuery(client);  }    public void PerformClientQuery(QueryClient client)  {     FindQuery studiesQuery = new FindQuery();         ClientQueryDataSet studies = client.FindStudies(studiesQuery);         if (studies.Studies.Count > 0)     {        ClientQueryDataSet.StudiesRow study = studies.Studies[0];        FindQuery seriesQuery = new FindQuery();            seriesQuery.StudyInstanceUID = study.StudyInstanceUID;          ClientQueryDataSet series = client.FindSeries(seriesQuery);          foreach (ClientQueryDataSet.SeriesRow seriesRow in series.Series)        {           FindQuery imagesQuery = new FindQuery();               imagesQuery.SeriesInstanceUID = seriesRow.SeriesInstanceUID;             ClientQueryDataSet images = client.FindImages(imagesQuery);               foreach (ClientQueryDataSet.ImagesRow image in images.Images)           {              Console.WriteLine("SOPInstanceUID: {0}", image.SOPInstanceUID);                if (!image.IsSeriesInstanceUIDNull())              {                 Console.WriteLine("SeriesInstanceUID: {0}", image.SeriesInstanceUID);              }                if (!image.IsStudyInstanceUIDNull())              {                 Console.WriteLine("StudyInstanceUID: {0}", image.StudyInstanceUID);              }           }        }     }  } | 
 
  
            
            Remarks
            
Inheritance Hierarchy
 
            
Requirements
Target Platforms: Microsoft .NET Framework 3.0,  Windows XP, Windows Server 2003 family, Windows Server 2008 family
 
            
            
See Also