# HG changeset patch # User Sebastien Jodogne # Date 1710584582 -3600 # Node ID a85e49dcb63e7d1aea90ba095fa328b5e0c6c0bc # Parent 7c372a95c7e993b2c72c7eaf51ab61aa30957ca9 added ORTHANC_PLUGIN_DEPRECATED in plugin SDK diff -r 7c372a95c7e9 -r a85e49dcb63e OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h --- a/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h Thu Feb 29 17:03:55 2024 +0100 +++ b/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h Sat Mar 16 11:23:02 2024 +0100 @@ -167,6 +167,20 @@ #endif +#ifndef ORTHANC_PLUGIN_DEPRECATED +# if defined(_MSC_VER) +# define ORTHANC_PLUGIN_DEPRECATED __declspec(deprecated) +# elif __GNUC__ >= 4 +# define ORTHANC_PLUGIN_DEPRECATED __attribute__ ((deprecated)) +# elif defined(__clang__) +# define ORTHANC_PLUGIN_DEPRECATED __attribute__ ((deprecated)) +# else +# pragma message("WARNING: You need to implement ORTHANC_PLUGINS_DEPRECATED for this compiler") +# define ORTHANC_PLUGIN_DEPRECATED +# endif +#endif + + /******************************************************************** ** Inclusion of standard libraries. @@ -3265,7 +3279,7 @@ * @ingroup Callbacks * @deprecated Please use OrthancPluginRegisterStorageArea2() **/ - ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea( OrthancPluginContext* context, OrthancPluginStorageCreate create, OrthancPluginStorageRead read, @@ -3362,7 +3376,7 @@ * OrthancPluginFreeString(). * @see OrthancPluginGetConfiguration() **/ - ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfigurationPath(OrthancPluginContext* context) + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfigurationPath(OrthancPluginContext* context) { char* result; @@ -3438,8 +3452,12 @@ * * @param context The Orthanc plugin context, as received by OrthancPluginInitialize(). * @param uri The root URI for this plugin. + * + * @deprecated This function should not be used anymore because the + * result of the call to "OrthancPluginGetName()" depends on the + * system. Use "OrthancPluginSetRootUri2()" instead. **/ - ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri( OrthancPluginContext* context, const char* uri) { @@ -3453,6 +3471,32 @@ /** + * @brief Set the URI where the plugin provides its Web interface. + * + * For plugins that come with a Web interface, this function + * declares the entry path where to find this interface. This + * information is notably used in the "Plugins" page of Orthanc + * Explorer. + * + * @param context The Orthanc plugin context, as received by OrthancPluginInitialize(). + * @param plugin Identifier of your plugin (it must match "OrthancPluginGetName()"). + * @param uri The root URI for this plugin. + **/ + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri2( + OrthancPluginContext* context, + const char* plugin, + const char* uri) + { + _OrthancPluginSetPluginProperty params; + params.plugin = plugin; + params.property = _OrthancPluginProperty_RootUri; + params.value = uri; + + context->InvokeService(context, _OrthancPluginService_SetPluginProperty, ¶ms); + } + + + /** * @brief Set a description for this plugin. * * Set a description for this plugin. It is displayed in the @@ -3460,8 +3504,12 @@ * * @param context The Orthanc plugin context, as received by OrthancPluginInitialize(). * @param description The description. + * + * @deprecated This function should not be used anymore because the + * result of the call to "OrthancPluginGetName()" depends on the + * system. Use "OrthancPluginSetDescription2()" instead. **/ - ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription( OrthancPluginContext* context, const char* description) { @@ -3475,6 +3523,30 @@ /** + * @brief Set a description for this plugin. + * + * Set a description for this plugin. It is displayed in the + * "Plugins" page of Orthanc Explorer. + * + * @param context The Orthanc plugin context, as received by OrthancPluginInitialize(). + * @param plugin Identifier of your plugin (it must match "OrthancPluginGetName()"). + * @param description The description. + **/ + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription2( + OrthancPluginContext* context, + const char* plugin, + const char* description) + { + _OrthancPluginSetPluginProperty params; + params.plugin = plugin; + params.property = _OrthancPluginProperty_Description; + params.value = description; + + context->InvokeService(context, _OrthancPluginService_SetPluginProperty, ¶ms); + } + + + /** * @brief Extend the JavaScript code of Orthanc Explorer. * * Add JavaScript code to customize the default behavior of Orthanc @@ -3482,8 +3554,12 @@ * * @param context The Orthanc plugin context, as received by OrthancPluginInitialize(). * @param javascript The custom JavaScript code. + * + * @deprecated This function should not be used anymore because the + * result of the call to "OrthancPluginGetName()" depends on the + * system. Use "OrthancPluginExtendOrthancExplorer2()" instead. **/ - ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer( OrthancPluginContext* context, const char* javascript) { @@ -3496,6 +3572,30 @@ } + /** + * @brief Extend the JavaScript code of Orthanc Explorer. + * + * Add JavaScript code to customize the default behavior of Orthanc + * Explorer. This can for instance be used to add new buttons. + * + * @param context The Orthanc plugin context, as received by OrthancPluginInitialize(). + * @param plugin Identifier of your plugin (it must match "OrthancPluginGetName()"). + * @param javascript The custom JavaScript code. + **/ + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer2( + OrthancPluginContext* context, + const char* plugin, + const char* javascript) + { + _OrthancPluginSetPluginProperty params; + params.plugin = plugin; + params.property = _OrthancPluginProperty_OrthancExplorer; + params.value = javascript; + + context->InvokeService(context, _OrthancPluginService_SetPluginProperty, ¶ms); + } + + typedef struct { char** result; @@ -4766,7 +4866,7 @@ * @deprecated This function should not be used anymore. Use "OrthancPluginRestApiPut()" on * "/{patients|studies|series|instances}/{id}/attachments/{name}" instead. **/ - ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaCreate( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaCreate( OrthancPluginContext* context, OrthancPluginStorageArea* storageArea, const char* uuid, @@ -4810,7 +4910,7 @@ * @deprecated This function should not be used anymore. Use "OrthancPluginRestApiGet()" on * "/{patients|studies|series|instances}/{id}/attachments/{name}" instead. **/ - ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRead( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRead( OrthancPluginContext* context, OrthancPluginMemoryBuffer* target, OrthancPluginStorageArea* storageArea, @@ -4849,7 +4949,7 @@ * @deprecated This function should not be used anymore. Use "OrthancPluginRestApiDelete()" on * "/{patients|studies|series|instances}/{id}/attachments/{name}" instead. **/ - ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRemove( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRemove( OrthancPluginContext* context, OrthancPluginStorageArea* storageArea, const char* uuid, @@ -5827,7 +5927,7 @@ * @ingroup Callbacks * @deprecated Please instead use OrthancPluginRegisterIncomingHttpRequestFilter2() **/ - ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter( OrthancPluginContext* context, OrthancPluginIncomingHttpRequestFilter callback) { @@ -6788,7 +6888,7 @@ * @ingroup Toolbox * @deprecated This signature should not be used anymore since Orthanc SDK 1.11.3. **/ - ORTHANC_PLUGIN_INLINE OrthancPluginJob *OrthancPluginCreateJob( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginJob *OrthancPluginCreateJob( OrthancPluginContext *context, void *job, OrthancPluginJobFinalize finalize, @@ -7187,7 +7287,7 @@ * @deprecated OrthancPluginEncodeDicomWebJson2() * @ingroup Toolbox **/ - ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson( OrthancPluginContext* context, const void* dicom, uint32_t dicomSize, @@ -7229,7 +7329,7 @@ * @deprecated OrthancPluginEncodeDicomWebXml2() * @ingroup Toolbox **/ - ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml( + ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml( OrthancPluginContext* context, const void* dicom, uint32_t dicomSize,