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;
using Leadtools.Dicom.Common.DataTypes.Status;
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, "DICOM", "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:\LEADTOOLS21\Resources\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:\LEADTOOLS21\Resources\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
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.