changeset 1601:6cccf1da35c6

groups in the plugin documentation
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 01 Sep 2015 12:42:49 +0200
parents 7151d63e6d81
children 292bce3f54ed
files Plugins/Include/orthanc/OrthancCDatabasePlugin.h Plugins/Include/orthanc/OrthancCPlugin.h Plugins/Include/orthanc/OrthancCppDatabasePlugin.h
diffstat 3 files changed, 95 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/Plugins/Include/orthanc/OrthancCDatabasePlugin.h	Tue Sep 01 12:11:53 2015 +0200
+++ b/Plugins/Include/orthanc/OrthancCDatabasePlugin.h	Tue Sep 01 12:42:49 2015 +0200
@@ -50,6 +50,7 @@
 
   /**
    * Opaque structure that represents the context of a custom database engine.
+   * @ingroup Callbacks
    **/
   typedef struct _OrthancPluginDatabaseContext_t OrthancPluginDatabaseContext;
 
@@ -651,6 +652,7 @@
    * @param backend The callbacks of the custom database engine.
    * @param payload Pointer containing private information for the database engine.
    * @return The context of the database engine (it must not be manually freed).
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginDatabaseContext* OrthancPluginRegisterDatabaseBackend(
     OrthancPluginContext*                context,
--- a/Plugins/Include/orthanc/OrthancCPlugin.h	Tue Sep 01 12:11:53 2015 +0200
+++ b/Plugins/Include/orthanc/OrthancCPlugin.h	Tue Sep 01 12:42:49 2015 +0200
@@ -39,10 +39,24 @@
 
 
 /**
- * @defgroup CInterface C Interface 
- * @brief The C interface to create Orthanc plugins.
- * 
- * These functions must be used to create C plugins for Orthanc.
+ * @defgroup Compression Compression
+ * @brief Functions to deal with images and compressed buffers.
+ *
+ * @defgroup REST REST
+ * @brief Functions to answer REST requests in a callback.
+ *
+ * @defgroup Callbacks Callbacks
+ * @brief Functions to register and manage callbacks by the plugins.
+ *
+ * @defgroup Orthanc Orthanc
+ * @brief Functions to access the content of the Orthanc server.
+ **/
+
+
+
+/**
+ * @defgroup Toolbox Toolbox
+ * @brief Generic functions to help with the creation of plugins.
  **/
 
 
@@ -273,6 +287,7 @@
 
   /**
    * @brief The parameters of a REST request.
+   * @ingroup Callbacks
    **/
   typedef struct
   {
@@ -437,6 +452,7 @@
 
   /**
    * The memory layout of the pixels of an image.
+   * @ingroup Compression
    **/
   typedef enum
   {
@@ -518,6 +534,7 @@
 
   /**
    * The supported types of changes that can happen to DICOM resources.
+   * @ingroup Callbacks
    **/
   typedef enum
   {
@@ -538,6 +555,7 @@
 
   /**
    * The compression algorithms that are supported by the Orthanc core.
+   * @ingroup Compression
    **/
   typedef enum
   {
@@ -552,6 +570,7 @@
 
   /**
    * The image formats that are supported by the Orthanc core.
+   * @ingroup Compression
    **/
   typedef enum
   {
@@ -588,6 +607,7 @@
 
   /**
    * @brief Opaque structure that represents the HTTP connection to the client application.
+   * @ingroup Callback
    **/
   typedef struct _OrthancPluginRestOutput_t OrthancPluginRestOutput;
 
@@ -602,6 +622,7 @@
 
   /**
    * @brief Opaque structure that represents a uncompressed image in memory.
+   * @ingroup Compression
    **/
   typedef struct _OrthancPluginImage_t OrthancPluginImage;
 
@@ -609,6 +630,7 @@
 
   /**
    * @brief Signature of a callback function that answers to a REST request.
+   * @ingroup Callbacks
    **/
   typedef int32_t (*OrthancPluginRestCallback) (
     OrthancPluginRestOutput* output,
@@ -619,6 +641,7 @@
 
   /**
    * @brief Signature of a callback function that is triggered when Orthanc receives a DICOM instance.
+   * @ingroup Callbacks
    **/
   typedef int32_t (*OrthancPluginOnStoredInstanceCallback) (
     OrthancPluginDicomInstance* instance,
@@ -628,6 +651,7 @@
 
   /**
    * @brief Signature of a callback function that is triggered when a change happens to some DICOM resource.
+   * @ingroup Callbacks
    **/
   typedef int32_t (*OrthancPluginOnChangeCallback) (
     OrthancPluginChangeType changeType,
@@ -653,6 +677,7 @@
    * @param size The size of the file.
    * @param type The content type corresponding to this file. 
    * @return 0 if success, other value if error.
+   * @ingroup Callbacks
    **/
   typedef int32_t (*OrthancPluginStorageCreate) (
     const char* uuid,
@@ -672,6 +697,7 @@
    * @param uuid The UUID of the file of interest.
    * @param type The content type corresponding to this file. 
    * @return 0 if success, other value if error.
+   * @ingroup Callbacks
    **/
   typedef int32_t (*OrthancPluginStorageRead) (
     void** content,
@@ -689,6 +715,7 @@
    * @param uuid The UUID of the file to be removed.
    * @param type The content type corresponding to this file. 
    * @return 0 if success, other value if error.
+   * @ingroup Callbacks
    **/
   typedef int32_t (*OrthancPluginStorageRemove) (
     const char* uuid,
@@ -741,6 +768,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @return 1 if and only if the versions are compatible. If the
    * result is 0, the initialization of the plugin should fail.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE int  OrthancPluginCheckVersion(
     OrthancPluginContext* context)
@@ -902,6 +930,7 @@
    * @param pathRegularExpression Regular expression for the URI. May contain groups.
    * @param callback The callback function to handle the REST call.
    * @see OrthancPluginRegisterRestCallbackNoLock()
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterRestCallback(
     OrthancPluginContext*     context,
@@ -935,6 +964,7 @@
    * @param pathRegularExpression Regular expression for the URI. May contain groups.
    * @param callback The callback function to handle the REST call.
    * @see OrthancPluginRegisterRestCallback()
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterRestCallbackNoLock(
     OrthancPluginContext*     context,
@@ -962,6 +992,7 @@
    * 
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param callback The callback function.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterOnStoredInstanceCallback(
     OrthancPluginContext*                  context,
@@ -993,6 +1024,7 @@
    * @param answer Pointer to the memory buffer containing the answer.
    * @param answerSize Number of bytes of the answer.
    * @param mimeType The MIME type of the answer.
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginAnswerBuffer(
     OrthancPluginContext*    context,
@@ -1049,6 +1081,7 @@
    * @param pitch The pitch of the image (i.e. the number of bytes
    * between 2 successive lines of the image in the memory buffer).
    * @param buffer The memory buffer containing the uncompressed image.
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginCompressAndAnswerPngImage(
     OrthancPluginContext*     context,
@@ -1089,6 +1122,7 @@
    * @param target The target memory buffer.
    * @param instanceId The Orthanc identifier of the DICOM instance of interest.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode  OrthancPluginGetDicomForInstance(
     OrthancPluginContext*       context,
@@ -1119,6 +1153,7 @@
    * @param target The target memory buffer.
    * @param uri The URI in the built-in Orthanc API.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode  OrthancPluginRestApiGet(
     OrthancPluginContext*       context,
@@ -1146,6 +1181,7 @@
    * @param target The target memory buffer.
    * @param uri The URI in the built-in Orthanc API.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode  OrthancPluginRestApiGetAfterPlugins(
     OrthancPluginContext*       context,
@@ -1180,6 +1216,7 @@
    * @param body The body of the POST request.
    * @param bodySize The size of the body.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode  OrthancPluginRestApiPost(
     OrthancPluginContext*       context,
@@ -1212,6 +1249,7 @@
    * @param body The body of the POST request.
    * @param bodySize The size of the body.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode  OrthancPluginRestApiPostAfterPlugins(
     OrthancPluginContext*       context,
@@ -1238,6 +1276,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param uri The URI to delete in the built-in Orthanc API.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode  OrthancPluginRestApiDelete(
     OrthancPluginContext*       context,
@@ -1258,6 +1297,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param uri The URI to delete in the built-in Orthanc API.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode  OrthancPluginRestApiDeleteAfterPlugins(
     OrthancPluginContext*       context,
@@ -1280,6 +1320,7 @@
    * @param body The body of the PUT request.
    * @param bodySize The size of the body.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode  OrthancPluginRestApiPut(
     OrthancPluginContext*       context,
@@ -1313,6 +1354,7 @@
    * @param body The body of the PUT request.
    * @param bodySize The size of the body.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode  OrthancPluginRestApiPutAfterPlugins(
     OrthancPluginContext*       context,
@@ -1346,6 +1388,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param output The HTTP connection to the client application.
    * @param redirection Where to redirect.
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginRedirect(
     OrthancPluginContext*    context,
@@ -1377,6 +1420,7 @@
    * @param patientID The Patient ID of interest.
    * @return The NULL value if the patient is non-existent, or a string containing the 
    * Orthanc ID of the patient. This string must be freed by OrthancPluginFreeString().
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupPatient(
     OrthancPluginContext*  context,
@@ -1411,6 +1455,7 @@
    * @param studyUID The Study Instance UID of interest.
    * @return The NULL value if the study is non-existent, or a string containing the 
    * Orthanc ID of the study. This string must be freed by OrthancPluginFreeString().
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupStudy(
     OrthancPluginContext*  context,
@@ -1445,6 +1490,7 @@
    * @param accessionNumber The Accession Number of interest.
    * @return The NULL value if the study is non-existent, or a string containing the 
    * Orthanc ID of the study. This string must be freed by OrthancPluginFreeString().
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupStudyWithAccessionNumber(
     OrthancPluginContext*  context,
@@ -1479,6 +1525,7 @@
    * @param seriesUID The Series Instance UID of interest.
    * @return The NULL value if the series is non-existent, or a string containing the 
    * Orthanc ID of the series. This string must be freed by OrthancPluginFreeString().
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupSeries(
     OrthancPluginContext*  context,
@@ -1513,6 +1560,7 @@
    * @param sopInstanceUID The SOP Instance UID of interest.
    * @return The NULL value if the instance is non-existent, or a string containing the 
    * Orthanc ID of the instance. This string must be freed by OrthancPluginFreeString().
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupInstance(
     OrthancPluginContext*  context,
@@ -1556,6 +1604,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param output The HTTP connection to the client application.
    * @param status The HTTP status code to be sent.
+   * @ingroup REST
    * @see OrthancPluginSendHttpStatus()
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatusCode(
@@ -1579,6 +1628,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param output The HTTP connection to the client application.
    * @param realm The realm for the authorization process.
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginSendUnauthorized(
     OrthancPluginContext*    context,
@@ -1601,6 +1651,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param output The HTTP connection to the client application.
    * @param allowedMethods The allowed methods for this URI (e.g. "GET,POST" after a PUT or a POST request).
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginSendMethodNotAllowed(
     OrthancPluginContext*    context,
@@ -1630,6 +1681,7 @@
    * @param output The HTTP connection to the client application.
    * @param cookie The cookie to be set.
    * @param value The value of the cookie.
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginSetCookie(
     OrthancPluginContext*    context,
@@ -1654,6 +1706,7 @@
    * @param output The HTTP connection to the client application.
    * @param key The HTTP header to be set.
    * @param value The value of the HTTP header.
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginSetHttpHeader(
     OrthancPluginContext*    context,
@@ -1688,6 +1741,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param instance The instance of interest.
    * @return The AET if success, NULL if error.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceRemoteAet(
     OrthancPluginContext*        context,
@@ -1720,6 +1774,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param instance The instance of interest.
    * @return The size of the file, -1 in case of error.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE int64_t OrthancPluginGetInstanceSize(
     OrthancPluginContext*       context,
@@ -1752,6 +1807,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param instance The instance of interest.
    * @return The pointer to the DICOM data, NULL in case of error.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceData(
     OrthancPluginContext*        context,
@@ -1787,6 +1843,7 @@
    * @param instance The instance of interest.
    * @return The NULL value in case of error, or a string containing the JSON file.
    * This string must be freed by OrthancPluginFreeString().
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceJson(
     OrthancPluginContext*        context,
@@ -1824,6 +1881,7 @@
    * @param instance The instance of interest.
    * @return The NULL value in case of error, or a string containing the JSON file.
    * This string must be freed by OrthancPluginFreeString().
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceSimplifiedJson(
     OrthancPluginContext*        context,
@@ -1862,6 +1920,7 @@
    * @param instance The instance of interest.
    * @param metadata The metadata of interest.
    * @return 1 if the metadata is present, 0 if it is absent, -1 in case of error.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE int  OrthancPluginHasInstanceMetadata(
     OrthancPluginContext*        context,
@@ -1899,6 +1958,7 @@
    * @param instance The instance of interest.
    * @param metadata The metadata of interest.
    * @return The metadata value if success, NULL if error.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceMetadata(
     OrthancPluginContext*        context,
@@ -1946,6 +2006,7 @@
    * @param create The callback function to store a file on the custom storage area.
    * @param read The callback function to read a file from the custom storage area.
    * @param remove The callback function to remove a file from the custom storage area.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea(
     OrthancPluginContext*       context,
@@ -2078,6 +2139,7 @@
    * 
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param callback The callback function.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterOnChangeCallback(
     OrthancPluginContext*          context,
@@ -2186,6 +2248,7 @@
    * @param defaultValue The value to return, if the global property is unset.
    * @return The value of the global property, or NULL in the case of an error. This
    * string must be freed by OrthancPluginFreeString().
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE char* OrthancPluginGetGlobalProperty(
     OrthancPluginContext*  context,
@@ -2224,6 +2287,7 @@
    * @param property The global property of interest.
    * @param value The value to be set in the global property.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Orthanc
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginSetGlobalProperty(
     OrthancPluginContext*  context,
@@ -2320,6 +2384,7 @@
    * 
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @return The version.
+   * @ingroup Callbacks
    **/
   ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetExpectedDatabaseVersion(
     OrthancPluginContext*  context)
@@ -2393,6 +2458,7 @@
    * @param contentType The MIME type of the items in the multipart answer.
    * @return 0 if success, or the error code if failure.
    * @see OrthancPluginSendMultipartItem()
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStartMultipartAnswer(
     OrthancPluginContext*    context,
@@ -2420,6 +2486,7 @@
    * @param answerSize Number of bytes of the item.
    * @return 0 if success, or the error code if failure (this notably happens
    * if the connection is closed by the client).
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginSendMultipartItem(
     OrthancPluginContext*    context,
@@ -2461,6 +2528,7 @@
    * @param uncompress If set to "0", the buffer must be compressed. 
    * If set to "1", the buffer must be uncompressed.
    * @return 0 if success, or the error code if failure.
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginBufferCompression(
     OrthancPluginContext*         context,
@@ -2612,6 +2680,7 @@
    * @param body The body of the answer.
    * @param bodySize The size of the body.
    * @see OrthancPluginSendHttpStatusCode()
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatus(
     OrthancPluginContext*    context,
@@ -2647,6 +2716,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param image The image of interest.
    * @return The pixel format.
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginPixelFormat  OrthancPluginGetImagePixelFormat(
     OrthancPluginContext*      context,
@@ -2679,6 +2749,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param image The image of interest.
    * @return The width.
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE uint32_t  OrthancPluginGetImageWidth(
     OrthancPluginContext*      context,
@@ -2711,6 +2782,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param image The image of interest.
    * @return The height.
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE uint32_t  OrthancPluginGetImageHeight(
     OrthancPluginContext*      context,
@@ -2745,6 +2817,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param image The image of interest.
    * @return The pitch.
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE uint32_t  OrthancPluginGetImagePitch(
     OrthancPluginContext*      context,
@@ -2778,6 +2851,7 @@
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param image The image of interest.
    * @return The pointer.
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE const void*  OrthancPluginGetImageBuffer(
     OrthancPluginContext*      context,
@@ -2820,6 +2894,7 @@
    * @param size Size of the memory buffer containing the compressed image.
    * @param format The file format of the compressed image.
    * @return The uncompressed image. It must be freed with OrthancPluginFreeImage().
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginImage *OrthancPluginUncompressImage(
     OrthancPluginContext*      context,
@@ -2854,6 +2929,7 @@
    *
    * @param context The Orthanc plugin context, as received by OrthancPluginInitialize().
    * @param image The image.
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE void  OrthancPluginFreeImage(
     OrthancPluginContext* context, 
@@ -2883,7 +2959,7 @@
 
 
   /**
-   * @brief Create a PNG image.
+   * @brief Encode a PNG image.
    *
    * This function compresses the given memory buffer containing an
    * image using the PNG specification, and stores the result of the
@@ -2899,6 +2975,7 @@
    * @param buffer The memory buffer containing the uncompressed image.
    * @return 0 if success, or the error code if failure.
    * @see OrthancPluginCompressAndAnswerPngImage()
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginCompressPngImage(
     OrthancPluginContext*         context,
@@ -2925,7 +3002,7 @@
 
 
   /**
-   * @brief Create a JPEG image.
+   * @brief Encode a JPEG image.
    *
    * This function compresses the given memory buffer containing an
    * image using the JPEG specification, and stores the result of the
@@ -2943,6 +3020,7 @@
    * quality, best compression) and 100 (best quality, worst
    * compression).
    * @return 0 if success, or the error code if failure.
+   * @ingroup Compression
    **/
   ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginCompressJpegImage(
     OrthancPluginContext*         context,
@@ -2989,6 +3067,7 @@
    * @param quality The quality of the JPEG encoding, between 1 (worst
    * quality, best compression) and 100 (best quality, worst
    * compression).
+   * @ingroup REST
    **/
   ORTHANC_PLUGIN_INLINE void OrthancPluginCompressAndAnswerJpegImage(
     OrthancPluginContext*     context,
--- a/Plugins/Include/orthanc/OrthancCppDatabasePlugin.h	Tue Sep 01 12:11:53 2015 +0200
+++ b/Plugins/Include/orthanc/OrthancCppDatabasePlugin.h	Tue Sep 01 12:42:49 2015 +0200
@@ -63,6 +63,9 @@
 
 
 
+  /**
+   * @ingroup Callbacks
+   **/
   class DatabaseBackendOutput : public NonCopyable
   {
     friend class DatabaseBackendAdapter;
@@ -241,7 +244,9 @@
   };
 
 
-
+  /**
+   * @ingroup Callbacks
+   **/
   class IDatabaseBackend : public NonCopyable
   {
     friend class DatabaseBackendAdapter;
@@ -430,6 +435,8 @@
    * Class creating the bridge between the C low-level primitives for
    * custom database engines, and the high-level IDatabaseBackend C++
    * interface.
+   *
+   * @ingroup Callbacks
    **/
   class DatabaseBackendAdapter
   {