RetrieveImages Method

Summary

Starts the DICOM DataSets retrieval operation.

Syntax
C#
VB
C++
public IEnumerable<KeyValuePair<string, RetrievedDataSet>> RetrieveImages( 
   string studyInstanceUID, 
   string seriesInstanceUID 
) 
  
Public Function RetrieveImages( _ 
   ByVal studyInstanceUID As String, _ 
   ByVal seriesInstanceUID As String _ 
) As IEnumerable(Of KeyValuePair(Of String,RetrievedDataSet)) 
public: 
IEnumerable<KeyValuePair<String^,RetrievedDataSet^>>^ RetrieveImages(  
   String^ studyInstanceUID, 
   String^ seriesInstanceUID 
)  

Parameters

studyInstanceUID
The Study Instance UID System.String value against which to match the retrieved datasets. This can be null or System.String.Empty.

seriesInstanceUID
The Series Instance UID System.String value against which to match the retrieved datasets. This can be null or System.String.Empty.

Return Value

An System.Collections.IEnumerable of a KeyValuePair Enumerator which holds the DICOM instance SOP Instance UID as its key and a RetrievedDataSet as its value.

Remarks

The InstanceReceived event will be fired when each instance is received.

Calling this method while the Processing property is true results in an InvalidOperationException being thrown.

If the operation is cancelled this method throws a ClientCommunicationCanceled exception.

Example
C#
VB
using LeadtoolsExamples.Common; 
using Leadtools; 
using Leadtools.Examples; 
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:\Users\Public\Documents\LEADTOOLS 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:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

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

Leadtools.Medical.Workstation.Client Assembly