Sends a C-STORE-REQ message to a peer member of a connection defined by Scp.
             
             
             
            
Syntax
| Visual Basic (Usage) |  Copy Code | 
|---|
Dim instance As StoreScu
Dim Scp As DicomScp
Dim Dir As String
Dim SearchPattern As String
Dim Recurse As Boolean
 
instance.Store(Scp, Dir, SearchPattern, Recurse)
  | 
 
            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. 
 
             
              
             
             
            
Example
Stores all DICOM files in the specified directory to a DICOM server.
 
             | Visual Basic |  Copy Code | 
|---|
Public Sub StoreDirectory() 
    DicomEngine.Startup() 
    DicomNet.Startup() 
 
    Dim cstoreFolder As StoreScu = New StoreScu() 
    Dim scp As DicomScp = New DicomScp() 
 
     
     
     
    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, LeadtoolsExamples.Common.ImagesPath.Path, "*.*", 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) 
     
     
     
    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 | 
 
| C# |  Copy Code | 
|---|
public void StoreDirectory()  {      DicomEngine.Startup();      DicomNet.Startup();        StoreScu storeDirectory = new StoreScu();      DicomScp scp = new DicomScp();        //      // Change these parameters to reflect your Dicom 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;      string ImagesFolder = LeadtoolsExamples.Common.ImagesPath.Path;      storeDirectory.Store(scp, ImagesFolder, "*.*", 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);  } | 
 
  
            
            
            
Requirements
Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
 
            
            
See Also