←Select platform

PacsRetrieveClient Class

Summary

Performs DICOM Instance retrieve operations against DICOM servers.

Remarks

This class supports image retrieval either by moving them into another server or by retrieving them locally.

If the images are retrieved locally you can specify that the retrieved images be stored in a local storage source by setting the StoreRetrievedImages property to true.

Example

C#
VB
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 
 
         <TestMethod()> _ 
         Public Sub RetrieveLocalDatabase() 
#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 PacsRetrieveClient = New PacsRetrieveClient(clientInfo, scpInfo) 
 
            client.LoadDataSetOnRetrieve = False 'Enable this if you need to read information from the DICOM dataset. 
 
            AddHandler client.InstanceMoved, AddressOf client_InstanceMoved 
            client.EnableLog = True 
            client.LogFileName = Path.Combine(LEAD_VARS.ImagesDir, "DicomLog.txt") 
            client.StoreRetrievedImages = True 'This will store the retrieved images into the local database. 
 
            PerformClientRetrieve(client) 
         End Sub 
 
         Sub client_InstanceMoved(ByVal sender As Object, ByVal e As InstanceMovedEventArgs) 
            Console.WriteLine("Number of moved images: {0}", e.Completed) 
         End Sub 
 
         Public Sub PerformClientRetrieve(ByVal client As RetrieveClient) 
            Dim images As IEnumerable(Of KeyValuePair(Of String, RetrievedDataSet)) = client.RetrieveImages("", "") 'perform a wild card search 
 
 
            For Each imageInformation As KeyValuePair(Of String, RetrievedDataSet) In images 
               Console.WriteLine("SOPInstanceUID: {0}", imageInformation.Key) 
               Console.WriteLine(imageInformation.Value.DataSetFilePath) 
               Console.WriteLine("---------------------------------------------") 
            Next imageInformation 
         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 ; 
 
         [TestMethod] 
         public void RetrieveLocalDatabase() 
         { 
#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"); 
            } 
 
            PacsRetrieveClient client = new PacsRetrieveClient(clientInfo, scpInfo); 
 
            client.InstanceMoved += new EventHandler<InstanceMovedEventArgs>(client_InstanceMoved); 
            client.EnableLog = true; 
            client.LogFileName = Path.Combine(LEAD_VARS.ImagesDir, "DicomLog.txt"); 
            client.StoreRetrievedImages = true ; //This will store the retrieved images into the local database. 
            client.LoadDataSetOnRetrieve = false ;//Enable this if you need to read information from the DICOM dataset. 
 
            PerformClientRetrieve(client); 
         } 
 
         void client_InstanceMoved(object sender, InstanceMovedEventArgs e) 
         { 
            Console.WriteLine ( "Number of moved images: {0}", e.Completed ) ; 
         } 
 
         public void PerformClientRetrieve(RetrieveClient client)  
         { 
            IEnumerable <KeyValuePair <string, RetrievedDataSet>> images = client.RetrieveImages ( "", "" ) ; //perform a wild card search 
 
 
            foreach ( KeyValuePair <string, RetrievedDataSet> imageInformation in images )  
            { 
               Console.WriteLine ( "SOPInstanceUID: {0}", imageInformation.Key ) ; 
               Console.WriteLine ( imageInformation.Value.DataSetFilePath ) ; 
               Console.WriteLine("---------------------------------------------" ); 
            } 
         } 
 
         static class LEAD_VARS 
         { 
         public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
         } 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.Medical.Workstation.Client Assembly
Click or drag to resize