changeset 3769:eb044cc49d51

compatibility with DCMTK 3.6.0
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 17 Mar 2020 16:36:14 +0100
parents 6110a4995ace
children 66e18aad0654 74889e6f6d68
files Core/DicomNetworking/Internals/CommandDispatcher.cpp Core/DicomParsing/FromDcmtkBridge.cpp Core/DicomParsing/FromDcmtkBridge_TransferSyntaxes.impl.h Resources/DicomTransferSyntaxes.json Resources/GenerateTransferSyntaxesDcmtk.mustache
diffstat 5 files changed, 228 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/Core/DicomNetworking/Internals/CommandDispatcher.cpp	Tue Mar 17 15:02:23 2020 +0100
+++ b/Core/DicomNetworking/Internals/CommandDispatcher.cpp	Tue Mar 17 16:36:14 2020 +0100
@@ -478,6 +478,7 @@
           storageTransferSyntaxes.push_back(UID_MPEG2MainProfileAtHighLevelTransferSyntax);
         }
 
+#if DCMTK_VERSION_NUMBER >= 361
         // New in Orthanc 1.6.0
         if (!server.HasApplicationEntityFilter() ||
             server.GetApplicationEntityFilter().IsAllowedTransferSyntax(remoteIp, remoteAet, calledAet, TransferSyntax_Mpeg4))
@@ -488,6 +489,7 @@
           storageTransferSyntaxes.push_back(UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax);
           storageTransferSyntaxes.push_back(UID_MPEG4StereoHighProfileLevel4_2TransferSyntax);
         }
+#endif
 
         if (!server.HasApplicationEntityFilter() ||
             server.GetApplicationEntityFilter().IsAllowedTransferSyntax(remoteIp, remoteAet, calledAet, TransferSyntax_Rle))
--- a/Core/DicomParsing/FromDcmtkBridge.cpp	Tue Mar 17 15:02:23 2020 +0100
+++ b/Core/DicomParsing/FromDcmtkBridge.cpp	Tue Mar 17 16:36:14 2020 +0100
@@ -68,10 +68,11 @@
 #include <dcmtk/dcmdata/dcdicent.h>
 #include <dcmtk/dcmdata/dcdict.h>
 #include <dcmtk/dcmdata/dcfilefo.h>
+#include <dcmtk/dcmdata/dcistrmb.h>
 #include <dcmtk/dcmdata/dcostrmb.h>
 #include <dcmtk/dcmdata/dcpixel.h>
 #include <dcmtk/dcmdata/dcuid.h>
-#include <dcmtk/dcmdata/dcistrmb.h>
+#include <dcmtk/dcmdata/dcxfer.h>
 
 #include <dcmtk/dcmdata/dcvrae.h>
 #include <dcmtk/dcmdata/dcvras.h>
--- a/Core/DicomParsing/FromDcmtkBridge_TransferSyntaxes.impl.h	Tue Mar 17 15:02:23 2020 +0100
+++ b/Core/DicomParsing/FromDcmtkBridge_TransferSyntaxes.impl.h	Tue Mar 17 16:36:14 2020 +0100
@@ -56,75 +56,147 @@
         return true;
 
       case DicomTransferSyntax_JPEGProcess1:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess1TransferSyntax;
+#  else
         target = EXS_JPEGProcess1;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess2_4:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess2_4TransferSyntax;
+#  else
         target = EXS_JPEGProcess2_4;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess3_5:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess3_5TransferSyntax;
+#  else
         target = EXS_JPEGProcess3_5;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess6_8:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess6_8TransferSyntax;
+#  else
         target = EXS_JPEGProcess6_8;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess7_9:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess7_9TransferSyntax;
+#  else
         target = EXS_JPEGProcess7_9;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess10_12:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess10_12TransferSyntax;
+#  else
         target = EXS_JPEGProcess10_12;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess11_13:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess11_13TransferSyntax;
+#  else
         target = EXS_JPEGProcess11_13;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess14:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess14TransferSyntax;
+#  else
         target = EXS_JPEGProcess14;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess15:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess15TransferSyntax;
+#  else
         target = EXS_JPEGProcess15;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess16_18:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess16_18TransferSyntax;
+#  else
         target = EXS_JPEGProcess16_18;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess17_19:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess17_19TransferSyntax;
+#  else
         target = EXS_JPEGProcess17_19;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess20_22:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess20_22TransferSyntax;
+#  else
         target = EXS_JPEGProcess20_22;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess21_23:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess21_23TransferSyntax;
