changeset 174:e9be3c9294d4 java-code-model

[IMPORTANT] replaced old auto-generated code with Java code model
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 27 Jun 2024 18:02:06 +0200
parents 3c72d1f4c2a5
children c012edac593e
files CodeAnalysis/GenerateOrthancSDK.py Sources/Autogenerated/sdk_GlobalFunctions.impl.h Sources/Autogenerated/sdk_OrthancPluginDicomInstance.methods.h Sources/Autogenerated/sdk_OrthancPluginFindAnswers.methods.h Sources/Autogenerated/sdk_OrthancPluginFindMatcher.methods.h Sources/Autogenerated/sdk_OrthancPluginFindQuery.methods.h Sources/Autogenerated/sdk_OrthancPluginImage.methods.h Sources/Autogenerated/sdk_OrthancPluginJob.methods.h Sources/Autogenerated/sdk_OrthancPluginPeers.methods.h Sources/Autogenerated/sdk_OrthancPluginRestOutput.methods.h Sources/Autogenerated/sdk_OrthancPluginStorageArea.methods.h Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.impl.h Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.methods.h Sources/Autogenerated/sdk_OrthancPluginWorklistQuery.methods.h Sources/DicomScpCallbacks.cpp Sources/Plugin.cpp
diffstat 16 files changed, 245 insertions(+), 120 deletions(-) [+]
line wrap: on
line diff
--- a/CodeAnalysis/GenerateOrthancSDK.py	Thu Jun 27 17:50:51 2024 +0200
+++ b/CodeAnalysis/GenerateOrthancSDK.py	Thu Jun 27 18:02:06 2024 +0200
@@ -81,14 +81,6 @@
         },
     ],
 
