Leadtools.Medical.Workstation.Client Namespace > QueryClient Class > FindStudies Method : FindStudies(FindQuery) Method |
public virtual DicomDataSet[] FindStudies( FindQuery query )
'Declaration Public Overloads Overridable Function FindStudies( _ ByVal query As FindQuery _ ) As DicomDataSet()
'Usage Dim instance As QueryClient Dim query As FindQuery Dim value() As DicomDataSet value = instance.FindStudies(query)
public: virtual array<DicomDataSet^>^ FindStudies( FindQuery^ query )
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.
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 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; 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(); 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)); } } } } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }