LEADTOOLS Medical (Leadtools.Medical.Workstation.Client assembly)

PacsQueryClient Class

Show in webframe
Example 





Members 
Performs query operations against DICOM servers.
Object Model
Syntax
public class PacsQueryClient : Leadtools.Medical.Workstation.Client.QueryClient 
'Declaration
 
Public Class PacsQueryClient 
   Inherits Leadtools.Medical.Workstation.Client.QueryClient
'Usage
 
Dim instance As PacsQueryClient

            

            
public ref class PacsQueryClient : public Leadtools.Medical.Workstation.Client.QueryClient 
Remarks

The implementation of this class uses the Leadtools.Dicom.Scu.QueryRetrieveScu class to run the queries.

Example
Copy Code  
Imports Leadtools
         Imports Leadtools.Codecs
         Imports Leadtools.Dicom
         Imports Leadtools.Dicom.Scu.Common
         Imports Leadtools.ImageProcessing
         Imports Leadtools.Dicom.AddIn.Common
         Imports Leadtools.Dicom.Scu
         Imports Leadtools.Medical.Workstation.Client
         Imports Leadtools.Medical.Workstation.Client.Local
         Imports Leadtools.Medical.Workstation.Client.Pacs

         Public Sub QueryPACS()
#If LEADTOOLS_V175_OR_LATER Then
                Leadtools.Examples.Support.SetLicense()
#Else
         Leadtools.Examples.Support.Unlock()
#End If ''' #if LEADTOOLS_V175_OR_LATER




            Dim clientInfo As AeInfo = New AeInfo()
            Dim scpInfo As DicomScp = 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

            Dim addressFound As Boolean
            Dim addresses As IPAddress()

            addressFound = False
            addresses = Dns.GetHostAddresses(Dns.GetHostName())

            For Each address As IPAddress In addresses
               'we need to get an IP V4, won't work with IP V6
               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 = Path.Combine(LEAD_VARS.ImagesDir, "DicomLog.txt")

            PerformClientQuery(client)
         End Sub

         Public Sub PerformClientQuery(ByVal client As QueryClient)
            Dim studiesQuery As FindQuery = New FindQuery()


            Dim studies As DicomDataSet() = client.FindStudies(studiesQuery)


            If studies.Length > 0 Then
               Dim study As DicomDataSet = studies(0)
               Dim seriesQuery As FindQuery = New FindQuery()


               seriesQuery.StudyInstanceUID = study.GetValue(Of String)(DicomTag.StudyInstanceUID, String.Empty)

               Dim series As DicomDataSet() = client.FindSeries(seriesQuery)

               For Each seriesDS As DicomDataSet In series
                  Dim imagesQuery As FindQuery = New FindQuery()


                  imagesQuery.SeriesInstanceUID = seriesDS.GetValue(Of String)(DicomTag.SeriesInstanceUID, String.Empty)

                  Dim images As DicomDataSet() = client.FindImages(imagesQuery)


                  For Each instance As DicomDataSet In images
                     Console.WriteLine("SOPInstanceUID: {0}", instance.GetValue(Of String)(DicomTag.SOPInstanceUID, String.Empty))

                     Console.WriteLine("SeriesInstanceUID: {0}", instance.GetValue(Of String)(DicomTag.SeriesInstanceUID, String.Empty))

                     Console.WriteLine("StudyInstanceUID: {0}", instance.GetValue(Of String)(DicomTag.StudyInstanceUID, String.Empty))
                  Next instance
               Next seriesDS
            End If
         End Sub

         Public NotInheritable Class LEAD_VARS
         Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
         End Class
using Leadtools;
         using Leadtools.Codecs;
         using Leadtools.Dicom;
         using Leadtools.Dicom.Scu.Common;
         using Leadtools.ImageProcessing;
         using Leadtools.Dicom.AddIn.Common;
         using Leadtools.Dicom.Scu;
         using Leadtools.Medical.Workstation.Client;
         using Leadtools.Medical.Workstation.Client.Local;
         using Leadtools.Medical.Workstation.Client.Pacs;

         public void QueryPACS()
         {
#if LEADTOOLS_V175_OR_LATER
            Leadtools.Examples.Support.SetLicense();
#else
            Leadtools.Examples.Support.Unlock();
#endif // #if LEADTOOLS_V175_OR_LATER

            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 = Path.Combine(LEAD_VARS.ImagesDir, "DicomLog.txt");

            PerformClientQuery(client);
         }

         public void PerformClientQuery(QueryClient client)
         {
            FindQuery studiesQuery = new FindQuery();


            DicomDataSet[] studies = client.FindStudies(studiesQuery);


            if (studies.Length > 0)
            {
               DicomDataSet study = studies[0];
               FindQuery seriesQuery = new FindQuery();


               seriesQuery.StudyInstanceUID = study.GetValue <string> ( DicomTag.StudyInstanceUID, string.Empty ) ;

               DicomDataSet [] series = client.FindSeries(seriesQuery);

               foreach (DicomDataSet seriesDS in series )
               {
                  FindQuery imagesQuery = new FindQuery();


                  imagesQuery.SeriesInstanceUID = seriesDS.GetValue <string> ( DicomTag.SeriesInstanceUID, string.Empty);

                  DicomDataSet[] images = client.FindImages(imagesQuery);


                  foreach (DicomDataSet instance in images)
                  {
                     Console.WriteLine("SOPInstanceUID: {0}", instance.GetValue <string> ( DicomTag.SOPInstanceUID, string.Empty));

                     Console.WriteLine("SeriesInstanceUID: {0}", instance.GetValue <string> ( DicomTag.SeriesInstanceUID, string.Empty));

                     Console.WriteLine("StudyInstanceUID: {0}", instance.GetValue <string> ( DicomTag.StudyInstanceUID, string.Empty));
                  }
               }
            }
         }

         static class LEAD_VARS
         {
         public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
         }
Requirements

Target Platforms

See Also

Reference

PacsQueryClient Members
Leadtools.Medical.Workstation.Client.Pacs Namespace

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Medical.Workstation.Client requires a Medical toolkit license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features