-    'OrthancPluginWorklistAnswers' : [
-        {
-            'method_name' : 'WorklistAddAnswer',
-            'implementation' : 'WorklistAddAnswer',
-            'sdk_function' : 'OrthancPluginWorklistAddAnswer',
-        },
-    ],
-
     'OrthancPluginDicomInstance' : [
         {
             'method_name' : 'GetInstanceData',
--- a/Sources/Autogenerated/sdk_GlobalFunctions.impl.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_GlobalFunctions.impl.h	Thu Jun 27 18:02:06 2024 +0200
@@ -30,6 +30,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   const char* s = OrthancPluginAutodetectMimeType(OrthancPlugins::GetGlobalContext(), arg0);
   
   if (s == NULL)
@@ -56,6 +57,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginBufferCompression(OrthancPlugins::GetGlobalContext(), *buffer, arg0.buf, arg0.len, static_cast<OrthancPluginCompressionType>(arg2), arg3);
   PyBuffer_Release(&arg0);
@@ -75,6 +77,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginCheckVersion()");
 
 
+
   long value = OrthancPluginCheckVersion(OrthancPlugins::GetGlobalContext());
   
   return PyLong_FromLong(value);
@@ -84,15 +87,16 @@
 {
   PythonLock::LogCall("Calling Python global function: OrthancPluginCheckVersionAdvanced()");
 
-  int arg0 = 0;
-  int arg1 = 0;
-  int arg2 = 0;
+  long int arg0 = 0;
+  long int arg1 = 0;
+  long int arg2 = 0;
 
-  if (!PyArg_ParseTuple(args, "iii", &arg0, &arg1, &arg2))
+  if (!PyArg_ParseTuple(args, "lll", &arg0, &arg1, &arg2))
   {
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
     return NULL;
   }
+
   long value = OrthancPluginCheckVersionAdvanced(OrthancPlugins::GetGlobalContext(), arg0, arg1, arg2);
   
   return PyLong_FromLong(value);
@@ -114,6 +118,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (6 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginCompressJpegImage(OrthancPlugins::GetGlobalContext(), *buffer, static_cast<OrthancPluginPixelFormat>(arg0), arg1, arg2, arg3, arg4.buf, arg5);
   PyBuffer_Release(&arg4);
@@ -143,6 +148,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (5 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginCompressPngImage(OrthancPlugins::GetGlobalContext(), *buffer, static_cast<OrthancPluginPixelFormat>(arg0), arg1, arg2, arg3, arg4.buf);
   PyBuffer_Release(&arg4);
@@ -168,6 +174,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginComputeMd5(OrthancPlugins::GetGlobalContext(), arg0.buf, arg0.len));
   PyBuffer_Release(&arg0);
@@ -193,6 +200,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginComputeSha1(OrthancPlugins::GetGlobalContext(), arg0.buf, arg0.len));
   PyBuffer_Release(&arg0);
@@ -207,6 +215,75 @@
   }
 }
 
+static PyObject* sdk_OrthancPluginCreateDicom(PyObject* module, PyObject* args)
+{
+  PythonLock::LogCall("Calling Python global function: OrthancPluginCreateDicom()");
+
+  const char* arg0 = NULL;
+  PyObject* arg1 = NULL;
+  long int arg2 = 0;
+
+  if (!PyArg_ParseTuple(args, "sOl", &arg0, &arg1, &arg2))
+  {
+    PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
+    return NULL;
+  }
+
+  if (arg1 != Py_None && Py_TYPE(arg1) != GetOrthancPluginImageType())
+  {
+    PyErr_SetString(PyExc_TypeError, "Invalid orthanc.OrthancPluginImage object");
+    return NULL;
+  }
+
+  OrthancPlugins::MemoryBuffer buffer;
+  OrthancPluginErrorCode code = OrthancPluginCreateDicom(OrthancPlugins::GetGlobalContext(), *buffer, arg0, arg1 == Py_None ? NULL : reinterpret_cast<sdk_OrthancPluginImage_Object*>(arg1)->object_, static_cast<OrthancPluginCreateDicomFlags>(arg2));
+  
+  if (code == OrthancPluginErrorCode_Success)
+  {
+    return PyBytes_FromStringAndSize(buffer.GetData(), buffer.GetSize());
+  }
+  else
+  {
+    PythonLock::RaiseException(code);
+    return NULL;  
+  }
+}
+
+static PyObject* sdk_OrthancPluginCreateDicom2(PyObject* module, PyObject* args)
+{
+  PythonLock::LogCall("Calling Python global function: OrthancPluginCreateDicom2()");
+
+  const char* arg0 = NULL;
+  PyObject* arg1 = NULL;
+  long int arg2 = 0;
+  const char* arg3 = NULL;
+
+  if (!PyArg_ParseTuple(args, "sOls", &arg0, &arg1, &arg2, &arg3))
+  {
+    PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (4 arguments expected)");
+    return NULL;
+  }
+
+  if (arg1 != Py_None && Py_TYPE(arg1) != GetOrthancPluginImageType())
+  {
+    PyErr_SetString(PyExc_TypeError, "Invalid orthanc.OrthancPluginImage object");
+    return NULL;
+  }
+
+  OrthancPlugins::MemoryBuffer buffer;
+  OrthancPluginErrorCode code = OrthancPluginCreateDicom2(OrthancPlugins::GetGlobalContext(), *buffer, arg0, arg1 == Py_None ? NULL : reinterpret_cast<sdk_OrthancPluginImage_Object*>(arg1)->object_, static_cast<OrthancPluginCreateDicomFlags>(arg2), arg3);
+  
+  if (code == OrthancPluginErrorCode_Success)
+  {
+    return PyBytes_FromStringAndSize(buffer.GetData(), buffer.GetSize());
+  }
+  else
+  {
+    PythonLock::RaiseException(code);
+    return NULL;  
+  }
+}
+
 static PyObject* sdk_OrthancPluginCreateDicomInstance(PyObject* module, PyObject* args)
 {
   PythonLock::LogCall("Calling Python global function: OrthancPluginCreateDicomInstance()");
@@ -218,6 +295,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   // This is the case of a constructor
   OrthancPluginDicomInstance* obj = OrthancPluginCreateDicomInstance(OrthancPlugins::GetGlobalContext(), arg0.buf, arg0.len);
   PyBuffer_Release(&arg0);
@@ -246,6 +324,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   // This is the case of a constructor
   OrthancPluginFindMatcher* obj = OrthancPluginCreateFindMatcher(OrthancPlugins::GetGlobalContext(), arg0.buf, arg0.len);
   PyBuffer_Release(&arg0);
@@ -276,6 +355,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
     return NULL;
   }
+
   // This is the case of a constructor
   OrthancPluginImage* obj = OrthancPluginCreateImage(OrthancPlugins::GetGlobalContext(), static_cast<OrthancPluginPixelFormat>(arg0), arg1, arg2);
   
@@ -304,6 +384,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginCreateMemoryBuffer(OrthancPlugins::GetGlobalContext(), *buffer, arg0);
   
@@ -330,6 +411,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   // This is the case of a constructor
   OrthancPluginImage* obj = OrthancPluginDecodeDicomImage(OrthancPlugins::GetGlobalContext(), arg0.buf, arg0.len, arg2);
   PyBuffer_Release(&arg0);
@@ -361,6 +443,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (4 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginDicomBufferToJson(OrthancPlugins::GetGlobalContext(), arg0.buf, arg0.len, static_cast<OrthancPluginDicomToJsonFormat>(arg2), static_cast<OrthancPluginDicomToJsonFlags>(arg3), arg4));
   PyBuffer_Release(&arg0);
@@ -389,6 +472,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (4 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginDicomInstanceToJson(OrthancPlugins::GetGlobalContext(), arg0, static_cast<OrthancPluginDicomToJsonFormat>(arg1), static_cast<OrthancPluginDicomToJsonFlags>(arg2), arg3));
   
@@ -414,6 +498,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginExtendOrthancExplorer(OrthancPlugins::GetGlobalContext(), arg0);
   
 
@@ -426,6 +511,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGenerateRestApiAuthorizationToken()");
 
 
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGenerateRestApiAuthorizationToken(OrthancPlugins::GetGlobalContext()));
   
