BeforeCGet Event

Summary
Occurs before a C-GET-REQ is sent to the scp.
Syntax
C#
C++/CLI
public event BeforeCGetDelegate BeforeCGet 
public: 
event BeforeCGetDelegate^ BeforeCGet 
Event Data

The event handler receives an argument of type BeforeCGetEventArgs containing data related to this event. The following BeforeCGetEventArgs properties provide information specific to this event.

PropertyDescription
AffectedClass Gets or sets the SOP UID for this C-Get query
Dataset Gets or sets the DICOM data set which describes the C-GET-REQ information to retrieve
MessageId Gets or sets the message ID
PresentationID Gets or sets the presentation ID
Priority Gets or sets priority level of the message
Scp (Inherited from Leadtools.Dicom.Scu.Common.BaseEventArgs)Gets the SCP.
Example
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 QueryRetrieveScu_Get1() 
{ 
   DicomEngine.Startup(); 
   DicomNet.Startup(); 
 
   // 
   // Change these parameters to reflect the calling AETitle. 
   // 
   QueryRetrieveScu getScu = new QueryRetrieveScu(); 
   getScu.AETitle = "LEAD_CLIENT"; 
   getScu.HostPort = 1000; 
   getScu.HostAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork); 
 
 
   // 
   // Change these parameters to reflect the called AETitle (server). 
   // 
   DicomScp scp = new DicomScp(); 
   scp.AETitle = "LEAD_GET_SCP"; 
   scp.Port = 404; 
   scp.Timeout = 60; 
   scp.PeerAddress = IPAddress.Parse("192.168.0.168"); 
 
   getScu.BeforeCGet += new BeforeCGetDelegate(getStudy_BeforeCGet); 
   getScu.AfterCGet += new AfterCGetDelegate(getStudy_AfterCGet); 
   getScu.ReceivedStoreRequest += new ReceivedStoreRequestDelegate(getStudy_ReceivedStoreRequest); 
 
   // The C-GET must know the Media Storage SOP Class UID of the DICOM Datasets that you want to retrieve 
   // In this example, the five SMITH^TERRY instances are retrieved 
   //    SOP Class UID of the instances is: 
   //       MR Image Storage 
   //       1.2.840.10008.5.1.4.1.1.4 
   //    StudyInstanceUid of the study is: 
   //       1.3.12.2.1107.5.2.31.30563.30000008120313112035900000034 
   //    SeriesInstanceUid of the series is: 
   //       1.3.12.2.1107.5.2.31.30563.2008120317404292381631917.0.0.0 
   //    SOPInstanceUid of one of the five instances is: 
   //       1.3.12.2.1107.5.2.31.30563.2008120317404382714631941 
 
   string studyInstanceUid = "1.3.12.2.1107.5.2.31.30563.30000008120313112035900000034"; 
   string seriesInstanceUid = "1.3.12.2.1107.5.2.31.30563.2008120317404292381631917.0.0.0"; 
   string sopInstanceUid = "1.3.12.2.1107.5.2.31.30563.2008120317404382714631941"; 
 
   PresentationContext pc = new PresentationContext(DicomUidType.MRImageStorage); 
   pc.TransferSyntaxes.Add(DicomUidType.ImplicitVRLittleEndian); 
 
   // Alternatively, you can create the presentation context if you have a compatible DicomDataSet 
   // This is illustrated, but 'pc' will be used 
   PresentationContext pcAnotherWay; 
   string compatibleDicomName = @"D:\erase\dicom\compatible.dcm"; 
   if (File.Exists(compatibleDicomName)) 
   { 
      DicomDataSet dsCompatible = new DicomDataSet(); 
      dsCompatible.Load(compatibleDicomName, DicomDataSetLoadFlags.None); 
      pcAnotherWay = QueryRetrieveScu.GetCompatiblePresentationContext(dsCompatible); 
   } 
 
   List<PresentationContext> pcList = new List<PresentationContext>(); 
   pcList.Add(pc); 
 
   // There are four overloads for Get 
   // This examples illustrates how to use three of the overloads (study leve, series level, instance level) 
 
   // Uncomment whichever overload you want to use 
 
   // StudyLevel -- retrieves five instances 
   // getStudy.Get(scp, studyInstanceUid, pcList); 
 
   // SeriesLevel -- retrieves three instances 
   // getStudy.Get(scp, studyInstanceUid, seriesInstanceUid, pcList); 
 
   // InstanceLevel -- retrieves one instance 
   getScu.Get(scp, studyInstanceUid, seriesInstanceUid, sopInstanceUid, pcList); 
 
   DicomNet.Shutdown(); 
   DicomEngine.Shutdown(); 
} 
 
void getStudy_BeforeCGet(object sender, BeforeCGetEventArgs e) 
{ 
   Console.WriteLine("Before CGet"); 
} 
 
void getStudy_ReceivedStoreRequest(object sender, ReceivedStoreRequestEventArgs e) 
{ 
   Console.WriteLine("=========================================="); 
   Console.WriteLine("Patient Name:\t{0}", e.Patient.Name.Full); 
   Console.WriteLine("SOPInstanceUID:\t{0}", e.Instance.SOPInstanceUID); 
} 
 
void getStudy_AfterCGet(object sender, AfterCGetEventArgs e) 
{ 
   Console.WriteLine("After CGet"); 
   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 22.0.2023.1.24
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 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.