Error processing SSI file
LEADTOOLS Medical (Leadtools.Medical.Workstation.Client assembly)

Show in webframe

DbQueryClient Class






Members 
Performs query operations against a DICOM database.
Object Model
Syntax
'Declaration
 
Public Class DbQueryClient 
   Inherits Leadtools.Medical.Workstation.Client.QueryClient
'Usage
 
Dim instance As DbQueryClient

            

            
public ref class DbQueryClient : public Leadtools.Medical.Workstation.Client.QueryClient 
Example
Copy Code  
Imports Leadtools
         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

         <TestMethod()> _
         Public Sub DatabaseQueryLocal()
#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 FindAddIn is configured properly before using this class.
            Dim client As DbQueryClient = New DbQueryClient(clientInfo, dataAccess)

            client.EnableLog = True
            client.LogFileName = Path.Combine(LEAD_VARS.ImagesDir, "DicomLog.txt")

            PerformClientQuery(client)
         End Sub

         Public Sub PerformClientQuery(ByVal client As QueryClient)
            Dim studiesQuery As FindQuery = New FindQuery()


            Dim studies As DicomDataSet() = client.FindStudies(studiesQuery)


            If studies.Length > 0 Then
               Dim study As DicomDataSet = studies(0)
               Dim seriesQuery As FindQuery = New FindQuery()


               seriesQuery.StudyInstanceUID = study.GetValue(Of String)(DicomTag.StudyInstanceUID, String.Empty)

               Dim series As DicomDataSet() = client.FindSeries(seriesQuery)

               For Each seriesDS As DicomDataSet In series
                  Dim imagesQuery As FindQuery = New FindQuery()


                  imagesQuery.SeriesInstanceUID = seriesDS.GetValue(Of String)(DicomTag.SeriesInstanceUID, String.Empty)

                  Dim images As DicomDataSet() = client.FindImages(imagesQuery)


                  For Each instance As DicomDataSet In images
                     Console.WriteLine("SOPInstanceUID: {0}", instance.GetValue(Of String)(DicomTag.SOPInstanceUID, String.Empty))

                     Console.WriteLine("SeriesInstanceUID: {0}", instance.GetValue(Of String)(DicomTag.SeriesInstanceUID, String.Empty))

                     Console.WriteLine("StudyInstanceUID: {0}", instance.GetValue(Of String)(DicomTag.StudyInstanceUID, String.Empty))
                  Next instance
               Next seriesDS
            End If
         End Sub

         Public NotInheritable Class LEAD_VARS
         Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
         End Class
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;

         [TestMethod]
         public void DatabaseQueryLocal()
         {
#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);
            }

            DbQueryClient client = new DbQueryClient(clientInfo, dataAccess);

            client.EnableLog = true;
            client.LogFileName = Path.Combine(LEAD_VARS.ImagesDir, "DicomLog.txt");

            PerformClientQuery ( client ) ;
         }

         public void PerformClientQuery(QueryClient client)
         {
            FindQuery studiesQuery = new FindQuery();

            DicomEngine.Startup();
            DicomDataSet[] studies = client.FindStudies(studiesQuery);


            if (studies.Length > 0)
            {
               DicomDataSet study = studies[0];
               FindQuery seriesQuery = new FindQuery();


               seriesQuery.StudyInstanceUID = study.GetValue <string> ( DicomTag.StudyInstanceUID, string.Empty ) ;

               DicomDataSet [] series = client.FindSeries(seriesQuery);

               foreach (DicomDataSet seriesDS in series )
               {
                  FindQuery imagesQuery = new FindQuery();


                  imagesQuery.SeriesInstanceUID = seriesDS.GetValue <string> ( DicomTag.SeriesInstanceUID, string.Empty);

                  DicomDataSet[] images = client.FindImages(imagesQuery);


                  foreach (DicomDataSet instance in images)
                  {
                     Console.WriteLine("SOPInstanceUID: {0}", instance.GetValue <string> ( DicomTag.SOPInstanceUID, string.Empty));

                     Console.WriteLine("SeriesInstanceUID: {0}", instance.GetValue <string> ( DicomTag.SeriesInstanceUID, string.Empty));

                     Console.WriteLine("StudyInstanceUID: {0}", instance.GetValue <string> ( DicomTag.StudyInstanceUID, string.Empty));
                  }
               }
            }
            DicomEngine.Shutdown();
         }

         static class LEAD_VARS
         {
         public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
         }
Requirements

Target Platforms

See Also

Reference

DbQueryClient Members
Leadtools.Medical.Workstation.Client.Local Namespace

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