Leadtools.Medical.Workstation.Client.Pacs Namespace : PacsRetrieveClient Class |
public class PacsRetrieveClient : Leadtools.Medical.Workstation.Client.RetrieveClient
'Declaration Public Class PacsRetrieveClient Inherits Leadtools.Medical.Workstation.Client.RetrieveClient
'Usage Dim instance As PacsRetrieveClient
public ref class PacsRetrieveClient : public Leadtools.Medical.Workstation.Client.RetrieveClient
This class supports image retrieval either by moving them into another server or by retrieving them locally.
If the images are retrieved locally you can specify that the retrieved images be stored in a local storage source by setting the StoreRetrievedImages property to true.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.Dicom Imports Leadtools.Dicom.Scu.Common Imports Leadtools.ImageProcessing Imports Leadtools.Dicom.AddIn.Common Imports Leadtools.Dicom.Scu Imports Leadtools.Medical.Workstation.Client Imports Leadtools.Medical.Workstation.Client.Local Imports Leadtools.Medical.Workstation.Client.Pacs Public Sub RetrieveLocalDatabase() #If LEADTOOLS_V175_OR_LATER Then Leadtools.Examples.Support.SetLicense() #Else Leadtools.Examples.Support.Unlock() #End If ''' #if LEADTOOLS_V175_OR_LATER Dim clientInfo As AeInfo = New AeInfo() Dim scpInfo As DicomScp = 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 Dim addressFound As Boolean Dim addresses As IPAddress() addressFound = False addresses = Dns.GetHostAddresses(Dns.GetHostName()) For Each address As IPAddress In addresses 'we need to get an IP V4, won't work with IP V6 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 PacsRetrieveClient = New PacsRetrieveClient(clientInfo, scpInfo) client.LoadDataSetOnRetrieve = False 'Enable this if you need to read information from the DICOM dataset. AddHandler client.InstanceMoved, AddressOf client_InstanceMoved client.EnableLog = True client.LogFileName = Path.Combine(LEAD_VARS.ImagesDir, "DicomLog.txt") client.StoreRetrievedImages = True 'This will store the retrieved images into the local database. PerformClientRetrieve(client) End Sub Sub client_InstanceMoved(ByVal sender As Object, ByVal e As InstanceMovedEventArgs) Console.WriteLine("Number of moved images: {0}", e.Completed) End Sub Public Sub PerformClientRetrieve(ByVal client As RetrieveClient) Dim images As IEnumerable(Of KeyValuePair(Of String, RetrievedDataSet)) = client.RetrieveImages("", "") 'perform a wild card search For Each imageInformation As KeyValuePair(Of String, RetrievedDataSet) In images Console.WriteLine("SOPInstanceUID: {0}", imageInformation.Key) Console.WriteLine(imageInformation.Value.DataSetFilePath) Console.WriteLine("---------------------------------------------") Next imageInformation End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Codecs; using Leadtools.Dicom; using Leadtools.Dicom.Scu.Common; using Leadtools.ImageProcessing; using Leadtools.Dicom.AddIn.Common ; using Leadtools.Dicom.Scu ; using Leadtools.Medical.Workstation.Client; using Leadtools.Medical.Workstation.Client.Local; using Leadtools.Medical.Workstation.Client.Pacs ; public void RetrieveLocalDatabase() { #if LEADTOOLS_V175_OR_LATER Leadtools.Examples.Support.SetLicense(); #else Leadtools.Examples.Support.Unlock(); #endif // #if LEADTOOLS_V175_OR_LATER 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"); } PacsRetrieveClient client = new PacsRetrieveClient(clientInfo, scpInfo); client.InstanceMoved += new EventHandler<InstanceMovedEventArgs>(client_InstanceMoved); client.EnableLog = true; client.LogFileName = Path.Combine(LEAD_VARS.ImagesDir, "DicomLog.txt"); client.StoreRetrievedImages = true ; //This will store the retrieved images into the local database. client.LoadDataSetOnRetrieve = false ;//Enable this if you need to read information from the DICOM dataset. PerformClientRetrieve(client); } void client_InstanceMoved(object sender, InstanceMovedEventArgs e) { Console.WriteLine ( "Number of moved images: {0}", e.Completed ) ; } public void PerformClientRetrieve(RetrieveClient client) { IEnumerable <KeyValuePair <string, RetrievedDataSet>> images = client.RetrieveImages ( "", "" ) ; //perform a wild card search foreach ( KeyValuePair <string, RetrievedDataSet> imageInformation in images ) { Console.WriteLine ( "SOPInstanceUID: {0}", imageInformation.Key ) ; Console.WriteLine ( imageInformation.Value.DataSetFilePath ) ; Console.WriteLine("---------------------------------------------" ); } } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }