diff OrthancServer/ServerContext.h @ 3894:8f7ad4989fec transcoding

transcoding to uncompressed transfer syntaxes over DICOM protocol is implemented
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 07 May 2020 11:13:29 +0200
parents 023b2a9f3aa1
children d1273d7cc200
line wrap: on
line diff
--- a/OrthancServer/ServerContext.h	Wed May 06 12:48:28 2020 +0200
+++ b/OrthancServer/ServerContext.h	Thu May 07 11:13:29 2020 +0200
@@ -40,6 +40,7 @@
 #include "ServerJobs/IStorageCommitmentFactory.h"
 
 #include "../Core/Cache/MemoryCache.h"
+#include "../Core/DicomParsing/IDicomTranscoder.h"
 
 
 namespace Orthanc
@@ -225,6 +226,9 @@
 
     std::unique_ptr<StorageCommitmentReports>  storageCommitmentReports_;
 
+    bool transcodingEnabled_;
+    std::unique_ptr<IDicomTranscoder>  dcmtkTranscoder_;
+
   public:
     class DicomCacheLocker : public boost::noncopyable
     {
@@ -450,5 +454,20 @@
     {
       return *storageCommitmentReports_;
     }
+
+    void StoreWithTranscoding(std::string& sopClassUid,
+                              std::string& sopInstanceUid,
+                              DicomStoreUserConnection& connection,
+                              const std::string& dicom,
+                              bool hasMoveOriginator,
+                              const std::string& moveOriginatorAet,
+                              uint16_t moveOriginatorId);
+
+    // This method can be used even if "TranscodingEnabled" is set to "false"
+    bool TranscodeMemoryBuffer(std::string& target,
+                               bool& hasSopInstanceUidChanged,
+                               const std::string& source,
+                               const std::set<DicomTransferSyntax>& allowedSyntaxes,
+                               bool allowNewSopInstanceUid);
   };
 }