+#  else
         target = EXS_JPEGProcess21_23;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess24_26:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess24_26TransferSyntax;
+#  else
         target = EXS_JPEGProcess24_26;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess25_27:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess25_27TransferSyntax;
+#  else
         target = EXS_JPEGProcess25_27;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess28:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess28TransferSyntax;
+#  else
         target = EXS_JPEGProcess28;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess29:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess29TransferSyntax;
+#  else
         target = EXS_JPEGProcess29;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGProcess14SV1:
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = EXS_JPEGProcess14SV1TransferSyntax;
+#  else
         target = EXS_JPEGProcess14SV1;
+#  endif
         return true;
 
       case DicomTransferSyntax_JPEGLSLossless:
@@ -167,25 +239,35 @@
         target = EXS_MPEG2MainProfileAtHighLevel;
         return true;
 
+#if DCMTK_VERSION_NUMBER >= 361
       case DicomTransferSyntax_MPEG4HighProfileLevel4_1:
         target = EXS_MPEG4HighProfileLevel4_1;
         return true;
+#endif
 
+#if DCMTK_VERSION_NUMBER >= 361
       case DicomTransferSyntax_MPEG4BDcompatibleHighProfileLevel4_1:
         target = EXS_MPEG4BDcompatibleHighProfileLevel4_1;
         return true;
+#endif
 
+#if DCMTK_VERSION_NUMBER >= 361
       case DicomTransferSyntax_MPEG4HighProfileLevel4_2_For2DVideo:
         target = EXS_MPEG4HighProfileLevel4_2_For2DVideo;
         return true;
+#endif
 
+#if DCMTK_VERSION_NUMBER >= 361
       case DicomTransferSyntax_MPEG4HighProfileLevel4_2_For3DVideo:
         target = EXS_MPEG4HighProfileLevel4_2_For3DVideo;
         return true;
+#endif
 
+#if DCMTK_VERSION_NUMBER >= 361
       case DicomTransferSyntax_MPEG4StereoHighProfileLevel4_2:
         target = EXS_MPEG4StereoHighProfileLevel4_2;
         return true;
+#endif
 
 #if DCMTK_VERSION_NUMBER >= 362
       case DicomTransferSyntax_HEVCMainProfileLevel5_1:
@@ -230,75 +312,147 @@
         target = DicomTransferSyntax_BigEndianExplicit;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess1TransferSyntax:
+#  else
       case EXS_JPEGProcess1:
+#  endif
         target = DicomTransferSyntax_JPEGProcess1;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess2_4TransferSyntax:
+#  else
       case EXS_JPEGProcess2_4:
+#  endif
         target = DicomTransferSyntax_JPEGProcess2_4;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess3_5TransferSyntax:
+#  else
       case EXS_JPEGProcess3_5:
+#  endif
         target = DicomTransferSyntax_JPEGProcess3_5;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess6_8TransferSyntax:
+#  else
       case EXS_JPEGProcess6_8:
+#  endif
         target = DicomTransferSyntax_JPEGProcess6_8;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess7_9TransferSyntax:
+#  else
       case EXS_JPEGProcess7_9:
+#  endif
         target = DicomTransferSyntax_JPEGProcess7_9;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess10_12TransferSyntax:
+#  else
       case EXS_JPEGProcess10_12:
+#  endif
         target = DicomTransferSyntax_JPEGProcess10_12;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess11_13TransferSyntax:
+#  else
       case EXS_JPEGProcess11_13:
+#  endif
         target = DicomTransferSyntax_JPEGProcess11_13;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess14TransferSyntax:
+#  else
       case EXS_JPEGProcess14:
+#  endif
         target = DicomTransferSyntax_JPEGProcess14;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess15TransferSyntax:
+#  else
       case EXS_JPEGProcess15:
+#  endif
         target = DicomTransferSyntax_JPEGProcess15;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess16_18TransferSyntax:
+#  else
       case EXS_JPEGProcess16_18:
+#  endif
         target = DicomTransferSyntax_JPEGProcess16_18;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess17_19TransferSyntax:
+#  else
       case EXS_JPEGProcess17_19:
+#  endif
         target = DicomTransferSyntax_JPEGProcess17_19;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess20_22TransferSyntax:
+#  else
       case EXS_JPEGProcess20_22:
+#  endif
         target = DicomTransferSyntax_JPEGProcess20_22;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess21_23TransferSyntax:
+#  else
       case EXS_JPEGProcess21_23:
+#  endif
         target = DicomTransferSyntax_JPEGProcess21_23;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess24_26TransferSyntax:
+#  else
       case EXS_JPEGProcess24_26:
+#  endif
         target = DicomTransferSyntax_JPEGProcess24_26;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess25_27TransferSyntax:
+#  else
       case EXS_JPEGProcess25_27:
+#  endif
         target = DicomTransferSyntax_JPEGProcess25_27;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess28TransferSyntax:
+#  else
       case EXS_JPEGProcess28:
+#  endif
         target = DicomTransferSyntax_JPEGProcess28;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess29TransferSyntax:
+#  else
       case EXS_JPEGProcess29:
+#  endif
         target = DicomTransferSyntax_JPEGProcess29;
         return true;
 
+#  if DCMTK_VERSION_NUMBER <= 360
+      case EXS_JPEGProcess14SV1TransferSyntax:
+#  else
       case EXS_JPEGProcess14SV1:
+#  endif
         target = DicomTransferSyntax_JPEGProcess14SV1;
         return true;
 
@@ -342,25 +496,35 @@
         target = DicomTransferSyntax_MPEG2MainProfileAtHighLevel;
         return true;
 
+#if DCMTK_VERSION_NUMBER >= 361
       case EXS_MPEG4HighProfileLevel4_1:
         target = DicomTransferSyntax_MPEG4HighProfileLevel4_1;
         return true;
+#endif
 
+#if DCMTK_VERSION_NUMBER >= 361
       case EXS_MPEG4BDcompatibleHighProfileLevel4_1:
         target = DicomTransferSyntax_MPEG4BDcompatibleHighProfileLevel4_1;
         return true;
+#endif
 
+#if DCMTK_VERSION_NUMBER >= 361
       case EXS_MPEG4HighProfileLevel4_2_For2DVideo:
         target = DicomTransferSyntax_MPEG4HighProfileLevel4_2_For2DVideo;
         return true;
+#endif
 
+#if DCMTK_VERSION_NUMBER >= 361
       case EXS_MPEG4HighProfileLevel4_2_For3DVideo:
         target = DicomTransferSyntax_MPEG4HighProfileLevel4_2_For3DVideo;
         return true;
+#endif
 
+#if DCMTK_VERSION_NUMBER >= 361
       case EXS_MPEG4StereoHighProfileLevel4_2:
         target = DicomTransferSyntax_MPEG4StereoHighProfileLevel4_2;
         return true;
+#endif
 
 #if DCMTK_VERSION_NUMBER >= 362
       case EXS_HEVCMainProfileLevel5_1:
--- a/Resources/DicomTransferSyntaxes.json	Tue Mar 17 15:02:23 2020 +0100
+++ b/Resources/DicomTransferSyntaxes.json	Tue Mar 17 16:36:14 2020 +0100
@@ -40,6 +40,7 @@
     "Retired" : false,
     "Note" : "Default Transfer Syntax for Lossy JPEG 8-bit Image Compression",
     "DCMTK" : "EXS_JPEGProcess1",
+    "DCMTK360" : "EXS_JPEGProcess1TransferSyntax",
     "GDCM" : "gdcm::TransferSyntax::JPEGBaselineProcess1"
   },
   
@@ -50,6 +51,7 @@
     "Retired" : false,
     "Note" : "Default Transfer Syntax for Lossy JPEG (lossy, 8/12 bit), 12-bit Image Compression (Process 4 only)",
     "DCMTK" : "EXS_JPEGProcess2_4",
+    "DCMTK360" : "EXS_JPEGProcess2_4TransferSyntax",
     "GDCM" : "gdcm::TransferSyntax::JPEGExtendedProcess2_4"
   },
 
@@ -58,7 +60,8 @@
     "Name" : "JPEG Extended Sequential (lossy, 8/12 bit), arithmetic coding",
     "Value" : "JPEGProcess3_5",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess3_5"