@@ -445,6 +531,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGenerateUuid()");
 
 
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGenerateUuid(OrthancPlugins::GetGlobalContext()));
   
@@ -470,6 +557,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetCommandLineArgument(OrthancPlugins::GetGlobalContext(), arg0));
   
@@ -489,6 +577,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGetCommandLineArgumentsCount()");
 
 
+
   long value = OrthancPluginGetCommandLineArgumentsCount(OrthancPlugins::GetGlobalContext());
   
   return PyLong_FromLong(value);
@@ -499,6 +588,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGetConfiguration()");
 
 
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetConfiguration(OrthancPlugins::GetGlobalContext()));
   
@@ -518,6 +608,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGetConfigurationPath()");
 
 
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetConfigurationPath(OrthancPlugins::GetGlobalContext()));
   
@@ -543,6 +634,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginGetDicomForInstance(OrthancPlugins::GetGlobalContext(), *buffer, arg0);
   
@@ -568,6 +660,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   const char* s = OrthancPluginGetErrorDescription(OrthancPlugins::GetGlobalContext(), static_cast<OrthancPluginErrorCode>(arg0));
   
   if (s == NULL)
@@ -586,6 +679,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGetExpectedDatabaseVersion()");
 
 
+
   long value = OrthancPluginGetExpectedDatabaseVersion(OrthancPlugins::GetGlobalContext());
   
   return PyLong_FromLong(value);
@@ -602,6 +696,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   const char* s = OrthancPluginGetFontName(OrthancPlugins::GetGlobalContext(), arg0);
   
   if (s == NULL)
@@ -626,6 +721,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   long value = OrthancPluginGetFontSize(OrthancPlugins::GetGlobalContext(), arg0);
   
   return PyLong_FromLong(value);
@@ -636,6 +732,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGetFontsCount()");
 
 
+
   long value = OrthancPluginGetFontsCount(OrthancPlugins::GetGlobalContext());
   
   return PyLong_FromLong(value);
@@ -653,6 +750,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetGlobalProperty(OrthancPlugins::GetGlobalContext(), arg0, arg1));
   
@@ -672,6 +770,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGetOrthancDirectory()");
 
 
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetOrthancDirectory(OrthancPlugins::GetGlobalContext()));
   
@@ -691,6 +790,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGetOrthancPath()");
 
 
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetOrthancPath(OrthancPlugins::GetGlobalContext()));
   
@@ -710,6 +810,7 @@
   PythonLock::LogCall("Calling Python global function: OrthancPluginGetPeers()");
 
 
+
   // This is the case of a constructor
   OrthancPluginPeers* obj = OrthancPluginGetPeers(OrthancPlugins::GetGlobalContext());
   
@@ -740,6 +841,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetTagName(OrthancPlugins::GetGlobalContext(), arg0, arg1, arg2));
   
@@ -767,6 +869,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginHttpDelete(OrthancPlugins::GetGlobalContext(), arg0, arg1, arg2);
   
 
@@ -795,6 +898,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginHttpGet(OrthancPlugins::GetGlobalContext(), *buffer, arg0, arg1, arg2);
   
@@ -823,6 +927,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (4 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginHttpPost(OrthancPlugins::GetGlobalContext(), *buffer, arg0, arg1.buf, arg1.len, arg3, arg4);
   PyBuffer_Release(&arg1);
@@ -851,6 +956,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (4 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginHttpPut(OrthancPlugins::GetGlobalContext(), *buffer, arg0, arg1.buf, arg1.len, arg3, arg4);
   PyBuffer_Release(&arg1);
@@ -876,6 +982,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginLogError(OrthancPlugins::GetGlobalContext(), arg0);
   
 
@@ -894,6 +1001,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginLogInfo(OrthancPlugins::GetGlobalContext(), arg0);
   
 
@@ -912,6 +1020,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginLogWarning(OrthancPlugins::GetGlobalContext(), arg0);
   
 
@@ -930,6 +1039,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginLookupInstance(OrthancPlugins::GetGlobalContext(), arg0));
   
@@ -955,6 +1065,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginLookupPatient(OrthancPlugins::GetGlobalContext(), arg0));
   
@@ -980,6 +1091,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginLookupSeries(OrthancPlugins::GetGlobalContext(), arg0));
   
@@ -1005,6 +1117,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginLookupStudy(OrthancPlugins::GetGlobalContext(), arg0));
   
@@ -1030,6 +1143,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginLookupStudyWithAccessionNumber(OrthancPlugins::GetGlobalContext(), arg0));
   
