diff Core/DicomNetworking/DicomStoreUserConnection.h @ 3831:83ea6939293d

starting DicomStoreUserConnection::Store()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 10 Apr 2020 17:56:12 +0200
parents e82bd07c384e
children 5bba4d249422
line wrap: on
line diff
--- a/Core/DicomNetworking/DicomStoreUserConnection.h	Fri Apr 10 17:29:11 2020 +0200
+++ b/Core/DicomNetworking/DicomStoreUserConnection.h	Fri Apr 10 17:56:12 2020 +0200
@@ -41,6 +41,8 @@
 #include <stdint.h>  // For uint8_t
 
 
+class DcmDataset;
+
 namespace Orthanc
 {
   /**
@@ -62,6 +64,7 @@
   **/
 
   class DicomAssociation;  // Forward declaration for PImpl design pattern
+  class ParsedDicomFile;
 
   class DicomStoreUserConnection : public boost::noncopyable
   {
@@ -78,11 +81,12 @@
     // Return "false" if there is not enough room remaining in the association
     bool ProposeStorageClass(const std::string& sopClassUid,
                              const std::set<DicomTransferSyntax>& syntaxes);
-    
+        
+    // Should only be used if transcoding
     bool LookupPresentationContext(uint8_t& presentationContextId,
                                    const std::string& sopClassUid,
                                    DicomTransferSyntax transferSyntax);
-        
+
   public:
     DicomStoreUserConnection(const DicomAssociationParameters& params);
     
@@ -124,8 +128,28 @@
     void PrepareStorageClass(const std::string& sopClassUid,
                              DicomTransferSyntax syntax);
 
+    // TODO => to private
     bool NegotiatePresentationContext(uint8_t& presentationContextId,
                                       const std::string& sopClassUid,
                                       DicomTransferSyntax transferSyntax);
+
+    void Store(std::string& sopClassUid,
+               std::string& sopInstanceUid,
+               DcmDataset& dataset,
+               const std::string& moveOriginatorAET,
+               uint16_t moveOriginatorID);
+
+    void Store(std::string& sopClassUid,
+               std::string& sopInstanceUid,
+               ParsedDicomFile& parsed,
+               const std::string& moveOriginatorAET,
+               uint16_t moveOriginatorID);
+
+    void Store(std::string& sopClassUid,
+               std::string& sopInstanceUid,
+               const void* buffer,
+               size_t size,
+               const std::string& moveOriginatorAET,
+               uint16_t moveOriginatorID);
   };
 }