Move(DicomScp,string,string,string) Method

Summary
Sends a C-MOVE-REQ message to a peer member of a connection defined by Scp.
Syntax
C#
C++/CLI
public void Move( 
   DicomScp Scp, 
   string DestAE, 
   string StudyInstanceUID, 
   string SeriesInstanceUID 
) 
public: 
void Move(  
   DicomScp^ Scp, 
   String^ DestAE, 
   String^ StudyInstanceUID, 
   String^ SeriesInstanceUID 
)  

Parameters

Scp
The peer connection to send the C-MOVE-REQ to.

DestAE
The name of the Application Entity to which to move the data. If DestAE is null or empty the dataset will be moved to the AETitle defined in DicomFindSCU

StudyInstanceUID
The study instance UID of the study to move.

SeriesInstanceUID
The series instance UID of the series to move.

Remarks

Performs a series level move. All instances under the specified series will be moved to the DestAE. If the SCP does not support relational queries both StudyInstanceUID and SeriesInstanceUID must be provided. If relational queries are supported only SeriesInstanceUID is required.

Example

Moves the specified series to the local computer.

C#
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 MoveSeries() 
{ 
   DicomEngine.Startup(); 
   DicomNet.Startup(); 
 
   QueryRetrieveScu retrieveSeries = new QueryRetrieveScu(); 
   FindQuery query = new FindQuery(); 
   DicomScp scp = new DicomScp(); 
 
   // 
   // Change these parameters to reflect the calling AETitle. 
   // 
 
   retrieveSeries.AETitle = "LEAD_CLIENT"; 
   retrieveSeries.HostPort = 1000; 
   retrieveSeries.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"); 
 
   retrieveSeries.BeforeCMove += new BeforeCMoveDelegate(retrieveSeries_BeforeCMove); 
   retrieveSeries.Moved += new MovedDelegate(retrieveSeries_Moved); 
   retrieveSeries.AfterCMove += new AfterCMoveDelegate(retrieveSeries_AfterCMove); 
   retrieveSeries.HostReady += RetrieveSeries_HostReady; 
   retrieveSeries.Move(scp, string.Empty, "1.2.840.114257.3.6.5.41964868", "1.2.840.114257.3.6.5.5.4214471"); 
 
   DicomNet.Shutdown(); 
   DicomEngine.Shutdown(); 
} 
 
private void RetrieveSeries_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 retrieveSeries_BeforeCMove(object sender, BeforeCMoveEventArgs e) 
{ 
   Console.WriteLine("Before CMove"); 
} 
 
void retrieveSeries_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 retrieveSeries_AfterCMove(object sender, AfterCMoveEventArgs e) 
{ 
   Console.WriteLine("After CMove"); 
   Console.WriteLine("\t{0} Completed", e.Completed); 
   Console.WriteLine("\t{0} Failed", e.Failed); 
   Console.WriteLine("\t{0} Warning", e.Warning); 
   Console.WriteLine("\tStatus: {0}", e.Status); 
 
   if (e.Status != DicomCommandStatusType.Success) 
   { 
      string statusAllString = e.StatusAll.ToString(StatusFormatFlags.IgnoreStatus, "\n", "\t"); 
      Console.WriteLine(statusAllString); 
   } 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom.Scu Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.