LEADTOOLS Medical (Leadtools.Medical.Workstation.Client assembly)

RetrieveClient Class

Show in webframe
Example 





Members 
An abstract layer for implementing DICOM Retrieve operations.
Object Model
Syntax
public abstract class RetrieveClient 
'Declaration
 
Public MustInherit Class RetrieveClient 
'Usage
 
Dim instance As RetrieveClient

            

            
public ref class RetrieveClient abstract 
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
Copy Code  
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()
#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()


            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
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()
         {
#if LEADTOOLS_V175_OR_LATER
            Leadtools.Examples.Support.SetLicense();
#else
            Leadtools.Examples.Support.Unlock();
#endif // #if LEADTOOLS_V175_OR_LATER

            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";
         }
Requirements

Target Platforms

See Also

Reference

RetrieveClient Members
Leadtools.Medical.Workstation.Client Namespace

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Medical.Workstation.Client requires a Medical toolkit license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features