changeset 303:a3af4f9f6b99

upgraded to sdk 1.12.10
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 26 Nov 2025 19:58:16 +0100
parents 7ffc9e968b3e
children 61cd6c2c5e0d
files NEWS Resources/Orthanc/CMake/DownloadOrthancFramework.cmake Resources/Orthanc/Sdk-1.12.10/orthanc/OrthancCPlugin.h Resources/SyncOrthancFolder.py
diffstat 4 files changed, 70 insertions(+), 79 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Wed Nov 26 15:54:16 2025 +0100
+++ b/NEWS	Wed Nov 26 19:58:16 2025 +0100
@@ -1,14 +1,14 @@
 Pending changes in the mainline
 ===============================
 
-TODO before release: update to SDK 1.12.10
+=> Maximum SDK version: 1.12.10 (default) <=
 
 * The "orthanc.pyi" stub is now excluded from the "install" step during the build
-* Added new SCP callbacks:
-  - RegisterFindCallback2
-  - RegisterMoveCallback3
-  - RegisterWorklistCallback2
-  - RegisterStorageCommitmentScpCallback2
+* Wrapped new SCP callbacks:
+  - RegisterFindCallback2()
+  - RegisterMoveCallback3()
+  - RegisterWorklistCallback2()
+  - RegisterStorageCommitmentScpCallback2()
 
 
 Version 6.0 (2025-08-12)
--- a/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake	Wed Nov 26 15:54:16 2025 +0100
+++ b/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake	Wed Nov 26 19:58:16 2025 +0100
@@ -175,6 +175,8 @@
         set(ORTHANC_FRAMEWORK_MD5 "eb1c719234338e8277b80d3453563e9f")
       elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.12.9")
         set(ORTHANC_FRAMEWORK_MD5 "66b5a2ee60706c4a502896083b9e1a01")
+      elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.12.10")
+        set(ORTHANC_FRAMEWORK_MD5 "d5e1ba442104c89a24013cb859a9d6bf")
 
       # Below this point are development snapshots that were used to
       # release some plugin, before an official release of the Orthanc
--- a/Resources/Orthanc/Sdk-1.12.10/orthanc/OrthancCPlugin.h	Wed Nov 26 15:54:16 2025 +0100
+++ b/Resources/Orthanc/Sdk-1.12.10/orthanc/OrthancCPlugin.h	Wed Nov 26 19:58:16 2025 +0100
@@ -18,19 +18,15 @@
  *    - Possibly register its callback for changes to the DICOM store using ::OrthancPluginRegisterOnChangeCallback().
  *    - Possibly register a custom storage area using ::OrthancPluginRegisterStorageArea3().
  *    - Possibly register a custom database back-end area using OrthancPluginRegisterDatabaseBackendV4().
- *    - Possibly register a handler for C-Find SCP using OrthancPluginRegisterFindCallback().
- *    - Possibly register a handler for C-Find SCP using OrthancPluginRegisterFindCallback2().
- *    - Possibly register a handler for C-Find SCP against DICOM worklists using OrthancPluginRegisterWorklistCallback().
- *    - Possibly register a handler for C-Find SCP against DICOM worklists using OrthancPluginRegisterWorklistCallback2().
- *    - Possibly register a handler for C-Move SCP using OrthancPluginRegisterMoveCallback().
- *    - Possibly register a handler for C-Move SCP using OrthancPluginRegisterMoveCallback2().
+ *    - Possibly register a handler for C-Find SCP using ::OrthancPluginRegisterFindCallback() or ::OrthancPluginRegisterFindCallback2().
+ *    - Possibly register a handler for C-Find SCP against DICOM worklists using ::OrthancPluginRegisterWorklistCallback() or ::OrthancPluginRegisterWorklistCallback2().
+ *    - Possibly register a handler for C-Move SCP using ::OrthancPluginRegisterMoveCallback() or ::OrthancPluginRegisterMoveCallback2().
  *    - Possibly register a custom decoder for DICOM images using OrthancPluginRegisterDecodeImageCallback().
  *    - Possibly register a callback to filter incoming HTTP requests using OrthancPluginRegisterIncomingHttpRequestFilter2().
  *    - Possibly register a callback to unserialize jobs using OrthancPluginRegisterJobsUnserializer().
  *    - Possibly register a callback to refresh its metrics using OrthancPluginRegisterRefreshMetricsCallback().
  *    - Possibly register a callback to answer chunked HTTP transfers using ::OrthancPluginRegisterChunkedRestCallback().
