Gets all status-related elements that can be included in the command set of a C-STORE DIMSE service response.
public StatusAll StatusAll { get; }
All status-related elements that can be included in the command set of a C-STORE DIMSE service response.
The C-STORE DIMSE service response command set includes a required Status Element (0000,0900), and other optional Status Elements.
This member contains all of the status-related elements, and is used to easily read status and optional status related elements.
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 StoreDirectory()
{
DicomEngine.Startup();
DicomNet.Startup();
StoreScu storeDirectory = new StoreScu();
DicomScp scp = new DicomScp();
//
// Change these parameters to reflect the calling AETitle.
//
storeDirectory.AETitle = "LEAD_CLIENT";
storeDirectory.HostPort = 1000;
storeDirectory.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");
storeDirectory.BeforeAssociateRequest += new BeforeAssociationRequestDelegate(storeDirectory_BeforeAssociateRequest);
storeDirectory.AfterAssociateRequest += new AfterAssociateRequestDelegate(storeDirectory_AfterAssociateRequest);
storeDirectory.BeforeCStore += new BeforeCStoreDelegate(storeDirectory_BeforeCStore);
storeDirectory.AfterCStore += new AfterCStoreDelegate(storeDirectory_AfterCStore);
storeDirectory.Compression = Compression.Native;
storeDirectory.Store(scp, LEAD_VARS.ImagesDir + "\\DICOM", "*.*", false);
DicomNet.Shutdown();
DicomEngine.Shutdown();
}
void storeDirectory_BeforeAssociateRequest(object sender, BeforeAssociateRequestEventArgs e)
{
Console.WriteLine("Before AssociateRequest");
}
void storeDirectory_AfterAssociateRequest(object sender, AfterAssociateRequestEventArgs e)
{
StoreScu scu = sender as StoreScu;
Console.WriteLine("After AssociateRequest");
for (int i = 0; i < e.Associate.PresentationContextCount; i++)
{
byte pid = e.Associate.GetPresentationContextID(i);
string absSyntax = e.Associate.GetAbstract(pid);
DicomAssociateAcceptResultType result = e.Associate.GetResult(pid);
DicomUid uid = DicomUidTable.Instance.Find(absSyntax);
Console.WriteLine("\tPresentationContext ({0})", pid);
Console.WriteLine("\t\tAbstractSyntax: {0}", absSyntax);
if (uid != null)
Console.WriteLine("\t\tDescription: {0}", uid.Name);
Console.WriteLine("\t\tResult: {0}", result);
}
}
void storeDirectory_BeforeCStore(object sender, BeforeCStoreEventArgs e)
{
//
// Stop storing if we received an error
//
if (e.Error != null)
e.Skip = SkipMethod.AllFiles;
}
void storeDirectory_AfterCStore(object sender, AfterCStoreEventArgs e)
{
string msg;
msg = string.Format("{0} store complete. Status: {1}", e.FileInfo.FullName, e.Status);
Console.WriteLine(msg);
if (e.Status != DicomCommandStatusType.Success)
{
string statusAllString = e.StatusAll.ToString(StatusFormatFlags.IgnoreStatus, "\n", "\t");
Console.WriteLine(statusAllString);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
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