public void Store(
DicomScp Scp,
string Dir,
string SearchPattern,
bool Recurse
)
public:
void Store(
DicomScp^ Scp,
String^ Dir,
String^ SearchPattern,
bool Recurse
)
Scp
The peer connection to send the C-MOVE-REQ to.
Dir
The file directory to search for DICOM files.
SearchPattern
The search pattern.
Recurse
If set to true
recurse the directory.
Stores all DICOM files in the specified directory to a DICOM server.
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