diff Core/DicomNetworking/DicomStoreUserConnection.h @ 3893:7a5fa8f307e9 transcoding

reorganization
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 06 May 2020 12:48:28 +0200
parents 904575738462
children 8f7ad4989fec
line wrap: on
line diff
--- a/Core/DicomNetworking/DicomStoreUserConnection.h	Tue May 05 18:08:51 2020 +0200
+++ b/Core/DicomNetworking/DicomStoreUserConnection.h	Wed May 06 12:48:28 2020 +0200
@@ -33,8 +33,16 @@
 
 #pragma once
 
+#if !defined(ORTHANC_ENABLE_DCMTK_TRANSCODING)
+#  error Macro ORTHANC_ENABLE_DCMTK_TRANSCODING must be defined to use this file
+#endif
+
 #include "DicomAssociationParameters.h"
 
+#if ORTHANC_ENABLE_DCMTK_TRANSCODING == 1
+#  include "../DicomParsing/IDicomTranscoder.h"
+#endif
+
 #include <boost/shared_ptr.hpp>
 #include <boost/noncopyable.hpp>
 #include <set>
@@ -94,6 +102,10 @@
                                       const std::string& sopClassUid,
                                       DicomTransferSyntax transferSyntax);
 
+    void LookupTranscoding(std::set<DicomTransferSyntax>& acceptedSyntaxes,
+                           const std::string& sopClassUid,
+                           DicomTransferSyntax sourceSyntax);
+
   public:
     DicomStoreUserConnection(const DicomAssociationParameters& params);
     
@@ -168,8 +180,22 @@
                           DicomTransferSyntax& transferSyntax,
                           DcmFileFormat& dicom);
 
-    void LookupTranscoding(std::set<DicomTransferSyntax>& acceptedSyntaxes,
-                           const std::string& sopClassUid,
-                           DicomTransferSyntax sourceSyntax);
+    void Transcode(std::string& sopClassUid /* out */,
+                   std::string& sopInstanceUid /* out */,
+                   IDicomTranscoder& transcoder,
+                   const void* buffer,
+                   size_t size,
+                   const std::string& moveOriginatorAET,
+                   uint16_t moveOriginatorID);
+
+    void Transcode(std::string& sopClassUid /* out */,
+                   std::string& sopInstanceUid /* out */,
+                   IDicomTranscoder& transcoder,
+                   const void* buffer,
+                   size_t size)
+    {
+      Transcode(sopClassUid, sopInstanceUid, transcoder,
+                buffer, size, "", 0);  // Not a C-Move
+    }
   };
 }