- *    - Possibly register a callback for Storage Commitment SCP using ::OrthancPluginRegisterStorageCommitmentScpCallback().
- *    - Possibly register a callback for Storage Commitment SCP using ::OrthancPluginRegisterStorageCommitmentScpCallback2().
+ *    - Possibly register a callback for Storage Commitment SCP using ::OrthancPluginRegisterStorageCommitmentScpCallback() or ::OrthancPluginRegisterStorageCommitmentScpCallback2().
  *    - Possibly register a callback to keep/discard/modify incoming DICOM instances using OrthancPluginRegisterReceivedInstanceCallback().
  *    - Possibly register a custom transcoder for DICOM images using OrthancPluginRegisterTranscoderCallback().
  *    - Possibly register a callback to discard instances received through DICOM C-STORE using OrthancPluginRegisterIncomingCStoreInstanceFilter().
@@ -680,7 +676,7 @@
     _OrthancPluginService_GetConnectionRemoteAet = 10000,  /* New in SDK 1.12.10 */
     _OrthancPluginService_GetConnectionRemoteIp = 10001,   /* New in SDK 1.12.10 */
     _OrthancPluginService_GetConnectionCalledAet = 10002,  /* New in SDK 1.12.10 */
-    
+
     _OrthancPluginService_INTERNAL = 0x7fffffff
   } _OrthancPluginService;
 
@@ -1401,23 +1397,13 @@
 
   
   /**
-   * @brief Opaque structure that represents DICOM connection
-   * parameters.
+   * @brief Opaque structure that represents the parameters of a DICOM connection.
    * @ingroup DicomConnection
    **/
-  ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
-  typedef struct
+  typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
     _OrthancPluginDicomConnection_t OrthancPluginDicomConnection;
 
 
-  ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
-  typedef struct
-  {
-    const OrthancPluginDicomConnection*  connection;
-    const char**                         resultString;
-  } _OrthancPluginAccessDicomConnection;
-
-
   /**
    * @brief Signature of a callback function that answers to a REST request.
    * @ingroup Callbacks
@@ -1896,7 +1882,7 @@
    * @return The NULL value if the plugin cannot deal with this query,
    * or a pointer to the driver object that is responsible for
    * handling the successive move suboperations.
-   * 
+   *
    * @note If targetAet equals sourceAet, this is actually a query/retrieve operation.
    * @ingroup DicomCallbacks
    **/
@@ -5714,35 +5700,6 @@
   }
 
 
-  ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
-  typedef struct
-  {
-    OrthancPluginWorklistCallback2 callback;
-  } _OrthancPluginWorklistCallback2;
-
-  /**
-   * @brief Register a callback to handle modality worklists requests (v2).
-   *
-   * This function registers a callback to handle C-Find SCP requests
-   * on modality worklists.
-   *
-   * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
-   * @param callback The callback.
-   * @return 0 if success, other value if error.
-   * @ingroup DicomCallbacks
-   **/
-  ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
-  ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginRegisterWorklistCallback2(
-    OrthancPluginContext*          context,
-    OrthancPluginWorklistCallback2 callback)
-  {
-    _OrthancPluginWorklistCallback2 params;
-    params.callback = callback;
-
-    return context->InvokeService(context, _OrthancPluginService_RegisterWorklistCallback2, &params);
-  }
-
-  
   typedef struct
   {
     OrthancPluginWorklistAnswers*      answers;
@@ -8391,7 +8348,7 @@
    * queried about the status of these DICOM instances.
    *
    * @param handler Output variable where the factory puts the handler object it created.
-   * @param jobId ID of the Orthanc job that is responsible for handling 
+   * @param jobId ID of the Orthanc job that is responsible for handling
    * the storage commitment request. This job will successively look for the
    * status of all the individual queried DICOM instances.
    * @param transactionUid UID of the storage commitment transaction
@@ -8414,7 +8371,8 @@
     const char* const*  sopInstanceUids,
     uint32_t            countInstances,
     const OrthancPluginDicomConnection* connection);
