Initializes a new instance of the
PacsQueryClient class.
Syntax
Parameters
- clientInfo
-
The AeInfo for the calling client.
- scp
-
The DicomScp information to perform the DICOM Query against.
Example
Visual Basic | Copy Code |
---|
<Test> _
Public Sub QueryPACS()
Leadtools.Examples.Support.Unlock()
Dim clientInfo As AeInfo = New AeInfo()
Dim scpInfo As DicomScp = New DicomScp()
clientInfo.Address = Dns.GetHostName()
clientInfo.AETitle = "TEST_CLIENT"
clientInfo.Port = 1000
scpInfo.AETitle = "LEAD_SERVER"
scpInfo.Port = 104
scpInfo.Timeout = 30
Dim addressFound As Boolean
Dim addresses As IPAddress()
addressFound = False
addresses = Dns.GetHostAddresses (Dns.GetHostName ())
For Each address As IPAddress In addresses
If address.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork Then
addressFound = True
scpInfo.PeerAddress = address
Exit For
End If
Next address
If (Not addressFound) Then
Throw New ArgumentException("Couldn't resolve a valid host Address. Address must conform to IP version 4")
End If
Dim client As PacsQueryClient = New PacsQueryClient(clientInfo, scpInfo)
client.EnableLog = True
client.LogFileName = ("c:\DicomLog.txt")
PerformClientQuery(client)
End Sub
Public Sub PerformClientQuery(ByVal client As QueryClient)
Dim studiesQuery As FindQuery = New FindQuery()
Dim studies As ClientQueryDataSet = client.FindStudies(studiesQuery)
If studies.Studies.Count > 0 Then
Dim study As ClientQueryDataSet.StudiesRow = studies.Studies(0)
Dim seriesQuery As FindQuery = New FindQuery()
seriesQuery.StudyInstanceUID = study.StudyInstanceUID
Dim series As ClientQueryDataSet = client.FindSeries(seriesQuery)
For Each seriesRow As ClientQueryDataSet.SeriesRow In series.Series
Dim imagesQuery As FindQuery = New FindQuery()
imagesQuery.SeriesInstanceUID = seriesRow.SeriesInstanceUID
Dim images As ClientQueryDataSet = client.FindImages(imagesQuery)
For Each image As ClientQueryDataSet.ImagesRow In images.Images
Console.WriteLine("SOPInstanceUID: {0}", image.SOPInstanceUID)
If (Not image.IsSeriesInstanceUIDNull()) Then
Console.WriteLine("SeriesInstanceUID: {0}", image.SeriesInstanceUID)
End If
If (Not image.IsStudyInstanceUIDNull()) Then
Console.WriteLine("StudyInstanceUID: {0}", image.StudyInstanceUID)
End If
Next image
Next seriesRow
End If
End Sub |
C# | Copy Code |
---|
public void QueryPACS() { Leadtools.Examples.Support.Unlock(); AeInfo clientInfo = new AeInfo(); DicomScp scpInfo = new DicomScp(); clientInfo.Address = Dns.GetHostName(); //local machine clientInfo.AETitle = "TEST_CLIENT"; clientInfo.Port = 1000; scpInfo.AETitle = "LEAD_SERVER"; scpInfo.Port = 104; scpInfo.Timeout = 30; bool addressFound; IPAddress [] addresses ; addressFound = false; addresses = Dns.GetHostAddresses ( Dns.GetHostName ( ) ) ; foreach (IPAddress address in addresses) { //we need to get an IP V4, won't work with IP V6 if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { addressFound = true; scpInfo.PeerAddress = address; break; } } if (!addressFound) { throw new ArgumentException("Couldn't resolve a valid host Address. Address must conform to IP version 4"); } PacsQueryClient client = new PacsQueryClient(clientInfo, scpInfo); client.EnableLog = true; client.LogFileName = ( @"c:\DicomLog.txt" ) ; PerformClientQuery(client); } public void PerformClientQuery(QueryClient client) { FindQuery studiesQuery = new FindQuery(); ClientQueryDataSet studies = client.FindStudies(studiesQuery); if (studies.Studies.Count > 0) { ClientQueryDataSet.StudiesRow study = studies.Studies[0]; FindQuery seriesQuery = new FindQuery(); seriesQuery.StudyInstanceUID = study.StudyInstanceUID; ClientQueryDataSet series = client.FindSeries(seriesQuery); foreach (ClientQueryDataSet.SeriesRow seriesRow in series.Series) { FindQuery imagesQuery = new FindQuery(); imagesQuery.SeriesInstanceUID = seriesRow.SeriesInstanceUID; ClientQueryDataSet images = client.FindImages(imagesQuery); foreach (ClientQueryDataSet.ImagesRow image in images.Images) { Console.WriteLine("SOPInstanceUID: {0}", image.SOPInstanceUID); if (!image.IsSeriesInstanceUIDNull()) { Console.WriteLine("SeriesInstanceUID: {0}", image.SeriesInstanceUID); } if (!image.IsStudyInstanceUIDNull()) { Console.WriteLine("StudyInstanceUID: {0}", image.StudyInstanceUID); } } } } } |
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also