←Select platform

FindImages(FindQuery) Method

Summary

Overloaded. Runs an image-based query with the specified parameters.

Syntax

C#
VB
C++
public virtual [Leadtools.Dicom.DicomDataSet[]](../di/dicomdataset.html) FindImages(  
   Leadtools.Dicom.Scu.Common.FindQuery query 
) 
Public Overloads Overridable Function FindImages( _ 
   ByVal query As Leadtools.Dicom.Scu.Common.FindQuery _ 
) As Leadtools.Dicom.DicomDataSet() 

Parameters

query
The Leadtools.Dicom.Scu.Common.FindQuery which contains the parameters for the query.

Return Value

An Array of Leadtools.Dicom.DicomDataSet objects which contains the query results.

Remarks

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

If the operation is cancelled this method will throw a ClientCommunicationCanceled exception.

Example

C#
VB
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

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.Medical.Workstation.Client Assembly
Click or drag to resize