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