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
<TestMethod()> _
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 ;
[TestMethod]
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";
}