@@ -1055,6 +1169,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginReadFile(OrthancPlugins::GetGlobalContext(), *buffer, arg0);
   
@@ -1085,6 +1200,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (6 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginRegisterDictionaryTag(OrthancPlugins::GetGlobalContext(), arg0, arg1, static_cast<OrthancPluginValueRepresentation>(arg2), arg3, arg4, arg5);
   
 
@@ -1113,6 +1229,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginRegisterErrorCode(OrthancPlugins::GetGlobalContext(), arg0, arg1, arg2);
   
 
@@ -1145,6 +1262,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (7 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginRegisterPrivateDictionaryTag(OrthancPlugins::GetGlobalContext(), arg0, arg1, static_cast<OrthancPluginValueRepresentation>(arg2), arg3, arg4, arg5, arg6);
   
 
@@ -1171,6 +1289,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginRestApiDelete(OrthancPlugins::GetGlobalContext(), arg0);
   
 
@@ -1197,6 +1316,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginRestApiDeleteAfterPlugins(OrthancPlugins::GetGlobalContext(), arg0);
   
 
@@ -1223,6 +1343,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginRestApiGet(OrthancPlugins::GetGlobalContext(), *buffer, arg0);
   
@@ -1248,6 +1369,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginRestApiGetAfterPlugins(OrthancPlugins::GetGlobalContext(), *buffer, arg0);
   
@@ -1274,6 +1396,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginRestApiPost(OrthancPlugins::GetGlobalContext(), *buffer, arg0, arg1.buf, arg1.len);
   PyBuffer_Release(&arg1);
@@ -1300,6 +1423,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginRestApiPostAfterPlugins(OrthancPlugins::GetGlobalContext(), *buffer, arg0, arg1.buf, arg1.len);
   PyBuffer_Release(&arg1);
@@ -1326,6 +1450,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginRestApiPut(OrthancPlugins::GetGlobalContext(), *buffer, arg0, arg1.buf, arg1.len);
   PyBuffer_Release(&arg1);
@@ -1352,6 +1477,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginRestApiPutAfterPlugins(OrthancPlugins::GetGlobalContext(), *buffer, arg0, arg1.buf, arg1.len);
   PyBuffer_Release(&arg1);
@@ -1377,6 +1503,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginSetDescription(OrthancPlugins::GetGlobalContext(), arg0);
   
 
@@ -1396,6 +1523,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginSetGlobalProperty(OrthancPlugins::GetGlobalContext(), arg0, arg1);
   
 
@@ -1424,6 +1552,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
     return NULL;
   }
+
   OrthancPluginSetMetricsValue(OrthancPlugins::GetGlobalContext(), arg0, arg1, static_cast<OrthancPluginMetricsType>(arg2));
   
 
@@ -1442,6 +1571,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginSetRootUri(OrthancPlugins::GetGlobalContext(), arg0);
   
 
@@ -1461,6 +1591,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   // This is the case of a constructor
   OrthancPluginDicomInstance* obj = OrthancPluginTranscodeDicomInstance(OrthancPlugins::GetGlobalContext(), arg0.buf, arg0.len, arg2);
   PyBuffer_Release(&arg0);
@@ -1490,6 +1621,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   // This is the case of a constructor
   OrthancPluginImage* obj = OrthancPluginUncompressImage(OrthancPlugins::GetGlobalContext(), arg0.buf, arg0.len, static_cast<OrthancPluginImageFormat>(arg2));
   PyBuffer_Release(&arg0);
@@ -1519,6 +1651,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginWriteFile(OrthancPlugins::GetGlobalContext(), arg0, arg1.buf, arg1.len);
   PyBuffer_Release(&arg1);
 
@@ -1553,6 +1686,10 @@
     "Generated from C function OrthancPluginComputeMd5()" },
   { "ComputeSha1", sdk_OrthancPluginComputeSha1, METH_VARARGS,
     "Generated from C function OrthancPluginComputeSha1()" },
+  { "CreateDicom", sdk_OrthancPluginCreateDicom, METH_VARARGS,
+    "Generated from C function OrthancPluginCreateDicom()" },
+  { "CreateDicom2", sdk_OrthancPluginCreateDicom2, METH_VARARGS,
+    "Generated from C function OrthancPluginCreateDicom2()" },
   { "CreateDicomInstance", sdk_OrthancPluginCreateDicomInstance, METH_VARARGS,
     "Generated from C function OrthancPluginCreateDicomInstance()" },
   { "CreateFindMatcher", sdk_OrthancPluginCreateFindMatcher, METH_VARARGS,
--- a/Sources/Autogenerated/sdk_OrthancPluginDicomInstance.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginDicomInstance.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -11,6 +11,7 @@
   }
 
 
+
   const char* s = OrthancPluginGetInstanceRemoteAet(OrthancPlugins::GetGlobalContext(), self->object_);
   
   if (s == NULL)
@@ -36,6 +37,7 @@
   }
 
 
+
   long value = OrthancPluginGetInstanceSize(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -53,6 +55,7 @@
   }
 
 
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetInstanceJson(OrthancPlugins::GetGlobalContext(), self->object_));
   
@@ -79,6 +82,7 @@
   }
 
 
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetInstanceSimplifiedJson(OrthancPlugins::GetGlobalContext(), self->object_));
   
@@ -111,6 +115,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   long value = OrthancPluginHasInstanceMetadata(OrthancPlugins::GetGlobalContext(), self->object_, arg0);
   
   return PyLong_FromLong(value);
@@ -134,6 +139,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   const char* s = OrthancPluginGetInstanceMetadata(OrthancPlugins::GetGlobalContext(), self->object_, arg0);
   
   if (s == NULL)
@@ -159,6 +165,7 @@
   }
 
 
+
   OrthancPluginInstanceOrigin value = OrthancPluginGetInstanceOrigin(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -176,6 +183,7 @@
   }
 
 
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetInstanceTransferSyntaxUid(OrthancPlugins::GetGlobalContext(), self->object_));
   
@@ -202,6 +210,7 @@
   }
 
 
+
   long value = OrthancPluginHasInstancePixelData(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -219,6 +228,7 @@
   }
 
 
+
   long value = OrthancPluginGetInstanceFramesCount(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -242,6 +252,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginGetInstanceRawFrame(OrthancPlugins::GetGlobalContext(), *buffer, self->object_, arg0);
   
@@ -274,6 +285,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   // This is the case of a constructor
   OrthancPluginImage* obj = OrthancPluginGetInstanceDecodedFrame(OrthancPlugins::GetGlobalContext(), self->object_, arg0);
   
@@ -303,6 +315,7 @@
   }
 
 
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginSerializeDicomInstance(OrthancPlugins::GetGlobalContext(), *buffer, self->object_);
   
@@ -337,6 +350,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetInstanceAdvancedJson(OrthancPlugins::GetGlobalContext(), self->object_, static_cast<OrthancPluginDicomToJsonFormat>(arg0), static_cast<OrthancPluginDicomToJsonFlags>(arg1), arg2));
   
--- a/Sources/Autogenerated/sdk_OrthancPluginFindAnswers.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginFindAnswers.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -17,6 +17,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginFindAddAnswer(OrthancPlugins::GetGlobalContext(), self->object_, arg0.buf, arg0.len);
   PyBuffer_Release(&arg0);
 
@@ -44,6 +45,7 @@
   }
 
 
+
   OrthancPluginErrorCode code = OrthancPluginFindMarkIncomplete(OrthancPlugins::GetGlobalContext(), self->object_);
   
 
--- a/Sources/Autogenerated/sdk_OrthancPluginFindMatcher.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginFindMatcher.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -17,6 +17,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   long value = OrthancPluginFindMatcherIsMatch(OrthancPlugins::GetGlobalContext(), self->object_, arg0.buf, arg0.len);
   PyBuffer_Release(&arg0);
   return PyLong_FromLong(value);
--- a/Sources/Autogenerated/sdk_OrthancPluginFindQuery.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginFindQuery.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -11,6 +11,7 @@
   }
 
 
+
   long value = OrthancPluginGetFindQuerySize(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -34,6 +35,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetFindQueryTagName(OrthancPlugins::GetGlobalContext(), self->object_, arg0));
   
@@ -66,6 +68,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginGetFindQueryValue(OrthancPlugins::GetGlobalContext(), self->object_, arg0));
   
--- a/Sources/Autogenerated/sdk_OrthancPluginImage.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginImage.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -11,6 +11,7 @@
   }
 
 
+
   OrthancPluginPixelFormat value = OrthancPluginGetImagePixelFormat(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -28,6 +29,7 @@
   }
 
 
+
   long value = OrthancPluginGetImageWidth(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -45,6 +47,7 @@
   }
 
 
+
   long value = OrthancPluginGetImageHeight(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -62,6 +65,7 @@
   }
 
 
