Orthanc Plugin SDK 1.12.9
Documentation of the plugin interface of Orthanc
OrthancCPlugin.h
1
54
55
56
76
77
78
83
84
85
107
108
109
110#pragma once
111
112
113#include <stdio.h>
114#include <string.h>
115
116#ifdef _WIN32
117# define ORTHANC_PLUGINS_API __declspec(dllexport)
118#elif __GNUC__ >= 4
119# define ORTHANC_PLUGINS_API __attribute__ ((visibility ("default")))
120#else
121# define ORTHANC_PLUGINS_API
122#endif
123
124#define ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER 1
125#define ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER 12
126#define ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER 9
127
128
129#if !defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE)
130#define ORTHANC_PLUGINS_VERSION_IS_ABOVE(major, minor, revision) \
131 (ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER > major || \
132 (ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER == major && \
133 (ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER > minor || \
134 (ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER == minor && \
135 ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER >= revision))))
136#endif
137
138
139
140/********************************************************************
141 ** Check that function inlining is properly supported. The use of
142 ** inlining is required, to avoid the duplication of object code
143 ** between two compilation modules that would use the Orthanc Plugin
144 ** API.
145 ********************************************************************/
146
147/* If the auto-detection of the "inline" keyword below does not work
148 automatically and that your compiler is known to properly support
149 inlining, uncomment the following #define and adapt the definition
150 of "static inline". */
151
152/* #define ORTHANC_PLUGIN_INLINE static inline */
153
154#ifndef ORTHANC_PLUGIN_INLINE
155# if __STDC_VERSION__ >= 199901L
156/* This is C99 or above: http://predef.sourceforge.net/prestd.html */
157# define ORTHANC_PLUGIN_INLINE static inline
158# elif defined(__cplusplus)
159/* This is C++ */
160# define ORTHANC_PLUGIN_INLINE static inline
161# elif defined(__GNUC__)
162/* This is GCC running in C89 mode */
163# define ORTHANC_PLUGIN_INLINE static __inline
164# elif defined(_MSC_VER)
165/* This is Visual Studio running in C89 mode */
166# define ORTHANC_PLUGIN_INLINE static __inline
167# else
168# error Your compiler is not known to support the "inline" keyword
169# endif
170#endif
171
172
173#ifndef ORTHANC_PLUGIN_DEPRECATED
174# if defined(_MSC_VER)
175# define ORTHANC_PLUGIN_DEPRECATED __declspec(deprecated)
176# elif __GNUC__ >= 4
177# define ORTHANC_PLUGIN_DEPRECATED __attribute__ ((deprecated))
178# elif defined(__clang__)
179# define ORTHANC_PLUGIN_DEPRECATED __attribute__ ((deprecated))
180# else
181# pragma message("WARNING: You need to implement ORTHANC_PLUGINS_DEPRECATED for this compiler")
182# define ORTHANC_PLUGIN_DEPRECATED
183# endif
184#endif
185
186
187#ifndef ORTHANC_PLUGIN_SINCE_SDK
194# if defined(__clang__)
195# define ORTHANC_PLUGIN_SINCE_SDK(version) __attribute__ ((annotate("ORTHANC_PLUGIN_SINCE_SDK " version)))
196# else
197# define ORTHANC_PLUGIN_SINCE_SDK(version)
198# endif
199#endif
200
201
202
203/********************************************************************
204 ** Inclusion of standard libraries.
205 ********************************************************************/
206
212#include <stdint.h>
213
214#include <stdlib.h>
215
216
217
218/********************************************************************
219 ** Definition of the Orthanc Plugin API.
220 ********************************************************************/
221
223
224#ifdef __cplusplus
225extern "C"
226{
227#endif
228
232 typedef enum
233 {
346
347 _OrthancPluginErrorCode_INTERNAL = 0x7fffffff
349
350
355 ORTHANC_PLUGINS_API const char* OrthancPluginGetName();
356
357
361 typedef enum
362 {
367
368 _OrthancPluginHttpMethod_INTERNAL = 0x7fffffff
370
371
376 typedef struct
377 {
382
386 uint32_t groupsCount;
387
391 const char* const* groups;
392
396 uint32_t getCount;
397
401 const char* const* getKeys;
402
406 const char* const* getValues;
407
411 const void* body;
412
416 uint32_t bodySize;
417
418
419 /* --------------------------------------------------
420 New in version 0.8.1
421 -------------------------------------------------- */
422
426 uint32_t headersCount;
427
431 const char* const* headersKeys;
432
436 const char* const* headersValues;
437
438
439 /* --------------------------------------------------
440 New in version 1.12.9
441 -------------------------------------------------- */
442
448
454
456
457
458 typedef enum
459 {
460 /* Generic services */
461 _OrthancPluginService_LogInfo = 1,
462 _OrthancPluginService_LogWarning = 2,
463 _OrthancPluginService_LogError = 3,
464 _OrthancPluginService_GetOrthancPath = 4,
465 _OrthancPluginService_GetOrthancDirectory = 5,
466 _OrthancPluginService_GetConfigurationPath = 6,
467 _OrthancPluginService_SetPluginProperty = 7,
468 _OrthancPluginService_GetGlobalProperty = 8,
469 _OrthancPluginService_SetGlobalProperty = 9,
470 _OrthancPluginService_GetCommandLineArgumentsCount = 10,
471 _OrthancPluginService_GetCommandLineArgument = 11,
472 _OrthancPluginService_GetExpectedDatabaseVersion = 12,
473 _OrthancPluginService_GetConfiguration = 13,
474 _OrthancPluginService_BufferCompression = 14,
475 _OrthancPluginService_ReadFile = 15,
476 _OrthancPluginService_WriteFile = 16,
477 _OrthancPluginService_GetErrorDescription = 17,
478 _OrthancPluginService_CallHttpClient = 18,
479 _OrthancPluginService_RegisterErrorCode = 19,
480 _OrthancPluginService_RegisterDictionaryTag = 20,
481 _OrthancPluginService_DicomBufferToJson = 21,
482 _OrthancPluginService_DicomInstanceToJson = 22,
483 _OrthancPluginService_CreateDicom = 23,
484 _OrthancPluginService_ComputeMd5 = 24,
485 _OrthancPluginService_ComputeSha1 = 25,
486 _OrthancPluginService_LookupDictionary = 26,
487 _OrthancPluginService_CallHttpClient2 = 27,
488 _OrthancPluginService_GenerateUuid = 28,
489 _OrthancPluginService_RegisterPrivateDictionaryTag = 29,
490 _OrthancPluginService_AutodetectMimeType = 30,
491 _OrthancPluginService_SetMetricsValue = 31,
492 _OrthancPluginService_EncodeDicomWebJson = 32,
493 _OrthancPluginService_EncodeDicomWebXml = 33,
494 _OrthancPluginService_ChunkedHttpClient = 34, /* New in Orthanc 1.5.7 */
495 _OrthancPluginService_GetTagName = 35, /* New in Orthanc 1.5.7 */
496 _OrthancPluginService_EncodeDicomWebJson2 = 36, /* New in Orthanc 1.7.0 */
497 _OrthancPluginService_EncodeDicomWebXml2 = 37, /* New in Orthanc 1.7.0 */
498 _OrthancPluginService_CreateMemoryBuffer = 38, /* New in Orthanc 1.7.0 */
499 _OrthancPluginService_GenerateRestApiAuthorizationToken = 39, /* New in Orthanc 1.8.1 */
500 _OrthancPluginService_CreateMemoryBuffer64 = 40, /* New in Orthanc 1.9.0 */
501 _OrthancPluginService_CreateDicom2 = 41, /* New in Orthanc 1.9.0 */
502 _OrthancPluginService_GetDatabaseServerIdentifier = 42, /* New in Orthanc 1.11.1 */
503 _OrthancPluginService_SetMetricsIntegerValue = 43, /* New in Orthanc 1.12.1 */
504 _OrthancPluginService_SetCurrentThreadName = 44, /* New in Orthanc 1.12.2 */
505 _OrthancPluginService_LogMessage = 45, /* New in Orthanc 1.12.4 */
506 _OrthancPluginService_AdoptDicomInstance = 46, /* New in Orthanc 1.12.8 */
507 _OrthancPluginService_GetAttachmentCustomData = 47, /* New in Orthanc 1.12.8 */
508 _OrthancPluginService_SetAttachmentCustomData = 48, /* New in Orthanc 1.12.8 */
509 _OrthancPluginService_StoreKeyValue = 49, /* New in Orthanc 1.12.8 */
510 _OrthancPluginService_DeleteKeyValue = 50, /* New in Orthanc 1.12.8 */
511 _OrthancPluginService_GetKeyValue = 51, /* New in Orthanc 1.12.8 */
512 _OrthancPluginService_CreateKeysValuesIterator = 52, /* New in Orthanc 1.12.8 */
513 _OrthancPluginService_FreeKeysValuesIterator = 53, /* New in Orthanc 1.12.8 */
514 _OrthancPluginService_KeysValuesIteratorNext = 54, /* New in Orthanc 1.12.8 */
515 _OrthancPluginService_KeysValuesIteratorGetKey = 55, /* New in Orthanc 1.12.8 */
516 _OrthancPluginService_KeysValuesIteratorGetValue = 56, /* New in Orthanc 1.12.8 */
517 _OrthancPluginService_EnqueueValue = 57, /* New in Orthanc 1.12.8 */
518 _OrthancPluginService_DequeueValue = 58, /* New in Orthanc 1.12.8 */
519 _OrthancPluginService_GetQueueSize = 59, /* New in Orthanc 1.12.8 */
520 _OrthancPluginService_SetStableStatus = 60, /* New in Orthanc 1.12.9 */
521 _OrthancPluginService_EmitAuditLog = 61, /* New in Orthanc 1.12.9 */
522
523 /* Registration of callbacks */
524 _OrthancPluginService_RegisterRestCallback = 1000,
525 _OrthancPluginService_RegisterOnStoredInstanceCallback = 1001,
526 _OrthancPluginService_RegisterStorageArea = 1002,
527 _OrthancPluginService_RegisterOnChangeCallback = 1003,
528 _OrthancPluginService_RegisterRestCallbackNoLock = 1004,
529 _OrthancPluginService_RegisterWorklistCallback = 1005,
530 _OrthancPluginService_RegisterDecodeImageCallback = 1006,
531 _OrthancPluginService_RegisterIncomingHttpRequestFilter = 1007,
532 _OrthancPluginService_RegisterFindCallback = 1008,
533 _OrthancPluginService_RegisterMoveCallback = 1009,
534 _OrthancPluginService_RegisterIncomingHttpRequestFilter2 = 1010,
535 _OrthancPluginService_RegisterRefreshMetricsCallback = 1011,
536 _OrthancPluginService_RegisterChunkedRestCallback = 1012, /* New in Orthanc 1.5.7 */
537 _OrthancPluginService_RegisterStorageCommitmentScpCallback = 1013, /* New in Orthanc 1.6.0 */
538 _OrthancPluginService_RegisterIncomingDicomInstanceFilter = 1014, /* New in Orthanc 1.6.1 */
539 _OrthancPluginService_RegisterTranscoderCallback = 1015, /* New in Orthanc 1.7.0 */
540 _OrthancPluginService_RegisterStorageArea2 = 1016, /* New in Orthanc 1.9.0 */
541 _OrthancPluginService_RegisterIncomingCStoreInstanceFilter = 1017, /* New in Orthanc 1.10.0 */
542 _OrthancPluginService_RegisterReceivedInstanceCallback = 1018, /* New in Orthanc 1.10.0 */
543 _OrthancPluginService_RegisterWebDavCollection = 1019, /* New in Orthanc 1.10.1 */
544 _OrthancPluginService_RegisterStorageArea3 = 1020, /* New in Orthanc 1.12.8 */
545 _OrthancPluginService_RegisterHttpAuthentication = 1021, /* New in Orthanc 1.12.9 */
546 _OrthancPluginService_RegisterAuditLogHandler = 1022, /* New in Orthanc 1.12.9 */
547
548 /* Sending answers to REST calls */
549 _OrthancPluginService_AnswerBuffer = 2000,
550 _OrthancPluginService_CompressAndAnswerPngImage = 2001, /* Unused as of Orthanc 0.9.4 */
551 _OrthancPluginService_Redirect = 2002,
552 _OrthancPluginService_SendHttpStatusCode = 2003,
553 _OrthancPluginService_SendUnauthorized = 2004,
554 _OrthancPluginService_SendMethodNotAllowed = 2005,
555 _OrthancPluginService_SetCookie = 2006,
556 _OrthancPluginService_SetHttpHeader = 2007,
557 _OrthancPluginService_StartMultipartAnswer = 2008,
558 _OrthancPluginService_SendMultipartItem = 2009,
559 _OrthancPluginService_SendHttpStatus = 2010,
560 _OrthancPluginService_CompressAndAnswerImage = 2011,
561 _OrthancPluginService_SendMultipartItem2 = 2012,
562 _OrthancPluginService_SetHttpErrorDetails = 2013,
563 _OrthancPluginService_StartStreamAnswer = 2014,
564 _OrthancPluginService_SendStreamChunk = 2015,
565
566 /* Access to the Orthanc database and API */
567 _OrthancPluginService_GetDicomForInstance = 3000,
568 _OrthancPluginService_RestApiGet = 3001,
569 _OrthancPluginService_RestApiPost = 3002,
570 _OrthancPluginService_RestApiDelete = 3003,
571 _OrthancPluginService_RestApiPut = 3004,
572 _OrthancPluginService_LookupPatient = 3005,
573 _OrthancPluginService_LookupStudy = 3006,
574 _OrthancPluginService_LookupSeries = 3007,
575 _OrthancPluginService_LookupInstance = 3008,
576 _OrthancPluginService_LookupStudyWithAccessionNumber = 3009,
577 _OrthancPluginService_RestApiGetAfterPlugins = 3010,
578 _OrthancPluginService_RestApiPostAfterPlugins = 3011,
579 _OrthancPluginService_RestApiDeleteAfterPlugins = 3012,
580 _OrthancPluginService_RestApiPutAfterPlugins = 3013,
581 _OrthancPluginService_ReconstructMainDicomTags = 3014,
582 _OrthancPluginService_RestApiGet2 = 3015,
583 _OrthancPluginService_CallRestApi = 3016, /* New in Orthanc 1.9.2 */
584
585 /* Access to DICOM instances */
586 _OrthancPluginService_GetInstanceRemoteAet = 4000,
587 _OrthancPluginService_GetInstanceSize = 4001,
588 _OrthancPluginService_GetInstanceData = 4002,
589 _OrthancPluginService_GetInstanceJson = 4003,
590 _OrthancPluginService_GetInstanceSimplifiedJson = 4004,
591 _OrthancPluginService_HasInstanceMetadata = 4005,
592 _OrthancPluginService_GetInstanceMetadata = 4006,
593 _OrthancPluginService_GetInstanceOrigin = 4007,
594 _OrthancPluginService_GetInstanceTransferSyntaxUid = 4008,
595 _OrthancPluginService_HasInstancePixelData = 4009,
596 _OrthancPluginService_CreateDicomInstance = 4010, /* New in Orthanc 1.7.0 */
597 _OrthancPluginService_FreeDicomInstance = 4011, /* New in Orthanc 1.7.0 */
598 _OrthancPluginService_GetInstanceFramesCount = 4012, /* New in Orthanc 1.7.0 */
599 _OrthancPluginService_GetInstanceRawFrame = 4013, /* New in Orthanc 1.7.0 */
600 _OrthancPluginService_GetInstanceDecodedFrame = 4014, /* New in Orthanc 1.7.0 */
601 _OrthancPluginService_TranscodeDicomInstance = 4015, /* New in Orthanc 1.7.0 */
602 _OrthancPluginService_SerializeDicomInstance = 4016, /* New in Orthanc 1.7.0 */
603 _OrthancPluginService_GetInstanceAdvancedJson = 4017, /* New in Orthanc 1.7.0 */
604 _OrthancPluginService_GetInstanceDicomWebJson = 4018, /* New in Orthanc 1.7.0 */
605 _OrthancPluginService_GetInstanceDicomWebXml = 4019, /* New in Orthanc 1.7.0 */
606 _OrthancPluginService_LoadDicomInstance = 4020, /* New in Orthanc 1.12.1 */
607
608 /* Services for plugins implementing a database back-end */
609 _OrthancPluginService_RegisterDatabaseBackend = 5000, /* New in Orthanc 0.8.6 */
610 _OrthancPluginService_DatabaseAnswer = 5001,
611 _OrthancPluginService_RegisterDatabaseBackendV2 = 5002, /* New in Orthanc 0.9.4 */
612 _OrthancPluginService_StorageAreaCreate = 5003,
613 _OrthancPluginService_StorageAreaRead = 5004,
614 _OrthancPluginService_StorageAreaRemove = 5005,
615 _OrthancPluginService_RegisterDatabaseBackendV3 = 5006, /* New in Orthanc 1.9.2 */
616 _OrthancPluginService_RegisterDatabaseBackendV4 = 5007, /* New in Orthanc 1.12.0 */
617
618 /* Primitives for handling images */
619 _OrthancPluginService_GetImagePixelFormat = 6000,
620 _OrthancPluginService_GetImageWidth = 6001,
621 _OrthancPluginService_GetImageHeight = 6002,
622 _OrthancPluginService_GetImagePitch = 6003,
623 _OrthancPluginService_GetImageBuffer = 6004,
624 _OrthancPluginService_UncompressImage = 6005,
625 _OrthancPluginService_FreeImage = 6006,
626 _OrthancPluginService_CompressImage = 6007,
627 _OrthancPluginService_ConvertPixelFormat = 6008,
628 _OrthancPluginService_GetFontsCount = 6009,
629 _OrthancPluginService_GetFontInfo = 6010,
630 _OrthancPluginService_DrawText = 6011,
631 _OrthancPluginService_CreateImage = 6012,
632 _OrthancPluginService_CreateImageAccessor = 6013,
633 _OrthancPluginService_DecodeDicomImage = 6014,
634
635 /* Primitives for handling C-Find, C-Move and worklists */
636 _OrthancPluginService_WorklistAddAnswer = 7000,
637 _OrthancPluginService_WorklistMarkIncomplete = 7001,
638 _OrthancPluginService_WorklistIsMatch = 7002,
639 _OrthancPluginService_WorklistGetDicomQuery = 7003,
640 _OrthancPluginService_FindAddAnswer = 7004,
641 _OrthancPluginService_FindMarkIncomplete = 7005,
642 _OrthancPluginService_GetFindQuerySize = 7006,
643 _OrthancPluginService_GetFindQueryTag = 7007,
644 _OrthancPluginService_GetFindQueryTagName = 7008,
645 _OrthancPluginService_GetFindQueryValue = 7009,
646 _OrthancPluginService_CreateFindMatcher = 7010,
647 _OrthancPluginService_FreeFindMatcher = 7011,
648 _OrthancPluginService_FindMatcherIsMatch = 7012,
649
650 /* Primitives for accessing Orthanc Peers (new in 1.4.2) */
651 _OrthancPluginService_GetPeers = 8000,
652 _OrthancPluginService_FreePeers = 8001,
653 _OrthancPluginService_GetPeersCount = 8003,
654 _OrthancPluginService_GetPeerName = 8004,
655 _OrthancPluginService_GetPeerUrl = 8005,
656 _OrthancPluginService_CallPeerApi = 8006,
657 _OrthancPluginService_GetPeerUserProperty = 8007,
658
659 /* Primitives for handling jobs (new in 1.4.2) */
660 _OrthancPluginService_CreateJob = 9000, /* Deprecated since SDK 1.11.3 */
661 _OrthancPluginService_FreeJob = 9001,
662 _OrthancPluginService_SubmitJob = 9002,
663 _OrthancPluginService_RegisterJobsUnserializer = 9003,
664 _OrthancPluginService_CreateJob2 = 9004, /* New in SDK 1.11.3 */
665
666 _OrthancPluginService_INTERNAL = 0x7fffffff
667 } _OrthancPluginService;
668
669
670 typedef enum
671 {
672 _OrthancPluginProperty_Description = 1,
673 _OrthancPluginProperty_RootUri = 2,
674 _OrthancPluginProperty_OrthancExplorer = 3,
675
676 _OrthancPluginProperty_INTERNAL = 0x7fffffff
677 } _OrthancPluginProperty;
678
679
680
685 typedef enum
686 {
694
702
710
718
726
728
735 OrthancPluginPixelFormat_RGB48 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 7,
736
743 OrthancPluginPixelFormat_Grayscale32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 8,
744
751 OrthancPluginPixelFormat_Float32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 9,
752
759 OrthancPluginPixelFormat_BGRA32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 10,
760
767 OrthancPluginPixelFormat_Grayscale64 ORTHANC_PLUGIN_SINCE_SDK("1.4.0") = 11,
768
769 _OrthancPluginPixelFormat_INTERNAL = 0x7fffffff
771
772
773
777 typedef enum
778 {
782 OrthancPluginContentType_DicomUntilPixelData ORTHANC_PLUGIN_SINCE_SDK("1.9.2") = 3,
783
784 _OrthancPluginContentType_INTERNAL = 0x7fffffff
786
787
788
802
803
804
834
835
850
851
856 typedef enum
857 {
861
862 _OrthancPluginImageFormat_INTERNAL = 0x7fffffff
864
865
902
903
909 typedef enum
910 {
914
915 _OrthancPluginDicomToJsonFormat_INTERNAL = 0x7fffffff
917
918
938
939
945 typedef enum
946 {
947 OrthancPluginCreateDicomFlags_None ORTHANC_PLUGIN_SINCE_SDK("1.2.0") = 0,
950
951 _OrthancPluginCreateDicomFlags_INTERNAL = 0x7fffffff
953
954
969
970
985
986
1001
1002
1012
1013
1027
1028
1032 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1033 {
1035
1043
1044
1055
1056
1105
1106
1110 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
1111 {
1115
1116 _OrthancPluginReceivedInstanceAction_INTERNAL = 0x7fffffff
1118
1119
1124 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
1125 {
1130
1136
1143
1144 _OrthancPluginLoadDicomInstanceMode_INTERNAL = 0x7fffffff
1146
1147
1154 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
1155 {
1160
1161 _OrthancPluginLogLevel_INTERNAL = 0x7fffffff
1163
1164
1171 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
1172 {
1180
1181 _OrthancPluginLogCategory_INTERNAL = 0x7fffffff
1183
1184
1188 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1189 {
1195
1196 _OrthancPluginStoreStatus_INTERNAL = 0x7fffffff
1198
1199
1203 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1204 {
1207
1208 _OrthancPluginQueueOrigin_INTERNAL = 0x7fffffff
1210
1211
1215 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
1216 {
1219
1220 _OrthancPluginStableStatus_INTERNAL = 0x7fffffff
1222
1223
1236
1237
1245 typedef struct
1246 {
1250 void* data;
1251
1255 uint32_t size;
1257
1258
1259
1267 ORTHANC_PLUGIN_SINCE_SDK("1.9.0") typedef struct
1268 {
1272 void* data;
1273
1277 uint64_t size;
1279
1280
1281
1282
1287 typedef struct _OrthancPluginRestOutput_t OrthancPluginRestOutput;
1288
1289
1290
1295 typedef struct _OrthancPluginDicomInstance_t OrthancPluginDicomInstance;
1296
1297
1298
1303 typedef struct _OrthancPluginImage_t OrthancPluginImage;
1304
1305
1306
1311 typedef struct _OrthancPluginStorageArea_t OrthancPluginStorageArea;
1312
1313
1314
1319 typedef struct _OrthancPluginWorklistQuery_t OrthancPluginWorklistQuery;
1320
1321
1322
1327 typedef struct _OrthancPluginWorklistAnswers_t OrthancPluginWorklistAnswers;
1328
1329
1330
1335 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
1336 _OrthancPluginFindQuery_t OrthancPluginFindQuery;
1337
1338
1339
1344 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
1345 _OrthancPluginFindAnswers_t OrthancPluginFindAnswers;
1346
1347
1348
1353 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
1354 _OrthancPluginFindMatcher_t OrthancPluginFindMatcher;
1355
1356
1357
1362 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1363 _OrthancPluginPeers_t OrthancPluginPeers;
1364
1365
1366
1371 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1372 _OrthancPluginJob_t OrthancPluginJob;
1373
1374
1375
1381 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1382 _OrthancPluginDicomWebNode_t OrthancPluginDicomWebNode;
1383
1384
1385
1392 const char* uri,
1393 const OrthancPluginHttpRequest* request);
1394
1395
1396
1402 const OrthancPluginDicomInstance* instance,
1403 const char* instanceId);
1404
1405
1406
1412 OrthancPluginChangeType changeType,
1413 OrthancPluginResourceType resourceType,
1414 const char* resourceId);
1415
1416
1417
1423 OrthancPluginImage** target,
1424 const void* dicom,
1425 const uint32_t size,
1426 uint32_t frameIndex);
1427
1428
1429
1434 typedef void (*OrthancPluginFree) (void* buffer);
1435
1436
1437
1447 const char* bulkDataUri);
1448
1449
1450
1464 const char* uuid,
1465 const void* content,
1466 int64_t size,
1468
1469
1470
1490 void** content,
1491 int64_t* size,
1492 const char* uuid,
1494
1495
1496
1511 const char* uuid,
1513
1514
1515
1534 const char* uuid,
1536 uint64_t rangeStart);
1537
1538
1539
1551 const char* uuid,
1553
1554
1555
1575 OrthancPluginMemoryBuffer* customData,
1576 const char* uuid,
1577 const void* content,
1578 uint64_t size,
1580 OrthancPluginCompressionType compressionType,
1581 const OrthancPluginDicomInstance* dicomInstance);
1582
1583
1584
1605 const char* uuid,
1607 uint64_t rangeStart,
1608 const void* customData,
1609 uint32_t customDataSize);
1610
1611
1612
1627 const char* uuid,
1629 const void* customData,
1630 uint32_t customDataSize);
1631
1632
1648 const OrthancPluginWorklistQuery* query,
1649 const char* issuerAet,
1650 const char* calledAet);
1651
1652
1653
1679 const char* uri,
1680 const char* ip,
1681 uint32_t headersCount,
1682 const char* const* headersKeys,
1683 const char* const* headersValues);
1684
1685
1686
1718 const char* uri,
1719 const char* ip,
1720 uint32_t headersCount,
1721 const char* const* headersKeys,
1722 const char* const* headersValues,
1723 uint32_t getArgumentsCount,
1724 const char* const* getArgumentsKeys,
1725 const char* const* getArgumentsValues);
1726
1727
1728
1744 OrthancPluginFindAnswers* answers,
1745 const OrthancPluginFindQuery* query,
1746 const char* issuerAet,
1747 const char* calledAet);
1748
1749
1750
1786 typedef void* (*OrthancPluginMoveCallback) (
1787 OrthancPluginResourceType resourceType,
1788 const char* patientId,
1789 const char* accessionNumber,
1790 const char* studyInstanceUid,
1791 const char* seriesInstanceUid,
1792 const char* sopInstanceUid,
1793 const char* originatorAet,
1794 const char* sourceAet,
1795 const char* targetAet,
1796 uint16_t originatorId);
1797
1798
1811 typedef uint32_t (*OrthancPluginGetMoveSize) (void* moveDriver);
1812
1813
1826 typedef OrthancPluginErrorCode (*OrthancPluginApplyMove) (void* moveDriver);
1827
1828
1840 typedef void (*OrthancPluginFreeMove) (void* moveDriver);
1841
1842
1853 typedef void (*OrthancPluginJobFinalize) (void* job);
1854
1855
1866 typedef float (*OrthancPluginJobGetProgress) (void* job);
1867
1868
1882 typedef const char* (*OrthancPluginJobGetContent) (void* job);
1883
1884
1901 void* job);
1902
1903
1920 typedef const char* (*OrthancPluginJobGetSerialized) (void* job);
1921
1922
1941 void* job);
1942
1943
1957
1958
1982
1983
1998
1999
2013 typedef OrthancPluginJob* (*OrthancPluginJobsUnserializer) (const char* jobType,
2014 const char* serialized);
2015
2016
2017
2033
2034
2035
2063 uint32_t levelDepth,
2064 const uint16_t* levelTagGroup,
2065 const uint16_t* levelTagElement,
2066 const uint32_t* levelIndex,
2067 uint16_t tagGroup,
2068 uint16_t tagElement,
2070
2071
2072
2101 uint32_t levelDepth,
2102 const uint16_t* levelTagGroup,
2103 const uint16_t* levelTagElement,
2104 const uint32_t* levelIndex,
2105 uint16_t tagGroup,
2106 uint16_t tagElement,
2108 void* payload);
2109
2110
2111
2115 typedef struct _OrthancPluginContext_t
2116 {
2117 void* pluginsManager;
2118 const char* orthancVersion;
2119 OrthancPluginFree Free;
2120 OrthancPluginErrorCode (*InvokeService) (struct _OrthancPluginContext_t* context,
2121 _OrthancPluginService service,
2122 const void* params);
2124
2125
2126
2138
2139
2140
2149 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeString(
2150 OrthancPluginContext* context,
2151 char* str)
2152 {
2153 if (str != NULL)
2154 {
2155 context->Free(str);
2156 }
2157 }
2158
2159
2179 ORTHANC_PLUGIN_SINCE_SDK("1.4.0")
2180 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginCheckVersionAdvanced(
2181 OrthancPluginContext* context,
2182 int32_t expectedMajor,
2183 int32_t expectedMinor,
2184 int32_t expectedRevision)
2185 {
2186 int32_t major, minor, revision;
2187
2188 if (sizeof(int) != sizeof(int32_t) || /* Ensure binary compatibility with Orthanc SDK <= 1.12.1 */
2189 sizeof(int32_t) != sizeof(OrthancPluginErrorCode) ||
2190 sizeof(int32_t) != sizeof(OrthancPluginHttpMethod) ||
2191 sizeof(int32_t) != sizeof(_OrthancPluginService) ||
2192 sizeof(int32_t) != sizeof(_OrthancPluginProperty) ||
2193 sizeof(int32_t) != sizeof(OrthancPluginPixelFormat) ||
2194 sizeof(int32_t) != sizeof(OrthancPluginContentType) ||
2195 sizeof(int32_t) != sizeof(OrthancPluginResourceType) ||
2196 sizeof(int32_t) != sizeof(OrthancPluginChangeType) ||
2197 sizeof(int32_t) != sizeof(OrthancPluginCompressionType) ||
2198 sizeof(int32_t) != sizeof(OrthancPluginImageFormat) ||
2199 sizeof(int32_t) != sizeof(OrthancPluginValueRepresentation) ||
2200 sizeof(int32_t) != sizeof(OrthancPluginDicomToJsonFormat) ||
2201 sizeof(int32_t) != sizeof(OrthancPluginDicomToJsonFlags) ||
2202 sizeof(int32_t) != sizeof(OrthancPluginCreateDicomFlags) ||
2203 sizeof(int32_t) != sizeof(OrthancPluginIdentifierConstraint) ||
2204 sizeof(int32_t) != sizeof(OrthancPluginInstanceOrigin) ||
2205 sizeof(int32_t) != sizeof(OrthancPluginJobStepStatus) ||
2206 sizeof(int32_t) != sizeof(OrthancPluginJobStopReason) ||
2207 sizeof(int32_t) != sizeof(OrthancPluginConstraintType) ||
2208 sizeof(int32_t) != sizeof(OrthancPluginMetricsType) ||
2209 sizeof(int32_t) != sizeof(OrthancPluginDicomWebBinaryMode) ||
2210 sizeof(int32_t) != sizeof(OrthancPluginStorageCommitmentFailureReason) ||
2211 sizeof(int32_t) != sizeof(OrthancPluginReceivedInstanceAction) ||
2212 sizeof(int32_t) != sizeof(OrthancPluginLoadDicomInstanceMode) ||
2213 sizeof(int32_t) != sizeof(OrthancPluginLogLevel) ||
2214 sizeof(int32_t) != sizeof(OrthancPluginLogCategory) ||
2215 sizeof(int32_t) != sizeof(OrthancPluginStoreStatus) ||
2216 sizeof(int32_t) != sizeof(OrthancPluginQueueOrigin) ||
2217 sizeof(int32_t) != sizeof(OrthancPluginStableStatus) ||
2218 sizeof(int32_t) != sizeof(OrthancPluginHttpAuthenticationStatus))
2219 {
2220 /* Mismatch in the size of the enumerations */
2221 return 0;
2222 }
2223
2224 /* Assume compatibility with the mainline */
2225 if (!strcmp(context->orthancVersion, "mainline"))
2226 {
2227 return 1;
2228 }
2229
2230 /* Parse the version of the Orthanc core */
2231 if (
2232#ifdef _MSC_VER
2233 sscanf_s
2234#else
2235 sscanf
2236#endif
2237 (context->orthancVersion, "%4d.%4d.%4d", &major, &minor, &revision) != 3)
2238 {
2239 return 0;
2240 }
2241
2242 /* Check the major number of the version */
2243
2244 if (major > expectedMajor)
2245 {
2246 return 1;
2247 }
2248
2249 if (major < expectedMajor)
2250 {
2251 return 0;
2252 }
2253
2254 /* Check the minor number of the version */
2255
2256 if (minor > expectedMinor)
2257 {
2258 return 1;
2259 }
2260
2261 if (minor < expectedMinor)
2262 {
2263 return 0;
2264 }
2265
2266 /* Check the revision number of the version */
2267
2268 if (revision >= expectedRevision)
2269 {
2270 return 1;
2271 }
2272 else
2273 {
2274 return 0;
2275 }
2276 }
2277
2278
2295 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginCheckVersion(
2296 OrthancPluginContext* context)
2297 {
2299 context,
2300 ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER,
2301 ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER,
2302 ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER);
2303 }
2304
2305
2314 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeMemoryBuffer(
2315 OrthancPluginContext* context,
2317 {
2318 context->Free(buffer->data);
2319 }
2320
2321
2330 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
2331 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeMemoryBuffer64(
2332 OrthancPluginContext* context,
2334 {
2335 context->Free(buffer->data);
2336 }
2337
2338
2347 ORTHANC_PLUGIN_INLINE void OrthancPluginLogError(
2348 OrthancPluginContext* context,
2349 const char* message)
2350 {
2351 context->InvokeService(context, _OrthancPluginService_LogError, message);
2352 }
2353
2354
2363 ORTHANC_PLUGIN_INLINE void OrthancPluginLogWarning(
2364 OrthancPluginContext* context,
2365 const char* message)
2366 {
2367 context->InvokeService(context, _OrthancPluginService_LogWarning, message);
2368 }
2369
2370
2379 ORTHANC_PLUGIN_INLINE void OrthancPluginLogInfo(
2380 OrthancPluginContext* context,
2381 const char* message)
2382 {
2383 context->InvokeService(context, _OrthancPluginService_LogInfo, message);
2384 }
2385
2386
2387
2388 typedef struct
2389 {
2390 const char* pathRegularExpression;
2392 } _OrthancPluginRestCallback;
2393
2415 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterRestCallback(
2416 OrthancPluginContext* context,
2417 const char* pathRegularExpression,
2419 {
2420 _OrthancPluginRestCallback params;
2421 params.pathRegularExpression = pathRegularExpression;
2422 params.callback = callback;
2423 context->InvokeService(context, _OrthancPluginService_RegisterRestCallback, &params);
2424 }
2425
2426
2427
2456 OrthancPluginContext* context,
2457 const char* pathRegularExpression,
2459 {
2460 _OrthancPluginRestCallback params;
2461 params.pathRegularExpression = pathRegularExpression;
2462 params.callback = callback;
2463 context->InvokeService(context, _OrthancPluginService_RegisterRestCallbackNoLock, &params);
2464 }
2465
2466
2467
2468 typedef struct
2469 {
2471 } _OrthancPluginOnStoredInstanceCallback;
2472
2494 OrthancPluginContext* context,
2496 {
2497 _OrthancPluginOnStoredInstanceCallback params;
2498 params.callback = callback;
2499
2500 context->InvokeService(context, _OrthancPluginService_RegisterOnStoredInstanceCallback, &params);
2501 }
2502
2503
2504
2505 typedef struct
2506 {
2508 const void* answer;
2509 uint32_t answerSize;
2510 const char* mimeType;
2511 } _OrthancPluginAnswerBuffer;
2512
2525 ORTHANC_PLUGIN_INLINE void OrthancPluginAnswerBuffer(
2526 OrthancPluginContext* context,
2528 const void* answer,
2529 uint32_t answerSize,
2530 const char* mimeType)
2531 {
2532 _OrthancPluginAnswerBuffer params;
2533 params.output = output;
2534 params.answer = answer;
2535 params.answerSize = answerSize;
2536 params.mimeType = mimeType;
2537 context->InvokeService(context, _OrthancPluginService_AnswerBuffer, &params);
2538 }
2539
2540
2541 typedef struct
2542 {
2545 uint32_t width;
2546 uint32_t height;
2547 uint32_t pitch;
2548 const void* buffer;
2549 } _OrthancPluginCompressAndAnswerPngImage;
2550
2551 typedef struct
2552 {
2554 OrthancPluginImageFormat imageFormat;
2555 OrthancPluginPixelFormat pixelFormat;
2556 uint32_t width;
2557 uint32_t height;
2558 uint32_t pitch;
2559 const void* buffer;
2560 uint8_t quality;
2561 } _OrthancPluginCompressAndAnswerImage;
2562
2563
2582 ORTHANC_PLUGIN_INLINE void OrthancPluginCompressAndAnswerPngImage(
2583 OrthancPluginContext* context,
2586 uint32_t width,
2587 uint32_t height,
2588 uint32_t pitch,
2589 const void* buffer)
2590 {
2591 _OrthancPluginCompressAndAnswerImage params;
2592 params.output = output;
2593 params.imageFormat = OrthancPluginImageFormat_Png;
2594 params.pixelFormat = format;
2595 params.width = width;
2596 params.height = height;
2597 params.pitch = pitch;
2598 params.buffer = buffer;
2599 params.quality = 0; /* No quality for PNG */
2600 context->InvokeService(context, _OrthancPluginService_CompressAndAnswerImage, &params);
2601 }
2602
2603
2604
2605 typedef struct
2606 {
2608 const char* instanceId;
2609 } _OrthancPluginGetDicomForInstance;
2610
2624 OrthancPluginContext* context,
2626 const char* instanceId)
2627 {
2628 _OrthancPluginGetDicomForInstance params;
2629 params.target = target;
2630 params.instanceId = instanceId;
2631 return context->InvokeService(context, _OrthancPluginService_GetDicomForInstance, &params);
2632 }
2633
2634
2635
2636 typedef struct
2637 {
2639 const char* uri;
2640 } _OrthancPluginRestApiGet;
2641
2657 OrthancPluginContext* context,
2659 const char* uri)
2660 {
2661 _OrthancPluginRestApiGet params;
2662 params.target = target;
2663 params.uri = uri;
2664 return context->InvokeService(context, _OrthancPluginService_RestApiGet, &params);
2665 }
2666
2667
2668
2687 OrthancPluginContext* context,
2689 const char* uri)
2690 {
2691 _OrthancPluginRestApiGet params;
2692 params.target = target;
2693 params.uri = uri;
2694 return context->InvokeService(context, _OrthancPluginService_RestApiGetAfterPlugins, &params);
2695 }
2696
2697
2698
2699 typedef struct
2700 {
2702 const char* uri;
2703 const void* body;
2704 uint32_t bodySize;
2705 } _OrthancPluginRestApiPostPut;
2706
2724 OrthancPluginContext* context,
2726 const char* uri,
2727 const void* body,
2728 uint32_t bodySize)
2729 {
2730 _OrthancPluginRestApiPostPut params;
2731 params.target = target;
2732 params.uri = uri;
2733 params.body = body;
2734 params.bodySize = bodySize;
2735 return context->InvokeService(context, _OrthancPluginService_RestApiPost, &params);
2736 }
2737
2738
2759 OrthancPluginContext* context,
2761 const char* uri,
2762 const void* body,
2763 uint32_t bodySize)
2764 {
2765 _OrthancPluginRestApiPostPut params;
2766 params.target = target;
2767 params.uri = uri;
2768 params.body = body;
2769 params.bodySize = bodySize;
2770 return context->InvokeService(context, _OrthancPluginService_RestApiPostAfterPlugins, &params);
2771 }
2772
2773
2774
2788 OrthancPluginContext* context,
2789 const char* uri)
2790 {
2791 return context->InvokeService(context, _OrthancPluginService_RestApiDelete, uri);
2792 }
2793
2794
2811 OrthancPluginContext* context,
2812 const char* uri)
2813 {
2814 return context->InvokeService(context, _OrthancPluginService_RestApiDeleteAfterPlugins, uri);
2815 }
2816
2817
2818
2836 OrthancPluginContext* context,
2838 const char* uri,
2839 const void* body,
2840 uint32_t bodySize)
2841 {
2842 _OrthancPluginRestApiPostPut params;
2843 params.target = target;
2844 params.uri = uri;
2845 params.body = body;
2846 params.bodySize = bodySize;
2847 return context->InvokeService(context, _OrthancPluginService_RestApiPut, &params);
2848 }
2849
2850
2851
2872 OrthancPluginContext* context,
2874 const char* uri,
2875 const void* body,
2876 uint32_t bodySize)
2877 {
2878 _OrthancPluginRestApiPostPut params;
2879 params.target = target;
2880 params.uri = uri;
2881 params.body = body;
2882 params.bodySize = bodySize;
2883 return context->InvokeService(context, _OrthancPluginService_RestApiPutAfterPlugins, &params);
2884 }
2885
2886
2887
2888 typedef struct
2889 {
2891 const char* argument;
2892 } _OrthancPluginOutputPlusArgument;
2893
2905 ORTHANC_PLUGIN_INLINE void OrthancPluginRedirect(
2906 OrthancPluginContext* context,
2908 const char* redirection)
2909 {
2910 _OrthancPluginOutputPlusArgument params;
2911 params.output = output;
2912 params.argument = redirection;
2913 context->InvokeService(context, _OrthancPluginService_Redirect, &params);
2914 }
2915
2916
2917
2918 typedef struct
2919 {
2920 char** result;
2921 const char* argument;
2922 } _OrthancPluginRetrieveDynamicString;
2923
2937 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupPatient(
2938 OrthancPluginContext* context,
2939 const char* patientID)
2940 {
2941 char* result;
2942
2943 _OrthancPluginRetrieveDynamicString params;
2944 params.result = &result;
2945 params.argument = patientID;
2946
2947 if (context->InvokeService(context, _OrthancPluginService_LookupPatient, &params) != OrthancPluginErrorCode_Success)
2948 {
2949 /* Error */
2950 return NULL;
2951 }
2952 else
2953 {
2954 return result;
2955 }
2956 }
2957
2958
2972 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupStudy(
2973 OrthancPluginContext* context,
2974 const char* studyUID)
2975 {
2976 char* result;
2977
2978 _OrthancPluginRetrieveDynamicString params;
2979 params.result = &result;
2980 params.argument = studyUID;
2981
2982 if (context->InvokeService(context, _OrthancPluginService_LookupStudy, &params) != OrthancPluginErrorCode_Success)
2983 {
2984 /* Error */
2985 return NULL;
2986 }
2987 else
2988 {
2989 return result;
2990 }
2991 }
2992
2993
3008 OrthancPluginContext* context,
3009 const char* accessionNumber)
3010 {
3011 char* result;
3012
3013 _OrthancPluginRetrieveDynamicString params;
3014 params.result = &result;
3015 params.argument = accessionNumber;
3016
3017 if (context->InvokeService(context, _OrthancPluginService_LookupStudyWithAccessionNumber, &params) != OrthancPluginErrorCode_Success)
3018 {
3019 /* Error */
3020 return NULL;
3021 }
3022 else
3023 {
3024 return result;
3025 }
3026 }
3027
3028
3042 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupSeries(
3043 OrthancPluginContext* context,
3044 const char* seriesUID)
3045 {
3046 char* result;
3047
3048 _OrthancPluginRetrieveDynamicString params;
3049 params.result = &result;
3050 params.argument = seriesUID;
3051
3052 if (context->InvokeService(context, _OrthancPluginService_LookupSeries, &params) != OrthancPluginErrorCode_Success)
3053 {
3054 /* Error */
3055 return NULL;
3056 }
3057 else
3058 {
3059 return result;
3060 }
3061 }
3062
3063
3077 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupInstance(
3078 OrthancPluginContext* context,
3079 const char* sopInstanceUID)
3080 {
3081 char* result;
3082
3083 _OrthancPluginRetrieveDynamicString params;
3084 params.result = &result;
3085 params.argument = sopInstanceUID;
3086
3087 if (context->InvokeService(context, _OrthancPluginService_LookupInstance, &params) != OrthancPluginErrorCode_Success)
3088 {
3089 /* Error */
3090 return NULL;
3091 }
3092 else
3093 {
3094 return result;
3095 }
3096 }
3097
3098
3099
3100 typedef struct
3101 {
3103 uint16_t status;
3104 } _OrthancPluginSendHttpStatusCode;
3105
3122 ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatusCode(
3123 OrthancPluginContext* context,
3125 uint16_t status)
3126 {
3127 _OrthancPluginSendHttpStatusCode params;
3128 params.output = output;
3129 params.status = status;
3130 context->InvokeService(context, _OrthancPluginService_SendHttpStatusCode, &params);
3131 }
3132
3133
3145 ORTHANC_PLUGIN_INLINE void OrthancPluginSendUnauthorized(
3146 OrthancPluginContext* context,
3148 const char* realm)
3149 {
3150 _OrthancPluginOutputPlusArgument params;
3151 params.output = output;
3152 params.argument = realm;
3153 context->InvokeService(context, _OrthancPluginService_SendUnauthorized, &params);
3154 }
3155
3156
3168 ORTHANC_PLUGIN_INLINE void OrthancPluginSendMethodNotAllowed(
3169 OrthancPluginContext* context,
3171 const char* allowedMethods)
3172 {
3173 _OrthancPluginOutputPlusArgument params;
3174 params.output = output;
3175 params.argument = allowedMethods;
3176 context->InvokeService(context, _OrthancPluginService_SendMethodNotAllowed, &params);
3177 }
3178
3179
3180 typedef struct
3181 {
3183 const char* key;
3184 const char* value;
3185 } _OrthancPluginSetHttpHeader;
3186
3198 ORTHANC_PLUGIN_INLINE void OrthancPluginSetCookie(
3199 OrthancPluginContext* context,
3201 const char* cookie,
3202 const char* value)
3203 {
3204 _OrthancPluginSetHttpHeader params;
3205 params.output = output;
3206 params.key = cookie;
3207 params.value = value;
3208 context->InvokeService(context, _OrthancPluginService_SetCookie, &params);
3209 }
3210
3211
3223 ORTHANC_PLUGIN_INLINE void OrthancPluginSetHttpHeader(
3224 OrthancPluginContext* context,
3226 const char* key,
3227 const char* value)
3228 {
3229 _OrthancPluginSetHttpHeader params;
3230 params.output = output;
3231 params.key = key;
3232 params.value = value;
3233 context->InvokeService(context, _OrthancPluginService_SetHttpHeader, &params);
3234 }
3235
3236
3237 typedef struct
3238 {
3239 char** resultStringToFree;
3240 const char** resultString;
3241 int64_t* resultInt64;
3242 const char* key;
3243 const OrthancPluginDicomInstance* instance;
3244 OrthancPluginInstanceOrigin* resultOrigin; /* New in Orthanc 0.9.5 SDK */
3245 } _OrthancPluginAccessDicomInstance;
3246
3247
3259 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceRemoteAet(
3260 OrthancPluginContext* context,
3261 const OrthancPluginDicomInstance* instance)
3262 {
3263 const char* result;
3264
3265 _OrthancPluginAccessDicomInstance params;
3266 memset(&params, 0, sizeof(params));
3267 params.resultString = &result;
3268 params.instance = instance;
3269
3270 if (context->InvokeService(context, _OrthancPluginService_GetInstanceRemoteAet, &params) != OrthancPluginErrorCode_Success)
3271 {
3272 /* Error */
3273 return NULL;
3274 }
3275 else
3276 {
3277 return result;
3278 }
3279 }
3280
3281
3292 ORTHANC_PLUGIN_INLINE int64_t OrthancPluginGetInstanceSize(
3293 OrthancPluginContext* context,
3294 const OrthancPluginDicomInstance* instance)
3295 {
3296 int64_t size;
3297
3298 _OrthancPluginAccessDicomInstance params;
3299 memset(&params, 0, sizeof(params));
3300 params.resultInt64 = &size;
3301 params.instance = instance;
3302
3303 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSize, &params) != OrthancPluginErrorCode_Success)
3304 {
3305 /* Error */
3306 return -1;
3307 }
3308 else
3309 {
3310 return size;
3311 }
3312 }
3313
3314
3325 ORTHANC_PLUGIN_INLINE const void* OrthancPluginGetInstanceData(
3326 OrthancPluginContext* context,
3327 const OrthancPluginDicomInstance* instance)
3328 {
3329 const char* result;
3330
3331 _OrthancPluginAccessDicomInstance params;
3332 memset(&params, 0, sizeof(params));
3333 params.resultString = &result;
3334 params.instance = instance;
3335
3336 if (context->InvokeService(context, _OrthancPluginService_GetInstanceData, &params) != OrthancPluginErrorCode_Success)
3337 {
3338 /* Error */
3339 return NULL;
3340 }
3341 else
3342 {
3343 return result;
3344 }
3345 }
3346
3347
3361 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceJson(
3362 OrthancPluginContext* context,
3363 const OrthancPluginDicomInstance* instance)
3364 {
3365 char* result;
3366
3367 _OrthancPluginAccessDicomInstance params;
3368 memset(&params, 0, sizeof(params));
3369 params.resultStringToFree = &result;
3370 params.instance = instance;
3371
3372 if (context->InvokeService(context, _OrthancPluginService_GetInstanceJson, &params) != OrthancPluginErrorCode_Success)
3373 {
3374 /* Error */
3375 return NULL;
3376 }
3377 else
3378 {
3379 return result;
3380 }
3381 }
3382
3383
3399 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceSimplifiedJson(
3400 OrthancPluginContext* context,
3401 const OrthancPluginDicomInstance* instance)
3402 {
3403 char* result;
3404
3405 _OrthancPluginAccessDicomInstance params;
3406 memset(&params, 0, sizeof(params));
3407 params.resultStringToFree = &result;
3408 params.instance = instance;
3409
3410 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSimplifiedJson, &params) != OrthancPluginErrorCode_Success)
3411 {
3412 /* Error */
3413 return NULL;
3414 }
3415 else
3416 {
3417 return result;
3418 }
3419 }
3420
3421
3438 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginHasInstanceMetadata(
3439 OrthancPluginContext* context,
3440 const OrthancPluginDicomInstance* instance,
3441 const char* metadata)
3442 {
3443 int64_t result;
3444
3445 _OrthancPluginAccessDicomInstance params;
3446 memset(&params, 0, sizeof(params));
3447 params.resultInt64 = &result;
3448 params.instance = instance;
3449 params.key = metadata;
3450
3451 if (context->InvokeService(context, _OrthancPluginService_HasInstanceMetadata, &params) != OrthancPluginErrorCode_Success)
3452 {
3453 /* Error */
3454 return -1;
3455 }
3456 else
3457 {
3458 return (result != 0);
3459 }
3460 }
3461
3462
3479 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceMetadata(
3480 OrthancPluginContext* context,
3481 const OrthancPluginDicomInstance* instance,
3482 const char* metadata)
3483 {
3484 const char* result;
3485
3486 _OrthancPluginAccessDicomInstance params;
3487 memset(&params, 0, sizeof(params));
3488 params.resultString = &result;
3489 params.instance = instance;
3490 params.key = metadata;
3491
3492 if (context->InvokeService(context, _OrthancPluginService_GetInstanceMetadata, &params) != OrthancPluginErrorCode_Success)
3493 {
3494 /* Error */
3495 return NULL;
3496 }
3497 else
3498 {
3499 return result;
3500 }
3501 }
3502
3503
3504
3505 typedef struct
3506 {
3510 OrthancPluginFree free;
3511 } _OrthancPluginRegisterStorageArea;
3512
3528 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea(
3529 OrthancPluginContext* context,
3533 {
3534 _OrthancPluginRegisterStorageArea params;
3535 params.create = create;
3536 params.read = read;
3537 params.remove = remove;
3538
3539#ifdef __cplusplus
3540 params.free = ::free;
3541#else
3542 params.free = free;
3543#endif
3544
3545 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea, &params);
3546 }
3547
3548
3549
3560 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetOrthancPath(OrthancPluginContext* context)
3561 {
3562 char* result;
3563
3564 _OrthancPluginRetrieveDynamicString params;
3565 params.result = &result;
3566 params.argument = NULL;
3567
3568 if (context->InvokeService(context, _OrthancPluginService_GetOrthancPath, &params) != OrthancPluginErrorCode_Success)
3569 {
3570 /* Error */
3571 return NULL;
3572 }
3573 else
3574 {
3575 return result;
3576 }
3577 }
3578
3579
3590 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetOrthancDirectory(OrthancPluginContext* context)
3591 {
3592 char* result;
3593
3594 _OrthancPluginRetrieveDynamicString params;
3595 params.result = &result;
3596 params.argument = NULL;
3597
3598 if (context->InvokeService(context, _OrthancPluginService_GetOrthancDirectory, &params) != OrthancPluginErrorCode_Success)
3599 {
3600 /* Error */
3601 return NULL;
3602 }
3603 else
3604 {
3605 return result;
3606 }
3607 }
3608
3609
3625 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfigurationPath(OrthancPluginContext* context)
3626 {
3627 char* result;
3628
3629 _OrthancPluginRetrieveDynamicString params;
3630 params.result = &result;
3631 params.argument = NULL;
3632
3633 if (context->InvokeService(context, _OrthancPluginService_GetConfigurationPath, &params) != OrthancPluginErrorCode_Success)
3634 {
3635 /* Error */
3636 return NULL;
3637 }
3638 else
3639 {
3640 return result;
3641 }
3642 }
3643
3644
3645
3646 typedef struct
3647 {
3649 } _OrthancPluginOnChangeCallback;
3650
3671 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterOnChangeCallback(
3672 OrthancPluginContext* context,
3674 {
3675 _OrthancPluginOnChangeCallback params;
3676 params.callback = callback;
3677
3678 context->InvokeService(context, _OrthancPluginService_RegisterOnChangeCallback, &params);
3679 }
3680
3681
3682
3683 typedef struct
3684 {
3685 const char* plugin;
3686 _OrthancPluginProperty property;
3687 const char* value;
3688 } _OrthancPluginSetPluginProperty;
3689
3690
3706 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri(
3707 OrthancPluginContext* context,
3708 const char* uri)
3709 {
3710 _OrthancPluginSetPluginProperty params;
3711 params.plugin = OrthancPluginGetName();
3712 params.property = _OrthancPluginProperty_RootUri;
3713 params.value = uri;
3714
3715 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3716 }
3717
3718
3731 ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri2(
3732 OrthancPluginContext* context,
3733 const char* plugin,
3734 const char* uri)
3735 {
3736 _OrthancPluginSetPluginProperty params;
3737 params.plugin = plugin;
3738 params.property = _OrthancPluginProperty_RootUri;
3739 params.value = uri;
3740
3741 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3742 }
3743
3744
3758 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription(
3759 OrthancPluginContext* context,
3760 const char* description)
3761 {
3762 _OrthancPluginSetPluginProperty params;
3763 params.plugin = OrthancPluginGetName();
3764 params.property = _OrthancPluginProperty_Description;
3765 params.value = description;
3766
3767 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3768 }
3769
3770
3781 ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription2(
3782 OrthancPluginContext* context,
3783 const char* plugin,
3784 const char* description)
3785 {
3786 _OrthancPluginSetPluginProperty params;
3787 params.plugin = plugin;
3788 params.property = _OrthancPluginProperty_Description;
3789 params.value = description;
3790
3791 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3792 }
3793
3794
3808 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer(
3809 OrthancPluginContext* context,
3810 const char* javascript)
3811 {
3812 _OrthancPluginSetPluginProperty params;
3813 params.plugin = OrthancPluginGetName();
3814 params.property = _OrthancPluginProperty_OrthancExplorer;
3815 params.value = javascript;
3816
3817 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3818 }
3819
3820
3831 ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer2(
3832 OrthancPluginContext* context,
3833 const char* plugin,
3834 const char* javascript)
3835 {
3836 _OrthancPluginSetPluginProperty params;
3837 params.plugin = plugin;
3838 params.property = _OrthancPluginProperty_OrthancExplorer;
3839 params.value = javascript;
3840
3841 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3842 }
3843
3844
3845 typedef struct
3846 {
3847 char** result;
3848 int32_t property;
3849 const char* value;
3850 } _OrthancPluginGlobalProperty;
3851
3852
3866 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetGlobalProperty(
3867 OrthancPluginContext* context,
3868 int32_t property,
3869 const char* defaultValue)
3870 {
3871 char* result;
3872
3873 _OrthancPluginGlobalProperty params;
3874 params.result = &result;
3875 params.property = property;
3876 params.value = defaultValue;
3877
3878 if (context->InvokeService(context, _OrthancPluginService_GetGlobalProperty, &params) != OrthancPluginErrorCode_Success)
3879 {
3880 /* Error */
3881 return NULL;
3882 }
3883 else
3884 {
3885 return result;
3886 }
3887 }
3888
3889
3906 OrthancPluginContext* context,
3907 int32_t property,
3908 const char* value)
3909 {
3910 _OrthancPluginGlobalProperty params;
3911 params.result = NULL;
3912 params.property = property;
3913 params.value = value;
3914
3915 return context->InvokeService(context, _OrthancPluginService_SetGlobalProperty, &params);
3916 }
3917
3918
3919
3920 typedef struct
3921 {
3922 int32_t *resultInt32;
3923 uint32_t *resultUint32;
3924 int64_t *resultInt64;
3925 uint64_t *resultUint64;
3926 } _OrthancPluginReturnSingleValue;
3927
3936 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetCommandLineArgumentsCount(
3937 OrthancPluginContext* context)
3938 {
3939 uint32_t count = 0;
3940
3941 _OrthancPluginReturnSingleValue params;
3942 memset(&params, 0, sizeof(params));
3943 params.resultUint32 = &count;
3944
3945 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgumentsCount, &params) != OrthancPluginErrorCode_Success)
3946 {
3947 /* Error */
3948 return 0;
3949 }
3950 else
3951 {
3952 return count;
3953 }
3954 }
3955
3956
3957
3970 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetCommandLineArgument(
3971 OrthancPluginContext* context,
3972 uint32_t argument)
3973 {
3974 char* result;
3975
3976 _OrthancPluginGlobalProperty params;
3977 params.result = &result;
3978 params.property = (int32_t) argument;
3979 params.value = NULL;
3980
3981 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgument, &params) != OrthancPluginErrorCode_Success)
3982 {
3983 /* Error */
3984 return NULL;
3985 }
3986 else
3987 {
3988 return result;
3989 }
3990 }
3991
3992
4002 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetExpectedDatabaseVersion(
4003 OrthancPluginContext* context)
4004 {
4005 uint32_t count = 0;
4006
4007 _OrthancPluginReturnSingleValue params;
4008 memset(&params, 0, sizeof(params));
4009 params.resultUint32 = &count;
4010
4011 if (context->InvokeService(context, _OrthancPluginService_GetExpectedDatabaseVersion, &params) != OrthancPluginErrorCode_Success)
4012 {
4013 /* Error */
4014 return 0;
4015 }
4016 else
4017 {
4018 return count;
4019 }
4020 }
4021
4022
4023
4035 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfiguration(OrthancPluginContext* context)
4036 {
4037 char* result;
4038
4039 _OrthancPluginRetrieveDynamicString params;
4040 params.result = &result;
4041 params.argument = NULL;
4042
4043 if (context->InvokeService(context, _OrthancPluginService_GetConfiguration, &params) != OrthancPluginErrorCode_Success)
4044 {
4045 /* Error */
4046 return NULL;
4047 }
4048 else
4049 {
4050 return result;
4051 }
4052 }
4053
4054
4055
4056 typedef struct
4057 {
4059 const char* subType;
4060 const char* contentType;
4061 } _OrthancPluginStartMultipartAnswer;
4062
4077 OrthancPluginContext* context,
4079 const char* subType,
4080 const char* contentType)
4081 {
4082 _OrthancPluginStartMultipartAnswer params;
4083 params.output = output;
4084 params.subType = subType;
4085 params.contentType = contentType;
4086 return context->InvokeService(context, _OrthancPluginService_StartMultipartAnswer, &params);
4087 }
4088
4089
4106 OrthancPluginContext* context,
4108 const void* answer,
4109 uint32_t answerSize)
4110 {
4111 _OrthancPluginAnswerBuffer params;
4112 params.output = output;
4113 params.answer = answer;
4114 params.answerSize = answerSize;
4115 params.mimeType = NULL;
4116 return context->InvokeService(context, _OrthancPluginService_SendMultipartItem, &params);
4117 }
4118
4119
4120
4121 typedef struct
4122 {
4124 const void* source;
4125 uint32_t size;
4126 OrthancPluginCompressionType compression;
4127 uint8_t uncompress;
4128 } _OrthancPluginBufferCompression;
4129
4130
4148 OrthancPluginContext* context,
4150 const void* source,
4151 uint32_t size,
4152 OrthancPluginCompressionType compression,
4153 uint8_t uncompress)
4154 {
4155 _OrthancPluginBufferCompression params;
4156 params.target = target;
4157 params.source = source;
4158 params.size = size;
4159 params.compression = compression;
4160 params.uncompress = uncompress;
4161
4162 return context->InvokeService(context, _OrthancPluginService_BufferCompression, &params);
4163 }
4164
4165
4166
4167 typedef struct
4168 {
4170 const char* path;
4171 } _OrthancPluginReadFile;
4172
4185 OrthancPluginContext* context,
4187 const char* path)
4188 {
4189 _OrthancPluginReadFile params;
4190 params.target = target;
4191 params.path = path;
4192 return context->InvokeService(context, _OrthancPluginService_ReadFile, &params);
4193 }
4194
4195
4196
4197 typedef struct
4198 {
4199 const char* path;
4200 const void* data;
4201 uint32_t size;
4202 } _OrthancPluginWriteFile;
4203
4216 OrthancPluginContext* context,
4217 const char* path,
4218 const void* data,
4219 uint32_t size)
4220 {
4221 _OrthancPluginWriteFile params;
4222 params.path = path;
4223 params.data = data;
4224 params.size = size;
4225 return context->InvokeService(context, _OrthancPluginService_WriteFile, &params);
4226 }
4227
4228
4229
4230 typedef struct
4231 {
4232 const char** target;
4234 } _OrthancPluginGetErrorDescription;
4235
4246 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetErrorDescription(
4247 OrthancPluginContext* context,
4249 {
4250 const char* result = NULL;
4251
4252 _OrthancPluginGetErrorDescription params;
4253 params.target = &result;
4254 params.error = error;
4255
4256 if (context->InvokeService(context, _OrthancPluginService_GetErrorDescription, &params) != OrthancPluginErrorCode_Success ||
4257 result == NULL)
4258 {
4259 return "Unknown error code";
4260 }
4261 else
4262 {
4263 return result;
4264 }
4265 }
4266
4267
4268
4269 typedef struct
4270 {
4272 uint16_t status;
4273 const void* body;
4274 uint32_t bodySize;
4275 } _OrthancPluginSendHttpStatus;
4276
4299 ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatus(
4300 OrthancPluginContext* context,
4302 uint16_t status,
4303 const void* body,
4304 uint32_t bodySize)
4305 {
4306 _OrthancPluginSendHttpStatus params;
4307 params.output = output;
4308 params.status = status;
4309 params.body = body;
4310 params.bodySize = bodySize;
4311 context->InvokeService(context, _OrthancPluginService_SendHttpStatus, &params);
4312 }
4313
4314
4315
4316 typedef struct
4317 {
4318 const OrthancPluginImage* image;
4319 uint32_t* resultUint32;
4320 OrthancPluginPixelFormat* resultPixelFormat;
4321 void** resultBuffer;
4322 } _OrthancPluginGetImageInfo;
4323
4324
4336 OrthancPluginContext* context,
4337 const OrthancPluginImage* image)
4338 {
4340
4341 _OrthancPluginGetImageInfo params;
4342 memset(&params, 0, sizeof(params));
4343 params.image = image;
4344 params.resultPixelFormat = &target;
4345
4346 if (context->InvokeService(context, _OrthancPluginService_GetImagePixelFormat, &params) != OrthancPluginErrorCode_Success)
4347 {
4349 }
4350 else
4351 {
4352 return (OrthancPluginPixelFormat) target;
4353 }
4354 }
4355
4356
4357
4368 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImageWidth(
4369 OrthancPluginContext* context,
4370 const OrthancPluginImage* image)
4371 {
4372 uint32_t width;
4373
4374 _OrthancPluginGetImageInfo params;
4375 memset(&params, 0, sizeof(params));
4376 params.image = image;
4377 params.resultUint32 = &width;
4378
4379 if (context->InvokeService(context, _OrthancPluginService_GetImageWidth, &params) != OrthancPluginErrorCode_Success)
4380 {
4381 return 0;
4382 }
4383 else
4384 {
4385 return width;
4386 }
4387 }
4388
4389
4390
4401 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImageHeight(
4402 OrthancPluginContext* context,
4403 const OrthancPluginImage* image)
4404 {
4405 uint32_t height;
4406
4407 _OrthancPluginGetImageInfo params;
4408 memset(&params, 0, sizeof(params));
4409 params.image = image;
4410 params.resultUint32 = &height;
4411
4412 if (context->InvokeService(context, _OrthancPluginService_GetImageHeight, &params) != OrthancPluginErrorCode_Success)
4413 {
4414 return 0;
4415 }
4416 else
4417 {
4418 return height;
4419 }
4420 }
4421
4422
4423
4436 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImagePitch(
4437 OrthancPluginContext* context,
4438 const OrthancPluginImage* image)
4439 {
4440 uint32_t pitch;
4441
4442 _OrthancPluginGetImageInfo params;
4443 memset(&params, 0, sizeof(params));
4444 params.image = image;
4445 params.resultUint32 = &pitch;
4446
4447 if (context->InvokeService(context, _OrthancPluginService_GetImagePitch, &params) != OrthancPluginErrorCode_Success)
4448 {
4449 return 0;
4450 }
4451 else
4452 {
4453 return pitch;
4454 }
4455 }
4456
4457
4458
4470 ORTHANC_PLUGIN_INLINE void* OrthancPluginGetImageBuffer(
4471 OrthancPluginContext* context,
4472 const OrthancPluginImage* image)
4473 {
4474 void* target = NULL;
4475
4476 _OrthancPluginGetImageInfo params;
4477 memset(&params, 0, sizeof(params));
4478 params.resultBuffer = &target;
4479 params.image = image;
4480
4481 if (context->InvokeService(context, _OrthancPluginService_GetImageBuffer, &params) != OrthancPluginErrorCode_Success)
4482 {
4483 return NULL;
4484 }
4485 else
4486 {
4487 return target;
4488 }
4489 }
4490
4491
4492 typedef struct
4493 {
4494 OrthancPluginImage** target;
4495 const void* data;
4496 uint32_t size;
4498 } _OrthancPluginUncompressImage;
4499
4500
4514 OrthancPluginContext* context,
4515 const void* data,
4516 uint32_t size,
4518 {
4519 OrthancPluginImage* target = NULL;
4520
4521 _OrthancPluginUncompressImage params;
4522 memset(&params, 0, sizeof(params));
4523 params.target = &target;
4524 params.data = data;
4525 params.size = size;
4526 params.format = format;
4527
4528 if (context->InvokeService(context, _OrthancPluginService_UncompressImage, &params) != OrthancPluginErrorCode_Success)
4529 {
4530 return NULL;
4531 }
4532 else
4533 {
4534 return target;
4535 }
4536 }
4537
4538
4539
4540
4541 typedef struct
4542 {
4543 OrthancPluginImage* image;
4544 } _OrthancPluginFreeImage;
4545
4555 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeImage(
4556 OrthancPluginContext* context,
4557 OrthancPluginImage* image)
4558 {
4559 _OrthancPluginFreeImage params;
4560 params.image = image;
4561
4562 context->InvokeService(context, _OrthancPluginService_FreeImage, &params);
4563 }
4564
4565
4566
4567
4568 typedef struct
4569 {
4571 OrthancPluginImageFormat imageFormat;
4572 OrthancPluginPixelFormat pixelFormat;
4573 uint32_t width;
4574 uint32_t height;
4575 uint32_t pitch;
4576 const void* buffer;
4577 uint8_t quality;
4578 } _OrthancPluginCompressImage;
4579
4580
4601 OrthancPluginContext* context,
4604 uint32_t width,
4605 uint32_t height,
4606 uint32_t pitch,
4607 const void* buffer)
4608 {
4609 _OrthancPluginCompressImage params;
4610 memset(&params, 0, sizeof(params));
4611 params.target = target;
4612 params.imageFormat = OrthancPluginImageFormat_Png;
4613 params.pixelFormat = format;
4614 params.width = width;
4615 params.height = height;
4616 params.pitch = pitch;
4617 params.buffer = buffer;
4618 params.quality = 0; /* Unused for PNG */
4619
4620 return context->InvokeService(context, _OrthancPluginService_CompressImage, &params);
4621 }
4622
4623
4646 OrthancPluginContext* context,
4649 uint32_t width,
4650 uint32_t height,
4651 uint32_t pitch,
4652 const void* buffer,
4653 uint8_t quality)
4654 {
4655 _OrthancPluginCompressImage params;
4656 memset(&params, 0, sizeof(params));
4657 params.target = target;
4658 params.imageFormat = OrthancPluginImageFormat_Jpeg;
4659 params.pixelFormat = format;
4660 params.width = width;
4661 params.height = height;
4662 params.pitch = pitch;
4663 params.buffer = buffer;
4664 params.quality = quality;
4665
4666 return context->InvokeService(context, _OrthancPluginService_CompressImage, &params);
4667 }
4668
4669
4670
4693 OrthancPluginContext* context,
4696 uint32_t width,
4697 uint32_t height,
4698 uint32_t pitch,
4699 const void* buffer,
4700 uint8_t quality)
4701 {
4702 _OrthancPluginCompressAndAnswerImage params;
4703 params.output = output;
4704 params.imageFormat = OrthancPluginImageFormat_Jpeg;
4705 params.pixelFormat = format;
4706 params.width = width;
4707 params.height = height;
4708 params.pitch = pitch;
4709 params.buffer = buffer;
4710 params.quality = quality;
4711 context->InvokeService(context, _OrthancPluginService_CompressAndAnswerImage, &params);
4712 }
4713
4714
4715
4716
4717 typedef struct
4718 {
4721 const char* url;
4722 const char* username;
4723 const char* password;
4724 const void* body;
4725 uint32_t bodySize;
4726 } _OrthancPluginCallHttpClient;
4727
4728
4746 OrthancPluginContext* context,
4748 const char* url,
4749 const char* username,
4750 const char* password)
4751 {
4752 _OrthancPluginCallHttpClient params;
4753 memset(&params, 0, sizeof(params));
4754
4755 params.target = target;
4756 params.method = OrthancPluginHttpMethod_Get;
4757 params.url = url;
4758 params.username = username;
4759 params.password = password;
4760
4761 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4762 }
4763
4764
4784 OrthancPluginContext* context,
4786 const char* url,
4787 const void* body,
4788 uint32_t bodySize,
4789 const char* username,
4790 const char* password)
4791 {
4792 _OrthancPluginCallHttpClient params;
4793 memset(&params, 0, sizeof(params));
4794
4795 params.target = target;
4796 params.method = OrthancPluginHttpMethod_Post;
4797 params.url = url;
4798 params.body = body;
4799 params.bodySize = bodySize;
4800 params.username = username;
4801 params.password = password;
4802
4803 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4804 }
4805
4806
4826 OrthancPluginContext* context,
4828 const char* url,
4829 const void* body,
4830 uint32_t bodySize,
4831 const char* username,
4832 const char* password)
4833 {
4834 _OrthancPluginCallHttpClient params;
4835 memset(&params, 0, sizeof(params));
4836
4837 params.target = target;
4838 params.method = OrthancPluginHttpMethod_Put;
4839 params.url = url;
4840 params.body = body;
4841 params.bodySize = bodySize;
4842 params.username = username;
4843 params.password = password;
4844
4845 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4846 }
4847
4848
4864 OrthancPluginContext* context,
4865 const char* url,
4866 const char* username,
4867 const char* password)
4868 {
4869 _OrthancPluginCallHttpClient params;
4870 memset(&params, 0, sizeof(params));
4871
4872 params.method = OrthancPluginHttpMethod_Delete;
4873 params.url = url;
4874 params.username = username;
4875 params.password = password;
4876
4877 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4878 }
4879
4880
4881
4882 typedef struct
4883 {
4884 OrthancPluginImage** target;
4885 const OrthancPluginImage* source;
4886 OrthancPluginPixelFormat targetFormat;
4887 } _OrthancPluginConvertPixelFormat;
4888
4889
4902 OrthancPluginContext* context,
4903 const OrthancPluginImage* source,
4904 OrthancPluginPixelFormat targetFormat)
4905 {
4906 OrthancPluginImage* target = NULL;
4907
4908 _OrthancPluginConvertPixelFormat params;
4909 params.target = &target;
4910 params.source = source;
4911 params.targetFormat = targetFormat;
4912
4913 if (context->InvokeService(context, _OrthancPluginService_ConvertPixelFormat, &params) != OrthancPluginErrorCode_Success)
4914 {
4915 return NULL;
4916 }
4917 else
4918 {
4919 return target;
4920 }
4921 }
4922
4923
4924
4936 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFontsCount(
4937 OrthancPluginContext* context)
4938 {
4939 uint32_t count = 0;
4940
4941 _OrthancPluginReturnSingleValue params;
4942 memset(&params, 0, sizeof(params));
4943 params.resultUint32 = &count;
4944
4945 if (context->InvokeService(context, _OrthancPluginService_GetFontsCount, &params) != OrthancPluginErrorCode_Success)
4946 {
4947 /* Error */
4948 return 0;
4949 }
4950 else
4951 {
4952 return count;
4953 }
4954 }
4955
4956
4957
4958
4959 typedef struct
4960 {
4961 uint32_t fontIndex; /* in */
4962 const char** name; /* out */
4963 uint32_t* size; /* out */
4964 } _OrthancPluginGetFontInfo;
4965
4976 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetFontName(
4977 OrthancPluginContext* context,
4978 uint32_t fontIndex)
4979 {
4980 const char* result = NULL;
4981
4982 _OrthancPluginGetFontInfo params;
4983 memset(&params, 0, sizeof(params));
4984 params.name = &result;
4985 params.fontIndex = fontIndex;
4986
4987 if (context->InvokeService(context, _OrthancPluginService_GetFontInfo, &params) != OrthancPluginErrorCode_Success)
4988 {
4989 return NULL;
4990 }
4991 else
4992 {
4993 return result;
4994 }
4995 }
4996
4997
5008 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFontSize(
5009 OrthancPluginContext* context,
5010 uint32_t fontIndex)
5011 {
5012 uint32_t result;
5013
5014 _OrthancPluginGetFontInfo params;
5015 memset(&params, 0, sizeof(params));
5016 params.size = &result;
5017 params.fontIndex = fontIndex;
5018
5019 if (context->InvokeService(context, _OrthancPluginService_GetFontInfo, &params) != OrthancPluginErrorCode_Success)
5020 {
5021 return 0;
5022 }
5023 else
5024 {
5025 return result;
5026 }
5027 }
5028
5029
5030
5031 typedef struct
5032 {
5033 OrthancPluginImage* image;
5034 uint32_t fontIndex;
5035 const char* utf8Text;
5036 int32_t x;
5037 int32_t y;
5038 uint8_t r;
5039 uint8_t g;
5040 uint8_t b;
5041 } _OrthancPluginDrawText;
5042
5043
5062 OrthancPluginContext* context,
5063 OrthancPluginImage* image,
5064 uint32_t fontIndex,
5065 const char* utf8Text,
5066 int32_t x,
5067 int32_t y,
5068 uint8_t r,
5069 uint8_t g,
5070 uint8_t b)
5071 {
5072 _OrthancPluginDrawText params;
5073 memset(&params, 0, sizeof(params));
5074 params.image = image;
5075 params.fontIndex = fontIndex;
5076 params.utf8Text = utf8Text;
5077 params.x = x;
5078 params.y = y;
5079 params.r = r;
5080 params.g = g;
5081 params.b = b;
5082
5083 return context->InvokeService(context, _OrthancPluginService_DrawText, &params);
5084 }
5085
5086
5087
5088 typedef struct
5089 {
5090 OrthancPluginStorageArea* storageArea;
5091 const char* uuid;
5092 const void* content;
5093 uint64_t size;
5095 } _OrthancPluginStorageAreaCreate;
5096
5097
5117 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaCreate(
5118 OrthancPluginContext* context,
5119 OrthancPluginStorageArea* storageArea,
5120 const char* uuid,
5121 const void* content,
5122 uint64_t size,
5124 {
5125 _OrthancPluginStorageAreaCreate params;
5126 params.storageArea = storageArea;
5127 params.uuid = uuid;
5128 params.content = content;
5129 params.size = size;
5130 params.type = type;
5131
5132 return context->InvokeService(context, _OrthancPluginService_StorageAreaCreate, &params);
5133 }
5134
5135
5136 typedef struct
5137 {
5139 OrthancPluginStorageArea* storageArea;
5140 const char* uuid;
5142 } _OrthancPluginStorageAreaRead;
5143
5144
5163 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRead(
5164 OrthancPluginContext* context,
5166 OrthancPluginStorageArea* storageArea,
5167 const char* uuid,
5169 {
5170 _OrthancPluginStorageAreaRead params;
5171 params.target = target;
5172 params.storageArea = storageArea;
5173 params.uuid = uuid;
5174 params.type = type;
5175
5176 return context->InvokeService(context, _OrthancPluginService_StorageAreaRead, &params);
5177 }
5178
5179
5180 typedef struct
5181 {
5182 OrthancPluginStorageArea* storageArea;
5183 const char* uuid;
5185 } _OrthancPluginStorageAreaRemove;
5186
5204 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRemove(
5205 OrthancPluginContext* context,
5206 OrthancPluginStorageArea* storageArea,
5207 const char* uuid,
5209 {
5210 _OrthancPluginStorageAreaRemove params;
5211 params.storageArea = storageArea;
5212 params.uuid = uuid;
5213 params.type = type;
5214
5215 return context->InvokeService(context, _OrthancPluginService_StorageAreaRemove, &params);
5216 }
5217
5218
5219
5220 typedef struct
5221 {
5222 OrthancPluginErrorCode* target;
5223 int32_t code;
5224 uint16_t httpStatus;
5225 const char* message;
5226 } _OrthancPluginRegisterErrorCode;
5227
5244 OrthancPluginContext* context,
5245 int32_t code,
5246 uint16_t httpStatus,
5247 const char* message)
5248 {
5250
5251 _OrthancPluginRegisterErrorCode params;
5252 params.target = &target;
5253 params.code = code;
5254 params.httpStatus = httpStatus;
5255 params.message = message;
5256
5257 if (context->InvokeService(context, _OrthancPluginService_RegisterErrorCode, &params) == OrthancPluginErrorCode_Success)
5258 {
5259 return target;
5260 }
5261 else
5262 {
5263 /* There was an error while assigned the error. Use a generic code. */
5265 }
5266 }
5267
5268
5269
5270 typedef struct
5271 {
5272 uint16_t group;
5273 uint16_t element;
5275 const char* name;
5276 uint32_t minMultiplicity;
5277 uint32_t maxMultiplicity;
5278 } _OrthancPluginRegisterDictionaryTag;
5279
5300 OrthancPluginContext* context,
5301 uint16_t group,
5302 uint16_t element,
5304 const char* name,
5305 uint32_t minMultiplicity,
5306 uint32_t maxMultiplicity)
5307 {
5308 _OrthancPluginRegisterDictionaryTag params;
5309 params.group = group;
5310 params.element = element;
5311 params.vr = vr;
5312 params.name = name;
5313 params.minMultiplicity = minMultiplicity;
5314 params.maxMultiplicity = maxMultiplicity;
5315
5316 return context->InvokeService(context, _OrthancPluginService_RegisterDictionaryTag, &params);
5317 }
5318
5319
5320
5321 typedef struct
5322 {
5323 uint16_t group;
5324 uint16_t element;
5326 const char* name;
5327 uint32_t minMultiplicity;
5328 uint32_t maxMultiplicity;
5329 const char* privateCreator;
5330 } _OrthancPluginRegisterPrivateDictionaryTag;
5331
5352 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
5354 OrthancPluginContext* context,
5355 uint16_t group,
5356 uint16_t element,
5358 const char* name,
5359 uint32_t minMultiplicity,
5360 uint32_t maxMultiplicity,
5361 const char* privateCreator)
5362 {
5363 _OrthancPluginRegisterPrivateDictionaryTag params;
5364 params.group = group;
5365 params.element = element;
5366 params.vr = vr;
5367 params.name = name;
5368 params.minMultiplicity = minMultiplicity;
5369 params.maxMultiplicity = maxMultiplicity;
5370 params.privateCreator = privateCreator;
5371
5372 return context->InvokeService(context, _OrthancPluginService_RegisterPrivateDictionaryTag, &params);
5373 }
5374
5375
5376
5377 typedef struct
5378 {
5379 OrthancPluginStorageArea* storageArea;
5381 } _OrthancPluginReconstructMainDicomTags;
5382
5398 OrthancPluginContext* context,
5399 OrthancPluginStorageArea* storageArea,
5401 {
5402 _OrthancPluginReconstructMainDicomTags params;
5403 params.level = level;
5404 params.storageArea = storageArea;
5405
5406 return context->InvokeService(context, _OrthancPluginService_ReconstructMainDicomTags, &params);
5407 }
5408
5409
5410 typedef struct
5411 {
5412 char** result;
5413 const char* instanceId;
5414 const void* buffer;
5415 uint32_t size;
5418 uint32_t maxStringLength;
5419 } _OrthancPluginDicomToJson;
5420
5421
5441 ORTHANC_PLUGIN_INLINE char* OrthancPluginDicomBufferToJson(
5442 OrthancPluginContext* context,
5443 const void* buffer,
5444 uint32_t size,
5447 uint32_t maxStringLength)
5448 {
5449 char* result;
5450
5451 _OrthancPluginDicomToJson params;
5452 memset(&params, 0, sizeof(params));
5453 params.result = &result;
5454 params.buffer = buffer;
5455 params.size = size;
5456 params.format = format;
5457 params.flags = flags;
5458 params.maxStringLength = maxStringLength;
5459
5460 if (context->InvokeService(context, _OrthancPluginService_DicomBufferToJson, &params) != OrthancPluginErrorCode_Success)
5461 {
5462 /* Error */
5463 return NULL;
5464 }
5465 else
5466 {
5467 return result;
5468 }
5469 }
5470
5471
5490 ORTHANC_PLUGIN_INLINE char* OrthancPluginDicomInstanceToJson(
5491 OrthancPluginContext* context,
5492 const char* instanceId,
5495 uint32_t maxStringLength)
5496 {
5497 char* result;
5498
5499 _OrthancPluginDicomToJson params;
5500 memset(&params, 0, sizeof(params));
5501 params.result = &result;
5502 params.instanceId = instanceId;
5503 params.format = format;
5504 params.flags = flags;
5505 params.maxStringLength = maxStringLength;
5506
5507 if (context->InvokeService(context, _OrthancPluginService_DicomInstanceToJson, &params) != OrthancPluginErrorCode_Success)
5508 {
5509 /* Error */
5510 return NULL;
5511 }
5512 else
5513 {
5514 return result;
5515 }
5516 }
5517
5518
5519 typedef struct
5520 {
5522 const char* uri;
5523 uint32_t headersCount;
5524 const char* const* headersKeys;
5525 const char* const* headersValues;
5526 int32_t afterPlugins;
5527 } _OrthancPluginRestApiGet2;
5528
5549 OrthancPluginContext* context,
5551 const char* uri,
5552 uint32_t headersCount,
5553 const char* const* headersKeys,
5554 const char* const* headersValues,
5555 int32_t afterPlugins)
5556 {
5557 _OrthancPluginRestApiGet2 params;
5558 params.target = target;
5559 params.uri = uri;
5560 params.headersCount = headersCount;
5561 params.headersKeys = headersKeys;
5562 params.headersValues = headersValues;
5563 params.afterPlugins = afterPlugins;
5564
5565 return context->InvokeService(context, _OrthancPluginService_RestApiGet2, &params);
5566 }
5567
5568
5569
5570 typedef struct
5571 {
5573 } _OrthancPluginWorklistCallback;
5574
5587 OrthancPluginContext* context,
5589 {
5590 _OrthancPluginWorklistCallback params;
5591 params.callback = callback;
5592
5593 return context->InvokeService(context, _OrthancPluginService_RegisterWorklistCallback, &params);
5594 }
5595
5596
5597
5598 typedef struct
5599 {
5601 const OrthancPluginWorklistQuery* query;
5602 const void* dicom;
5603 uint32_t size;
5604 } _OrthancPluginWorklistAnswersOperation;
5605
5623 OrthancPluginContext* context,
5625 const OrthancPluginWorklistQuery* query,
5626 const void* dicom,
5627 uint32_t size)
5628 {
5629 _OrthancPluginWorklistAnswersOperation params;
5630 params.answers = answers;
5631 params.query = query;
5632 params.dicom = dicom;
5633 params.size = size;
5634
5635 return context->InvokeService(context, _OrthancPluginService_WorklistAddAnswer, &params);
5636 }
5637
5638
5653 OrthancPluginContext* context,
5655 {
5656 _OrthancPluginWorklistAnswersOperation params;
5657 params.answers = answers;
5658 params.query = NULL;
5659 params.dicom = NULL;
5660 params.size = 0;
5661
5662 return context->InvokeService(context, _OrthancPluginService_WorklistMarkIncomplete, &params);
5663 }
5664
5665
5666 typedef struct
5667 {
5668 const OrthancPluginWorklistQuery* query;
5669 const void* dicom;
5670 uint32_t size;
5671 int32_t* isMatch;
5673 } _OrthancPluginWorklistQueryOperation;
5674
5690 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginWorklistIsMatch(
5691 OrthancPluginContext* context,
5692 const OrthancPluginWorklistQuery* query,
5693 const void* dicom,
5694 uint32_t size)
5695 {
5696 int32_t isMatch = 0;
5697
5698 _OrthancPluginWorklistQueryOperation params;
5699 params.query = query;
5700 params.dicom = dicom;
5701 params.size = size;
5702 params.isMatch = &isMatch;
5703 params.target = NULL;
5704
5705 if (context->InvokeService(context, _OrthancPluginService_WorklistIsMatch, &params) == OrthancPluginErrorCode_Success)
5706 {
5707 return isMatch;
5708 }
5709 else
5710 {
5711 /* Error: Assume non-match */
5712 return 0;
5713 }
5714 }
5715
5716
5730 OrthancPluginContext* context,
5732 const OrthancPluginWorklistQuery* query)
5733 {
5734 _OrthancPluginWorklistQueryOperation params;
5735 params.query = query;
5736 params.dicom = NULL;
5737 params.size = 0;
5738 params.isMatch = NULL;
5739 params.target = target;
5740
5741 return context->InvokeService(context, _OrthancPluginService_WorklistGetDicomQuery, &params);
5742 }
5743
5744
5756 OrthancPluginContext* context,
5757 const OrthancPluginDicomInstance* instance)
5758 {
5760
5761 _OrthancPluginAccessDicomInstance params;
5762 memset(&params, 0, sizeof(params));
5763 params.resultOrigin = &origin;
5764 params.instance = instance;
5765
5766 if (context->InvokeService(context, _OrthancPluginService_GetInstanceOrigin, &params) != OrthancPluginErrorCode_Success)
5767 {
5768 /* Error */
5770 }
5771 else
5772 {
5773 return origin;
5774 }
5775 }
5776
5777
5778 typedef struct
5779 {
5781 const char* json;
5782 const OrthancPluginImage* pixelData;
5784 } _OrthancPluginCreateDicom;
5785
5812 OrthancPluginContext* context,
5814 const char* json,
5815 const OrthancPluginImage* pixelData,
5817 {
5818 _OrthancPluginCreateDicom params;
5819 params.target = target;
5820 params.json = json;
5821 params.pixelData = pixelData;
5822 params.flags = flags;
5823
5824 return context->InvokeService(context, _OrthancPluginService_CreateDicom, &params);
5825 }
5826
5827
5828 typedef struct
5829 {
5831 } _OrthancPluginDecodeImageCallback;
5832
5848 OrthancPluginContext* context,
5850 {
5851 _OrthancPluginDecodeImageCallback params;
5852 params.callback = callback;
5853
5854 return context->InvokeService(context, _OrthancPluginService_RegisterDecodeImageCallback, &params);
5855 }
5856
5857
5858
5859 typedef struct
5860 {
5861 OrthancPluginImage** target;
5863 uint32_t width;
5864 uint32_t height;
5865 uint32_t pitch;
5866 void* buffer;
5867 const void* constBuffer;
5868 uint32_t bufferSize;
5869 uint32_t frameIndex;
5870 } _OrthancPluginCreateImage;
5871
5872
5886 OrthancPluginContext* context,
5888 uint32_t width,
5889 uint32_t height)
5890 {
5891 OrthancPluginImage* target = NULL;
5892
5893 _OrthancPluginCreateImage params;
5894 memset(&params, 0, sizeof(params));
5895 params.target = &target;
5896 params.format = format;
5897 params.width = width;
5898 params.height = height;
5899
5900 if (context->InvokeService(context, _OrthancPluginService_CreateImage, &params) != OrthancPluginErrorCode_Success)
5901 {
5902 return NULL;
5903 }
5904 else
5905 {
5906 return target;
5907 }
5908 }
5909
5910
5929 OrthancPluginContext* context,
5931 uint32_t width,
5932 uint32_t height,
5933 uint32_t pitch,
5934 void* buffer)
5935 {
5936 OrthancPluginImage* target = NULL;
5937
5938 _OrthancPluginCreateImage params;
5939 memset(&params, 0, sizeof(params));
5940 params.target = &target;
5941 params.format = format;
5942 params.width = width;
5943 params.height = height;
5944 params.pitch = pitch;
5945 params.buffer = buffer;
5946
5947 if (context->InvokeService(context, _OrthancPluginService_CreateImageAccessor, &params) != OrthancPluginErrorCode_Success)
5948 {
5949 return NULL;
5950 }
5951 else
5952 {
5953 return target;
5954 }
5955 }
5956
5957
5958
5975 OrthancPluginContext* context,
5976 const void* buffer,
5977 uint32_t bufferSize,
5978 uint32_t frameIndex)
5979 {
5980 OrthancPluginImage* target = NULL;
5981
5982 _OrthancPluginCreateImage params;
5983 memset(&params, 0, sizeof(params));
5984 params.target = &target;
5985 params.constBuffer = buffer;
5986 params.bufferSize = bufferSize;
5987 params.frameIndex = frameIndex;
5988
5989 if (context->InvokeService(context, _OrthancPluginService_DecodeDicomImage, &params) != OrthancPluginErrorCode_Success)
5990 {
5991 return NULL;
5992 }
5993 else
5994 {
5995 return target;
5996 }
5997 }
5998
5999
6000
6001 typedef struct
6002 {
6003 char** result;
6004 const void* buffer;
6005 uint32_t size;
6006 } _OrthancPluginComputeHash;
6007
6020 ORTHANC_PLUGIN_INLINE char* OrthancPluginComputeMd5(
6021 OrthancPluginContext* context,
6022 const void* buffer,
6023 uint32_t size)
6024 {
6025 char* result;
6026
6027 _OrthancPluginComputeHash params;
6028 params.result = &result;
6029 params.buffer = buffer;
6030 params.size = size;
6031
6032 if (context->InvokeService(context, _OrthancPluginService_ComputeMd5, &params) != OrthancPluginErrorCode_Success)
6033 {
6034 /* Error */
6035 return NULL;
6036 }
6037 else
6038 {
6039 return result;
6040 }
6041 }
6042
6043
6056 ORTHANC_PLUGIN_INLINE char* OrthancPluginComputeSha1(
6057 OrthancPluginContext* context,
6058 const void* buffer,
6059 uint32_t size)
6060 {
6061 char* result;
6062
6063 _OrthancPluginComputeHash params;
6064 params.result = &result;
6065 params.buffer = buffer;
6066 params.size = size;
6067
6068 if (context->InvokeService(context, _OrthancPluginService_ComputeSha1, &params) != OrthancPluginErrorCode_Success)
6069 {
6070 /* Error */
6071 return NULL;
6072 }
6073 else
6074 {
6075 return result;
6076 }
6077 }
6078
6079
6080
6081 typedef struct
6082 {
6084 const char* name;
6085 } _OrthancPluginLookupDictionary;
6086
6103 OrthancPluginContext* context,
6105 const char* name)
6106 {
6107 _OrthancPluginLookupDictionary params;
6108 params.target = target;
6109 params.name = name;
6110 return context->InvokeService(context, _OrthancPluginService_LookupDictionary, &params);
6111 }
6112
6113
6114
6115 typedef struct
6116 {
6118 const void* answer;
6119 uint32_t answerSize;
6120 uint32_t headersCount;
6121 const char* const* headersKeys;
6122 const char* const* headersValues;
6123 } _OrthancPluginSendMultipartItem2;
6124
6145 ORTHANC_PLUGIN_SINCE_SDK("1.0.0")
6147 OrthancPluginContext* context,
6149 const void* answer,
6150 uint32_t answerSize,
6151 uint32_t headersCount,
6152 const char* const* headersKeys,
6153 const char* const* headersValues)
6154 {
6155 _OrthancPluginSendMultipartItem2 params;
6156 params.output = output;
6157 params.answer = answer;
6158 params.answerSize = answerSize;
6159 params.headersCount = headersCount;
6160 params.headersKeys = headersKeys;
6161 params.headersValues = headersValues;
6162
6163 return context->InvokeService(context, _OrthancPluginService_SendMultipartItem2, &params);
6164 }
6165
6166
6167 typedef struct
6168 {
6170 } _OrthancPluginIncomingHttpRequestFilter;
6171
6184 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6185 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter(
6186 OrthancPluginContext* context,
6188 {
6189 _OrthancPluginIncomingHttpRequestFilter params;
6190 params.callback = callback;
6191
6192 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingHttpRequestFilter, &params);
6193 }
6194
6195
6196
6197 typedef struct
6198 {
6199 OrthancPluginMemoryBuffer* answerBody;
6200 OrthancPluginMemoryBuffer* answerHeaders;
6201 uint16_t* httpStatus;
6203 const char* url;
6204 uint32_t headersCount;
6205 const char* const* headersKeys;
6206 const char* const* headersValues;
6207 const void* body;
6208 uint32_t bodySize;
6209 const char* username;
6210 const char* password;
6211 uint32_t timeout;
6212 const char* certificateFile;
6213 const char* certificateKeyFile;
6214 const char* certificateKeyPassword;
6215 uint8_t pkcs11;
6216 } _OrthancPluginCallHttpClient2;
6217
6218
6219
6260 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6262 OrthancPluginContext* context,
6263 OrthancPluginMemoryBuffer* answerBody,
6264 OrthancPluginMemoryBuffer* answerHeaders,
6265 uint16_t* httpStatus,
6267 const char* url,
6268 uint32_t headersCount,
6269 const char* const* headersKeys,
6270 const char* const* headersValues,
6271 const void* body,
6272 uint32_t bodySize,
6273 const char* username,
6274 const char* password,
6275 uint32_t timeout,
6276 const char* certificateFile,
6277 const char* certificateKeyFile,
6278 const char* certificateKeyPassword,
6279 uint8_t pkcs11)
6280 {
6281 _OrthancPluginCallHttpClient2 params;
6282 memset(&params, 0, sizeof(params));
6283
6284 params.answerBody = answerBody;
6285 params.answerHeaders = answerHeaders;
6286 params.httpStatus = httpStatus;
6287 params.method = method;
6288 params.url = url;
6289 params.headersCount = headersCount;
6290 params.headersKeys = headersKeys;
6291 params.headersValues = headersValues;
6292 params.body = body;
6293 params.bodySize = bodySize;
6294 params.username = username;
6295 params.password = password;
6296 params.timeout = timeout;
6297 params.certificateFile = certificateFile;
6298 params.certificateKeyFile = certificateKeyFile;
6299 params.certificateKeyPassword = certificateKeyPassword;
6300 params.pkcs11 = pkcs11;
6301
6302 return context->InvokeService(context, _OrthancPluginService_CallHttpClient2, &params);
6303 }
6304
6305
6316 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6317 ORTHANC_PLUGIN_INLINE char* OrthancPluginGenerateUuid(
6318 OrthancPluginContext* context)
6319 {
6320 char* result;
6321
6322 _OrthancPluginRetrieveDynamicString params;
6323 params.result = &result;
6324 params.argument = NULL;
6325
6326 if (context->InvokeService(context, _OrthancPluginService_GenerateUuid, &params) != OrthancPluginErrorCode_Success)
6327 {
6328 /* Error */
6329 return NULL;
6330 }
6331 else
6332 {
6333 return result;
6334 }
6335 }
6336
6337
6338
6339
6340 typedef struct
6341 {
6343 } _OrthancPluginFindCallback;
6344
6356 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6358 OrthancPluginContext* context,
6360 {
6361 _OrthancPluginFindCallback params;
6362 params.callback = callback;
6363
6364 return context->InvokeService(context, _OrthancPluginService_RegisterFindCallback, &params);
6365 }
6366
6367
6368 typedef struct
6369 {
6370 OrthancPluginFindAnswers *answers;
6371 const OrthancPluginFindQuery *query;
6372 const void *dicom;
6373 uint32_t size;
6374 uint32_t index;
6375 uint32_t *resultUint32;
6376 uint16_t *resultGroup;
6377 uint16_t *resultElement;
6378 char **resultString;
6379 } _OrthancPluginFindOperation;
6380
6396 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6398 OrthancPluginContext* context,
6399 OrthancPluginFindAnswers* answers,
6400 const void* dicom,
6401 uint32_t size)
6402 {
6403 _OrthancPluginFindOperation params;
6404 memset(&params, 0, sizeof(params));
6405 params.answers = answers;
6406 params.dicom = dicom;
6407 params.size = size;
6408
6409 return context->InvokeService(context, _OrthancPluginService_FindAddAnswer, &params);
6410 }
6411
6412
6426 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6428 OrthancPluginContext* context,
6429 OrthancPluginFindAnswers* answers)
6430 {
6431 _OrthancPluginFindOperation params;
6432 memset(&params, 0, sizeof(params));
6433 params.answers = answers;
6434
6435 return context->InvokeService(context, _OrthancPluginService_FindMarkIncomplete, &params);
6436 }
6437
6438
6439
6451 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6452 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFindQuerySize(
6453 OrthancPluginContext* context,
6454 const OrthancPluginFindQuery* query)
6455 {
6456 uint32_t count = 0;
6457
6458 _OrthancPluginFindOperation params;
6459 memset(&params, 0, sizeof(params));
6460 params.query = query;
6461 params.resultUint32 = &count;
6462
6463 if (context->InvokeService(context, _OrthancPluginService_GetFindQuerySize, &params) != OrthancPluginErrorCode_Success)
6464 {
6465 /* Error */
6466 return 0;
6467 }
6468 else
6469 {
6470 return count;
6471 }
6472 }
6473
6474
6489 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6491 OrthancPluginContext* context,
6492 uint16_t* group,
6493 uint16_t* element,
6494 const OrthancPluginFindQuery* query,
6495 uint32_t index)
6496 {
6497 _OrthancPluginFindOperation params;
6498 memset(&params, 0, sizeof(params));
6499 params.query = query;
6500 params.index = index;
6501 params.resultGroup = group;
6502 params.resultElement = element;
6503
6504 return context->InvokeService(context, _OrthancPluginService_GetFindQueryTag, &params);
6505 }
6506
6507
6521 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6522 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetFindQueryTagName(
6523 OrthancPluginContext* context,
6524 const OrthancPluginFindQuery* query,
6525 uint32_t index)
6526 {
6527 char* result;
6528
6529 _OrthancPluginFindOperation params;
6530 memset(&params, 0, sizeof(params));
6531 params.query = query;
6532 params.index = index;
6533 params.resultString = &result;
6534
6535 if (context->InvokeService(context, _OrthancPluginService_GetFindQueryTagName, &params) != OrthancPluginErrorCode_Success)
6536 {
6537 /* Error */
6538 return NULL;
6539 }
6540 else
6541 {
6542 return result;
6543 }
6544 }
6545
6546
6560 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6561 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetFindQueryValue(
6562 OrthancPluginContext* context,
6563 const OrthancPluginFindQuery* query,
6564 uint32_t index)
6565 {
6566 char* result;
6567
6568 _OrthancPluginFindOperation params;
6569 memset(&params, 0, sizeof(params));
6570 params.query = query;
6571 params.index = index;
6572 params.resultString = &result;
6573
6574 if (context->InvokeService(context, _OrthancPluginService_GetFindQueryValue, &params) != OrthancPluginErrorCode_Success)
6575 {
6576 /* Error */
6577 return NULL;
6578 }
6579 else
6580 {
6581 return result;
6582 }
6583 }
6584
6585
6586
6587
6588 typedef struct
6589 {
6591 OrthancPluginGetMoveSize getMoveSize;
6592 OrthancPluginApplyMove applyMove;
6593 OrthancPluginFreeMove freeMove;
6594 } _OrthancPluginMoveCallback;
6595
6609 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6611 OrthancPluginContext* context,
6613 OrthancPluginGetMoveSize getMoveSize,
6614 OrthancPluginApplyMove applyMove,
6615 OrthancPluginFreeMove freeMove)
6616 {
6617 _OrthancPluginMoveCallback params;
6618 params.callback = callback;
6619 params.getMoveSize = getMoveSize;
6620 params.applyMove = applyMove;
6621 params.freeMove = freeMove;
6622
6623 return context->InvokeService(context, _OrthancPluginService_RegisterMoveCallback, &params);
6624 }
6625
6626
6627
6628 typedef struct
6629 {
6630 OrthancPluginFindMatcher** target;
6631 const void* query;
6632 uint32_t size;
6633 } _OrthancPluginCreateFindMatcher;
6634
6635
6649 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6651 OrthancPluginContext* context,
6652 const void* query,
6653 uint32_t size)
6654 {
6655 OrthancPluginFindMatcher* target = NULL;
6656
6657 _OrthancPluginCreateFindMatcher params;
6658 memset(&params, 0, sizeof(params));
6659 params.target = &target;
6660 params.query = query;
6661 params.size = size;
6662
6663 if (context->InvokeService(context, _OrthancPluginService_CreateFindMatcher, &params) != OrthancPluginErrorCode_Success)
6664 {
6665 return NULL;
6666 }
6667 else
6668 {
6669 return target;
6670 }
6671 }
6672
6673
6674 typedef struct
6675 {
6676 OrthancPluginFindMatcher* matcher;
6677 } _OrthancPluginFreeFindMatcher;
6678
6688 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6689 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeFindMatcher(
6690 OrthancPluginContext* context,
6691 OrthancPluginFindMatcher* matcher)
6692 {
6693 _OrthancPluginFreeFindMatcher params;
6694 params.matcher = matcher;
6695
6696 context->InvokeService(context, _OrthancPluginService_FreeFindMatcher, &params);
6697 }
6698
6699
6700 typedef struct
6701 {
6702 const OrthancPluginFindMatcher* matcher;
6703 const void* dicom;
6704 uint32_t size;
6705 int32_t* isMatch;
6706 } _OrthancPluginFindMatcherIsMatch;
6707
6722 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6723 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginFindMatcherIsMatch(
6724 OrthancPluginContext* context,
6725 const OrthancPluginFindMatcher* matcher,
6726 const void* dicom,
6727 uint32_t size)
6728 {
6729 int32_t isMatch = 0;
6730
6731 _OrthancPluginFindMatcherIsMatch params;
6732 params.matcher = matcher;
6733 params.dicom = dicom;
6734 params.size = size;
6735 params.isMatch = &isMatch;
6736
6737 if (context->InvokeService(context, _OrthancPluginService_FindMatcherIsMatch, &params) == OrthancPluginErrorCode_Success)
6738 {
6739 return isMatch;
6740 }
6741 else
6742 {
6743 /* Error: Assume non-match */
6744 return 0;
6745 }
6746 }
6747
6748
6749 typedef struct
6750 {
6752 } _OrthancPluginIncomingHttpRequestFilter2;
6753
6765 ORTHANC_PLUGIN_SINCE_SDK("1.3.0")
6767 OrthancPluginContext* context,
6769 {
6770 _OrthancPluginIncomingHttpRequestFilter2 params;
6771 params.callback = callback;
6772
6773 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingHttpRequestFilter2, &params);
6774 }
6775
6776
6777
6778 typedef struct
6779 {
6780 OrthancPluginPeers** peers;
6781 } _OrthancPluginGetPeers;
6782
6794 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6796 OrthancPluginContext* context)
6797 {
6798 OrthancPluginPeers* peers = NULL;
6799
6800 _OrthancPluginGetPeers params;
6801 memset(&params, 0, sizeof(params));
6802 params.peers = &peers;
6803
6804 if (context->InvokeService(context, _OrthancPluginService_GetPeers, &params) != OrthancPluginErrorCode_Success)
6805 {
6806 return NULL;
6807 }
6808 else
6809 {
6810 return peers;
6811 }
6812 }
6813
6814
6815 typedef struct
6816 {
6817 OrthancPluginPeers* peers;
6818 } _OrthancPluginFreePeers;
6819
6829 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6830 ORTHANC_PLUGIN_INLINE void OrthancPluginFreePeers(
6831 OrthancPluginContext* context,
6832 OrthancPluginPeers* peers)
6833 {
6834 _OrthancPluginFreePeers params;
6835 params.peers = peers;
6836
6837 context->InvokeService(context, _OrthancPluginService_FreePeers, &params);
6838 }
6839
6840
6841 typedef struct
6842 {
6843 uint32_t* target;
6844 const OrthancPluginPeers* peers;
6845 } _OrthancPluginGetPeersCount;
6846
6860 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6861 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetPeersCount(
6862 OrthancPluginContext* context,
6863 const OrthancPluginPeers* peers)
6864 {
6865 uint32_t target = 0;
6866
6867 _OrthancPluginGetPeersCount params;
6868 memset(&params, 0, sizeof(params));
6869 params.target = &target;
6870 params.peers = peers;
6871
6872 if (context->InvokeService(context, _OrthancPluginService_GetPeersCount, &params) != OrthancPluginErrorCode_Success)
6873 {
6874 /* Error */
6875 return 0;
6876 }
6877 else
6878 {
6879 return target;
6880 }
6881 }
6882
6883
6884 typedef struct
6885 {
6886 const char** target;
6887 const OrthancPluginPeers* peers;
6888 uint32_t peerIndex;
6889 const char* userProperty;
6890 } _OrthancPluginGetPeerProperty;
6891
6909 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6910 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerName(
6911 OrthancPluginContext* context,
6912 const OrthancPluginPeers* peers,
6913 uint32_t peerIndex)
6914 {
6915 const char* target = NULL;
6916
6917 _OrthancPluginGetPeerProperty params;
6918 memset(&params, 0, sizeof(params));
6919 params.target = &target;
6920 params.peers = peers;
6921 params.peerIndex = peerIndex;
6922 params.userProperty = NULL;
6923
6924 if (context->InvokeService(context, _OrthancPluginService_GetPeerName, &params) != OrthancPluginErrorCode_Success)
6925 {
6926 /* Error */
6927 return NULL;
6928 }
6929 else
6930 {
6931 return target;
6932 }
6933 }
6934
6935
6951 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6952 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerUrl(
6953 OrthancPluginContext* context,
6954 const OrthancPluginPeers* peers,
6955 uint32_t peerIndex)
6956 {
6957 const char* target = NULL;
6958
6959 _OrthancPluginGetPeerProperty params;
6960 memset(&params, 0, sizeof(params));
6961 params.target = &target;
6962 params.peers = peers;
6963 params.peerIndex = peerIndex;
6964 params.userProperty = NULL;
6965
6966 if (context->InvokeService(context, _OrthancPluginService_GetPeerUrl, &params) != OrthancPluginErrorCode_Success)
6967 {
6968 /* Error */
6969 return NULL;
6970 }
6971 else
6972 {
6973 return target;
6974 }
6975 }
6976
6977
6978
6998 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6999 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerUserProperty(
7000 OrthancPluginContext* context,
7001 const OrthancPluginPeers* peers,
7002 uint32_t peerIndex,
7003 const char* userProperty)
7004 {
7005 const char* target = NULL;
7006
7007 _OrthancPluginGetPeerProperty params;
7008 memset(&params, 0, sizeof(params));
7009 params.target = &target;
7010 params.peers = peers;
7011 params.peerIndex = peerIndex;
7012 params.userProperty = userProperty;
7013
7014 if (context->InvokeService(context, _OrthancPluginService_GetPeerUserProperty, &params) != OrthancPluginErrorCode_Success)
7015 {
7016 /* No such user property */
7017 return NULL;
7018 }
7019 else
7020 {
7021 return target;
7022 }
7023 }
7024
7025
7026
7027 typedef struct
7028 {
7029 OrthancPluginMemoryBuffer* answerBody;
7030 OrthancPluginMemoryBuffer* answerHeaders;
7031 uint16_t* httpStatus;
7032 const OrthancPluginPeers* peers;
7033 uint32_t peerIndex;
7035 const char* uri;
7036 uint32_t additionalHeadersCount;
7037 const char* const* additionalHeadersKeys;
7038 const char* const* additionalHeadersValues;
7039 const void* body;
7040 uint32_t bodySize;
7041 uint32_t timeout;
7042 } _OrthancPluginCallPeerApi;
7043
7080 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7082 OrthancPluginContext* context,
7083 OrthancPluginMemoryBuffer* answerBody,
7084 OrthancPluginMemoryBuffer* answerHeaders,
7085 uint16_t* httpStatus,
7086 const OrthancPluginPeers* peers,
7087 uint32_t peerIndex,
7089 const char* uri,
7090 uint32_t additionalHeadersCount,
7091 const char* const* additionalHeadersKeys,
7092 const char* const* additionalHeadersValues,
7093 const void* body,
7094 uint32_t bodySize,
7095 uint32_t timeout)
7096 {
7097 _OrthancPluginCallPeerApi params;
7098 memset(&params, 0, sizeof(params));
7099
7100 params.answerBody = answerBody;
7101 params.answerHeaders = answerHeaders;
7102 params.httpStatus = httpStatus;
7103 params.peers = peers;
7104 params.peerIndex = peerIndex;
7105 params.method = method;
7106 params.uri = uri;
7107 params.additionalHeadersCount = additionalHeadersCount;
7108 params.additionalHeadersKeys = additionalHeadersKeys;
7109 params.additionalHeadersValues = additionalHeadersValues;
7110 params.body = body;
7111 params.bodySize = bodySize;
7112 params.timeout = timeout;
7113
7114 return context->InvokeService(context, _OrthancPluginService_CallPeerApi, &params);
7115 }
7116
7117
7118
7119
7120
7121 typedef struct
7122 {
7123 OrthancPluginJob** target;
7124 void *job;
7125 OrthancPluginJobFinalize finalize;
7126 const char *type;
7127 OrthancPluginJobGetProgress getProgress;
7128 OrthancPluginJobGetContent getContent;
7129 OrthancPluginJobGetSerialized getSerialized;
7133 } _OrthancPluginCreateJob;
7134
7167 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7168 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginJob *OrthancPluginCreateJob(
7169 OrthancPluginContext *context,
7170 void *job,
7171 OrthancPluginJobFinalize finalize,
7172 const char *type,
7173 OrthancPluginJobGetProgress getProgress,
7174 OrthancPluginJobGetContent getContent,
7175 OrthancPluginJobGetSerialized getSerialized,
7179 {
7180 OrthancPluginJob* target = NULL;
7181
7182 _OrthancPluginCreateJob params;
7183 memset(&params, 0, sizeof(params));
7184
7185 params.target = &target;
7186 params.job = job;
7187 params.finalize = finalize;
7188 params.type = type;
7189 params.getProgress = getProgress;
7190 params.getContent = getContent;
7191 params.getSerialized = getSerialized;
7192 params.step = step;
7193 params.stop = stop;
7194 params.reset = reset;
7195
7196 if (context->InvokeService(context, _OrthancPluginService_CreateJob, &params) != OrthancPluginErrorCode_Success ||
7197 target == NULL)
7198 {
7199 /* Error */
7200 return NULL;
7201 }
7202 else
7203 {
7204 return target;
7205 }
7206 }
7207
7208
7209 typedef struct
7210 {
7211 OrthancPluginJob** target;
7212 void *job;
7213 OrthancPluginJobFinalize finalize;
7214 const char *type;
7215 OrthancPluginJobGetProgress getProgress;
7216 OrthancPluginJobGetContent2 getContent;
7217 OrthancPluginJobGetSerialized2 getSerialized;
7221 } _OrthancPluginCreateJob2;
7222
7254 ORTHANC_PLUGIN_SINCE_SDK("1.11.3")
7256 OrthancPluginContext *context,
7257 void *job,
7258 OrthancPluginJobFinalize finalize,
7259 const char *type,
7260 OrthancPluginJobGetProgress getProgress,
7261 OrthancPluginJobGetContent2 getContent,
7262 OrthancPluginJobGetSerialized2 getSerialized,
7266 {
7267 OrthancPluginJob* target = NULL;
7268
7269 _OrthancPluginCreateJob2 params;
7270 memset(&params, 0, sizeof(params));
7271
7272 params.target = &target;
7273 params.job = job;
7274 params.finalize = finalize;
7275 params.type = type;
7276 params.getProgress = getProgress;
7277 params.getContent = getContent;
7278 params.getSerialized = getSerialized;
7279 params.step = step;
7280 params.stop = stop;
7281 params.reset = reset;
7282
7283 if (context->InvokeService(context, _OrthancPluginService_CreateJob2, &params) != OrthancPluginErrorCode_Success ||
7284 target == NULL)
7285 {
7286 /* Error */
7287 return NULL;
7288 }
7289 else
7290 {
7291 return target;
7292 }
7293 }
7294
7295
7296 typedef struct
7297 {
7298 OrthancPluginJob* job;
7299 } _OrthancPluginFreeJob;
7300
7310 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7311 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeJob(
7312 OrthancPluginContext* context,
7313 OrthancPluginJob* job)
7314 {
7315 _OrthancPluginFreeJob params;
7316 params.job = job;
7317
7318 context->InvokeService(context, _OrthancPluginService_FreeJob, &params);
7319 }
7320
7321
7322
7323 typedef struct
7324 {
7325 char** resultId;
7326 OrthancPluginJob *job;
7327 int32_t priority;
7328 } _OrthancPluginSubmitJob;
7329
7343 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7344 ORTHANC_PLUGIN_INLINE char *OrthancPluginSubmitJob(
7345 OrthancPluginContext *context,
7346 OrthancPluginJob *job,
7347 int32_t priority)
7348 {
7349 char* resultId = NULL;
7350
7351 _OrthancPluginSubmitJob params;
7352 memset(&params, 0, sizeof(params));
7353
7354 params.resultId = &resultId;
7355 params.job = job;
7356 params.priority = priority;
7357
7358 if (context->InvokeService(context, _OrthancPluginService_SubmitJob, &params) != OrthancPluginErrorCode_Success ||
7359 resultId == NULL)
7360 {
7361 /* Error */
7362 return NULL;
7363 }
7364 else
7365 {
7366 return resultId;
7367 }
7368 }
7369
7370
7371
7372 typedef struct
7373 {
7374 OrthancPluginJobsUnserializer unserializer;
7375 } _OrthancPluginJobsUnserializer;
7376
7389 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7390 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterJobsUnserializer(
7391 OrthancPluginContext* context,
7392 OrthancPluginJobsUnserializer unserializer)
7393 {
7394 _OrthancPluginJobsUnserializer params;
7395 params.unserializer = unserializer;
7396
7397 context->InvokeService(context, _OrthancPluginService_RegisterJobsUnserializer, &params);
7398 }
7399
7400
7401
7402 typedef struct
7403 {
7405 const char* details;
7406 uint8_t log;
7407 } _OrthancPluginSetHttpErrorDetails;
7408
7426 ORTHANC_PLUGIN_SINCE_SDK("1.5.0")
7427 ORTHANC_PLUGIN_INLINE void OrthancPluginSetHttpErrorDetails(
7428 OrthancPluginContext* context,
7430 const char* details,
7431 uint8_t log)
7432 {
7433 _OrthancPluginSetHttpErrorDetails params;
7434 params.output = output;
7435 params.details = details;
7436 params.log = log;
7437 context->InvokeService(context, _OrthancPluginService_SetHttpErrorDetails, &params);
7438 }
7439
7440
7441
7442 typedef struct
7443 {
7444 const char** result;
7445 const char* argument;
7446 } _OrthancPluginRetrieveStaticString;
7447
7459 ORTHANC_PLUGIN_SINCE_SDK("1.5.0")
7460 ORTHANC_PLUGIN_INLINE const char* OrthancPluginAutodetectMimeType(
7461 OrthancPluginContext* context,
7462 const char* path)
7463 {
7464 const char* result = NULL;
7465
7466 _OrthancPluginRetrieveStaticString params;
7467 params.result = &result;
7468 params.argument = path;
7469
7470 if (context->InvokeService(context, _OrthancPluginService_AutodetectMimeType, &params) != OrthancPluginErrorCode_Success)
7471 {
7472 /* Error */
7473 return NULL;
7474 }
7475 else
7476 {
7477 return result;
7478 }
7479 }
7480
7481
7482
7483 typedef struct
7484 {
7485 const char* name;
7486 float value;
7488 } _OrthancPluginSetMetricsValue;
7489
7506 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7507 ORTHANC_PLUGIN_INLINE void OrthancPluginSetMetricsValue(
7508 OrthancPluginContext* context,
7509 const char* name,
7510 float value,
7512 {
7513 _OrthancPluginSetMetricsValue params;
7514 params.name = name;
7515 params.value = value;
7516 params.type = type;
7517 context->InvokeService(context, _OrthancPluginService_SetMetricsValue, &params);
7518 }
7519
7520
7521
7522 typedef struct
7523 {
7525 } _OrthancPluginRegisterRefreshMetricsCallback;
7526
7538 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7540 OrthancPluginContext* context,
7542 {
7543 _OrthancPluginRegisterRefreshMetricsCallback params;
7544 params.callback = callback;
7545 context->InvokeService(context, _OrthancPluginService_RegisterRefreshMetricsCallback, &params);
7546 }
7547
7548
7549
7550
7551 typedef struct
7552 {
7553 char** target;
7554 const void* dicom;
7555 uint32_t dicomSize;
7557 } _OrthancPluginEncodeDicomWeb;
7558
7575 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7576 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson(
7577 OrthancPluginContext* context,
7578 const void* dicom,
7579 uint32_t dicomSize,
7581 {
7582 char* target = NULL;
7583
7584 _OrthancPluginEncodeDicomWeb params;
7585 params.target = &target;
7586 params.dicom = dicom;
7587 params.dicomSize = dicomSize;
7588 params.callback = callback;
7589
7590 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebJson, &params) != OrthancPluginErrorCode_Success)
7591 {
7592 /* Error */
7593 return NULL;
7594 }
7595 else
7596 {
7597 return target;
7598 }
7599 }
7600
7601
7618 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7619 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml(
7620 OrthancPluginContext* context,
7621 const void* dicom,
7622 uint32_t dicomSize,
7624 {
7625 char* target = NULL;
7626
7627 _OrthancPluginEncodeDicomWeb params;
7628 params.target = &target;
7629 params.dicom = dicom;
7630 params.dicomSize = dicomSize;
7631 params.callback = callback;
7632
7633 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebXml, &params) != OrthancPluginErrorCode_Success)
7634 {
7635 /* Error */
7636 return NULL;
7637 }
7638 else
7639 {
7640 return target;
7641 }
7642 }
7643
7644
7645
7646 typedef struct
7647 {
7648 char** target;
7649 const void* dicom;
7650 uint32_t dicomSize;
7652 void* payload;
7653 } _OrthancPluginEncodeDicomWeb2;
7654
7671 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
7672 ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson2(
7673 OrthancPluginContext* context,
7674 const void* dicom,
7675 uint32_t dicomSize,
7677 void* payload)
7678 {
7679 char* target = NULL;
7680
7681 _OrthancPluginEncodeDicomWeb2 params;
7682 params.target = &target;
7683 params.dicom = dicom;
7684 params.dicomSize = dicomSize;
7685 params.callback = callback;
7686 params.payload = payload;
7687
7688 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebJson2, &params) != OrthancPluginErrorCode_Success)
7689 {
7690 /* Error */
7691 return NULL;
7692 }
7693 else
7694 {
7695 return target;
7696 }
7697 }
7698
7699
7716 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
7717 ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml2(
7718 OrthancPluginContext* context,
7719 const void* dicom,
7720 uint32_t dicomSize,
7722 void* payload)
7723 {
7724 char* target = NULL;
7725
7726 _OrthancPluginEncodeDicomWeb2 params;
7727 params.target = &target;
7728 params.dicom = dicom;
7729 params.dicomSize = dicomSize;
7730 params.callback = callback;
7731 params.payload = payload;
7732
7733 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebXml2, &params) != OrthancPluginErrorCode_Success)
7734 {
7735 /* Error */
7736 return NULL;
7737 }
7738 else
7739 {
7740 return target;
7741 }
7742 }
7743
7744
7745
7762 void* answer,
7763 const char* key,
7764 const char* value);
7765
7766
7783 void* answer,
7784 const void* data,
7785 uint32_t size);
7786
7787
7802 typedef uint8_t (*OrthancPluginChunkedClientRequestIsDone) (void* request);
7803
7804
7820
7821
7835 typedef const void* (*OrthancPluginChunkedClientRequestGetChunkData) (void* request);
7836
7837
7851 typedef uint32_t (*OrthancPluginChunkedClientRequestGetChunkSize) (void* request);
7852
7853
7854 typedef struct
7855 {
7856 void* answer;
7859 uint16_t* httpStatus;
7861 const char* url;
7862 uint32_t headersCount;
7863 const char* const* headersKeys;
7864 const char* const* headersValues;
7865 void* request;
7870 const char* username;
7871 const char* password;
7872 uint32_t timeout;
7873 const char* certificateFile;
7874 const char* certificateKeyFile;
7875 const char* certificateKeyPassword;
7876 uint8_t pkcs11;
7877 } _OrthancPluginChunkedHttpClient;
7878
7879
7930 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
7932 OrthancPluginContext* context,
7933 void* answer,
7936 uint16_t* httpStatus,
7938 const char* url,
7939 uint32_t headersCount,
7940 const char* const* headersKeys,
7941 const char* const* headersValues,
7942 void* request,
7947 const char* username,
7948 const char* password,
7949 uint32_t timeout,
7950 const char* certificateFile,
7951 const char* certificateKeyFile,
7952 const char* certificateKeyPassword,
7953 uint8_t pkcs11)
7954 {
7955 _OrthancPluginChunkedHttpClient params;
7956 memset(&params, 0, sizeof(params));
7957
7958 /* In common with OrthancPluginHttpClient() */
7959 params.httpStatus = httpStatus;
7960 params.method = method;
7961 params.url = url;
7962 params.headersCount = headersCount;
7963 params.headersKeys = headersKeys;
7964 params.headersValues = headersValues;
7965 params.username = username;
7966 params.password = password;
7967 params.timeout = timeout;
7968 params.certificateFile = certificateFile;
7969 params.certificateKeyFile = certificateKeyFile;
7970 params.certificateKeyPassword = certificateKeyPassword;
7971 params.pkcs11 = pkcs11;
7972
7973 /* For chunked body/answer */
7974 params.answer = answer;
7975 params.answerAddChunk = answerAddChunk;
7976 params.answerAddHeader = answerAddHeader;
7977 params.request = request;
7978 params.requestIsDone = requestIsDone;
7979 params.requestChunkData = requestChunkData;
7980 params.requestChunkSize = requestChunkSize;
7981 params.requestNext = requestNext;
7982
7983 return context->InvokeService(context, _OrthancPluginService_ChunkedHttpClient, &params);
7984 }
7985
7986
7987
7992 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
7993 _OrthancPluginServerChunkedRequestReader_t OrthancPluginServerChunkedRequestReader;
7994
7995
7996
8014 const char* uri,
8015 const OrthancPluginHttpRequest* request);
8016
8017
8033 const void* data,
8034 uint32_t size);
8035
8036
8053 OrthancPluginRestOutput* output);
8054
8055
8071
8072 typedef struct
8073 {
8074 const char* pathRegularExpression;
8075 OrthancPluginRestCallback getHandler;
8077 OrthancPluginRestCallback deleteHandler;
8082 } _OrthancPluginChunkedRestCallback;
8083
8084
8114 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8116 OrthancPluginContext* context,
8117 const char* pathRegularExpression,
8118 OrthancPluginRestCallback getHandler,
8120 OrthancPluginRestCallback deleteHandler,
8125 {
8126 _OrthancPluginChunkedRestCallback params;
8127 params.pathRegularExpression = pathRegularExpression;
8128 params.getHandler = getHandler;
8129 params.postHandler = postHandler;
8130 params.deleteHandler = deleteHandler;
8131 params.putHandler = putHandler;
8132 params.addChunk = addChunk;
8133 params.execute = execute;
8134 params.finalize = finalize;
8135
8136 context->InvokeService(context, _OrthancPluginService_RegisterChunkedRestCallback, &params);
8137 }
8138
8139
8140
8141
8142
8143 typedef struct
8144 {
8145 char** result;
8146 uint16_t group;
8147 uint16_t element;
8148 const char* privateCreator;
8149 } _OrthancPluginGetTagName;
8150
8166 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8167 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetTagName(
8168 OrthancPluginContext* context,
8169 uint16_t group,
8170 uint16_t element,
8171 const char* privateCreator)
8172 {
8173 char* result;
8174
8175 _OrthancPluginGetTagName params;
8176 params.result = &result;
8177 params.group = group;
8178 params.element = element;
8179 params.privateCreator = privateCreator;
8180
8181 if (context->InvokeService(context, _OrthancPluginService_GetTagName, &params) != OrthancPluginErrorCode_Success)
8182 {
8183 /* Error */
8184 return NULL;
8185 }
8186 else
8187 {
8188 return result;
8189 }
8190 }
8191
8192
8193
8223 void** handler /* out */,
8224 const char* jobId,
8225 const char* transactionUid,
8226 const char* const* sopClassUids,
8227 const char* const* sopInstanceUids,
8228 uint32_t countInstances,
8229 const char* remoteAet,
8230 const char* calledAet);
8231
8232
8244 typedef void (*OrthancPluginStorageCommitmentDestructor) (void* handler);
8245
8246
8267 void* handler,
8268 const char* sopClassUid,
8269 const char* sopInstanceUid);
8270
8271
8272 typedef struct
8273 {
8277 } _OrthancPluginRegisterStorageCommitmentScpCallback;
8278
8292 ORTHANC_PLUGIN_SINCE_SDK("1.6.0")
8294 OrthancPluginContext* context,
8298 {
8299 _OrthancPluginRegisterStorageCommitmentScpCallback params;
8300 params.factory = factory;
8301 params.destructor = destructor;
8302 params.lookup = lookup;
8303 return context->InvokeService(context, _OrthancPluginService_RegisterStorageCommitmentScpCallback, &params);
8304 }
8305
8306
8307
8334 const OrthancPluginDicomInstance* instance);
8335
8336
8337 typedef struct
8338 {
8340 } _OrthancPluginIncomingDicomInstanceFilter;
8341
8354 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8356 OrthancPluginContext* context,
8358 {
8359 _OrthancPluginIncomingDicomInstanceFilter params;
8360 params.callback = callback;
8361
8362 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingDicomInstanceFilter, &params);
8363 }
8364
8365
8397 uint16_t* dimseStatus /* out */,
8398 const OrthancPluginDicomInstance* instance);
8399
8400
8401 typedef struct
8402 {
8404 } _OrthancPluginIncomingCStoreInstanceFilter;
8405
8418 ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
8420 OrthancPluginContext* context,
8422 {
8423 _OrthancPluginIncomingCStoreInstanceFilter params;
8424 params.callback = callback;
8425
8426 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingCStoreInstanceFilter, &params);
8427 }
8428
8465 OrthancPluginMemoryBuffer64* modifiedDicomBuffer,
8466 const void* receivedDicomBuffer,
8467 uint64_t receivedDicomBufferSize,
8469
8470
8471 typedef struct
8472 {
8474 } _OrthancPluginReceivedInstanceCallback;
8475
8496 ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
8498 OrthancPluginContext* context,
8500 {
8501 _OrthancPluginReceivedInstanceCallback params;
8502 params.callback = callback;
8503
8504 return context->InvokeService(context, _OrthancPluginService_RegisterReceivedInstanceCallback, &params);
8505 }
8506
8520 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8522 OrthancPluginContext* context,
8523 const OrthancPluginDicomInstance* instance)
8524 {
8525 char* result;
8526
8527 _OrthancPluginAccessDicomInstance params;
8528 memset(&params, 0, sizeof(params));
8529 params.resultStringToFree = &result;
8530 params.instance = instance;
8531
8532 if (context->InvokeService(context, _OrthancPluginService_GetInstanceTransferSyntaxUid, &params) != OrthancPluginErrorCode_Success)
8533 {
8534 /* Error */
8535 return NULL;
8536 }
8537 else
8538 {
8539 return result;
8540 }
8541 }
8542
8543
8556 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8557 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginHasInstancePixelData(
8558 OrthancPluginContext* context,
8559 const OrthancPluginDicomInstance* instance)
8560 {
8561 int64_t hasPixelData;
8562
8563 _OrthancPluginAccessDicomInstance params;
8564 memset(&params, 0, sizeof(params));
8565 params.resultInt64 = &hasPixelData;
8566 params.instance = instance;
8567
8568 if (context->InvokeService(context, _OrthancPluginService_HasInstancePixelData, &params) != OrthancPluginErrorCode_Success ||
8569 hasPixelData < 0 ||
8570 hasPixelData > 1)
8571 {
8572 /* Error */
8573 return -1;
8574 }
8575 else
8576 {
8577 return (hasPixelData != 0);
8578 }
8579 }
8580
8581
8582
8583
8584
8585
8586 typedef struct
8587 {
8589 const void* buffer;
8590 uint32_t size;
8591 const char* transferSyntax;
8592 } _OrthancPluginCreateDicomInstance;
8593
8607 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8609 OrthancPluginContext* context,
8610 const void* buffer,
8611 uint32_t size)
8612 {
8613 OrthancPluginDicomInstance* target = NULL;
8614
8615 _OrthancPluginCreateDicomInstance params;
8616 params.target = &target;
8617 params.buffer = buffer;
8618 params.size = size;
8619
8620 if (context->InvokeService(context, _OrthancPluginService_CreateDicomInstance, &params) != OrthancPluginErrorCode_Success)
8621 {
8622 /* Error */
8623 return NULL;
8624 }
8625 else
8626 {
8627 return target;
8628 }
8629 }
8630
8631 typedef struct
8632 {
8634 } _OrthancPluginFreeDicomInstance;
8635
8646 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8647 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeDicomInstance(
8648 OrthancPluginContext* context,
8650 {
8651 _OrthancPluginFreeDicomInstance params;
8652 params.dicom = dicom;
8653
8654 context->InvokeService(context, _OrthancPluginService_FreeDicomInstance, &params);
8655 }
8656
8657
8658 typedef struct
8659 {
8660 uint32_t* targetUint32;
8661 OrthancPluginMemoryBuffer* targetBuffer;
8662 OrthancPluginImage** targetImage;
8663 char** targetStringToFree;
8664 const OrthancPluginDicomInstance* instance;
8665 uint32_t frameIndex;
8668 uint32_t maxStringLength;
8669 OrthancPluginDicomWebBinaryCallback2 dicomWebCallback;
8670 void* dicomWebPayload;
8671 } _OrthancPluginAccessDicomInstance2;
8672
8684 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8685 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetInstanceFramesCount(
8686 OrthancPluginContext* context,
8687 const OrthancPluginDicomInstance* instance)
8688 {
8689 uint32_t count;
8690
8691 _OrthancPluginAccessDicomInstance2 params;
8692 memset(&params, 0, sizeof(params));
8693 params.targetUint32 = &count;
8694 params.instance = instance;
8695
8696 if (context->InvokeService(context, _OrthancPluginService_GetInstanceFramesCount, &params) != OrthancPluginErrorCode_Success)
8697 {
8698 /* Error */
8699 return 0;
8700 }
8701 else
8702 {
8703 return count;
8704 }
8705 }
8706
8707
8725 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8727 OrthancPluginContext* context,
8729 const OrthancPluginDicomInstance* instance,
8730 uint32_t frameIndex)
8731 {
8732 _OrthancPluginAccessDicomInstance2 params;
8733 memset(&params, 0, sizeof(params));
8734 params.targetBuffer = target;
8735 params.instance = instance;
8736 params.frameIndex = frameIndex;
8737
8738 return context->InvokeService(context, _OrthancPluginService_GetInstanceRawFrame, &params);
8739 }
8740
8741
8754 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8756 OrthancPluginContext* context,
8757 const OrthancPluginDicomInstance* instance,
8758 uint32_t frameIndex)
8759 {
8760 OrthancPluginImage* target = NULL;
8761
8762 _OrthancPluginAccessDicomInstance2 params;
8763 memset(&params, 0, sizeof(params));
8764 params.targetImage = &target;
8765 params.instance = instance;
8766 params.frameIndex = frameIndex;
8767
8768 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDecodedFrame, &params) != OrthancPluginErrorCode_Success)
8769 {
8770 return NULL;
8771 }
8772 else
8773 {
8774 return target;
8775 }
8776 }
8777
8778
8794 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8796 OrthancPluginContext* context,
8797 const void* buffer,
8798 uint32_t size,
8799 const char* transferSyntax)
8800 {
8801 OrthancPluginDicomInstance* target = NULL;
8802
8803 _OrthancPluginCreateDicomInstance params;
8804 params.target = &target;
8805 params.buffer = buffer;
8806 params.size = size;
8807 params.transferSyntax = transferSyntax;
8808
8809 if (context->InvokeService(context, _OrthancPluginService_TranscodeDicomInstance, &params) != OrthancPluginErrorCode_Success)
8810 {
8811 /* Error */
8812 return NULL;
8813 }
8814 else
8815 {
8816 return target;
8817 }
8818 }
8819
8833 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8835 OrthancPluginContext* context,
8837 const OrthancPluginDicomInstance* instance)
8838 {
8839 _OrthancPluginAccessDicomInstance2 params;
8840 memset(&params, 0, sizeof(params));
8841 params.targetBuffer = target;
8842 params.instance = instance;
8843
8844 return context->InvokeService(context, _OrthancPluginService_SerializeDicomInstance, &params);
8845 }
8846
8847
8866 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8867 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceAdvancedJson(
8868 OrthancPluginContext* context,
8869 const OrthancPluginDicomInstance* instance,
8872 uint32_t maxStringLength)
8873 {
8874 char* result = NULL;
8875
8876 _OrthancPluginAccessDicomInstance2 params;
8877 memset(&params, 0, sizeof(params));
8878 params.targetStringToFree = &result;
8879 params.instance = instance;
8880 params.format = format;
8881 params.flags = flags;
8882 params.maxStringLength = maxStringLength;
8883
8884 if (context->InvokeService(context, _OrthancPluginService_GetInstanceAdvancedJson, &params) != OrthancPluginErrorCode_Success)
8885 {
8886 /* Error */
8887 return NULL;
8888 }
8889 else
8890 {
8891 return result;
8892 }
8893 }
8894
8895
8910 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8911 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceDicomWebJson(
8912 OrthancPluginContext* context,
8913 const OrthancPluginDicomInstance* instance,
8915 void* payload)
8916 {
8917 char* target = NULL;
8918
8919 _OrthancPluginAccessDicomInstance2 params;
8920 params.targetStringToFree = &target;
8921 params.instance = instance;
8922 params.dicomWebCallback = callback;
8923 params.dicomWebPayload = payload;
8924
8925 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDicomWebJson, &params) != OrthancPluginErrorCode_Success)
8926 {
8927 /* Error */
8928 return NULL;
8929 }
8930 else
8931 {
8932 return target;
8933 }
8934 }
8935
8936
8951 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8952 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceDicomWebXml(
8953 OrthancPluginContext* context,
8954 const OrthancPluginDicomInstance* instance,
8956 void* payload)
8957 {
8958 char* target = NULL;
8959
8960 _OrthancPluginAccessDicomInstance2 params;
8961 params.targetStringToFree = &target;
8962 params.instance = instance;
8963 params.dicomWebCallback = callback;
8964 params.dicomWebPayload = payload;
8965
8966 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDicomWebXml, &params) != OrthancPluginErrorCode_Success)
8967 {
8968 /* Error */
8969 return NULL;
8970 }
8971 else
8972 {
8973 return target;
8974 }
8975 }
8976
8977
8978
8998 OrthancPluginMemoryBuffer* transcoded /* out */,
8999 const void* buffer,
9000 uint64_t size,
9001 const char* const* allowedSyntaxes,
9002 uint32_t countSyntaxes,
9003 uint8_t allowNewSopInstanceUid);
9004
9005
9006 typedef struct
9007 {
9009 } _OrthancPluginTranscoderCallback;
9010
9024 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9026 OrthancPluginContext* context,
9028 {
9029 _OrthancPluginTranscoderCallback params;
9030 params.callback = callback;
9031
9032 return context->InvokeService(context, _OrthancPluginService_RegisterTranscoderCallback, &params);
9033 }
9034
9035
9036
9037 typedef struct
9038 {
9040 uint32_t size;
9041 } _OrthancPluginCreateMemoryBuffer;
9042
9060 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9062 OrthancPluginContext* context,
9064 uint32_t size)
9065 {
9066 _OrthancPluginCreateMemoryBuffer params;
9067 params.target = target;
9068 params.size = size;
9069
9070 return context->InvokeService(context, _OrthancPluginService_CreateMemoryBuffer, &params);
9071 }
9072
9073
9099 ORTHANC_PLUGIN_SINCE_SDK("1.8.1")
9101 OrthancPluginContext* context)
9102 {
9103 char* result;
9104
9105 _OrthancPluginRetrieveDynamicString params;
9106 params.result = &result;
9107 params.argument = NULL;
9108
9109 if (context->InvokeService(context, _OrthancPluginService_GenerateRestApiAuthorizationToken,
9111 {
9112 /* Error */
9113 return NULL;
9114 }
9115 else
9116 {
9117 return result;
9118 }
9119 }
9120
9121
9122
9123 typedef struct
9124 {
9126 uint64_t size;
9127 } _OrthancPluginCreateMemoryBuffer64;
9128
9146 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9148 OrthancPluginContext* context,
9150 uint64_t size)
9151 {
9152 _OrthancPluginCreateMemoryBuffer64 params;
9153 params.target = target;
9154 params.size = size;
9155
9156 return context->InvokeService(context, _OrthancPluginService_CreateMemoryBuffer64, &params);
9157 }
9158
9159
9160 typedef struct
9161 {
9166 } _OrthancPluginRegisterStorageArea2;
9167
9185 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9186 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea2(
9187 OrthancPluginContext* context,
9192 {
9193 _OrthancPluginRegisterStorageArea2 params;
9194 params.create = create;
9195 params.readWhole = readWhole;
9196 params.readRange = readRange;
9197 params.remove = remove;
9198 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea2, &params);
9199 }
9200
9201
9202
9203 typedef struct
9204 {
9205 _OrthancPluginCreateDicom createDicom;
9206 const char* privateCreator;
9207 } _OrthancPluginCreateDicom2;
9208
9233 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9235 OrthancPluginContext* context,
9237 const char* json,
9238 const OrthancPluginImage* pixelData,
9240 const char* privateCreator)
9241 {
9242 _OrthancPluginCreateDicom2 params;
9243 params.createDicom.target = target;
9244 params.createDicom.json = json;
9245 params.createDicom.pixelData = pixelData;
9246 params.createDicom.flags = flags;
9247 params.privateCreator = privateCreator;
9248
9249 return context->InvokeService(context, _OrthancPluginService_CreateDicom2, &params);
9250 }
9251
9252
9253
9254
9255
9256
9257 typedef struct
9258 {
9259 OrthancPluginMemoryBuffer* answerBody;
9260 OrthancPluginMemoryBuffer* answerHeaders;
9261 uint16_t* httpStatus;
9263 const char* uri;
9264 uint32_t headersCount;
9265 const char* const* headersKeys;
9266 const char* const* headersValues;
9267 const void* body;
9268 uint32_t bodySize;
9269 uint8_t afterPlugins;
9270 } _OrthancPluginCallRestApi;
9271
9302 ORTHANC_PLUGIN_SINCE_SDK("1.9.2")
9304 OrthancPluginContext* context,
9305 OrthancPluginMemoryBuffer* answerBody,
9306 OrthancPluginMemoryBuffer* answerHeaders,
9307 uint16_t* httpStatus,
9309 const char* uri,
9310 uint32_t headersCount,
9311 const char* const* headersKeys,
9312 const char* const* headersValues,
9313 const void* body,
9314 uint32_t bodySize,
9315 uint8_t afterPlugins)
9316 {
9317 _OrthancPluginCallRestApi params;
9318 memset(&params, 0, sizeof(params));
9319
9320 params.answerBody = answerBody;
9321 params.answerHeaders = answerHeaders;
9322 params.httpStatus = httpStatus;
9323 params.method = method;
9324 params.uri = uri;
9325 params.headersCount = headersCount;
9326 params.headersKeys = headersKeys;
9327 params.headersValues = headersValues;
9328 params.body = body;
9329 params.bodySize = bodySize;
9330 params.afterPlugins = afterPlugins;
9331
9332 return context->InvokeService(context, _OrthancPluginService_CallRestApi, &params);
9333 }
9334
9335
9336
9341 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.10.1")
9342 _OrthancPluginWebDavCollection_t OrthancPluginWebDavCollection;
9343
9344
9363 const char* name,
9364 uint64_t size,
9365 const char* mimeType,
9366 const char* dateTime);
9367
9368
9384 const char* name,
9385 const char* dateTime);
9386
9387
9411 const void* data,
9412 uint64_t size,
9413 const char* mimeType,
9414 const char* dateTime);
9415
9416
9431 uint8_t* isExisting, /* out */
9432 uint32_t pathSize,
9433 const char* const* pathItems,
9434 void* payload);
9435
9436
9456 uint8_t* isExisting, /* out */
9460 uint32_t pathSize,
9461 const char* const* pathItems,
9462 void* payload);
9463
9464
9484 uint32_t pathSize,
9485 const char* const* pathItems,
9486 void* payload);
9487
9488
9505 uint8_t* isReadOnly, /* out */
9506 uint32_t pathSize,
9507 const char* const* pathItems,
9508 const void* data,
9509 uint64_t size,
9510 void* payload);
9511
9512
9527 uint8_t* isReadOnly, /* out */
9528 uint32_t pathSize,
9529 const char* const* pathItems,
9530 void* payload);
9531
9532
9547 uint8_t* isReadOnly, /* out */
9548 uint32_t pathSize,
9549 const char* const* pathItems,
9550 void* payload);
9551
9552
9553 typedef struct
9554 {
9555 const char* uri;
9562 void* payload;
9563 } _OrthancPluginRegisterWebDavCollection;
9564
9585 ORTHANC_PLUGIN_SINCE_SDK("1.10.1")
9587 OrthancPluginContext* context,
9588 const char* uri,
9595 void* payload)
9596 {
9597 _OrthancPluginRegisterWebDavCollection params;
9598 params.uri = uri;
9599 params.isExistingFolder = isExistingFolder;
9600 params.listFolder = listFolder;
9601 params.retrieveFile = retrieveFile;
9602 params.storeFile = storeFile;
9603 params.createFolder = createFolder;
9604 params.deleteItem = deleteItem;
9605 params.payload = payload;
9606
9607 return context->InvokeService(context, _OrthancPluginService_RegisterWebDavCollection, &params);
9608 }
9609
9610
9619 ORTHANC_PLUGIN_SINCE_SDK("1.11.1")
9620 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetDatabaseServerIdentifier(
9621 OrthancPluginContext* context)
9622 {
9623 const char* result;
9624
9625 _OrthancPluginRetrieveStaticString params;
9626 params.result = &result;
9627 params.argument = NULL;
9628
9629 if (context->InvokeService(context, _OrthancPluginService_GetDatabaseServerIdentifier, &params) != OrthancPluginErrorCode_Success)
9630 {
9631 /* Error */
9632 return NULL;
9633 }
9634 else
9635 {
9636 return result;
9637 }
9638 }
9639
9640
9641 typedef struct
9642 {
9646 } _OrthancPluginRegisterStorageArea3;
9647
9662 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
9663 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea3(
9664 OrthancPluginContext* context,
9668 {
9669 _OrthancPluginRegisterStorageArea3 params;
9670 params.create = create;
9671 params.readRange = readRange;
9672 params.remove = remove;
9673 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea3, &params);
9674 }
9675
9684 void* backend,
9685 const void* request,
9686 uint64_t requestSize);
9687
9693 typedef void (*OrthancPluginFinalizeDatabaseBackendV4) (void* backend);
9694
9695 typedef struct
9696 {
9697 void* backend;
9698 uint32_t maxDatabaseRetries;
9701 } _OrthancPluginRegisterDatabaseBackendV4;
9702
9720 ORTHANC_PLUGIN_SINCE_SDK("1.12.0")
9722 OrthancPluginContext* context,
9723 void* backend,
9724 uint32_t maxDatabaseRetries,
9727 {
9728 _OrthancPluginRegisterDatabaseBackendV4 params;
9729 params.backend = backend;
9730 params.maxDatabaseRetries = maxDatabaseRetries;
9731 params.operations = operations;
9732 params.finalize = finalize;
9733
9734 return context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackendV4, &params);
9735 }
9736
9737
9738 typedef struct
9739 {
9741 const char* instanceId;
9743 } _OrthancPluginLoadDicomInstance;
9744
9758 ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
9760 OrthancPluginContext* context,
9761 const char* instanceId,
9763 {
9764 OrthancPluginDicomInstance* target = NULL;
9765
9766 _OrthancPluginLoadDicomInstance params;
9767 params.target = &target;
9768 params.instanceId = instanceId;
9769 params.mode = mode;
9770
9771 if (context->InvokeService(context, _OrthancPluginService_LoadDicomInstance, &params) != OrthancPluginErrorCode_Success)
9772 {
9773 /* Error */
9774 return NULL;
9775 }
9776 else
9777 {
9778 return target;
9779 }
9780 }
9781
9782
9783 typedef struct
9784 {
9785 const char* name;
9786 int64_t value;
9788 } _OrthancPluginSetMetricsIntegerValue;
9789
9805 ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
9806 ORTHANC_PLUGIN_INLINE void OrthancPluginSetMetricsIntegerValue(
9807 OrthancPluginContext* context,
9808 const char* name,
9809 int64_t value,
9811 {
9812 _OrthancPluginSetMetricsIntegerValue params;
9813 params.name = name;
9814 params.value = value;
9815 params.type = type;
9816 context->InvokeService(context, _OrthancPluginService_SetMetricsIntegerValue, &params);
9817 }
9818
9819
9833 ORTHANC_PLUGIN_SINCE_SDK("1.12.2")
9835 OrthancPluginContext* context,
9836 const char* threadName)
9837 {
9838 return context->InvokeService(context, _OrthancPluginService_SetCurrentThreadName, threadName);
9839 }
9840
9841
9842 typedef struct
9843 {
9844 /* Note: This structure is also defined in Logging.h and it must be binary compatible */
9845 const char* message;
9846 const char* plugin;
9847 const char* file;
9848 uint32_t line;
9849 OrthancPluginLogCategory category;
9851 } _OrthancPluginLogMessage;
9852
9853
9867 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
9868 ORTHANC_PLUGIN_INLINE void OrthancPluginLogMessage(
9869 OrthancPluginContext* context,
9870 const char* message,
9871 const char* plugin,
9872 const char* file,
9873 uint32_t line,
9874 OrthancPluginLogCategory category,
9876 {
9877 _OrthancPluginLogMessage m;
9878 m.message = message;
9879 m.plugin = plugin;
9880 m.file = file;
9881 m.line = line;
9882 m.category = category;
9883 m.level = level;
9884 context->InvokeService(context, _OrthancPluginService_LogMessage, &m);
9885 }
9886
9887
9888 typedef struct
9889 {
9891 const char* contentType;
9892 } _OrthancPluginStartStreamAnswer;
9893
9906 ORTHANC_PLUGIN_SINCE_SDK("1.12.6")
9908 OrthancPluginContext* context,
9910 const char* contentType)
9911 {
9912 _OrthancPluginStartStreamAnswer params;
9913 params.output = output;
9914 params.contentType = contentType;
9915 return context->InvokeService(context, _OrthancPluginService_StartStreamAnswer, &params);
9916 }
9917
9918
9934 ORTHANC_PLUGIN_SINCE_SDK("1.12.6")
9936 OrthancPluginContext* context,
9938 const void* answer,
9939 uint32_t answerSize)
9940 {
9941 _OrthancPluginAnswerBuffer params;
9942 params.output = output;
9943 params.answer = answer;
9944 params.answerSize = answerSize;
9945 params.mimeType = NULL;
9946 return context->InvokeService(context, _OrthancPluginService_SendStreamChunk, &params);
9947 }
9948
9949
9950 typedef struct
9951 {
9952 OrthancPluginMemoryBuffer* instanceId;
9953 OrthancPluginMemoryBuffer* attachmentUuid;
9954 OrthancPluginStoreStatus* storeStatus;
9955 const void* dicom;
9956 uint64_t dicomSize;
9957 const void* customData;
9958 uint32_t customDataSize;
9959 } _OrthancPluginAdoptDicomInstance;
9960
9999 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10001 OrthancPluginContext* context,
10002 OrthancPluginMemoryBuffer* instanceId, /* out */
10003 OrthancPluginMemoryBuffer* attachmentUuid, /* out */
10004 OrthancPluginStoreStatus* storeStatus, /* out */
10005 const void* dicom,
10006 uint64_t dicomSize,
10007 const void* customData,
10008 uint32_t customDataSize)
10009 {
10010 _OrthancPluginAdoptDicomInstance params;
10011 params.instanceId = instanceId;
10012 params.attachmentUuid = attachmentUuid;
10013 params.storeStatus = storeStatus;
10014 params.dicom = dicom;
10015 params.dicomSize = dicomSize;
10016 params.customData = customData;
10017 params.customDataSize = customDataSize;
10018
10019 return context->InvokeService(context, _OrthancPluginService_AdoptDicomInstance, &params);
10020 }
10021
10022
10023 typedef struct
10024 {
10025 OrthancPluginMemoryBuffer* customData;
10026 const char* attachmentUuid;
10027 } _OrthancPluginGetAttachmentCustomData;
10028
10041 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10043 OrthancPluginContext* context,
10044 OrthancPluginMemoryBuffer* customData, /* out */
10045 const char* attachmentUuid /* in */)
10046 {
10047 _OrthancPluginGetAttachmentCustomData params;
10048 params.customData = customData;
10049 params.attachmentUuid = attachmentUuid;
10050
10051 return context->InvokeService(context, _OrthancPluginService_GetAttachmentCustomData, &params);
10052 }
10053
10054
10055 typedef struct
10056 {
10057 const char* attachmentUuid;
10058 const void* customData;
10059 uint32_t customDataSize;
10060 } _OrthancPluginSetAttachmentCustomData;
10061
10074 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10076 OrthancPluginContext* context,
10077 const char* attachmentUuid, /* in */
10078 const void* customData, /* in */
10079 uint32_t customDataSize /* in */)
10080 {
10081 _OrthancPluginSetAttachmentCustomData params;
10082 params.attachmentUuid = attachmentUuid;
10083 params.customData = customData;
10084 params.customDataSize = customDataSize;
10085
10086 return context->InvokeService(context, _OrthancPluginService_SetAttachmentCustomData, &params);
10087 }
10088
10089
10090 typedef struct
10091 {
10092 const char* storeId;
10093 const char* key;
10094 const void* value;
10095 uint32_t valueSize;
10096 } _OrthancPluginStoreKeyValue;
10097
10108 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10110 OrthancPluginContext* context,
10111 const char* storeId, /* in */
10112 const char* key, /* in */
10113 const void* value, /* in */
10114 uint32_t valueSize /* in */)
10115 {
10116 _OrthancPluginStoreKeyValue params;
10117 params.storeId = storeId;
10118 params.key = key;
10119 params.value = value;
10120 params.valueSize = valueSize;
10121
10122 return context->InvokeService(context, _OrthancPluginService_StoreKeyValue, &params);
10123 }
10124
10125
10126 typedef struct
10127 {
10128 const char* storeId;
10129 const char* key;
10130 } _OrthancPluginDeleteKeyValue;
10131
10140 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10142 OrthancPluginContext* context,
10143 const char* storeId, /* in */
10144 const char* key /* in */)
10145 {
10146 _OrthancPluginDeleteKeyValue params;
10147 params.storeId = storeId;
10148 params.key = key;
10149
10150 return context->InvokeService(context, _OrthancPluginService_DeleteKeyValue, &params);
10151 }
10152
10153
10154 typedef struct
10155 {
10156 uint8_t* found;
10158 const char* storeId;
10159 const char* key;
10160 } _OrthancPluginGetKeyValue;
10161
10173 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10175 OrthancPluginContext* context,
10176 uint8_t* found, /* out */
10177 OrthancPluginMemoryBuffer* target, /* out */
10178 const char* storeId, /* in */
10179 const char* key /* in */)
10180 {
10181 _OrthancPluginGetKeyValue params;
10182 params.found = found;
10183 params.target = target;
10184 params.storeId = storeId;
10185 params.key = key;
10186
10187 return context->InvokeService(context, _OrthancPluginService_GetKeyValue, &params);
10188 }
10189
10190
10196 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10197 _OrthancPluginKeysValuesIterator_t OrthancPluginKeysValuesIterator;
10198
10199
10200 typedef struct
10201 {
10203 const char* storeId;
10204 } _OrthancPluginCreateKeysValuesIterator;
10205
10206
10217 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10219 OrthancPluginContext* context,
10220 const char* storeId)
10221 {
10222 OrthancPluginKeysValuesIterator* target = NULL;
10223
10224 _OrthancPluginCreateKeysValuesIterator params;
10225 params.target = &target;
10226 params.storeId = storeId;
10227
10228 if (context->InvokeService(context, _OrthancPluginService_CreateKeysValuesIterator, &params) != OrthancPluginErrorCode_Success)
10229 {
10230 return NULL;
10231 }
10232 else
10233 {
10234 return target;
10235 }
10236 }
10237
10238
10239 typedef struct
10240 {
10242 } _OrthancPluginFreeKeysValuesIterator;
10243
10250 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10251 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeKeysValuesIterator(
10252 OrthancPluginContext* context,
10254 {
10255 _OrthancPluginFreeKeysValuesIterator params;
10256 params.iterator = iterator;
10257
10258 context->InvokeService(context, _OrthancPluginService_FreeKeysValuesIterator, &params);
10259 }
10260
10261
10262 typedef struct
10263 {
10264 uint8_t* done;
10266 } _OrthancPluginKeysValuesIteratorNext;
10267
10278 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10280 OrthancPluginContext* context,
10281 uint8_t* done, /* out */
10282 OrthancPluginKeysValuesIterator* iterator /* in */)
10283 {
10284 _OrthancPluginKeysValuesIteratorNext params;
10285 params.done = done;
10286 params.iterator = iterator;
10287
10288 return context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorNext, &params);
10289 }
10290
10291
10292 typedef struct
10293 {
10294 const char** target;
10296 } _OrthancPluginKeysValuesIteratorGetKey;
10297
10308 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10309 ORTHANC_PLUGIN_INLINE const char* OrthancPluginKeysValuesIteratorGetKey(
10310 OrthancPluginContext* context,
10312 {
10313 const char* target = NULL;
10314
10315 _OrthancPluginKeysValuesIteratorGetKey params;
10316 params.target = &target;
10317 params.iterator = iterator;
10318
10319 if (context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorGetKey, &params) == OrthancPluginErrorCode_Success)
10320 {
10321 return target;
10322 }
10323 else
10324 {
10325 return NULL;
10326 }
10327 }
10328
10329
10330 typedef struct
10331 {
10334 } _OrthancPluginKeysValuesIteratorGetValue;
10335
10348 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10350 OrthancPluginContext* context,
10351 OrthancPluginMemoryBuffer* target /* out */,
10352 OrthancPluginKeysValuesIterator* iterator /* in */)
10353 {
10354 _OrthancPluginKeysValuesIteratorGetValue params;
10355 params.target = target;
10356 params.iterator = iterator;
10357
10358 return context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorGetValue, &params);
10359 }
10360
10361
10362 typedef struct
10363 {
10364 const char* queueId;
10365 const void* value;
10366 uint32_t valueSize;
10367 } _OrthancPluginEnqueueValue;
10368
10378 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10380 OrthancPluginContext* context,
10381 const char* queueId, /* in */
10382 const void* value, /* in */
10383 uint32_t valueSize /* in */)
10384 {
10385 _OrthancPluginEnqueueValue params;
10386 params.queueId = queueId;
10387 params.value = value;
10388 params.valueSize = valueSize;
10389
10390 return context->InvokeService(context, _OrthancPluginService_EnqueueValue, &params);
10391 }
10392
10393
10394 typedef struct
10395 {
10396 uint8_t* found;
10398 const char* queueId;
10400 } _OrthancPluginDequeueValue;
10401
10413 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10415 OrthancPluginContext* context,
10416 uint8_t* found, /* out */
10417 OrthancPluginMemoryBuffer* target, /* out */
10418 const char* queueId, /* in */
10419 OrthancPluginQueueOrigin origin /* in */)
10420 {
10421 _OrthancPluginDequeueValue params;
10422 params.found = found;
10423 params.target = target;
10424 params.queueId = queueId;
10425 params.origin = origin;
10426
10427 return context->InvokeService(context, _OrthancPluginService_DequeueValue, &params);
10428 }
10429
10430
10431 typedef struct
10432 {
10433 const char* queueId;
10434 uint64_t* size;
10435 } _OrthancPluginGetQueueSize;
10436
10445 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10447 OrthancPluginContext* context,
10448 const char* queueId, /* in */
10449 uint64_t* size /* out */)
10450 {
10451 _OrthancPluginGetQueueSize params;
10452 params.queueId = queueId;
10453 params.size = size;
10454
10455 return context->InvokeService(context, _OrthancPluginService_GetQueueSize, &params);
10456 }
10457
10458
10459 typedef struct
10460 {
10461 const char* resourceId;
10462 OrthancPluginStableStatus stableStatus;
10463 uint8_t* statusHasChanged;
10464 } _OrthancPluginSetStableStatus;
10465
10486 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10488 OrthancPluginContext* context,
10489 uint8_t* statusHasChanged, /* out */
10490 const char* resourceId, /* in */
10491 OrthancPluginStableStatus stableStatus /* in */)
10492 {
10493 _OrthancPluginSetStableStatus params;
10494 params.resourceId = resourceId;
10495 params.stableStatus= stableStatus;
10496 params.statusHasChanged = statusHasChanged;
10497
10498 return context->InvokeService(context, _OrthancPluginService_SetStableStatus, &params);
10499 }
10500
10501
10525 OrthancPluginHttpAuthenticationStatus* status, /* out */
10526 OrthancPluginMemoryBuffer* customPayload, /* out */
10527 OrthancPluginMemoryBuffer* redirection, /* out */
10528 const char* uri,
10529 const char* ip,
10530 uint32_t headersCount,
10531 const char* const* headersKeys,
10532 const char* const* headersValues,
10533 uint32_t getCount,
10534 const char* const* getKeys,
10535 const char* const* getValues);
10536
10537
10538 typedef struct
10539 {
10541 } _OrthancPluginHttpAuthentication;
10542
10582 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10584 OrthancPluginContext* context,
10586 {
10587 _OrthancPluginHttpAuthentication params;
10588 params.callback = callback;
10589
10590 return context->InvokeService(context, _OrthancPluginService_RegisterHttpAuthentication, &params);
10591 }
10592
10593
10594 typedef struct
10595 {
10596 const char* sourcePlugin;
10597 const char* userId;
10598 OrthancPluginResourceType resourceType;
10599 const char* resourceId;
10600 const char* action;
10601 const void* logData;
10602 uint32_t logDataSize;
10603 } _OrthancPluginEmitAuditLog;
10604
10605
10628 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10629 ORTHANC_PLUGIN_INLINE void OrthancPluginEmitAuditLog(
10630 OrthancPluginContext* context,
10631 const char* sourcePlugin,
10632 const char* userId,
10633 OrthancPluginResourceType resourceType,
10634 const char* resourceId,
10635 const char* action,
10636 const void* logData,
10637 uint32_t logDataSize)
10638 {
10639 _OrthancPluginEmitAuditLog m;
10640 m.sourcePlugin = sourcePlugin;
10641 m.userId = userId;
10642 m.resourceType = resourceType;
10643 m.resourceId = resourceId;
10644 m.action = action;
10645 m.logData = logData;
10646 m.logDataSize = logDataSize;
10647 context->InvokeService(context, _OrthancPluginService_EmitAuditLog, &m);
10648 }
10649
10650
10670 const char* sourcePlugin,
10671 const char* userId,
10672 OrthancPluginResourceType resourceType,
10673 const char* resourceId,
10674 const char* action,
10675 const void* logData,
10676 uint32_t logDataSize);
10677
10678 typedef struct
10679 {
10681 } _OrthancPluginAuditLogHandler;
10682
10694 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10696 OrthancPluginContext* context,
10698 {
10699 _OrthancPluginAuditLogHandler params;
10700 params.handler = handler;
10701
10702 return context->InvokeService(context, _OrthancPluginService_RegisterAuditLogHandler, &params);
10703 }
10704
10705
10706#ifdef __cplusplus
10707}
10708#endif
10709
10710
OrthancPluginErrorCode OrthancPluginRegisterDatabaseBackendV4(OrthancPluginContext *context, void *backend, uint32_t maxDatabaseRetries, OrthancPluginCallDatabaseBackendV4 operations, OrthancPluginFinalizeDatabaseBackendV4 finalize)
Register a custom database back-end.
Definition OrthancCPlugin.h:9721
OrthancPluginErrorCode(* OrthancPluginHttpAuthentication)(OrthancPluginHttpAuthenticationStatus *status, OrthancPluginMemoryBuffer *customPayload, OrthancPluginMemoryBuffer *redirection, const char *uri, const char *ip, uint32_t headersCount, const char *const *headersKeys, const char *const *headersValues, uint32_t getCount, const char *const *getKeys, const char *const *getValues)
Callback to authenticate a HTTP request.
Definition OrthancCPlugin.h:10524
OrthancPluginErrorCode(* OrthancPluginCallDatabaseBackendV4)(OrthancPluginMemoryBuffer64 *response, void *backend, const void *request, uint64_t requestSize)
Signature of a callback function that is triggered when the Orthanc core requests an operation from t...
Definition OrthancCPlugin.h:9682
OrthancPluginReceivedInstanceAction(* OrthancPluginReceivedInstanceCallback)(OrthancPluginMemoryBuffer64 *modifiedDicomBuffer, const void *receivedDicomBuffer, uint64_t receivedDicomBufferSize, OrthancPluginInstanceOrigin origin)
Callback to keep/discard/modify a DICOM instance received by Orthanc from any source (C-STORE or REST...
Definition OrthancCPlugin.h:8464
OrthancPluginErrorCode(* OrthancPluginWebDavAddFile)(OrthancPluginWebDavCollection *collection, const char *name, uint64_t size, const char *mimeType, const char *dateTime)
Declare a file while returning the content of a folder.
Definition OrthancCPlugin.h:9361
void OrthancPluginRegisterStorageArea(OrthancPluginContext *context, OrthancPluginStorageCreate create, OrthancPluginStorageRead read, OrthancPluginStorageRemove remove)
Register a custom storage area.
Definition OrthancCPlugin.h:3528
void OrthancPluginRegisterOnStoredInstanceCallback(OrthancPluginContext *context, OrthancPluginOnStoredInstanceCallback callback)
Register a callback for received instances.
Definition OrthancCPlugin.h:2493
void(* OrthancPluginDicomWebSetBinaryNode)(OrthancPluginDicomWebNode *node, OrthancPluginDicomWebBinaryMode mode, const char *bulkDataUri)
Signature of a function to set the content of a node encoding a binary DICOM tag, into a JSON or XML ...
Definition OrthancCPlugin.h:1444
OrthancPluginErrorCode OrthancPluginRegisterDecodeImageCallback(OrthancPluginContext *context, OrthancPluginDecodeImageCallback callback)
Register a callback to handle the decoding of DICOM images.
Definition OrthancCPlugin.h:5847
OrthancPluginChangeType
Definition OrthancCPlugin.h:811
OrthancPluginErrorCode(* OrthancPluginStorageReadWhole)(OrthancPluginMemoryBuffer64 *target, const char *uuid, OrthancPluginContentType type)
Callback for reading a whole file from the storage area.
Definition OrthancCPlugin.h:1509
OrthancPluginErrorCode OrthancPluginRegisterIncomingCStoreInstanceFilter(OrthancPluginContext *context, OrthancPluginIncomingCStoreInstanceFilter callback)
Register a callback to filter incoming DICOM instances received by Orthanc through C-STORE.
Definition OrthancCPlugin.h:8419
OrthancPluginErrorCode(* OrthancPluginDecodeImageCallback)(OrthancPluginImage **target, const void *dicom, const uint32_t size, uint32_t frameIndex)
Signature of a callback function to decode a DICOM instance as an image.
Definition OrthancCPlugin.h:1422
void OrthancPluginRegisterRefreshMetricsCallback(OrthancPluginContext *context, OrthancPluginRefreshMetricsCallback callback)
Register a callback to refresh the metrics.
Definition OrthancCPlugin.h:7539
OrthancPluginErrorCode OrthancPluginRegisterHttpAuthentication(OrthancPluginContext *context, OrthancPluginHttpAuthentication callback)
Register a callback to handle HTTP authentication (and possibly HTTP authorization).
Definition OrthancCPlugin.h:10583
OrthancPluginErrorCode(* OrthancPluginWebDavCreateFolderCallback)(uint8_t *isReadOnly, uint32_t pathSize, const char *const *pathItems, void *payload)
Callback to create a folder.
Definition OrthancCPlugin.h:9526
OrthancPluginErrorCode(* OrthancPluginStorageReadRange2)(OrthancPluginMemoryBuffer64 *target, const char *uuid, OrthancPluginContentType type, uint64_t rangeStart, const void *customData, uint32_t customDataSize)
Callback for reading a range of a file from the storage area.
Definition OrthancCPlugin.h:1603
struct _OrthancPluginWebDavCollection_t OrthancPluginWebDavCollection
Opaque structure that represents a WebDAV collection.
Definition OrthancCPlugin.h:9341
void(* OrthancPluginDicomWebBinaryCallback)(OrthancPluginDicomWebNode *node, OrthancPluginDicomWebSetBinaryNode setter, uint32_t levelDepth, const uint16_t *levelTagGroup, const uint16_t *levelTagElement, const uint32_t *levelIndex, uint16_t tagGroup, uint16_t tagElement, OrthancPluginValueRepresentation vr)
Callback executed to encode a binary tag in DICOMweb.
Definition OrthancCPlugin.h:2060
OrthancPluginErrorCode(* OrthancPluginWebDavRetrieveFileCallback)(OrthancPluginWebDavCollection *collection, OrthancPluginWebDavRetrieveFile retrieveFile, uint32_t pathSize, const char *const *pathItems, void *payload)
Callback for retrieving the content of a file.
Definition OrthancCPlugin.h:9481
int32_t(* OrthancPluginIncomingDicomInstanceFilter)(const OrthancPluginDicomInstance *instance)
Callback to filter incoming DICOM instances received by Orthanc.
Definition OrthancCPlugin.h:8333
OrthancPluginErrorCode OrthancPluginStorageAreaRemove(OrthancPluginContext *context, OrthancPluginStorageArea *storageArea, const char *uuid, OrthancPluginContentType type)
Remove a file from the storage area.
Definition OrthancCPlugin.h:5204
OrthancPluginErrorCode(* OrthancPluginTranscoderCallback)(OrthancPluginMemoryBuffer *transcoded, const void *buffer, uint64_t size, const char *const *allowedSyntaxes, uint32_t countSyntaxes, uint8_t allowNewSopInstanceUid)
Signature of a callback function to transcode a DICOM instance.
Definition OrthancCPlugin.h:8997
OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter2(OrthancPluginContext *context, OrthancPluginIncomingHttpRequestFilter2 callback)
Register a callback to filter incoming HTTP requests.
Definition OrthancCPlugin.h:6766
OrthancPluginErrorCode(* OrthancPluginWebDavRetrieveFile)(OrthancPluginWebDavCollection *collection, const void *data, uint64_t size, const char *mimeType, const char *dateTime)
Retrieve the content of a file.
Definition OrthancCPlugin.h:9409
void OrthancPluginRegisterStorageArea3(OrthancPluginContext *context, OrthancPluginStorageCreate2 create, OrthancPluginStorageReadRange2 readRange, OrthancPluginStorageRemove2 remove)
Register a custom storage area, with support for custom data.
Definition OrthancCPlugin.h:9663
OrthancPluginErrorCode(* OrthancPluginStorageRead)(void **content, int64_t *size, const char *uuid, OrthancPluginContentType type)
Callback for reading from the storage area.
Definition OrthancCPlugin.h:1489
void OrthancPluginRegisterRestCallback(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback callback)
Register a REST callback.
Definition OrthancCPlugin.h:2415
uint32_t OrthancPluginGetExpectedDatabaseVersion(OrthancPluginContext *context)
Get the expected version of the database schema.
Definition OrthancCPlugin.h:4002
OrthancPluginErrorCode OrthancPluginRegisterReceivedInstanceCallback(OrthancPluginContext *context, OrthancPluginReceivedInstanceCallback callback)
Register a callback to keep/discard/modify a DICOM instance received by Orthanc from any source (C-ST...
Definition OrthancCPlugin.h:8497
int32_t OrthancPluginCheckVersion(OrthancPluginContext *context)
Check the compatibility of the plugin wrt. the version of its hosting Orthanc.
Definition OrthancCPlugin.h:2295
OrthancPluginErrorCode(* OrthancPluginWebDavListFolderCallback)(uint8_t *isExisting, OrthancPluginWebDavCollection *collection, OrthancPluginWebDavAddFile addFile, OrthancPluginWebDavAddFolder addFolder, uint32_t pathSize, const char *const *pathItems, void *payload)
Callback for listing the content of a folder.
Definition OrthancCPlugin.h:9455
OrthancPluginJob *(* OrthancPluginJobsUnserializer)(const char *jobType, const char *serialized)
Callback executed to unserialize a custom job.
Definition OrthancCPlugin.h:2013
struct _OrthancPluginRestOutput_t OrthancPluginRestOutput
Opaque structure that represents the HTTP connection to the client application.
Definition OrthancCPlugin.h:1287
void OrthancPluginRegisterOnChangeCallback(OrthancPluginContext *context, OrthancPluginOnChangeCallback callback)
Register a callback to monitor changes.
Definition OrthancCPlugin.h:3671
void OrthancPluginRegisterStorageArea2(OrthancPluginContext *context, OrthancPluginStorageCreate create, OrthancPluginStorageReadWhole readWhole, OrthancPluginStorageReadRange readRange, OrthancPluginStorageRemove remove)
Register a custom storage area, with support for range request.
Definition OrthancCPlugin.h:9186
OrthancPluginErrorCode(* OrthancPluginWebDavAddFolder)(OrthancPluginWebDavCollection *collection, const char *name, const char *dateTime)
Declare a subfolder while returning the content of a folder.
Definition OrthancCPlugin.h:9382
OrthancPluginErrorCode OrthancPluginRegisterWebDavCollection(OrthancPluginContext *context, const char *uri, OrthancPluginWebDavIsExistingFolderCallback isExistingFolder, OrthancPluginWebDavListFolderCallback listFolder, OrthancPluginWebDavRetrieveFileCallback retrieveFile, OrthancPluginWebDavStoreFileCallback storeFile, OrthancPluginWebDavCreateFolderCallback createFolder, OrthancPluginWebDavDeleteItemCallback deleteItem, void *payload)
Register a WebDAV virtual filesystem.
Definition OrthancCPlugin.h:9586
int32_t(* OrthancPluginIncomingHttpRequestFilter2)(OrthancPluginHttpMethod method, const char *uri, const char *ip, uint32_t headersCount, const char *const *headersKeys, const char *const *headersValues, uint32_t getArgumentsCount, const char *const *getArgumentsKeys, const char *const *getArgumentsValues)
Callback to filter incoming HTTP requests received by Orthanc.
Definition OrthancCPlugin.h:1716
void(* OrthancPluginRefreshMetricsCallback)()
Callback executed to update the metrics of the plugin.
Definition OrthancCPlugin.h:2032
OrthancPluginErrorCode OrthancPluginRegisterTranscoderCallback(OrthancPluginContext *context, OrthancPluginTranscoderCallback callback)
Register a callback to handle the transcoding of DICOM images.
Definition OrthancCPlugin.h:9025
OrthancPluginErrorCode(* OrthancPluginOnStoredInstanceCallback)(const OrthancPluginDicomInstance *instance, const char *instanceId)
Signature of a callback function that is triggered when Orthanc stores a new DICOM instance.
Definition OrthancCPlugin.h:1401
OrthancPluginErrorCode(* OrthancPluginStorageCreate2)(OrthancPluginMemoryBuffer *customData, const char *uuid, const void *content, uint64_t size, OrthancPluginContentType type, OrthancPluginCompressionType compressionType, const OrthancPluginDicomInstance *dicomInstance)
Callback for writing to the storage area.
Definition OrthancCPlugin.h:1574
OrthancPluginErrorCode(* OrthancPluginWebDavStoreFileCallback)(uint8_t *isReadOnly, uint32_t pathSize, const char *const *pathItems, const void *data, uint64_t size, void *payload)
Callback to store a file.
Definition OrthancCPlugin.h:9504
OrthancPluginErrorCode(* OrthancPluginWebDavDeleteItemCallback)(uint8_t *isReadOnly, uint32_t pathSize, const char *const *pathItems, void *payload)
Callback to remove a file or a folder.
Definition OrthancCPlugin.h:9546
OrthancPluginErrorCode OrthancPluginReconstructMainDicomTags(OrthancPluginContext *context, OrthancPluginStorageArea *storageArea, OrthancPluginResourceType level)
Reconstruct the main DICOM tags.
Definition OrthancCPlugin.h:5397
OrthancPluginErrorCode(* OrthancPluginStorageRemove)(const char *uuid, OrthancPluginContentType type)
Callback for removing a file from the storage area.
Definition OrthancCPlugin.h:1550
OrthancPluginErrorCode(* OrthancPluginStorageCreate)(const char *uuid, const void *content, int64_t size, OrthancPluginContentType type)
Callback for writing to the storage area.
Definition OrthancCPlugin.h:1463
void(* OrthancPluginDicomWebBinaryCallback2)(OrthancPluginDicomWebNode *node, OrthancPluginDicomWebSetBinaryNode setter, uint32_t levelDepth, const uint16_t *levelTagGroup, const uint16_t *levelTagElement, const uint32_t *levelIndex, uint16_t tagGroup, uint16_t tagElement, OrthancPluginValueRepresentation vr, void *payload)
Callback executed to encode a binary tag in DICOMweb.
Definition OrthancCPlugin.h:2098
OrthancPluginErrorCode OrthancPluginRegisterAuditLogHandler(OrthancPluginContext *context, OrthancPluginAuditLogHandler handler)
Register a callback to handle audit logs.
Definition OrthancCPlugin.h:10695
OrthancPluginErrorCode(* 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:1411
OrthancPluginErrorCode(* OrthancPluginRestCallback)(OrthancPluginRestOutput *output, const char *uri, const OrthancPluginHttpRequest *request)
Signature of a callback function that answers to a REST request.
Definition OrthancCPlugin.h:1390
void(* OrthancPluginFinalizeDatabaseBackendV4)(void *backend)
Signature of a callback function that is triggered when the database plugin must be finalized.
Definition OrthancCPlugin.h:9693
struct _OrthancPluginServerChunkedRequestReader_t OrthancPluginServerChunkedRequestReader
Opaque structure that reads the content of a HTTP request body during a chunked HTTP transfer.
Definition OrthancCPlugin.h:7992
OrthancPluginErrorCode(* OrthancPluginWebDavIsExistingFolderCallback)(uint8_t *isExisting, uint32_t pathSize, const char *const *pathItems, void *payload)
Callback for testing the existence of a folder.
Definition OrthancCPlugin.h:9430
struct _OrthancPluginKeysValuesIterator_t OrthancPluginKeysValuesIterator
Opaque structure that represents an iterator over the keys and values of a key-value store.
Definition OrthancCPlugin.h:10196
int32_t(* OrthancPluginIncomingHttpRequestFilter)(OrthancPluginHttpMethod method, const char *uri, const char *ip, uint32_t headersCount, const char *const *headersKeys, const char *const *headersValues)
Callback to filter incoming HTTP requests received by Orthanc.
Definition OrthancCPlugin.h:1677
void OrthancPluginRegisterJobsUnserializer(OrthancPluginContext *context, OrthancPluginJobsUnserializer unserializer)
Register an unserializer for custom jobs.
Definition OrthancCPlugin.h:7390
void(* OrthancPluginFree)(void *buffer)
Signature of a function to free dynamic memory.
Definition OrthancCPlugin.h:1434
OrthancPluginErrorCode(* OrthancPluginAuditLogHandler)(const char *sourcePlugin, const char *userId, OrthancPluginResourceType resourceType, const char *resourceId, const char *action, const void *logData, uint32_t logDataSize)
Callback to handle an audit log.
Definition OrthancCPlugin.h:10669
void OrthancPluginRegisterRestCallbackNoLock(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback callback)
Register a REST callback, without locking.
Definition OrthancCPlugin.h:2455
OrthancPluginErrorCode OrthancPluginStorageAreaRead(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginStorageArea *storageArea, const char *uuid, OrthancPluginContentType type)
Read a file from the storage area.
Definition OrthancCPlugin.h:5163
OrthancPluginErrorCode(* OrthancPluginStorageRemove2)(const char *uuid, OrthancPluginContentType type, const void *customData, uint32_t customDataSize)
Callback for removing a file from the storage area.
Definition OrthancCPlugin.h:1626
int32_t OrthancPluginCheckVersionAdvanced(OrthancPluginContext *context, int32_t expectedMajor, int32_t expectedMinor, int32_t expectedRevision)
Check that the version of the hosting Orthanc is above a given version.
Definition OrthancCPlugin.h:2180
OrthancPluginErrorCode(* OrthancPluginStorageReadRange)(OrthancPluginMemoryBuffer64 *target, const char *uuid, OrthancPluginContentType type, uint64_t rangeStart)
Callback for reading a range of a file from the storage area.
Definition OrthancCPlugin.h:1532
void OrthancPluginRegisterChunkedRestCallback(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback getHandler, OrthancPluginServerChunkedRequestReaderFactory postHandler, OrthancPluginRestCallback deleteHandler, OrthancPluginServerChunkedRequestReaderFactory putHandler, OrthancPluginServerChunkedRequestReaderAddChunk addChunk, OrthancPluginServerChunkedRequestReaderExecute execute, OrthancPluginServerChunkedRequestReaderFinalize finalize)
Register a REST callback to handle chunked HTTP transfers.
Definition OrthancCPlugin.h:8115
int32_t(* OrthancPluginIncomingCStoreInstanceFilter)(uint16_t *dimseStatus, const OrthancPluginDicomInstance *instance)
Callback to filter incoming DICOM instances received by Orthanc through C-STORE.
Definition OrthancCPlugin.h:8396
OrthancPluginErrorCode OrthancPluginRegisterIncomingDicomInstanceFilter(OrthancPluginContext *context, OrthancPluginIncomingDicomInstanceFilter callback)
Register a callback to filter incoming DICOM instances.
Definition OrthancCPlugin.h:8355
OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter(OrthancPluginContext *context, OrthancPluginIncomingHttpRequestFilter callback)
Register a callback to filter incoming HTTP requests.
Definition OrthancCPlugin.h:6185
OrthancPluginErrorCode OrthancPluginStorageAreaCreate(OrthancPluginContext *context, OrthancPluginStorageArea *storageArea, const char *uuid, const void *content, uint64_t size, OrthancPluginContentType type)
Create a file inside the storage area.
Definition OrthancCPlugin.h:5117
@ OrthancPluginChangeType_OrthancStopped
Definition OrthancCPlugin.h:823
@ OrthancPluginChangeType_OrthancStarted
Definition OrthancCPlugin.h:822
@ OrthancPluginChangeType_Deleted
Definition OrthancCPlugin.h:813
@ OrthancPluginChangeType_JobFailure
Definition OrthancCPlugin.h:830
@ OrthancPluginChangeType_NewInstance
Definition OrthancCPlugin.h:815
@ OrthancPluginChangeType_NewPatient
Definition OrthancCPlugin.h:816
@ OrthancPluginChangeType_JobSubmitted
Definition OrthancCPlugin.h:828
@ OrthancPluginChangeType_NewSeries
Definition OrthancCPlugin.h:817
@ OrthancPluginChangeType_StablePatient
Definition OrthancCPlugin.h:819
@ OrthancPluginChangeType_UpdatedPeers
Definition OrthancCPlugin.h:826
@ OrthancPluginChangeType_StableStudy
Definition OrthancCPlugin.h:821
@ OrthancPluginChangeType_CompletedSeries
Definition OrthancCPlugin.h:812
@ OrthancPluginChangeType_NewChildInstance
Definition OrthancCPlugin.h:814
@ OrthancPluginChangeType_UpdatedAttachment
Definition OrthancCPlugin.h:824
@ OrthancPluginChangeType_UpdatedMetadata
Definition OrthancCPlugin.h:825
@ OrthancPluginChangeType_StableSeries
Definition OrthancCPlugin.h:820
@ OrthancPluginChangeType_UpdatedModalities
Definition OrthancCPlugin.h:827
@ OrthancPluginChangeType_JobSuccess
Definition OrthancCPlugin.h:829
@ OrthancPluginChangeType_NewStudy
Definition OrthancCPlugin.h:818
uint32_t OrthancPluginGetFindQuerySize(OrthancPluginContext *context, const OrthancPluginFindQuery *query)
Get the number of tags in a C-Find query.
Definition OrthancCPlugin.h:6452
struct _OrthancPluginFindQuery_t OrthancPluginFindQuery
Opaque structure to an object that represents a C-Find query.
Definition OrthancCPlugin.h:1335
OrthancPluginErrorCode(* OrthancPluginApplyMove)(void *moveDriver)
Callback to apply one C-Move suboperation.
Definition OrthancCPlugin.h:1826
OrthancPluginErrorCode OrthancPluginFindMarkIncomplete(OrthancPluginContext *context, OrthancPluginFindAnswers *answers)
Mark the set of C-Find answers as incomplete.
Definition OrthancCPlugin.h:6427
void(* OrthancPluginStorageCommitmentDestructor)(void *handler)
Callback to free one storage commitment SCP handler.
Definition OrthancCPlugin.h:8244
OrthancPluginErrorCode(* OrthancPluginWorklistCallback)(OrthancPluginWorklistAnswers *answers, const OrthancPluginWorklistQuery *query, const char *issuerAet, const char *calledAet)
Callback to handle the C-Find SCP requests for worklists.
Definition OrthancCPlugin.h:1646
OrthancPluginErrorCode OrthancPluginRegisterMoveCallback(OrthancPluginContext *context, OrthancPluginMoveCallback callback, OrthancPluginGetMoveSize getMoveSize, OrthancPluginApplyMove applyMove, OrthancPluginFreeMove freeMove)
Register a callback to handle C-Move requests.
Definition OrthancCPlugin.h:6610
char * OrthancPluginGetFindQueryValue(OrthancPluginContext *context, const OrthancPluginFindQuery *query, uint32_t index)
Get the value associated with one tag in a C-Find query.
Definition OrthancCPlugin.h:6561
OrthancPluginErrorCode(* OrthancPluginStorageCommitmentFactory)(void **handler, const char *jobId, const char *transactionUid, const char *const *sopClassUids, const char *const *sopInstanceUids, uint32_t countInstances, const char *remoteAet, const char *calledAet)
Callback executed by the storage commitment SCP.
Definition OrthancCPlugin.h:8222
OrthancPluginErrorCode OrthancPluginRegisterFindCallback(OrthancPluginContext *context, OrthancPluginFindCallback callback)
Register a callback to handle C-Find requests.
Definition OrthancCPlugin.h:6357
OrthancPluginErrorCode OrthancPluginWorklistGetDicomQuery(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const OrthancPluginWorklistQuery *query)
Retrieve the worklist query as a DICOM file.
Definition OrthancCPlugin.h:5729
OrthancPluginErrorCode(* OrthancPluginStorageCommitmentLookup)(OrthancPluginStorageCommitmentFailureReason *target, void *handler, const char *sopClassUid, const char *sopInstanceUid)
Callback to get the status of one DICOM instance in the storage commitment SCP.
Definition OrthancCPlugin.h:8265
int32_t OrthancPluginWorklistIsMatch(OrthancPluginContext *context, const OrthancPluginWorklistQuery *query, const void *dicom, uint32_t size)
Test whether a worklist matches the query.
Definition OrthancCPlugin.h:5690
OrthancPluginErrorCode OrthancPluginFindAddAnswer(OrthancPluginContext *context, OrthancPluginFindAnswers *answers, const void *dicom, uint32_t size)
Add one answer to some C-Find request.
Definition OrthancCPlugin.h:6397
OrthancPluginErrorCode OrthancPluginRegisterStorageCommitmentScpCallback(OrthancPluginContext *context, OrthancPluginStorageCommitmentFactory factory, OrthancPluginStorageCommitmentDestructor destructor, OrthancPluginStorageCommitmentLookup lookup)
Register a callback to handle incoming requests to the storage commitment SCP.
Definition OrthancCPlugin.h:8293
struct _OrthancPluginFindAnswers_t OrthancPluginFindAnswers
Opaque structure to an object that represents the answers to a C-Find query for worklists.
Definition OrthancCPlugin.h:1344
struct _OrthancPluginWorklistAnswers_t OrthancPluginWorklistAnswers
Opaque structure to an object that represents the answers to a C-Find query for worklists.
Definition OrthancCPlugin.h:1327
OrthancPluginErrorCode(* OrthancPluginFindCallback)(OrthancPluginFindAnswers *answers, const OrthancPluginFindQuery *query, const char *issuerAet, const char *calledAet)
Callback to handle incoming C-Find SCP requests.
Definition OrthancCPlugin.h:1743
uint32_t(* OrthancPluginGetMoveSize)(void *moveDriver)
Callback to read the size of a C-Move driver.
Definition OrthancCPlugin.h:1811
OrthancPluginErrorCode OrthancPluginRegisterWorklistCallback(OrthancPluginContext *context, OrthancPluginWorklistCallback callback)
Register a callback to handle modality worklists requests.
Definition OrthancCPlugin.h:5586
char * OrthancPluginGetFindQueryTagName(OrthancPluginContext *context, const OrthancPluginFindQuery *query, uint32_t index)
Get the symbolic name of one tag in a C-Find query.
Definition OrthancCPlugin.h:6522
OrthancPluginErrorCode OrthancPluginWorklistMarkIncomplete(OrthancPluginContext *context, OrthancPluginWorklistAnswers *answers)
Mark the set of worklist answers as incomplete.
Definition OrthancCPlugin.h:5652
OrthancPluginErrorCode OrthancPluginGetFindQueryTag(OrthancPluginContext *context, uint16_t *group, uint16_t *element, const OrthancPluginFindQuery *query, uint32_t index)
Get one tag in a C-Find query.
Definition OrthancCPlugin.h:6490
void(* OrthancPluginFreeMove)(void *moveDriver)
Callback to free one C-Move driver.
Definition OrthancCPlugin.h:1840
struct _OrthancPluginWorklistQuery_t OrthancPluginWorklistQuery
Opaque structure to an object that represents a C-Find query for worklists.
Definition OrthancCPlugin.h:1319
void *(* OrthancPluginMoveCallback)(OrthancPluginResourceType resourceType, const char *patientId, const char *accessionNumber, const char *studyInstanceUid, const char *seriesInstanceUid, const char *sopInstanceUid, const char *originatorAet, const char *sourceAet, const char *targetAet, uint16_t originatorId)
Callback to handle incoming C-Move SCP requests.
Definition OrthancCPlugin.h:1786
OrthancPluginErrorCode OrthancPluginWorklistAddAnswer(OrthancPluginContext *context, OrthancPluginWorklistAnswers *answers, const OrthancPluginWorklistQuery *query, const void *dicom, uint32_t size)
Add one answer to some modality worklist request.
Definition OrthancCPlugin.h:5622
int32_t OrthancPluginHasInstancePixelData(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Check whether the DICOM file has pixel data.
Definition OrthancCPlugin.h:8557
char * OrthancPluginGetInstanceDicomWebXml(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:8952
struct _OrthancPluginDicomInstance_t OrthancPluginDicomInstance
Opaque structure that represents a DICOM instance that is managed by the Orthanc core.
Definition OrthancCPlugin.h:1295
OrthancPluginErrorCode OrthancPluginGetInstanceRawFrame(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const OrthancPluginDicomInstance *instance, uint32_t frameIndex)
Get the raw content of a frame in a DICOM instance.
Definition OrthancCPlugin.h:8726
const char * OrthancPluginGetInstanceRemoteAet(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the AET of a DICOM instance.
Definition OrthancCPlugin.h:3259
OrthancPluginDicomInstance * OrthancPluginLoadDicomInstance(OrthancPluginContext *context, const char *instanceId, OrthancPluginLoadDicomInstanceMode mode)
Load a DICOM instance from the Orthanc server.
Definition OrthancCPlugin.h:9759
char * OrthancPluginGetInstanceJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file.
Definition OrthancCPlugin.h:3361
OrthancPluginDicomInstance * OrthancPluginTranscodeDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size, const char *transferSyntax)
Parse and transcode a DICOM instance.
Definition OrthancCPlugin.h:8795
int32_t OrthancPluginHasInstanceMetadata(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, const char *metadata)
Check whether a DICOM instance is associated with some metadata.
Definition OrthancCPlugin.h:3438
OrthancPluginDicomInstance * OrthancPluginCreateDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size)
Parse a DICOM instance.
Definition OrthancCPlugin.h:8608
uint32_t OrthancPluginGetInstanceFramesCount(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the number of frames in a DICOM instance.
Definition OrthancCPlugin.h:8685
OrthancPluginInstanceOrigin OrthancPluginGetInstanceOrigin(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the origin of a DICOM file.
Definition OrthancCPlugin.h:5755
int64_t OrthancPluginGetInstanceSize(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the size of a DICOM file.
Definition OrthancCPlugin.h:3292
char * OrthancPluginGetInstanceDicomWebJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:8911
char * OrthancPluginGetInstanceTransferSyntaxUid(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the transfer syntax of a DICOM file.
Definition OrthancCPlugin.h:8521
void OrthancPluginFreeDicomInstance(OrthancPluginContext *context, OrthancPluginDicomInstance *dicom)
Free a DICOM instance.
Definition OrthancCPlugin.h:8647
OrthancPluginErrorCode OrthancPluginSerializeDicomInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const OrthancPluginDicomInstance *instance)
Writes a DICOM instance to a memory buffer.
Definition OrthancCPlugin.h:8834
const char * OrthancPluginGetInstanceMetadata(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, const char *metadata)
Get the value of some metadata associated with a given DICOM instance.
Definition OrthancCPlugin.h:3479
char * OrthancPluginGetInstanceSimplifiedJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file (with simplification).
Definition OrthancCPlugin.h:3399
const void * OrthancPluginGetInstanceData(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the data of a DICOM file.
Definition OrthancCPlugin.h:3325
OrthancPluginImage * OrthancPluginGetInstanceDecodedFrame(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition OrthancCPlugin.h:8755
char * OrthancPluginGetInstanceAdvancedJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, OrthancPluginDicomToJsonFormat format, OrthancPluginDicomToJsonFlags flags, uint32_t maxStringLength)
Format a DICOM memory buffer as a JSON string.
Definition OrthancCPlugin.h:8867
OrthancPluginImage * OrthancPluginConvertPixelFormat(OrthancPluginContext *context, const OrthancPluginImage *source, OrthancPluginPixelFormat targetFormat)
Change the pixel format of an image.
Definition OrthancCPlugin.h:4901
OrthancPluginPixelFormat
Definition OrthancCPlugin.h:686
OrthancPluginErrorCode OrthancPluginDrawText(OrthancPluginContext *context, OrthancPluginImage *image, uint32_t fontIndex, const char *utf8Text, int32_t x, int32_t y, uint8_t r, uint8_t g, uint8_t b)
Draw text on an image.
Definition OrthancCPlugin.h:5061
OrthancPluginErrorCode OrthancPluginCompressJpegImage(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginPixelFormat format, uint32_t width, uint32_t height, uint32_t pitch, const void *buffer, uint8_t quality)
Encode a JPEG image.
Definition OrthancCPlugin.h:4645
uint32_t OrthancPluginGetImagePitch(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the pitch of an image.
Definition OrthancCPlugin.h:4436
OrthancPluginPixelFormat OrthancPluginGetImagePixelFormat(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the pixel format of an image.
Definition OrthancCPlugin.h:4335
OrthancPluginImage * OrthancPluginCreateImage(OrthancPluginContext *context, OrthancPluginPixelFormat format, uint32_t width, uint32_t height)
Create an image.
Definition OrthancCPlugin.h:5885
uint32_t OrthancPluginGetFontsCount(OrthancPluginContext *context)
Return the number of available fonts.
Definition OrthancCPlugin.h:4936
uint32_t OrthancPluginGetImageHeight(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the height of an image.
Definition OrthancCPlugin.h:4401
void * OrthancPluginGetImageBuffer(OrthancPluginContext *context, const OrthancPluginImage *image)
Return a pointer to the content of an image.
Definition OrthancCPlugin.h:4470
void OrthancPluginFreeImage(OrthancPluginContext *context, OrthancPluginImage *image)
Free an image.
Definition OrthancCPlugin.h:4555
OrthancPluginErrorCode OrthancPluginCompressPngImage(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginPixelFormat format, uint32_t width, uint32_t height, uint32_t pitch, const void *buffer)
Encode a PNG image.
Definition OrthancCPlugin.h:4600
OrthancPluginImage * OrthancPluginDecodeDicomImage(OrthancPluginContext *context, const void *buffer, uint32_t bufferSize, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition OrthancCPlugin.h:5974
OrthancPluginImage * OrthancPluginUncompressImage(OrthancPluginContext *context, const void *data, uint32_t size, OrthancPluginImageFormat format)
Decode a compressed image.
Definition OrthancCPlugin.h:4513
const char * OrthancPluginGetFontName(OrthancPluginContext *context, uint32_t fontIndex)
Return the name of a font.
Definition OrthancCPlugin.h:4976
OrthancPluginImageFormat
Definition OrthancCPlugin.h:857
struct _OrthancPluginStorageArea_t OrthancPluginStorageArea
Opaque structure that represents the storage area that is actually used by Orthanc.
Definition OrthancCPlugin.h:1311
OrthancPluginCompressionType
Definition OrthancCPlugin.h:841
uint32_t OrthancPluginGetImageWidth(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the width of an image.
Definition OrthancCPlugin.h:4368
OrthancPluginErrorCode OrthancPluginBufferCompression(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const void *source, uint32_t size, OrthancPluginCompressionType compression, uint8_t uncompress)
Compress or decompress a buffer.
Definition OrthancCPlugin.h:4147
uint32_t OrthancPluginGetFontSize(OrthancPluginContext *context, uint32_t fontIndex)
Return the size of a font.
Definition OrthancCPlugin.h:5008
OrthancPluginImage * OrthancPluginCreateImageAccessor(OrthancPluginContext *context, OrthancPluginPixelFormat format, uint32_t width, uint32_t height, uint32_t pitch, void *buffer)
Create an image pointing to a memory buffer.
Definition OrthancCPlugin.h:5928
struct _OrthancPluginImage_t OrthancPluginImage
Opaque structure that represents an image that is uncompressed in memory.
Definition OrthancCPlugin.h:1303
@ OrthancPluginPixelFormat_RGBA32
Color image in RGBA32 format.
Definition OrthancCPlugin.h:725
@ OrthancPluginPixelFormat_RGB48
Color image in RGB48 format.
Definition OrthancCPlugin.h:735
@ OrthancPluginPixelFormat_Grayscale8
Graylevel 8bpp image.
Definition OrthancCPlugin.h:693
@ OrthancPluginPixelFormat_SignedGrayscale16
Graylevel, signed 16bpp image.
Definition OrthancCPlugin.h:709
@ OrthancPluginPixelFormat_Float32
Graylevel, floating-point 32bpp image.
Definition OrthancCPlugin.h:751
@ OrthancPluginPixelFormat_RGB24
Color image in RGB24 format.
Definition OrthancCPlugin.h:717
@ OrthancPluginPixelFormat_BGRA32
Color image in BGRA32 format.
Definition OrthancCPlugin.h:759
@ OrthancPluginPixelFormat_Unknown
Definition OrthancCPlugin.h:727
@ OrthancPluginPixelFormat_Grayscale64
Graylevel, unsigned 64bpp image.
Definition OrthancCPlugin.h:767
@ OrthancPluginPixelFormat_Grayscale32
Graylevel, unsigned 32bpp image.
Definition OrthancCPlugin.h:743
@ OrthancPluginPixelFormat_Grayscale16
Graylevel, unsigned 16bpp image.
Definition OrthancCPlugin.h:701
@ OrthancPluginImageFormat_Png
Definition OrthancCPlugin.h:858
@ OrthancPluginImageFormat_Jpeg
Definition OrthancCPlugin.h:859
@ OrthancPluginImageFormat_Dicom
Definition OrthancCPlugin.h:860
@ OrthancPluginCompressionType_Gzip
Definition OrthancCPlugin.h:844
@ OrthancPluginCompressionType_ZlibWithSize
Definition OrthancCPlugin.h:843
@ OrthancPluginCompressionType_None
Definition OrthancCPlugin.h:846
@ OrthancPluginCompressionType_Zlib
Definition OrthancCPlugin.h:842
@ OrthancPluginCompressionType_GzipWithSize
Definition OrthancCPlugin.h:845
OrthancPluginErrorCode OrthancPluginRestApiPost(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri, const void *body, uint32_t bodySize)
Make a POST call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2723
OrthancPluginErrorCode OrthancPluginRestApiPostAfterPlugins(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri, const void *body, uint32_t bodySize)
Make a POST call to the REST API, as tainted by the plugins.
Definition OrthancCPlugin.h:2758
OrthancPluginErrorCode OrthancPluginRestApiPutAfterPlugins(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri, const void *body, uint32_t bodySize)
Make a PUT call to the REST API, as tainted by the plugins.
Definition OrthancCPlugin.h:2871
char * OrthancPluginLookupStudyWithAccessionNumber(OrthancPluginContext *context, const char *accessionNumber)
Look for a study, using the accession number.
Definition OrthancCPlugin.h:3007
char * OrthancPluginLookupSeries(OrthancPluginContext *context, const char *seriesUID)
Look for a series.
Definition OrthancCPlugin.h:3042
OrthancPluginErrorCode OrthancPluginSetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *value)
Set the value of a global property.
Definition OrthancCPlugin.h:3905
OrthancPluginErrorCode OrthancPluginRestApiPut(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri, const void *body, uint32_t bodySize)
Make a PUT call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2835
char * OrthancPluginGetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *defaultValue)
Get the value of a global property.
Definition OrthancCPlugin.h:3866
char * OrthancPluginLookupStudy(OrthancPluginContext *context, const char *studyUID)
Look for a study.
Definition OrthancCPlugin.h:2972
OrthancPluginErrorCode OrthancPluginRestApiGet(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri)
Make a GET call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2656
char * OrthancPluginLookupInstance(OrthancPluginContext *context, const char *sopInstanceUID)
Look for an instance.
Definition OrthancCPlugin.h:3077
OrthancPluginErrorCode OrthancPluginRestApiGetAfterPlugins(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri)
Make a GET call to the REST API, as tainted by the plugins.
Definition OrthancCPlugin.h:2686
char * OrthancPluginLookupPatient(OrthancPluginContext *context, const char *patientID)
Look for a patient.
Definition OrthancCPlugin.h:2937
OrthancPluginErrorCode OrthancPluginRestApiDelete(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2787
OrthancPluginErrorCode OrthancPluginRestApiDeleteAfterPlugins(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the REST API, as tainted by the plugins.
Definition OrthancCPlugin.h:2810
OrthancPluginErrorCode OrthancPluginCallRestApi(OrthancPluginContext *context, OrthancPluginMemoryBuffer *answerBody, OrthancPluginMemoryBuffer *answerHeaders, uint16_t *httpStatus, OrthancPluginHttpMethod method, const char *uri, uint32_t headersCount, const char *const *headersKeys, const char *const *headersValues, const void *body, uint32_t bodySize, uint8_t afterPlugins)
Call the REST API of Orthanc with full flexibility.
Definition OrthancCPlugin.h:9303
char * OrthancPluginGenerateRestApiAuthorizationToken(OrthancPluginContext *context)
Generate a token to grant full access to the REST API of Orthanc.
Definition OrthancCPlugin.h:9100
OrthancPluginErrorCode OrthancPluginRestApiGet2(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri, uint32_t headersCount, const char *const *headersKeys, const char *const *headersValues, int32_t afterPlugins)
Make a GET call to the Orthanc REST API, with custom HTTP headers.
Definition OrthancCPlugin.h:5548
OrthancPluginErrorCode OrthancPluginGetDicomForInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *instanceId)
Retrieve a DICOM instance using its Orthanc identifier.
Definition OrthancCPlugin.h:2623
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:2582
void OrthancPluginSendUnauthorized(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *realm)
Signal that a REST request is not authorized.
Definition OrthancCPlugin.h:3145
void OrthancPluginSetHttpErrorDetails(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *details, uint8_t log)
Provide a detailed description for an HTTP error.
Definition OrthancCPlugin.h:7427
void OrthancPluginSendMethodNotAllowed(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *allowedMethods)
Signal that this URI does not support this HTTP method.
Definition OrthancCPlugin.h:3168
OrthancPluginErrorCode OrthancPluginSendStreamChunk(OrthancPluginContext *context, OrthancPluginRestOutput *output, const void *answer, uint32_t answerSize)
Send a chunk as a part of an HTTP stream answer.
Definition OrthancCPlugin.h:9935
void OrthancPluginAnswerBuffer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const void *answer, uint32_t answerSize, const char *mimeType)
Answer to a REST request.
Definition OrthancCPlugin.h:2525
void OrthancPluginSendHttpStatusCode(OrthancPluginContext *context, OrthancPluginRestOutput *output, uint16_t status)
Send a HTTP status code.
Definition OrthancCPlugin.h:3122
void OrthancPluginSetHttpHeader(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *key, const char *value)
Set some HTTP header.
Definition OrthancCPlugin.h:3223
OrthancPluginErrorCode OrthancPluginStartStreamAnswer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *contentType)
Start an HTTP stream answer.
Definition OrthancCPlugin.h:9907
void OrthancPluginSetCookie(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *cookie, const char *value)
Set a cookie.
Definition OrthancCPlugin.h:3198
void OrthancPluginRedirect(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *redirection)
Redirect a REST request.
Definition OrthancCPlugin.h:2905
void OrthancPluginCompressAndAnswerJpegImage(OrthancPluginContext *context, OrthancPluginRestOutput *output, OrthancPluginPixelFormat format, uint32_t width, uint32_t height, uint32_t pitch, const void *buffer, uint8_t quality)
Answer to a REST request with a JPEG image.
Definition OrthancCPlugin.h:4692
OrthancPluginErrorCode OrthancPluginSendMultipartItem(OrthancPluginContext *context, OrthancPluginRestOutput *output, const void *answer, uint32_t answerSize)
Send an item as a part of some HTTP multipart answer.
Definition OrthancCPlugin.h:4105
OrthancPluginErrorCode OrthancPluginSendMultipartItem2(OrthancPluginContext *context, OrthancPluginRestOutput *output, const void *answer, uint32_t answerSize, uint32_t headersCount, const char *const *headersKeys, const char *const *headersValues)
Send an item as a part of some HTTP multipart answer, with custom headers.
Definition OrthancCPlugin.h:6146
void OrthancPluginSendHttpStatus(OrthancPluginContext *context, OrthancPluginRestOutput *output, uint16_t status, const void *body, uint32_t bodySize)
Send a HTTP status, with a custom body.
Definition OrthancCPlugin.h:4299
OrthancPluginErrorCode OrthancPluginStartMultipartAnswer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *subType, const char *contentType)
Start an HTTP multipart answer.
Definition OrthancCPlugin.h:4076
OrthancPluginErrorCode(* OrthancPluginJobStop)(void *job, OrthancPluginJobStopReason reason)
Callback executed once one custom job leaves the "running" state.
Definition OrthancCPlugin.h:1980
OrthancPluginErrorCode(* OrthancPluginServerChunkedRequestReaderExecute)(OrthancPluginServerChunkedRequestReader *reader, OrthancPluginRestOutput *output)
Callback invoked whenever the request body is entirely received.
Definition OrthancCPlugin.h:8051
OrthancPluginErrorCode OrthancPluginHttpClient(OrthancPluginContext *context, OrthancPluginMemoryBuffer *answerBody, OrthancPluginMemoryBuffer *answerHeaders, uint16_t *httpStatus, OrthancPluginHttpMethod method, const char *url, uint32_t headersCount, const char *const *headersKeys, const char *const *headersValues, const void *body, uint32_t bodySize, const char *username, const char *password, uint32_t timeout, const char *certificateFile, const char *certificateKeyFile, const char *certificateKeyPassword, uint8_t pkcs11)
Issue a HTTP call with full flexibility.
Definition OrthancCPlugin.h:6261
struct _OrthancPluginJob_t OrthancPluginJob
Opaque structure to a job to be executed by Orthanc.
Definition OrthancCPlugin.h:1371
OrthancPluginErrorCode OrthancPluginCreateDicom2(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *json, const OrthancPluginImage *pixelData, OrthancPluginCreateDicomFlags flags, const char *privateCreator)
Create a DICOM instance from a JSON string and an image, with a private creator.
Definition OrthancCPlugin.h:9234
void OrthancPluginLogMessage(OrthancPluginContext *context, const char *message, const char *plugin, const char *file, uint32_t line, OrthancPluginLogCategory category, OrthancPluginLogLevel level)
Log a message.
Definition OrthancCPlugin.h:9868
void OrthancPluginLogInfo(OrthancPluginContext *context, const char *message)
Log an information.
Definition OrthancCPlugin.h:2379
void OrthancPluginFreeFindMatcher(OrthancPluginContext *context, OrthancPluginFindMatcher *matcher)
Free a C-Find matcher.
Definition OrthancCPlugin.h:6689
void OrthancPluginFreePeers(OrthancPluginContext *context, OrthancPluginPeers *peers)
Free the list of available Orthanc peers.
Definition OrthancCPlugin.h:6830
OrthancPluginLogLevel
Definition OrthancCPlugin.h:1155
OrthancPluginErrorCode OrthancPluginRegisterPrivateDictionaryTag(OrthancPluginContext *context, uint16_t group, uint16_t element, OrthancPluginValueRepresentation vr, const char *name, uint32_t minMultiplicity, uint32_t maxMultiplicity, const char *privateCreator)
Register a new private tag into the DICOM dictionary.
Definition OrthancCPlugin.h:5353
OrthancPluginIdentifierConstraint
Definition OrthancCPlugin.h:961
void OrthancPluginExtendOrthancExplorer2(OrthancPluginContext *context, const char *plugin, const char *javascript)
Extend the JavaScript code of Orthanc Explorer.
Definition OrthancCPlugin.h:3831
OrthancPluginErrorCode OrthancPluginRegisterDictionaryTag(OrthancPluginContext *context, uint16_t group, uint16_t element, OrthancPluginValueRepresentation vr, const char *name, uint32_t minMultiplicity, uint32_t maxMultiplicity)
Register a new tag into the DICOM dictionary.
Definition OrthancCPlugin.h:5299
OrthancPluginResourceType
Definition OrthancCPlugin.h:793
void OrthancPluginSetRootUri2(OrthancPluginContext *context, const char *plugin, const char *uri)
Set the URI where the plugin provides its Web interface.
Definition OrthancCPlugin.h:3731
void OrthancPluginSetMetricsIntegerValue(OrthancPluginContext *context, const char *name, int64_t value, OrthancPluginMetricsType type)
Set the value of an integer metrics.
Definition OrthancCPlugin.h:9806
OrthancPluginLogCategory
Definition OrthancCPlugin.h:1172
OrthancPluginErrorCode OrthancPluginWriteFile(OrthancPluginContext *context, const char *path, const void *data, uint32_t size)
Write a file.
Definition OrthancCPlugin.h:4215
const char * OrthancPluginKeysValuesIteratorGetKey(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Get the current key of an iterator over a key-value store.
Definition OrthancCPlugin.h:10309
uint32_t OrthancPluginGetCommandLineArgumentsCount(OrthancPluginContext *context)
Get the number of command-line arguments.
Definition OrthancCPlugin.h:3936
OrthancPluginErrorCode OrthancPluginKeysValuesIteratorNext(OrthancPluginContext *context, uint8_t *done, OrthancPluginKeysValuesIterator *iterator)
Read the next element of an iterator over a key-value store.
Definition OrthancCPlugin.h:10279
char * OrthancPluginComputeMd5(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute an MD5 hash.
Definition OrthancCPlugin.h:6020
OrthancPluginErrorCode
Definition OrthancCPlugin.h:233
struct _OrthancPluginPeers_t OrthancPluginPeers
Opaque structure to the set of remote Orthanc Peers that are known to the local Orthanc server.
Definition OrthancCPlugin.h:1362
OrthancPluginErrorCode OrthancPluginHttpPost(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *url, const void *body, uint32_t bodySize, const char *username, const char *password)
Issue a HTTP POST call.
Definition OrthancCPlugin.h:4783
uint32_t(* OrthancPluginChunkedClientRequestGetChunkSize)(void *request)
Callback to read the size of the current request chunk during a chunked transfer.
Definition OrthancCPlugin.h:7851
OrthancPluginErrorCode OrthancPluginRegisterErrorCode(OrthancPluginContext *context, int32_t code, uint16_t httpStatus, const char *message)
Declare a custom error code for this plugin.
Definition OrthancCPlugin.h:5243
OrthancPluginErrorCode OrthancPluginCreateMemoryBuffer(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, uint32_t size)
Create a 32-bit memory buffer.
Definition OrthancCPlugin.h:9061
OrthancPluginJob * OrthancPluginCreateJob2(OrthancPluginContext *context, void *job, OrthancPluginJobFinalize finalize, const char *type, OrthancPluginJobGetProgress getProgress, OrthancPluginJobGetContent2 getContent, OrthancPluginJobGetSerialized2 getSerialized, OrthancPluginJobStep step, OrthancPluginJobStop stop, OrthancPluginJobReset reset)
Create a custom job.
Definition OrthancCPlugin.h:7255
OrthancPluginErrorCode(* OrthancPluginServerChunkedRequestReaderFactory)(OrthancPluginServerChunkedRequestReader **reader, const char *uri, const OrthancPluginHttpRequest *request)
Callback to create a reader to handle incoming chunked HTTP transfers.
Definition OrthancCPlugin.h:8012
OrthancPluginDicomWebBinaryMode
Definition OrthancCPlugin.h:1050
OrthancPluginErrorCode(* OrthancPluginJobGetContent2)(OrthancPluginMemoryBuffer *target, void *job)
Callback to retrieve the content of one custom job.
Definition OrthancCPlugin.h:1900
OrthancPluginErrorCode(* OrthancPluginChunkedClientRequestNext)(void *request)
Callback to advance in the request body during a chunked transfer.
Definition OrthancCPlugin.h:7819
OrthancPluginHttpAuthenticationStatus
Definition OrthancCPlugin.h:1228
struct _OrthancPluginDicomWebNode_t OrthancPluginDicomWebNode
Opaque structure that represents a node in a JSON or XML document used in DICOMweb.
Definition OrthancCPlugin.h:1381
OrthancPluginErrorCode OrthancPluginGetKeyValue(OrthancPluginContext *context, uint8_t *found, OrthancPluginMemoryBuffer *target, const char *storeId, const char *key)
Get the value associated with a key in the Orthanc key-value store.
Definition OrthancCPlugin.h:10174
float(* OrthancPluginJobGetProgress)(void *job)
Callback to check the progress of one custom job.
Definition OrthancCPlugin.h:1866
char * OrthancPluginEncodeDicomWebJson(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback callback)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:7576
OrthancPluginFindMatcher * OrthancPluginCreateFindMatcher(OrthancPluginContext *context, const void *query, uint32_t size)
Create a C-Find matcher.
Definition OrthancCPlugin.h:6650
OrthancPluginDicomToJsonFlags
Definition OrthancCPlugin.h:925
OrthancPluginJobStepStatus
Definition OrthancCPlugin.h:1007
OrthancPluginCreateDicomFlags
Definition OrthancCPlugin.h:946
void(* OrthancPluginServerChunkedRequestReaderFinalize)(OrthancPluginServerChunkedRequestReader *reader)
Callback invoked to release the resources associated with an incoming HTTP chunked transfer.
Definition OrthancCPlugin.h:8069
int32_t OrthancPluginFindMatcherIsMatch(OrthancPluginContext *context, const OrthancPluginFindMatcher *matcher, const void *dicom, uint32_t size)
Test whether a DICOM instance matches a C-Find query.
Definition OrthancCPlugin.h:6723
void OrthancPluginExtendOrthancExplorer(OrthancPluginContext *context, const char *javascript)
Extend the JavaScript code of Orthanc Explorer.
Definition OrthancCPlugin.h:3808
void OrthancPluginLogWarning(OrthancPluginContext *context, const char *message)
Log a warning.
Definition OrthancCPlugin.h:2363
OrthancPluginQueueOrigin
Definition OrthancCPlugin.h:1204
OrthancPluginErrorCode OrthancPluginDequeueValue(OrthancPluginContext *context, uint8_t *found, OrthancPluginMemoryBuffer *target, const char *queueId, OrthancPluginQueueOrigin origin)
Dequeue a value from a queue.
Definition OrthancCPlugin.h:10414
const char * OrthancPluginGetPeerName(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the symbolic name of an Orthanc peer.
Definition OrthancCPlugin.h:6910
OrthancPluginPeers * OrthancPluginGetPeers(OrthancPluginContext *context)
Return the list of available Orthanc peers.
Definition OrthancCPlugin.h:6795
OrthancPluginConstraintType
Definition OrthancCPlugin.h:976
char * OrthancPluginGetOrthancDirectory(OrthancPluginContext *context)
Return the directory containing the Orthanc.
Definition OrthancCPlugin.h:3590
OrthancPluginErrorCode OrthancPluginReadFile(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *path)
Read a file.
Definition OrthancCPlugin.h:4184
OrthancPluginJobStepStatus(* OrthancPluginJobStep)(void *job)
Callback to execute one step of a custom job.
Definition OrthancCPlugin.h:1956
char * OrthancPluginComputeSha1(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute a SHA-1 hash.
Definition OrthancCPlugin.h:6056
char * OrthancPluginGetCommandLineArgument(OrthancPluginContext *context, uint32_t argument)
Get the value of a command-line argument.
Definition OrthancCPlugin.h:3970
void OrthancPluginSetMetricsValue(OrthancPluginContext *context, const char *name, float value, OrthancPluginMetricsType type)
Set the value of a floating-point metrics.
Definition OrthancCPlugin.h:7507
OrthancPluginErrorCode(* OrthancPluginServerChunkedRequestReaderAddChunk)(OrthancPluginServerChunkedRequestReader *reader, const void *data, uint32_t size)
Callback invoked whenever a new data chunk is available during a chunked transfer.
Definition OrthancCPlugin.h:8031
OrthancPluginReceivedInstanceAction
Definition OrthancCPlugin.h:1111
OrthancPluginErrorCode OrthancPluginChunkedHttpClient(OrthancPluginContext *context, void *answer, OrthancPluginChunkedClientAnswerAddChunk answerAddChunk, OrthancPluginChunkedClientAnswerAddHeader answerAddHeader, uint16_t *httpStatus, OrthancPluginHttpMethod method, const char *url, uint32_t headersCount, const char *const *headersKeys, const char *const *headersValues, void *request, OrthancPluginChunkedClientRequestIsDone requestIsDone, OrthancPluginChunkedClientRequestGetChunkData requestChunkData, OrthancPluginChunkedClientRequestGetChunkSize requestChunkSize, OrthancPluginChunkedClientRequestNext requestNext, const char *username, const char *password, uint32_t timeout, const char *certificateFile, const char *certificateKeyFile, const char *certificateKeyPassword, uint8_t pkcs11)
Issue a HTTP call, using chunked HTTP transfers.
Definition OrthancCPlugin.h:7931
int32_t(* OrthancPluginJobGetSerialized2)(OrthancPluginMemoryBuffer *target, void *job)
Callback to serialize one custom job.
Definition OrthancCPlugin.h:1940
void OrthancPluginFreeMemoryBuffer64(OrthancPluginContext *context, OrthancPluginMemoryBuffer64 *buffer)
Free a memory buffer.
Definition OrthancCPlugin.h:2331
OrthancPluginErrorCode OrthancPluginHttpPut(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *url, const void *body, uint32_t bodySize, const char *username, const char *password)
Issue a HTTP PUT call.
Definition OrthancCPlugin.h:4825
OrthancPluginErrorCode OrthancPluginStoreKeyValue(OrthancPluginContext *context, const char *storeId, const char *key, const void *value, uint32_t valueSize)
Store a key-value pair in the Orthanc database.
Definition OrthancCPlugin.h:10109
char * OrthancPluginDicomBufferToJson(OrthancPluginContext *context, const void *buffer, uint32_t size, OrthancPluginDicomToJsonFormat format, OrthancPluginDicomToJsonFlags flags, uint32_t maxStringLength)
Format a DICOM memory buffer as a JSON string.
Definition OrthancCPlugin.h:5441
OrthancPluginErrorCode OrthancPluginSetStableStatus(OrthancPluginContext *context, uint8_t *statusHasChanged, const char *resourceId, OrthancPluginStableStatus stableStatus)
Change the "Stable" status of a resource.
Definition OrthancCPlugin.h:10487
OrthancPluginErrorCode OrthancPluginCreateDicom(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *json, const OrthancPluginImage *pixelData, OrthancPluginCreateDicomFlags flags)
Create a DICOM instance from a JSON string and an image.
Definition OrthancCPlugin.h:5811
char * OrthancPluginDicomInstanceToJson(OrthancPluginContext *context, const char *instanceId, OrthancPluginDicomToJsonFormat format, OrthancPluginDicomToJsonFlags flags, uint32_t maxStringLength)
Format a DICOM instance as a JSON string.
Definition OrthancCPlugin.h:5490
void OrthancPluginFreeKeysValuesIterator(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Free an iterator over a key-value store.
Definition OrthancCPlugin.h:10251
void OrthancPluginFreeJob(OrthancPluginContext *context, OrthancPluginJob *job)
Free a custom job.
Definition OrthancCPlugin.h:7311
const char * OrthancPluginGetDatabaseServerIdentifier(OrthancPluginContext *context)
Gets the DatabaseServerIdentifier.
Definition OrthancCPlugin.h:9620
char * OrthancPluginGenerateUuid(OrthancPluginContext *context)
Generate an UUID.
Definition OrthancCPlugin.h:6317
OrthancPluginStorageCommitmentFailureReason
Definition OrthancCPlugin.h:1063
OrthancPluginErrorCode(* OrthancPluginChunkedClientAnswerAddChunk)(void *answer, const void *data, uint32_t size)
Callback executed when an answer chunk is received during a chunked transfer.
Definition OrthancCPlugin.h:7782
const char * OrthancPluginGetPeerUserProperty(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex, const char *userProperty)
Get some user-defined property of an Orthanc peer.
Definition OrthancCPlugin.h:6999
OrthancPluginMetricsType
Definition OrthancCPlugin.h:1033
const char * OrthancPluginAutodetectMimeType(OrthancPluginContext *context, const char *path)
Detect the MIME type of a file.
Definition OrthancCPlugin.h:7460
OrthancPluginErrorCode OrthancPluginSetAttachmentCustomData(OrthancPluginContext *context, const char *attachmentUuid, const void *customData, uint32_t customDataSize)
Update the custom data associated with an attachment in the Orthanc database.
Definition OrthancCPlugin.h:10075
OrthancPluginErrorCode OrthancPluginHttpDelete(OrthancPluginContext *context, const char *url, const char *username, const char *password)
Issue a HTTP DELETE call.
Definition OrthancCPlugin.h:4863
uint8_t(* OrthancPluginChunkedClientRequestIsDone)(void *request)
Callback to know whether the request body is entirely read during a chunked transfer.
Definition OrthancCPlugin.h:7802
const void *(* OrthancPluginChunkedClientRequestGetChunkData)(void *request)
Callback to read the current chunk of the request body during a chunked transfer.
Definition OrthancCPlugin.h:7835
OrthancPluginErrorCode OrthancPluginAdoptDicomInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *instanceId, OrthancPluginMemoryBuffer *attachmentUuid, OrthancPluginStoreStatus *storeStatus, const void *dicom, uint64_t dicomSize, const void *customData, uint32_t customDataSize)
Adopt a DICOM instance read from the filesystem.
Definition OrthancCPlugin.h:10000
OrthancPluginJob * OrthancPluginCreateJob(OrthancPluginContext *context, void *job, OrthancPluginJobFinalize finalize, const char *type, OrthancPluginJobGetProgress getProgress, OrthancPluginJobGetContent getContent, OrthancPluginJobGetSerialized getSerialized, OrthancPluginJobStep step, OrthancPluginJobStop stop, OrthancPluginJobReset reset)
Create a custom job.
Definition OrthancCPlugin.h:7168
void OrthancPluginFreeMemoryBuffer(OrthancPluginContext *context, OrthancPluginMemoryBuffer *buffer)
Free a memory buffer.
Definition OrthancCPlugin.h:2314
OrthancPluginErrorCode OrthancPluginEnqueueValue(OrthancPluginContext *context, const char *queueId, const void *value, uint32_t valueSize)
Append a value to the back of a queue.
Definition OrthancCPlugin.h:10379
char * OrthancPluginEncodeDicomWebXml(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback callback)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:7619
const char *(* OrthancPluginJobGetSerialized)(void *job)
Callback to serialize one custom job.
Definition OrthancCPlugin.h:1920
char * OrthancPluginGetConfiguration(OrthancPluginContext *context)
Return the content of the configuration file(s).
Definition OrthancCPlugin.h:4035
OrthancPluginKeysValuesIterator * OrthancPluginCreateKeysValuesIterator(OrthancPluginContext *context, const char *storeId)
Create an iterator over the key-value pairs of a key-value store in the Orthanc database.
Definition OrthancCPlugin.h:10218
OrthancPluginErrorCode OrthancPluginCreateMemoryBuffer64(OrthancPluginContext *context, OrthancPluginMemoryBuffer64 *target, uint64_t size)
Create a 64-bit memory buffer.
Definition OrthancCPlugin.h:9147
OrthancPluginLoadDicomInstanceMode
Definition OrthancCPlugin.h:1125
OrthancPluginStoreStatus
Definition OrthancCPlugin.h:1189
OrthancPluginErrorCode(* OrthancPluginChunkedClientAnswerAddHeader)(void *answer, const char *key, const char *value)
Callback executed when a HTTP header is received during a chunked transfer.
Definition OrthancCPlugin.h:7761
uint32_t OrthancPluginGetPeersCount(OrthancPluginContext *context, const OrthancPluginPeers *peers)
Get the number of Orthanc peers.
Definition OrthancCPlugin.h:6861
const char *(* OrthancPluginJobGetContent)(void *job)
Callback to retrieve the content of one custom job.
Definition OrthancCPlugin.h:1882
OrthancPluginValueRepresentation
Definition OrthancCPlugin.h:871
void OrthancPluginEmitAuditLog(OrthancPluginContext *context, const char *sourcePlugin, const char *userId, OrthancPluginResourceType resourceType, const char *resourceId, const char *action, const void *logData, uint32_t logDataSize)
Generate an audit log to signal security-related events.
Definition OrthancCPlugin.h:10629
char * OrthancPluginSubmitJob(OrthancPluginContext *context, OrthancPluginJob *job, int32_t priority)
Submit a new job to the jobs engine of Orthanc.
Definition OrthancCPlugin.h:7344
OrthancPluginErrorCode OrthancPluginKeysValuesIteratorGetValue(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginKeysValuesIterator *iterator)
Get the current value of an iterator over a key-value store.
Definition OrthancCPlugin.h:10349
OrthancPluginErrorCode OrthancPluginHttpGet(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *url, const char *username, const char *password)
Issue a HTTP GET call.
Definition OrthancCPlugin.h:4745
OrthancPluginJobStopReason
Definition OrthancCPlugin.h:1021
OrthancPluginErrorCode OrthancPluginDeleteKeyValue(OrthancPluginContext *context, const char *storeId, const char *key)
Delete a key-value pair from the Orthanc database.
Definition OrthancCPlugin.h:10141
char * OrthancPluginGetOrthancPath(OrthancPluginContext *context)
Return the path to the Orthanc executable.
Definition OrthancCPlugin.h:3560
OrthancPluginDicomToJsonFormat
Definition OrthancCPlugin.h:910
void OrthancPluginSetDescription2(OrthancPluginContext *context, const char *plugin, const char *description)
Set a description for this plugin.
Definition OrthancCPlugin.h:3781
OrthancPluginErrorCode OrthancPluginGetAttachmentCustomData(OrthancPluginContext *context, OrthancPluginMemoryBuffer *customData, const char *attachmentUuid)
Retrieve the custom data associated with an attachment in the Orthanc database.
Definition OrthancCPlugin.h:10042
void OrthancPluginLogError(OrthancPluginContext *context, const char *message)
Log an error.
Definition OrthancCPlugin.h:2347
char * OrthancPluginGetConfigurationPath(OrthancPluginContext *context)
Return the path to the configuration file(s).
Definition OrthancCPlugin.h:3625
OrthancPluginHttpMethod
Definition OrthancCPlugin.h:362
void OrthancPluginSetRootUri(OrthancPluginContext *context, const char *uri)
Set the URI where the plugin provides its Web interface.
Definition OrthancCPlugin.h:3706
char * OrthancPluginEncodeDicomWebXml2(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:7717
OrthancPluginErrorCode OrthancPluginCallPeerApi(OrthancPluginContext *context, OrthancPluginMemoryBuffer *answerBody, OrthancPluginMemoryBuffer *answerHeaders, uint16_t *httpStatus, const OrthancPluginPeers *peers, uint32_t peerIndex, OrthancPluginHttpMethod method, const char *uri, uint32_t additionalHeadersCount, const char *const *additionalHeadersKeys, const char *const *additionalHeadersValues, const void *body, uint32_t bodySize, uint32_t timeout)
Call the REST API of an Orthanc peer.
Definition OrthancCPlugin.h:7081
struct _OrthancPluginFindMatcher_t OrthancPluginFindMatcher
Opaque structure to an object that can be used to check whether a DICOM instance matches a C-Find que...
Definition OrthancCPlugin.h:1353
char * OrthancPluginEncodeDicomWebJson2(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:7672
OrthancPluginErrorCode OrthancPluginLookupDictionary(OrthancPluginContext *context, OrthancPluginDictionaryEntry *target, const char *name)
Get information about the given DICOM tag.
Definition OrthancCPlugin.h:6102
OrthancPluginErrorCode OrthancPluginGetQueueSize(OrthancPluginContext *context, const char *queueId, uint64_t *size)
Get the number of elements in a queue.
Definition OrthancCPlugin.h:10446
OrthancPluginInstanceOrigin
Definition OrthancCPlugin.h:991
void(* OrthancPluginJobFinalize)(void *job)
Callback to finalize one custom job.
Definition OrthancCPlugin.h:1853
void OrthancPluginFreeString(OrthancPluginContext *context, char *str)
Free a string.
Definition OrthancCPlugin.h:2149
OrthancPluginErrorCode OrthancPluginSetCurrentThreadName(OrthancPluginContext *context, const char *threadName)
Set the name of the current thread.
Definition OrthancCPlugin.h:9834
OrthancPluginErrorCode(* OrthancPluginJobReset)(void *job)
Callback executed once one stopped custom job is started again.
Definition OrthancCPlugin.h:1997
const char * OrthancPluginGetErrorDescription(OrthancPluginContext *context, OrthancPluginErrorCode error)
Get the description of a given error code.
Definition OrthancCPlugin.h:4246
struct _OrthancPluginContext_t OrthancPluginContext
Data structure that contains information about the Orthanc core.
OrthancPluginContentType
Definition OrthancCPlugin.h:778
const char * OrthancPluginGetPeerUrl(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the base URL of an Orthanc peer.
Definition OrthancCPlugin.h:6952
void OrthancPluginSetDescription(OrthancPluginContext *context, const char *description)
Set a description for this plugin.
Definition OrthancCPlugin.h:3758
OrthancPluginStableStatus
Definition OrthancCPlugin.h:1216
char * OrthancPluginGetTagName(OrthancPluginContext *context, uint16_t group, uint16_t element, const char *privateCreator)
Returns the symbolic name of a DICOM tag.
Definition OrthancCPlugin.h:8167
@ OrthancPluginLogLevel_Warning
Definition OrthancCPlugin.h:1157
@ OrthancPluginLogLevel_Trace
Definition OrthancCPlugin.h:1159
@ OrthancPluginLogLevel_Error
Definition OrthancCPlugin.h:1156
@ OrthancPluginLogLevel_Info
Definition OrthancCPlugin.h:1158
@ OrthancPluginIdentifierConstraint_Wildcard
Definition OrthancCPlugin.h:965
@ OrthancPluginIdentifierConstraint_Equal
Definition OrthancCPlugin.h:962
@ OrthancPluginIdentifierConstraint_SmallerOrEqual
Definition OrthancCPlugin.h:963
@ OrthancPluginIdentifierConstraint_GreaterOrEqual
Definition OrthancCPlugin.h:964
@ OrthancPluginResourceType_Instance
Definition OrthancCPlugin.h:797
@ OrthancPluginResourceType_None
Definition OrthancCPlugin.h:798
@ OrthancPluginResourceType_Series
Definition OrthancCPlugin.h:796
@ OrthancPluginResourceType_Study
Definition OrthancCPlugin.h:795
@ OrthancPluginResourceType_Patient
Definition OrthancCPlugin.h:794
@ OrthancPluginLogCategory_Dicom
Definition OrthancCPlugin.h:1177
@ OrthancPluginLogCategory_Jobs
Definition OrthancCPlugin.h:1178
@ OrthancPluginLogCategory_Sqlite
Definition OrthancCPlugin.h:1176
@ OrthancPluginLogCategory_Plugins
Definition OrthancCPlugin.h:1174
@ OrthancPluginLogCategory_Generic
Definition OrthancCPlugin.h:1173
@ OrthancPluginLogCategory_Lua
Definition OrthancCPlugin.h:1179
@ OrthancPluginLogCategory_Http
Definition OrthancCPlugin.h:1175
@ OrthancPluginErrorCode_CreateDicomBadParent
Definition OrthancCPlugin.h:323
@ OrthancPluginErrorCode_MainDicomTagsMultiplyDefined
Definition OrthancCPlugin.h:279
@ OrthancPluginErrorCode_SQLiteFlush
Definition OrthancCPlugin.h:291
@ OrthancPluginErrorCode_IncompatibleDatabaseVersion
Definition OrthancCPlugin.h:253
@ OrthancPluginErrorCode_BadSequenceOfCalls
Definition OrthancCPlugin.h:241
@ OrthancPluginErrorCode_SharedLibrary
Definition OrthancCPlugin.h:260
@ OrthancPluginErrorCode_NullPointer
Definition OrthancCPlugin.h:270
@ OrthancPluginErrorCode_NotLuaPredicate
Definition OrthancCPlugin.h:333
@ OrthancPluginErrorCode_LuaAlreadyExecuted
Definition OrthancCPlugin.h:331
@ OrthancPluginErrorCode_NotAcceptable
Definition OrthancCPlugin.h:269
@ OrthancPluginErrorCode_FullStorage
Definition OrthancCPlugin.h:254
@ OrthancPluginErrorCode_DatabaseBackendAlreadyRegistered
Definition OrthancCPlugin.h:336
@ OrthancPluginErrorCode_InexistentFile
Definition OrthancCPlugin.h:248
@ OrthancPluginErrorCode_CreateDicomParentEncoding
Definition OrthancCPlugin.h:325
@ OrthancPluginErrorCode_CannotOrderSlices
Definition OrthancCPlugin.h:339
@ OrthancPluginErrorCode_InternalError
Definition OrthancCPlugin.h:234
@ OrthancPluginErrorCode_DiscontinuedAbi
Definition OrthancCPlugin.h:275
@ OrthancPluginErrorCode_NoCFindHandler
Definition OrthancCPlugin.h:309
@ OrthancPluginErrorCode_SQLiteCommitWithoutTransaction
Definition OrthancCPlugin.h:289
@ OrthancPluginErrorCode_DatabasePlugin
Definition OrthancCPlugin.h:266
@ OrthancPluginErrorCode_SQLiteStatementAlreadyUsed
Definition OrthancCPlugin.h:286
@ OrthancPluginErrorCode_SQLiteCannotRun
Definition OrthancCPlugin.h:292
@ OrthancPluginErrorCode_UnknownPluginService
Definition OrthancCPlugin.h:261
@ OrthancPluginErrorCode_JsonToLuaTable
Definition OrthancCPlugin.h:328
@ OrthancPluginErrorCode_CreateDicomOverrideTag
Definition OrthancCPlugin.h:319
@ OrthancPluginErrorCode_SQLiteBindOutOfRange
Definition OrthancCPlugin.h:294
@ OrthancPluginErrorCode_ParameterOutOfRange
Definition OrthancCPlugin.h:238
@ OrthancPluginErrorCode_SQLiteRegisterFunction
Definition OrthancCPlugin.h:290
@ OrthancPluginErrorCode_SQLiteTransactionBegin
Definition OrthancCPlugin.h:298
@ OrthancPluginErrorCode_CreateDicomNoPayload
Definition OrthancCPlugin.h:321
@ OrthancPluginErrorCode_Unauthorized
Definition OrthancCPlugin.h:264
@ OrthancPluginErrorCode_RegularFileExpected
Definition OrthancCPlugin.h:305
@ OrthancPluginErrorCode_DicomPortInUse
Definition OrthancCPlugin.h:303
@ OrthancPluginErrorCode_BadApplicationEntityTitle
Definition OrthancCPlugin.h:308
@ OrthancPluginErrorCode_NoCStoreHandler
Definition OrthancCPlugin.h:311
@ OrthancPluginErrorCode_PathToExecutable
Definition OrthancCPlugin.h:306
@ OrthancPluginErrorCode_NoSopClassOrInstance
Definition OrthancCPlugin.h:313
@ OrthancPluginErrorCode_BadFont
Definition OrthancCPlugin.h:265
@ OrthancPluginErrorCode_DicomGetUnavailable
Definition OrthancCPlugin.h:344
@ OrthancPluginErrorCode_DatabaseUnavailable
Definition OrthancCPlugin.h:271
@ OrthancPluginErrorCode_CannotCreateLua
Definition OrthancCPlugin.h:329
@ OrthancPluginErrorCode_SQLiteExecute
Definition OrthancCPlugin.h:287
@ OrthancPluginErrorCode_UriSyntax
Definition OrthancCPlugin.h:247
@ OrthancPluginErrorCode_DirectoryOverFile
Definition OrthancCPlugin.h:299
@ OrthancPluginErrorCode_Revision
Definition OrthancCPlugin.h:278
@ OrthancPluginErrorCode_InexistentTag
Definition OrthancCPlugin.h:256
@ OrthancPluginErrorCode_IncompatibleImageFormat
Definition OrthancCPlugin.h:258
@ OrthancPluginErrorCode_UnsupportedMediaType
Definition OrthancCPlugin.h:345
@ OrthancPluginErrorCode_DicomFindUnavailable
Definition OrthancCPlugin.h:315
@ OrthancPluginErrorCode_SQLiteCannotStep
Definition OrthancCPlugin.h:293
@ OrthancPluginErrorCode_CreateDicomParentIsInstance
Definition OrthancCPlugin.h:324
@ OrthancPluginErrorCode_DuplicateResource
Definition OrthancCPlugin.h:281
@ OrthancPluginErrorCode_StorageAreaAlreadyRegistered
Definition OrthancCPlugin.h:335
@ OrthancPluginErrorCode_LuaReturnsNoString
Definition OrthancCPlugin.h:334
@ OrthancPluginErrorCode_UnknownResource
Definition OrthancCPlugin.h:252
@ OrthancPluginErrorCode_CreateDicomNotString
Definition OrthancCPlugin.h:318
@ OrthancPluginErrorCode_HttpPortInUse
Definition OrthancCPlugin.h:302
@ OrthancPluginErrorCode_SslDisabled
Definition OrthancCPlugin.h:338
@ OrthancPluginErrorCode_UnknownModality
Definition OrthancCPlugin.h:326
@ OrthancPluginErrorCode_BadHttpStatusInRest
Definition OrthancCPlugin.h:304
@ OrthancPluginErrorCode_BadGeometry
Definition OrthancCPlugin.h:273
@ OrthancPluginErrorCode_AlreadyExistingTag
Definition OrthancCPlugin.h:341
@ OrthancPluginErrorCode_FileStorageCannotWrite
Definition OrthancCPlugin.h:300
@ OrthancPluginErrorCode_CreateDicomUseDataUriScheme
Definition OrthancCPlugin.h:322
@ OrthancPluginErrorCode_DirectoryExpected
Definition OrthancCPlugin.h:301
@ OrthancPluginErrorCode_NoCMoveHandler
Definition OrthancCPlugin.h:310
@ OrthancPluginErrorCode_SQLitePrepareStatement
Definition OrthancCPlugin.h:295
@ OrthancPluginErrorCode_CorruptedFile
Definition OrthancCPlugin.h:255
@ OrthancPluginErrorCode_StorageAreaPlugin
Definition OrthancCPlugin.h:267
@ OrthancPluginErrorCode_BadJobOrdering
Definition OrthancCPlugin.h:327
@ OrthancPluginErrorCode_IncompatibleConfigurations
Definition OrthancCPlugin.h:282
@ OrthancPluginErrorCode_DatabaseCannotSerialize
Definition OrthancCPlugin.h:277
@ OrthancPluginErrorCode_CanceledJob
Definition OrthancCPlugin.h:272
@ OrthancPluginErrorCode_BadRange
Definition OrthancCPlugin.h:276
@ OrthancPluginErrorCode_NotImplemented
Definition OrthancCPlugin.h:237
@ OrthancPluginErrorCode_SslInitialization
Definition OrthancCPlugin.h:274
@ OrthancPluginErrorCode_IncompatibleImageSize
Definition OrthancCPlugin.h:259
@ OrthancPluginErrorCode_BadFileFormat
Definition OrthancCPlugin.h:250
@ OrthancPluginErrorCode_BadRequest
Definition OrthancCPlugin.h:243
@ OrthancPluginErrorCode_SystemCommand
Definition OrthancCPlugin.h:245
@ OrthancPluginErrorCode_NoStorageCommitmentHandler
Definition OrthancCPlugin.h:342
@ OrthancPluginErrorCode_SQLiteAlreadyOpened
Definition OrthancCPlugin.h:284
@ OrthancPluginErrorCode_Plugin
Definition OrthancCPlugin.h:236
@ OrthancPluginErrorCode_CannotExecuteLua
Definition OrthancCPlugin.h:330
@ OrthancPluginErrorCode_SQLiteRollbackWithoutTransaction
Definition OrthancCPlugin.h:288
@ OrthancPluginErrorCode_UnknownDicomTag
Definition OrthancCPlugin.h:262
@ OrthancPluginErrorCode_ForbiddenAccess
Definition OrthancCPlugin.h:280
@ OrthancPluginErrorCode_NoPresentationContext
Definition OrthancCPlugin.h:314
@ OrthancPluginErrorCode_EmptyRequest
Definition OrthancCPlugin.h:268
@ OrthancPluginErrorCode_DatabaseNotInitialized
Definition OrthancCPlugin.h:337
@ OrthancPluginErrorCode_DicomMoveUnavailable
Definition OrthancCPlugin.h:316
@ OrthancPluginErrorCode_SQLiteTransactionCommit
Definition OrthancCPlugin.h:297
@ OrthancPluginErrorCode_BadJson
Definition OrthancCPlugin.h:263
@ OrthancPluginErrorCode_Success
Definition OrthancCPlugin.h:235
@ OrthancPluginErrorCode_NetworkProtocol
Definition OrthancCPlugin.h:244
@ OrthancPluginErrorCode_NoApplicationEntityFilter
Definition OrthancCPlugin.h:312
@ OrthancPluginErrorCode_InexistentItem
Definition OrthancCPlugin.h:242
@ OrthancPluginErrorCode_Timeout
Definition OrthancCPlugin.h:251
@ OrthancPluginErrorCode_LuaBadOutput
Definition OrthancCPlugin.h:332
@ OrthancPluginErrorCode_SQLiteTransactionAlreadyStarted
Definition OrthancCPlugin.h:296
@ OrthancPluginErrorCode_NoCGetHandler
Definition OrthancCPlugin.h:343
@ OrthancPluginErrorCode_SQLiteNotOpened
Definition OrthancCPlugin.h:283
@ OrthancPluginErrorCode_ReadOnly
Definition OrthancCPlugin.h:257
@ OrthancPluginErrorCode_CannotStoreInstance
Definition OrthancCPlugin.h:317
@ OrthancPluginErrorCode_CannotWriteFile
Definition OrthancCPlugin.h:249
@ OrthancPluginErrorCode_BadParameterType
Definition OrthancCPlugin.h:240
@ OrthancPluginErrorCode_NotEnoughMemory
Definition OrthancCPlugin.h:239
@ OrthancPluginErrorCode_CreateDicomUseContent
Definition OrthancCPlugin.h:320
@ OrthancPluginErrorCode_Database
Definition OrthancCPlugin.h:246
@ OrthancPluginErrorCode_SQLiteCannotOpen
Definition OrthancCPlugin.h:285
@ OrthancPluginErrorCode_MakeDirectory
Definition OrthancCPlugin.h:307
@ OrthancPluginErrorCode_NoWorklistHandler
Definition OrthancCPlugin.h:340
@ OrthancPluginDicomWebBinaryMode_InlineBinary
Definition OrthancCPlugin.h:1052
@ OrthancPluginDicomWebBinaryMode_BulkDataUri
Definition OrthancCPlugin.h:1053
@ OrthancPluginDicomWebBinaryMode_Ignore
Definition OrthancCPlugin.h:1051
@ OrthancPluginHttpAuthenticationStatus_Forbidden
Definition OrthancCPlugin.h:1231
@ OrthancPluginHttpAuthenticationStatus_Redirect
Definition OrthancCPlugin.h:1232
@ OrthancPluginHttpAuthenticationStatus_Unauthorized
Definition OrthancCPlugin.h:1230
@ OrthancPluginHttpAuthenticationStatus_Granted
Definition OrthancCPlugin.h:1229
@ OrthancPluginDicomToJsonFlags_ConvertBinaryToAscii
Definition OrthancCPlugin.h:931
@ OrthancPluginDicomToJsonFlags_IncludeBinary
Definition OrthancCPlugin.h:927
@ OrthancPluginDicomToJsonFlags_IncludePixelData
Definition OrthancCPlugin.h:930
@ OrthancPluginDicomToJsonFlags_IncludeUnknownTags
Definition OrthancCPlugin.h:929
@ OrthancPluginDicomToJsonFlags_SkipGroupLengths
Definition OrthancCPlugin.h:934
@ OrthancPluginDicomToJsonFlags_None
Definition OrthancCPlugin.h:926
@ OrthancPluginDicomToJsonFlags_ConvertBinaryToNull
Definition OrthancCPlugin.h:932
@ OrthancPluginDicomToJsonFlags_StopAfterPixelData
Definition OrthancCPlugin.h:933
@ OrthancPluginDicomToJsonFlags_IncludePrivateTags
Definition OrthancCPlugin.h:928
@ OrthancPluginJobStepStatus_Continue
Definition OrthancCPlugin.h:1010
@ OrthancPluginJobStepStatus_Success
Definition OrthancCPlugin.h:1008
@ OrthancPluginJobStepStatus_Failure
Definition OrthancCPlugin.h:1009
@ OrthancPluginCreateDicomFlags_DecodeDataUriScheme
Definition OrthancCPlugin.h:948
@ OrthancPluginCreateDicomFlags_None
Definition OrthancCPlugin.h:947
@ OrthancPluginCreateDicomFlags_GenerateIdentifiers
Definition OrthancCPlugin.h:949
@ OrthancPluginQueueOrigin_Front
Definition OrthancCPlugin.h:1205
@ OrthancPluginQueueOrigin_Back
Definition OrthancCPlugin.h:1206
@ OrthancPluginConstraintType_SmallerOrEqual
Definition OrthancCPlugin.h:978
@ OrthancPluginConstraintType_List
Definition OrthancCPlugin.h:981
@ OrthancPluginConstraintType_GreaterOrEqual
Definition OrthancCPlugin.h:979
@ OrthancPluginConstraintType_Equal
Definition OrthancCPlugin.h:977
@ OrthancPluginConstraintType_Wildcard
Definition OrthancCPlugin.h:980
@ OrthancPluginReceivedInstanceAction_KeepAsIs
Definition OrthancCPlugin.h:1112
@ OrthancPluginReceivedInstanceAction_Discard
Definition OrthancCPlugin.h:1114
@ OrthancPluginReceivedInstanceAction_Modify
Definition OrthancCPlugin.h:1113
@ OrthancPluginStorageCommitmentFailureReason_ReferencedSOPClassNotSupported
Definition OrthancCPlugin.h:1090
@ OrthancPluginStorageCommitmentFailureReason_Success
Definition OrthancCPlugin.h:1067
@ OrthancPluginStorageCommitmentFailureReason_DuplicateTransactionUID
Definition OrthancCPlugin.h:1103
@ OrthancPluginStorageCommitmentFailureReason_ClassInstanceConflict
Definition OrthancCPlugin.h:1097
@ OrthancPluginStorageCommitmentFailureReason_ResourceLimitation
Definition OrthancCPlugin.h:1084
@ OrthancPluginStorageCommitmentFailureReason_NoSuchObjectInstance
Definition OrthancCPlugin.h:1078
@ OrthancPluginStorageCommitmentFailureReason_ProcessingFailure
Definition OrthancCPlugin.h:1072
@ OrthancPluginMetricsType_Default
Definition OrthancCPlugin.h:1034
@ OrthancPluginMetricsType_Timer
Definition OrthancCPlugin.h:1041
@ OrthancPluginLoadDicomInstanceMode_UntilPixelData
Definition OrthancCPlugin.h:1135
@ OrthancPluginLoadDicomInstanceMode_WholeDicom
Definition OrthancCPlugin.h:1129
@ OrthancPluginLoadDicomInstanceMode_EmptyPixelData
Definition OrthancCPlugin.h:1142
@ OrthancPluginStoreStatus_Success
Definition OrthancCPlugin.h:1190
@ OrthancPluginStoreStatus_FilteredOut
Definition OrthancCPlugin.h:1193
@ OrthancPluginStoreStatus_StorageFull
Definition OrthancCPlugin.h:1194
@ OrthancPluginStoreStatus_Failure
Definition OrthancCPlugin.h:1192
@ OrthancPluginStoreStatus_AlreadyStored
Definition OrthancCPlugin.h:1191
@ OrthancPluginValueRepresentation_PN
Definition OrthancCPlugin.h:887
@ OrthancPluginValueRepresentation_UL
Definition OrthancCPlugin.h:895
@ OrthancPluginValueRepresentation_UN
Definition OrthancCPlugin.h:896
@ OrthancPluginValueRepresentation_DA
Definition OrthancCPlugin.h:876
@ OrthancPluginValueRepresentation_OF
Definition OrthancCPlugin.h:885
@ OrthancPluginValueRepresentation_OW
Definition OrthancCPlugin.h:886
@ OrthancPluginValueRepresentation_CS
Definition OrthancCPlugin.h:875
@ OrthancPluginValueRepresentation_US
Definition OrthancCPlugin.h:897
@ OrthancPluginValueRepresentation_SH
Definition OrthancCPlugin.h:888
@ OrthancPluginValueRepresentation_FL
Definition OrthancCPlugin.h:880
@ OrthancPluginValueRepresentation_DT
Definition OrthancCPlugin.h:878
@ OrthancPluginValueRepresentation_TM
Definition OrthancCPlugin.h:893
@ OrthancPluginValueRepresentation_SQ
Definition OrthancCPlugin.h:890
@ OrthancPluginValueRepresentation_DS
Definition OrthancCPlugin.h:877
@ OrthancPluginValueRepresentation_OB
Definition OrthancCPlugin.h:884
@ OrthancPluginValueRepresentation_SL
Definition OrthancCPlugin.h:889
@ OrthancPluginValueRepresentation_ST
Definition OrthancCPlugin.h:892
@ OrthancPluginValueRepresentation_IS
Definition OrthancCPlugin.h:881
@ OrthancPluginValueRepresentation_LT
Definition OrthancCPlugin.h:883
@ OrthancPluginValueRepresentation_SS
Definition OrthancCPlugin.h:891
@ OrthancPluginValueRepresentation_UT
Definition OrthancCPlugin.h:898
@ OrthancPluginValueRepresentation_LO
Definition OrthancCPlugin.h:882
@ OrthancPluginValueRepresentation_AE
Definition OrthancCPlugin.h:872
@ OrthancPluginValueRepresentation_FD
Definition OrthancCPlugin.h:879
@ OrthancPluginValueRepresentation_UI
Definition OrthancCPlugin.h:894
@ OrthancPluginValueRepresentation_AS
Definition OrthancCPlugin.h:873
@ OrthancPluginValueRepresentation_AT
Definition OrthancCPlugin.h:874
@ OrthancPluginJobStopReason_Failure
Definition OrthancCPlugin.h:1024
@ OrthancPluginJobStopReason_Success
Definition OrthancCPlugin.h:1022
@ OrthancPluginJobStopReason_Canceled
Definition OrthancCPlugin.h:1025
@ OrthancPluginJobStopReason_Paused
Definition OrthancCPlugin.h:1023
@ OrthancPluginDicomToJsonFormat_Full
Definition OrthancCPlugin.h:911
@ OrthancPluginDicomToJsonFormat_Human
Definition OrthancCPlugin.h:913
@ OrthancPluginDicomToJsonFormat_Short
Definition OrthancCPlugin.h:912
@ OrthancPluginHttpMethod_Delete
Definition OrthancCPlugin.h:366
@ OrthancPluginHttpMethod_Post
Definition OrthancCPlugin.h:364
@ OrthancPluginHttpMethod_Put
Definition OrthancCPlugin.h:365
@ OrthancPluginHttpMethod_Get
Definition OrthancCPlugin.h:363
@ OrthancPluginInstanceOrigin_Unknown
Definition OrthancCPlugin.h:992
@ OrthancPluginInstanceOrigin_RestApi
Definition OrthancCPlugin.h:994
@ OrthancPluginInstanceOrigin_Lua
Definition OrthancCPlugin.h:996
@ OrthancPluginInstanceOrigin_WebDav
Definition OrthancCPlugin.h:997
@ OrthancPluginInstanceOrigin_DicomProtocol
Definition OrthancCPlugin.h:993
@ OrthancPluginInstanceOrigin_Plugin
Definition OrthancCPlugin.h:995
@ OrthancPluginContentType_Dicom
Definition OrthancCPlugin.h:780
@ OrthancPluginContentType_DicomAsJson
Definition OrthancCPlugin.h:781
@ OrthancPluginContentType_Unknown
Definition OrthancCPlugin.h:779
@ OrthancPluginContentType_DicomUntilPixelData
Definition OrthancCPlugin.h:782
@ OrthancPluginStableStatus_Unstable
Definition OrthancCPlugin.h:1218
@ OrthancPluginStableStatus_Stable
Definition OrthancCPlugin.h:1217
An entry in the dictionary of DICOM tags.
Definition OrthancCPlugin.h:2131
uint32_t minMultiplicity
Definition OrthancCPlugin.h:2135
uint32_t maxMultiplicity
Definition OrthancCPlugin.h:2136
OrthancPluginValueRepresentation vr
Definition OrthancCPlugin.h:2134
uint16_t element
Definition OrthancCPlugin.h:2133
uint16_t group
Definition OrthancCPlugin.h:2132
The parameters of a REST request.
Definition OrthancCPlugin.h:377
uint32_t authenticationPayloadSize
The size of the custom authentication payload (0 if no authentication callback is registered).
Definition OrthancCPlugin.h:453
const char *const * getValues
For a GET request, the values of the GET parameters.
Definition OrthancCPlugin.h:406
const char *const * groups
The matched values for the groups of the regular expression.
Definition OrthancCPlugin.h:391
const void * authenticationPayload
If a HTTP authentication callback is registered, the content of the custom payload generated by the c...
Definition OrthancCPlugin.h:447
uint32_t bodySize
For a PUT or POST request, the number of bytes of the body.
Definition OrthancCPlugin.h:416
uint32_t groupsCount
The number of groups of the regular expression.
Definition OrthancCPlugin.h:386
const char *const * headersKeys
The keys of the HTTP headers (always converted to low-case).
Definition OrthancCPlugin.h:431
const void * body
For a PUT or POST request, the content of the body.
Definition OrthancCPlugin.h:411
const char *const * getKeys
For a GET request, the keys of the GET parameters.
Definition OrthancCPlugin.h:401
uint32_t headersCount
The number of HTTP headers.
Definition OrthancCPlugin.h:426
OrthancPluginHttpMethod method
The HTTP method.
Definition OrthancCPlugin.h:381
uint32_t getCount
For a GET request, the number of GET parameters.
Definition OrthancCPlugin.h:396
const char *const * headersValues
The values of the HTTP headers.
Definition OrthancCPlugin.h:436
A 64-bit memory buffer allocated by the core system of Orthanc.
Definition OrthancCPlugin.h:1268
uint64_t size
The number of bytes in the buffer.
Definition OrthancCPlugin.h:1277
void * data
The content of the buffer.
Definition OrthancCPlugin.h:1272
A 32-bit memory buffer allocated by the core system of Orthanc.
Definition OrthancCPlugin.h:1246
uint32_t size
The number of bytes in the buffer.
Definition OrthancCPlugin.h:1255
void * data
The content of the buffer.
Definition OrthancCPlugin.h:1250