Orthanc Plugin SDK 1.12.10
Documentation of the plugin interface of Orthanc
OrthancCPlugin.h
1
54
55
56
79
80
81
86
87
88
110
111
112
113#pragma once
114
115
116#include <stdio.h>
117#include <string.h>
118
119#ifdef _WIN32
120# define ORTHANC_PLUGINS_API __declspec(dllexport)
121#elif __GNUC__ >= 4
122# define ORTHANC_PLUGINS_API __attribute__ ((visibility ("default")))
123#else
124# define ORTHANC_PLUGINS_API
125#endif
126
127#define ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER 1
128#define ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER 12
129#define ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER 10
130
131
132#if !defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE)
133#define ORTHANC_PLUGINS_VERSION_IS_ABOVE(major, minor, revision) \
134 (ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER > major || \
135 (ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER == major && \
136 (ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER > minor || \
137 (ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER == minor && \
138 ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER >= revision))))
139#endif
140
141
142
143/********************************************************************
144 ** Check that function inlining is properly supported. The use of
145 ** inlining is required, to avoid the duplication of object code
146 ** between two compilation modules that would use the Orthanc Plugin
147 ** API.
148 ********************************************************************/
149
150/* If the auto-detection of the "inline" keyword below does not work
151 automatically and that your compiler is known to properly support
152 inlining, uncomment the following #define and adapt the definition
153 of "static inline". */
154
155/* #define ORTHANC_PLUGIN_INLINE static inline */
156
157#ifndef ORTHANC_PLUGIN_INLINE
158# if __STDC_VERSION__ >= 199901L
159/* This is C99 or above: http://predef.sourceforge.net/prestd.html */
160# define ORTHANC_PLUGIN_INLINE static inline
161# elif defined(__cplusplus)
162/* This is C++ */
163# define ORTHANC_PLUGIN_INLINE static inline
164# elif defined(__GNUC__)
165/* This is GCC running in C89 mode */
166# define ORTHANC_PLUGIN_INLINE static __inline
167# elif defined(_MSC_VER)
168/* This is Visual Studio running in C89 mode */
169# define ORTHANC_PLUGIN_INLINE static __inline
170# else
171# error Your compiler is not known to support the "inline" keyword
172# endif
173#endif
174
175
176#ifndef ORTHANC_PLUGIN_DEPRECATED
177# if defined(_MSC_VER)
178# define ORTHANC_PLUGIN_DEPRECATED __declspec(deprecated)
179# elif __GNUC__ >= 4
180# define ORTHANC_PLUGIN_DEPRECATED __attribute__ ((deprecated))
181# elif defined(__clang__)
182# define ORTHANC_PLUGIN_DEPRECATED __attribute__ ((deprecated))
183# else
184# pragma message("WARNING: You need to implement ORTHANC_PLUGINS_DEPRECATED for this compiler")
185# define ORTHANC_PLUGIN_DEPRECATED
186# endif
187#endif
188
189
190#ifndef ORTHANC_PLUGIN_SINCE_SDK
197# if defined(__clang__)
198# define ORTHANC_PLUGIN_SINCE_SDK(version) __attribute__ ((annotate("ORTHANC_PLUGIN_SINCE_SDK " version)))
199# else
200# define ORTHANC_PLUGIN_SINCE_SDK(version)
201# endif
202#endif
203
204
205
206/********************************************************************
207 ** Inclusion of standard libraries.
208 ********************************************************************/
209
215#include <stdint.h>
216
217#include <stdlib.h>
218
219
220
221/********************************************************************
222 ** Definition of the Orthanc Plugin API.
223 ********************************************************************/
224
226
227#ifdef __cplusplus
228extern "C"
229{
230#endif
231
235 typedef enum
236 {
349
350 _OrthancPluginErrorCode_INTERNAL = 0x7fffffff
352
353
358 ORTHANC_PLUGINS_API const char* OrthancPluginGetName();
359
360
364 typedef enum
365 {
370
371 _OrthancPluginHttpMethod_INTERNAL = 0x7fffffff
373
374
379 typedef struct
380 {
385
389 uint32_t groupsCount;
390
394 const char* const* groups;
395
399 uint32_t getCount;
400
404 const char* const* getKeys;
405
409 const char* const* getValues;
410
414 const void* body;
415
419 uint32_t bodySize;
420
421
422 /* --------------------------------------------------
423 New in version 0.8.1
424 -------------------------------------------------- */
425
429 uint32_t headersCount;
430
434 const char* const* headersKeys;
435
439 const char* const* headersValues;
440
441
442 /* --------------------------------------------------
443 New in version 1.12.9
444 -------------------------------------------------- */
445
451
457
459
460
461 typedef enum
462 {
463 /* Generic services */
464 _OrthancPluginService_LogInfo = 1,
465 _OrthancPluginService_LogWarning = 2,
466 _OrthancPluginService_LogError = 3,
467 _OrthancPluginService_GetOrthancPath = 4,
468 _OrthancPluginService_GetOrthancDirectory = 5,
469 _OrthancPluginService_GetConfigurationPath = 6,
470 _OrthancPluginService_SetPluginProperty = 7,
471 _OrthancPluginService_GetGlobalProperty = 8,
472 _OrthancPluginService_SetGlobalProperty = 9,
473 _OrthancPluginService_GetCommandLineArgumentsCount = 10,
474 _OrthancPluginService_GetCommandLineArgument = 11,
475 _OrthancPluginService_GetExpectedDatabaseVersion = 12,
476 _OrthancPluginService_GetConfiguration = 13,
477 _OrthancPluginService_BufferCompression = 14,
478 _OrthancPluginService_ReadFile = 15,
479 _OrthancPluginService_WriteFile = 16,
480 _OrthancPluginService_GetErrorDescription = 17,
481 _OrthancPluginService_CallHttpClient = 18,
482 _OrthancPluginService_RegisterErrorCode = 19,
483 _OrthancPluginService_RegisterDictionaryTag = 20,
484 _OrthancPluginService_DicomBufferToJson = 21,
485 _OrthancPluginService_DicomInstanceToJson = 22,
486 _OrthancPluginService_CreateDicom = 23,
487 _OrthancPluginService_ComputeMd5 = 24,
488 _OrthancPluginService_ComputeSha1 = 25,
489 _OrthancPluginService_LookupDictionary = 26,
490 _OrthancPluginService_CallHttpClient2 = 27,
491 _OrthancPluginService_GenerateUuid = 28,
492 _OrthancPluginService_RegisterPrivateDictionaryTag = 29,
493 _OrthancPluginService_AutodetectMimeType = 30,
494 _OrthancPluginService_SetMetricsValue = 31,
495 _OrthancPluginService_EncodeDicomWebJson = 32,
496 _OrthancPluginService_EncodeDicomWebXml = 33,
497 _OrthancPluginService_ChunkedHttpClient = 34, /* New in Orthanc 1.5.7 */
498 _OrthancPluginService_GetTagName = 35, /* New in Orthanc 1.5.7 */
499 _OrthancPluginService_EncodeDicomWebJson2 = 36, /* New in Orthanc 1.7.0 */
500 _OrthancPluginService_EncodeDicomWebXml2 = 37, /* New in Orthanc 1.7.0 */
501 _OrthancPluginService_CreateMemoryBuffer = 38, /* New in Orthanc 1.7.0 */
502 _OrthancPluginService_GenerateRestApiAuthorizationToken = 39, /* New in Orthanc 1.8.1 */
503 _OrthancPluginService_CreateMemoryBuffer64 = 40, /* New in Orthanc 1.9.0 */
504 _OrthancPluginService_CreateDicom2 = 41, /* New in Orthanc 1.9.0 */
505 _OrthancPluginService_GetDatabaseServerIdentifier = 42, /* New in Orthanc 1.11.1 */
506 _OrthancPluginService_SetMetricsIntegerValue = 43, /* New in Orthanc 1.12.1 */
507 _OrthancPluginService_SetCurrentThreadName = 44, /* New in Orthanc 1.12.2 */
508 _OrthancPluginService_LogMessage = 45, /* New in Orthanc 1.12.4 */
509 _OrthancPluginService_AdoptDicomInstance = 46, /* New in Orthanc 1.12.8 */
510 _OrthancPluginService_GetAttachmentCustomData = 47, /* New in Orthanc 1.12.8 */
511 _OrthancPluginService_SetAttachmentCustomData = 48, /* New in Orthanc 1.12.8 */
512 _OrthancPluginService_StoreKeyValue = 49, /* New in Orthanc 1.12.8 */
513 _OrthancPluginService_DeleteKeyValue = 50, /* New in Orthanc 1.12.8 */
514 _OrthancPluginService_GetKeyValue = 51, /* New in Orthanc 1.12.8 */
515 _OrthancPluginService_CreateKeysValuesIterator = 52, /* New in Orthanc 1.12.8 */
516 _OrthancPluginService_FreeKeysValuesIterator = 53, /* New in Orthanc 1.12.8 */
517 _OrthancPluginService_KeysValuesIteratorNext = 54, /* New in Orthanc 1.12.8 */
518 _OrthancPluginService_KeysValuesIteratorGetKey = 55, /* New in Orthanc 1.12.8 */
519 _OrthancPluginService_KeysValuesIteratorGetValue = 56, /* New in Orthanc 1.12.8 */
520 _OrthancPluginService_EnqueueValue = 57, /* New in Orthanc 1.12.8 */
521 _OrthancPluginService_DequeueValue = 58, /* New in Orthanc 1.12.8 */
522 _OrthancPluginService_GetQueueSize = 59, /* New in Orthanc 1.12.8 */
523 _OrthancPluginService_SetStableStatus = 60, /* New in Orthanc 1.12.9 */
524 _OrthancPluginService_EmitAuditLog = 61, /* New in Orthanc 1.12.9 */
525 _OrthancPluginService_ReserveQueueValue = 62, /* New in Orthanc 1.12.10 */
526 _OrthancPluginService_AcknowledgeQueueValue = 63, /* New in Orthanc 1.12.10 */
527
528 /* Registration of callbacks */
529 _OrthancPluginService_RegisterRestCallback = 1000,
530 _OrthancPluginService_RegisterOnStoredInstanceCallback = 1001,
531 _OrthancPluginService_RegisterStorageArea = 1002,
532 _OrthancPluginService_RegisterOnChangeCallback = 1003,
533 _OrthancPluginService_RegisterRestCallbackNoLock = 1004,
534 _OrthancPluginService_RegisterWorklistCallback = 1005,
535 _OrthancPluginService_RegisterDecodeImageCallback = 1006,
536 _OrthancPluginService_RegisterIncomingHttpRequestFilter = 1007,
537 _OrthancPluginService_RegisterFindCallback = 1008,
538 _OrthancPluginService_RegisterMoveCallback = 1009,
539 _OrthancPluginService_RegisterIncomingHttpRequestFilter2 = 1010,
540 _OrthancPluginService_RegisterRefreshMetricsCallback = 1011,
541 _OrthancPluginService_RegisterChunkedRestCallback = 1012, /* New in Orthanc 1.5.7 */
542 _OrthancPluginService_RegisterStorageCommitmentScpCallback = 1013, /* New in Orthanc 1.6.0 */
543 _OrthancPluginService_RegisterIncomingDicomInstanceFilter = 1014, /* New in Orthanc 1.6.1 */
544 _OrthancPluginService_RegisterTranscoderCallback = 1015, /* New in Orthanc 1.7.0 */
545 _OrthancPluginService_RegisterStorageArea2 = 1016, /* New in Orthanc 1.9.0 */
546 _OrthancPluginService_RegisterIncomingCStoreInstanceFilter = 1017, /* New in Orthanc 1.10.0 */
547 _OrthancPluginService_RegisterReceivedInstanceCallback = 1018, /* New in Orthanc 1.10.0 */
548 _OrthancPluginService_RegisterWebDavCollection = 1019, /* New in Orthanc 1.10.1 */
549 _OrthancPluginService_RegisterStorageArea3 = 1020, /* New in Orthanc 1.12.8 */
550 _OrthancPluginService_RegisterHttpAuthentication = 1021, /* New in Orthanc 1.12.9 */
551 _OrthancPluginService_RegisterAuditLogHandler = 1022, /* New in Orthanc 1.12.9 */
552 _OrthancPluginService_RegisterFindCallback2 = 1023, /* New in Orthanc 1.12.10 */
553 _OrthancPluginService_RegisterMoveCallback2 = 1024, /* New in Orthanc 1.12.10 */
554 _OrthancPluginService_RegisterWorklistCallback2 = 1025, /* New in Orthanc 1.12.10 */
555 _OrthancPluginService_RegisterStorageCommitmentScpCallback2 = 1026, /* New in Orthanc 1.12.0 */
556
557 /* Sending answers to REST calls */
558 _OrthancPluginService_AnswerBuffer = 2000,
559 _OrthancPluginService_CompressAndAnswerPngImage = 2001, /* Unused as of Orthanc 0.9.4 */
560 _OrthancPluginService_Redirect = 2002,
561 _OrthancPluginService_SendHttpStatusCode = 2003,
562 _OrthancPluginService_SendUnauthorized = 2004,
563 _OrthancPluginService_SendMethodNotAllowed = 2005,
564 _OrthancPluginService_SetCookie = 2006,
565 _OrthancPluginService_SetHttpHeader = 2007,
566 _OrthancPluginService_StartMultipartAnswer = 2008,
567 _OrthancPluginService_SendMultipartItem = 2009,
568 _OrthancPluginService_SendHttpStatus = 2010,
569 _OrthancPluginService_CompressAndAnswerImage = 2011,
570 _OrthancPluginService_SendMultipartItem2 = 2012,
571 _OrthancPluginService_SetHttpErrorDetails = 2013,
572 _OrthancPluginService_StartStreamAnswer = 2014,
573 _OrthancPluginService_SendStreamChunk = 2015,
574
575 /* Access to the Orthanc database and API */
576 _OrthancPluginService_GetDicomForInstance = 3000,
577 _OrthancPluginService_RestApiGet = 3001,
578 _OrthancPluginService_RestApiPost = 3002,
579 _OrthancPluginService_RestApiDelete = 3003,
580 _OrthancPluginService_RestApiPut = 3004,
581 _OrthancPluginService_LookupPatient = 3005,
582 _OrthancPluginService_LookupStudy = 3006,
583 _OrthancPluginService_LookupSeries = 3007,
584 _OrthancPluginService_LookupInstance = 3008,
585 _OrthancPluginService_LookupStudyWithAccessionNumber = 3009,
586 _OrthancPluginService_RestApiGetAfterPlugins = 3010,
587 _OrthancPluginService_RestApiPostAfterPlugins = 3011,
588 _OrthancPluginService_RestApiDeleteAfterPlugins = 3012,
589 _OrthancPluginService_RestApiPutAfterPlugins = 3013,
590 _OrthancPluginService_ReconstructMainDicomTags = 3014,
591 _OrthancPluginService_RestApiGet2 = 3015,
592 _OrthancPluginService_CallRestApi = 3016, /* New in Orthanc 1.9.2 */
593
594 /* Access to DICOM instances */
595 _OrthancPluginService_GetInstanceRemoteAet = 4000,
596 _OrthancPluginService_GetInstanceSize = 4001,
597 _OrthancPluginService_GetInstanceData = 4002,
598 _OrthancPluginService_GetInstanceJson = 4003,
599 _OrthancPluginService_GetInstanceSimplifiedJson = 4004,
600 _OrthancPluginService_HasInstanceMetadata = 4005,
601 _OrthancPluginService_GetInstanceMetadata = 4006,
602 _OrthancPluginService_GetInstanceOrigin = 4007,
603 _OrthancPluginService_GetInstanceTransferSyntaxUid = 4008,
604 _OrthancPluginService_HasInstancePixelData = 4009,
605 _OrthancPluginService_CreateDicomInstance = 4010, /* New in Orthanc 1.7.0 */
606 _OrthancPluginService_FreeDicomInstance = 4011, /* New in Orthanc 1.7.0 */
607 _OrthancPluginService_GetInstanceFramesCount = 4012, /* New in Orthanc 1.7.0 */
608 _OrthancPluginService_GetInstanceRawFrame = 4013, /* New in Orthanc 1.7.0 */
609 _OrthancPluginService_GetInstanceDecodedFrame = 4014, /* New in Orthanc 1.7.0 */
610 _OrthancPluginService_TranscodeDicomInstance = 4015, /* New in Orthanc 1.7.0 */
611 _OrthancPluginService_SerializeDicomInstance = 4016, /* New in Orthanc 1.7.0 */
612 _OrthancPluginService_GetInstanceAdvancedJson = 4017, /* New in Orthanc 1.7.0 */
613 _OrthancPluginService_GetInstanceDicomWebJson = 4018, /* New in Orthanc 1.7.0 */
614 _OrthancPluginService_GetInstanceDicomWebXml = 4019, /* New in Orthanc 1.7.0 */
615 _OrthancPluginService_LoadDicomInstance = 4020, /* New in Orthanc 1.12.1 */
616
617 /* Services for plugins implementing a database back-end */
618 _OrthancPluginService_RegisterDatabaseBackend = 5000, /* New in Orthanc 0.8.6 */
619 _OrthancPluginService_DatabaseAnswer = 5001,
620 _OrthancPluginService_RegisterDatabaseBackendV2 = 5002, /* New in Orthanc 0.9.4 */
621 _OrthancPluginService_StorageAreaCreate = 5003,
622 _OrthancPluginService_StorageAreaRead = 5004,
623 _OrthancPluginService_StorageAreaRemove = 5005,
624 _OrthancPluginService_RegisterDatabaseBackendV3 = 5006, /* New in Orthanc 1.9.2 */
625 _OrthancPluginService_RegisterDatabaseBackendV4 = 5007, /* New in Orthanc 1.12.0 */
626
627 /* Primitives for handling images */
628 _OrthancPluginService_GetImagePixelFormat = 6000,
629 _OrthancPluginService_GetImageWidth = 6001,
630 _OrthancPluginService_GetImageHeight = 6002,
631 _OrthancPluginService_GetImagePitch = 6003,
632 _OrthancPluginService_GetImageBuffer = 6004,
633 _OrthancPluginService_UncompressImage = 6005,
634 _OrthancPluginService_FreeImage = 6006,
635 _OrthancPluginService_CompressImage = 6007,
636 _OrthancPluginService_ConvertPixelFormat = 6008,
637 _OrthancPluginService_GetFontsCount = 6009,
638 _OrthancPluginService_GetFontInfo = 6010,
639 _OrthancPluginService_DrawText = 6011,
640 _OrthancPluginService_CreateImage = 6012,
641 _OrthancPluginService_CreateImageAccessor = 6013,
642 _OrthancPluginService_DecodeDicomImage = 6014,
643
644 /* Primitives for handling C-Find, C-Move and worklists */
645 _OrthancPluginService_WorklistAddAnswer = 7000,
646 _OrthancPluginService_WorklistMarkIncomplete = 7001,
647 _OrthancPluginService_WorklistIsMatch = 7002,
648 _OrthancPluginService_WorklistGetDicomQuery = 7003,
649 _OrthancPluginService_FindAddAnswer = 7004,
650 _OrthancPluginService_FindMarkIncomplete = 7005,
651 _OrthancPluginService_GetFindQuerySize = 7006,
652 _OrthancPluginService_GetFindQueryTag = 7007,
653 _OrthancPluginService_GetFindQueryTagName = 7008,
654 _OrthancPluginService_GetFindQueryValue = 7009,
655 _OrthancPluginService_CreateFindMatcher = 7010,
656 _OrthancPluginService_FreeFindMatcher = 7011,
657 _OrthancPluginService_FindMatcherIsMatch = 7012,
658
659 /* Primitives for accessing Orthanc Peers (new in 1.4.2) */
660 _OrthancPluginService_GetPeers = 8000,
661 _OrthancPluginService_FreePeers = 8001,
662 _OrthancPluginService_GetPeersCount = 8003,
663 _OrthancPluginService_GetPeerName = 8004,
664 _OrthancPluginService_GetPeerUrl = 8005,
665 _OrthancPluginService_CallPeerApi = 8006,
666 _OrthancPluginService_GetPeerUserProperty = 8007,
667
668 /* Primitives for handling jobs (new in 1.4.2) */
669 _OrthancPluginService_CreateJob = 9000, /* Deprecated since SDK 1.11.3 */
670 _OrthancPluginService_FreeJob = 9001,
671 _OrthancPluginService_SubmitJob = 9002,
672 _OrthancPluginService_RegisterJobsUnserializer = 9003,
673 _OrthancPluginService_CreateJob2 = 9004, /* New in SDK 1.11.3 */
674
675 /* Access to DICOM connection */
676 _OrthancPluginService_GetConnectionRemoteAet = 10000, /* New in SDK 1.12.10 */
677 _OrthancPluginService_GetConnectionRemoteIp = 10001, /* New in SDK 1.12.10 */
678 _OrthancPluginService_GetConnectionCalledAet = 10002, /* New in SDK 1.12.10 */
679
680 _OrthancPluginService_INTERNAL = 0x7fffffff
681 } _OrthancPluginService;
682
683
684 typedef enum
685 {
686 _OrthancPluginProperty_Description = 1,
687 _OrthancPluginProperty_RootUri = 2,
688 _OrthancPluginProperty_OrthancExplorer = 3,
689
690 _OrthancPluginProperty_INTERNAL = 0x7fffffff
691 } _OrthancPluginProperty;
692
693
694
699 typedef enum
700 {
708
716
724
732
740
742
749 OrthancPluginPixelFormat_RGB48 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 7,
750
757 OrthancPluginPixelFormat_Grayscale32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 8,
758
765 OrthancPluginPixelFormat_Float32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 9,
766
773 OrthancPluginPixelFormat_BGRA32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 10,
774
781 OrthancPluginPixelFormat_Grayscale64 ORTHANC_PLUGIN_SINCE_SDK("1.4.0") = 11,
782
783 _OrthancPluginPixelFormat_INTERNAL = 0x7fffffff
785
786
787
791 typedef enum
792 {
796 OrthancPluginContentType_DicomUntilPixelData ORTHANC_PLUGIN_SINCE_SDK("1.9.2") = 3,
797
798 _OrthancPluginContentType_INTERNAL = 0x7fffffff
800
801
802
816
817
818
848
849
864
865
870 typedef enum
871 {
875
876 _OrthancPluginImageFormat_INTERNAL = 0x7fffffff
878
879
916
917
923 typedef enum
924 {
928
929 _OrthancPluginDicomToJsonFormat_INTERNAL = 0x7fffffff
931
932
952
953
959 typedef enum
960 {
961 OrthancPluginCreateDicomFlags_None ORTHANC_PLUGIN_SINCE_SDK("1.2.0") = 0,
964
965 _OrthancPluginCreateDicomFlags_INTERNAL = 0x7fffffff
967
968
983
984
999
1000
1015
1016
1026
1027
1041
1042
1046 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1047 {
1049
1057
1058
1069
1070
1119
1120
1124 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
1125 {
1129
1130 _OrthancPluginReceivedInstanceAction_INTERNAL = 0x7fffffff
1132
1133
1138 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
1139 {
1144
1150
1157
1158 _OrthancPluginLoadDicomInstanceMode_INTERNAL = 0x7fffffff
1160
1161
1168 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
1169 {
1174
1175 _OrthancPluginLogLevel_INTERNAL = 0x7fffffff
1177
1178
1185 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
1186 {
1194
1195 _OrthancPluginLogCategory_INTERNAL = 0x7fffffff
1197
1198
1202 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1203 {
1209
1210 _OrthancPluginStoreStatus_INTERNAL = 0x7fffffff
1212
1213
1217 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1218 {
1221
1222 _OrthancPluginQueueOrigin_INTERNAL = 0x7fffffff
1224
1225
1229 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
1230 {
1233
1234 _OrthancPluginStableStatus_INTERNAL = 0x7fffffff
1236
1237
1250
1251
1259 typedef struct
1260 {
1264 void* data;
1265
1269 uint32_t size;
1271
1272
1273
1281 ORTHANC_PLUGIN_SINCE_SDK("1.9.0") typedef struct
1282 {
1286 void* data;
1287
1291 uint64_t size;
1293
1294
1295
1296
1301 typedef struct _OrthancPluginRestOutput_t OrthancPluginRestOutput;
1302
1303
1304
1309 typedef struct _OrthancPluginDicomInstance_t OrthancPluginDicomInstance;
1310
1311
1312
1317 typedef struct _OrthancPluginImage_t OrthancPluginImage;
1318
1319
1320
1325 typedef struct _OrthancPluginStorageArea_t OrthancPluginStorageArea;
1326
1327
1328
1333 typedef struct _OrthancPluginWorklistQuery_t OrthancPluginWorklistQuery;
1334
1335
1336
1341 typedef struct _OrthancPluginWorklistAnswers_t OrthancPluginWorklistAnswers;
1342
1343
1344
1349 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
1350 _OrthancPluginFindQuery_t OrthancPluginFindQuery;
1351
1352
1353
1358 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
1359 _OrthancPluginFindAnswers_t OrthancPluginFindAnswers;
1360
1361
1362
1367 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
1368 _OrthancPluginFindMatcher_t OrthancPluginFindMatcher;
1369
1370
1371
1376 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1377 _OrthancPluginPeers_t OrthancPluginPeers;
1378
1379
1380
1385 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1386 _OrthancPluginJob_t OrthancPluginJob;
1387
1388
1389
1395 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1396 _OrthancPluginDicomWebNode_t OrthancPluginDicomWebNode;
1397
1398
1403 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1404 _OrthancPluginDicomConnection_t OrthancPluginDicomConnection;
1405
1406
1413 const char* uri,
1414 const OrthancPluginHttpRequest* request);
1415
1416
1417
1423 const OrthancPluginDicomInstance* instance,
1424 const char* instanceId);
1425
1426
1427
1433 OrthancPluginChangeType changeType,
1434 OrthancPluginResourceType resourceType,
1435 const char* resourceId);
1436
1437
1438
1444 OrthancPluginImage** target,
1445 const void* dicom,
1446 const uint32_t size,
1447 uint32_t frameIndex);
1448
1449
1450
1455 typedef void (*OrthancPluginFree) (void* buffer);
1456
1457
1458
1468 const char* bulkDataUri);
1469
1470
1471
1485 const char* uuid,
1486 const void* content,
1487 int64_t size,
1489
1490
1491
1511 void** content,
1512 int64_t* size,
1513 const char* uuid,
1515
1516
1517
1532 const char* uuid,
1534
1535
1536
1555 const char* uuid,
1557 uint64_t rangeStart);
1558
1559
1560
1572 const char* uuid,
1574
1575
1576
1596 OrthancPluginMemoryBuffer* customData,
1597 const char* uuid,
1598 const void* content,
1599 uint64_t size,
1601 OrthancPluginCompressionType compressionType,
1602 const OrthancPluginDicomInstance* dicomInstance);
1603
1604
1605
1626 const char* uuid,
1628 uint64_t rangeStart,
1629 const void* customData,
1630 uint32_t customDataSize);
1631
1632
1633
1648 const char* uuid,
1650 const void* customData,
1651 uint32_t customDataSize);
1652
1653
1669 const OrthancPluginWorklistQuery* query,
1670 const char* issuerAet,
1671 const char* calledAet);
1672
1673
1686 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1689 const OrthancPluginWorklistQuery* query,
1690 const OrthancPluginDicomConnection* connection);
1691
1692
1718 const char* uri,
1719 const char* ip,
1720 uint32_t headersCount,
1721 const char* const* headersKeys,
1722 const char* const* headersValues);
1723
1724
1725
1757 const char* uri,
1758 const char* ip,
1759 uint32_t headersCount,
1760 const char* const* headersKeys,
1761 const char* const* headersValues,
1762 uint32_t getArgumentsCount,
1763 const char* const* getArgumentsKeys,
1764 const char* const* getArgumentsValues);
1765
1766
1767
1783 OrthancPluginFindAnswers* answers,
1784 const OrthancPluginFindQuery* query,
1785 const char* issuerAet,
1786 const char* calledAet);
1787
1788
1802 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1804 OrthancPluginFindAnswers* answers,
1805 const OrthancPluginFindQuery* query,
1806 const OrthancPluginDicomConnection* connection);
1807
1808
1844 typedef void* (*OrthancPluginMoveCallback) (
1845 OrthancPluginResourceType resourceType,
1846 const char* patientId,
1847 const char* accessionNumber,
1848 const char* studyInstanceUid,
1849 const char* seriesInstanceUid,
1850 const char* sopInstanceUid,
1851 const char* originatorAet,
1852 const char* sourceAet,
1853 const char* targetAet,
1854 uint16_t originatorId);
1855
1856
1889 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1891 OrthancPluginResourceType resourceType,
1892 const char* patientId,
1893 const char* accessionNumber,
1894 const char* studyInstanceUid,
1895 const char* seriesInstanceUid,
1896 const char* sopInstanceUid,
1897 const OrthancPluginDicomConnection* connection,
1898 const char* targetAet,
1899 uint16_t originatorId);
1900
1901
1914 typedef uint32_t (*OrthancPluginGetMoveSize) (void* moveDriver);
1915
1916
1929 typedef OrthancPluginErrorCode (*OrthancPluginApplyMove) (void* moveDriver);
1930
1931
1943 typedef void (*OrthancPluginFreeMove) (void* moveDriver);
1944
1945
1956 typedef void (*OrthancPluginJobFinalize) (void* job);
1957
1958
1969 typedef float (*OrthancPluginJobGetProgress) (void* job);
1970
1971
1985 typedef const char* (*OrthancPluginJobGetContent) (void* job);
1986
1987
2004 void* job);
2005
2006
2023 typedef const char* (*OrthancPluginJobGetSerialized) (void* job);
2024
2025
2044 void* job);
2045
2046
2060
2061
2085
2086
2101
2102
2116 typedef OrthancPluginJob* (*OrthancPluginJobsUnserializer) (const char* jobType,
2117 const char* serialized);
2118
2119
2120
2136
2137
2138
2166 uint32_t levelDepth,
2167 const uint16_t* levelTagGroup,
2168 const uint16_t* levelTagElement,
2169 const uint32_t* levelIndex,
2170 uint16_t tagGroup,
2171 uint16_t tagElement,
2173
2174
2175
2204 uint32_t levelDepth,
2205 const uint16_t* levelTagGroup,
2206 const uint16_t* levelTagElement,
2207 const uint32_t* levelIndex,
2208 uint16_t tagGroup,
2209 uint16_t tagElement,
2211 void* payload);
2212
2213
2214
2218 typedef struct _OrthancPluginContext_t
2219 {
2220 void* pluginsManager;
2221 const char* orthancVersion;
2222 OrthancPluginFree Free;
2223 OrthancPluginErrorCode (*InvokeService) (struct _OrthancPluginContext_t* context,
2224 _OrthancPluginService service,
2225 const void* params);
2227
2228
2229
2241
2242
2243
2252 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeString(
2253 OrthancPluginContext* context,
2254 char* str)
2255 {
2256 if (str != NULL)
2257 {
2258 context->Free(str);
2259 }
2260 }
2261
2262
2282 ORTHANC_PLUGIN_SINCE_SDK("1.4.0")
2283 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginCheckVersionAdvanced(
2284 const OrthancPluginContext* context,
2285 int32_t expectedMajor,
2286 int32_t expectedMinor,
2287 int32_t expectedRevision)
2288 {
2289 int32_t major, minor, revision;
2290
2291 if (sizeof(int) != sizeof(int32_t) || /* Ensure binary compatibility with Orthanc SDK <= 1.12.1 */
2292 sizeof(int32_t) != sizeof(OrthancPluginErrorCode) ||
2293 sizeof(int32_t) != sizeof(OrthancPluginHttpMethod) ||
2294 sizeof(int32_t) != sizeof(_OrthancPluginService) ||
2295 sizeof(int32_t) != sizeof(_OrthancPluginProperty) ||
2296 sizeof(int32_t) != sizeof(OrthancPluginPixelFormat) ||
2297 sizeof(int32_t) != sizeof(OrthancPluginContentType) ||
2298 sizeof(int32_t) != sizeof(OrthancPluginResourceType) ||
2299 sizeof(int32_t) != sizeof(OrthancPluginChangeType) ||
2300 sizeof(int32_t) != sizeof(OrthancPluginCompressionType) ||
2301 sizeof(int32_t) != sizeof(OrthancPluginImageFormat) ||
2302 sizeof(int32_t) != sizeof(OrthancPluginValueRepresentation) ||
2303 sizeof(int32_t) != sizeof(OrthancPluginDicomToJsonFormat) ||
2304 sizeof(int32_t) != sizeof(OrthancPluginDicomToJsonFlags) ||
2305 sizeof(int32_t) != sizeof(OrthancPluginCreateDicomFlags) ||
2306 sizeof(int32_t) != sizeof(OrthancPluginIdentifierConstraint) ||
2307 sizeof(int32_t) != sizeof(OrthancPluginInstanceOrigin) ||
2308 sizeof(int32_t) != sizeof(OrthancPluginJobStepStatus) ||
2309 sizeof(int32_t) != sizeof(OrthancPluginJobStopReason) ||
2310 sizeof(int32_t) != sizeof(OrthancPluginConstraintType) ||
2311 sizeof(int32_t) != sizeof(OrthancPluginMetricsType) ||
2312 sizeof(int32_t) != sizeof(OrthancPluginDicomWebBinaryMode) ||
2313 sizeof(int32_t) != sizeof(OrthancPluginStorageCommitmentFailureReason) ||
2314 sizeof(int32_t) != sizeof(OrthancPluginReceivedInstanceAction) ||
2315 sizeof(int32_t) != sizeof(OrthancPluginLoadDicomInstanceMode) ||
2316 sizeof(int32_t) != sizeof(OrthancPluginLogLevel) ||
2317 sizeof(int32_t) != sizeof(OrthancPluginLogCategory) ||
2318 sizeof(int32_t) != sizeof(OrthancPluginStoreStatus) ||
2319 sizeof(int32_t) != sizeof(OrthancPluginQueueOrigin) ||
2320 sizeof(int32_t) != sizeof(OrthancPluginStableStatus) ||
2321 sizeof(int32_t) != sizeof(OrthancPluginHttpAuthenticationStatus))
2322 {
2323 /* Mismatch in the size of the enumerations */
2324 return 0;
2325 }
2326
2327 /* Assume compatibility with the mainline */
2328 if (!strcmp(context->orthancVersion, "mainline"))
2329 {
2330 return 1;
2331 }
2332
2333 /* Parse the version of the Orthanc core */
2334 if (
2335#ifdef _MSC_VER
2336 sscanf_s
2337#else
2338 sscanf
2339#endif
2340 (context->orthancVersion, "%4d.%4d.%4d", &major, &minor, &revision) != 3)
2341 {
2342 return 0;
2343 }
2344
2345 /* Check the major number of the version */
2346
2347 if (major > expectedMajor)
2348 {
2349 return 1;
2350 }
2351
2352 if (major < expectedMajor)
2353 {
2354 return 0;
2355 }
2356
2357 /* Check the minor number of the version */
2358
2359 if (minor > expectedMinor)
2360 {
2361 return 1;
2362 }
2363
2364 if (minor < expectedMinor)
2365 {
2366 return 0;
2367 }
2368
2369 /* Check the revision number of the version */
2370
2371 if (revision >= expectedRevision)
2372 {
2373 return 1;
2374 }
2375 else
2376 {
2377 return 0;
2378 }
2379 }
2380
2381
2398 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginCheckVersion(
2399 const OrthancPluginContext* context)
2400 {
2402 context,
2403 ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER,
2404 ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER,
2405 ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER);
2406 }
2407
2408
2417 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeMemoryBuffer(
2418 OrthancPluginContext* context,
2420 {
2421 context->Free(buffer->data);
2422 }
2423
2424
2433 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
2434 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeMemoryBuffer64(
2435 OrthancPluginContext* context,
2437 {
2438 context->Free(buffer->data);
2439 }
2440
2441
2450 ORTHANC_PLUGIN_INLINE void OrthancPluginLogError(
2451 OrthancPluginContext* context,
2452 const char* message)
2453 {
2454 context->InvokeService(context, _OrthancPluginService_LogError, message);
2455 }
2456
2457
2466 ORTHANC_PLUGIN_INLINE void OrthancPluginLogWarning(
2467 OrthancPluginContext* context,
2468 const char* message)
2469 {
2470 context->InvokeService(context, _OrthancPluginService_LogWarning, message);
2471 }
2472
2473
2482 ORTHANC_PLUGIN_INLINE void OrthancPluginLogInfo(
2483 OrthancPluginContext* context,
2484 const char* message)
2485 {
2486 context->InvokeService(context, _OrthancPluginService_LogInfo, message);
2487 }
2488
2489
2490
2491 typedef struct
2492 {
2493 const char* pathRegularExpression;
2495 } _OrthancPluginRestCallback;
2496
2518 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterRestCallback(
2519 OrthancPluginContext* context,
2520 const char* pathRegularExpression,
2522 {
2523 _OrthancPluginRestCallback params;
2524 params.pathRegularExpression = pathRegularExpression;
2525 params.callback = callback;
2526 context->InvokeService(context, _OrthancPluginService_RegisterRestCallback, &params);
2527 }
2528
2529
2530
2559 OrthancPluginContext* context,
2560 const char* pathRegularExpression,
2562 {
2563 _OrthancPluginRestCallback params;
2564 params.pathRegularExpression = pathRegularExpression;
2565 params.callback = callback;
2566 context->InvokeService(context, _OrthancPluginService_RegisterRestCallbackNoLock, &params);
2567 }
2568
2569
2570
2571 typedef struct
2572 {
2574 } _OrthancPluginOnStoredInstanceCallback;
2575
2597 OrthancPluginContext* context,
2599 {
2600 _OrthancPluginOnStoredInstanceCallback params;
2601 params.callback = callback;
2602
2603 context->InvokeService(context, _OrthancPluginService_RegisterOnStoredInstanceCallback, &params);
2604 }
2605
2606
2607
2608 typedef struct
2609 {
2611 const void* answer;
2612 uint32_t answerSize;
2613 const char* mimeType;
2614 } _OrthancPluginAnswerBuffer;
2615
2628 ORTHANC_PLUGIN_INLINE void OrthancPluginAnswerBuffer(
2629 OrthancPluginContext* context,
2631 const void* answer,
2632 uint32_t answerSize,
2633 const char* mimeType)
2634 {
2635 _OrthancPluginAnswerBuffer params;
2636 params.output = output;
2637 params.answer = answer;
2638 params.answerSize = answerSize;
2639 params.mimeType = mimeType;
2640 context->InvokeService(context, _OrthancPluginService_AnswerBuffer, &params);
2641 }
2642
2643
2644 typedef struct
2645 {
2648 uint32_t width;
2649 uint32_t height;
2650 uint32_t pitch;
2651 const void* buffer;
2652 } _OrthancPluginCompressAndAnswerPngImage;
2653
2654 typedef struct
2655 {
2657 OrthancPluginImageFormat imageFormat;
2658 OrthancPluginPixelFormat pixelFormat;
2659 uint32_t width;
2660 uint32_t height;
2661 uint32_t pitch;
2662 const void* buffer;
2663 uint8_t quality;
2664 } _OrthancPluginCompressAndAnswerImage;
2665
2666
2685 ORTHANC_PLUGIN_INLINE void OrthancPluginCompressAndAnswerPngImage(
2686 OrthancPluginContext* context,
2689 uint32_t width,
2690 uint32_t height,
2691 uint32_t pitch,
2692 const void* buffer)
2693 {
2694 _OrthancPluginCompressAndAnswerImage params;
2695 params.output = output;
2696 params.imageFormat = OrthancPluginImageFormat_Png;
2697 params.pixelFormat = format;
2698 params.width = width;
2699 params.height = height;
2700 params.pitch = pitch;
2701 params.buffer = buffer;
2702 params.quality = 0; /* No quality for PNG */
2703 context->InvokeService(context, _OrthancPluginService_CompressAndAnswerImage, &params);
2704 }
2705
2706
2707
2708 typedef struct
2709 {
2711 const char* instanceId;
2712 } _OrthancPluginGetDicomForInstance;
2713
2727 OrthancPluginContext* context,
2729 const char* instanceId)
2730 {
2731 _OrthancPluginGetDicomForInstance params;
2732 params.target = target;
2733 params.instanceId = instanceId;
2734 return context->InvokeService(context, _OrthancPluginService_GetDicomForInstance, &params);
2735 }
2736
2737
2738
2739 typedef struct
2740 {
2742 const char* uri;
2743 } _OrthancPluginRestApiGet;
2744
2760 OrthancPluginContext* context,
2762 const char* uri)
2763 {
2764 _OrthancPluginRestApiGet params;
2765 params.target = target;
2766 params.uri = uri;
2767 return context->InvokeService(context, _OrthancPluginService_RestApiGet, &params);
2768 }
2769
2770
2771
2790 OrthancPluginContext* context,
2792 const char* uri)
2793 {
2794 _OrthancPluginRestApiGet params;
2795 params.target = target;
2796 params.uri = uri;
2797 return context->InvokeService(context, _OrthancPluginService_RestApiGetAfterPlugins, &params);
2798 }
2799
2800
2801
2802 typedef struct
2803 {
2805 const char* uri;
2806 const void* body;
2807 uint32_t bodySize;
2808 } _OrthancPluginRestApiPostPut;
2809
2827 OrthancPluginContext* context,
2829 const char* uri,
2830 const void* body,
2831 uint32_t bodySize)
2832 {
2833 _OrthancPluginRestApiPostPut params;
2834 params.target = target;
2835 params.uri = uri;
2836 params.body = body;
2837 params.bodySize = bodySize;
2838 return context->InvokeService(context, _OrthancPluginService_RestApiPost, &params);
2839 }
2840
2841
2862 OrthancPluginContext* context,
2864 const char* uri,
2865 const void* body,
2866 uint32_t bodySize)
2867 {
2868 _OrthancPluginRestApiPostPut params;
2869 params.target = target;
2870 params.uri = uri;
2871 params.body = body;
2872 params.bodySize = bodySize;
2873 return context->InvokeService(context, _OrthancPluginService_RestApiPostAfterPlugins, &params);
2874 }
2875
2876
2877
2891 OrthancPluginContext* context,
2892 const char* uri)
2893 {
2894 return context->InvokeService(context, _OrthancPluginService_RestApiDelete, uri);
2895 }
2896
2897
2914 OrthancPluginContext* context,
2915 const char* uri)
2916 {
2917 return context->InvokeService(context, _OrthancPluginService_RestApiDeleteAfterPlugins, uri);
2918 }
2919
2920
2921
2939 OrthancPluginContext* context,
2941 const char* uri,
2942 const void* body,
2943 uint32_t bodySize)
2944 {
2945 _OrthancPluginRestApiPostPut params;
2946 params.target = target;
2947 params.uri = uri;
2948 params.body = body;
2949 params.bodySize = bodySize;
2950 return context->InvokeService(context, _OrthancPluginService_RestApiPut, &params);
2951 }
2952
2953
2954
2975 OrthancPluginContext* context,
2977 const char* uri,
2978 const void* body,
2979 uint32_t bodySize)
2980 {
2981 _OrthancPluginRestApiPostPut params;
2982 params.target = target;
2983 params.uri = uri;
2984 params.body = body;
2985 params.bodySize = bodySize;
2986 return context->InvokeService(context, _OrthancPluginService_RestApiPutAfterPlugins, &params);
2987 }
2988
2989
2990
2991 typedef struct
2992 {
2994 const char* argument;
2995 } _OrthancPluginOutputPlusArgument;
2996
3008 ORTHANC_PLUGIN_INLINE void OrthancPluginRedirect(
3009 OrthancPluginContext* context,
3011 const char* redirection)
3012 {
3013 _OrthancPluginOutputPlusArgument params;
3014 params.output = output;
3015 params.argument = redirection;
3016 context->InvokeService(context, _OrthancPluginService_Redirect, &params);
3017 }
3018
3019
3020
3021 typedef struct
3022 {
3023 char** result;
3024 const char* argument;
3025 } _OrthancPluginRetrieveDynamicString;
3026
3040 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupPatient(
3041 OrthancPluginContext* context,
3042 const char* patientID)
3043 {
3044 char* result;
3045
3046 _OrthancPluginRetrieveDynamicString params;
3047 params.result = &result;
3048 params.argument = patientID;
3049
3050 if (context->InvokeService(context, _OrthancPluginService_LookupPatient, &params) != OrthancPluginErrorCode_Success)
3051 {
3052 /* Error */
3053 return NULL;
3054 }
3055 else
3056 {
3057 return result;
3058 }
3059 }
3060
3061
3075 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupStudy(
3076 OrthancPluginContext* context,
3077 const char* studyUID)
3078 {
3079 char* result;
3080
3081 _OrthancPluginRetrieveDynamicString params;
3082 params.result = &result;
3083 params.argument = studyUID;
3084
3085 if (context->InvokeService(context, _OrthancPluginService_LookupStudy, &params) != OrthancPluginErrorCode_Success)
3086 {
3087 /* Error */
3088 return NULL;
3089 }
3090 else
3091 {
3092 return result;
3093 }
3094 }
3095
3096
3111 OrthancPluginContext* context,
3112 const char* accessionNumber)
3113 {
3114 char* result;
3115
3116 _OrthancPluginRetrieveDynamicString params;
3117 params.result = &result;
3118 params.argument = accessionNumber;
3119
3120 if (context->InvokeService(context, _OrthancPluginService_LookupStudyWithAccessionNumber, &params) != OrthancPluginErrorCode_Success)
3121 {
3122 /* Error */
3123 return NULL;
3124 }
3125 else
3126 {
3127 return result;
3128 }
3129 }
3130
3131
3145 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupSeries(
3146 OrthancPluginContext* context,
3147 const char* seriesUID)
3148 {
3149 char* result;
3150
3151 _OrthancPluginRetrieveDynamicString params;
3152 params.result = &result;
3153 params.argument = seriesUID;
3154
3155 if (context->InvokeService(context, _OrthancPluginService_LookupSeries, &params) != OrthancPluginErrorCode_Success)
3156 {
3157 /* Error */
3158 return NULL;
3159 }
3160 else
3161 {
3162 return result;
3163 }
3164 }
3165
3166
3180 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupInstance(
3181 OrthancPluginContext* context,
3182 const char* sopInstanceUID)
3183 {
3184 char* result;
3185
3186 _OrthancPluginRetrieveDynamicString params;
3187 params.result = &result;
3188 params.argument = sopInstanceUID;
3189
3190 if (context->InvokeService(context, _OrthancPluginService_LookupInstance, &params) != OrthancPluginErrorCode_Success)
3191 {
3192 /* Error */
3193 return NULL;
3194 }
3195 else
3196 {
3197 return result;
3198 }
3199 }
3200
3201
3202
3203 typedef struct
3204 {
3206 uint16_t status;
3207 } _OrthancPluginSendHttpStatusCode;
3208
3225 ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatusCode(
3226 OrthancPluginContext* context,
3228 uint16_t status)
3229 {
3230 _OrthancPluginSendHttpStatusCode params;
3231 params.output = output;
3232 params.status = status;
3233 context->InvokeService(context, _OrthancPluginService_SendHttpStatusCode, &params);
3234 }
3235
3236
3248 ORTHANC_PLUGIN_INLINE void OrthancPluginSendUnauthorized(
3249 OrthancPluginContext* context,
3251 const char* realm)
3252 {
3253 _OrthancPluginOutputPlusArgument params;
3254 params.output = output;
3255 params.argument = realm;
3256 context->InvokeService(context, _OrthancPluginService_SendUnauthorized, &params);
3257 }
3258
3259
3271 ORTHANC_PLUGIN_INLINE void OrthancPluginSendMethodNotAllowed(
3272 OrthancPluginContext* context,
3274 const char* allowedMethods)
3275 {
3276 _OrthancPluginOutputPlusArgument params;
3277 params.output = output;
3278 params.argument = allowedMethods;
3279 context->InvokeService(context, _OrthancPluginService_SendMethodNotAllowed, &params);
3280 }
3281
3282
3283 typedef struct
3284 {
3286 const char* key;
3287 const char* value;
3288 } _OrthancPluginSetHttpHeader;
3289
3301 ORTHANC_PLUGIN_INLINE void OrthancPluginSetCookie(
3302 OrthancPluginContext* context,
3304 const char* cookie,
3305 const char* value)
3306 {
3307 _OrthancPluginSetHttpHeader params;
3308 params.output = output;
3309 params.key = cookie;
3310 params.value = value;
3311 context->InvokeService(context, _OrthancPluginService_SetCookie, &params);
3312 }
3313
3314
3326 ORTHANC_PLUGIN_INLINE void OrthancPluginSetHttpHeader(
3327 OrthancPluginContext* context,
3329 const char* key,
3330 const char* value)
3331 {
3332 _OrthancPluginSetHttpHeader params;
3333 params.output = output;
3334 params.key = key;
3335 params.value = value;
3336 context->InvokeService(context, _OrthancPluginService_SetHttpHeader, &params);
3337 }
3338
3339
3340 typedef struct
3341 {
3342 char** resultStringToFree;
3343 const char** resultString;
3344 int64_t* resultInt64;
3345 const char* key;
3346 const OrthancPluginDicomInstance* instance;
3347 OrthancPluginInstanceOrigin* resultOrigin; /* New in Orthanc 0.9.5 SDK */
3348 } _OrthancPluginAccessDicomInstance;
3349
3350
3362 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceRemoteAet(
3363 OrthancPluginContext* context,
3364 const OrthancPluginDicomInstance* instance)
3365 {
3366 const char* result;
3367
3368 _OrthancPluginAccessDicomInstance params;
3369 memset(&params, 0, sizeof(params));
3370 params.resultString = &result;
3371 params.instance = instance;
3372
3373 if (context->InvokeService(context, _OrthancPluginService_GetInstanceRemoteAet, &params) != OrthancPluginErrorCode_Success)
3374 {
3375 /* Error */
3376 return NULL;
3377 }
3378 else
3379 {
3380 return result;
3381 }
3382 }
3383
3384
3395 ORTHANC_PLUGIN_INLINE int64_t OrthancPluginGetInstanceSize(
3396 OrthancPluginContext* context,
3397 const OrthancPluginDicomInstance* instance)
3398 {
3399 int64_t size;
3400
3401 _OrthancPluginAccessDicomInstance params;
3402 memset(&params, 0, sizeof(params));
3403 params.resultInt64 = &size;
3404 params.instance = instance;
3405
3406 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSize, &params) != OrthancPluginErrorCode_Success)
3407 {
3408 /* Error */
3409 return -1;
3410 }
3411 else
3412 {
3413 return size;
3414 }
3415 }
3416
3417
3428 ORTHANC_PLUGIN_INLINE const void* OrthancPluginGetInstanceData(
3429 OrthancPluginContext* context,
3430 const OrthancPluginDicomInstance* instance)
3431 {
3432 const char* result;
3433
3434 _OrthancPluginAccessDicomInstance params;
3435 memset(&params, 0, sizeof(params));
3436 params.resultString = &result;
3437 params.instance = instance;
3438
3439 if (context->InvokeService(context, _OrthancPluginService_GetInstanceData, &params) != OrthancPluginErrorCode_Success)
3440 {
3441 /* Error */
3442 return NULL;
3443 }
3444 else
3445 {
3446 return result;
3447 }
3448 }
3449
3450
3464 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceJson(
3465 OrthancPluginContext* context,
3466 const OrthancPluginDicomInstance* instance)
3467 {
3468 char* result;
3469
3470 _OrthancPluginAccessDicomInstance params;
3471 memset(&params, 0, sizeof(params));
3472 params.resultStringToFree = &result;
3473 params.instance = instance;
3474
3475 if (context->InvokeService(context, _OrthancPluginService_GetInstanceJson, &params) != OrthancPluginErrorCode_Success)
3476 {
3477 /* Error */
3478 return NULL;
3479 }
3480 else
3481 {
3482 return result;
3483 }
3484 }
3485
3486
3502 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceSimplifiedJson(
3503 OrthancPluginContext* context,
3504 const OrthancPluginDicomInstance* instance)
3505 {
3506 char* result;
3507
3508 _OrthancPluginAccessDicomInstance params;
3509 memset(&params, 0, sizeof(params));
3510 params.resultStringToFree = &result;
3511 params.instance = instance;
3512
3513 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSimplifiedJson, &params) != OrthancPluginErrorCode_Success)
3514 {
3515 /* Error */
3516 return NULL;
3517 }
3518 else
3519 {
3520 return result;
3521 }
3522 }
3523
3524
3541 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginHasInstanceMetadata(
3542 OrthancPluginContext* context,
3543 const OrthancPluginDicomInstance* instance,
3544 const char* metadata)
3545 {
3546 int64_t result;
3547
3548 _OrthancPluginAccessDicomInstance params;
3549 memset(&params, 0, sizeof(params));
3550 params.resultInt64 = &result;
3551 params.instance = instance;
3552 params.key = metadata;
3553
3554 if (context->InvokeService(context, _OrthancPluginService_HasInstanceMetadata, &params) != OrthancPluginErrorCode_Success)
3555 {
3556 /* Error */
3557 return -1;
3558 }
3559 else
3560 {
3561 return (result != 0);
3562 }
3563 }
3564
3565
3582 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceMetadata(
3583 OrthancPluginContext* context,
3584 const OrthancPluginDicomInstance* instance,
3585 const char* metadata)
3586 {
3587 const char* result;
3588
3589 _OrthancPluginAccessDicomInstance params;
3590 memset(&params, 0, sizeof(params));
3591 params.resultString = &result;
3592 params.instance = instance;
3593 params.key = metadata;
3594
3595 if (context->InvokeService(context, _OrthancPluginService_GetInstanceMetadata, &params) != OrthancPluginErrorCode_Success)
3596 {
3597 /* Error */
3598 return NULL;
3599 }
3600 else
3601 {
3602 return result;
3603 }
3604 }
3605
3606
3607
3608 typedef struct
3609 {
3613 OrthancPluginFree free;
3614 } _OrthancPluginRegisterStorageArea;
3615
3631 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea(
3632 OrthancPluginContext* context,
3636 {
3637 _OrthancPluginRegisterStorageArea params;
3638 params.create = create;
3639 params.read = read;
3640 params.remove = remove;
3641
3642#ifdef __cplusplus
3643 params.free = ::free;
3644#else
3645 params.free = free;
3646#endif
3647
3648 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea, &params);
3649 }
3650
3651
3652
3663 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetOrthancPath(OrthancPluginContext* context)
3664 {
3665 char* result;
3666
3667 _OrthancPluginRetrieveDynamicString params;
3668 params.result = &result;
3669 params.argument = NULL;
3670
3671 if (context->InvokeService(context, _OrthancPluginService_GetOrthancPath, &params) != OrthancPluginErrorCode_Success)
3672 {
3673 /* Error */
3674 return NULL;
3675 }
3676 else
3677 {
3678 return result;
3679 }
3680 }
3681
3682
3693 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetOrthancDirectory(OrthancPluginContext* context)
3694 {
3695 char* result;
3696
3697 _OrthancPluginRetrieveDynamicString params;
3698 params.result = &result;
3699 params.argument = NULL;
3700
3701 if (context->InvokeService(context, _OrthancPluginService_GetOrthancDirectory, &params) != OrthancPluginErrorCode_Success)
3702 {
3703 /* Error */
3704 return NULL;
3705 }
3706 else
3707 {
3708 return result;
3709 }
3710 }
3711
3712
3728 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfigurationPath(OrthancPluginContext* context)
3729 {
3730 char* result;
3731
3732 _OrthancPluginRetrieveDynamicString params;
3733 params.result = &result;
3734 params.argument = NULL;
3735
3736 if (context->InvokeService(context, _OrthancPluginService_GetConfigurationPath, &params) != OrthancPluginErrorCode_Success)
3737 {
3738 /* Error */
3739 return NULL;
3740 }
3741 else
3742 {
3743 return result;
3744 }
3745 }
3746
3747
3748
3749 typedef struct
3750 {
3752 } _OrthancPluginOnChangeCallback;
3753
3774 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterOnChangeCallback(
3775 OrthancPluginContext* context,
3777 {
3778 _OrthancPluginOnChangeCallback params;
3779 params.callback = callback;
3780
3781 context->InvokeService(context, _OrthancPluginService_RegisterOnChangeCallback, &params);
3782 }
3783
3784
3785
3786 typedef struct
3787 {
3788 const char* plugin;
3789 _OrthancPluginProperty property;
3790 const char* value;
3791 } _OrthancPluginSetPluginProperty;
3792
3793
3809 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri(
3810 OrthancPluginContext* context,
3811 const char* uri)
3812 {
3813 _OrthancPluginSetPluginProperty params;
3814 params.plugin = OrthancPluginGetName();
3815 params.property = _OrthancPluginProperty_RootUri;
3816 params.value = uri;
3817
3818 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3819 }
3820
3821
3834 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
3835 ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri2(
3836 OrthancPluginContext* context,
3837 const char* plugin,
3838 const char* uri)
3839 {
3840 _OrthancPluginSetPluginProperty params;
3841 params.plugin = plugin;
3842 params.property = _OrthancPluginProperty_RootUri;
3843 params.value = uri;
3844
3845 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3846 }
3847
3848
3862 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription(
3863 OrthancPluginContext* context,
3864 const char* description)
3865 {
3866 _OrthancPluginSetPluginProperty params;
3867 params.plugin = OrthancPluginGetName();
3868 params.property = _OrthancPluginProperty_Description;
3869 params.value = description;
3870
3871 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3872 }
3873
3874
3885 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
3886 ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription2(
3887 OrthancPluginContext* context,
3888 const char* plugin,
3889 const char* description)
3890 {
3891 _OrthancPluginSetPluginProperty params;
3892 params.plugin = plugin;
3893 params.property = _OrthancPluginProperty_Description;
3894 params.value = description;
3895
3896 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3897 }
3898
3899
3913 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer(
3914 OrthancPluginContext* context,
3915 const char* javascript)
3916 {
3917 _OrthancPluginSetPluginProperty params;
3918 params.plugin = OrthancPluginGetName();
3919 params.property = _OrthancPluginProperty_OrthancExplorer;
3920 params.value = javascript;
3921
3922 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3923 }
3924
3925
3936 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
3937 ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer2(
3938 OrthancPluginContext* context,
3939 const char* plugin,
3940 const char* javascript)
3941 {
3942 _OrthancPluginSetPluginProperty params;
3943 params.plugin = plugin;
3944 params.property = _OrthancPluginProperty_OrthancExplorer;
3945 params.value = javascript;
3946
3947 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3948 }
3949
3950
3951 typedef struct
3952 {
3953 char** result;
3954 int32_t property;
3955 const char* value;
3956 } _OrthancPluginGlobalProperty;
3957
3958
3972 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetGlobalProperty(
3973 OrthancPluginContext* context,
3974 int32_t property,
3975 const char* defaultValue)
3976 {
3977 char* result;
3978
3979 _OrthancPluginGlobalProperty params;
3980 params.result = &result;
3981 params.property = property;
3982 params.value = defaultValue;
3983
3984 if (context->InvokeService(context, _OrthancPluginService_GetGlobalProperty, &params) != OrthancPluginErrorCode_Success)
3985 {
3986 /* Error */
3987 return NULL;
3988 }
3989 else
3990 {
3991 return result;
3992 }
3993 }
3994
3995
4012 OrthancPluginContext* context,
4013 int32_t property,
4014 const char* value)
4015 {
4016 _OrthancPluginGlobalProperty params;
4017 params.result = NULL;
4018 params.property = property;
4019 params.value = value;
4020
4021 return context->InvokeService(context, _OrthancPluginService_SetGlobalProperty, &params);
4022 }
4023
4024
4025
4026 typedef struct
4027 {
4028 int32_t *resultInt32;
4029 uint32_t *resultUint32;
4030 int64_t *resultInt64;
4031 uint64_t *resultUint64;
4032 } _OrthancPluginReturnSingleValue;
4033
4042 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetCommandLineArgumentsCount(
4043 OrthancPluginContext* context)
4044 {
4045 uint32_t count = 0;
4046
4047 _OrthancPluginReturnSingleValue params;
4048 memset(&params, 0, sizeof(params));
4049 params.resultUint32 = &count;
4050
4051 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgumentsCount, &params) != OrthancPluginErrorCode_Success)
4052 {
4053 /* Error */
4054 return 0;
4055 }
4056 else
4057 {
4058 return count;
4059 }
4060 }
4061
4062
4063
4076 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetCommandLineArgument(
4077 OrthancPluginContext* context,
4078 uint32_t argument)
4079 {
4080 char* result;
4081
4082 _OrthancPluginGlobalProperty params;
4083 params.result = &result;
4084 params.property = (int32_t) argument;
4085 params.value = NULL;
4086
4087 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgument, &params) != OrthancPluginErrorCode_Success)
4088 {
4089 /* Error */
4090 return NULL;
4091 }
4092 else
4093 {
4094 return result;
4095 }
4096 }
4097
4098
4108 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetExpectedDatabaseVersion(
4109 OrthancPluginContext* context)
4110 {
4111 uint32_t count = 0;
4112
4113 _OrthancPluginReturnSingleValue params;
4114 memset(&params, 0, sizeof(params));
4115 params.resultUint32 = &count;
4116
4117 if (context->InvokeService(context, _OrthancPluginService_GetExpectedDatabaseVersion, &params) != OrthancPluginErrorCode_Success)
4118 {
4119 /* Error */
4120 return 0;
4121 }
4122 else
4123 {
4124 return count;
4125 }
4126 }
4127
4128
4129
4141 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfiguration(OrthancPluginContext* context)
4142 {
4143 char* result;
4144
4145 _OrthancPluginRetrieveDynamicString params;
4146 params.result = &result;
4147 params.argument = NULL;
4148
4149 if (context->InvokeService(context, _OrthancPluginService_GetConfiguration, &params) != OrthancPluginErrorCode_Success)
4150 {
4151 /* Error */
4152 return NULL;
4153 }
4154 else
4155 {
4156 return result;
4157 }
4158 }
4159
4160
4161
4162 typedef struct
4163 {
4165 const char* subType;
4166 const char* contentType;
4167 } _OrthancPluginStartMultipartAnswer;
4168
4183 OrthancPluginContext* context,
4185 const char* subType,
4186 const char* contentType)
4187 {
4188 _OrthancPluginStartMultipartAnswer params;
4189 params.output = output;
4190 params.subType = subType;
4191 params.contentType = contentType;
4192 return context->InvokeService(context, _OrthancPluginService_StartMultipartAnswer, &params);
4193 }
4194
4195
4212 OrthancPluginContext* context,
4214 const void* answer,
4215 uint32_t answerSize)
4216 {
4217 _OrthancPluginAnswerBuffer params;
4218 params.output = output;
4219 params.answer = answer;
4220 params.answerSize = answerSize;
4221 params.mimeType = NULL;
4222 return context->InvokeService(context, _OrthancPluginService_SendMultipartItem, &params);
4223 }
4224
4225
4226
4227 typedef struct
4228 {
4230 const void* source;
4231 uint32_t size;
4232 OrthancPluginCompressionType compression;
4233 uint8_t uncompress;
4234 } _OrthancPluginBufferCompression;
4235
4236
4254 OrthancPluginContext* context,
4256 const void* source,
4257 uint32_t size,
4258 OrthancPluginCompressionType compression,
4259 uint8_t uncompress)
4260 {
4261 _OrthancPluginBufferCompression params;
4262 params.target = target;
4263 params.source = source;
4264 params.size = size;
4265 params.compression = compression;
4266 params.uncompress = uncompress;
4267
4268 return context->InvokeService(context, _OrthancPluginService_BufferCompression, &params);
4269 }
4270
4271
4272
4273 typedef struct
4274 {
4276 const char* path;
4277 } _OrthancPluginReadFile;
4278
4291 OrthancPluginContext* context,
4293 const char* path)
4294 {
4295 _OrthancPluginReadFile params;
4296 params.target = target;
4297 params.path = path;
4298 return context->InvokeService(context, _OrthancPluginService_ReadFile, &params);
4299 }
4300
4301
4302
4303 typedef struct
4304 {
4305 const char* path;
4306 const void* data;
4307 uint32_t size;
4308 } _OrthancPluginWriteFile;
4309
4322 OrthancPluginContext* context,
4323 const char* path,
4324 const void* data,
4325 uint32_t size)
4326 {
4327 _OrthancPluginWriteFile params;
4328 params.path = path;
4329 params.data = data;
4330 params.size = size;
4331 return context->InvokeService(context, _OrthancPluginService_WriteFile, &params);
4332 }
4333
4334
4335
4336 typedef struct
4337 {
4338 const char** target;
4340 } _OrthancPluginGetErrorDescription;
4341
4352 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetErrorDescription(
4353 OrthancPluginContext* context,
4355 {
4356 const char* result = NULL;
4357
4358 _OrthancPluginGetErrorDescription params;
4359 params.target = &result;
4360 params.error = error;
4361
4362 if (context->InvokeService(context, _OrthancPluginService_GetErrorDescription, &params) != OrthancPluginErrorCode_Success ||
4363 result == NULL)
4364 {
4365 return "Unknown error code";
4366 }
4367 else
4368 {
4369 return result;
4370 }
4371 }
4372
4373
4374
4375 typedef struct
4376 {
4378 uint16_t status;
4379 const void* body;
4380 uint32_t bodySize;
4381 } _OrthancPluginSendHttpStatus;
4382
4405 ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatus(
4406 OrthancPluginContext* context,
4408 uint16_t status,
4409 const void* body,
4410 uint32_t bodySize)
4411 {
4412 _OrthancPluginSendHttpStatus params;
4413 params.output = output;
4414 params.status = status;
4415 params.body = body;
4416 params.bodySize = bodySize;
4417 context->InvokeService(context, _OrthancPluginService_SendHttpStatus, &params);
4418 }
4419
4420
4421
4422 typedef struct
4423 {
4424 const OrthancPluginImage* image;
4425 uint32_t* resultUint32;
4426 OrthancPluginPixelFormat* resultPixelFormat;
4427 void** resultBuffer;
4428 } _OrthancPluginGetImageInfo;
4429
4430
4442 OrthancPluginContext* context,
4443 const OrthancPluginImage* image)
4444 {
4446
4447 _OrthancPluginGetImageInfo params;
4448 memset(&params, 0, sizeof(params));
4449 params.image = image;
4450 params.resultPixelFormat = &target;
4451
4452 if (context->InvokeService(context, _OrthancPluginService_GetImagePixelFormat, &params) != OrthancPluginErrorCode_Success)
4453 {
4455 }
4456 else
4457 {
4458 return (OrthancPluginPixelFormat) target;
4459 }
4460 }
4461
4462
4463
4474 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImageWidth(
4475 OrthancPluginContext* context,
4476 const OrthancPluginImage* image)
4477 {
4478 uint32_t width;
4479
4480 _OrthancPluginGetImageInfo params;
4481 memset(&params, 0, sizeof(params));
4482 params.image = image;
4483 params.resultUint32 = &width;
4484
4485 if (context->InvokeService(context, _OrthancPluginService_GetImageWidth, &params) != OrthancPluginErrorCode_Success)
4486 {
4487 return 0;
4488 }
4489 else
4490 {
4491 return width;
4492 }
4493 }
4494
4495
4496
4507 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImageHeight(
4508 OrthancPluginContext* context,
4509 const OrthancPluginImage* image)
4510 {
4511 uint32_t height;
4512
4513 _OrthancPluginGetImageInfo params;
4514 memset(&params, 0, sizeof(params));
4515 params.image = image;
4516 params.resultUint32 = &height;
4517
4518 if (context->InvokeService(context, _OrthancPluginService_GetImageHeight, &params) != OrthancPluginErrorCode_Success)
4519 {
4520 return 0;
4521 }
4522 else
4523 {
4524 return height;
4525 }
4526 }
4527
4528
4529
4542 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImagePitch(
4543 OrthancPluginContext* context,
4544 const OrthancPluginImage* image)
4545 {
4546 uint32_t pitch;
4547
4548 _OrthancPluginGetImageInfo params;
4549 memset(&params, 0, sizeof(params));
4550 params.image = image;
4551 params.resultUint32 = &pitch;
4552
4553 if (context->InvokeService(context, _OrthancPluginService_GetImagePitch, &params) != OrthancPluginErrorCode_Success)
4554 {
4555 return 0;
4556 }
4557 else
4558 {
4559 return pitch;
4560 }
4561 }
4562
4563
4564
4576 ORTHANC_PLUGIN_INLINE void* OrthancPluginGetImageBuffer(
4577 OrthancPluginContext* context,
4578 const OrthancPluginImage* image)
4579 {
4580 void* target = NULL;
4581
4582 _OrthancPluginGetImageInfo params;
4583 memset(&params, 0, sizeof(params));
4584 params.resultBuffer = &target;
4585 params.image = image;
4586
4587 if (context->InvokeService(context, _OrthancPluginService_GetImageBuffer, &params) != OrthancPluginErrorCode_Success)
4588 {
4589 return NULL;
4590 }
4591 else
4592 {
4593 return target;
4594 }
4595 }
4596
4597
4598 typedef struct
4599 {
4600 OrthancPluginImage** target;
4601 const void* data;
4602 uint32_t size;
4604 } _OrthancPluginUncompressImage;
4605
4606
4620 OrthancPluginContext* context,
4621 const void* data,
4622 uint32_t size,
4624 {
4625 OrthancPluginImage* target = NULL;
4626
4627 _OrthancPluginUncompressImage params;
4628 memset(&params, 0, sizeof(params));
4629 params.target = &target;
4630 params.data = data;
4631 params.size = size;
4632 params.format = format;
4633
4634 if (context->InvokeService(context, _OrthancPluginService_UncompressImage, &params) != OrthancPluginErrorCode_Success)
4635 {
4636 return NULL;
4637 }
4638 else
4639 {
4640 return target;
4641 }
4642 }
4643
4644
4645
4646
4647 typedef struct
4648 {
4649 OrthancPluginImage* image;
4650 } _OrthancPluginFreeImage;
4651
4661 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeImage(
4662 OrthancPluginContext* context,
4663 OrthancPluginImage* image)
4664 {
4665 _OrthancPluginFreeImage params;
4666 params.image = image;
4667
4668 context->InvokeService(context, _OrthancPluginService_FreeImage, &params);
4669 }
4670
4671
4672
4673
4674 typedef struct
4675 {
4677 OrthancPluginImageFormat imageFormat;
4678 OrthancPluginPixelFormat pixelFormat;
4679 uint32_t width;
4680 uint32_t height;
4681 uint32_t pitch;
4682 const void* buffer;
4683 uint8_t quality;
4684 } _OrthancPluginCompressImage;
4685
4686
4707 OrthancPluginContext* context,
4710 uint32_t width,
4711 uint32_t height,
4712 uint32_t pitch,
4713 const void* buffer)
4714 {
4715 _OrthancPluginCompressImage params;
4716 memset(&params, 0, sizeof(params));
4717 params.target = target;
4718 params.imageFormat = OrthancPluginImageFormat_Png;
4719 params.pixelFormat = format;
4720 params.width = width;
4721 params.height = height;
4722 params.pitch = pitch;
4723 params.buffer = buffer;
4724 params.quality = 0; /* Unused for PNG */
4725
4726 return context->InvokeService(context, _OrthancPluginService_CompressImage, &params);
4727 }
4728
4729
4752 OrthancPluginContext* context,
4755 uint32_t width,
4756 uint32_t height,
4757 uint32_t pitch,
4758 const void* buffer,
4759 uint8_t quality)
4760 {
4761 _OrthancPluginCompressImage params;
4762 memset(&params, 0, sizeof(params));
4763 params.target = target;
4764 params.imageFormat = OrthancPluginImageFormat_Jpeg;
4765 params.pixelFormat = format;
4766 params.width = width;
4767 params.height = height;
4768 params.pitch = pitch;
4769 params.buffer = buffer;
4770 params.quality = quality;
4771
4772 return context->InvokeService(context, _OrthancPluginService_CompressImage, &params);
4773 }
4774
4775
4776
4799 OrthancPluginContext* context,
4802 uint32_t width,
4803 uint32_t height,
4804 uint32_t pitch,
4805 const void* buffer,
4806 uint8_t quality)
4807 {
4808 _OrthancPluginCompressAndAnswerImage params;
4809 params.output = output;
4810 params.imageFormat = OrthancPluginImageFormat_Jpeg;
4811 params.pixelFormat = format;
4812 params.width = width;
4813 params.height = height;
4814 params.pitch = pitch;
4815 params.buffer = buffer;
4816 params.quality = quality;
4817 context->InvokeService(context, _OrthancPluginService_CompressAndAnswerImage, &params);
4818 }
4819
4820
4821
4822
4823 typedef struct
4824 {
4827 const char* url;
4828 const char* username;
4829 const char* password;
4830 const void* body;
4831 uint32_t bodySize;
4832 } _OrthancPluginCallHttpClient;
4833
4834
4852 OrthancPluginContext* context,
4854 const char* url,
4855 const char* username,
4856 const char* password)
4857 {
4858 _OrthancPluginCallHttpClient params;
4859 memset(&params, 0, sizeof(params));
4860
4861 params.target = target;
4862 params.method = OrthancPluginHttpMethod_Get;
4863 params.url = url;
4864 params.username = username;
4865 params.password = password;
4866
4867 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4868 }
4869
4870
4890 OrthancPluginContext* context,
4892 const char* url,
4893 const void* body,
4894 uint32_t bodySize,
4895 const char* username,
4896 const char* password)
4897 {
4898 _OrthancPluginCallHttpClient params;
4899 memset(&params, 0, sizeof(params));
4900
4901 params.target = target;
4902 params.method = OrthancPluginHttpMethod_Post;
4903 params.url = url;
4904 params.body = body;
4905 params.bodySize = bodySize;
4906 params.username = username;
4907 params.password = password;
4908
4909 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4910 }
4911
4912
4932 OrthancPluginContext* context,
4934 const char* url,
4935 const void* body,
4936 uint32_t bodySize,
4937 const char* username,
4938 const char* password)
4939 {
4940 _OrthancPluginCallHttpClient params;
4941 memset(&params, 0, sizeof(params));
4942
4943 params.target = target;
4944 params.method = OrthancPluginHttpMethod_Put;
4945 params.url = url;
4946 params.body = body;
4947 params.bodySize = bodySize;
4948 params.username = username;
4949 params.password = password;
4950
4951 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4952 }
4953
4954
4970 OrthancPluginContext* context,
4971 const char* url,
4972 const char* username,
4973 const char* password)
4974 {
4975 _OrthancPluginCallHttpClient params;
4976 memset(&params, 0, sizeof(params));
4977
4978 params.method = OrthancPluginHttpMethod_Delete;
4979 params.url = url;
4980 params.username = username;
4981 params.password = password;
4982
4983 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4984 }
4985
4986
4987
4988 typedef struct
4989 {
4990 OrthancPluginImage** target;
4991 const OrthancPluginImage* source;
4992 OrthancPluginPixelFormat targetFormat;
4993 } _OrthancPluginConvertPixelFormat;
4994
4995
5008 OrthancPluginContext* context,
5009 const OrthancPluginImage* source,
5010 OrthancPluginPixelFormat targetFormat)
5011 {
5012 OrthancPluginImage* target = NULL;
5013
5014 _OrthancPluginConvertPixelFormat params;
5015 params.target = &target;
5016 params.source = source;
5017 params.targetFormat = targetFormat;
5018
5019 if (context->InvokeService(context, _OrthancPluginService_ConvertPixelFormat, &params) != OrthancPluginErrorCode_Success)
5020 {
5021 return NULL;
5022 }
5023 else
5024 {
5025 return target;
5026 }
5027 }
5028
5029
5030
5042 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFontsCount(
5043 OrthancPluginContext* context)
5044 {
5045 uint32_t count = 0;
5046
5047 _OrthancPluginReturnSingleValue params;
5048 memset(&params, 0, sizeof(params));
5049 params.resultUint32 = &count;
5050
5051 if (context->InvokeService(context, _OrthancPluginService_GetFontsCount, &params) != OrthancPluginErrorCode_Success)
5052 {
5053 /* Error */
5054 return 0;
5055 }
5056 else
5057 {
5058 return count;
5059 }
5060 }
5061
5062
5063
5064
5065 typedef struct
5066 {
5067 uint32_t fontIndex; /* in */
5068 const char** name; /* out */
5069 uint32_t* size; /* out */
5070 } _OrthancPluginGetFontInfo;
5071
5082 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetFontName(
5083 OrthancPluginContext* context,
5084 uint32_t fontIndex)
5085 {
5086 const char* result = NULL;
5087
5088 _OrthancPluginGetFontInfo params;
5089 memset(&params, 0, sizeof(params));
5090 params.name = &result;
5091 params.fontIndex = fontIndex;
5092
5093 if (context->InvokeService(context, _OrthancPluginService_GetFontInfo, &params) != OrthancPluginErrorCode_Success)
5094 {
5095 return NULL;
5096 }
5097 else
5098 {
5099 return result;
5100 }
5101 }
5102
5103
5114 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFontSize(
5115 OrthancPluginContext* context,
5116 uint32_t fontIndex)
5117 {
5118 uint32_t result;
5119
5120 _OrthancPluginGetFontInfo params;
5121 memset(&params, 0, sizeof(params));
5122 params.size = &result;
5123 params.fontIndex = fontIndex;
5124
5125 if (context->InvokeService(context, _OrthancPluginService_GetFontInfo, &params) != OrthancPluginErrorCode_Success)
5126 {
5127 return 0;
5128 }
5129 else
5130 {
5131 return result;
5132 }
5133 }
5134
5135
5136
5137 typedef struct
5138 {
5139 OrthancPluginImage* image;
5140 uint32_t fontIndex;
5141 const char* utf8Text;
5142 int32_t x;
5143 int32_t y;
5144 uint8_t r;
5145 uint8_t g;
5146 uint8_t b;
5147 } _OrthancPluginDrawText;
5148
5149
5168 OrthancPluginContext* context,
5169 OrthancPluginImage* image,
5170 uint32_t fontIndex,
5171 const char* utf8Text,
5172 int32_t x,
5173 int32_t y,
5174 uint8_t r,
5175 uint8_t g,
5176 uint8_t b)
5177 {
5178 _OrthancPluginDrawText params;
5179 memset(&params, 0, sizeof(params));
5180 params.image = image;
5181 params.fontIndex = fontIndex;
5182 params.utf8Text = utf8Text;
5183 params.x = x;
5184 params.y = y;
5185 params.r = r;
5186 params.g = g;
5187 params.b = b;
5188
5189 return context->InvokeService(context, _OrthancPluginService_DrawText, &params);
5190 }
5191
5192
5193
5194 typedef struct
5195 {
5196 OrthancPluginStorageArea* storageArea;
5197 const char* uuid;
5198 const void* content;
5199 uint64_t size;
5201 } _OrthancPluginStorageAreaCreate;
5202
5203
5223 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaCreate(
5224 OrthancPluginContext* context,
5225 OrthancPluginStorageArea* storageArea,
5226 const char* uuid,
5227 const void* content,
5228 uint64_t size,
5230 {
5231 _OrthancPluginStorageAreaCreate params;
5232 params.storageArea = storageArea;
5233 params.uuid = uuid;
5234 params.content = content;
5235 params.size = size;
5236 params.type = type;
5237
5238 return context->InvokeService(context, _OrthancPluginService_StorageAreaCreate, &params);
5239 }
5240
5241
5242 typedef struct
5243 {
5245 OrthancPluginStorageArea* storageArea;
5246 const char* uuid;
5248 } _OrthancPluginStorageAreaRead;
5249
5250
5269 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRead(
5270 OrthancPluginContext* context,
5272 OrthancPluginStorageArea* storageArea,
5273 const char* uuid,
5275 {
5276 _OrthancPluginStorageAreaRead params;
5277 params.target = target;
5278 params.storageArea = storageArea;
5279 params.uuid = uuid;
5280 params.type = type;
5281
5282 return context->InvokeService(context, _OrthancPluginService_StorageAreaRead, &params);
5283 }
5284
5285
5286 typedef struct
5287 {
5288 OrthancPluginStorageArea* storageArea;
5289 const char* uuid;
5291 } _OrthancPluginStorageAreaRemove;
5292
5310 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRemove(
5311 OrthancPluginContext* context,
5312 OrthancPluginStorageArea* storageArea,
5313 const char* uuid,
5315 {
5316 _OrthancPluginStorageAreaRemove params;
5317 params.storageArea = storageArea;
5318 params.uuid = uuid;
5319 params.type = type;
5320
5321 return context->InvokeService(context, _OrthancPluginService_StorageAreaRemove, &params);
5322 }
5323
5324
5325
5326 typedef struct
5327 {
5328 OrthancPluginErrorCode* target;
5329 int32_t code;
5330 uint16_t httpStatus;
5331 const char* message;
5332 } _OrthancPluginRegisterErrorCode;
5333
5350 OrthancPluginContext* context,
5351 int32_t code,
5352 uint16_t httpStatus,
5353 const char* message)
5354 {
5356
5357 _OrthancPluginRegisterErrorCode params;
5358 params.target = &target;
5359 params.code = code;
5360 params.httpStatus = httpStatus;
5361 params.message = message;
5362
5363 if (context->InvokeService(context, _OrthancPluginService_RegisterErrorCode, &params) == OrthancPluginErrorCode_Success)
5364 {
5365 return target;
5366 }
5367 else
5368 {
5369 /* There was an error while assigned the error. Use a generic code. */
5371 }
5372 }
5373
5374
5375
5376 typedef struct
5377 {
5378 uint16_t group;
5379 uint16_t element;
5381 const char* name;
5382 uint32_t minMultiplicity;
5383 uint32_t maxMultiplicity;
5384 } _OrthancPluginRegisterDictionaryTag;
5385
5406 OrthancPluginContext* context,
5407 uint16_t group,
5408 uint16_t element,
5410 const char* name,
5411 uint32_t minMultiplicity,
5412 uint32_t maxMultiplicity)
5413 {
5414 _OrthancPluginRegisterDictionaryTag params;
5415 params.group = group;
5416 params.element = element;
5417 params.vr = vr;
5418 params.name = name;
5419 params.minMultiplicity = minMultiplicity;
5420 params.maxMultiplicity = maxMultiplicity;
5421
5422 return context->InvokeService(context, _OrthancPluginService_RegisterDictionaryTag, &params);
5423 }
5424
5425
5426
5427 typedef struct
5428 {
5429 uint16_t group;
5430 uint16_t element;
5432 const char* name;
5433 uint32_t minMultiplicity;
5434 uint32_t maxMultiplicity;
5435 const char* privateCreator;
5436 } _OrthancPluginRegisterPrivateDictionaryTag;
5437
5458 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
5460 OrthancPluginContext* context,
5461 uint16_t group,
5462 uint16_t element,
5464 const char* name,
5465 uint32_t minMultiplicity,
5466 uint32_t maxMultiplicity,
5467 const char* privateCreator)
5468 {
5469 _OrthancPluginRegisterPrivateDictionaryTag params;
5470 params.group = group;
5471 params.element = element;
5472 params.vr = vr;
5473 params.name = name;
5474 params.minMultiplicity = minMultiplicity;
5475 params.maxMultiplicity = maxMultiplicity;
5476 params.privateCreator = privateCreator;
5477
5478 return context->InvokeService(context, _OrthancPluginService_RegisterPrivateDictionaryTag, &params);
5479 }
5480
5481
5482
5483 typedef struct
5484 {
5485 OrthancPluginStorageArea* storageArea;
5487 } _OrthancPluginReconstructMainDicomTags;
5488
5504 OrthancPluginContext* context,
5505 OrthancPluginStorageArea* storageArea,
5507 {
5508 _OrthancPluginReconstructMainDicomTags params;
5509 params.level = level;
5510 params.storageArea = storageArea;
5511
5512 return context->InvokeService(context, _OrthancPluginService_ReconstructMainDicomTags, &params);
5513 }
5514
5515
5516 typedef struct
5517 {
5518 char** result;
5519 const char* instanceId;
5520 const void* buffer;
5521 uint32_t size;
5524 uint32_t maxStringLength;
5525 } _OrthancPluginDicomToJson;
5526
5527
5547 ORTHANC_PLUGIN_INLINE char* OrthancPluginDicomBufferToJson(
5548 OrthancPluginContext* context,
5549 const void* buffer,
5550 uint32_t size,
5553 uint32_t maxStringLength)
5554 {
5555 char* result;
5556
5557 _OrthancPluginDicomToJson params;
5558 memset(&params, 0, sizeof(params));
5559 params.result = &result;
5560 params.buffer = buffer;
5561 params.size = size;
5562 params.format = format;
5563 params.flags = flags;
5564 params.maxStringLength = maxStringLength;
5565
5566 if (context->InvokeService(context, _OrthancPluginService_DicomBufferToJson, &params) != OrthancPluginErrorCode_Success)
5567 {
5568 /* Error */
5569 return NULL;
5570 }
5571 else
5572 {
5573 return result;
5574 }
5575 }
5576
5577
5596 ORTHANC_PLUGIN_INLINE char* OrthancPluginDicomInstanceToJson(
5597 OrthancPluginContext* context,
5598 const char* instanceId,
5601 uint32_t maxStringLength)
5602 {
5603 char* result;
5604
5605 _OrthancPluginDicomToJson params;
5606 memset(&params, 0, sizeof(params));
5607 params.result = &result;
5608 params.instanceId = instanceId;
5609 params.format = format;
5610 params.flags = flags;
5611 params.maxStringLength = maxStringLength;
5612
5613 if (context->InvokeService(context, _OrthancPluginService_DicomInstanceToJson, &params) != OrthancPluginErrorCode_Success)
5614 {
5615 /* Error */
5616 return NULL;
5617 }
5618 else
5619 {
5620 return result;
5621 }
5622 }
5623
5624
5625 typedef struct
5626 {
5628 const char* uri;
5629 uint32_t headersCount;
5630 const char* const* headersKeys;
5631 const char* const* headersValues;
5632 int32_t afterPlugins;
5633 } _OrthancPluginRestApiGet2;
5634
5655 OrthancPluginContext* context,
5657 const char* uri,
5658 uint32_t headersCount,
5659 const char* const* headersKeys,
5660 const char* const* headersValues,
5661 int32_t afterPlugins)
5662 {
5663 _OrthancPluginRestApiGet2 params;
5664 params.target = target;
5665 params.uri = uri;
5666 params.headersCount = headersCount;
5667 params.headersKeys = headersKeys;
5668 params.headersValues = headersValues;
5669 params.afterPlugins = afterPlugins;
5670
5671 return context->InvokeService(context, _OrthancPluginService_RestApiGet2, &params);
5672 }
5673
5674
5675
5676 typedef struct
5677 {
5679 } _OrthancPluginWorklistCallback;
5680
5693 OrthancPluginContext* context,
5695 {
5696 _OrthancPluginWorklistCallback params;
5697 params.callback = callback;
5698
5699 return context->InvokeService(context, _OrthancPluginService_RegisterWorklistCallback, &params);
5700 }
5701
5702
5703 typedef struct
5704 {
5706 const OrthancPluginWorklistQuery* query;
5707 const void* dicom;
5708 uint32_t size;
5709 } _OrthancPluginWorklistAnswersOperation;
5710
5728 OrthancPluginContext* context,
5730 const OrthancPluginWorklistQuery* query,
5731 const void* dicom,
5732 uint32_t size)
5733 {
5734 _OrthancPluginWorklistAnswersOperation params;
5735 params.answers = answers;
5736 params.query = query;
5737 params.dicom = dicom;
5738 params.size = size;
5739
5740 return context->InvokeService(context, _OrthancPluginService_WorklistAddAnswer, &params);
5741 }
5742
5743
5758 OrthancPluginContext* context,
5760 {
5761 _OrthancPluginWorklistAnswersOperation params;
5762 params.answers = answers;
5763 params.query = NULL;
5764 params.dicom = NULL;
5765 params.size = 0;
5766
5767 return context->InvokeService(context, _OrthancPluginService_WorklistMarkIncomplete, &params);
5768 }
5769
5770
5771 typedef struct
5772 {
5773 const OrthancPluginWorklistQuery* query;
5774 const void* dicom;
5775 uint32_t size;
5776 int32_t* isMatch;
5778 } _OrthancPluginWorklistQueryOperation;
5779
5795 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginWorklistIsMatch(
5796 OrthancPluginContext* context,
5797 const OrthancPluginWorklistQuery* query,
5798 const void* dicom,
5799 uint32_t size)
5800 {
5801 int32_t isMatch = 0;
5802
5803 _OrthancPluginWorklistQueryOperation params;
5804 params.query = query;
5805 params.dicom = dicom;
5806 params.size = size;
5807 params.isMatch = &isMatch;
5808 params.target = NULL;
5809
5810 if (context->InvokeService(context, _OrthancPluginService_WorklistIsMatch, &params) == OrthancPluginErrorCode_Success)
5811 {
5812 return isMatch;
5813 }
5814 else
5815 {
5816 /* Error: Assume non-match */
5817 return 0;
5818 }
5819 }
5820
5821
5835 OrthancPluginContext* context,
5837 const OrthancPluginWorklistQuery* query)
5838 {
5839 _OrthancPluginWorklistQueryOperation params;
5840 params.query = query;
5841 params.dicom = NULL;
5842 params.size = 0;
5843 params.isMatch = NULL;
5844 params.target = target;
5845
5846 return context->InvokeService(context, _OrthancPluginService_WorklistGetDicomQuery, &params);
5847 }
5848
5849
5861 OrthancPluginContext* context,
5862 const OrthancPluginDicomInstance* instance)
5863 {
5865
5866 _OrthancPluginAccessDicomInstance params;
5867 memset(&params, 0, sizeof(params));
5868 params.resultOrigin = &origin;
5869 params.instance = instance;
5870
5871 if (context->InvokeService(context, _OrthancPluginService_GetInstanceOrigin, &params) != OrthancPluginErrorCode_Success)
5872 {
5873 /* Error */
5875 }
5876 else
5877 {
5878 return origin;
5879 }
5880 }
5881
5882
5883 typedef struct
5884 {
5886 const char* json;
5887 const OrthancPluginImage* pixelData;
5889 } _OrthancPluginCreateDicom;
5890
5917 OrthancPluginContext* context,
5919 const char* json,
5920 const OrthancPluginImage* pixelData,
5922 {
5923 _OrthancPluginCreateDicom params;
5924 params.target = target;
5925 params.json = json;
5926 params.pixelData = pixelData;
5927 params.flags = flags;
5928
5929 return context->InvokeService(context, _OrthancPluginService_CreateDicom, &params);
5930 }
5931
5932
5933 typedef struct
5934 {
5936 } _OrthancPluginDecodeImageCallback;
5937
5953 OrthancPluginContext* context,
5955 {
5956 _OrthancPluginDecodeImageCallback params;
5957 params.callback = callback;
5958
5959 return context->InvokeService(context, _OrthancPluginService_RegisterDecodeImageCallback, &params);
5960 }
5961
5962
5963
5964 typedef struct
5965 {
5966 OrthancPluginImage** target;
5968 uint32_t width;
5969 uint32_t height;
5970 uint32_t pitch;
5971 void* buffer;
5972 const void* constBuffer;
5973 uint32_t bufferSize;
5974 uint32_t frameIndex;
5975 } _OrthancPluginCreateImage;
5976
5977
5991 OrthancPluginContext* context,
5993 uint32_t width,
5994 uint32_t height)
5995 {
5996 OrthancPluginImage* target = NULL;
5997
5998 _OrthancPluginCreateImage params;
5999 memset(&params, 0, sizeof(params));
6000 params.target = &target;
6001 params.format = format;
6002 params.width = width;
6003 params.height = height;
6004
6005 if (context->InvokeService(context, _OrthancPluginService_CreateImage, &params) != OrthancPluginErrorCode_Success)
6006 {
6007 return NULL;
6008 }
6009 else
6010 {
6011 return target;
6012 }
6013 }
6014
6015
6034 OrthancPluginContext* context,
6036 uint32_t width,
6037 uint32_t height,
6038 uint32_t pitch,
6039 void* buffer)
6040 {
6041 OrthancPluginImage* target = NULL;
6042
6043 _OrthancPluginCreateImage params;
6044 memset(&params, 0, sizeof(params));
6045 params.target = &target;
6046 params.format = format;
6047 params.width = width;
6048 params.height = height;
6049 params.pitch = pitch;
6050 params.buffer = buffer;
6051
6052 if (context->InvokeService(context, _OrthancPluginService_CreateImageAccessor, &params) != OrthancPluginErrorCode_Success)
6053 {
6054 return NULL;
6055 }
6056 else
6057 {
6058 return target;
6059 }
6060 }
6061
6062
6063
6080 OrthancPluginContext* context,
6081 const void* buffer,
6082 uint32_t bufferSize,
6083 uint32_t frameIndex)
6084 {
6085 OrthancPluginImage* target = NULL;
6086
6087 _OrthancPluginCreateImage params;
6088 memset(&params, 0, sizeof(params));
6089 params.target = &target;
6090 params.constBuffer = buffer;
6091 params.bufferSize = bufferSize;
6092 params.frameIndex = frameIndex;
6093
6094 if (context->InvokeService(context, _OrthancPluginService_DecodeDicomImage, &params) != OrthancPluginErrorCode_Success)
6095 {
6096 return NULL;
6097 }
6098 else
6099 {
6100 return target;
6101 }
6102 }
6103
6104
6105
6106 typedef struct
6107 {
6108 char** result;
6109 const void* buffer;
6110 uint32_t size;
6111 } _OrthancPluginComputeHash;
6112
6125 ORTHANC_PLUGIN_INLINE char* OrthancPluginComputeMd5(
6126 OrthancPluginContext* context,
6127 const void* buffer,
6128 uint32_t size)
6129 {
6130 char* result;
6131
6132 _OrthancPluginComputeHash params;
6133 params.result = &result;
6134 params.buffer = buffer;
6135 params.size = size;
6136
6137 if (context->InvokeService(context, _OrthancPluginService_ComputeMd5, &params) != OrthancPluginErrorCode_Success)
6138 {
6139 /* Error */
6140 return NULL;
6141 }
6142 else
6143 {
6144 return result;
6145 }
6146 }
6147
6148
6161 ORTHANC_PLUGIN_INLINE char* OrthancPluginComputeSha1(
6162 OrthancPluginContext* context,
6163 const void* buffer,
6164 uint32_t size)
6165 {
6166 char* result;
6167
6168 _OrthancPluginComputeHash params;
6169 params.result = &result;
6170 params.buffer = buffer;
6171 params.size = size;
6172
6173 if (context->InvokeService(context, _OrthancPluginService_ComputeSha1, &params) != OrthancPluginErrorCode_Success)
6174 {
6175 /* Error */
6176 return NULL;
6177 }
6178 else
6179 {
6180 return result;
6181 }
6182 }
6183
6184
6185
6186 typedef struct
6187 {
6189 const char* name;
6190 } _OrthancPluginLookupDictionary;
6191
6208 OrthancPluginContext* context,
6210 const char* name)
6211 {
6212 _OrthancPluginLookupDictionary params;
6213 params.target = target;
6214 params.name = name;
6215 return context->InvokeService(context, _OrthancPluginService_LookupDictionary, &params);
6216 }
6217
6218
6219
6220 typedef struct
6221 {
6223 const void* answer;
6224 uint32_t answerSize;
6225 uint32_t headersCount;
6226 const char* const* headersKeys;
6227 const char* const* headersValues;
6228 } _OrthancPluginSendMultipartItem2;
6229
6250 ORTHANC_PLUGIN_SINCE_SDK("1.0.0")
6252 OrthancPluginContext* context,
6254 const void* answer,
6255 uint32_t answerSize,
6256 uint32_t headersCount,
6257 const char* const* headersKeys,
6258 const char* const* headersValues)
6259 {
6260 _OrthancPluginSendMultipartItem2 params;
6261 params.output = output;
6262 params.answer = answer;
6263 params.answerSize = answerSize;
6264 params.headersCount = headersCount;
6265 params.headersKeys = headersKeys;
6266 params.headersValues = headersValues;
6267
6268 return context->InvokeService(context, _OrthancPluginService_SendMultipartItem2, &params);
6269 }
6270
6271
6272 typedef struct
6273 {
6275 } _OrthancPluginIncomingHttpRequestFilter;
6276
6289 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6290 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter(
6291 OrthancPluginContext* context,
6293 {
6294 _OrthancPluginIncomingHttpRequestFilter params;
6295 params.callback = callback;
6296
6297 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingHttpRequestFilter, &params);
6298 }
6299
6300
6301
6302 typedef struct
6303 {
6304 OrthancPluginMemoryBuffer* answerBody;
6305 OrthancPluginMemoryBuffer* answerHeaders;
6306 uint16_t* httpStatus;
6308 const char* url;
6309 uint32_t headersCount;
6310 const char* const* headersKeys;
6311 const char* const* headersValues;
6312 const void* body;
6313 uint32_t bodySize;
6314 const char* username;
6315 const char* password;
6316 uint32_t timeout;
6317 const char* certificateFile;
6318 const char* certificateKeyFile;
6319 const char* certificateKeyPassword;
6320 uint8_t pkcs11;
6321 } _OrthancPluginCallHttpClient2;
6322
6323
6324
6365 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6367 OrthancPluginContext* context,
6368 OrthancPluginMemoryBuffer* answerBody,
6369 OrthancPluginMemoryBuffer* answerHeaders,
6370 uint16_t* httpStatus,
6372 const char* url,
6373 uint32_t headersCount,
6374 const char* const* headersKeys,
6375 const char* const* headersValues,
6376 const void* body,
6377 uint32_t bodySize,
6378 const char* username,
6379 const char* password,
6380 uint32_t timeout,
6381 const char* certificateFile,
6382 const char* certificateKeyFile,
6383 const char* certificateKeyPassword,
6384 uint8_t pkcs11)
6385 {
6386 _OrthancPluginCallHttpClient2 params;
6387 memset(&params, 0, sizeof(params));
6388
6389 params.answerBody = answerBody;
6390 params.answerHeaders = answerHeaders;
6391 params.httpStatus = httpStatus;
6392 params.method = method;
6393 params.url = url;
6394 params.headersCount = headersCount;
6395 params.headersKeys = headersKeys;
6396 params.headersValues = headersValues;
6397 params.body = body;
6398 params.bodySize = bodySize;
6399 params.username = username;
6400 params.password = password;
6401 params.timeout = timeout;
6402 params.certificateFile = certificateFile;
6403 params.certificateKeyFile = certificateKeyFile;
6404 params.certificateKeyPassword = certificateKeyPassword;
6405 params.pkcs11 = pkcs11;
6406
6407 return context->InvokeService(context, _OrthancPluginService_CallHttpClient2, &params);
6408 }
6409
6410
6421 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6422 ORTHANC_PLUGIN_INLINE char* OrthancPluginGenerateUuid(
6423 OrthancPluginContext* context)
6424 {
6425 char* result;
6426
6427 _OrthancPluginRetrieveDynamicString params;
6428 params.result = &result;
6429 params.argument = NULL;
6430
6431 if (context->InvokeService(context, _OrthancPluginService_GenerateUuid, &params) != OrthancPluginErrorCode_Success)
6432 {
6433 /* Error */
6434 return NULL;
6435 }
6436 else
6437 {
6438 return result;
6439 }
6440 }
6441
6442
6443
6444
6445 typedef struct
6446 {
6448 } _OrthancPluginFindCallback;
6449
6461 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6463 OrthancPluginContext* context,
6465 {
6466 _OrthancPluginFindCallback params;
6467 params.callback = callback;
6468
6469 return context->InvokeService(context, _OrthancPluginService_RegisterFindCallback, &params);
6470 }
6471
6472
6473 typedef struct
6474 {
6475 OrthancPluginFindAnswers *answers;
6476 const OrthancPluginFindQuery *query;
6477 const void *dicom;
6478 uint32_t size;
6479 uint32_t index;
6480 uint32_t *resultUint32;
6481 uint16_t *resultGroup;
6482 uint16_t *resultElement;
6483 char **resultString;
6484 } _OrthancPluginFindOperation;
6485
6501 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6503 OrthancPluginContext* context,
6504 OrthancPluginFindAnswers* answers,
6505 const void* dicom,
6506 uint32_t size)
6507 {
6508 _OrthancPluginFindOperation params;
6509 memset(&params, 0, sizeof(params));
6510 params.answers = answers;
6511 params.dicom = dicom;
6512 params.size = size;
6513
6514 return context->InvokeService(context, _OrthancPluginService_FindAddAnswer, &params);
6515 }
6516
6517
6531 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6533 OrthancPluginContext* context,
6534 OrthancPluginFindAnswers* answers)
6535 {
6536 _OrthancPluginFindOperation params;
6537 memset(&params, 0, sizeof(params));
6538 params.answers = answers;
6539
6540 return context->InvokeService(context, _OrthancPluginService_FindMarkIncomplete, &params);
6541 }
6542
6543
6544
6556 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6557 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFindQuerySize(
6558 OrthancPluginContext* context,
6559 const OrthancPluginFindQuery* query)
6560 {
6561 uint32_t count = 0;
6562
6563 _OrthancPluginFindOperation params;
6564 memset(&params, 0, sizeof(params));
6565 params.query = query;
6566 params.resultUint32 = &count;
6567
6568 if (context->InvokeService(context, _OrthancPluginService_GetFindQuerySize, &params) != OrthancPluginErrorCode_Success)
6569 {
6570 /* Error */
6571 return 0;
6572 }
6573 else
6574 {
6575 return count;
6576 }
6577 }
6578
6579
6594 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6596 OrthancPluginContext* context,
6597 uint16_t* group,
6598 uint16_t* element,
6599 const OrthancPluginFindQuery* query,
6600 uint32_t index)
6601 {
6602 _OrthancPluginFindOperation params;
6603 memset(&params, 0, sizeof(params));
6604 params.query = query;
6605 params.index = index;
6606 params.resultGroup = group;
6607 params.resultElement = element;
6608
6609 return context->InvokeService(context, _OrthancPluginService_GetFindQueryTag, &params);
6610 }
6611
6612
6626 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6627 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetFindQueryTagName(
6628 OrthancPluginContext* context,
6629 const OrthancPluginFindQuery* query,
6630 uint32_t index)
6631 {
6632 char* result;
6633
6634 _OrthancPluginFindOperation params;
6635 memset(&params, 0, sizeof(params));
6636 params.query = query;
6637 params.index = index;
6638 params.resultString = &result;
6639
6640 if (context->InvokeService(context, _OrthancPluginService_GetFindQueryTagName, &params) != OrthancPluginErrorCode_Success)
6641 {
6642 /* Error */
6643 return NULL;
6644 }
6645 else
6646 {
6647 return result;
6648 }
6649 }
6650
6651
6665 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6666 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetFindQueryValue(
6667 OrthancPluginContext* context,
6668 const OrthancPluginFindQuery* query,
6669 uint32_t index)
6670 {
6671 char* result;
6672
6673 _OrthancPluginFindOperation params;
6674 memset(&params, 0, sizeof(params));
6675 params.query = query;
6676 params.index = index;
6677 params.resultString = &result;
6678
6679 if (context->InvokeService(context, _OrthancPluginService_GetFindQueryValue, &params) != OrthancPluginErrorCode_Success)
6680 {
6681 /* Error */
6682 return NULL;
6683 }
6684 else
6685 {
6686 return result;
6687 }
6688 }
6689
6690
6691
6692
6693 typedef struct
6694 {
6696 OrthancPluginGetMoveSize getMoveSize;
6697 OrthancPluginApplyMove applyMove;
6698 OrthancPluginFreeMove freeMove;
6699 } _OrthancPluginMoveCallback;
6700
6714 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6716 OrthancPluginContext* context,
6718 OrthancPluginGetMoveSize getMoveSize,
6719 OrthancPluginApplyMove applyMove,
6720 OrthancPluginFreeMove freeMove)
6721 {
6722 _OrthancPluginMoveCallback params;
6723 params.callback = callback;
6724 params.getMoveSize = getMoveSize;
6725 params.applyMove = applyMove;
6726 params.freeMove = freeMove;
6727
6728 return context->InvokeService(context, _OrthancPluginService_RegisterMoveCallback, &params);
6729 }
6730
6731
6732
6733 typedef struct
6734 {
6735 OrthancPluginFindMatcher** target;
6736 const void* query;
6737 uint32_t size;
6738 } _OrthancPluginCreateFindMatcher;
6739
6740
6754 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6756 OrthancPluginContext* context,
6757 const void* query,
6758 uint32_t size)
6759 {
6760 OrthancPluginFindMatcher* target = NULL;
6761
6762 _OrthancPluginCreateFindMatcher params;
6763 memset(&params, 0, sizeof(params));
6764 params.target = &target;
6765 params.query = query;
6766 params.size = size;
6767
6768 if (context->InvokeService(context, _OrthancPluginService_CreateFindMatcher, &params) != OrthancPluginErrorCode_Success)
6769 {
6770 return NULL;
6771 }
6772 else
6773 {
6774 return target;
6775 }
6776 }
6777
6778
6779 typedef struct
6780 {
6781 OrthancPluginFindMatcher* matcher;
6782 } _OrthancPluginFreeFindMatcher;
6783
6793 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6794 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeFindMatcher(
6795 OrthancPluginContext* context,
6796 OrthancPluginFindMatcher* matcher)
6797 {
6798 _OrthancPluginFreeFindMatcher params;
6799 params.matcher = matcher;
6800
6801 context->InvokeService(context, _OrthancPluginService_FreeFindMatcher, &params);
6802 }
6803
6804
6805 typedef struct
6806 {
6807 const OrthancPluginFindMatcher* matcher;
6808 const void* dicom;
6809 uint32_t size;
6810 int32_t* isMatch;
6811 } _OrthancPluginFindMatcherIsMatch;
6812
6827 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6828 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginFindMatcherIsMatch(
6829 OrthancPluginContext* context,
6830 const OrthancPluginFindMatcher* matcher,
6831 const void* dicom,
6832 uint32_t size)
6833 {
6834 int32_t isMatch = 0;
6835
6836 _OrthancPluginFindMatcherIsMatch params;
6837 params.matcher = matcher;
6838 params.dicom = dicom;
6839 params.size = size;
6840 params.isMatch = &isMatch;
6841
6842 if (context->InvokeService(context, _OrthancPluginService_FindMatcherIsMatch, &params) == OrthancPluginErrorCode_Success)
6843 {
6844 return isMatch;
6845 }
6846 else
6847 {
6848 /* Error: Assume non-match */
6849 return 0;
6850 }
6851 }
6852
6853
6854 typedef struct
6855 {
6857 } _OrthancPluginIncomingHttpRequestFilter2;
6858
6870 ORTHANC_PLUGIN_SINCE_SDK("1.3.0")
6872 OrthancPluginContext* context,
6874 {
6875 _OrthancPluginIncomingHttpRequestFilter2 params;
6876 params.callback = callback;
6877
6878 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingHttpRequestFilter2, &params);
6879 }
6880
6881
6882
6883 typedef struct
6884 {
6885 OrthancPluginPeers** peers;
6886 } _OrthancPluginGetPeers;
6887
6899 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6901 OrthancPluginContext* context)
6902 {
6903 OrthancPluginPeers* peers = NULL;
6904
6905 _OrthancPluginGetPeers params;
6906 memset(&params, 0, sizeof(params));
6907 params.peers = &peers;
6908
6909 if (context->InvokeService(context, _OrthancPluginService_GetPeers, &params) != OrthancPluginErrorCode_Success)
6910 {
6911 return NULL;
6912 }
6913 else
6914 {
6915 return peers;
6916 }
6917 }
6918
6919
6920 typedef struct
6921 {
6922 OrthancPluginPeers* peers;
6923 } _OrthancPluginFreePeers;
6924
6934 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6935 ORTHANC_PLUGIN_INLINE void OrthancPluginFreePeers(
6936 OrthancPluginContext* context,
6937 OrthancPluginPeers* peers)
6938 {
6939 _OrthancPluginFreePeers params;
6940 params.peers = peers;
6941
6942 context->InvokeService(context, _OrthancPluginService_FreePeers, &params);
6943 }
6944
6945
6946 typedef struct
6947 {
6948 uint32_t* target;
6949 const OrthancPluginPeers* peers;
6950 } _OrthancPluginGetPeersCount;
6951
6965 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6966 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetPeersCount(
6967 OrthancPluginContext* context,
6968 const OrthancPluginPeers* peers)
6969 {
6970 uint32_t target = 0;
6971
6972 _OrthancPluginGetPeersCount params;
6973 memset(&params, 0, sizeof(params));
6974 params.target = &target;
6975 params.peers = peers;
6976
6977 if (context->InvokeService(context, _OrthancPluginService_GetPeersCount, &params) != OrthancPluginErrorCode_Success)
6978 {
6979 /* Error */
6980 return 0;
6981 }
6982 else
6983 {
6984 return target;
6985 }
6986 }
6987
6988
6989 typedef struct
6990 {
6991 const char** target;
6992 const OrthancPluginPeers* peers;
6993 uint32_t peerIndex;
6994 const char* userProperty;
6995 } _OrthancPluginGetPeerProperty;
6996
7014 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7015 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerName(
7016 OrthancPluginContext* context,
7017 const OrthancPluginPeers* peers,
7018 uint32_t peerIndex)
7019 {
7020 const char* target = NULL;
7021
7022 _OrthancPluginGetPeerProperty params;
7023 memset(&params, 0, sizeof(params));
7024 params.target = &target;
7025 params.peers = peers;
7026 params.peerIndex = peerIndex;
7027 params.userProperty = NULL;
7028
7029 if (context->InvokeService(context, _OrthancPluginService_GetPeerName, &params) != OrthancPluginErrorCode_Success)
7030 {
7031 /* Error */
7032 return NULL;
7033 }
7034 else
7035 {
7036 return target;
7037 }
7038 }
7039
7040
7056 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7057 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerUrl(
7058 OrthancPluginContext* context,
7059 const OrthancPluginPeers* peers,
7060 uint32_t peerIndex)
7061 {
7062 const char* target = NULL;
7063
7064 _OrthancPluginGetPeerProperty params;
7065 memset(&params, 0, sizeof(params));
7066 params.target = &target;
7067 params.peers = peers;
7068 params.peerIndex = peerIndex;
7069 params.userProperty = NULL;
7070
7071 if (context->InvokeService(context, _OrthancPluginService_GetPeerUrl, &params) != OrthancPluginErrorCode_Success)
7072 {
7073 /* Error */
7074 return NULL;
7075 }
7076 else
7077 {
7078 return target;
7079 }
7080 }
7081
7082
7083
7103 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7104 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerUserProperty(
7105 OrthancPluginContext* context,
7106 const OrthancPluginPeers* peers,
7107 uint32_t peerIndex,
7108 const char* userProperty)
7109 {
7110 const char* target = NULL;
7111
7112 _OrthancPluginGetPeerProperty params;
7113 memset(&params, 0, sizeof(params));
7114 params.target = &target;
7115 params.peers = peers;
7116 params.peerIndex = peerIndex;
7117 params.userProperty = userProperty;
7118
7119 if (context->InvokeService(context, _OrthancPluginService_GetPeerUserProperty, &params) != OrthancPluginErrorCode_Success)
7120 {
7121 /* No such user property */
7122 return NULL;
7123 }
7124 else
7125 {
7126 return target;
7127 }
7128 }
7129
7130
7131
7132 typedef struct
7133 {
7134 OrthancPluginMemoryBuffer* answerBody;
7135 OrthancPluginMemoryBuffer* answerHeaders;
7136 uint16_t* httpStatus;
7137 const OrthancPluginPeers* peers;
7138 uint32_t peerIndex;
7140 const char* uri;
7141 uint32_t additionalHeadersCount;
7142 const char* const* additionalHeadersKeys;
7143 const char* const* additionalHeadersValues;
7144 const void* body;
7145 uint32_t bodySize;
7146 uint32_t timeout;
7147 } _OrthancPluginCallPeerApi;
7148
7185 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7187 OrthancPluginContext* context,
7188 OrthancPluginMemoryBuffer* answerBody,
7189 OrthancPluginMemoryBuffer* answerHeaders,
7190 uint16_t* httpStatus,
7191 const OrthancPluginPeers* peers,
7192 uint32_t peerIndex,
7194 const char* uri,
7195 uint32_t additionalHeadersCount,
7196 const char* const* additionalHeadersKeys,
7197 const char* const* additionalHeadersValues,
7198 const void* body,
7199 uint32_t bodySize,
7200 uint32_t timeout)
7201 {
7202 _OrthancPluginCallPeerApi params;
7203 memset(&params, 0, sizeof(params));
7204
7205 params.answerBody = answerBody;
7206 params.answerHeaders = answerHeaders;
7207 params.httpStatus = httpStatus;
7208 params.peers = peers;
7209 params.peerIndex = peerIndex;
7210 params.method = method;
7211 params.uri = uri;
7212 params.additionalHeadersCount = additionalHeadersCount;
7213 params.additionalHeadersKeys = additionalHeadersKeys;
7214 params.additionalHeadersValues = additionalHeadersValues;
7215 params.body = body;
7216 params.bodySize = bodySize;
7217 params.timeout = timeout;
7218
7219 return context->InvokeService(context, _OrthancPluginService_CallPeerApi, &params);
7220 }
7221
7222
7223
7224
7225
7226 typedef struct
7227 {
7228 OrthancPluginJob** target;
7229 void *job;
7230 OrthancPluginJobFinalize finalize;
7231 const char *type;
7232 OrthancPluginJobGetProgress getProgress;
7233 OrthancPluginJobGetContent getContent;
7234 OrthancPluginJobGetSerialized getSerialized;
7238 } _OrthancPluginCreateJob;
7239
7272 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7273 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginJob *OrthancPluginCreateJob(
7274 OrthancPluginContext *context,
7275 void *job,
7276 OrthancPluginJobFinalize finalize,
7277 const char *type,
7278 OrthancPluginJobGetProgress getProgress,
7279 OrthancPluginJobGetContent getContent,
7280 OrthancPluginJobGetSerialized getSerialized,
7284 {
7285 OrthancPluginJob* target = NULL;
7286
7287 _OrthancPluginCreateJob params;
7288 memset(&params, 0, sizeof(params));
7289
7290 params.target = &target;
7291 params.job = job;
7292 params.finalize = finalize;
7293 params.type = type;
7294 params.getProgress = getProgress;
7295 params.getContent = getContent;
7296 params.getSerialized = getSerialized;
7297 params.step = step;
7298 params.stop = stop;
7299 params.reset = reset;
7300
7301 if (context->InvokeService(context, _OrthancPluginService_CreateJob, &params) != OrthancPluginErrorCode_Success ||
7302 target == NULL)
7303 {
7304 /* Error */
7305 return NULL;
7306 }
7307 else
7308 {
7309 return target;
7310 }
7311 }
7312
7313
7314 typedef struct
7315 {
7316 OrthancPluginJob** target;
7317 void *job;
7318 OrthancPluginJobFinalize finalize;
7319 const char *type;
7320 OrthancPluginJobGetProgress getProgress;
7321 OrthancPluginJobGetContent2 getContent;
7322 OrthancPluginJobGetSerialized2 getSerialized;
7326 } _OrthancPluginCreateJob2;
7327
7359 ORTHANC_PLUGIN_SINCE_SDK("1.11.3")
7361 OrthancPluginContext *context,
7362 void *job,
7363 OrthancPluginJobFinalize finalize,
7364 const char *type,
7365 OrthancPluginJobGetProgress getProgress,
7366 OrthancPluginJobGetContent2 getContent,
7367 OrthancPluginJobGetSerialized2 getSerialized,
7371 {
7372 OrthancPluginJob* target = NULL;
7373
7374 _OrthancPluginCreateJob2 params;
7375 memset(&params, 0, sizeof(params));
7376
7377 params.target = &target;
7378 params.job = job;
7379 params.finalize = finalize;
7380 params.type = type;
7381 params.getProgress = getProgress;
7382 params.getContent = getContent;
7383 params.getSerialized = getSerialized;
7384 params.step = step;
7385 params.stop = stop;
7386 params.reset = reset;
7387
7388 if (context->InvokeService(context, _OrthancPluginService_CreateJob2, &params) != OrthancPluginErrorCode_Success ||
7389 target == NULL)
7390 {
7391 /* Error */
7392 return NULL;
7393 }
7394 else
7395 {
7396 return target;
7397 }
7398 }
7399
7400
7401 typedef struct
7402 {
7403 OrthancPluginJob* job;
7404 } _OrthancPluginFreeJob;
7405
7415 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7416 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeJob(
7417 OrthancPluginContext* context,
7418 OrthancPluginJob* job)
7419 {
7420 _OrthancPluginFreeJob params;
7421 params.job = job;
7422
7423 context->InvokeService(context, _OrthancPluginService_FreeJob, &params);
7424 }
7425
7426
7427
7428 typedef struct
7429 {
7430 char** resultId;
7431 OrthancPluginJob *job;
7432 int32_t priority;
7433 } _OrthancPluginSubmitJob;
7434
7448 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7449 ORTHANC_PLUGIN_INLINE char *OrthancPluginSubmitJob(
7450 OrthancPluginContext *context,
7451 OrthancPluginJob *job,
7452 int32_t priority)
7453 {
7454 char* resultId = NULL;
7455
7456 _OrthancPluginSubmitJob params;
7457 memset(&params, 0, sizeof(params));
7458
7459 params.resultId = &resultId;
7460 params.job = job;
7461 params.priority = priority;
7462
7463 if (context->InvokeService(context, _OrthancPluginService_SubmitJob, &params) != OrthancPluginErrorCode_Success ||
7464 resultId == NULL)
7465 {
7466 /* Error */
7467 return NULL;
7468 }
7469 else
7470 {
7471 return resultId;
7472 }
7473 }
7474
7475
7476
7477 typedef struct
7478 {
7479 OrthancPluginJobsUnserializer unserializer;
7480 } _OrthancPluginJobsUnserializer;
7481
7494 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7495 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterJobsUnserializer(
7496 OrthancPluginContext* context,
7497 OrthancPluginJobsUnserializer unserializer)
7498 {
7499 _OrthancPluginJobsUnserializer params;
7500 params.unserializer = unserializer;
7501
7502 context->InvokeService(context, _OrthancPluginService_RegisterJobsUnserializer, &params);
7503 }
7504
7505
7506
7507 typedef struct
7508 {
7510 const char* details;
7511 uint8_t log;
7512 } _OrthancPluginSetHttpErrorDetails;
7513
7531 ORTHANC_PLUGIN_SINCE_SDK("1.5.0")
7532 ORTHANC_PLUGIN_INLINE void OrthancPluginSetHttpErrorDetails(
7533 OrthancPluginContext* context,
7535 const char* details,
7536 uint8_t log)
7537 {
7538 _OrthancPluginSetHttpErrorDetails params;
7539 params.output = output;
7540 params.details = details;
7541 params.log = log;
7542 context->InvokeService(context, _OrthancPluginService_SetHttpErrorDetails, &params);
7543 }
7544
7545
7546
7547 typedef struct
7548 {
7549 const char** result;
7550 const char* argument;
7551 } _OrthancPluginRetrieveStaticString;
7552
7564 ORTHANC_PLUGIN_SINCE_SDK("1.5.0")
7565 ORTHANC_PLUGIN_INLINE const char* OrthancPluginAutodetectMimeType(
7566 OrthancPluginContext* context,
7567 const char* path)
7568 {
7569 const char* result = NULL;
7570
7571 _OrthancPluginRetrieveStaticString params;
7572 params.result = &result;
7573 params.argument = path;
7574
7575 if (context->InvokeService(context, _OrthancPluginService_AutodetectMimeType, &params) != OrthancPluginErrorCode_Success)
7576 {
7577 /* Error */
7578 return NULL;
7579 }
7580 else
7581 {
7582 return result;
7583 }
7584 }
7585
7586
7587
7588 typedef struct
7589 {
7590 const char* name;
7591 float value;
7593 } _OrthancPluginSetMetricsValue;
7594
7611 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7612 ORTHANC_PLUGIN_INLINE void OrthancPluginSetMetricsValue(
7613 OrthancPluginContext* context,
7614 const char* name,
7615 float value,
7617 {
7618 _OrthancPluginSetMetricsValue params;
7619 params.name = name;
7620 params.value = value;
7621 params.type = type;
7622 context->InvokeService(context, _OrthancPluginService_SetMetricsValue, &params);
7623 }
7624
7625
7626
7627 typedef struct
7628 {
7630 } _OrthancPluginRegisterRefreshMetricsCallback;
7631
7643 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7645 OrthancPluginContext* context,
7647 {
7648 _OrthancPluginRegisterRefreshMetricsCallback params;
7649 params.callback = callback;
7650 context->InvokeService(context, _OrthancPluginService_RegisterRefreshMetricsCallback, &params);
7651 }
7652
7653
7654
7655
7656 typedef struct
7657 {
7658 char** target;
7659 const void* dicom;
7660 uint32_t dicomSize;
7662 } _OrthancPluginEncodeDicomWeb;
7663
7680 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7681 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson(
7682 OrthancPluginContext* context,
7683 const void* dicom,
7684 uint32_t dicomSize,
7686 {
7687 char* target = NULL;
7688
7689 _OrthancPluginEncodeDicomWeb params;
7690 params.target = &target;
7691 params.dicom = dicom;
7692 params.dicomSize = dicomSize;
7693 params.callback = callback;
7694
7695 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebJson, &params) != OrthancPluginErrorCode_Success)
7696 {
7697 /* Error */
7698 return NULL;
7699 }
7700 else
7701 {
7702 return target;
7703 }
7704 }
7705
7706
7723 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7724 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml(
7725 OrthancPluginContext* context,
7726 const void* dicom,
7727 uint32_t dicomSize,
7729 {
7730 char* target = NULL;
7731
7732 _OrthancPluginEncodeDicomWeb params;
7733 params.target = &target;
7734 params.dicom = dicom;
7735 params.dicomSize = dicomSize;
7736 params.callback = callback;
7737
7738 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebXml, &params) != OrthancPluginErrorCode_Success)
7739 {
7740 /* Error */
7741 return NULL;
7742 }
7743 else
7744 {
7745 return target;
7746 }
7747 }
7748
7749
7750
7751 typedef struct
7752 {
7753 char** target;
7754 const void* dicom;
7755 uint32_t dicomSize;
7757 void* payload;
7758 } _OrthancPluginEncodeDicomWeb2;
7759
7776 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
7777 ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson2(
7778 OrthancPluginContext* context,
7779 const void* dicom,
7780 uint32_t dicomSize,
7782 void* payload)
7783 {
7784 char* target = NULL;
7785
7786 _OrthancPluginEncodeDicomWeb2 params;
7787 params.target = &target;
7788 params.dicom = dicom;
7789 params.dicomSize = dicomSize;
7790 params.callback = callback;
7791 params.payload = payload;
7792
7793 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebJson2, &params) != OrthancPluginErrorCode_Success)
7794 {
7795 /* Error */
7796 return NULL;
7797 }
7798 else
7799 {
7800 return target;
7801 }
7802 }
7803
7804
7821 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
7822 ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml2(
7823 OrthancPluginContext* context,
7824 const void* dicom,
7825 uint32_t dicomSize,
7827 void* payload)
7828 {
7829 char* target = NULL;
7830
7831 _OrthancPluginEncodeDicomWeb2 params;
7832 params.target = &target;
7833 params.dicom = dicom;
7834 params.dicomSize = dicomSize;
7835 params.callback = callback;
7836 params.payload = payload;
7837
7838 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebXml2, &params) != OrthancPluginErrorCode_Success)
7839 {
7840 /* Error */
7841 return NULL;
7842 }
7843 else
7844 {
7845 return target;
7846 }
7847 }
7848
7849
7850
7867 void* answer,
7868 const char* key,
7869 const char* value);
7870
7871
7888 void* answer,
7889 const void* data,
7890 uint32_t size);
7891
7892
7907 typedef uint8_t (*OrthancPluginChunkedClientRequestIsDone) (void* request);
7908
7909
7925
7926
7940 typedef const void* (*OrthancPluginChunkedClientRequestGetChunkData) (void* request);
7941
7942
7956 typedef uint32_t (*OrthancPluginChunkedClientRequestGetChunkSize) (void* request);
7957
7958
7959 typedef struct
7960 {
7961 void* answer;
7964 uint16_t* httpStatus;
7966 const char* url;
7967 uint32_t headersCount;
7968 const char* const* headersKeys;
7969 const char* const* headersValues;
7970 void* request;
7975 const char* username;
7976 const char* password;
7977 uint32_t timeout;
7978 const char* certificateFile;
7979 const char* certificateKeyFile;
7980 const char* certificateKeyPassword;
7981 uint8_t pkcs11;
7982 } _OrthancPluginChunkedHttpClient;
7983
7984
8035 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8037 OrthancPluginContext* context,
8038 void* answer,
8041 uint16_t* httpStatus,
8043 const char* url,
8044 uint32_t headersCount,
8045 const char* const* headersKeys,
8046 const char* const* headersValues,
8047 void* request,
8052 const char* username,
8053 const char* password,
8054 uint32_t timeout,
8055 const char* certificateFile,
8056 const char* certificateKeyFile,
8057 const char* certificateKeyPassword,
8058 uint8_t pkcs11)
8059 {
8060 _OrthancPluginChunkedHttpClient params;
8061 memset(&params, 0, sizeof(params));
8062
8063 /* In common with OrthancPluginHttpClient() */
8064 params.httpStatus = httpStatus;
8065 params.method = method;
8066 params.url = url;
8067 params.headersCount = headersCount;
8068 params.headersKeys = headersKeys;
8069 params.headersValues = headersValues;
8070 params.username = username;
8071 params.password = password;
8072 params.timeout = timeout;
8073 params.certificateFile = certificateFile;
8074 params.certificateKeyFile = certificateKeyFile;
8075 params.certificateKeyPassword = certificateKeyPassword;
8076 params.pkcs11 = pkcs11;
8077
8078 /* For chunked body/answer */
8079 params.answer = answer;
8080 params.answerAddChunk = answerAddChunk;
8081 params.answerAddHeader = answerAddHeader;
8082 params.request = request;
8083 params.requestIsDone = requestIsDone;
8084 params.requestChunkData = requestChunkData;
8085 params.requestChunkSize = requestChunkSize;
8086 params.requestNext = requestNext;
8087
8088 return context->InvokeService(context, _OrthancPluginService_ChunkedHttpClient, &params);
8089 }
8090
8091
8092
8097 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8098 _OrthancPluginServerChunkedRequestReader_t OrthancPluginServerChunkedRequestReader;
8099
8100
8101
8119 const char* uri,
8120 const OrthancPluginHttpRequest* request);
8121
8122
8138 const void* data,
8139 uint32_t size);
8140
8141
8158 OrthancPluginRestOutput* output);
8159
8160
8176
8177 typedef struct
8178 {
8179 const char* pathRegularExpression;
8180 OrthancPluginRestCallback getHandler;
8182 OrthancPluginRestCallback deleteHandler;
8187 } _OrthancPluginChunkedRestCallback;
8188
8189
8219 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8221 OrthancPluginContext* context,
8222 const char* pathRegularExpression,
8223 OrthancPluginRestCallback getHandler,
8225 OrthancPluginRestCallback deleteHandler,
8230 {
8231 _OrthancPluginChunkedRestCallback params;
8232 params.pathRegularExpression = pathRegularExpression;
8233 params.getHandler = getHandler;
8234 params.postHandler = postHandler;
8235 params.deleteHandler = deleteHandler;
8236 params.putHandler = putHandler;
8237 params.addChunk = addChunk;
8238 params.execute = execute;
8239 params.finalize = finalize;
8240
8241 context->InvokeService(context, _OrthancPluginService_RegisterChunkedRestCallback, &params);
8242 }
8243
8244
8245
8246
8247
8248 typedef struct
8249 {
8250 char** result;
8251 uint16_t group;
8252 uint16_t element;
8253 const char* privateCreator;
8254 } _OrthancPluginGetTagName;
8255
8271 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8272 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetTagName(
8273 OrthancPluginContext* context,
8274 uint16_t group,
8275 uint16_t element,
8276 const char* privateCreator)
8277 {
8278 char* result;
8279
8280 _OrthancPluginGetTagName params;
8281 params.result = &result;
8282 params.group = group;
8283 params.element = element;
8284 params.privateCreator = privateCreator;
8285
8286 if (context->InvokeService(context, _OrthancPluginService_GetTagName, &params) != OrthancPluginErrorCode_Success)
8287 {
8288 /* Error */
8289 return NULL;
8290 }
8291 else
8292 {
8293 return result;
8294 }
8295 }
8296
8297
8298
8328 void** handler /* out */,
8329 const char* jobId,
8330 const char* transactionUid,
8331 const char* const* sopClassUids,
8332 const char* const* sopInstanceUids,
8333 uint32_t countInstances,
8334 const char* remoteAet,
8335 const char* calledAet);
8336
8337
8365 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
8367 void** handler /* out */,
8368 const char* jobId,
8369 const char* transactionUid,
8370 const char* const* sopClassUids,
8371 const char* const* sopInstanceUids,
8372 uint32_t countInstances,
8373 const OrthancPluginDicomConnection* connection);
8374
8375
8387 typedef void (*OrthancPluginStorageCommitmentDestructor) (void* handler);
8388
8389
8410 void* handler,
8411 const char* sopClassUid,
8412 const char* sopInstanceUid);
8413
8414
8415 typedef struct
8416 {
8420 } _OrthancPluginRegisterStorageCommitmentScpCallback;
8421
8435 ORTHANC_PLUGIN_SINCE_SDK("1.6.0")
8437 OrthancPluginContext* context,
8441 {
8442 _OrthancPluginRegisterStorageCommitmentScpCallback params;
8443 params.factory = factory;
8444 params.destructor = destructor;
8445 params.lookup = lookup;
8446 return context->InvokeService(context, _OrthancPluginService_RegisterStorageCommitmentScpCallback, &params);
8447 }
8448
8449
8450
8477 const OrthancPluginDicomInstance* instance);
8478
8479
8480 typedef struct
8481 {
8483 } _OrthancPluginIncomingDicomInstanceFilter;
8484
8497 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8499 OrthancPluginContext* context,
8501 {
8502 _OrthancPluginIncomingDicomInstanceFilter params;
8503 params.callback = callback;
8504
8505 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingDicomInstanceFilter, &params);
8506 }
8507
8508
8540 uint16_t* dimseStatus /* out */,
8541 const OrthancPluginDicomInstance* instance);
8542
8543
8544 typedef struct
8545 {
8547 } _OrthancPluginIncomingCStoreInstanceFilter;
8548
8561 ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
8563 OrthancPluginContext* context,
8565 {
8566 _OrthancPluginIncomingCStoreInstanceFilter params;
8567 params.callback = callback;
8568
8569 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingCStoreInstanceFilter, &params);
8570 }
8571
8608 OrthancPluginMemoryBuffer64* modifiedDicomBuffer,
8609 const void* receivedDicomBuffer,
8610 uint64_t receivedDicomBufferSize,
8612
8613
8614 typedef struct
8615 {
8617 } _OrthancPluginReceivedInstanceCallback;
8618
8639 ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
8641 OrthancPluginContext* context,
8643 {
8644 _OrthancPluginReceivedInstanceCallback params;
8645 params.callback = callback;
8646
8647 return context->InvokeService(context, _OrthancPluginService_RegisterReceivedInstanceCallback, &params);
8648 }
8649
8663 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8665 OrthancPluginContext* context,
8666 const OrthancPluginDicomInstance* instance)
8667 {
8668 char* result;
8669
8670 _OrthancPluginAccessDicomInstance params;
8671 memset(&params, 0, sizeof(params));
8672 params.resultStringToFree = &result;
8673 params.instance = instance;
8674
8675 if (context->InvokeService(context, _OrthancPluginService_GetInstanceTransferSyntaxUid, &params) != OrthancPluginErrorCode_Success)
8676 {
8677 /* Error */
8678 return NULL;
8679 }
8680 else
8681 {
8682 return result;
8683 }
8684 }
8685
8686
8699 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8700 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginHasInstancePixelData(
8701 OrthancPluginContext* context,
8702 const OrthancPluginDicomInstance* instance)
8703 {
8704 int64_t hasPixelData;
8705
8706 _OrthancPluginAccessDicomInstance params;
8707 memset(&params, 0, sizeof(params));
8708 params.resultInt64 = &hasPixelData;
8709 params.instance = instance;
8710
8711 if (context->InvokeService(context, _OrthancPluginService_HasInstancePixelData, &params) != OrthancPluginErrorCode_Success ||
8712 hasPixelData < 0 ||
8713 hasPixelData > 1)
8714 {
8715 /* Error */
8716 return -1;
8717 }
8718 else
8719 {
8720 return (hasPixelData != 0);
8721 }
8722 }
8723
8724
8725
8726
8727
8728
8729 typedef struct
8730 {
8732 const void* buffer;
8733 uint32_t size;
8734 const char* transferSyntax;
8735 } _OrthancPluginCreateDicomInstance;
8736
8750 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8752 OrthancPluginContext* context,
8753 const void* buffer,
8754 uint32_t size)
8755 {
8756 OrthancPluginDicomInstance* target = NULL;
8757
8758 _OrthancPluginCreateDicomInstance params;
8759 params.target = &target;
8760 params.buffer = buffer;
8761 params.size = size;
8762
8763 if (context->InvokeService(context, _OrthancPluginService_CreateDicomInstance, &params) != OrthancPluginErrorCode_Success)
8764 {
8765 /* Error */
8766 return NULL;
8767 }
8768 else
8769 {
8770 return target;
8771 }
8772 }
8773
8774 typedef struct
8775 {
8777 } _OrthancPluginFreeDicomInstance;
8778
8789 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8790 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeDicomInstance(
8791 OrthancPluginContext* context,
8793 {
8794 _OrthancPluginFreeDicomInstance params;
8795 params.dicom = dicom;
8796
8797 context->InvokeService(context, _OrthancPluginService_FreeDicomInstance, &params);
8798 }
8799
8800
8801 typedef struct
8802 {
8803 uint32_t* targetUint32;
8804 OrthancPluginMemoryBuffer* targetBuffer;
8805 OrthancPluginImage** targetImage;
8806 char** targetStringToFree;
8807 const OrthancPluginDicomInstance* instance;
8808 uint32_t frameIndex;
8811 uint32_t maxStringLength;
8812 OrthancPluginDicomWebBinaryCallback2 dicomWebCallback;
8813 void* dicomWebPayload;
8814 } _OrthancPluginAccessDicomInstance2;
8815
8827 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8828 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetInstanceFramesCount(
8829 OrthancPluginContext* context,
8830 const OrthancPluginDicomInstance* instance)
8831 {
8832 uint32_t count;
8833
8834 _OrthancPluginAccessDicomInstance2 params;
8835 memset(&params, 0, sizeof(params));
8836 params.targetUint32 = &count;
8837 params.instance = instance;
8838
8839 if (context->InvokeService(context, _OrthancPluginService_GetInstanceFramesCount, &params) != OrthancPluginErrorCode_Success)
8840 {
8841 /* Error */
8842 return 0;
8843 }
8844 else
8845 {
8846 return count;
8847 }
8848 }
8849
8850
8868 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8870 OrthancPluginContext* context,
8872 const OrthancPluginDicomInstance* instance,
8873 uint32_t frameIndex)
8874 {
8875 _OrthancPluginAccessDicomInstance2 params;
8876 memset(&params, 0, sizeof(params));
8877 params.targetBuffer = target;
8878 params.instance = instance;
8879 params.frameIndex = frameIndex;
8880
8881 return context->InvokeService(context, _OrthancPluginService_GetInstanceRawFrame, &params);
8882 }
8883
8884
8897 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8899 OrthancPluginContext* context,
8900 const OrthancPluginDicomInstance* instance,
8901 uint32_t frameIndex)
8902 {
8903 OrthancPluginImage* target = NULL;
8904
8905 _OrthancPluginAccessDicomInstance2 params;
8906 memset(&params, 0, sizeof(params));
8907 params.targetImage = &target;
8908 params.instance = instance;
8909 params.frameIndex = frameIndex;
8910
8911 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDecodedFrame, &params) != OrthancPluginErrorCode_Success)
8912 {
8913 return NULL;
8914 }
8915 else
8916 {
8917 return target;
8918 }
8919 }
8920
8921
8937 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8939 OrthancPluginContext* context,
8940 const void* buffer,
8941 uint32_t size,
8942 const char* transferSyntax)
8943 {
8944 OrthancPluginDicomInstance* target = NULL;
8945
8946 _OrthancPluginCreateDicomInstance params;
8947 params.target = &target;
8948 params.buffer = buffer;
8949 params.size = size;
8950 params.transferSyntax = transferSyntax;
8951
8952 if (context->InvokeService(context, _OrthancPluginService_TranscodeDicomInstance, &params) != OrthancPluginErrorCode_Success)
8953 {
8954 /* Error */
8955 return NULL;
8956 }
8957 else
8958 {
8959 return target;
8960 }
8961 }
8962
8976 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8978 OrthancPluginContext* context,
8980 const OrthancPluginDicomInstance* instance)
8981 {
8982 _OrthancPluginAccessDicomInstance2 params;
8983 memset(&params, 0, sizeof(params));
8984 params.targetBuffer = target;
8985 params.instance = instance;
8986
8987 return context->InvokeService(context, _OrthancPluginService_SerializeDicomInstance, &params);
8988 }
8989
8990
9009 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9010 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceAdvancedJson(
9011 OrthancPluginContext* context,
9012 const OrthancPluginDicomInstance* instance,
9015 uint32_t maxStringLength)
9016 {
9017 char* result = NULL;
9018
9019 _OrthancPluginAccessDicomInstance2 params;
9020 memset(&params, 0, sizeof(params));
9021 params.targetStringToFree = &result;
9022 params.instance = instance;
9023 params.format = format;
9024 params.flags = flags;
9025 params.maxStringLength = maxStringLength;
9026
9027 if (context->InvokeService(context, _OrthancPluginService_GetInstanceAdvancedJson, &params) != OrthancPluginErrorCode_Success)
9028 {
9029 /* Error */
9030 return NULL;
9031 }
9032 else
9033 {
9034 return result;
9035 }
9036 }
9037
9038
9053 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9054 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceDicomWebJson(
9055 OrthancPluginContext* context,
9056 const OrthancPluginDicomInstance* instance,
9058 void* payload)
9059 {
9060 char* target = NULL;
9061
9062 _OrthancPluginAccessDicomInstance2 params;
9063 params.targetStringToFree = &target;
9064 params.instance = instance;
9065 params.dicomWebCallback = callback;
9066 params.dicomWebPayload = payload;
9067
9068 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDicomWebJson, &params) != OrthancPluginErrorCode_Success)
9069 {
9070 /* Error */
9071 return NULL;
9072 }
9073 else
9074 {
9075 return target;
9076 }
9077 }
9078
9079
9094 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9095 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceDicomWebXml(
9096 OrthancPluginContext* context,
9097 const OrthancPluginDicomInstance* instance,
9099 void* payload)
9100 {
9101 char* target = NULL;
9102
9103 _OrthancPluginAccessDicomInstance2 params;
9104 params.targetStringToFree = &target;
9105 params.instance = instance;
9106 params.dicomWebCallback = callback;
9107 params.dicomWebPayload = payload;
9108
9109 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDicomWebXml, &params) != OrthancPluginErrorCode_Success)
9110 {
9111 /* Error */
9112 return NULL;
9113 }
9114 else
9115 {
9116 return target;
9117 }
9118 }
9119
9120
9121
9141 OrthancPluginMemoryBuffer* transcoded /* out */,
9142 const void* buffer,
9143 uint64_t size,
9144 const char* const* allowedSyntaxes,
9145 uint32_t countSyntaxes,
9146 uint8_t allowNewSopInstanceUid);
9147
9148
9149 typedef struct
9150 {
9152 } _OrthancPluginTranscoderCallback;
9153
9167 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9169 OrthancPluginContext* context,
9171 {
9172 _OrthancPluginTranscoderCallback params;
9173 params.callback = callback;
9174
9175 return context->InvokeService(context, _OrthancPluginService_RegisterTranscoderCallback, &params);
9176 }
9177
9178
9179
9180 typedef struct
9181 {
9183 uint32_t size;
9184 } _OrthancPluginCreateMemoryBuffer;
9185
9203 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9205 OrthancPluginContext* context,
9207 uint32_t size)
9208 {
9209 _OrthancPluginCreateMemoryBuffer params;
9210 params.target = target;
9211 params.size = size;
9212
9213 return context->InvokeService(context, _OrthancPluginService_CreateMemoryBuffer, &params);
9214 }
9215
9216
9242 ORTHANC_PLUGIN_SINCE_SDK("1.8.1")
9244 OrthancPluginContext* context)
9245 {
9246 char* result;
9247
9248 _OrthancPluginRetrieveDynamicString params;
9249 params.result = &result;
9250 params.argument = NULL;
9251
9252 if (context->InvokeService(context, _OrthancPluginService_GenerateRestApiAuthorizationToken,
9254 {
9255 /* Error */
9256 return NULL;
9257 }
9258 else
9259 {
9260 return result;
9261 }
9262 }
9263
9264
9265
9266 typedef struct
9267 {
9269 uint64_t size;
9270 } _OrthancPluginCreateMemoryBuffer64;
9271
9289 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9291 OrthancPluginContext* context,
9293 uint64_t size)
9294 {
9295 _OrthancPluginCreateMemoryBuffer64 params;
9296 params.target = target;
9297 params.size = size;
9298
9299 return context->InvokeService(context, _OrthancPluginService_CreateMemoryBuffer64, &params);
9300 }
9301
9302
9303 typedef struct
9304 {
9309 } _OrthancPluginRegisterStorageArea2;
9310
9328 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9329 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea2(
9330 OrthancPluginContext* context,
9335 {
9336 _OrthancPluginRegisterStorageArea2 params;
9337 params.create = create;
9338 params.readWhole = readWhole;
9339 params.readRange = readRange;
9340 params.remove = remove;
9341 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea2, &params);
9342 }
9343
9344
9345
9346 typedef struct
9347 {
9348 _OrthancPluginCreateDicom createDicom;
9349 const char* privateCreator;
9350 } _OrthancPluginCreateDicom2;
9351
9376 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9378 OrthancPluginContext* context,
9380 const char* json,
9381 const OrthancPluginImage* pixelData,
9383 const char* privateCreator)
9384 {
9385 _OrthancPluginCreateDicom2 params;
9386 params.createDicom.target = target;
9387 params.createDicom.json = json;
9388 params.createDicom.pixelData = pixelData;
9389 params.createDicom.flags = flags;
9390 params.privateCreator = privateCreator;
9391
9392 return context->InvokeService(context, _OrthancPluginService_CreateDicom2, &params);
9393 }
9394
9395
9396
9397
9398
9399
9400 typedef struct
9401 {
9402 OrthancPluginMemoryBuffer* answerBody;
9403 OrthancPluginMemoryBuffer* answerHeaders;
9404 uint16_t* httpStatus;
9406 const char* uri;
9407 uint32_t headersCount;
9408 const char* const* headersKeys;
9409 const char* const* headersValues;
9410 const void* body;
9411 uint32_t bodySize;
9412 uint8_t afterPlugins;
9413 } _OrthancPluginCallRestApi;
9414
9445 ORTHANC_PLUGIN_SINCE_SDK("1.9.2")
9447 OrthancPluginContext* context,
9448 OrthancPluginMemoryBuffer* answerBody,
9449 OrthancPluginMemoryBuffer* answerHeaders,
9450 uint16_t* httpStatus,
9452 const char* uri,
9453 uint32_t headersCount,
9454 const char* const* headersKeys,
9455 const char* const* headersValues,
9456 const void* body,
9457 uint32_t bodySize,
9458 uint8_t afterPlugins)
9459 {
9460 _OrthancPluginCallRestApi params;
9461 memset(&params, 0, sizeof(params));
9462
9463 params.answerBody = answerBody;
9464 params.answerHeaders = answerHeaders;
9465 params.httpStatus = httpStatus;
9466 params.method = method;
9467 params.uri = uri;
9468 params.headersCount = headersCount;
9469 params.headersKeys = headersKeys;
9470 params.headersValues = headersValues;
9471 params.body = body;
9472 params.bodySize = bodySize;
9473 params.afterPlugins = afterPlugins;
9474
9475 return context->InvokeService(context, _OrthancPluginService_CallRestApi, &params);
9476 }
9477
9478
9479
9484 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.10.1")
9485 _OrthancPluginWebDavCollection_t OrthancPluginWebDavCollection;
9486
9487
9506 const char* name,
9507 uint64_t size,
9508 const char* mimeType,
9509 const char* dateTime);
9510
9511
9527 const char* name,
9528 const char* dateTime);
9529
9530
9554 const void* data,
9555 uint64_t size,
9556 const char* mimeType,
9557 const char* dateTime);
9558
9559
9574 uint8_t* isExisting, /* out */
9575 uint32_t pathSize,
9576 const char* const* pathItems,
9577 void* payload);
9578
9579
9599 uint8_t* isExisting, /* out */
9603 uint32_t pathSize,
9604 const char* const* pathItems,
9605 void* payload);
9606
9607
9627 uint32_t pathSize,
9628 const char* const* pathItems,
9629 void* payload);
9630
9631
9648 uint8_t* isReadOnly, /* out */
9649 uint32_t pathSize,
9650 const char* const* pathItems,
9651 const void* data,
9652 uint64_t size,
9653 void* payload);
9654
9655
9670 uint8_t* isReadOnly, /* out */
9671 uint32_t pathSize,
9672 const char* const* pathItems,
9673 void* payload);
9674
9675
9690 uint8_t* isReadOnly, /* out */
9691 uint32_t pathSize,
9692 const char* const* pathItems,
9693 void* payload);
9694
9695
9696 typedef struct
9697 {
9698 const char* uri;
9705 void* payload;
9706 } _OrthancPluginRegisterWebDavCollection;
9707
9728 ORTHANC_PLUGIN_SINCE_SDK("1.10.1")
9730 OrthancPluginContext* context,
9731 const char* uri,
9738 void* payload)
9739 {
9740 _OrthancPluginRegisterWebDavCollection params;
9741 params.uri = uri;
9742 params.isExistingFolder = isExistingFolder;
9743 params.listFolder = listFolder;
9744 params.retrieveFile = retrieveFile;
9745 params.storeFile = storeFile;
9746 params.createFolder = createFolder;
9747 params.deleteItem = deleteItem;
9748 params.payload = payload;
9749
9750 return context->InvokeService(context, _OrthancPluginService_RegisterWebDavCollection, &params);
9751 }
9752
9753
9762 ORTHANC_PLUGIN_SINCE_SDK("1.11.1")
9763 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetDatabaseServerIdentifier(
9764 OrthancPluginContext* context)
9765 {
9766 const char* result;
9767
9768 _OrthancPluginRetrieveStaticString params;
9769 params.result = &result;
9770 params.argument = NULL;
9771
9772 if (context->InvokeService(context, _OrthancPluginService_GetDatabaseServerIdentifier, &params) != OrthancPluginErrorCode_Success)
9773 {
9774 /* Error */
9775 return NULL;
9776 }
9777 else
9778 {
9779 return result;
9780 }
9781 }
9782
9783
9784 typedef struct
9785 {
9789 } _OrthancPluginRegisterStorageArea3;
9790
9805 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
9806 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea3(
9807 OrthancPluginContext* context,
9811 {
9812 _OrthancPluginRegisterStorageArea3 params;
9813 params.create = create;
9814 params.readRange = readRange;
9815 params.remove = remove;
9816 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea3, &params);
9817 }
9818
9827 void* backend,
9828 const void* request,
9829 uint64_t requestSize);
9830
9836 typedef void (*OrthancPluginFinalizeDatabaseBackendV4) (void* backend);
9837
9838 typedef struct
9839 {
9840 void* backend;
9841 uint32_t maxDatabaseRetries;
9844 } _OrthancPluginRegisterDatabaseBackendV4;
9845
9863 ORTHANC_PLUGIN_SINCE_SDK("1.12.0")
9865 OrthancPluginContext* context,
9866 void* backend,
9867 uint32_t maxDatabaseRetries,
9870 {
9871 _OrthancPluginRegisterDatabaseBackendV4 params;
9872 params.backend = backend;
9873 params.maxDatabaseRetries = maxDatabaseRetries;
9874 params.operations = operations;
9875 params.finalize = finalize;
9876
9877 return context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackendV4, &params);
9878 }
9879
9880
9881 typedef struct
9882 {
9884 const char* instanceId;
9886 } _OrthancPluginLoadDicomInstance;
9887
9901 ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
9903 OrthancPluginContext* context,
9904 const char* instanceId,
9906 {
9907 OrthancPluginDicomInstance* target = NULL;
9908
9909 _OrthancPluginLoadDicomInstance params;
9910 params.target = &target;
9911 params.instanceId = instanceId;
9912 params.mode = mode;
9913
9914 if (context->InvokeService(context, _OrthancPluginService_LoadDicomInstance, &params) != OrthancPluginErrorCode_Success)
9915 {
9916 /* Error */
9917 return NULL;
9918 }
9919 else
9920 {
9921 return target;
9922 }
9923 }
9924
9925
9926 typedef struct
9927 {
9928 const char* name;
9929 int64_t value;
9931 } _OrthancPluginSetMetricsIntegerValue;
9932
9948 ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
9949 ORTHANC_PLUGIN_INLINE void OrthancPluginSetMetricsIntegerValue(
9950 OrthancPluginContext* context,
9951 const char* name,
9952 int64_t value,
9954 {
9955 _OrthancPluginSetMetricsIntegerValue params;
9956 params.name = name;
9957 params.value = value;
9958 params.type = type;
9959 context->InvokeService(context, _OrthancPluginService_SetMetricsIntegerValue, &params);
9960 }
9961
9962
9976 ORTHANC_PLUGIN_SINCE_SDK("1.12.2")
9978 OrthancPluginContext* context,
9979 const char* threadName)
9980 {
9981 return context->InvokeService(context, _OrthancPluginService_SetCurrentThreadName, threadName);
9982 }
9983
9984
9985 typedef struct
9986 {
9987 /* Note: This structure is also defined in Logging.h and it must be binary compatible */
9988 const char* message;
9989 const char* plugin;
9990 const char* file;
9991 uint32_t line;
9992 OrthancPluginLogCategory category;
9994 } _OrthancPluginLogMessage;
9995
9996
10010 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
10011 ORTHANC_PLUGIN_INLINE void OrthancPluginLogMessage(
10012 OrthancPluginContext* context,
10013 const char* message,
10014 const char* plugin,
10015 const char* file,
10016 uint32_t line,
10017 OrthancPluginLogCategory category,
10019 {
10020 _OrthancPluginLogMessage m;
10021 m.message = message;
10022 m.plugin = plugin;
10023 m.file = file;
10024 m.line = line;
10025 m.category = category;
10026 m.level = level;
10027 context->InvokeService(context, _OrthancPluginService_LogMessage, &m);
10028 }
10029
10030
10031 typedef struct
10032 {
10034 const char* contentType;
10035 } _OrthancPluginStartStreamAnswer;
10036
10049 ORTHANC_PLUGIN_SINCE_SDK("1.12.6")
10051 OrthancPluginContext* context,
10053 const char* contentType)
10054 {
10055 _OrthancPluginStartStreamAnswer params;
10056 params.output = output;
10057 params.contentType = contentType;
10058 return context->InvokeService(context, _OrthancPluginService_StartStreamAnswer, &params);
10059 }
10060
10061
10077 ORTHANC_PLUGIN_SINCE_SDK("1.12.6")
10079 OrthancPluginContext* context,
10081 const void* answer,
10082 uint32_t answerSize)
10083 {
10084 _OrthancPluginAnswerBuffer params;
10085 params.output = output;
10086 params.answer = answer;
10087 params.answerSize = answerSize;
10088 params.mimeType = NULL;
10089 return context->InvokeService(context, _OrthancPluginService_SendStreamChunk, &params);
10090 }
10091
10092
10093 typedef struct
10094 {
10095 OrthancPluginMemoryBuffer* instanceId;
10096 OrthancPluginMemoryBuffer* attachmentUuid;
10097 OrthancPluginStoreStatus* storeStatus;
10098 const void* dicom;
10099 uint64_t dicomSize;
10100 const void* customData;
10101 uint32_t customDataSize;
10102 } _OrthancPluginAdoptDicomInstance;
10103
10142 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10144 OrthancPluginContext* context,
10145 OrthancPluginMemoryBuffer* instanceId, /* out */
10146 OrthancPluginMemoryBuffer* attachmentUuid, /* out */
10147 OrthancPluginStoreStatus* storeStatus, /* out */
10148 const void* dicom,
10149 uint64_t dicomSize,
10150 const void* customData,
10151 uint32_t customDataSize)
10152 {
10153 _OrthancPluginAdoptDicomInstance params;
10154 params.instanceId = instanceId;
10155 params.attachmentUuid = attachmentUuid;
10156 params.storeStatus = storeStatus;
10157 params.dicom = dicom;
10158 params.dicomSize = dicomSize;
10159 params.customData = customData;
10160 params.customDataSize = customDataSize;
10161
10162 return context->InvokeService(context, _OrthancPluginService_AdoptDicomInstance, &params);
10163 }
10164
10165
10166 typedef struct
10167 {
10168 OrthancPluginMemoryBuffer* customData;
10169 const char* attachmentUuid;
10170 } _OrthancPluginGetAttachmentCustomData;
10171
10184 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10186 OrthancPluginContext* context,
10187 OrthancPluginMemoryBuffer* customData, /* out */
10188 const char* attachmentUuid /* in */)
10189 {
10190 _OrthancPluginGetAttachmentCustomData params;
10191 params.customData = customData;
10192 params.attachmentUuid = attachmentUuid;
10193
10194 return context->InvokeService(context, _OrthancPluginService_GetAttachmentCustomData, &params);
10195 }
10196
10197
10198 typedef struct
10199 {
10200 const char* attachmentUuid;
10201 const void* customData;
10202 uint32_t customDataSize;
10203 } _OrthancPluginSetAttachmentCustomData;
10204
10217 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10219 OrthancPluginContext* context,
10220 const char* attachmentUuid, /* in */
10221 const void* customData, /* in */
10222 uint32_t customDataSize /* in */)
10223 {
10224 _OrthancPluginSetAttachmentCustomData params;
10225 params.attachmentUuid = attachmentUuid;
10226 params.customData = customData;
10227 params.customDataSize = customDataSize;
10228
10229 return context->InvokeService(context, _OrthancPluginService_SetAttachmentCustomData, &params);
10230 }
10231
10232
10233 typedef struct
10234 {
10235 const char* storeId;
10236 const char* key;
10237 const void* value;
10238 uint32_t valueSize;
10239 } _OrthancPluginStoreKeyValue;
10240
10251 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10253 OrthancPluginContext* context,
10254 const char* storeId, /* in */
10255 const char* key, /* in */
10256 const void* value, /* in */
10257 uint32_t valueSize /* in */)
10258 {
10259 _OrthancPluginStoreKeyValue params;
10260 params.storeId = storeId;
10261 params.key = key;
10262 params.value = value;
10263 params.valueSize = valueSize;
10264
10265 return context->InvokeService(context, _OrthancPluginService_StoreKeyValue, &params);
10266 }
10267
10268
10269 typedef struct
10270 {
10271 const char* storeId;
10272 const char* key;
10273 } _OrthancPluginDeleteKeyValue;
10274
10283 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10285 OrthancPluginContext* context,
10286 const char* storeId, /* in */
10287 const char* key /* in */)
10288 {
10289 _OrthancPluginDeleteKeyValue params;
10290 params.storeId = storeId;
10291 params.key = key;
10292
10293 return context->InvokeService(context, _OrthancPluginService_DeleteKeyValue, &params);
10294 }
10295
10296
10297 typedef struct
10298 {
10299 uint8_t* found;
10301 const char* storeId;
10302 const char* key;
10303 } _OrthancPluginGetKeyValue;
10304
10316 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10318 OrthancPluginContext* context,
10319 uint8_t* found, /* out */
10320 OrthancPluginMemoryBuffer* target, /* out */
10321 const char* storeId, /* in */
10322 const char* key /* in */)
10323 {
10324 _OrthancPluginGetKeyValue params;
10325 params.found = found;
10326 params.target = target;
10327 params.storeId = storeId;
10328 params.key = key;
10329
10330 return context->InvokeService(context, _OrthancPluginService_GetKeyValue, &params);
10331 }
10332
10333
10339 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10340 _OrthancPluginKeysValuesIterator_t OrthancPluginKeysValuesIterator;
10341
10342
10343 typedef struct
10344 {
10346 const char* storeId;
10347 } _OrthancPluginCreateKeysValuesIterator;
10348
10349
10360 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10362 OrthancPluginContext* context,
10363 const char* storeId)
10364 {
10365 OrthancPluginKeysValuesIterator* target = NULL;
10366
10367 _OrthancPluginCreateKeysValuesIterator params;
10368 params.target = &target;
10369 params.storeId = storeId;
10370
10371 if (context->InvokeService(context, _OrthancPluginService_CreateKeysValuesIterator, &params) != OrthancPluginErrorCode_Success)
10372 {
10373 return NULL;
10374 }
10375 else
10376 {
10377 return target;
10378 }
10379 }
10380
10381
10382 typedef struct
10383 {
10385 } _OrthancPluginFreeKeysValuesIterator;
10386
10393 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10394 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeKeysValuesIterator(
10395 OrthancPluginContext* context,
10397 {
10398 _OrthancPluginFreeKeysValuesIterator params;
10399 params.iterator = iterator;
10400
10401 context->InvokeService(context, _OrthancPluginService_FreeKeysValuesIterator, &params);
10402 }
10403
10404
10405 typedef struct
10406 {
10407 uint8_t* done;
10409 } _OrthancPluginKeysValuesIteratorNext;
10410
10421 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10423 OrthancPluginContext* context,
10424 uint8_t* done, /* out */
10425 OrthancPluginKeysValuesIterator* iterator /* in */)
10426 {
10427 _OrthancPluginKeysValuesIteratorNext params;
10428 params.done = done;
10429 params.iterator = iterator;
10430
10431 return context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorNext, &params);
10432 }
10433
10434
10435 typedef struct
10436 {
10437 const char** target;
10439 } _OrthancPluginKeysValuesIteratorGetKey;
10440
10451 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10452 ORTHANC_PLUGIN_INLINE const char* OrthancPluginKeysValuesIteratorGetKey(
10453 OrthancPluginContext* context,
10455 {
10456 const char* target = NULL;
10457
10458 _OrthancPluginKeysValuesIteratorGetKey params;
10459 params.target = &target;
10460 params.iterator = iterator;
10461
10462 if (context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorGetKey, &params) == OrthancPluginErrorCode_Success)
10463 {
10464 return target;
10465 }
10466 else
10467 {
10468 return NULL;
10469 }
10470 }
10471
10472
10473 typedef struct
10474 {
10477 } _OrthancPluginKeysValuesIteratorGetValue;
10478
10491 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10493 OrthancPluginContext* context,
10494 OrthancPluginMemoryBuffer* target /* out */,
10495 OrthancPluginKeysValuesIterator* iterator /* in */)
10496 {
10497 _OrthancPluginKeysValuesIteratorGetValue params;
10498 params.target = target;
10499 params.iterator = iterator;
10500
10501 return context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorGetValue, &params);
10502 }
10503
10504
10505 typedef struct
10506 {
10507 const char* queueId;
10508 const void* value;
10509 uint32_t valueSize;
10510 } _OrthancPluginEnqueueValue;
10511
10521 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10523 OrthancPluginContext* context,
10524 const char* queueId, /* in */
10525 const void* value, /* in */
10526 uint32_t valueSize /* in */)
10527 {
10528 _OrthancPluginEnqueueValue params;
10529 params.queueId = queueId;
10530 params.value = value;
10531 params.valueSize = valueSize;
10532
10533 return context->InvokeService(context, _OrthancPluginService_EnqueueValue, &params);
10534 }
10535
10536
10537 typedef struct
10538 {
10539 uint8_t* found;
10541 const char* queueId;
10543 } _OrthancPluginDequeueValue;
10544
10558 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10559 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginDequeueValue(
10560 OrthancPluginContext* context,
10561 uint8_t* found, /* out */
10562 OrthancPluginMemoryBuffer* target, /* out */
10563 const char* queueId, /* in */
10564 OrthancPluginQueueOrigin origin /* in */)
10565 {
10566 _OrthancPluginDequeueValue params;
10567 params.found = found;
10568 params.target = target;
10569 params.queueId = queueId;
10570 params.origin = origin;
10571
10572 return context->InvokeService(context, _OrthancPluginService_DequeueValue, &params);
10573 }
10574
10575
10576 typedef struct
10577 {
10578 const char* queueId;
10579 uint64_t* size;
10580 } _OrthancPluginGetQueueSize;
10581
10590 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10592 OrthancPluginContext* context,
10593 const char* queueId, /* in */
10594 uint64_t* size /* out */)
10595 {
10596 _OrthancPluginGetQueueSize params;
10597 params.queueId = queueId;
10598 params.size = size;
10599
10600 return context->InvokeService(context, _OrthancPluginService_GetQueueSize, &params);
10601 }
10602
10603
10604 typedef struct
10605 {
10606 const char* resourceId;
10607 OrthancPluginStableStatus stableStatus;
10608 uint8_t* statusHasChanged;
10609 } _OrthancPluginSetStableStatus;
10610
10631 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10633 OrthancPluginContext* context,
10634 uint8_t* statusHasChanged, /* out */
10635 const char* resourceId, /* in */
10636 OrthancPluginStableStatus stableStatus /* in */)
10637 {
10638 _OrthancPluginSetStableStatus params;
10639 params.resourceId = resourceId;
10640 params.stableStatus= stableStatus;
10641 params.statusHasChanged = statusHasChanged;
10642
10643 return context->InvokeService(context, _OrthancPluginService_SetStableStatus, &params);
10644 }
10645
10646
10670 OrthancPluginHttpAuthenticationStatus* status, /* out */
10671 OrthancPluginMemoryBuffer* customPayload, /* out */
10672 OrthancPluginMemoryBuffer* redirection, /* out */
10673 const char* uri,
10674 const char* ip,
10675 uint32_t headersCount,
10676 const char* const* headersKeys,
10677 const char* const* headersValues,
10678 uint32_t getCount,
10679 const char* const* getKeys,
10680 const char* const* getValues);
10681
10682
10683 typedef struct
10684 {
10686 } _OrthancPluginHttpAuthentication;
10687
10727 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10729 OrthancPluginContext* context,
10731 {
10732 _OrthancPluginHttpAuthentication params;
10733 params.callback = callback;
10734
10735 return context->InvokeService(context, _OrthancPluginService_RegisterHttpAuthentication, &params);
10736 }
10737
10738
10739 typedef struct
10740 {
10741 const char* sourcePlugin;
10742 const char* userId;
10743 OrthancPluginResourceType resourceType;
10744 const char* resourceId;
10745 const char* action;
10746 const void* logData;
10747 uint32_t logDataSize;
10748 } _OrthancPluginEmitAuditLog;
10749
10750
10773 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10774 ORTHANC_PLUGIN_INLINE void OrthancPluginEmitAuditLog(
10775 OrthancPluginContext* context,
10776 const char* sourcePlugin,
10777 const char* userId,
10778 OrthancPluginResourceType resourceType,
10779 const char* resourceId,
10780 const char* action,
10781 const void* logData,
10782 uint32_t logDataSize)
10783 {
10784 _OrthancPluginEmitAuditLog m;
10785 m.sourcePlugin = sourcePlugin;
10786 m.userId = userId;
10787 m.resourceType = resourceType;
10788 m.resourceId = resourceId;
10789 m.action = action;
10790 m.logData = logData;
10791 m.logDataSize = logDataSize;
10792 context->InvokeService(context, _OrthancPluginService_EmitAuditLog, &m);
10793 }
10794
10795
10815 const char* sourcePlugin,
10816 const char* userId,
10817 OrthancPluginResourceType resourceType,
10818 const char* resourceId,
10819 const char* action,
10820 const void* logData,
10821 uint32_t logDataSize);
10822
10823 typedef struct
10824 {
10826 } _OrthancPluginAuditLogHandler;
10827
10839 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10841 OrthancPluginContext* context,
10843 {
10844 _OrthancPluginAuditLogHandler params;
10845 params.handler = handler;
10846
10847 return context->InvokeService(context, _OrthancPluginService_RegisterAuditLogHandler, &params);
10848 }
10849
10850
10851 typedef struct
10852 {
10853 uint8_t* found;
10855 const char* queueId;
10857 uint32_t releaseTimeout;
10858 uint64_t* valueId;
10859 } _OrthancPluginReserveQueueValue;
10860
10882 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10884 OrthancPluginContext* context,
10885 uint8_t* found, /* out */
10886 OrthancPluginMemoryBuffer* target, /* out */
10887 uint64_t* valueId, /* out */
10888 const char* queueId, /* in */
10889 OrthancPluginQueueOrigin origin, /* in */
10890 uint32_t releaseTimeout /* in */)
10891 {
10892 _OrthancPluginReserveQueueValue params;
10893 params.found = found;
10894 params.target = target;
10895 params.queueId = queueId;
10896 params.origin = origin;
10897 params.valueId = valueId;
10898 params.releaseTimeout = releaseTimeout;
10899
10900 return context->InvokeService(context, _OrthancPluginService_ReserveQueueValue, &params);
10901 }
10902
10903 typedef struct
10904 {
10905 const char* queueId;
10906 uint64_t valueId;
10907 } _OrthancPluginAcknowledgeQueueValue;
10908
10918 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10920 OrthancPluginContext* context,
10921 const char* queueId, /* in */
10922 uint64_t valueId /* in */)
10923 {
10924 _OrthancPluginAcknowledgeQueueValue params;
10925 params.queueId = queueId;
10926 params.valueId = valueId;
10927
10928 return context->InvokeService(context, _OrthancPluginService_AcknowledgeQueueValue, &params);
10929 }
10930
10931
10932 typedef struct
10933 {
10934 const OrthancPluginDicomConnection* connection;
10935 const char** resultString;
10936 } _OrthancPluginAccessDicomConnection;
10937
10949 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10950 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetConnectionRemoteAet(
10951 OrthancPluginContext* context,
10952 const OrthancPluginDicomConnection* connection)
10953 {
10954 const char* result;
10955
10956 _OrthancPluginAccessDicomConnection params;
10957 memset(&params, 0, sizeof(params));
10958 params.resultString = &result;
10959 params.connection = connection;
10960
10961 if (context->InvokeService(context, _OrthancPluginService_GetConnectionRemoteAet, &params) != OrthancPluginErrorCode_Success)
10962 {
10963 /* Error */
10964 return NULL;
10965 }
10966 else
10967 {
10968 return result;
10969 }
10970 }
10971
10972
10984 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10985 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetConnectionRemoteIp(
10986 OrthancPluginContext* context,
10987 const OrthancPluginDicomConnection* connection)
10988 {
10989 const char* result;
10990
10991 _OrthancPluginAccessDicomConnection params;
10992 memset(&params, 0, sizeof(params));
10993 params.resultString = &result;
10994 params.connection = connection;
10995
10996 if (context->InvokeService(context, _OrthancPluginService_GetConnectionRemoteIp, &params) != OrthancPluginErrorCode_Success)
10997 {
10998 /* Error */
10999 return NULL;
11000 }
11001 else
11002 {
11003 return result;
11004 }
11005 }
11006
11007
11019 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11020 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetConnectionCalledAet(
11021 OrthancPluginContext* context,
11022 const OrthancPluginDicomConnection* connection)
11023 {
11024 const char* result;
11025
11026 _OrthancPluginAccessDicomConnection params;
11027 memset(&params, 0, sizeof(params));
11028 params.resultString = &result;
11029 params.connection = connection;
11030
11031 if (context->InvokeService(context, _OrthancPluginService_GetConnectionCalledAet, &params) != OrthancPluginErrorCode_Success)
11032 {
11033 /* Error */
11034 return NULL;
11035 }
11036 else
11037 {
11038 return result;
11039 }
11040 }
11041
11042
11043 typedef struct
11044 {
11046 } _OrthancPluginWorklistCallback2;
11047
11059 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11061 OrthancPluginContext* context,
11063 {
11064 _OrthancPluginWorklistCallback2 params;
11065 params.callback = callback;
11066
11067 return context->InvokeService(context, _OrthancPluginService_RegisterWorklistCallback2, &params);
11068 }
11069
11070
11071 typedef struct
11072 {
11074 } _OrthancPluginFindCallback2;
11075
11087 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11089 OrthancPluginContext* context,
11091 {
11092 _OrthancPluginFindCallback2 params;
11093 params.callback = callback;
11094
11095 return context->InvokeService(context, _OrthancPluginService_RegisterFindCallback2, &params);
11096 }
11097
11098
11099 typedef struct
11100 {
11102 OrthancPluginGetMoveSize getMoveSize;
11103 OrthancPluginApplyMove applyMove;
11104 OrthancPluginFreeMove freeMove;
11105 } _OrthancPluginMoveCallback2;
11106
11120 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11122 OrthancPluginContext* context,
11124 OrthancPluginGetMoveSize getMoveSize,
11125 OrthancPluginApplyMove applyMove,
11126 OrthancPluginFreeMove freeMove)
11127 {
11128 _OrthancPluginMoveCallback2 params;
11129 params.callback = callback;
11130 params.getMoveSize = getMoveSize;
11131 params.applyMove = applyMove;
11132 params.freeMove = freeMove;
11133
11134 return context->InvokeService(context, _OrthancPluginService_RegisterMoveCallback2, &params);
11135 }
11136
11137
11138 typedef struct
11139 {
11143 } _OrthancPluginRegisterStorageCommitmentScpCallback2;
11144
11158 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11160 OrthancPluginContext* context,
11164 {
11165 _OrthancPluginRegisterStorageCommitmentScpCallback2 params;
11166 params.factory = factory;
11167 params.destructor = destructor;
11168 params.lookup = lookup;
11169 return context->InvokeService(context, _OrthancPluginService_RegisterStorageCommitmentScpCallback2, &params);
11170 }
11171
11172#ifdef __cplusplus
11173}
11174#endif
11175
11176
OrthancPluginErrorCode OrthancPluginRegisterDatabaseBackendV4(OrthancPluginContext *context, void *backend, uint32_t maxDatabaseRetries, OrthancPluginCallDatabaseBackendV4 operations, OrthancPluginFinalizeDatabaseBackendV4 finalize)
Register a custom database back-end.
Definition OrthancCPlugin.h:9864
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:10669
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:9825
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:8607
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:9504
void OrthancPluginRegisterStorageArea(OrthancPluginContext *context, OrthancPluginStorageCreate create, OrthancPluginStorageRead read, OrthancPluginStorageRemove remove)
Register a custom storage area.
Definition OrthancCPlugin.h:3631
void OrthancPluginRegisterOnStoredInstanceCallback(OrthancPluginContext *context, OrthancPluginOnStoredInstanceCallback callback)
Register a callback for received instances.
Definition OrthancCPlugin.h:2596
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:1465
OrthancPluginErrorCode OrthancPluginRegisterDecodeImageCallback(OrthancPluginContext *context, OrthancPluginDecodeImageCallback callback)
Register a callback to handle the decoding of DICOM images.
Definition OrthancCPlugin.h:5952
OrthancPluginChangeType
Definition OrthancCPlugin.h:825
OrthancPluginErrorCode(* OrthancPluginStorageReadWhole)(OrthancPluginMemoryBuffer64 *target, const char *uuid, OrthancPluginContentType type)
Callback for reading a whole file from the storage area.
Definition OrthancCPlugin.h:1530
OrthancPluginErrorCode OrthancPluginRegisterIncomingCStoreInstanceFilter(OrthancPluginContext *context, OrthancPluginIncomingCStoreInstanceFilter callback)
Register a callback to filter incoming DICOM instances received by Orthanc through C-STORE.
Definition OrthancCPlugin.h:8562
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:1443
void OrthancPluginRegisterRefreshMetricsCallback(OrthancPluginContext *context, OrthancPluginRefreshMetricsCallback callback)
Register a callback to refresh the metrics.
Definition OrthancCPlugin.h:7644
OrthancPluginErrorCode OrthancPluginRegisterHttpAuthentication(OrthancPluginContext *context, OrthancPluginHttpAuthentication callback)
Register a callback to handle HTTP authentication (and possibly HTTP authorization).
Definition OrthancCPlugin.h:10728
OrthancPluginErrorCode(* OrthancPluginWebDavCreateFolderCallback)(uint8_t *isReadOnly, uint32_t pathSize, const char *const *pathItems, void *payload)
Callback to create a folder.
Definition OrthancCPlugin.h:9669
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:1624
struct _OrthancPluginWebDavCollection_t OrthancPluginWebDavCollection
Opaque structure that represents a WebDAV collection.
Definition OrthancCPlugin.h:9484
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:2163
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:9624
int32_t(* OrthancPluginIncomingDicomInstanceFilter)(const OrthancPluginDicomInstance *instance)
Callback to filter incoming DICOM instances received by Orthanc.
Definition OrthancCPlugin.h:8476
OrthancPluginErrorCode OrthancPluginStorageAreaRemove(OrthancPluginContext *context, OrthancPluginStorageArea *storageArea, const char *uuid, OrthancPluginContentType type)
Remove a file from the storage area.
Definition OrthancCPlugin.h:5310
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:9140
OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter2(OrthancPluginContext *context, OrthancPluginIncomingHttpRequestFilter2 callback)
Register a callback to filter incoming HTTP requests.
Definition OrthancCPlugin.h:6871
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:9552
void OrthancPluginRegisterStorageArea3(OrthancPluginContext *context, OrthancPluginStorageCreate2 create, OrthancPluginStorageReadRange2 readRange, OrthancPluginStorageRemove2 remove)
Register a custom storage area, with support for custom data.
Definition OrthancCPlugin.h:9806
OrthancPluginErrorCode(* OrthancPluginStorageRead)(void **content, int64_t *size, const char *uuid, OrthancPluginContentType type)
Callback for reading from the storage area.
Definition OrthancCPlugin.h:1510
void OrthancPluginRegisterRestCallback(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback callback)
Register a REST callback.
Definition OrthancCPlugin.h:2518
uint32_t OrthancPluginGetExpectedDatabaseVersion(OrthancPluginContext *context)
Get the expected version of the database schema.
Definition OrthancCPlugin.h:4108
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:8640
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:9598
int32_t OrthancPluginCheckVersion(const OrthancPluginContext *context)
Check the compatibility of the plugin wrt. the version of its hosting Orthanc.
Definition OrthancCPlugin.h:2398
OrthancPluginJob *(* OrthancPluginJobsUnserializer)(const char *jobType, const char *serialized)
Callback executed to unserialize a custom job.
Definition OrthancCPlugin.h:2116
struct _OrthancPluginRestOutput_t OrthancPluginRestOutput
Opaque structure that represents the HTTP connection to the client application.
Definition OrthancCPlugin.h:1301
void OrthancPluginRegisterOnChangeCallback(OrthancPluginContext *context, OrthancPluginOnChangeCallback callback)
Register a callback to monitor changes.
Definition OrthancCPlugin.h:3774
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:9329
OrthancPluginErrorCode(* OrthancPluginWebDavAddFolder)(OrthancPluginWebDavCollection *collection, const char *name, const char *dateTime)
Declare a subfolder while returning the content of a folder.
Definition OrthancCPlugin.h:9525
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:9729
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:1755
void(* OrthancPluginRefreshMetricsCallback)()
Callback executed to update the metrics of the plugin.
Definition OrthancCPlugin.h:2135
OrthancPluginErrorCode OrthancPluginRegisterTranscoderCallback(OrthancPluginContext *context, OrthancPluginTranscoderCallback callback)
Register a callback to handle the transcoding of DICOM images.
Definition OrthancCPlugin.h:9168
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:1422
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:1595
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:9647
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:9689
OrthancPluginErrorCode OrthancPluginReconstructMainDicomTags(OrthancPluginContext *context, OrthancPluginStorageArea *storageArea, OrthancPluginResourceType level)
Reconstruct the main DICOM tags.
Definition OrthancCPlugin.h:5503
OrthancPluginErrorCode(* OrthancPluginStorageRemove)(const char *uuid, OrthancPluginContentType type)
Callback for removing a file from the storage area.
Definition OrthancCPlugin.h:1571
OrthancPluginErrorCode(* OrthancPluginStorageCreate)(const char *uuid, const void *content, int64_t size, OrthancPluginContentType type)
Callback for writing to the storage area.
Definition OrthancCPlugin.h:1484
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:2201
OrthancPluginErrorCode OrthancPluginRegisterAuditLogHandler(OrthancPluginContext *context, OrthancPluginAuditLogHandler handler)
Register a callback to handle audit logs.
Definition OrthancCPlugin.h:10840
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:1432
OrthancPluginErrorCode(* OrthancPluginRestCallback)(OrthancPluginRestOutput *output, const char *uri, const OrthancPluginHttpRequest *request)
Signature of a callback function that answers to a REST request.
Definition OrthancCPlugin.h:1411
void(* OrthancPluginFinalizeDatabaseBackendV4)(void *backend)
Signature of a callback function that is triggered when the database plugin must be finalized.
Definition OrthancCPlugin.h:9836
struct _OrthancPluginServerChunkedRequestReader_t OrthancPluginServerChunkedRequestReader
Opaque structure that reads the content of a HTTP request body during a chunked HTTP transfer.
Definition OrthancCPlugin.h:8097
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:9573
struct _OrthancPluginKeysValuesIterator_t OrthancPluginKeysValuesIterator
Opaque structure that represents an iterator over the keys and values of a key-value store.
Definition OrthancCPlugin.h:10339
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:1716
int32_t OrthancPluginCheckVersionAdvanced(const 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:2283
void OrthancPluginRegisterJobsUnserializer(OrthancPluginContext *context, OrthancPluginJobsUnserializer unserializer)
Register an unserializer for custom jobs.
Definition OrthancCPlugin.h:7495
void(* OrthancPluginFree)(void *buffer)
Signature of a function to free dynamic memory.
Definition OrthancCPlugin.h:1455
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:10814
void OrthancPluginRegisterRestCallbackNoLock(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback callback)
Register a REST callback, without locking.
Definition OrthancCPlugin.h:2558
OrthancPluginErrorCode OrthancPluginStorageAreaRead(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginStorageArea *storageArea, const char *uuid, OrthancPluginContentType type)
Read a file from the storage area.
Definition OrthancCPlugin.h:5269
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:1647
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:1553
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:8220
int32_t(* OrthancPluginIncomingCStoreInstanceFilter)(uint16_t *dimseStatus, const OrthancPluginDicomInstance *instance)
Callback to filter incoming DICOM instances received by Orthanc through C-STORE.
Definition OrthancCPlugin.h:8539
OrthancPluginErrorCode OrthancPluginRegisterIncomingDicomInstanceFilter(OrthancPluginContext *context, OrthancPluginIncomingDicomInstanceFilter callback)
Register a callback to filter incoming DICOM instances.
Definition OrthancCPlugin.h:8498
OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter(OrthancPluginContext *context, OrthancPluginIncomingHttpRequestFilter callback)
Register a callback to filter incoming HTTP requests.
Definition OrthancCPlugin.h:6290
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:5223
@ OrthancPluginChangeType_OrthancStopped
Definition OrthancCPlugin.h:837
@ OrthancPluginChangeType_OrthancStarted
Definition OrthancCPlugin.h:836
@ OrthancPluginChangeType_Deleted
Definition OrthancCPlugin.h:827
@ OrthancPluginChangeType_JobFailure
Definition OrthancCPlugin.h:844
@ OrthancPluginChangeType_NewInstance
Definition OrthancCPlugin.h:829
@ OrthancPluginChangeType_NewPatient
Definition OrthancCPlugin.h:830
@ OrthancPluginChangeType_JobSubmitted
Definition OrthancCPlugin.h:842
@ OrthancPluginChangeType_NewSeries
Definition OrthancCPlugin.h:831
@ OrthancPluginChangeType_StablePatient
Definition OrthancCPlugin.h:833
@ OrthancPluginChangeType_UpdatedPeers
Definition OrthancCPlugin.h:840
@ OrthancPluginChangeType_StableStudy
Definition OrthancCPlugin.h:835
@ OrthancPluginChangeType_CompletedSeries
Definition OrthancCPlugin.h:826
@ OrthancPluginChangeType_NewChildInstance
Definition OrthancCPlugin.h:828
@ OrthancPluginChangeType_UpdatedAttachment
Definition OrthancCPlugin.h:838
@ OrthancPluginChangeType_UpdatedMetadata
Definition OrthancCPlugin.h:839
@ OrthancPluginChangeType_StableSeries
Definition OrthancCPlugin.h:834
@ OrthancPluginChangeType_UpdatedModalities
Definition OrthancCPlugin.h:841
@ OrthancPluginChangeType_JobSuccess
Definition OrthancCPlugin.h:843
@ OrthancPluginChangeType_NewStudy
Definition OrthancCPlugin.h:832
uint32_t OrthancPluginGetFindQuerySize(OrthancPluginContext *context, const OrthancPluginFindQuery *query)
Get the number of tags in a C-Find query.
Definition OrthancCPlugin.h:6557
struct _OrthancPluginFindQuery_t OrthancPluginFindQuery
Opaque structure to an object that represents a C-Find query.
Definition OrthancCPlugin.h:1349
OrthancPluginErrorCode(* OrthancPluginApplyMove)(void *moveDriver)
Callback to apply one C-Move suboperation.
Definition OrthancCPlugin.h:1929
OrthancPluginErrorCode OrthancPluginFindMarkIncomplete(OrthancPluginContext *context, OrthancPluginFindAnswers *answers)
Mark the set of C-Find answers as incomplete.
Definition OrthancCPlugin.h:6532
void(* OrthancPluginStorageCommitmentDestructor)(void *handler)
Callback to free one storage commitment SCP handler.
Definition OrthancCPlugin.h:8387
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:1667
OrthancPluginErrorCode OrthancPluginRegisterMoveCallback2(OrthancPluginContext *context, OrthancPluginMoveCallback2 callback, OrthancPluginGetMoveSize getMoveSize, OrthancPluginApplyMove applyMove, OrthancPluginFreeMove freeMove)
Register a callback to handle C-Move requests (v2).
Definition OrthancCPlugin.h:11121
OrthancPluginErrorCode OrthancPluginRegisterMoveCallback(OrthancPluginContext *context, OrthancPluginMoveCallback callback, OrthancPluginGetMoveSize getMoveSize, OrthancPluginApplyMove applyMove, OrthancPluginFreeMove freeMove)
Register a callback to handle C-Move requests.
Definition OrthancCPlugin.h:6715
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:6666
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:8327
OrthancPluginErrorCode OrthancPluginRegisterStorageCommitmentScpCallback2(OrthancPluginContext *context, OrthancPluginStorageCommitmentFactory2 factory, OrthancPluginStorageCommitmentDestructor destructor, OrthancPluginStorageCommitmentLookup lookup)
Register a callback to handle incoming requests to the storage commitment SCP (v2).
Definition OrthancCPlugin.h:11159
OrthancPluginErrorCode OrthancPluginRegisterWorklistCallback2(OrthancPluginContext *context, OrthancPluginWorklistCallback2 callback)
Register a callback to handle modality worklists requests (v2).
Definition OrthancCPlugin.h:11060
OrthancPluginErrorCode OrthancPluginRegisterFindCallback(OrthancPluginContext *context, OrthancPluginFindCallback callback)
Register a callback to handle C-Find requests.
Definition OrthancCPlugin.h:6462
OrthancPluginErrorCode(* OrthancPluginFindCallback2)(OrthancPluginFindAnswers *answers, const OrthancPluginFindQuery *query, const OrthancPluginDicomConnection *connection)
Callback to handle incoming C-Find SCP requests (v2).
Definition OrthancCPlugin.h:1803
OrthancPluginErrorCode OrthancPluginWorklistGetDicomQuery(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const OrthancPluginWorklistQuery *query)
Retrieve the worklist query as a DICOM file.
Definition OrthancCPlugin.h:5834
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:8408
int32_t OrthancPluginWorklistIsMatch(OrthancPluginContext *context, const OrthancPluginWorklistQuery *query, const void *dicom, uint32_t size)
Test whether a worklist matches the query.
Definition OrthancCPlugin.h:5795
OrthancPluginErrorCode OrthancPluginFindAddAnswer(OrthancPluginContext *context, OrthancPluginFindAnswers *answers, const void *dicom, uint32_t size)
Add one answer to some C-Find request.
Definition OrthancCPlugin.h:6502
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:8436
struct _OrthancPluginFindAnswers_t OrthancPluginFindAnswers
Opaque structure to an object that represents the answers to a C-Find query for worklists.
Definition OrthancCPlugin.h:1358
struct _OrthancPluginWorklistAnswers_t OrthancPluginWorklistAnswers
Opaque structure to an object that represents the answers to a C-Find query for worklists.
Definition OrthancCPlugin.h:1341
OrthancPluginErrorCode(* OrthancPluginFindCallback)(OrthancPluginFindAnswers *answers, const OrthancPluginFindQuery *query, const char *issuerAet, const char *calledAet)
Callback to handle incoming C-Find SCP requests.
Definition OrthancCPlugin.h:1782
uint32_t(* OrthancPluginGetMoveSize)(void *moveDriver)
Callback to read the size of a C-Move driver.
Definition OrthancCPlugin.h:1914
OrthancPluginErrorCode OrthancPluginRegisterWorklistCallback(OrthancPluginContext *context, OrthancPluginWorklistCallback callback)
Register a callback to handle modality worklists requests.
Definition OrthancCPlugin.h:5692
void *(* OrthancPluginMoveCallback2)(OrthancPluginResourceType resourceType, const char *patientId, const char *accessionNumber, const char *studyInstanceUid, const char *seriesInstanceUid, const char *sopInstanceUid, const OrthancPluginDicomConnection *connection, const char *targetAet, uint16_t originatorId)
Callback to handle incoming C-Move SCP requests (v2).
Definition OrthancCPlugin.h:1890
OrthancPluginErrorCode OrthancPluginRegisterFindCallback2(OrthancPluginContext *context, OrthancPluginFindCallback2 callback)
Register a callback to handle C-Find requests (v2).
Definition OrthancCPlugin.h:11088
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:6627
OrthancPluginErrorCode OrthancPluginWorklistMarkIncomplete(OrthancPluginContext *context, OrthancPluginWorklistAnswers *answers)
Mark the set of worklist answers as incomplete.
Definition OrthancCPlugin.h:5757
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:6595
OrthancPluginErrorCode(* OrthancPluginStorageCommitmentFactory2)(void **handler, const char *jobId, const char *transactionUid, const char *const *sopClassUids, const char *const *sopInstanceUids, uint32_t countInstances, const OrthancPluginDicomConnection *connection)
Callback executed by the storage commitment SCP (v2).
Definition OrthancCPlugin.h:8366
void(* OrthancPluginFreeMove)(void *moveDriver)
Callback to free one C-Move driver.
Definition OrthancCPlugin.h:1943
struct _OrthancPluginWorklistQuery_t OrthancPluginWorklistQuery
Opaque structure to an object that represents a C-Find query for worklists.
Definition OrthancCPlugin.h:1333
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:1844
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:5727
OrthancPluginErrorCode(* OrthancPluginWorklistCallback2)(OrthancPluginWorklistAnswers *answers, const OrthancPluginWorklistQuery *query, const OrthancPluginDicomConnection *connection)
Callback to handle the C-Find SCP requests for worklists (v2).
Definition OrthancCPlugin.h:1687
const char * OrthancPluginGetConnectionRemoteAet(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the remote AET of a DICOM connection.
Definition OrthancCPlugin.h:10950
struct _OrthancPluginDicomConnection_t OrthancPluginDicomConnection
Opaque structure that represents the parameters of a DICOM connection.
Definition OrthancCPlugin.h:1403
const char * OrthancPluginGetConnectionRemoteIp(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the remote IP of a DICOM connection.
Definition OrthancCPlugin.h:10985
const char * OrthancPluginGetConnectionCalledAet(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the called AET of a DICOM connection.
Definition OrthancCPlugin.h:11020
int32_t OrthancPluginHasInstancePixelData(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Check whether the DICOM file has pixel data.
Definition OrthancCPlugin.h:8700
char * OrthancPluginGetInstanceDicomWebXml(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:9095
struct _OrthancPluginDicomInstance_t OrthancPluginDicomInstance
Opaque structure that represents a DICOM instance that is managed by the Orthanc core.
Definition OrthancCPlugin.h:1309
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:8869
const char * OrthancPluginGetInstanceRemoteAet(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the AET of a DICOM instance.
Definition OrthancCPlugin.h:3362
OrthancPluginDicomInstance * OrthancPluginLoadDicomInstance(OrthancPluginContext *context, const char *instanceId, OrthancPluginLoadDicomInstanceMode mode)
Load a DICOM instance from the Orthanc server.
Definition OrthancCPlugin.h:9902
char * OrthancPluginGetInstanceJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file.
Definition OrthancCPlugin.h:3464
OrthancPluginDicomInstance * OrthancPluginTranscodeDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size, const char *transferSyntax)
Parse and transcode a DICOM instance.
Definition OrthancCPlugin.h:8938
int32_t OrthancPluginHasInstanceMetadata(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, const char *metadata)
Check whether a DICOM instance is associated with some metadata.
Definition OrthancCPlugin.h:3541
OrthancPluginDicomInstance * OrthancPluginCreateDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size)
Parse a DICOM instance.
Definition OrthancCPlugin.h:8751
uint32_t OrthancPluginGetInstanceFramesCount(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the number of frames in a DICOM instance.
Definition OrthancCPlugin.h:8828
OrthancPluginInstanceOrigin OrthancPluginGetInstanceOrigin(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the origin of a DICOM file.
Definition OrthancCPlugin.h:5860
int64_t OrthancPluginGetInstanceSize(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the size of a DICOM file.
Definition OrthancCPlugin.h:3395
char * OrthancPluginGetInstanceDicomWebJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:9054
char * OrthancPluginGetInstanceTransferSyntaxUid(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the transfer syntax of a DICOM file.
Definition OrthancCPlugin.h:8664
void OrthancPluginFreeDicomInstance(OrthancPluginContext *context, OrthancPluginDicomInstance *dicom)
Free a DICOM instance.
Definition OrthancCPlugin.h:8790
OrthancPluginErrorCode OrthancPluginSerializeDicomInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const OrthancPluginDicomInstance *instance)
Writes a DICOM instance to a memory buffer.
Definition OrthancCPlugin.h:8977
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:3582
char * OrthancPluginGetInstanceSimplifiedJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file (with simplification).
Definition OrthancCPlugin.h:3502
const void * OrthancPluginGetInstanceData(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the data of a DICOM file.
Definition OrthancCPlugin.h:3428
OrthancPluginImage * OrthancPluginGetInstanceDecodedFrame(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition OrthancCPlugin.h:8898
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:9010
OrthancPluginImage * OrthancPluginConvertPixelFormat(OrthancPluginContext *context, const OrthancPluginImage *source, OrthancPluginPixelFormat targetFormat)
Change the pixel format of an image.
Definition OrthancCPlugin.h:5007
OrthancPluginPixelFormat
Definition OrthancCPlugin.h:700
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:5167
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:4751
uint32_t OrthancPluginGetImagePitch(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the pitch of an image.
Definition OrthancCPlugin.h:4542
OrthancPluginPixelFormat OrthancPluginGetImagePixelFormat(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the pixel format of an image.
Definition OrthancCPlugin.h:4441
OrthancPluginImage * OrthancPluginCreateImage(OrthancPluginContext *context, OrthancPluginPixelFormat format, uint32_t width, uint32_t height)
Create an image.
Definition OrthancCPlugin.h:5990
uint32_t OrthancPluginGetFontsCount(OrthancPluginContext *context)
Return the number of available fonts.
Definition OrthancCPlugin.h:5042
uint32_t OrthancPluginGetImageHeight(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the height of an image.
Definition OrthancCPlugin.h:4507
void * OrthancPluginGetImageBuffer(OrthancPluginContext *context, const OrthancPluginImage *image)
Return a pointer to the content of an image.
Definition OrthancCPlugin.h:4576
void OrthancPluginFreeImage(OrthancPluginContext *context, OrthancPluginImage *image)
Free an image.
Definition OrthancCPlugin.h:4661
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:4706
OrthancPluginImage * OrthancPluginDecodeDicomImage(OrthancPluginContext *context, const void *buffer, uint32_t bufferSize, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition OrthancCPlugin.h:6079
OrthancPluginImage * OrthancPluginUncompressImage(OrthancPluginContext *context, const void *data, uint32_t size, OrthancPluginImageFormat format)
Decode a compressed image.
Definition OrthancCPlugin.h:4619
const char * OrthancPluginGetFontName(OrthancPluginContext *context, uint32_t fontIndex)
Return the name of a font.
Definition OrthancCPlugin.h:5082
OrthancPluginImageFormat
Definition OrthancCPlugin.h:871
struct _OrthancPluginStorageArea_t OrthancPluginStorageArea
Opaque structure that represents the storage area that is actually used by Orthanc.
Definition OrthancCPlugin.h:1325
OrthancPluginCompressionType
Definition OrthancCPlugin.h:855
uint32_t OrthancPluginGetImageWidth(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the width of an image.
Definition OrthancCPlugin.h:4474
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:4253
uint32_t OrthancPluginGetFontSize(OrthancPluginContext *context, uint32_t fontIndex)
Return the size of a font.
Definition OrthancCPlugin.h:5114
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:6033
struct _OrthancPluginImage_t OrthancPluginImage
Opaque structure that represents an image that is uncompressed in memory.
Definition OrthancCPlugin.h:1317
@ OrthancPluginPixelFormat_RGBA32
Color image in RGBA32 format.
Definition OrthancCPlugin.h:739
@ OrthancPluginPixelFormat_RGB48
Color image in RGB48 format.
Definition OrthancCPlugin.h:749
@ OrthancPluginPixelFormat_Grayscale8
Graylevel 8bpp image.
Definition OrthancCPlugin.h:707
@ OrthancPluginPixelFormat_SignedGrayscale16
Graylevel, signed 16bpp image.
Definition OrthancCPlugin.h:723
@ OrthancPluginPixelFormat_Float32
Graylevel, floating-point 32bpp image.
Definition OrthancCPlugin.h:765
@ OrthancPluginPixelFormat_RGB24
Color image in RGB24 format.
Definition OrthancCPlugin.h:731
@ OrthancPluginPixelFormat_BGRA32
Color image in BGRA32 format.
Definition OrthancCPlugin.h:773
@ OrthancPluginPixelFormat_Unknown
Definition OrthancCPlugin.h:741
@ OrthancPluginPixelFormat_Grayscale64
Graylevel, unsigned 64bpp image.
Definition OrthancCPlugin.h:781
@ OrthancPluginPixelFormat_Grayscale32
Graylevel, unsigned 32bpp image.
Definition OrthancCPlugin.h:757
@ OrthancPluginPixelFormat_Grayscale16
Graylevel, unsigned 16bpp image.
Definition OrthancCPlugin.h:715
@ OrthancPluginImageFormat_Png
Definition OrthancCPlugin.h:872
@ OrthancPluginImageFormat_Jpeg
Definition OrthancCPlugin.h:873
@ OrthancPluginImageFormat_Dicom
Definition OrthancCPlugin.h:874
@ OrthancPluginCompressionType_Gzip
Definition OrthancCPlugin.h:858
@ OrthancPluginCompressionType_ZlibWithSize
Definition OrthancCPlugin.h:857
@ OrthancPluginCompressionType_None
Definition OrthancCPlugin.h:860
@ OrthancPluginCompressionType_Zlib
Definition OrthancCPlugin.h:856
@ OrthancPluginCompressionType_GzipWithSize
Definition OrthancCPlugin.h:859
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:2826
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:2861
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:2974
char * OrthancPluginLookupStudyWithAccessionNumber(OrthancPluginContext *context, const char *accessionNumber)
Look for a study, using the accession number.
Definition OrthancCPlugin.h:3110
char * OrthancPluginLookupSeries(OrthancPluginContext *context, const char *seriesUID)
Look for a series.
Definition OrthancCPlugin.h:3145
OrthancPluginErrorCode OrthancPluginSetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *value)
Set the value of a global property.
Definition OrthancCPlugin.h:4011
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:2938
char * OrthancPluginGetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *defaultValue)
Get the value of a global property.
Definition OrthancCPlugin.h:3972
char * OrthancPluginLookupStudy(OrthancPluginContext *context, const char *studyUID)
Look for a study.
Definition OrthancCPlugin.h:3075
OrthancPluginErrorCode OrthancPluginRestApiGet(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri)
Make a GET call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2759
char * OrthancPluginLookupInstance(OrthancPluginContext *context, const char *sopInstanceUID)
Look for an instance.
Definition OrthancCPlugin.h:3180
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:2789
char * OrthancPluginLookupPatient(OrthancPluginContext *context, const char *patientID)
Look for a patient.
Definition OrthancCPlugin.h:3040
OrthancPluginErrorCode OrthancPluginRestApiDelete(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2890
OrthancPluginErrorCode OrthancPluginRestApiDeleteAfterPlugins(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the REST API, as tainted by the plugins.
Definition OrthancCPlugin.h:2913
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:9446
char * OrthancPluginGenerateRestApiAuthorizationToken(OrthancPluginContext *context)
Generate a token to grant full access to the REST API of Orthanc.
Definition OrthancCPlugin.h:9243
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:5654
OrthancPluginErrorCode OrthancPluginGetDicomForInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *instanceId)
Retrieve a DICOM instance using its Orthanc identifier.
Definition OrthancCPlugin.h:2726
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:2685
void OrthancPluginSendUnauthorized(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *realm)
Signal that a REST request is not authorized.
Definition OrthancCPlugin.h:3248
void OrthancPluginSetHttpErrorDetails(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *details, uint8_t log)
Provide a detailed description for an HTTP error.
Definition OrthancCPlugin.h:7532
void OrthancPluginSendMethodNotAllowed(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *allowedMethods)
Signal that this URI does not support this HTTP method.
Definition OrthancCPlugin.h:3271
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:10078
void OrthancPluginAnswerBuffer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const void *answer, uint32_t answerSize, const char *mimeType)
Answer to a REST request.
Definition OrthancCPlugin.h:2628
void OrthancPluginSendHttpStatusCode(OrthancPluginContext *context, OrthancPluginRestOutput *output, uint16_t status)
Send a HTTP status code.
Definition OrthancCPlugin.h:3225
void OrthancPluginSetHttpHeader(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *key, const char *value)
Set some HTTP header.
Definition OrthancCPlugin.h:3326
OrthancPluginErrorCode OrthancPluginStartStreamAnswer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *contentType)
Start an HTTP stream answer.
Definition OrthancCPlugin.h:10050
void OrthancPluginSetCookie(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *cookie, const char *value)
Set a cookie.
Definition OrthancCPlugin.h:3301
void OrthancPluginRedirect(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *redirection)
Redirect a REST request.
Definition OrthancCPlugin.h:3008
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:4798
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:4211
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:6251
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:4405
OrthancPluginErrorCode OrthancPluginStartMultipartAnswer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *subType, const char *contentType)
Start an HTTP multipart answer.
Definition OrthancCPlugin.h:4182
OrthancPluginErrorCode(* OrthancPluginJobStop)(void *job, OrthancPluginJobStopReason reason)
Callback executed once one custom job leaves the "running" state.
Definition OrthancCPlugin.h:2083
OrthancPluginErrorCode(* OrthancPluginServerChunkedRequestReaderExecute)(OrthancPluginServerChunkedRequestReader *reader, OrthancPluginRestOutput *output)
Callback invoked whenever the request body is entirely received.
Definition OrthancCPlugin.h:8156
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:6366
struct _OrthancPluginJob_t OrthancPluginJob
Opaque structure to a job to be executed by Orthanc.
Definition OrthancCPlugin.h:1385
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:9377
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:10011
void OrthancPluginLogInfo(OrthancPluginContext *context, const char *message)
Log an information.
Definition OrthancCPlugin.h:2482
void OrthancPluginFreeFindMatcher(OrthancPluginContext *context, OrthancPluginFindMatcher *matcher)
Free a C-Find matcher.
Definition OrthancCPlugin.h:6794
void OrthancPluginFreePeers(OrthancPluginContext *context, OrthancPluginPeers *peers)
Free the list of available Orthanc peers.
Definition OrthancCPlugin.h:6935
OrthancPluginLogLevel
Definition OrthancCPlugin.h:1169
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:5459
OrthancPluginIdentifierConstraint
Definition OrthancCPlugin.h:975
void OrthancPluginExtendOrthancExplorer2(OrthancPluginContext *context, const char *plugin, const char *javascript)
Extend the JavaScript code of Orthanc Explorer.
Definition OrthancCPlugin.h:3937
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:5405
OrthancPluginResourceType
Definition OrthancCPlugin.h:807
void OrthancPluginSetRootUri2(OrthancPluginContext *context, const char *plugin, const char *uri)
Set the URI where the plugin provides its Web interface.
Definition OrthancCPlugin.h:3835
void OrthancPluginSetMetricsIntegerValue(OrthancPluginContext *context, const char *name, int64_t value, OrthancPluginMetricsType type)
Set the value of an integer metrics.
Definition OrthancCPlugin.h:9949
OrthancPluginLogCategory
Definition OrthancCPlugin.h:1186
OrthancPluginErrorCode OrthancPluginAcknowledgeQueueValue(OrthancPluginContext *context, const char *queueId, uint64_t valueId)
Acknowledge that a queue value has been properly consumed by the plugin and can be permanently remove...
Definition OrthancCPlugin.h:10919
OrthancPluginErrorCode OrthancPluginWriteFile(OrthancPluginContext *context, const char *path, const void *data, uint32_t size)
Write a file.
Definition OrthancCPlugin.h:4321
const char * OrthancPluginKeysValuesIteratorGetKey(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Get the current key of an iterator over a key-value store.
Definition OrthancCPlugin.h:10452
uint32_t OrthancPluginGetCommandLineArgumentsCount(OrthancPluginContext *context)
Get the number of command-line arguments.
Definition OrthancCPlugin.h:4042
OrthancPluginErrorCode OrthancPluginKeysValuesIteratorNext(OrthancPluginContext *context, uint8_t *done, OrthancPluginKeysValuesIterator *iterator)
Read the next element of an iterator over a key-value store.
Definition OrthancCPlugin.h:10422
char * OrthancPluginComputeMd5(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute an MD5 hash.
Definition OrthancCPlugin.h:6125
OrthancPluginErrorCode
Definition OrthancCPlugin.h:236
struct _OrthancPluginPeers_t OrthancPluginPeers
Opaque structure to the set of remote Orthanc Peers that are known to the local Orthanc server.
Definition OrthancCPlugin.h:1376
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:4889
uint32_t(* OrthancPluginChunkedClientRequestGetChunkSize)(void *request)
Callback to read the size of the current request chunk during a chunked transfer.
Definition OrthancCPlugin.h:7956
OrthancPluginErrorCode OrthancPluginRegisterErrorCode(OrthancPluginContext *context, int32_t code, uint16_t httpStatus, const char *message)
Declare a custom error code for this plugin.
Definition OrthancCPlugin.h:5349
OrthancPluginErrorCode OrthancPluginCreateMemoryBuffer(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, uint32_t size)
Create a 32-bit memory buffer.
Definition OrthancCPlugin.h:9204
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:7360
OrthancPluginErrorCode(* OrthancPluginServerChunkedRequestReaderFactory)(OrthancPluginServerChunkedRequestReader **reader, const char *uri, const OrthancPluginHttpRequest *request)
Callback to create a reader to handle incoming chunked HTTP transfers.
Definition OrthancCPlugin.h:8117
OrthancPluginDicomWebBinaryMode
Definition OrthancCPlugin.h:1064
OrthancPluginErrorCode(* OrthancPluginJobGetContent2)(OrthancPluginMemoryBuffer *target, void *job)
Callback to retrieve the content of one custom job.
Definition OrthancCPlugin.h:2003
OrthancPluginErrorCode(* OrthancPluginChunkedClientRequestNext)(void *request)
Callback to advance in the request body during a chunked transfer.
Definition OrthancCPlugin.h:7924
OrthancPluginHttpAuthenticationStatus
Definition OrthancCPlugin.h:1242
struct _OrthancPluginDicomWebNode_t OrthancPluginDicomWebNode
Opaque structure that represents a node in a JSON or XML document used in DICOMweb.
Definition OrthancCPlugin.h:1395
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:10317
float(* OrthancPluginJobGetProgress)(void *job)
Callback to check the progress of one custom job.
Definition OrthancCPlugin.h:1969
char * OrthancPluginEncodeDicomWebJson(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback callback)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:7681
OrthancPluginFindMatcher * OrthancPluginCreateFindMatcher(OrthancPluginContext *context, const void *query, uint32_t size)
Create a C-Find matcher.
Definition OrthancCPlugin.h:6755
OrthancPluginDicomToJsonFlags
Definition OrthancCPlugin.h:939
OrthancPluginJobStepStatus
Definition OrthancCPlugin.h:1021
OrthancPluginCreateDicomFlags
Definition OrthancCPlugin.h:960
void(* OrthancPluginServerChunkedRequestReaderFinalize)(OrthancPluginServerChunkedRequestReader *reader)
Callback invoked to release the resources associated with an incoming HTTP chunked transfer.
Definition OrthancCPlugin.h:8174
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:6828
void OrthancPluginExtendOrthancExplorer(OrthancPluginContext *context, const char *javascript)
Extend the JavaScript code of Orthanc Explorer.
Definition OrthancCPlugin.h:3913
void OrthancPluginLogWarning(OrthancPluginContext *context, const char *message)
Log a warning.
Definition OrthancCPlugin.h:2466
OrthancPluginQueueOrigin
Definition OrthancCPlugin.h:1218
OrthancPluginErrorCode OrthancPluginDequeueValue(OrthancPluginContext *context, uint8_t *found, OrthancPluginMemoryBuffer *target, const char *queueId, OrthancPluginQueueOrigin origin)
Dequeue a value from a queue.
Definition OrthancCPlugin.h:10559
const char * OrthancPluginGetPeerName(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the symbolic name of an Orthanc peer.
Definition OrthancCPlugin.h:7015
OrthancPluginPeers * OrthancPluginGetPeers(OrthancPluginContext *context)
Return the list of available Orthanc peers.
Definition OrthancCPlugin.h:6900
OrthancPluginConstraintType
Definition OrthancCPlugin.h:990
char * OrthancPluginGetOrthancDirectory(OrthancPluginContext *context)
Return the directory containing the Orthanc.
Definition OrthancCPlugin.h:3693
OrthancPluginErrorCode OrthancPluginReadFile(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *path)
Read a file.
Definition OrthancCPlugin.h:4290
OrthancPluginJobStepStatus(* OrthancPluginJobStep)(void *job)
Callback to execute one step of a custom job.
Definition OrthancCPlugin.h:2059
char * OrthancPluginComputeSha1(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute a SHA-1 hash.
Definition OrthancCPlugin.h:6161
char * OrthancPluginGetCommandLineArgument(OrthancPluginContext *context, uint32_t argument)
Get the value of a command-line argument.
Definition OrthancCPlugin.h:4076
void OrthancPluginSetMetricsValue(OrthancPluginContext *context, const char *name, float value, OrthancPluginMetricsType type)
Set the value of a floating-point metrics.
Definition OrthancCPlugin.h:7612
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:8136
OrthancPluginReceivedInstanceAction
Definition OrthancCPlugin.h:1125
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:8036
int32_t(* OrthancPluginJobGetSerialized2)(OrthancPluginMemoryBuffer *target, void *job)
Callback to serialize one custom job.
Definition OrthancCPlugin.h:2043
void OrthancPluginFreeMemoryBuffer64(OrthancPluginContext *context, OrthancPluginMemoryBuffer64 *buffer)
Free a memory buffer.
Definition OrthancCPlugin.h:2434
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:4931
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:10252
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:5547
OrthancPluginErrorCode OrthancPluginSetStableStatus(OrthancPluginContext *context, uint8_t *statusHasChanged, const char *resourceId, OrthancPluginStableStatus stableStatus)
Change the "Stable" status of a resource.
Definition OrthancCPlugin.h:10632
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:5916
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:5596
void OrthancPluginFreeKeysValuesIterator(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Free an iterator over a key-value store.
Definition OrthancCPlugin.h:10394
void OrthancPluginFreeJob(OrthancPluginContext *context, OrthancPluginJob *job)
Free a custom job.
Definition OrthancCPlugin.h:7416
const char * OrthancPluginGetDatabaseServerIdentifier(OrthancPluginContext *context)
Gets the DatabaseServerIdentifier.
Definition OrthancCPlugin.h:9763
char * OrthancPluginGenerateUuid(OrthancPluginContext *context)
Generate an UUID.
Definition OrthancCPlugin.h:6422
OrthancPluginStorageCommitmentFailureReason
Definition OrthancCPlugin.h:1077
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:7887
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:7104
OrthancPluginMetricsType
Definition OrthancCPlugin.h:1047
OrthancPluginErrorCode OrthancPluginReserveQueueValue(OrthancPluginContext *context, uint8_t *found, OrthancPluginMemoryBuffer *target, uint64_t *valueId, const char *queueId, OrthancPluginQueueOrigin origin, uint32_t releaseTimeout)
Reserve a value from a queue, which means that the message is not available to other consumers....
Definition OrthancCPlugin.h:10883
const char * OrthancPluginAutodetectMimeType(OrthancPluginContext *context, const char *path)
Detect the MIME type of a file.
Definition OrthancCPlugin.h:7565
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:10218
OrthancPluginErrorCode OrthancPluginHttpDelete(OrthancPluginContext *context, const char *url, const char *username, const char *password)
Issue a HTTP DELETE call.
Definition OrthancCPlugin.h:4969
uint8_t(* OrthancPluginChunkedClientRequestIsDone)(void *request)
Callback to know whether the request body is entirely read during a chunked transfer.
Definition OrthancCPlugin.h:7907
const void *(* OrthancPluginChunkedClientRequestGetChunkData)(void *request)
Callback to read the current chunk of the request body during a chunked transfer.
Definition OrthancCPlugin.h:7940
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:10143
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:7273
void OrthancPluginFreeMemoryBuffer(OrthancPluginContext *context, OrthancPluginMemoryBuffer *buffer)
Free a memory buffer.
Definition OrthancCPlugin.h:2417
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:10522
char * OrthancPluginEncodeDicomWebXml(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback callback)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:7724
const char *(* OrthancPluginJobGetSerialized)(void *job)
Callback to serialize one custom job.
Definition OrthancCPlugin.h:2023
char * OrthancPluginGetConfiguration(OrthancPluginContext *context)
Return the content of the configuration file(s).
Definition OrthancCPlugin.h:4141
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:10361
OrthancPluginErrorCode OrthancPluginCreateMemoryBuffer64(OrthancPluginContext *context, OrthancPluginMemoryBuffer64 *target, uint64_t size)
Create a 64-bit memory buffer.
Definition OrthancCPlugin.h:9290
OrthancPluginLoadDicomInstanceMode
Definition OrthancCPlugin.h:1139
OrthancPluginStoreStatus
Definition OrthancCPlugin.h:1203
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:7866
uint32_t OrthancPluginGetPeersCount(OrthancPluginContext *context, const OrthancPluginPeers *peers)
Get the number of Orthanc peers.
Definition OrthancCPlugin.h:6966
const char *(* OrthancPluginJobGetContent)(void *job)
Callback to retrieve the content of one custom job.
Definition OrthancCPlugin.h:1985
OrthancPluginValueRepresentation
Definition OrthancCPlugin.h:885
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:10774
char * OrthancPluginSubmitJob(OrthancPluginContext *context, OrthancPluginJob *job, int32_t priority)
Submit a new job to the jobs engine of Orthanc.
Definition OrthancCPlugin.h:7449
OrthancPluginErrorCode OrthancPluginKeysValuesIteratorGetValue(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginKeysValuesIterator *iterator)
Get the current value of an iterator over a key-value store.
Definition OrthancCPlugin.h:10492
OrthancPluginErrorCode OrthancPluginHttpGet(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *url, const char *username, const char *password)
Issue a HTTP GET call.
Definition OrthancCPlugin.h:4851
OrthancPluginJobStopReason
Definition OrthancCPlugin.h:1035
OrthancPluginErrorCode OrthancPluginDeleteKeyValue(OrthancPluginContext *context, const char *storeId, const char *key)
Delete a key-value pair from the Orthanc database.
Definition OrthancCPlugin.h:10284
char * OrthancPluginGetOrthancPath(OrthancPluginContext *context)
Return the path to the Orthanc executable.
Definition OrthancCPlugin.h:3663
OrthancPluginDicomToJsonFormat
Definition OrthancCPlugin.h:924
void OrthancPluginSetDescription2(OrthancPluginContext *context, const char *plugin, const char *description)
Set a description for this plugin.
Definition OrthancCPlugin.h:3886
OrthancPluginErrorCode OrthancPluginGetAttachmentCustomData(OrthancPluginContext *context, OrthancPluginMemoryBuffer *customData, const char *attachmentUuid)
Retrieve the custom data associated with an attachment in the Orthanc database.
Definition OrthancCPlugin.h:10185
void OrthancPluginLogError(OrthancPluginContext *context, const char *message)
Log an error.
Definition OrthancCPlugin.h:2450
char * OrthancPluginGetConfigurationPath(OrthancPluginContext *context)
Return the path to the configuration file(s).
Definition OrthancCPlugin.h:3728
OrthancPluginHttpMethod
Definition OrthancCPlugin.h:365
void OrthancPluginSetRootUri(OrthancPluginContext *context, const char *uri)
Set the URI where the plugin provides its Web interface.
Definition OrthancCPlugin.h:3809
char * OrthancPluginEncodeDicomWebXml2(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:7822
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:7186
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:1367
char * OrthancPluginEncodeDicomWebJson2(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:7777
OrthancPluginErrorCode OrthancPluginLookupDictionary(OrthancPluginContext *context, OrthancPluginDictionaryEntry *target, const char *name)
Get information about the given DICOM tag.
Definition OrthancCPlugin.h:6207
OrthancPluginErrorCode OrthancPluginGetQueueSize(OrthancPluginContext *context, const char *queueId, uint64_t *size)
Get the number of elements that are currently stored in a queue.
Definition OrthancCPlugin.h:10591
OrthancPluginInstanceOrigin
Definition OrthancCPlugin.h:1005
void(* OrthancPluginJobFinalize)(void *job)
Callback to finalize one custom job.
Definition OrthancCPlugin.h:1956
void OrthancPluginFreeString(OrthancPluginContext *context, char *str)
Free a string.
Definition OrthancCPlugin.h:2252
OrthancPluginErrorCode OrthancPluginSetCurrentThreadName(OrthancPluginContext *context, const char *threadName)
Set the name of the current thread.
Definition OrthancCPlugin.h:9977
OrthancPluginErrorCode(* OrthancPluginJobReset)(void *job)
Callback executed once one stopped custom job is started again.
Definition OrthancCPlugin.h:2100
const char * OrthancPluginGetErrorDescription(OrthancPluginContext *context, OrthancPluginErrorCode error)
Get the description of a given error code.
Definition OrthancCPlugin.h:4352
struct _OrthancPluginContext_t OrthancPluginContext
Data structure that contains information about the Orthanc core.
OrthancPluginContentType
Definition OrthancCPlugin.h:792
const char * OrthancPluginGetPeerUrl(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the base URL of an Orthanc peer.
Definition OrthancCPlugin.h:7057
void OrthancPluginSetDescription(OrthancPluginContext *context, const char *description)
Set a description for this plugin.
Definition OrthancCPlugin.h:3862
OrthancPluginStableStatus
Definition OrthancCPlugin.h:1230
char * OrthancPluginGetTagName(OrthancPluginContext *context, uint16_t group, uint16_t element, const char *privateCreator)
Returns the symbolic name of a DICOM tag.
Definition OrthancCPlugin.h:8272
@ OrthancPluginLogLevel_Warning
Definition OrthancCPlugin.h:1171
@ OrthancPluginLogLevel_Trace
Definition OrthancCPlugin.h:1173
@ OrthancPluginLogLevel_Error
Definition OrthancCPlugin.h:1170
@ OrthancPluginLogLevel_Info
Definition OrthancCPlugin.h:1172
@ OrthancPluginIdentifierConstraint_Wildcard
Definition OrthancCPlugin.h:979
@ OrthancPluginIdentifierConstraint_Equal
Definition OrthancCPlugin.h:976
@ OrthancPluginIdentifierConstraint_SmallerOrEqual
Definition OrthancCPlugin.h:977
@ OrthancPluginIdentifierConstraint_GreaterOrEqual
Definition OrthancCPlugin.h:978
@ OrthancPluginResourceType_Instance
Definition OrthancCPlugin.h:811
@ OrthancPluginResourceType_None
Definition OrthancCPlugin.h:812
@ OrthancPluginResourceType_Series
Definition OrthancCPlugin.h:810
@ OrthancPluginResourceType_Study
Definition OrthancCPlugin.h:809
@ OrthancPluginResourceType_Patient
Definition OrthancCPlugin.h:808
@ OrthancPluginLogCategory_Dicom
Definition OrthancCPlugin.h:1191
@ OrthancPluginLogCategory_Jobs
Definition OrthancCPlugin.h:1192
@ OrthancPluginLogCategory_Sqlite
Definition OrthancCPlugin.h:1190
@ OrthancPluginLogCategory_Plugins
Definition OrthancCPlugin.h:1188
@ OrthancPluginLogCategory_Generic
Definition OrthancCPlugin.h:1187
@ OrthancPluginLogCategory_Lua
Definition OrthancCPlugin.h:1193
@ OrthancPluginLogCategory_Http
Definition OrthancCPlugin.h:1189
@ OrthancPluginErrorCode_CreateDicomBadParent
Definition OrthancCPlugin.h:326
@ OrthancPluginErrorCode_MainDicomTagsMultiplyDefined
Definition OrthancCPlugin.h:282
@ OrthancPluginErrorCode_SQLiteFlush
Definition OrthancCPlugin.h:294
@ OrthancPluginErrorCode_IncompatibleDatabaseVersion
Definition OrthancCPlugin.h:256
@ OrthancPluginErrorCode_BadSequenceOfCalls
Definition OrthancCPlugin.h:244
@ OrthancPluginErrorCode_SharedLibrary
Definition OrthancCPlugin.h:263
@ OrthancPluginErrorCode_NullPointer
Definition OrthancCPlugin.h:273
@ OrthancPluginErrorCode_NotLuaPredicate
Definition OrthancCPlugin.h:336
@ OrthancPluginErrorCode_LuaAlreadyExecuted
Definition OrthancCPlugin.h:334
@ OrthancPluginErrorCode_NotAcceptable
Definition OrthancCPlugin.h:272
@ OrthancPluginErrorCode_FullStorage
Definition OrthancCPlugin.h:257
@ OrthancPluginErrorCode_DatabaseBackendAlreadyRegistered
Definition OrthancCPlugin.h:339
@ OrthancPluginErrorCode_InexistentFile
Definition OrthancCPlugin.h:251
@ OrthancPluginErrorCode_CreateDicomParentEncoding
Definition OrthancCPlugin.h:328
@ OrthancPluginErrorCode_CannotOrderSlices
Definition OrthancCPlugin.h:342
@ OrthancPluginErrorCode_InternalError
Definition OrthancCPlugin.h:237
@ OrthancPluginErrorCode_DiscontinuedAbi
Definition OrthancCPlugin.h:278
@ OrthancPluginErrorCode_NoCFindHandler
Definition OrthancCPlugin.h:312
@ OrthancPluginErrorCode_SQLiteCommitWithoutTransaction
Definition OrthancCPlugin.h:292
@ OrthancPluginErrorCode_DatabasePlugin
Definition OrthancCPlugin.h:269
@ OrthancPluginErrorCode_SQLiteStatementAlreadyUsed
Definition OrthancCPlugin.h:289
@ OrthancPluginErrorCode_SQLiteCannotRun
Definition OrthancCPlugin.h:295
@ OrthancPluginErrorCode_UnknownPluginService
Definition OrthancCPlugin.h:264
@ OrthancPluginErrorCode_JsonToLuaTable
Definition OrthancCPlugin.h:331
@ OrthancPluginErrorCode_CreateDicomOverrideTag
Definition OrthancCPlugin.h:322
@ OrthancPluginErrorCode_SQLiteBindOutOfRange
Definition OrthancCPlugin.h:297
@ OrthancPluginErrorCode_ParameterOutOfRange
Definition OrthancCPlugin.h:241
@ OrthancPluginErrorCode_SQLiteRegisterFunction
Definition OrthancCPlugin.h:293
@ OrthancPluginErrorCode_SQLiteTransactionBegin
Definition OrthancCPlugin.h:301
@ OrthancPluginErrorCode_CreateDicomNoPayload
Definition OrthancCPlugin.h:324
@ OrthancPluginErrorCode_Unauthorized
Definition OrthancCPlugin.h:267
@ OrthancPluginErrorCode_RegularFileExpected
Definition OrthancCPlugin.h:308
@ OrthancPluginErrorCode_DicomPortInUse
Definition OrthancCPlugin.h:306
@ OrthancPluginErrorCode_BadApplicationEntityTitle
Definition OrthancCPlugin.h:311
@ OrthancPluginErrorCode_NoCStoreHandler
Definition OrthancCPlugin.h:314
@ OrthancPluginErrorCode_PathToExecutable
Definition OrthancCPlugin.h:309
@ OrthancPluginErrorCode_NoSopClassOrInstance
Definition OrthancCPlugin.h:316
@ OrthancPluginErrorCode_BadFont
Definition OrthancCPlugin.h:268
@ OrthancPluginErrorCode_DicomGetUnavailable
Definition OrthancCPlugin.h:347
@ OrthancPluginErrorCode_DatabaseUnavailable
Definition OrthancCPlugin.h:274
@ OrthancPluginErrorCode_CannotCreateLua
Definition OrthancCPlugin.h:332
@ OrthancPluginErrorCode_SQLiteExecute
Definition OrthancCPlugin.h:290
@ OrthancPluginErrorCode_UriSyntax
Definition OrthancCPlugin.h:250
@ OrthancPluginErrorCode_DirectoryOverFile
Definition OrthancCPlugin.h:302
@ OrthancPluginErrorCode_Revision
Definition OrthancCPlugin.h:281
@ OrthancPluginErrorCode_InexistentTag
Definition OrthancCPlugin.h:259
@ OrthancPluginErrorCode_IncompatibleImageFormat
Definition OrthancCPlugin.h:261
@ OrthancPluginErrorCode_UnsupportedMediaType
Definition OrthancCPlugin.h:348
@ OrthancPluginErrorCode_DicomFindUnavailable
Definition OrthancCPlugin.h:318
@ OrthancPluginErrorCode_SQLiteCannotStep
Definition OrthancCPlugin.h:296
@ OrthancPluginErrorCode_CreateDicomParentIsInstance
Definition OrthancCPlugin.h:327
@ OrthancPluginErrorCode_DuplicateResource
Definition OrthancCPlugin.h:284
@ OrthancPluginErrorCode_StorageAreaAlreadyRegistered
Definition OrthancCPlugin.h:338
@ OrthancPluginErrorCode_LuaReturnsNoString
Definition OrthancCPlugin.h:337
@ OrthancPluginErrorCode_UnknownResource
Definition OrthancCPlugin.h:255
@ OrthancPluginErrorCode_CreateDicomNotString
Definition OrthancCPlugin.h:321
@ OrthancPluginErrorCode_HttpPortInUse
Definition OrthancCPlugin.h:305
@ OrthancPluginErrorCode_SslDisabled
Definition OrthancCPlugin.h:341
@ OrthancPluginErrorCode_UnknownModality
Definition OrthancCPlugin.h:329
@ OrthancPluginErrorCode_BadHttpStatusInRest
Definition OrthancCPlugin.h:307
@ OrthancPluginErrorCode_BadGeometry
Definition OrthancCPlugin.h:276
@ OrthancPluginErrorCode_AlreadyExistingTag
Definition OrthancCPlugin.h:344
@ OrthancPluginErrorCode_FileStorageCannotWrite
Definition OrthancCPlugin.h:303
@ OrthancPluginErrorCode_CreateDicomUseDataUriScheme
Definition OrthancCPlugin.h:325
@ OrthancPluginErrorCode_DirectoryExpected
Definition OrthancCPlugin.h:304
@ OrthancPluginErrorCode_NoCMoveHandler
Definition OrthancCPlugin.h:313
@ OrthancPluginErrorCode_SQLitePrepareStatement
Definition OrthancCPlugin.h:298
@ OrthancPluginErrorCode_CorruptedFile
Definition OrthancCPlugin.h:258
@ OrthancPluginErrorCode_StorageAreaPlugin
Definition OrthancCPlugin.h:270
@ OrthancPluginErrorCode_BadJobOrdering
Definition OrthancCPlugin.h:330
@ OrthancPluginErrorCode_IncompatibleConfigurations
Definition OrthancCPlugin.h:285
@ OrthancPluginErrorCode_DatabaseCannotSerialize
Definition OrthancCPlugin.h:280
@ OrthancPluginErrorCode_CanceledJob
Definition OrthancCPlugin.h:275
@ OrthancPluginErrorCode_BadRange
Definition OrthancCPlugin.h:279
@ OrthancPluginErrorCode_NotImplemented
Definition OrthancCPlugin.h:240
@ OrthancPluginErrorCode_SslInitialization
Definition OrthancCPlugin.h:277
@ OrthancPluginErrorCode_IncompatibleImageSize
Definition OrthancCPlugin.h:262
@ OrthancPluginErrorCode_BadFileFormat
Definition OrthancCPlugin.h:253
@ OrthancPluginErrorCode_BadRequest
Definition OrthancCPlugin.h:246
@ OrthancPluginErrorCode_SystemCommand
Definition OrthancCPlugin.h:248
@ OrthancPluginErrorCode_NoStorageCommitmentHandler
Definition OrthancCPlugin.h:345
@ OrthancPluginErrorCode_SQLiteAlreadyOpened
Definition OrthancCPlugin.h:287
@ OrthancPluginErrorCode_Plugin
Definition OrthancCPlugin.h:239
@ OrthancPluginErrorCode_CannotExecuteLua
Definition OrthancCPlugin.h:333
@ OrthancPluginErrorCode_SQLiteRollbackWithoutTransaction
Definition OrthancCPlugin.h:291
@ OrthancPluginErrorCode_UnknownDicomTag
Definition OrthancCPlugin.h:265
@ OrthancPluginErrorCode_ForbiddenAccess
Definition OrthancCPlugin.h:283
@ OrthancPluginErrorCode_NoPresentationContext
Definition OrthancCPlugin.h:317
@ OrthancPluginErrorCode_EmptyRequest
Definition OrthancCPlugin.h:271
@ OrthancPluginErrorCode_DatabaseNotInitialized
Definition OrthancCPlugin.h:340
@ OrthancPluginErrorCode_DicomMoveUnavailable
Definition OrthancCPlugin.h:319
@ OrthancPluginErrorCode_SQLiteTransactionCommit
Definition OrthancCPlugin.h:300
@ OrthancPluginErrorCode_BadJson
Definition OrthancCPlugin.h:266
@ OrthancPluginErrorCode_Success
Definition OrthancCPlugin.h:238
@ OrthancPluginErrorCode_NetworkProtocol
Definition OrthancCPlugin.h:247
@ OrthancPluginErrorCode_NoApplicationEntityFilter
Definition OrthancCPlugin.h:315
@ OrthancPluginErrorCode_InexistentItem
Definition OrthancCPlugin.h:245
@ OrthancPluginErrorCode_Timeout
Definition OrthancCPlugin.h:254
@ OrthancPluginErrorCode_LuaBadOutput
Definition OrthancCPlugin.h:335
@ OrthancPluginErrorCode_SQLiteTransactionAlreadyStarted
Definition OrthancCPlugin.h:299
@ OrthancPluginErrorCode_NoCGetHandler
Definition OrthancCPlugin.h:346
@ OrthancPluginErrorCode_SQLiteNotOpened
Definition OrthancCPlugin.h:286
@ OrthancPluginErrorCode_ReadOnly
Definition OrthancCPlugin.h:260
@ OrthancPluginErrorCode_CannotStoreInstance
Definition OrthancCPlugin.h:320
@ OrthancPluginErrorCode_CannotWriteFile
Definition OrthancCPlugin.h:252
@ OrthancPluginErrorCode_BadParameterType
Definition OrthancCPlugin.h:243
@ OrthancPluginErrorCode_NotEnoughMemory
Definition OrthancCPlugin.h:242
@ OrthancPluginErrorCode_CreateDicomUseContent
Definition OrthancCPlugin.h:323
@ OrthancPluginErrorCode_Database
Definition OrthancCPlugin.h:249
@ OrthancPluginErrorCode_SQLiteCannotOpen
Definition OrthancCPlugin.h:288
@ OrthancPluginErrorCode_MakeDirectory
Definition OrthancCPlugin.h:310
@ OrthancPluginErrorCode_NoWorklistHandler
Definition OrthancCPlugin.h:343
@ OrthancPluginDicomWebBinaryMode_InlineBinary
Definition OrthancCPlugin.h:1066
@ OrthancPluginDicomWebBinaryMode_BulkDataUri
Definition OrthancCPlugin.h:1067
@ OrthancPluginDicomWebBinaryMode_Ignore
Definition OrthancCPlugin.h:1065
@ OrthancPluginHttpAuthenticationStatus_Forbidden
Definition OrthancCPlugin.h:1245
@ OrthancPluginHttpAuthenticationStatus_Redirect
Definition OrthancCPlugin.h:1246
@ OrthancPluginHttpAuthenticationStatus_Unauthorized
Definition OrthancCPlugin.h:1244
@ OrthancPluginHttpAuthenticationStatus_Granted
Definition OrthancCPlugin.h:1243
@ OrthancPluginDicomToJsonFlags_ConvertBinaryToAscii
Definition OrthancCPlugin.h:945
@ OrthancPluginDicomToJsonFlags_IncludeBinary
Definition OrthancCPlugin.h:941
@ OrthancPluginDicomToJsonFlags_IncludePixelData
Definition OrthancCPlugin.h:944
@ OrthancPluginDicomToJsonFlags_IncludeUnknownTags
Definition OrthancCPlugin.h:943
@ OrthancPluginDicomToJsonFlags_SkipGroupLengths
Definition OrthancCPlugin.h:948
@ OrthancPluginDicomToJsonFlags_None
Definition OrthancCPlugin.h:940
@ OrthancPluginDicomToJsonFlags_ConvertBinaryToNull
Definition OrthancCPlugin.h:946
@ OrthancPluginDicomToJsonFlags_StopAfterPixelData
Definition OrthancCPlugin.h:947
@ OrthancPluginDicomToJsonFlags_IncludePrivateTags
Definition OrthancCPlugin.h:942
@ OrthancPluginJobStepStatus_Continue
Definition OrthancCPlugin.h:1024
@ OrthancPluginJobStepStatus_Success
Definition OrthancCPlugin.h:1022
@ OrthancPluginJobStepStatus_Failure
Definition OrthancCPlugin.h:1023
@ OrthancPluginCreateDicomFlags_DecodeDataUriScheme
Definition OrthancCPlugin.h:962
@ OrthancPluginCreateDicomFlags_None
Definition OrthancCPlugin.h:961
@ OrthancPluginCreateDicomFlags_GenerateIdentifiers
Definition OrthancCPlugin.h:963
@ OrthancPluginQueueOrigin_Front
Definition OrthancCPlugin.h:1219
@ OrthancPluginQueueOrigin_Back
Definition OrthancCPlugin.h:1220
@ OrthancPluginConstraintType_SmallerOrEqual
Definition OrthancCPlugin.h:992
@ OrthancPluginConstraintType_List
Definition OrthancCPlugin.h:995
@ OrthancPluginConstraintType_GreaterOrEqual
Definition OrthancCPlugin.h:993
@ OrthancPluginConstraintType_Equal
Definition OrthancCPlugin.h:991
@ OrthancPluginConstraintType_Wildcard
Definition OrthancCPlugin.h:994
@ OrthancPluginReceivedInstanceAction_KeepAsIs
Definition OrthancCPlugin.h:1126
@ OrthancPluginReceivedInstanceAction_Discard
Definition OrthancCPlugin.h:1128
@ OrthancPluginReceivedInstanceAction_Modify
Definition OrthancCPlugin.h:1127
@ OrthancPluginStorageCommitmentFailureReason_ReferencedSOPClassNotSupported
Definition OrthancCPlugin.h:1104
@ OrthancPluginStorageCommitmentFailureReason_Success
Definition OrthancCPlugin.h:1081
@ OrthancPluginStorageCommitmentFailureReason_DuplicateTransactionUID
Definition OrthancCPlugin.h:1117
@ OrthancPluginStorageCommitmentFailureReason_ClassInstanceConflict
Definition OrthancCPlugin.h:1111
@ OrthancPluginStorageCommitmentFailureReason_ResourceLimitation
Definition OrthancCPlugin.h:1098
@ OrthancPluginStorageCommitmentFailureReason_NoSuchObjectInstance
Definition OrthancCPlugin.h:1092
@ OrthancPluginStorageCommitmentFailureReason_ProcessingFailure
Definition OrthancCPlugin.h:1086
@ OrthancPluginMetricsType_Default
Definition OrthancCPlugin.h:1048
@ OrthancPluginMetricsType_Timer
Definition OrthancCPlugin.h:1055
@ OrthancPluginLoadDicomInstanceMode_UntilPixelData
Definition OrthancCPlugin.h:1149
@ OrthancPluginLoadDicomInstanceMode_WholeDicom
Definition OrthancCPlugin.h:1143
@ OrthancPluginLoadDicomInstanceMode_EmptyPixelData
Definition OrthancCPlugin.h:1156
@ OrthancPluginStoreStatus_Success
Definition OrthancCPlugin.h:1204
@ OrthancPluginStoreStatus_FilteredOut
Definition OrthancCPlugin.h:1207
@ OrthancPluginStoreStatus_StorageFull
Definition OrthancCPlugin.h:1208
@ OrthancPluginStoreStatus_Failure
Definition OrthancCPlugin.h:1206
@ OrthancPluginStoreStatus_AlreadyStored
Definition OrthancCPlugin.h:1205
@ OrthancPluginValueRepresentation_PN
Definition OrthancCPlugin.h:901
@ OrthancPluginValueRepresentation_UL
Definition OrthancCPlugin.h:909
@ OrthancPluginValueRepresentation_UN
Definition OrthancCPlugin.h:910
@ OrthancPluginValueRepresentation_DA
Definition OrthancCPlugin.h:890
@ OrthancPluginValueRepresentation_OF
Definition OrthancCPlugin.h:899
@ OrthancPluginValueRepresentation_OW
Definition OrthancCPlugin.h:900
@ OrthancPluginValueRepresentation_CS
Definition OrthancCPlugin.h:889
@ OrthancPluginValueRepresentation_US
Definition OrthancCPlugin.h:911
@ OrthancPluginValueRepresentation_SH
Definition OrthancCPlugin.h:902
@ OrthancPluginValueRepresentation_FL
Definition OrthancCPlugin.h:894
@ OrthancPluginValueRepresentation_DT
Definition OrthancCPlugin.h:892
@ OrthancPluginValueRepresentation_TM
Definition OrthancCPlugin.h:907
@ OrthancPluginValueRepresentation_SQ
Definition OrthancCPlugin.h:904
@ OrthancPluginValueRepresentation_DS
Definition OrthancCPlugin.h:891
@ OrthancPluginValueRepresentation_OB
Definition OrthancCPlugin.h:898
@ OrthancPluginValueRepresentation_SL
Definition OrthancCPlugin.h:903
@ OrthancPluginValueRepresentation_ST
Definition OrthancCPlugin.h:906
@ OrthancPluginValueRepresentation_IS
Definition OrthancCPlugin.h:895
@ OrthancPluginValueRepresentation_LT
Definition OrthancCPlugin.h:897
@ OrthancPluginValueRepresentation_SS
Definition OrthancCPlugin.h:905
@ OrthancPluginValueRepresentation_UT
Definition OrthancCPlugin.h:912
@ OrthancPluginValueRepresentation_LO
Definition OrthancCPlugin.h:896
@ OrthancPluginValueRepresentation_AE
Definition OrthancCPlugin.h:886
@ OrthancPluginValueRepresentation_FD
Definition OrthancCPlugin.h:893
@ OrthancPluginValueRepresentation_UI
Definition OrthancCPlugin.h:908
@ OrthancPluginValueRepresentation_AS
Definition OrthancCPlugin.h:887
@ OrthancPluginValueRepresentation_AT
Definition OrthancCPlugin.h:888
@ OrthancPluginJobStopReason_Failure
Definition OrthancCPlugin.h:1038
@ OrthancPluginJobStopReason_Success
Definition OrthancCPlugin.h:1036
@ OrthancPluginJobStopReason_Canceled
Definition OrthancCPlugin.h:1039
@ OrthancPluginJobStopReason_Paused
Definition OrthancCPlugin.h:1037
@ OrthancPluginDicomToJsonFormat_Full
Definition OrthancCPlugin.h:925
@ OrthancPluginDicomToJsonFormat_Human
Definition OrthancCPlugin.h:927
@ OrthancPluginDicomToJsonFormat_Short
Definition OrthancCPlugin.h:926
@ OrthancPluginHttpMethod_Delete
Definition OrthancCPlugin.h:369
@ OrthancPluginHttpMethod_Post
Definition OrthancCPlugin.h:367
@ OrthancPluginHttpMethod_Put
Definition OrthancCPlugin.h:368
@ OrthancPluginHttpMethod_Get
Definition OrthancCPlugin.h:366
@ OrthancPluginInstanceOrigin_Unknown
Definition OrthancCPlugin.h:1006
@ OrthancPluginInstanceOrigin_RestApi
Definition OrthancCPlugin.h:1008
@ OrthancPluginInstanceOrigin_Lua
Definition OrthancCPlugin.h:1010
@ OrthancPluginInstanceOrigin_WebDav
Definition OrthancCPlugin.h:1011
@ OrthancPluginInstanceOrigin_DicomProtocol
Definition OrthancCPlugin.h:1007
@ OrthancPluginInstanceOrigin_Plugin
Definition OrthancCPlugin.h:1009
@ OrthancPluginContentType_Dicom
Definition OrthancCPlugin.h:794
@ OrthancPluginContentType_DicomAsJson
Definition OrthancCPlugin.h:795
@ OrthancPluginContentType_Unknown
Definition OrthancCPlugin.h:793
@ OrthancPluginContentType_DicomUntilPixelData
Definition OrthancCPlugin.h:796
@ OrthancPluginStableStatus_Unstable
Definition OrthancCPlugin.h:1232
@ OrthancPluginStableStatus_Stable
Definition OrthancCPlugin.h:1231
An entry in the dictionary of DICOM tags.
Definition OrthancCPlugin.h:2234
uint32_t minMultiplicity
Definition OrthancCPlugin.h:2238
uint32_t maxMultiplicity
Definition OrthancCPlugin.h:2239
OrthancPluginValueRepresentation vr
Definition OrthancCPlugin.h:2237
uint16_t element
Definition OrthancCPlugin.h:2236
uint16_t group
Definition OrthancCPlugin.h:2235
The parameters of a REST request.
Definition OrthancCPlugin.h:380
uint32_t authenticationPayloadSize
The size of the custom authentication payload (0 if no authentication callback is registered).
Definition OrthancCPlugin.h:456
const char *const * getValues
For a GET request, the values of the GET parameters.
Definition OrthancCPlugin.h:409
const char *const * groups
The matched values for the groups of the regular expression.
Definition OrthancCPlugin.h:394
const void * authenticationPayload
If a HTTP authentication callback is registered, the content of the custom payload generated by the c...
Definition OrthancCPlugin.h:450
uint32_t bodySize
For a PUT or POST request, the number of bytes of the body.
Definition OrthancCPlugin.h:419
uint32_t groupsCount
The number of groups of the regular expression.
Definition OrthancCPlugin.h:389
const char *const * headersKeys
The keys of the HTTP headers (always converted to low-case).
Definition OrthancCPlugin.h:434
const void * body
For a PUT or POST request, the content of the body.
Definition OrthancCPlugin.h:414
const char *const * getKeys
For a GET request, the keys of the GET parameters.
Definition OrthancCPlugin.h:404
uint32_t headersCount
The number of HTTP headers.
Definition OrthancCPlugin.h:429
OrthancPluginHttpMethod method
The HTTP method.
Definition OrthancCPlugin.h:384
uint32_t getCount
For a GET request, the number of GET parameters.
Definition OrthancCPlugin.h:399
const char *const * headersValues
The values of the HTTP headers.
Definition OrthancCPlugin.h:439
A 64-bit memory buffer allocated by the core system of Orthanc.
Definition OrthancCPlugin.h:1282
uint64_t size
The number of bytes in the buffer.
Definition OrthancCPlugin.h:1291
void * data
The content of the buffer.
Definition OrthancCPlugin.h:1286
A 32-bit memory buffer allocated by the core system of Orthanc.
Definition OrthancCPlugin.h:1260
uint32_t size
The number of bytes in the buffer.
Definition OrthancCPlugin.h:1269
void * data
The content of the buffer.
Definition OrthancCPlugin.h:1264