+
   long value = OrthancPluginGetImagePitch(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -85,6 +89,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   // This is the case of a constructor
   OrthancPluginImage* obj = OrthancPluginConvertPixelFormat(OrthancPlugins::GetGlobalContext(), self->object_, static_cast<OrthancPluginPixelFormat>(arg0));
   
@@ -126,6 +131,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (7 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginDrawText(OrthancPlugins::GetGlobalContext(), self->object_, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
   
 
--- a/Sources/Autogenerated/sdk_OrthancPluginJob.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginJob.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -10,13 +10,14 @@
     return NULL;
   }
 
-  int arg0 = 0;
+  long int arg0 = 0;
 
-  if (!PyArg_ParseTuple(args, "i", &arg0))
+  if (!PyArg_ParseTuple(args, "l", &arg0))
   {
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::OrthancString s;
   s.Assign(OrthancPluginSubmitJob(OrthancPlugins::GetGlobalContext(), self->object_, arg0));
   
--- a/Sources/Autogenerated/sdk_OrthancPluginPeers.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginPeers.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -11,6 +11,7 @@
   }
 
 
+
   long value = OrthancPluginGetPeersCount(OrthancPlugins::GetGlobalContext(), self->object_);
   
   return PyLong_FromLong(value);
@@ -34,6 +35,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   const char* s = OrthancPluginGetPeerName(OrthancPlugins::GetGlobalContext(), self->object_, arg0);
   
   if (s == NULL)
@@ -65,6 +67,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   const char* s = OrthancPluginGetPeerUrl(OrthancPlugins::GetGlobalContext(), self->object_, arg0);
   
   if (s == NULL)
@@ -97,6 +100,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   const char* s = OrthancPluginGetPeerUserProperty(OrthancPlugins::GetGlobalContext(), self->object_, arg0, arg1);
   
   if (s == NULL)
--- a/Sources/Autogenerated/sdk_OrthancPluginRestOutput.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginRestOutput.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -18,6 +18,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPluginAnswerBuffer(OrthancPlugins::GetGlobalContext(), self->object_, arg0.buf, arg0.len, arg2);
   PyBuffer_Release(&arg0);
 
@@ -47,6 +48,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (5 arguments expected)");
     return NULL;
   }
+
   OrthancPluginCompressAndAnswerPngImage(OrthancPlugins::GetGlobalContext(), self->object_, static_cast<OrthancPluginPixelFormat>(arg0), arg1, arg2, arg3, arg4.buf);
   PyBuffer_Release(&arg4);
 
@@ -72,6 +74,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginRedirect(OrthancPlugins::GetGlobalContext(), self->object_, arg0);
   
 
@@ -97,6 +100,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginSendHttpStatusCode(OrthancPlugins::GetGlobalContext(), self->object_, arg0);
   
 
@@ -122,6 +126,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginSendUnauthorized(OrthancPlugins::GetGlobalContext(), self->object_, arg0);
   
 
@@ -147,6 +152,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginSendMethodNotAllowed(OrthancPlugins::GetGlobalContext(), self->object_, arg0);
   
 
@@ -173,6 +179,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPluginSetCookie(OrthancPlugins::GetGlobalContext(), self->object_, arg0, arg1);
   
 
@@ -199,6 +206,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPluginSetHttpHeader(OrthancPlugins::GetGlobalContext(), self->object_, arg0, arg1);
   
 
@@ -225,6 +233,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginStartMultipartAnswer(OrthancPlugins::GetGlobalContext(), self->object_, arg0, arg1);
   
 
@@ -258,6 +267,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginSendMultipartItem(OrthancPlugins::GetGlobalContext(), self->object_, arg0.buf, arg0.len);
   PyBuffer_Release(&arg0);
 
@@ -285,16 +295,16 @@
   }
 
   unsigned short arg0 = 0;
-  const char* arg1 = NULL;
-  unsigned long arg2 = 0;
+  Py_buffer arg1;
 
-  if (!PyArg_ParseTuple(args, "Hsk", &arg0, &arg1, &arg2))
+  if (!PyArg_ParseTuple(args, "Hs*", &arg0, &arg1))
   {
-    PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (3 arguments expected)");
+    PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
-  OrthancPluginSendHttpStatus(OrthancPlugins::GetGlobalContext(), self->object_, arg0, arg1, arg2);
-  
+
+  OrthancPluginSendHttpStatus(OrthancPlugins::GetGlobalContext(), self->object_, arg0, arg1.buf, arg1.len);
+  PyBuffer_Release(&arg1);
 
   Py_INCREF(Py_None);
   return Py_None;
@@ -323,6 +333,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (6 arguments expected)");
     return NULL;
   }
+
   OrthancPluginCompressAndAnswerJpegImage(OrthancPlugins::GetGlobalContext(), self->object_, static_cast<OrthancPluginPixelFormat>(arg0), arg1, arg2, arg3, arg4.buf, arg5);
   PyBuffer_Release(&arg4);
 
