Sends a C-FIND-REQ message to a peer member of a connection defined by Scp. The C-FIND-REQ dataset is provided by Template.
public void Find(
DicomScp Scp,
FindQuery Query,
bool AddOptional,
string TemplateFile
)
Public Overloads Sub Find( _
ByVal Scp As DicomScp, _
ByVal Query As FindQuery, _
ByVal AddOptional As Boolean, _
ByVal TemplateFile As String _
)
public:
void Find(
DicomScp^ Scp,
FindQuery^ Query,
bool AddOptional,
String^ TemplateFile
)
Scp
The peer connection to send the C-FIND-REQ to.
Query
The query information that describes the DICOM datasets to be found.
AddOptional
If set to true
add optional C-FIND-REQ items.
TemplateFile
The template dataset filename used in the C-FIND-REQ.
Finds all instances in the related study and series.
using Leadtools;
using Leadtools.Dicom.Scu;
using Leadtools.Dicom.Scu.Common;
using Leadtools.Dicom;
using Leadtools.Dicom.Common.DataTypes;
public void FindInstances()
{
DicomEngine.Startup();
DicomNet.Startup();
QueryRetrieveScu findInstance = new QueryRetrieveScu();
FindQuery query = new FindQuery();
DicomScp scp = new DicomScp();
//
// Change these parameters to reflect the calling AETitle.
//
findInstance.AETitle = "LEAD_CLIENT";
findInstance.HostPort = 1000;
findInstance.HostAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork);
//
// Change these parameters to reflect the called AETitle (server).
//
scp.AETitle = "MI_SERVER";
scp.Port = 104;
scp.Timeout = 60;
scp.PeerAddress = IPAddress.Parse("10.1.1.96");
query.QueryLevel = QueryLevel.Image;
query.StudyInstanceUID = "1.2.840.114257.3.6.5.41964868";
query.SeriesInstanceUID = "1.2.840.114257.3.6.5.5.4214471";
findInstance.BeforeCFind += new BeforeCFindDelegate(findInstance_BeforeCFind);
findInstance.MatchInstance += new MatchInstanceDelegate(findInstance_MatchInstance);
findInstance.AfterCFind += new AfterCFindDelegate(findInstance_AfterCFind);
findInstance.Find(scp, query, true, Path.Combine(LEAD_VARS.ImagesDir, "Image1.dcm"));
DicomNet.Shutdown();
DicomEngine.Shutdown();
}
void findInstance_BeforeCFind(object sender, BeforeCFindEventArgs e)
{
Console.WriteLine("Before CFind: " + e.QueryLevel.ToString());
}
void findInstance_MatchInstance(object sender, MatchEventArgs<CompositeObjectInstance> e)
{
Console.WriteLine("SOP Instance UID: " + e.Info.SOPInstanceUID);
Console.WriteLine("SOP Class UID: " + e.Info.SOPClassUID);
Console.WriteLine("Instance #: " + e.Info.InstanceNumber);
Console.WriteLine("Availability: " + e.Availability);
}
void findInstance_AfterCFind(object sender, AfterCFindEventArgs e)
{
Debug.Assert(e.Status == DicomCommandStatusType.Success);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Imports Leadtools
Imports Leadtools.Dicom.Scu
Imports Leadtools.Dicom.Scu.Common
Imports Leadtools.Dicom
Imports Leadtools.Dicom.Common.DataTypes
Public Sub FindInstances()
DicomEngine.Startup()
DicomNet.Startup()
Dim findInstance As QueryRetrieveScu = New QueryRetrieveScu()
Dim query As FindQuery = New FindQuery()
Dim scp As DicomScp = New DicomScp()
'
' Change these parameters to reflect the calling AETitle.
'
findInstance.AETitle = "LEAD_CLIENT"
findInstance.HostPort = 1000
findInstance.HostAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(Function(ip) ip.AddressFamily = AddressFamily.InterNetwork)
'
' Change these parameters to reflect the called AETitle (server).
'
scp.AETitle = "MI_SERVER"
scp.Port = 104
scp.Timeout = 60
scp.PeerAddress = IPAddress.Parse("10.1.1.96")
query.QueryLevel = QueryLevel.Image
query.StudyInstanceUID = "1.2.840.114257.3.6.5.41964868"
query.SeriesInstanceUID = "1.2.840.114257.3.6.5.5.4214471"
AddHandler findInstance.BeforeCFind, AddressOf findInstance_BeforeCFind
AddHandler findInstance.MatchInstance, AddressOf findInstance_MatchInstance
AddHandler findInstance.AfterCFind, AddressOf findInstance_AfterCFind
findInstance.Find(scp, query, True, Path.Combine(LEAD_VARS.ImagesDir, "image1.dcm"))
DicomNet.Shutdown()
DicomEngine.Shutdown()
End Sub
Private Sub findInstance_BeforeCFind(ByVal sender As Object, ByVal e As BeforeCFindEventArgs)
Console.WriteLine("Before CFind: " & e.QueryLevel.ToString())
End Sub
Private Sub findInstance_MatchInstance(ByVal sender As Object, ByVal e As MatchEventArgs(Of CompositeObjectInstance))
Console.WriteLine("SOP Instance UID: " & e.Info.SOPInstanceUID)
Console.WriteLine("SOP Class UID: " & e.Info.SOPClassUID)
Console.WriteLine("Instance #: " & e.Info.InstanceNumber)
Console.WriteLine("Availability: " & e.Availability)
End Sub
Private Sub findInstance_AfterCFind(ByVal sender As Object, ByVal e As AfterCFindEventArgs)
Debug.Assert(e.Status = DicomCommandStatusType.Success)
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document