+    "DCMTK" : "EXS_JPEGProcess3_5",
+    "DCMTK360" : "EXS_JPEGProcess3_5TransferSyntax"
   },
 
   {
@@ -66,7 +69,8 @@
     "Name" : "JPEG Spectral Selection, Nonhierarchical (lossy, 8/12 bit)",
     "Value" : "JPEGProcess6_8",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess6_8"
+    "DCMTK" : "EXS_JPEGProcess6_8",
+    "DCMTK360" : "EXS_JPEGProcess6_8TransferSyntax"
   },
 
   {
@@ -74,7 +78,8 @@
     "Name" : "JPEG Spectral Selection, Nonhierarchical (lossy, 8/12 bit), arithmetic coding",
     "Value" : "JPEGProcess7_9",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess7_9"
+    "DCMTK" : "EXS_JPEGProcess7_9",
+    "DCMTK360" : "EXS_JPEGProcess7_9TransferSyntax"
   },
 
   {
@@ -82,7 +87,8 @@
     "Name" : "JPEG Full Progression, Nonhierarchical (lossy, 8/12 bit)",
     "Value" : "JPEGProcess10_12",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess10_12"
+    "DCMTK" : "EXS_JPEGProcess10_12",
+    "DCMTK360" : "EXS_JPEGProcess10_12TransferSyntax"
   },
 
   {
@@ -90,7 +96,8 @@
     "Name" : "JPEG Full Progression, Nonhierarchical (lossy, 8/12 bit), arithmetic coding",
     "Value" : "JPEGProcess11_13",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess11_13"
+    "DCMTK" : "EXS_JPEGProcess11_13",
+    "DCMTK360" : "EXS_JPEGProcess11_13TransferSyntax"
   },
 
   {
@@ -99,6 +106,7 @@
     "Value" : "JPEGProcess14",
     "Retired" : false,
     "DCMTK" : "EXS_JPEGProcess14",
+    "DCMTK360" : "EXS_JPEGProcess14TransferSyntax",
     "GDCM" : "gdcm::TransferSyntax::JPEGLosslessProcess14"
   },
 
@@ -107,7 +115,8 @@
     "Name" : "JPEG Lossless with any selection value, arithmetic coding",
     "Value" : "JPEGProcess15",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess15"
+    "DCMTK" : "EXS_JPEGProcess15",
+    "DCMTK360" : "EXS_JPEGProcess15TransferSyntax"
   },
   
   {
@@ -115,7 +124,8 @@
     "Name" : "JPEG Extended Sequential, Hierarchical (lossy, 8/12 bit)",
     "Value" : "JPEGProcess16_18",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess16_18"
+    "DCMTK" : "EXS_JPEGProcess16_18",
+    "DCMTK360" : "EXS_JPEGProcess16_18TransferSyntax"
   },
   
   {
@@ -123,7 +133,8 @@
     "Name" : "JPEG Extended Sequential, Hierarchical (lossy, 8/12 bit), arithmetic coding",
     "Value" : "JPEGProcess17_19",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess17_19"
+    "DCMTK" : "EXS_JPEGProcess17_19",
+    "DCMTK360" : "EXS_JPEGProcess17_19TransferSyntax"
   },
   
   {
@@ -131,7 +142,8 @@
     "Name" : "JPEG Spectral Selection, Hierarchical (lossy, 8/12 bit)",
     "Value" : "JPEGProcess20_22",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess20_22"
+    "DCMTK" : "EXS_JPEGProcess20_22",
+    "DCMTK360" : "EXS_JPEGProcess20_22TransferSyntax"
   },
   
   {
@@ -139,7 +151,8 @@
     "Name" : "JPEG Spectral Selection, Hierarchical (lossy, 8/12 bit), arithmetic coding",
     "Value" : "JPEGProcess21_23",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess21_23"
+    "DCMTK" : "EXS_JPEGProcess21_23",
+    "DCMTK360" : "EXS_JPEGProcess21_23TransferSyntax"
   },
   
   {
@@ -147,7 +160,8 @@
     "Name" : "JPEG Full Progression, Hierarchical (lossy, 8/12 bit)",
     "Value" : "JPEGProcess24_26",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess24_26"
+    "DCMTK" : "EXS_JPEGProcess24_26",
+    "DCMTK360" : "EXS_JPEGProcess24_26TransferSyntax"
   },
   
   {
@@ -155,7 +169,8 @@
     "Name" : "JPEG Full Progression, Hierarchical (lossy, 8/12 bit), arithmetic coding",
     "Value" : "JPEGProcess25_27",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess25_27"
+    "DCMTK" : "EXS_JPEGProcess25_27",
+    "DCMTK360" : "EXS_JPEGProcess25_27TransferSyntax"
   },
   
   {
@@ -163,7 +178,8 @@
     "Name" : "JPEG Lossless, Hierarchical",
     "Value" : "JPEGProcess28",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess28"
+    "DCMTK" : "EXS_JPEGProcess28",
+    "DCMTK360" : "EXS_JPEGProcess28TransferSyntax"
   },
   
   {
@@ -171,7 +187,8 @@
     "Name" : "JPEG Lossless, Hierarchical, arithmetic coding",
     "Value" : "JPEGProcess29",
     "Retired" : true,
-    "DCMTK" : "EXS_JPEGProcess29"
+    "DCMTK" : "EXS_JPEGProcess29",
+    "DCMTK360" : "EXS_JPEGProcess29TransferSyntax"
   },
 
   {
@@ -181,6 +198,7 @@
     "Retired" : false,
     "Note" : "Default Transfer Syntax for Lossless JPEG Image Compression",
     "DCMTK" : "EXS_JPEGProcess14SV1",
+    "DCMTK360" : "EXS_JPEGProcess14SV1TransferSyntax",
     "GDCM" : "gdcm::TransferSyntax::JPEGLosslessProcess14_1"
   },
 
