public void Find(
DicomScp Scp,
FindQuery Query,
bool AddOptional,
DicomDataSet Template
)
public:
void Find(
DicomScp^ Scp,
FindQuery^ Query,
bool AddOptional,
DicomDataSet^ Template
)
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.
Template
The template dataset to use in the C-FIND-REQ.
Finds a study series with a C-FIND-REQ dataset template.
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 FindSeries()
{
DicomEngine.Startup();
DicomNet.Startup();
QueryRetrieveScu findSeries = new QueryRetrieveScu();
FindQuery query = new FindQuery();
DicomScp scp = new DicomScp(IPAddress.Parse("10.1.1.96"), "MI_SERVER", 104);
DicomDataSet ds = new DicomDataSet();
//
// Change these parameters to reflect your Dicom server.
//
scp.Timeout = 60;
//
// Load a dataset that has information needed for a C-FIND-REQ at series level. Change
// this to reflect a dataset on your computer.
//
ds.Load(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "image1.dcm"), DicomDataSetLoadFlags.LoadAndClose);
query.QueryLevel = QueryLevel.Series;
//
// Query for a specific study instance uid. Change this to a study instance
// that is available on your Dicom Server
//
query.StudyInstanceUID = "1.2.840.114257.3.6.5.41964868";
findSeries.BeforeCFind += new BeforeCFindDelegate(findSeries_BeforeCFind);
findSeries.MatchSeries += new MatchSeriesDelegate(findSeries_MatchSeries);
findSeries.AfterCFind += new AfterCFindDelegate(findSeries_AfterCFind);
findSeries.Find(scp, query, true, ds);
DicomNet.Shutdown();
DicomEngine.Shutdown();
}
void findSeries_BeforeCFind(object sender, BeforeCFindEventArgs e)
{
Console.WriteLine("Before CFind: " + e.QueryLevel.ToString());
}
void findSeries_MatchSeries(object sender, MatchEventArgs<Series> e)
{
Console.Write("Series Instance UID: " + e.Info.InstanceUID);
Console.WriteLine("Series Number: " + e.Info.Number != null ? e.Info.Number.ToString() : string.Empty);
Console.WriteLine("Series Date: " + e.Info.Date);
Console.WriteLine("Series Description: " + e.Info.Description);
Console.WriteLine("Modality: " + e.Info.Modality);
Console.WriteLine("Number of Related Instances: " + e.Info.NumberOfRelatedInstances);
Console.WriteLine("Performed Procedure Step ID:" + e.Info.PerformedProcStepId);
Console.WriteLine("Performed Procedure Step Start Date: " + e.Info.PerfProcStepStartDate);
Console.WriteLine("Performed Procedure Step Start Time: " + e.Info.PerfProcStepStartTime);
Console.WriteLine("Requested Procedure ID: " + e.Info.RequestedProcId);
Console.WriteLine("Scheduled Procedure Step ID: " + e.Info.SchedProcStepId);
}
void findSeries_AfterCFind(object sender, AfterCFindEventArgs e)
{
Debug.Assert(e.Status == DicomCommandStatusType.Success);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
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