87 #define ORTHANC_PLUGINS_API __declspec(dllexport)
89 #define ORTHANC_PLUGINS_API
92 #define ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER 0
93 #define ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER 9
94 #define ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER 1
112 #ifndef ORTHANC_PLUGIN_INLINE
113 # if __STDC_VERSION__ >= 199901L
115 # define ORTHANC_PLUGIN_INLINE static inline
116 # elif defined(__cplusplus)
118 # define ORTHANC_PLUGIN_INLINE static inline
119 # elif defined(__GNUC__)
121 # define ORTHANC_PLUGIN_INLINE static __inline
122 # elif defined(_MSC_VER)
124 # define ORTHANC_PLUGIN_INLINE static __inline
126 # error Your compiler is not known to support the "inline" keyword
162 ORTHANC_PLUGINS_API
const char* OrthancPluginGetName();
248 _OrthancPluginService_LogInfo = 1,
249 _OrthancPluginService_LogWarning = 2,
250 _OrthancPluginService_LogError = 3,
251 _OrthancPluginService_GetOrthancPath = 4,
252 _OrthancPluginService_GetOrthancDirectory = 5,
253 _OrthancPluginService_GetConfigurationPath = 6,
254 _OrthancPluginService_SetPluginProperty = 7,
255 _OrthancPluginService_GetGlobalProperty = 8,
256 _OrthancPluginService_SetGlobalProperty = 9,
257 _OrthancPluginService_GetCommandLineArgumentsCount = 10,
258 _OrthancPluginService_GetCommandLineArgument = 11,
259 _OrthancPluginService_GetExpectedDatabaseVersion = 12,
260 _OrthancPluginService_GetConfiguration = 13,
263 _OrthancPluginService_RegisterRestCallback = 1000,
264 _OrthancPluginService_RegisterOnStoredInstanceCallback = 1001,
265 _OrthancPluginService_RegisterStorageArea = 1002,
266 _OrthancPluginService_RegisterOnChangeCallback = 1003,
269 _OrthancPluginService_AnswerBuffer = 2000,
270 _OrthancPluginService_CompressAndAnswerPngImage = 2001,
271 _OrthancPluginService_Redirect = 2002,
272 _OrthancPluginService_SendHttpStatusCode = 2003,
273 _OrthancPluginService_SendUnauthorized = 2004,
274 _OrthancPluginService_SendMethodNotAllowed = 2005,
275 _OrthancPluginService_SetCookie = 2006,
276 _OrthancPluginService_SetHttpHeader = 2007,
277 _OrthancPluginService_StartMultipartAnswer = 2008,
278 _OrthancPluginService_SendMultipartItem = 2009,
281 _OrthancPluginService_GetDicomForInstance = 3000,
282 _OrthancPluginService_RestApiGet = 3001,
283 _OrthancPluginService_RestApiPost = 3002,
284 _OrthancPluginService_RestApiDelete = 3003,
285 _OrthancPluginService_RestApiPut = 3004,
286 _OrthancPluginService_LookupPatient = 3005,
287 _OrthancPluginService_LookupStudy = 3006,
288 _OrthancPluginService_LookupSeries = 3007,
289 _OrthancPluginService_LookupInstance = 3008,
290 _OrthancPluginService_LookupStudyWithAccessionNumber = 3009,
291 _OrthancPluginService_RestApiGetAfterPlugins = 3010,
292 _OrthancPluginService_RestApiPostAfterPlugins = 3011,
293 _OrthancPluginService_RestApiDeleteAfterPlugins = 3012,
294 _OrthancPluginService_RestApiPutAfterPlugins = 3013,
297 _OrthancPluginService_GetInstanceRemoteAet = 4000,
298 _OrthancPluginService_GetInstanceSize = 4001,
299 _OrthancPluginService_GetInstanceData = 4002,
300 _OrthancPluginService_GetInstanceJson = 4003,
301 _OrthancPluginService_GetInstanceSimplifiedJson = 4004,
302 _OrthancPluginService_HasInstanceMetadata = 4005,
303 _OrthancPluginService_GetInstanceMetadata = 4006,
306 _OrthancPluginService_RegisterDatabaseBackend = 5000,
307 _OrthancPluginService_DatabaseAnswer = 5001
309 } _OrthancPluginService;
314 _OrthancPluginProperty_Description = 1,
315 _OrthancPluginProperty_RootUri = 2,
316 _OrthancPluginProperty_OrthancExplorer = 3
317 } _OrthancPluginProperty;
465 const char* instanceId);
475 const char* resourceId);
542 typedef struct _OrthancPluginContext_t
544 void* pluginsManager;
545 const char* orthancVersion;
547 int32_t (*InvokeService) (
struct _OrthancPluginContext_t* context,
548 _OrthancPluginService service,
588 int major, minor, revision;
591 if (!strcmp(context->orthancVersion,
"mainline"))
603 (context->orthancVersion,
"%4d.%4d.%4d", &major, &minor, &revision) != 3)
610 if (major > ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER)
615 if (major < ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER)
622 if (minor > ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER)
627 if (minor < ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER)
634 if (revision >= ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER)
657 context->Free(buffer->
data);
673 context->InvokeService(context, _OrthancPluginService_LogError, message);
689 context->InvokeService(context, _OrthancPluginService_LogWarning, message);
705 context->InvokeService(context, _OrthancPluginService_LogInfo, message);
712 const char* pathRegularExpression;
714 } _OrthancPluginRestCallback;
730 const char* pathRegularExpression,
733 _OrthancPluginRestCallback params;
734 params.pathRegularExpression = pathRegularExpression;
735 params.callback = callback;
736 context->InvokeService(context, _OrthancPluginService_RegisterRestCallback, ¶ms);
744 } _OrthancPluginOnStoredInstanceCallback;
759 _OrthancPluginOnStoredInstanceCallback params;
760 params.callback = callback;
762 context->InvokeService(context, _OrthancPluginService_RegisterOnStoredInstanceCallback, ¶ms);
772 const char* mimeType;
773 } _OrthancPluginAnswerBuffer;
791 const char* mimeType)
793 _OrthancPluginAnswerBuffer params;
794 params.output = output;
795 params.answer = answer;
796 params.answerSize = answerSize;
797 params.mimeType = mimeType;
798 context->InvokeService(context, _OrthancPluginService_AnswerBuffer, ¶ms);
810 } _OrthancPluginCompressAndAnswerPngImage;
838 _OrthancPluginCompressAndAnswerPngImage params;
839 params.output = output;
840 params.format = format;
841 params.width = width;
842 params.height = height;
843 params.pitch = pitch;
844 params.buffer = buffer;
845 context->InvokeService(context, _OrthancPluginService_CompressAndAnswerPngImage, ¶ms);
853 const char* instanceId;
854 } _OrthancPluginGetDicomForInstance;
870 const char* instanceId)
872 _OrthancPluginGetDicomForInstance params;
873 params.target = target;
874 params.instanceId = instanceId;
875 return context->InvokeService(context, _OrthancPluginService_GetDicomForInstance, ¶ms);
884 } _OrthancPluginRestApiGet;
902 _OrthancPluginRestApiGet params;
903 params.target = target;
905 return context->InvokeService(context, _OrthancPluginService_RestApiGet, ¶ms);
929 _OrthancPluginRestApiGet params;
930 params.target = target;
932 return context->InvokeService(context, _OrthancPluginService_RestApiGetAfterPlugins, ¶ms);
943 } _OrthancPluginRestApiPostPut;
965 _OrthancPluginRestApiPostPut params;
966 params.target = target;
969 params.bodySize = bodySize;
970 return context->InvokeService(context, _OrthancPluginService_RestApiPost, ¶ms);
997 _OrthancPluginRestApiPostPut params;
998 params.target = target;
1001 params.bodySize = bodySize;
1002 return context->InvokeService(context, _OrthancPluginService_RestApiPostAfterPlugins, ¶ms);
1020 return context->InvokeService(context, _OrthancPluginService_RestApiDelete, uri);
1040 return context->InvokeService(context, _OrthancPluginService_RestApiDeleteAfterPlugins, uri);
1065 _OrthancPluginRestApiPostPut params;
1066 params.target = target;
1069 params.bodySize = bodySize;
1070 return context->InvokeService(context, _OrthancPluginService_RestApiPut, ¶ms);
1098 _OrthancPluginRestApiPostPut params;
1099 params.target = target;
1102 params.bodySize = bodySize;
1103 return context->InvokeService(context, _OrthancPluginService_RestApiPutAfterPlugins, ¶ms);
1111 const char* argument;
1112 } _OrthancPluginOutputPlusArgument;
1127 const char* redirection)
1129 _OrthancPluginOutputPlusArgument params;
1130 params.output = output;
1131 params.argument = redirection;
1132 context->InvokeService(context, _OrthancPluginService_Redirect, ¶ms);
1140 const char* argument;
1141 } _OrthancPluginRetrieveDynamicString;
1157 const char* patientID)
1161 _OrthancPluginRetrieveDynamicString params;
1162 params.result = &result;
1163 params.argument = patientID;
1165 if (context->InvokeService(context, _OrthancPluginService_LookupPatient, ¶ms))
1191 const char* studyUID)
1195 _OrthancPluginRetrieveDynamicString params;
1196 params.result = &result;
1197 params.argument = studyUID;
1199 if (context->InvokeService(context, _OrthancPluginService_LookupStudy, ¶ms))
1225 const char* accessionNumber)
1229 _OrthancPluginRetrieveDynamicString params;
1230 params.result = &result;
1231 params.argument = accessionNumber;
1233 if (context->InvokeService(context, _OrthancPluginService_LookupStudyWithAccessionNumber, ¶ms))
1259 const char* seriesUID)
1263 _OrthancPluginRetrieveDynamicString params;
1264 params.result = &result;
1265 params.argument = seriesUID;
1267 if (context->InvokeService(context, _OrthancPluginService_LookupSeries, ¶ms))
1293 const char* sopInstanceUID)
1297 _OrthancPluginRetrieveDynamicString params;
1298 params.result = &result;
1299 params.argument = sopInstanceUID;
1301 if (context->InvokeService(context, _OrthancPluginService_LookupInstance, ¶ms))
1318 } _OrthancPluginSendHttpStatusCode;
1339 _OrthancPluginSendHttpStatusCode params;
1340 params.output = output;
1341 params.status = status;
1342 context->InvokeService(context, _OrthancPluginService_SendHttpStatusCode, ¶ms);
1361 _OrthancPluginOutputPlusArgument params;
1362 params.output = output;
1363 params.argument = realm;
1364 context->InvokeService(context, _OrthancPluginService_SendUnauthorized, ¶ms);
1381 const char* allowedMethods)
1383 _OrthancPluginOutputPlusArgument params;
1384 params.output = output;
1385 params.argument = allowedMethods;
1386 context->InvokeService(context, _OrthancPluginService_SendMethodNotAllowed, ¶ms);
1395 } _OrthancPluginSetHttpHeader;
1413 _OrthancPluginSetHttpHeader params;
1414 params.output = output;
1415 params.key = cookie;
1416 params.value = value;
1417 context->InvokeService(context, _OrthancPluginService_SetCookie, ¶ms);
1437 _OrthancPluginSetHttpHeader params;
1438 params.output = output;
1440 params.value = value;
1441 context->InvokeService(context, _OrthancPluginService_SetHttpHeader, ¶ms);
1447 char** resultStringToFree;
1448 const char** resultString;
1449 int64_t* resultInt64;
1452 } _OrthancPluginAccessDicomInstance;
1471 _OrthancPluginAccessDicomInstance params;
1472 memset(¶ms, 0,
sizeof(params));
1473 params.resultString = &result;
1474 params.instance = instance;
1476 if (context->InvokeService(context, _OrthancPluginService_GetInstanceRemoteAet, ¶ms))
1503 _OrthancPluginAccessDicomInstance params;
1504 memset(¶ms, 0,
sizeof(params));
1505 params.resultInt64 = &size;
1506 params.instance = instance;
1508 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSize, ¶ms))
1535 _OrthancPluginAccessDicomInstance params;
1536 memset(¶ms, 0,
sizeof(params));
1537 params.resultString = &result;
1538 params.instance = instance;
1540 if (context->InvokeService(context, _OrthancPluginService_GetInstanceData, ¶ms))
1570 _OrthancPluginAccessDicomInstance params;
1571 memset(¶ms, 0,
sizeof(params));
1572 params.resultStringToFree = &result;
1573 params.instance = instance;
1575 if (context->InvokeService(context, _OrthancPluginService_GetInstanceJson, ¶ms))
1607 _OrthancPluginAccessDicomInstance params;
1608 memset(¶ms, 0,
sizeof(params));
1609 params.resultStringToFree = &result;
1610 params.instance = instance;
1612 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSimplifiedJson, ¶ms))
1642 const char* metadata)
1646 _OrthancPluginAccessDicomInstance params;
1647 memset(¶ms, 0,
sizeof(params));
1648 params.resultInt64 = &result;
1649 params.instance = instance;
1650 params.key = metadata;
1652 if (context->InvokeService(context, _OrthancPluginService_HasInstanceMetadata, ¶ms))
1659 return (result != 0);
1679 const char* metadata)
1683 _OrthancPluginAccessDicomInstance params;
1684 memset(¶ms, 0,
sizeof(params));
1685 params.resultString = &result;
1686 params.instance = instance;
1687 params.key = metadata;
1689 if (context->InvokeService(context, _OrthancPluginService_GetInstanceMetadata, ¶ms))
1708 } _OrthancPluginRegisterStorageArea;
1729 _OrthancPluginRegisterStorageArea params;
1730 params.create = create;
1732 params.remove =
remove;
1735 params.free = ::free;
1740 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea, ¶ms);
1759 _OrthancPluginRetrieveDynamicString params;
1760 params.result = &result;
1761 params.argument = NULL;
1763 if (context->InvokeService(context, _OrthancPluginService_GetOrthancPath, ¶ms))
1789 _OrthancPluginRetrieveDynamicString params;
1790 params.result = &result;
1791 params.argument = NULL;
1793 if (context->InvokeService(context, _OrthancPluginService_GetOrthancDirectory, ¶ms))
1824 _OrthancPluginRetrieveDynamicString params;
1825 params.result = &result;
1826 params.argument = NULL;
1828 if (context->InvokeService(context, _OrthancPluginService_GetConfigurationPath, ¶ms))
1844 } _OrthancPluginOnChangeCallback;
1859 _OrthancPluginOnChangeCallback params;
1860 params.callback = callback;
1862 context->InvokeService(context, _OrthancPluginService_RegisterOnChangeCallback, ¶ms);
1870 _OrthancPluginProperty property;
1872 } _OrthancPluginSetPluginProperty;
1890 _OrthancPluginSetPluginProperty params;
1891 params.plugin = OrthancPluginGetName();
1892 params.property = _OrthancPluginProperty_RootUri;
1895 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, ¶ms);
1910 const char* description)
1912 _OrthancPluginSetPluginProperty params;
1913 params.plugin = OrthancPluginGetName();
1914 params.property = _OrthancPluginProperty_Description;
1915 params.value = description;
1917 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, ¶ms);
1932 const char* javascript)
1934 _OrthancPluginSetPluginProperty params;
1935 params.plugin = OrthancPluginGetName();
1936 params.property = _OrthancPluginProperty_OrthancExplorer;
1937 params.value = javascript;
1939 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, ¶ms);
1948 } _OrthancPluginGlobalProperty;
1966 const char* defaultValue)
1970 _OrthancPluginGlobalProperty params;
1971 params.result = &result;
1972 params.property = property;
1973 params.value = defaultValue;
1975 if (context->InvokeService(context, _OrthancPluginService_GetGlobalProperty, ¶ms))
2006 _OrthancPluginGlobalProperty params;
2007 params.result = NULL;
2008 params.property = property;
2009 params.value = value;
2011 if (context->InvokeService(context, _OrthancPluginService_SetGlobalProperty, ¶ms))
2026 int32_t *resultInt32;
2027 uint32_t *resultUint32;
2028 int64_t *resultInt64;
2029 uint64_t *resultUint64;
2030 } _OrthancPluginReturnSingleValue;
2045 _OrthancPluginReturnSingleValue params;
2046 memset(¶ms, 0,
sizeof(params));
2047 params.resultUint32 = &count;
2049 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgumentsCount, ¶ms))
2080 _OrthancPluginGlobalProperty params;
2081 params.result = &result;
2082 params.property = (int32_t) argument;
2083 params.value = NULL;
2085 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgument, ¶ms))
2110 _OrthancPluginReturnSingleValue params;
2111 memset(¶ms, 0,
sizeof(params));
2112 params.resultUint32 = &count;
2114 if (context->InvokeService(context, _OrthancPluginService_GetExpectedDatabaseVersion, ¶ms))
2142 _OrthancPluginRetrieveDynamicString params;
2143 params.result = &result;
2144 params.argument = NULL;
2146 if (context->InvokeService(context, _OrthancPluginService_GetConfiguration, ¶ms))
2162 const char* subType;
2163 const char* contentType;
2164 } _OrthancPluginStartMultipartAnswer;
2181 const char* subType,
2182 const char* contentType)
2184 _OrthancPluginStartMultipartAnswer params;
2185 params.output = output;
2186 params.subType = subType;
2187 params.contentType = contentType;
2188 return context->InvokeService(context, _OrthancPluginService_StartMultipartAnswer, ¶ms);
2209 uint32_t answerSize)
2211 _OrthancPluginAnswerBuffer params;
2212 params.output = output;
2213 params.answer = answer;
2214 params.answerSize = answerSize;
2215 params.mimeType = NULL;
2216 return context->InvokeService(context, _OrthancPluginService_SendMultipartItem, ¶ms);
int32_t(* OrthancPluginStorageRemove)(const char *uuid, OrthancPluginContentType type)
Callback for removing a file from the storage area.
Definition: OrthancCPlugin.h:533
void OrthancPluginSendMethodNotAllowed(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *allowedMethods)
Signal that this URI does not support this HTTP method.
Definition: OrthancCPlugin.h:1378
char * OrthancPluginGetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *defaultValue)
Get the value of a global property.
Definition: OrthancCPlugin.h:1963
The parameters of a REST request.
Definition: OrthancCPlugin.h:180
void OrthancPluginRegisterOnChangeCallback(OrthancPluginContext *context, OrthancPluginOnChangeCallback callback)
Register a callback to monitor changes.
Definition: OrthancCPlugin.h:1855
Definition: OrthancCPlugin.h:375
void OrthancPluginRegisterOnStoredInstanceCallback(OrthancPluginContext *context, OrthancPluginOnStoredInstanceCallback callback)
Register a callback for received instances.
Definition: OrthancCPlugin.h:755
const char *const * headersValues
The values of the HTTP headers.
Definition: OrthancCPlugin.h:240
const char *const * headersKeys
The keys of the HTTP headers (always converted to low-case).
Definition: OrthancCPlugin.h:235
uint32_t getCount
For a GET request, the number of GET parameters.
Definition: OrthancCPlugin.h:200
void OrthancPluginRedirect(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *redirection)
Redirect a REST request.
Definition: OrthancCPlugin.h:1124
int32_t(* OrthancPluginStorageCreate)(const char *uuid, const void *content, int64_t size, OrthancPluginContentType type)
Callback for writing to the storage area.
Definition: OrthancCPlugin.h:497
int OrthancPluginRestApiPost(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri, const char *body, uint32_t bodySize)
Make a POST call to the built-in Orthanc REST API.
Definition: OrthancCPlugin.h:958
void OrthancPluginSendHttpStatusCode(OrthancPluginContext *context, OrthancPluginRestOutput *output, uint16_t status)
Send a HTTP status code.
Definition: OrthancCPlugin.h:1334
Definition: OrthancCPlugin.h:401
const char * OrthancPluginGetInstanceRemoteAet(OrthancPluginContext *context, OrthancPluginDicomInstance *instance)
Get the AET of a DICOM instance.
Definition: OrthancCPlugin.h:1465
void OrthancPluginCompressAndAnswerPngImage(OrthancPluginContext *context, OrthancPluginRestOutput *output, OrthancPluginPixelFormat format, uint32_t width, uint32_t height, uint32_t pitch, const void *buffer)
Answer to a REST request with a PNG image.
Definition: OrthancCPlugin.h:829
OrthancPluginContentType
Definition: OrthancCPlugin.h:372
Definition: OrthancCPlugin.h:404
void OrthancPluginLogInfo(OrthancPluginContext *context, const char *message)
Log an information.
Definition: OrthancCPlugin.h:701
int32_t(* OrthancPluginStorageRead)(void **content, int64_t *size, const char *uuid, OrthancPluginContentType type)
Callback for reading from the storage area.
Definition: OrthancCPlugin.h:516
Definition: OrthancCPlugin.h:170
void OrthancPluginLogError(OrthancPluginContext *context, const char *message)
Log an error.
Definition: OrthancCPlugin.h:669
char * OrthancPluginGetConfiguration(OrthancPluginContext *context)
Return the content of the configuration file(s).
Definition: OrthancCPlugin.h:2138
void OrthancPluginFreeMemoryBuffer(OrthancPluginContext *context, OrthancPluginMemoryBuffer *buffer)
Free a memory buffer.
Definition: OrthancCPlugin.h:653
char * OrthancPluginGetOrthancPath(OrthancPluginContext *context)
Return the path to the Orthanc executable.
Definition: OrthancCPlugin.h:1755
OrthancPluginResourceType
Definition: OrthancCPlugin.h:384
int32_t(* OrthancPluginRestCallback)(OrthancPluginRestOutput *output, const char *url, const OrthancPluginHttpRequest *request)
Signature of a callback function that answers to a REST request.
Definition: OrthancCPlugin.h:453
void OrthancPluginSendUnauthorized(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *realm)
Signal that a REST request is not authorized.
Definition: OrthancCPlugin.h:1356
OrthancPluginChangeType
Definition: OrthancCPlugin.h:397
int OrthancPluginRestApiDelete(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the built-in Orthanc REST API.
Definition: OrthancCPlugin.h:1016
void OrthancPluginSetHttpHeader(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *key, const char *value)
Set some HTTP header.
Definition: OrthancCPlugin.h:1431
int OrthancPluginGetDicomForInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *instanceId)
Retrieve a DICOM instance using its Orthanc identifier.
Definition: OrthancCPlugin.h:867
char * OrthancPluginGetOrthancDirectory(OrthancPluginContext *context)
Return the directory containing the Orthanc.
Definition: OrthancCPlugin.h:1785
Graylevel, unsigned 16bpp image.
Definition: OrthancCPlugin.h:340
int OrthancPluginRestApiDeleteAfterPlugins(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the REST API, as tainted by the plugins.
Definition: OrthancCPlugin.h:1036
char * OrthancPluginLookupStudyWithAccessionNumber(OrthancPluginContext *context, const char *accessionNumber)
Look for a study, using the accession number.
Definition: OrthancCPlugin.h:1223
int32_t OrthancPluginStartMultipartAnswer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *subType, const char *contentType)
Start an HTTP multipart answer.
Definition: OrthancCPlugin.h:2178
void OrthancPluginSetRootUri(OrthancPluginContext *context, const char *uri)
Set the URI where the plugin provides its Web interface.
Definition: OrthancCPlugin.h:1886
void * data
The content of the buffer.
Definition: OrthancCPlugin.h:425
Definition: OrthancCPlugin.h:402
Color image in RGB24 format.
Definition: OrthancCPlugin.h:356
int OrthancPluginHasInstanceMetadata(OrthancPluginContext *context, OrthancPluginDicomInstance *instance, const char *metadata)
Check whether a DICOM instance is associated with some metadata.
Definition: OrthancCPlugin.h:1639
uint32_t headersCount
The number of HTTP headers.
Definition: OrthancCPlugin.h:230
char * OrthancPluginGetInstanceSimplifiedJson(OrthancPluginContext *context, OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file (with simplification).
Definition: OrthancCPlugin.h:1601
void OrthancPluginExtendOrthancExplorer(OrthancPluginContext *context, const char *javascript)
Extend the JavaScript code of Orthanc Explorer.
Definition: OrthancCPlugin.h:1930
OrthancPluginHttpMethod
Definition: OrthancCPlugin.h:168
struct _OrthancPluginDicomInstance_t OrthancPluginDicomInstance
Opaque structure that represents a DICOM instance received by Orthanc.
Definition: OrthancCPlugin.h:446
char * OrthancPluginGetCommandLineArgument(OrthancPluginContext *context, uint32_t argument)
Get the value of a command-line argument.
Definition: OrthancCPlugin.h:2074
Definition: OrthancCPlugin.h:408
struct _OrthancPluginContext_t OrthancPluginContext
Data structure that contains information about the Orthanc core.
Definition: OrthancCPlugin.h:400
Definition: OrthancCPlugin.h:386
struct _OrthancPluginRestOutput_t OrthancPluginRestOutput
Opaque structure that represents the HTTP connection to the client application.
Definition: OrthancCPlugin.h:439
int32_t OrthancPluginSetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *value)
Set the value of a global property.
Definition: OrthancCPlugin.h:2001
int OrthancPluginRestApiPut(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri, const char *body, uint32_t bodySize)
Make a PUT call to the built-in Orthanc REST API.
Definition: OrthancCPlugin.h:1058
int OrthancPluginRestApiPutAfterPlugins(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri, const char *body, uint32_t bodySize)
Make a PUT call to the REST API, as tainted by the plugins.
Definition: OrthancCPlugin.h:1091
const char *const * getValues
For a GET request, the values of the GET parameters.
Definition: OrthancCPlugin.h:210
int OrthancPluginRestApiPostAfterPlugins(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri, const char *body, uint32_t bodySize)
Make a POST call to the REST API, as tainted by the plugins.
Definition: OrthancCPlugin.h:990
Definition: OrthancCPlugin.h:172
char * OrthancPluginGetConfigurationPath(OrthancPluginContext *context)
Return the path to the configuration file(s).
Definition: OrthancCPlugin.h:1820
const char * body
For a PUT or POST request, the content of the body.
Definition: OrthancCPlugin.h:215
Definition: OrthancCPlugin.h:173
char * OrthancPluginLookupPatient(OrthancPluginContext *context, const char *patientID)
Look for a patient.
Definition: OrthancCPlugin.h:1155
Color image in RGBA32 format.
Definition: OrthancCPlugin.h:364
Definition: OrthancCPlugin.h:387
void OrthancPluginSetCookie(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *cookie, const char *value)
Set a cookie.
Definition: OrthancCPlugin.h:1407
const char *const * getKeys
For a GET request, the keys of the GET parameters.
Definition: OrthancCPlugin.h:205
Definition: OrthancCPlugin.h:399
const char *const * groups
The matched values for the groups of the regular expression.
Definition: OrthancCPlugin.h:195
uint32_t OrthancPluginGetCommandLineArgumentsCount(OrthancPluginContext *context)
Get the number of command-line arguments.
Definition: OrthancCPlugin.h:2040
uint32_t size
The number of bytes in the buffer.
Definition: OrthancCPlugin.h:430
int OrthancPluginRestApiGet(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri)
Make a GET call to the built-in Orthanc REST API.
Definition: OrthancCPlugin.h:897
uint32_t groupsCount
The number of groups of the regular expression.
Definition: OrthancCPlugin.h:190
int32_t(* OrthancPluginOnStoredInstanceCallback)(OrthancPluginDicomInstance *instance, const char *instanceId)
Signature of a callback function that is triggered when Orthanc receives a DICOM instance.
Definition: OrthancCPlugin.h:463
Definition: OrthancCPlugin.h:407
OrthancPluginPixelFormat
Definition: OrthancCPlugin.h:324
Definition: OrthancCPlugin.h:388
void OrthancPluginRegisterRestCallback(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback callback)
Register a REST callback.
Definition: OrthancCPlugin.h:728
int32_t OrthancPluginSendMultipartItem(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *answer, uint32_t answerSize)
Send an item as a part of some HTTP multipart answer.
Definition: OrthancCPlugin.h:2205
Graylevel 8bpp image.
Definition: OrthancCPlugin.h:332
uint32_t bodySize
For a PUT or POST request, the number of bytes of the body.
Definition: OrthancCPlugin.h:220
void OrthancPluginAnswerBuffer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *answer, uint32_t answerSize, const char *mimeType)
Answer to a REST request.
Definition: OrthancCPlugin.h:786
const char * OrthancPluginGetInstanceMetadata(OrthancPluginContext *context, OrthancPluginDicomInstance *instance, const char *metadata)
Get the value of some metadata associated with a given DICOM instance.
Definition: OrthancCPlugin.h:1676
uint32_t OrthancPluginGetExpectedDatabaseVersion(OrthancPluginContext *context)
Get the expected version of the database schema.
Definition: OrthancCPlugin.h:2105
Definition: OrthancCPlugin.h:406
void OrthancPluginRegisterStorageArea(OrthancPluginContext *context, OrthancPluginStorageCreate create, OrthancPluginStorageRead read, OrthancPluginStorageRemove remove)
Register a custom storage area.
Definition: OrthancCPlugin.h:1723
void OrthancPluginFreeString(OrthancPluginContext *context, char *str)
Free a string.
Definition: OrthancCPlugin.h:562
void(* OrthancPluginFree)(void *buffer)
Signature of a function to free dynamic memory.
Definition: OrthancCPlugin.h:482
Definition: OrthancCPlugin.h:403
int64_t OrthancPluginGetInstanceSize(OrthancPluginContext *context, OrthancPluginDicomInstance *instance)
Get the size of a DICOM file.
Definition: OrthancCPlugin.h:1497
Definition: OrthancCPlugin.h:389
char * OrthancPluginGetInstanceJson(OrthancPluginContext *context, OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file.
Definition: OrthancCPlugin.h:1564
Graylevel, signed 16bpp image.
Definition: OrthancCPlugin.h:348
OrthancPluginHttpMethod method
The HTTP method.
Definition: OrthancCPlugin.h:185
const char * OrthancPluginGetInstanceData(OrthancPluginContext *context, OrthancPluginDicomInstance *instance)
Get the data of a DICOM file.
Definition: OrthancCPlugin.h:1529
A memory buffer allocated by the core system of Orthanc.
Definition: OrthancCPlugin.h:420
void OrthancPluginSetDescription(OrthancPluginContext *context, const char *description)
Set a description for this plugin.
Definition: OrthancCPlugin.h:1908
int OrthancPluginCheckVersion(OrthancPluginContext *context)
Check the compatibility of the plugin wrt. the version of its hosting Orthanc.
Definition: OrthancCPlugin.h:585
void OrthancPluginLogWarning(OrthancPluginContext *context, const char *message)
Log a warning.
Definition: OrthancCPlugin.h:685
Definition: OrthancCPlugin.h:376
Definition: OrthancCPlugin.h:171
char * OrthancPluginLookupStudy(OrthancPluginContext *context, const char *studyUID)
Look for a study.
Definition: OrthancCPlugin.h:1189
char * OrthancPluginLookupSeries(OrthancPluginContext *context, const char *seriesUID)
Look for a series.
Definition: OrthancCPlugin.h:1257
Definition: OrthancCPlugin.h:374
Definition: OrthancCPlugin.h:405
int OrthancPluginRestApiGetAfterPlugins(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri)
Make a GET call to the REST API, as tainted by the plugins.
Definition: OrthancCPlugin.h:924
int32_t(* OrthancPluginOnChangeCallback)(OrthancPluginChangeType changeType, OrthancPluginResourceType resourceType, const char *resourceId)
Signature of a callback function that is triggered when a change happens to some DICOM resource...
Definition: OrthancCPlugin.h:472
char * OrthancPluginLookupInstance(OrthancPluginContext *context, const char *sopInstanceUID)
Look for an instance.
Definition: OrthancCPlugin.h:1291