Leadtools.Dicom.Scu Requires Medical product license | Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
FindInstances Method
See Also  Example
Leadtools.Dicom.Scu Namespace > Series Class : FindInstances Method




Finds instances under this series. The Match event will be called for each instance.

Syntax

Visual Basic (Declaration) 
Public Sub FindInstances() 
Visual Basic (Usage)Copy Code
Dim instance As Series
 
instance.FindInstances()
C# 
public void FindInstances()
Managed Extensions for C++ 
public: void FindInstances(); 
C++/CLI 
public:
void FindInstances(); 

Example

Finds a moves a study.

Visual BasicCopy Code
Private AllSeries As List(Of Series) = New List(Of Series)()
Private SeriesInstances As List(Of CompositeObjectInstance) = New List(Of CompositeObjectInstance)()


Public Sub RetrieveSeries()
    DicomEngine.Startup()
    DicomNet.Startup()

    Dim seriesRetrieve_Series 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(ResourceDir & "series.dic", 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 seriesRetrieve_Series.MatchSeries, AddressOf seriesRetrieve_MatchSeries
    AddHandler seriesRetrieve_Series.MatchInstance, AddressOf seriesRetrieve_MatchInstance
    seriesRetrieve_Series.Find(scp, query, True, ds)

    If AllSeries.Count > 0 Then
        AllSeries(0).FindInstances()
        If SeriesInstances.Count > 0 Then
            '
            ' Move all instances to me
            '
            AllSeries(0).Move(String.Empty)
        End If
    End If

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

Private Sub seriesRetrieve_MatchSeries(ByVal sender As Object, ByVal e As MatchEventArgs(Of Series))
    '
    ' Find all instances in series
    '
    AllSeries.Add(e.Info)
End Sub

Private Sub seriesRetrieve_MatchInstance(ByVal sender As Object, ByVal e As MatchEventArgs(Of CompositeObjectInstance))
    SeriesInstances.Add(e.Info)
End Sub
C#Copy Code
List<Series> AllSeries = new List<Series>(); 
List<CompositeObjectInstance> SeriesInstances = new List<CompositeObjectInstance>(); 
 
 
public void RetrieveSeries() 

    DicomEngine.Startup(); 
    DicomNet.Startup(); 
 
    QueryRetrieveScu seriesRetrieve = 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(ResourceDir + "series.dic", 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";             
    seriesRetrieve.MatchSeries += new MatchSeriesDelegate(seriesRetrieve_MatchSeries); 
    seriesRetrieve.MatchInstance += new MatchInstanceDelegate(seriesRetrieve_MatchInstance); 
    seriesRetrieve.Find(scp, query, true, ds); 
 
    if(AllSeries.Count>0) 
    { 
        AllSeries[0].FindInstances(); 
        if(SeriesInstances.Count > 0) 
        { 
            // 
            // Move all instances to me 
            //                     
            AllSeries[0].Move(string.Empty); 
        } 
    } 
 
    DicomNet.Shutdown(); 
    DicomEngine.Shutdown(); 
}               
 
void seriesRetrieve_MatchSeries(object sender, MatchEventArgs<Series> e) 

    // 
    // Find all instances in series 
    // 
    AllSeries.Add(e.Info); 

 
void seriesRetrieve_MatchInstance(object sender, MatchEventArgs<CompositeObjectInstance> e) 

    SeriesInstances.Add(e.Info); 

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

Leadtools.Dicom.Scu requires a Medical toolkit license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features