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
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. - TemplateFile
- The template dataset filename used in the C-FIND-REQ.
Example
Finds all instances in the related study and series.
Visual Basic | Copy Code |
---|
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()
Dim ds As DicomDataSet = New DicomDataSet()
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, ResourceDir & "instance.dic")
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 |
C# | Copy Code |
---|
public void FindInstances() { DicomEngine.Startup(); DicomNet.Startup(); QueryRetrieveScu findInstance = new QueryRetrieveScu(); FindQuery query = new FindQuery(); DicomScp scp = new DicomScp(); DicomDataSet ds = new DicomDataSet(); // // Change these parameters to reflect your Dicom 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, ResourceDir + "instance.dic"); 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); } |
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