using LeadtoolsExamples.Common;
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()
{
Leadtools.Examples.Support.SetLicense();
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:\LEADTOOLS22\Resources\Images";
}