using Leadtools;
using Leadtools.Dicom.Scu;
using Leadtools.Dicom.Scu.Common;
using Leadtools.Dicom;
using Leadtools.Dicom.Common.DataTypes;
using Leadtools.Dicom.Common.DataTypes.Status;
public void MoveStudy()
{
DicomEngine.Startup();
DicomNet.Startup();
QueryRetrieveScu retrieveStudy = new QueryRetrieveScu();
FindQuery query = new FindQuery();
DicomScp scp = new DicomScp();
//
// Change these parameters to reflect the calling AETitle.
//
retrieveStudy.AETitle = "LEAD_CLIENT";
retrieveStudy.HostPort = 1000;
retrieveStudy.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");
retrieveStudy.BeforeCMove += new BeforeCMoveDelegate(retrieveStudy_BeforeCMove);
retrieveStudy.Moved += new MovedDelegate(retrieveStudy_Moved);
retrieveStudy.AfterCMove += new AfterCMoveDelegate(retrieveStudy_AfterCMove);
retrieveStudy.HostReady += RetrieveStudy_HostReady;
retrieveStudy.Move(scp, string.Empty, "1.2.840.114257.3.6.5.41964868");
DicomNet.Shutdown();
DicomEngine.Shutdown();
}
private void RetrieveStudy_HostReady(object sender, HostReadyEventArgs e)
{
if (e.ScpHost != null)
{
Console.WriteLine("HostReady: Host AETitle:{0} Host Port:{1}", e.ScpHost.AETitle, e.ScpHost.HostPort);
}
}
void retrieveStudy_BeforeCMove(object sender, BeforeCMoveEventArgs e)
{
Console.WriteLine("Before CMove");
}
void retrieveStudy_Moved(object sender, MovedEventArgs e)
{
Console.WriteLine(e.Patient.Name.Full);
Console.WriteLine(e.Study.AccessionNumber);
Console.WriteLine(e.Series.Number);
Console.WriteLine(e.Instance.SOPInstanceUID);
Console.WriteLine("==========================================");
}
void retrieveStudy_AfterCMove(object sender, AfterCMoveEventArgs e)
{
Console.WriteLine("{0} Completed", e.Completed);
Console.WriteLine("{0} Failed", e.Failed);
Console.WriteLine("{0} Warning", e.Warning);
Console.WriteLine("Status: {0}", e.Status);
if (e.Status != DicomCommandStatusType.Success)
{
string statusAllString = e.StatusAll.ToString(StatusFormatFlags.IgnoreStatus, "\n", "\t");
Console.WriteLine(statusAllString);
}
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document