Sends a C-FIND-REQ message to a peer member of a connection defined by Scp.
public void Find(Leadtools.Dicom.Scu.DicomScp Scp,Leadtools.Dicom.Scu.Common.FindQuery Query)
Public Overloads Sub Find( _ByVal Scp As Leadtools.Dicom.Scu.DicomScp, _ByVal Query As Leadtools.Dicom.Scu.Common.FindQuery _)
public:void Find(Leadtools.Dicom.Scu.DicomScp^ Scp,Leadtools.Dicom.Scu.Common.FindQuery^ Query)
Scp
The peer connection to send the C-FIND-REQ to.
Query
The query information that describes the DICOM datasets to be found.
This example queries a DICOM server and performs a Study Level C-FIND-REQ.
Imports LeadtoolsImports Leadtools.Dicom.ScuImports Leadtools.Dicom.Scu.CommonImports Leadtools.DicomImports Leadtools.Dicom.Common.DataTypes<TestMethod()> _Public Sub FindStudy()DicomEngine.Startup()DicomNet.Startup()Dim cfindStudy As QueryRetrieveScu = New QueryRetrieveScu()Dim query As FindQuery = New FindQuery()Dim scp As DicomScp = New DicomScp()'' Change these parameters to reflect the calling AETitle.'cfindStudy.AETitle = "LEAD_CLIENT"cfindStudy.HostPort = 1000cfindStudy.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 = 104scp.Timeout = 60scp.PeerAddress = IPAddress.Parse("10.1.1.96")'' Find all studies'query.QueryLevel = QueryLevel.StudyAddHandler cfindStudy.BeforeConnect, AddressOf cfindStudy_BeforeConnectAddHandler cfindStudy.AfterConnect, AddressOf cfindStudy_AfterConnectAddHandler cfindStudy.BeforeCFind, AddressOf cfindStudy_BeforeCFindAddHandler cfindStudy.MatchStudy, AddressOf cfindStudy_MatchStudyAddHandler cfindStudy.AfterCFind, AddressOf cfindStudy_AfterCFindcfindStudy.Find(scp, query)cfindStudy = Nothingquery = Nothingscp = NothingDicomNet.Shutdown()DicomEngine.Shutdown()End SubPrivate Sub cfindStudy_BeforeConnect(ByVal sender As Object, ByVal e As BeforeConnectEventArgs)Console.WriteLine("Connecting to: " & e.Scp.PeerAddress.ToString())End SubPrivate Sub cfindStudy_AfterConnect(ByVal sender As Object, ByVal e As AfterConnectEventArgs)Console.WriteLine("Connection status: " & e.Error)End SubPrivate Sub cfindStudy_BeforeCFind(ByVal sender As Object, ByVal e As BeforeCFindEventArgs)Console.WriteLine("Before CFind: " & e.QueryLevel.ToString())Console.WriteLine("Association supports relational queries: {0}", e.Scp.Relational)Console.WriteLine("Association Information")Dim i As Integer = 0Do While i < e.Scp.Association.PresentationContextCountDim pid As Byte = e.Scp.Association.GetPresentationContextID(i)Dim absSyntax As String = e.Scp.Association.GetAbstract(pid)Dim result As DicomAssociateAcceptResultType = e.Scp.Association.GetResult(pid)Dim uid As DicomUid = DicomUidTable.Instance.Find(absSyntax)Console.WriteLine(Constants.vbTab & "PresentationContext ({0})", pid)Console.WriteLine(Constants.vbTab + Constants.vbTab & "AbstractSyntax: {0}", absSyntax)If Not uid Is Nothing ThenConsole.WriteLine(Constants.vbTab + Constants.vbTab & "Description: {0}", uid.Name)End IfConsole.WriteLine(Constants.vbTab + Constants.vbTab & "Result: {0}", result)i += 1LoopEnd SubPrivate Sub cfindStudy_MatchStudy(ByVal sender As Object, ByVal e As MatchEventArgs(Of Study))Console.WriteLine("Accession #: " & e.Info.AccessionNumber)Console.WriteLine("Admitting Diagnosis Description: " & e.Info.AdmitDiagDescrp)If e.Info.Age.HasValue ThenConsole.WriteLine("Age: " & (e.Info.Age.Value.Number.ToString() & e.Info.Age.Value.Reference))ElseConsole.WriteLine("Age: " & ("No Age"))End IfConsole.WriteLine("Study Date: " & e.Info.Date.Value)If (e.Info.Time.HasValue) ThenConsole.WriteLine("Study Time: " & e.Info.Time.ToString())End IfConsole.WriteLine("Study Description: " & e.Info.Description)Console.WriteLine("Study Id: " & e.Info.Id)Console.WriteLine("Study Instance: " & e.Info.InstanceUID)If Not e.Info.ModalitiesInStudy Is Nothing ThenConsole.WriteLine("Modalities in Study: " & e.Info.ModalitiesInStudy.ToString())End IfIf Not e.Info.NameOfDrsReading Is Nothing ThenConsole.WriteLine("Name of drs reading Study: " & e.Info.NameOfDrsReading.ToString())End IfConsole.WriteLine("Number of Related Instances: " & e.Info.NumberOfRelatedInstances)Console.WriteLine("Number of Related Series: " & e.Info.NumberofRelatedSeries)Console.WriteLine("Referring Dr Name: " & e.Info.ReferringPhysiciansName.Full)Console.WriteLine("Patient Size: " & e.Info.Size.Value)Console.WriteLine("Patient Weight: " & e.Info.Weight.Value)Console.WriteLine("Patient Birth Date: " & e.Info.Patient.BirthDate.Value)Console.WriteLine("Patient Comments: " & e.Info.Patient.Comments)Console.WriteLine("Patient Id: " & e.Info.Patient.Id)Console.WriteLine("Patient Sex: " & e.Info.Patient.Sex)Console.WriteLine("Patient Name")Console.WriteLine(Constants.vbTab & "Family Name: " & e.Info.Patient.Name.Family)Console.WriteLine(Constants.vbTab & "Given Name: " & e.Info.Patient.Name.Given)Console.WriteLine(Constants.vbTab & "Middle Name: " & e.Info.Patient.Name.Middle)Console.WriteLine(Constants.vbTab & "Name Prefix: " & e.Info.Patient.Name.Prefix)Console.WriteLine(Constants.vbTab & "Name Suffix: " & e.Info.Patient.Name.Suffix)Console.WriteLine(Constants.vbTab & "Full Name: " & e.Info.Patient.Name.Full)Console.WriteLine(Constants.vbTab & "Full Name Dicom Encoded: " & e.Info.Patient.Name.FullDicomEncoded)Console.WriteLine("==========================================================" & Constants.vbCrLf)End SubPrivate Sub cfindStudy_AfterCFind(ByVal sender As Object, ByVal e As AfterCFindEventArgs)Debug.Assert(e.Status = DicomCommandStatusType.Success)End Sub
using Leadtools;using Leadtools.Dicom.Scu;using Leadtools.Dicom.Scu.Common;using Leadtools.Dicom;using Leadtools.Dicom.Common.DataTypes;public void FindStudy(){DicomEngine.Startup();DicomNet.Startup();QueryRetrieveScu findStudy = new QueryRetrieveScu();FindQuery query = new FindQuery();DicomScp scp = new DicomScp();//// Change these parameters to reflect the calling AETitle.//findStudy.AETitle = "LEAD_CLIENT";findStudy.HostPort = 1000;findStudy.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");//// Find all studies//query.QueryLevel = QueryLevel.Study;findStudy.BeforeConnect += new BeforeConnectDelegate(findStudy_BeforeConnect);findStudy.AfterConnect += new AfterConnectDelegate(findStudy_AfterConnect);findStudy.BeforeCFind += new BeforeCFindDelegate(findStudy_BeforeCFind);findStudy.MatchStudy += new MatchStudyDelegate(findStudy_MatchStudy);findStudy.AfterCFind += new AfterCFindDelegate(findStudy_AfterCFind);findStudy.Find(scp, query);findStudy = null;query = null;scp = null;DicomNet.Shutdown();DicomEngine.Shutdown();}void findStudy_BeforeConnect(object sender, BeforeConnectEventArgs e){Console.WriteLine("Connecting to: " + e.Scp.PeerAddress.ToString());}void findStudy_AfterConnect(object sender, AfterConnectEventArgs e){Console.WriteLine("Connection status: " + e.Error);}void findStudy_BeforeCFind(object sender, BeforeCFindEventArgs e){Console.WriteLine("Before CFind: " + e.QueryLevel.ToString());Console.WriteLine("Association supports relational queries: {0}", e.Scp.Relational);Console.WriteLine("Association Information");for (int i = 0; i < e.Scp.Association.PresentationContextCount; i++){byte pid = e.Scp.Association.GetPresentationContextID(i);string absSyntax = e.Scp.Association.GetAbstract(pid);DicomAssociateAcceptResultType result = e.Scp.Association.GetResult(pid);DicomUid uid = DicomUidTable.Instance.Find(absSyntax);Console.WriteLine("\tPresentationContext ({0})", pid);Console.WriteLine("\t\tAbstractSyntax: {0}", absSyntax);if (uid != null)Console.WriteLine("\t\tDescription: {0}", uid.Name);Console.WriteLine("\t\tResult: {0}", result);}}void findStudy_MatchStudy(object sender, MatchEventArgs<Study> e){Console.WriteLine("Accession #: " + e.Info.AccessionNumber);Console.WriteLine("Admitting Diagnosis Description: " + e.Info.AdmitDiagDescrp);Console.WriteLine("Age: " + (e.Info.Age.HasValue ? e.Info.Age.Value.Number.ToString() + e.Info.Age.Value.Reference : "No Age"));Console.WriteLine("Study Date: " + e.Info.Date);Console.WriteLine("Study Time: " + e.Info.Time);Console.WriteLine("Study Description: " + e.Info.Description);Console.WriteLine("Study Id: " + e.Info.Id);Console.WriteLine("Study Instance: " + e.Info.InstanceUID);if (e.Info.ModalitiesInStudy != null)Console.WriteLine("Modalities in Study: " + e.Info.ModalitiesInStudy.ToString());if (e.Info.NameOfDrsReading != null)Console.WriteLine("Name of drs reading Study: " + e.Info.NameOfDrsReading.ToString());Console.WriteLine("Number of Related Instances: " + e.Info.NumberOfRelatedInstances);Console.WriteLine("Number of Related Series: " + e.Info.NumberofRelatedSeries);Console.WriteLine("Referring Dr Name: " + e.Info.ReferringPhysiciansName.Full);Console.WriteLine("Patient Size: " + e.Info.Size);Console.WriteLine("Patient Weight: " + e.Info.Weight);Console.WriteLine("Patient Birth Date: " + e.Info.Patient.BirthDate);Console.WriteLine("Patient Comments: " + e.Info.Patient.Comments);Console.WriteLine("Patient Id: " + e.Info.Patient.Id);Console.WriteLine("Patient Sex: " + e.Info.Patient.Sex);Console.WriteLine("Patient Name");Console.WriteLine("\tFamily Name: " + e.Info.Patient.Name.Family);Console.WriteLine("\tGiven Name: " + e.Info.Patient.Name.Given);Console.WriteLine("\tMiddle Name: " + e.Info.Patient.Name.Middle);Console.WriteLine("\tName Prefix: " + e.Info.Patient.Name.Prefix);Console.WriteLine("\tName Suffix: " + e.Info.Patient.Name.Suffix);Console.WriteLine("\tFull Name: " + e.Info.Patient.Name.Full);Console.WriteLine("\tFull Name Dicom Encoded: " + e.Info.Patient.Name.FullDicomEncoded);Console.WriteLine("==========================================================\r\n");}void findStudy_AfterCFind(object sender, AfterCFindEventArgs e){Debug.Assert(e.Status == DicomCommandStatusType.Success);}
|
Products |
Support |
Feedback: Find(DicomScp,FindQuery) Method - Leadtools.Dicom.Scu |
Introduction |
Help Version 19.0.2017.3.22
|

Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
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.