@@ -349,6 +360,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPluginSetHttpErrorDetails(OrthancPlugins::GetGlobalContext(), self->object_, arg0, arg1);
   
 
--- a/Sources/Autogenerated/sdk_OrthancPluginStorageArea.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginStorageArea.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -20,6 +20,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (4 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginStorageAreaCreate(OrthancPlugins::GetGlobalContext(), self->object_, arg0, arg1.buf, arg2, static_cast<OrthancPluginContentType>(arg3));
   PyBuffer_Release(&arg1);
 
@@ -54,6 +55,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginStorageAreaRead(OrthancPlugins::GetGlobalContext(), *buffer, self->object_, arg0, static_cast<OrthancPluginContentType>(arg1));
   
@@ -87,6 +89,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginStorageAreaRemove(OrthancPlugins::GetGlobalContext(), self->object_, arg0, static_cast<OrthancPluginContentType>(arg1));
   
 
@@ -120,6 +123,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   OrthancPluginErrorCode code = OrthancPluginReconstructMainDicomTags(OrthancPlugins::GetGlobalContext(), self->object_, static_cast<OrthancPluginResourceType>(arg0));
   
 
--- a/Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.impl.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.impl.h	Thu Jun 27 18:02:06 2024 +0200
@@ -20,24 +20,24 @@
 
 
 // Forward declaration of the autogenerated methods
+static PyObject *sdk_OrthancPluginWorklistAnswers_OrthancPluginWorklistAddAnswer(
+  sdk_OrthancPluginWorklistAnswers_Object* self, PyObject *args);
 static PyObject *sdk_OrthancPluginWorklistAnswers_OrthancPluginWorklistMarkIncomplete(
   sdk_OrthancPluginWorklistAnswers_Object* self, PyObject *args);
 // End of forward declarations
 
 
 // Forward declaration of the custom methods
-extern PyObject *WorklistAddAnswer(
-  sdk_OrthancPluginWorklistAnswers_Object* self, PyObject *args);
 // End of forward declarations
 
 
 static PyMethodDef sdk_OrthancPluginWorklistAnswers_Methods[] = {
+  { "WorklistAddAnswer",
+    (PyCFunction) sdk_OrthancPluginWorklistAnswers_OrthancPluginWorklistAddAnswer, METH_VARARGS,
+    "Generated from C function OrthancPluginWorklistAddAnswer()" },
   { "WorklistMarkIncomplete",
     (PyCFunction) sdk_OrthancPluginWorklistAnswers_OrthancPluginWorklistMarkIncomplete, METH_VARARGS,
     "Generated from C function OrthancPluginWorklistMarkIncomplete()" },
-  { "WorklistAddAnswer",
-    (PyCFunction) WorklistAddAnswer, METH_VARARGS,
-    "Generated from C function OrthancPluginWorklistAddAnswer()" },
   { NULL }  /* Sentinel */
 };
 
--- a/Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginWorklistAnswers.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -1,4 +1,45 @@
 // Actual implementation of the methods
+static PyObject *sdk_OrthancPluginWorklistAnswers_OrthancPluginWorklistAddAnswer(
+  sdk_OrthancPluginWorklistAnswers_Object* self, PyObject *args)
+{
+  PythonLock::LogCall("Calling method OrthancPluginWorklistAddAnswer() on object of class OrthancPluginWorklistAnswers");
+
+  if (self->object_ == NULL)
+  {
+    PyErr_SetString(PyExc_ValueError, "Invalid object");
+    return NULL;
+  }
+
+  PyObject* arg0 = NULL;
+  Py_buffer arg1;
+
+  if (!PyArg_ParseTuple(args, "Os*", &arg0, &arg1))
+  {
+    PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (2 arguments expected)");
+    return NULL;
+  }
+
+  if (arg0 != Py_None && Py_TYPE(arg0) != GetOrthancPluginWorklistQueryType())
+  {
+    PyErr_SetString(PyExc_TypeError, "Invalid orthanc.OrthancPluginWorklistQuery object");
+    return NULL;
+  }
+
+  OrthancPluginErrorCode code = OrthancPluginWorklistAddAnswer(OrthancPlugins::GetGlobalContext(), self->object_, arg0 == Py_None ? NULL : reinterpret_cast<sdk_OrthancPluginWorklistQuery_Object*>(arg0)->object_, arg1.buf, arg1.len);
+  PyBuffer_Release(&arg1);
+
+  if (code == OrthancPluginErrorCode_Success)
+  {
+    Py_INCREF(Py_None);
+    return Py_None;
+  }
+  else
+  {
+    PythonLock::RaiseException(code);
+    return NULL;
+  }
+}
+
 static PyObject *sdk_OrthancPluginWorklistAnswers_OrthancPluginWorklistMarkIncomplete(
   sdk_OrthancPluginWorklistAnswers_Object* self, PyObject *args)
 {
@@ -11,6 +52,7 @@
   }
 
 
+
   OrthancPluginErrorCode code = OrthancPluginWorklistMarkIncomplete(OrthancPlugins::GetGlobalContext(), self->object_);
   
 
--- a/Sources/Autogenerated/sdk_OrthancPluginWorklistQuery.methods.h	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Autogenerated/sdk_OrthancPluginWorklistQuery.methods.h	Thu Jun 27 18:02:06 2024 +0200
@@ -17,6 +17,7 @@
     PyErr_SetString(PyExc_TypeError, "Bad types for the arguments (1 arguments expected)");
     return NULL;
   }
