RetrieveClient Class

Summary
An abstract layer for implementing DICOM Retrieve operations.
Syntax
C#
VB
C++
public abstract class RetrieveClient : BaseClient 
Public MustInherit Class RetrieveClient 
   Inherits BaseClient 
public: 
   ref class RetrieveClient abstract : BaseClient 
Remarks

Inheritors can use this class to provide an abstraction layer for their applications without the need to worry how the retrieve operation is performed.

Derived classes might perform DICOM Communication or any custom method to retrieve the images.

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; 
using Leadtools.Medical.Storage.DataAccessLayer; 
using Leadtools.Medical.DataAccessLayer; 
using Leadtools.Medical.Storage.DataAccessLayer.Configuration; 
 
public void RetrieveLocalDatabase() 
{ 
   Leadtools.Examples.Support.SetLicense(); 
 
   AeInfo clientInfo = new AeInfo(); 
 
 
   clientInfo.Address = Dns.GetHostName(); //local machine 
   clientInfo.AETitle = "TEST_CLIENT"; 
   clientInfo.Port = 1000; 
 
   IStorageDataAccessAgent dataAccess = null; 
   bool fromConfiguration = false; 
 
   if (fromConfiguration) 
   { 
      //Make sure that the Sotrage Data Access is configured before creating an instance. 
      dataAccess = DataAccessFactory.GetInstance(new StorageDataAccessConfigurationView()).CreateDataAccessAgent<IStorageDataAccessAgent>(); 
   } 
   else 
   { 
      string connectionString = @"Data Source=local;Initial Catalog=DicomStorage;Integrated Security=True;User ID=;Password=;Pooling=True"; 
      //or you can directly create the data access object which works with your database 
      dataAccess = new StorageSqlDbDataAccessAgent(connectionString); 
   } 
 
 
   DbRetrieveClient client = new DbRetrieveClient(clientInfo, dataAccess); 
 
   client.InstanceMoved += new EventHandler<InstanceMovedEventArgs>(client_InstanceMoved); 
   client.EnableLog = true; 
   client.LogFileName = Path.Combine(LEAD_VARS.ImagesDir, "DicomLog.txt"); 
   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:\LEADTOOLS21\Resources\Images"; 
} 
Imports LeadtoolsExamples.Common 
Imports Leadtools 
Imports Leadtools.Examples 
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.DataAccessLayer 
Imports Leadtools.Medical.Storage.DataAccessLayer 
Imports Leadtools.Medical.Storage.DataAccessLayer.Configuration 
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() 
 
   clientInfo.Address = Dns.GetHostName() 'local machine 
   clientInfo.AETitle = "TEST_CLIENT" 
   clientInfo.Port = 1000 
   Dim dataAccess As Medical.Storage.DataAccessLayer.IStorageDataAccessAgent 
 
   Dim fromConfiguration As Boolean 
 
   fromConfiguration = False 
   If (fromConfiguration) Then 
 
      'Make sure that the Sotrage Data Access is configured before creating an instance. 
      dataAccess = DataAccessFactory.GetInstance(New StorageDataAccessConfigurationView()).CreateDataAccessAgent(Of IStorageDataAccessAgent)() 
   Else 
 
      Dim connectionString As String = "Data Source=local;Initial Catalog=DicomStorage;Integrated Security=True;User ID=;Password=;Pooling=True" 
      'or you can directly create the data access object which works with your database 
      dataAccess = New StorageSqlDbDataAccessAgent(connectionString) 
   End If 
   'Make sure that the MoveAddIn is configured properly before using this class. 
   Dim client As DbRetrieveClient = New DbRetrieveClient(clientInfo, dataAccess) 
 
   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") 
 
   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)) 
 
   images = 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:\LEADTOOLS21\Resources\Images" 
End Class 
Requirements

Target Platforms

Help Version 21.0.2021.6.30
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Medical.Workstation.Client Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.