-    
+
+
   /**
    * @brief Callback to free one storage commitment SCP handler.
    * 
@@ -8461,16 +8419,6 @@
     OrthancPluginStorageCommitmentLookup      lookup;
   } _OrthancPluginRegisterStorageCommitmentScpCallback;
 
-
-  ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
-  typedef struct
-  {
-    OrthancPluginStorageCommitmentFactory2    factory;
-    OrthancPluginStorageCommitmentDestructor  destructor;
-    OrthancPluginStorageCommitmentLookup      lookup;
-  } _OrthancPluginRegisterStorageCommitmentScpCallback2;
-
-
   /**
    * @brief Register a callback to handle incoming requests to the storage commitment SCP.
    *
@@ -10604,9 +10552,8 @@
    * @param queueId A unique identifier identifying both the plugin and the queue.
    * @param origin The position from where the value is dequeued (back for LIFO, front for FIFO).
    * @return 0 if success, other value if error.
-   * @deprecated This function should not be used anymore because there is a risk of loosing
-   * a value if the consumer plugin crashes before it has processed the value. Use
-   * OrthancPluginReserveQueueValue() and OrthancPluginAcknowledgeQueueValue() if possible.
+   * @deprecated There is a risk of losing a value if the consumer plugin crashes before it has processed
+   * the value. Use OrthancPluginReserveQueueValue() and OrthancPluginAcknowledgeQueueValue() if possible.
    **/
   ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
   ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginDequeueValue(
@@ -10981,12 +10928,19 @@
     return context->InvokeService(context, _OrthancPluginService_AcknowledgeQueueValue, &params);
   }
 
+
+  typedef struct
+  {
+    const OrthancPluginDicomConnection*  connection;
+    const char**                         resultString;
+  } _OrthancPluginAccessDicomConnection;
+
   /**
    * @brief Get the remote AET of a DICOM connection.
    *
    * This function returns the Application Entity Title (AET) of the
    * DICOM modality from which a DICOM connection originates.
-   * 
+   *
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param connection The connection of interest.
    * @return The pointer to the AET, NULL in case of error.
@@ -11021,7 +10975,7 @@
    *
    * This function returns the IP of the
    * DICOM modality from which a DICOM connection originates.
-   * 
+   *
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param connection The connection of interest.
    * @return The pointer to the IP, NULL in case of error.
@@ -11054,9 +11008,9 @@
   /**
    * @brief Get the called AET of a DICOM connection.
    *
-   * This function returns the Orthanc called AET that a
-   * DICOM modality has used in a DICOM connection.
-   * 
+   * This function returns the AET that was called by the remote DICOM modality
+   * over a DICOM connection. This corresponds to one of the AETs used by Orthanc.
+   *
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param connection The connection of interest.
    * @return The pointer to the called AET, NULL in case of error.
@@ -11086,7 +11040,34 @@
   }
 
 
+  typedef struct
+  {
+    OrthancPluginWorklistCallback2 callback;
+  } _OrthancPluginWorklistCallback2;
+
+  /**
+   * @brief Register a callback to handle modality worklists requests (v2).
+   *
+   * This function registers a callback to handle C-Find SCP requests
+   * on modality worklists.
+   *
+   * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
+   * @param callback The callback.
+   * @return 0 if success, other value if error.
+   * @ingroup DicomCallbacks
+   **/
   ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
+  ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginRegisterWorklistCallback2(
+    OrthancPluginContext*          context,
+    OrthancPluginWorklistCallback2 callback)
+  {
+    _OrthancPluginWorklistCallback2 params;
+    params.callback = callback;
+
+    return context->InvokeService(context, _OrthancPluginService_RegisterWorklistCallback2, &params);
+  }
+
+
   typedef struct
   {
     OrthancPluginFindCallback2 callback;
@@ -11114,7 +11095,7 @@
     return context->InvokeService(context, _OrthancPluginService_RegisterFindCallback2, &params);
   }
 
-  ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
+
   typedef struct
   {
     OrthancPluginMoveCallback2  callback;
@@ -11153,6 +11134,14 @@
     return context->InvokeService(context, _OrthancPluginService_RegisterMoveCallback2, &params);
   }
 
+
+  typedef struct
+  {
+    OrthancPluginStorageCommitmentFactory2    factory;
+    OrthancPluginStorageCommitmentDestructor  destructor;
+    OrthancPluginStorageCommitmentLookup      lookup;
+  } _OrthancPluginRegisterStorageCommitmentScpCallback2;
+
   /**
    * @brief Register a callback to handle incoming requests to the storage commitment SCP (v2).
    *
--- a/Resources/SyncOrthancFolder.py	Wed Nov 26 15:54:16 2025 +0100
+++ b/Resources/SyncOrthancFolder.py	Wed Nov 26 19:58:16 2025 +0100
@@ -35,7 +35,7 @@
 
 TARGET = os.path.join(os.path.dirname(__file__), 'Orthanc')
 REPOSITORY = 'https://orthanc.uclouvain.be/hg/orthanc/raw-file'
-PLUGIN_SDK_VERSIONS = [ '1.7.2', '1.10.0', '1.12.6', '1.12.9' ]
+PLUGIN_SDK_VERSIONS = [ '1.7.2', '1.10.0', '1.12.6', '1.12.9', '1.12.10' ]
 
 
 FILES = [