+
   long value = OrthancPluginWorklistIsMatch(OrthancPlugins::GetGlobalContext(), self->object_, arg0.buf, arg0.len);
   PyBuffer_Release(&arg0);
   return PyLong_FromLong(value);
@@ -34,6 +35,7 @@
   }
 
 
+
   OrthancPlugins::MemoryBuffer buffer;
   OrthancPluginErrorCode code = OrthancPluginWorklistGetDicomQuery(OrthancPlugins::GetGlobalContext(), *buffer, self->object_);
   
--- a/Sources/DicomScpCallbacks.cpp	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/DicomScpCallbacks.cpp	Thu Jun 27 18:02:06 2024 +0200
@@ -83,49 +83,6 @@
 {
   return GetFindQueryTag(self, args, false);
 }
-
-PyObject *WorklistAddAnswer(sdk_OrthancPluginWorklistAnswers_Object* self, PyObject *args)
-{
-  PyObject* query = NULL;
-  Py_buffer dicom;
-  
-  if (self->object_ == NULL)
-  {
-    PyErr_SetString(PyExc_ValueError, "Invalid object");
-    return NULL;
-  }
-  else if (!PyArg_ParseTuple(args, "Os*", &query, &dicom))
-  {
-    PyErr_SetString(PyExc_TypeError, "Please provide a orthanc.WorklistQuery object, and a DICOM buffer");
-    return NULL;
-  }
-  else if (query == Py_None ||
-           Py_TYPE(query) != GetOrthancPluginWorklistQueryType())
-  {
-    PyErr_SetString(PyExc_TypeError, "Invalid orthanc.WorklistQuery object");
-    return NULL;
-  }
-  else
-  {
-    OrthancPluginErrorCode code = OrthancPluginWorklistAddAnswer(
-      OrthancPlugins::GetGlobalContext(), self->object_,
-      reinterpret_cast<sdk_OrthancPluginWorklistQuery_Object*>(query)->object_,
-      dicom.buf, dicom.len);
-
-    PyBuffer_Release(&dicom);
-  
-    if (code == OrthancPluginErrorCode_Success)
-    {
-      Py_INCREF(Py_None);
-      return Py_None;
-    }
-    else
-    {
-      PyErr_SetString(PyExc_ValueError, "Internal error");
-      return NULL;  
-    }
-  }
-}
 // End of "CUSTOM_METHODS"
 
 
--- a/Sources/Plugin.cpp	Thu Jun 27 17:50:51 2024 +0200
+++ b/Sources/Plugin.cpp	Thu Jun 27 18:02:06 2024 +0200
@@ -121,53 +121,6 @@
 }
 
 
-PyObject* CreateDicom(PyObject* module, PyObject* args)
-{
-  // The GIL is locked at this point (no need to create "PythonLock")
-  const char* json = NULL;
-  PyObject* pixelData = NULL;
-  long int flags = 0;
-  
-  if (!PyArg_ParseTuple(args, "sOl", &json, &pixelData, &flags))
-  {
-    PyErr_SetString(PyExc_TypeError, "Please provide a JSON string, an orthanc.Image object, and a set of orthanc.CreateDicomFlags");
-    return NULL;
-  }
-  else
-  {
-    OrthancPluginImage* image = NULL;
-    
-    if (pixelData == Py_None)
-    {
-      // No pixel data
-    }
-    else if (Py_TYPE(pixelData) == GetOrthancPluginImageType())
-    {
-      image = reinterpret_cast<sdk_OrthancPluginImage_Object*>(pixelData)->object_;
-    }
-    else
-    {
-      PyErr_SetString(PyExc_TypeError, "Second parameter is not a valid orthanc.Image object");
-      return NULL;
-    }
-
-    OrthancPlugins::MemoryBuffer buffer;
-    OrthancPluginErrorCode code = OrthancPluginCreateDicom(OrthancPlugins::GetGlobalContext(), *buffer, json, image,
-                                                           static_cast<OrthancPluginCreateDicomFlags>(flags));
-  
-    if (code == OrthancPluginErrorCode_Success)
-    {
-      return PyBytes_FromStringAndSize(buffer.GetData(), buffer.GetSize());
-    }
-    else
-    {
-      PyErr_SetString(PyExc_ValueError, "Cannot create the DICOM instance");
-      return NULL;  
-    }
-  }
-}
-
-
 PyObject* GetInstanceData(sdk_OrthancPluginDicomInstance_Object* self, PyObject *args)
 {
   // The GIL is locked at this point (no need to create "PythonLock")
@@ -367,11 +320,6 @@
   }
   
   {
-    PyMethodDef f = { "CreateDicom", CreateDicom, METH_VARARGS, "" };
-    functions.push_back(f);
-  }
-  
-  {
     PyMethodDef f = { "CreateImageFromBuffer", CreateImageFromBuffer, METH_VARARGS, "" };
     functions.push_back(f);
   }