DbRetrieveClient Class

Summary
Performs DICOM Instance retrieve operations against a DICOM database.
Syntax
C#
VB
C++
public class DbRetrieveClient : RetrieveClient 
  
Public Class DbRetrieveClient  
   Inherits RetrieveClient 
public ref class DbRetrieveClient : public RetrieveClient  
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.