LEADTOOLS Medical (Leadtools.Dicom.Scu assembly)
LEAD Technologies, Inc

Find(DicomScp,FindQuery,Boolean,DicomDataSet) Method

Example 





The peer connection to send the C-FIND-REQ to.
The query information that describes the DICOM datasets to be found.
If set to true add optional C-FIND-REQ items.
The template dataset to use in the C-FIND-REQ.
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.
Syntax
public void Find( 
   DicomScp Scp,
   FindQuery Query,
   bool AddOptional,
   DicomDataSet Template
)
'Declaration
 
Public Overloads Sub Find( _
   ByVal Scp As DicomScp, _
   ByVal Query As FindQuery, _
   ByVal AddOptional As Boolean, _
   ByVal Template As DicomDataSet _
) 
'Usage
 
Dim instance As QueryRetrieveScu
Dim Scp As DicomScp
Dim Query As FindQuery
Dim AddOptional As Boolean
Dim Template As DicomDataSet
 
instance.Find(Scp, Query, AddOptional, Template)
public void Find( 
   DicomScp Scp,
   FindQuery Query,
   bool AddOptional,
   DicomDataSet Template
)
 function Leadtools.Dicom.Scu.QueryRetrieveScu.Find(DicomScp,FindQuery,Boolean,DicomDataSet)( 
   Scp ,
   Query ,
   AddOptional ,
   Template 
)
public:
void Find( 
   DicomScp^ Scp,
   FindQuery^ Query,
   bool AddOptional,
   DicomDataSet^ Template
) 

Parameters

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.
Example
 
Public Sub FindSeries()
         DicomEngine.Startup()
         DicomNet.Startup()

         Dim cfind As QueryRetrieveScu = New QueryRetrieveScu()
         Dim query As FindQuery = New FindQuery()
         Dim scp As DicomScp = New DicomScp(IPAddress.Parse("10.1.1.96"), "MI_SERVER", 104)
         Dim ds As DicomDataSet = 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, "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"
         AddHandler cfind.BeforeCFind, AddressOf cfind_BeforeCFind
         AddHandler cfind.MatchSeries, AddressOf cfind_MatchSeries
         AddHandler cfind.AfterCFind, AddressOf cfind_AfterCFind
         cfind.Find(scp, query, True, ds)

         DicomNet.Shutdown()
         DicomEngine.Shutdown()
     End Sub

     Private Sub cfind_BeforeCFind(ByVal sender As Object, ByVal e As BeforeCFindEventArgs)
         Console.WriteLine("Before CFind: " & e.QueryLevel.ToString())
     End Sub

     Private Sub cfind_MatchSeries(ByVal sender As Object, ByVal e As MatchEventArgs(Of Series))
         Console.Write("Series Instance UID: " & e.Info.InstanceUID)
         Console.WriteLine("Series Number: " & e.Info.Number.Value)
         If e.Info.Date.HasValue Then
             Console.WriteLine("Series Date: " & e.Info.Date.Value)
         Else
             Console.WriteLine("Series Date: ")
         End If
         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)

         If e.Info.PerfProcStepStartDate.HasValue Then
             Console.WriteLine("Performed Procedure Step Start Date: " & e.Info.PerfProcStepStartDate.Value)
         Else
             Console.WriteLine("Performed Procedure Step Start Date: ")
         End If

         If e.Info.PerfProcStepStartTime.HasValue Then
             Console.WriteLine("Performed Procedure Step Start Time: " & e.Info.PerfProcStepStartTime.Value.ToString())
         Else
             Console.WriteLine("Performed Procedure Step Start Time: ")
         End If
         Console.WriteLine("Requested Procedure ID: " & e.Info.RequestedProcId)
         Console.WriteLine("Scheduled Procedure Step ID: " & e.Info.SchedProcStepId)
     End Sub

     Private Sub cfind_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
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,"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:\Users\Public\Documents\LEADTOOLS Images";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

QueryRetrieveScu Class
QueryRetrieveScu Members
Overload List

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Dicom.Scu requires a Medical toolkit license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features