←Select platform

PacsRetrieveClient Class

Summary

Performs DICOM Instance retrieve operations against DICOM servers.

Syntax

C#
VB
C++
public class PacsRetrieveClient : RetrieveClient 

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
using LeadtoolsExamples.Common; 
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 RetrieveLocalDatabase() 
{ 
   Leadtools.Examples.Support.SetLicense(); 
 
   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"; 
} 
Imports LeadtoolsExamples.Common 
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 RetrieveLocalDatabase() 
   Leadtools.Examples.Support.SetLicense() 
   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 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Medical.Workstation.Client Assembly