←Select platform

Store(DicomScp,string,string,bool,bool) Method

Summary

Sends a C-STORE-REQ message to a peer member of a connection defined by Scp.

Syntax

C#
VB
C++
public void Store( 
   DicomScp Scp, 
   string Dir, 
   string SearchPattern, 
   bool Recurse, 
   bool singleConnection 
) 
  
Public Overloads Sub Store( _ 
   ByVal Scp As Leadtools.Dicom.Scu.DicomScp, _ 
   ByVal Dir As String, _ 
   ByVal SearchPattern As String, _ 
   ByVal Recurse As Boolean, _ 
   ByVal singleConnection As Boolean _ 
)  
public: 
void Store(  
   Leadtools.Dicom.Scu.DicomScp^ Scp, 
   String^ Dir, 
   String^ SearchPattern, 
   bool Recurse, 
   bool singleConnection 
)  

Parameters

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.

singleConnection
If set to true use a single DICOM connection for all C-STORE.

Example

Stores all DICOM files in the specified directory to a DICOM server.

C#
VB
using Leadtools; 
using Leadtools.Dicom.Scu; 
using Leadtools.Dicom.Scu.Common; 
using Leadtools.Dicom; 
using Leadtools.Dicom.Common.DataTypes; 
 
 
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, "*.*", 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); 
} 
 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Dicom.Scu 
Imports Leadtools.Dicom.Scu.Common 
Imports Leadtools.Dicom 
Imports Leadtools.Dicom.Common.DataTypes 
 
 
Public Sub StoreDirectory() 
   DicomEngine.Startup() 
   DicomNet.Startup() 
 
   Dim cstoreFolder As StoreScu = New StoreScu() 
   Dim scp As DicomScp = New DicomScp() 
 
   ' 
   ' Change these parameters to reflect the calling AETitle. 
   ' 
   cstoreFolder.AETitle = "LEAD_CLIENT" 
   cstoreFolder.HostPort = 1000 
   cstoreFolder.HostAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(Function(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") 
 
   AddHandler cstoreFolder.BeforeAssociateRequest, AddressOf cstoreFolder_BeforeAssociateRequest 
   AddHandler cstoreFolder.AfterAssociateRequest, AddressOf cstoreFolder_AfterAssociateRequest 
   AddHandler cstoreFolder.BeforeCStore, AddressOf cstoreFolder_BeforeCStore 
   AddHandler cstoreFolder.AfterCStore, AddressOf cstoreFolder_AfterCStore 
   cstoreFolder.Compression = Compression.Native 
   cstoreFolder.Store(scp, LEAD_VARS.ImagesDir, "*.*", False) 
 
   DicomNet.Shutdown() 
   DicomEngine.Shutdown() 
End Sub 
 
Private Sub cstoreFolder_BeforeAssociateRequest(ByVal sender As Object, ByVal e As BeforeAssociateRequestEventArgs) 
   Console.WriteLine("Before AssociateRequest") 
End Sub 
 
Private Sub cstoreFolder_AfterAssociateRequest(ByVal sender As Object, ByVal e As AfterAssociateRequestEventArgs) 
   Dim scu As StoreScu = TryCast(sender, StoreScu) 
 
   Console.WriteLine("After AssociateRequest") 
   Dim i As Integer = 0 
   Do While i < e.Associate.PresentationContextCount 
      Dim pid As Byte = e.Associate.GetPresentationContextID(i) 
      Dim absSyntax As String = e.Associate.GetAbstract(pid) 
      Dim result As DicomAssociateAcceptResultType = e.Associate.GetResult(pid) 
      Dim uid As DicomUid = DicomUidTable.Instance.Find(absSyntax) 
 
      Console.WriteLine(Constants.vbTab & "PresentationContext ({0})", pid) 
      Console.WriteLine(Constants.vbTab + Constants.vbTab & "AbstractSyntax: {0}", absSyntax) 
      If Not uid Is Nothing Then 
         Console.WriteLine(Constants.vbTab + Constants.vbTab & "Description: {0}", uid.Name) 
      End If 
      Console.WriteLine(Constants.vbTab + Constants.vbTab & "Result: {0}", result) 
      i += 1 
   Loop 
End Sub 
 
Private Sub cstoreFolder_BeforeCStore(ByVal sender As Object, ByVal e As BeforeCStoreEventArgs) 
   ' 
   ' Stop storing if we received an error 
   ' 
   If Not e.Error Is Nothing Then 
      e.Skip = SkipMethod.AllFiles 
   End If 
End Sub 
 
Private Sub cstoreFolder_AfterCStore(ByVal sender As Object, ByVal e As AfterCStoreEventArgs) 
   Dim msg As String 
 
   msg = String.Format("{0} store complete. Status: {1}", e.FileInfo.FullName, e.Status) 
   Console.WriteLine(msg) 
End Sub 
 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom.Scu Assembly