@@ -275,7 +293,8 @@
     "Name" : "MPEG4 High Profile / Level 4.1",
     "Value" : "MPEG4HighProfileLevel4_1",
     "Retired" : false,
-    "DCMTK" : "EXS_MPEG4HighProfileLevel4_1"
+    "DCMTK" : "EXS_MPEG4HighProfileLevel4_1",
+    "SinceDCMTK" : "361"
   },
 
   {
@@ -283,7 +302,8 @@
     "Name" : "MPEG4 BD-compatible High Profile / Level 4.1",
     "Value" : "MPEG4BDcompatibleHighProfileLevel4_1",
     "Retired" : false,
-    "DCMTK" : "EXS_MPEG4BDcompatibleHighProfileLevel4_1"
+    "DCMTK" : "EXS_MPEG4BDcompatibleHighProfileLevel4_1",
+    "SinceDCMTK" : "361"
   },
 
   {
@@ -291,7 +311,8 @@
     "Name" : "MPEG4 High Profile / Level 4.2 For 2D Video",
     "Value" : "MPEG4HighProfileLevel4_2_For2DVideo",
     "Retired" : false,
-    "DCMTK" : "EXS_MPEG4HighProfileLevel4_2_For2DVideo"
+    "DCMTK" : "EXS_MPEG4HighProfileLevel4_2_For2DVideo",
+    "SinceDCMTK" : "361"
   },
 
   {
@@ -299,7 +320,8 @@
     "Name" : "MPEG4 High Profile / Level 4.2 For 3D Video",
     "Value" : "MPEG4HighProfileLevel4_2_For3DVideo",
     "Retired" : false,
-    "DCMTK" : "EXS_MPEG4HighProfileLevel4_2_For3DVideo"
+    "DCMTK" : "EXS_MPEG4HighProfileLevel4_2_For3DVideo",
+    "SinceDCMTK" : "361"
   },
 
   {
@@ -307,7 +329,8 @@
     "Name" : "1.2.840.10008.1.2.4.106",
     "Value" : "MPEG4StereoHighProfileLevel4_2",
     "Retired" : false,
-    "DCMTK" : "EXS_MPEG4StereoHighProfileLevel4_2"
+    "DCMTK" : "EXS_MPEG4StereoHighProfileLevel4_2",
+    "SinceDCMTK" : "361"
   },
 
   {
--- a/Resources/GenerateTransferSyntaxesDcmtk.mustache	Tue Mar 17 15:02:23 2020 +0100
+++ b/Resources/GenerateTransferSyntaxesDcmtk.mustache	Tue Mar 17 16:36:14 2020 +0100
@@ -45,7 +45,16 @@
 #if DCMTK_VERSION_NUMBER >= {{SinceDCMTK}}
       {{/SinceDCMTK}}
       case DicomTransferSyntax_{{Value}}:
+        {{#DCMTK360}}
+#  if DCMTK_VERSION_NUMBER <= 360
+        target = {{DCMTK360}};
+#  else
         target = {{DCMTK}};
+#  endif
+        {{/DCMTK360}}
+        {{^DCMTK360}}
+        target = {{DCMTK}};
+        {{/DCMTK360}}
         return true;
       {{#SinceDCMTK}}
 #endif
@@ -69,7 +78,16 @@
       {{#SinceDCMTK}}
 #if DCMTK_VERSION_NUMBER >= {{SinceDCMTK}}
       {{/SinceDCMTK}}
+      {{#DCMTK360}}
+#  if DCMTK_VERSION_NUMBER <= 360
+      case {{DCMTK360}}:
+#  else
       case {{DCMTK}}:
+#  endif
+      {{/DCMTK360}}
+      {{^DCMTK360}}
+      case {{DCMTK}}:
+      {{/DCMTK360}}
         target = DicomTransferSyntax_{{Value}};
         return true;
       {{#SinceDCMTK}}