Orthanc Plugin SDK 1.12.11
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
225
226#define ORTHANC_PLUGINS_WEBDAV_UNKNOWN_FILE_SIZE ((uint64_t) -1) /* New in Orthanc 1.12.11 */
227
228
230
231#ifdef __cplusplus
232extern "C"
233{
234#endif
235
239 typedef enum
240 {
353
354 _OrthancPluginErrorCode_INTERNAL = 0x7fffffff
356
357
362 ORTHANC_PLUGINS_API const char* OrthancPluginGetName();
363
364
368 typedef enum
369 {
374
375 _OrthancPluginHttpMethod_INTERNAL = 0x7fffffff
377
378
383 typedef struct
384 {
389
393 uint32_t groupsCount;
394
398 const char* const* groups;
399
403 uint32_t getCount;
404
408 const char* const* getKeys;
409
413 const char* const* getValues;
414
418 const void* body;
419
423 uint32_t bodySize;
424
425
426 /* --------------------------------------------------
427 New in version 0.8.1
428 -------------------------------------------------- */
429
433 uint32_t headersCount;
434
438 const char* const* headersKeys;
439
443 const char* const* headersValues;
444
445
446 /* --------------------------------------------------
447 New in version 1.12.9
448 -------------------------------------------------- */
449
455
461
463
464
465 typedef enum
466 {
467 /* Generic services */
468 _OrthancPluginService_LogInfo = 1,
469 _OrthancPluginService_LogWarning = 2,
470 _OrthancPluginService_LogError = 3,
471 _OrthancPluginService_GetOrthancPath = 4,
472 _OrthancPluginService_GetOrthancDirectory = 5,
473 _OrthancPluginService_GetConfigurationPath = 6,
474 _OrthancPluginService_SetPluginProperty = 7,
475 _OrthancPluginService_GetGlobalProperty = 8,
476 _OrthancPluginService_SetGlobalProperty = 9,
477 _OrthancPluginService_GetCommandLineArgumentsCount = 10,
478 _OrthancPluginService_GetCommandLineArgument = 11,
479 _OrthancPluginService_GetExpectedDatabaseVersion = 12,
480 _OrthancPluginService_GetConfiguration = 13,
481 _OrthancPluginService_BufferCompression = 14,
482 _OrthancPluginService_ReadFile = 15,
483 _OrthancPluginService_WriteFile = 16,
484 _OrthancPluginService_GetErrorDescription = 17,
485 _OrthancPluginService_CallHttpClient = 18,
486 _OrthancPluginService_RegisterErrorCode = 19,
487 _OrthancPluginService_RegisterDictionaryTag = 20,
488 _OrthancPluginService_DicomBufferToJson = 21,
489 _OrthancPluginService_DicomInstanceToJson = 22,
490 _OrthancPluginService_CreateDicom = 23,
491 _OrthancPluginService_ComputeMd5 = 24,
492 _OrthancPluginService_ComputeSha1 = 25,
493 _OrthancPluginService_LookupDictionary = 26,
494 _OrthancPluginService_CallHttpClient2 = 27,
495 _OrthancPluginService_GenerateUuid = 28,
496 _OrthancPluginService_RegisterPrivateDictionaryTag = 29,
497 _OrthancPluginService_AutodetectMimeType = 30,
498 _OrthancPluginService_SetMetricsValue = 31,
499 _OrthancPluginService_EncodeDicomWebJson = 32,
500 _OrthancPluginService_EncodeDicomWebXml = 33,
501 _OrthancPluginService_ChunkedHttpClient = 34, /* New in Orthanc 1.5.7 */
502 _OrthancPluginService_GetTagName = 35, /* New in Orthanc 1.5.7 */
503 _OrthancPluginService_EncodeDicomWebJson2 = 36, /* New in Orthanc 1.7.0 */
504 _OrthancPluginService_EncodeDicomWebXml2 = 37, /* New in Orthanc 1.7.0 */
505 _OrthancPluginService_CreateMemoryBuffer = 38, /* New in Orthanc 1.7.0 */
506 _OrthancPluginService_GenerateRestApiAuthorizationToken = 39, /* New in Orthanc 1.8.1 */
507 _OrthancPluginService_CreateMemoryBuffer64 = 40, /* New in Orthanc 1.9.0 */
508 _OrthancPluginService_CreateDicom2 = 41, /* New in Orthanc 1.9.0 */
509 _OrthancPluginService_GetDatabaseServerIdentifier = 42, /* New in Orthanc 1.11.1 */
510 _OrthancPluginService_SetMetricsIntegerValue = 43, /* New in Orthanc 1.12.1 */
511 _OrthancPluginService_SetCurrentThreadName = 44, /* New in Orthanc 1.12.2 */
512 _OrthancPluginService_LogMessage = 45, /* New in Orthanc 1.12.4 */
513 _OrthancPluginService_AdoptDicomInstance = 46, /* New in Orthanc 1.12.8 */
514 _OrthancPluginService_GetAttachmentCustomData = 47, /* New in Orthanc 1.12.8 */
515 _OrthancPluginService_SetAttachmentCustomData = 48, /* New in Orthanc 1.12.8 */
516 _OrthancPluginService_StoreKeyValue = 49, /* New in Orthanc 1.12.8 */
517 _OrthancPluginService_DeleteKeyValue = 50, /* New in Orthanc 1.12.8 */
518 _OrthancPluginService_GetKeyValue = 51, /* New in Orthanc 1.12.8 */
519 _OrthancPluginService_CreateKeysValuesIterator = 52, /* New in Orthanc 1.12.8 */
520 _OrthancPluginService_FreeKeysValuesIterator = 53, /* New in Orthanc 1.12.8 */
521 _OrthancPluginService_KeysValuesIteratorNext = 54, /* New in Orthanc 1.12.8 */
522 _OrthancPluginService_KeysValuesIteratorGetKey = 55, /* New in Orthanc 1.12.8 */
523 _OrthancPluginService_KeysValuesIteratorGetValue = 56, /* New in Orthanc 1.12.8 */
524 _OrthancPluginService_EnqueueValue = 57, /* New in Orthanc 1.12.8 */
525 _OrthancPluginService_DequeueValue = 58, /* New in Orthanc 1.12.8 */
526 _OrthancPluginService_GetQueueSize = 59, /* New in Orthanc 1.12.8 */
527 _OrthancPluginService_SetStableStatus = 60, /* New in Orthanc 1.12.9 */
528 _OrthancPluginService_EmitAuditLog = 61, /* New in Orthanc 1.12.9 */
529 _OrthancPluginService_ReserveQueueValue = 62, /* New in Orthanc 1.12.10 */
530 _OrthancPluginService_AcknowledgeQueueValue = 63, /* New in Orthanc 1.12.10 */
531
532 /* Registration of callbacks */
533 _OrthancPluginService_RegisterRestCallback = 1000,
534 _OrthancPluginService_RegisterOnStoredInstanceCallback = 1001,
535 _OrthancPluginService_RegisterStorageArea = 1002,
536 _OrthancPluginService_RegisterOnChangeCallback = 1003,
537 _OrthancPluginService_RegisterRestCallbackNoLock = 1004,
538 _OrthancPluginService_RegisterWorklistCallback = 1005,
539 _OrthancPluginService_RegisterDecodeImageCallback = 1006,
540 _OrthancPluginService_RegisterIncomingHttpRequestFilter = 1007,
541 _OrthancPluginService_RegisterFindCallback = 1008,
542 _OrthancPluginService_RegisterMoveCallback = 1009,
543 _OrthancPluginService_RegisterIncomingHttpRequestFilter2 = 1010,
544 _OrthancPluginService_RegisterRefreshMetricsCallback = 1011,
545 _OrthancPluginService_RegisterChunkedRestCallback = 1012, /* New in Orthanc 1.5.7 */
546 _OrthancPluginService_RegisterStorageCommitmentScpCallback = 1013, /* New in Orthanc 1.6.0 */
547 _OrthancPluginService_RegisterIncomingDicomInstanceFilter = 1014, /* New in Orthanc 1.6.1 */
548 _OrthancPluginService_RegisterTranscoderCallback = 1015, /* New in Orthanc 1.7.0 */
549 _OrthancPluginService_RegisterStorageArea2 = 1016, /* New in Orthanc 1.9.0 */
550 _OrthancPluginService_RegisterIncomingCStoreInstanceFilter = 1017, /* New in Orthanc 1.10.0 */
551 _OrthancPluginService_RegisterReceivedInstanceCallback = 1018, /* New in Orthanc 1.10.0 */
552 _OrthancPluginService_RegisterWebDavCollection = 1019, /* New in Orthanc 1.10.1 */
553 _OrthancPluginService_RegisterStorageArea3 = 1020, /* New in Orthanc 1.12.8 */
554 _OrthancPluginService_RegisterHttpAuthentication = 1021, /* New in Orthanc 1.12.9 */
555 _OrthancPluginService_RegisterAuditLogHandler = 1022, /* New in Orthanc 1.12.9 */
556 _OrthancPluginService_RegisterFindCallback2 = 1023, /* New in Orthanc 1.12.10 */
557 _OrthancPluginService_RegisterMoveCallback2 = 1024, /* New in Orthanc 1.12.10 */
558 _OrthancPluginService_RegisterWorklistCallback2 = 1025, /* New in Orthanc 1.12.10 */
559 _OrthancPluginService_RegisterStorageCommitmentScpCallback2 = 1026, /* New in Orthanc 1.12.10 */
560
561 /* Sending answers to REST calls */
562 _OrthancPluginService_AnswerBuffer = 2000,
563 _OrthancPluginService_CompressAndAnswerPngImage = 2001, /* Unused as of Orthanc 0.9.4 */
564 _OrthancPluginService_Redirect = 2002,
565 _OrthancPluginService_SendHttpStatusCode = 2003,
566 _OrthancPluginService_SendUnauthorized = 2004,
567 _OrthancPluginService_SendMethodNotAllowed = 2005,
568 _OrthancPluginService_SetCookie = 2006,
569 _OrthancPluginService_SetHttpHeader = 2007,
570 _OrthancPluginService_StartMultipartAnswer = 2008,
571 _OrthancPluginService_SendMultipartItem = 2009,
572 _OrthancPluginService_SendHttpStatus = 2010,
573 _OrthancPluginService_CompressAndAnswerImage = 2011,
574 _OrthancPluginService_SendMultipartItem2 = 2012,
575 _OrthancPluginService_SetHttpErrorDetails = 2013,
576 _OrthancPluginService_StartStreamAnswer = 2014,
577 _OrthancPluginService_SendStreamChunk = 2015,
578
579 /* Access to the Orthanc database and API */
580 _OrthancPluginService_GetDicomForInstance = 3000,
581 _OrthancPluginService_RestApiGet = 3001,
582 _OrthancPluginService_RestApiPost = 3002,
583 _OrthancPluginService_RestApiDelete = 3003,
584 _OrthancPluginService_RestApiPut = 3004,
585 _OrthancPluginService_LookupPatient = 3005,
586 _OrthancPluginService_LookupStudy = 3006,
587 _OrthancPluginService_LookupSeries = 3007,
588 _OrthancPluginService_LookupInstance = 3008,
589 _OrthancPluginService_LookupStudyWithAccessionNumber = 3009,
590 _OrthancPluginService_RestApiGetAfterPlugins = 3010,
591 _OrthancPluginService_RestApiPostAfterPlugins = 3011,
592 _OrthancPluginService_RestApiDeleteAfterPlugins = 3012,
593 _OrthancPluginService_RestApiPutAfterPlugins = 3013,
594 _OrthancPluginService_ReconstructMainDicomTags = 3014,
595 _OrthancPluginService_RestApiGet2 = 3015,
596 _OrthancPluginService_CallRestApi = 3016, /* New in Orthanc 1.9.2 */
597
598 /* Access to DICOM instances */
599 _OrthancPluginService_GetInstanceRemoteAet = 4000,
600 _OrthancPluginService_GetInstanceSize = 4001,
601 _OrthancPluginService_GetInstanceData = 4002,
602 _OrthancPluginService_GetInstanceJson = 4003,
603 _OrthancPluginService_GetInstanceSimplifiedJson = 4004,
604 _OrthancPluginService_HasInstanceMetadata = 4005,
605 _OrthancPluginService_GetInstanceMetadata = 4006,
606 _OrthancPluginService_GetInstanceOrigin = 4007,
607 _OrthancPluginService_GetInstanceTransferSyntaxUid = 4008,
608 _OrthancPluginService_HasInstancePixelData = 4009,
609 _OrthancPluginService_CreateDicomInstance = 4010, /* New in Orthanc 1.7.0 */
610 _OrthancPluginService_FreeDicomInstance = 4011, /* New in Orthanc 1.7.0 */
611 _OrthancPluginService_GetInstanceFramesCount = 4012, /* New in Orthanc 1.7.0 */
612 _OrthancPluginService_GetInstanceRawFrame = 4013, /* New in Orthanc 1.7.0 */
613 _OrthancPluginService_GetInstanceDecodedFrame = 4014, /* New in Orthanc 1.7.0 */
614 _OrthancPluginService_TranscodeDicomInstance = 4015, /* New in Orthanc 1.7.0 */
615 _OrthancPluginService_SerializeDicomInstance = 4016, /* New in Orthanc 1.7.0 */
616 _OrthancPluginService_GetInstanceAdvancedJson = 4017, /* New in Orthanc 1.7.0 */
617 _OrthancPluginService_GetInstanceDicomWebJson = 4018, /* New in Orthanc 1.7.0 */
618 _OrthancPluginService_GetInstanceDicomWebXml = 4019, /* New in Orthanc 1.7.0 */
619 _OrthancPluginService_LoadDicomInstance = 4020, /* New in Orthanc 1.12.1 */
620
621 /* Services for plugins implementing a database back-end */
622 _OrthancPluginService_RegisterDatabaseBackend = 5000, /* New in Orthanc 0.8.6 */
623 _OrthancPluginService_DatabaseAnswer = 5001,
624 _OrthancPluginService_RegisterDatabaseBackendV2 = 5002, /* New in Orthanc 0.9.4 */
625 _OrthancPluginService_StorageAreaCreate = 5003,
626 _OrthancPluginService_StorageAreaRead = 5004,
627 _OrthancPluginService_StorageAreaRemove = 5005,
628 _OrthancPluginService_RegisterDatabaseBackendV3 = 5006, /* New in Orthanc 1.9.2 */
629 _OrthancPluginService_RegisterDatabaseBackendV4 = 5007, /* New in Orthanc 1.12.0 */
630
631 /* Primitives for handling images */
632 _OrthancPluginService_GetImagePixelFormat = 6000,
633 _OrthancPluginService_GetImageWidth = 6001,
634 _OrthancPluginService_GetImageHeight = 6002,
635 _OrthancPluginService_GetImagePitch = 6003,
636 _OrthancPluginService_GetImageBuffer = 6004,
637 _OrthancPluginService_UncompressImage = 6005,
638 _OrthancPluginService_FreeImage = 6006,
639 _OrthancPluginService_CompressImage = 6007,
640 _OrthancPluginService_ConvertPixelFormat = 6008,
641 _OrthancPluginService_GetFontsCount = 6009,
642 _OrthancPluginService_GetFontInfo = 6010,
643 _OrthancPluginService_DrawText = 6011,
644 _OrthancPluginService_CreateImage = 6012,
645 _OrthancPluginService_CreateImageAccessor = 6013,
646 _OrthancPluginService_DecodeDicomImage = 6014,
647
648 /* Primitives for handling C-Find, C-Move and worklists */
649 _OrthancPluginService_WorklistAddAnswer = 7000,
650 _OrthancPluginService_WorklistMarkIncomplete = 7001,
651 _OrthancPluginService_WorklistIsMatch = 7002,
652 _OrthancPluginService_WorklistGetDicomQuery = 7003,
653 _OrthancPluginService_FindAddAnswer = 7004,
654 _OrthancPluginService_FindMarkIncomplete = 7005,
655 _OrthancPluginService_GetFindQuerySize = 7006,
656 _OrthancPluginService_GetFindQueryTag = 7007,
657 _OrthancPluginService_GetFindQueryTagName = 7008,
658 _OrthancPluginService_GetFindQueryValue = 7009,
659 _OrthancPluginService_CreateFindMatcher = 7010,
660 _OrthancPluginService_FreeFindMatcher = 7011,
661 _OrthancPluginService_FindMatcherIsMatch = 7012,
662
663 /* Primitives for accessing Orthanc Peers (new in 1.4.2) */
664 _OrthancPluginService_GetPeers = 8000,
665 _OrthancPluginService_FreePeers = 8001,
666 _OrthancPluginService_GetPeersCount = 8003,
667 _OrthancPluginService_GetPeerName = 8004,
668 _OrthancPluginService_GetPeerUrl = 8005,
669 _OrthancPluginService_CallPeerApi = 8006,
670 _OrthancPluginService_GetPeerUserProperty = 8007,
671
672 /* Primitives for handling jobs (new in 1.4.2) */
673 _OrthancPluginService_CreateJob = 9000, /* Deprecated since SDK 1.11.3 */
674 _OrthancPluginService_FreeJob = 9001,
675 _OrthancPluginService_SubmitJob = 9002,
676 _OrthancPluginService_RegisterJobsUnserializer = 9003,
677 _OrthancPluginService_CreateJob2 = 9004, /* New in SDK 1.11.3 */
678
679 /* Access to DICOM connection */
680 _OrthancPluginService_GetConnectionRemoteAet = 10000, /* New in SDK 1.12.10 */
681 _OrthancPluginService_GetConnectionRemoteIp = 10001, /* New in SDK 1.12.10 */
682 _OrthancPluginService_GetConnectionCalledAet = 10002, /* New in SDK 1.12.10 */
683
684 _OrthancPluginService_INTERNAL = 0x7fffffff
685 } _OrthancPluginService;
686
687
688 typedef enum
689 {
690 _OrthancPluginProperty_Description = 1,
691 _OrthancPluginProperty_RootUri = 2,
692 _OrthancPluginProperty_OrthancExplorer = 3,
693
694 _OrthancPluginProperty_INTERNAL = 0x7fffffff
695 } _OrthancPluginProperty;
696
697
698
703 typedef enum
704 {
712
720
728
736
744
746
753 OrthancPluginPixelFormat_RGB48 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 7,
754
761 OrthancPluginPixelFormat_Grayscale32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 8,
762
769 OrthancPluginPixelFormat_Float32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 9,
770
777 OrthancPluginPixelFormat_BGRA32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 10,
778
785 OrthancPluginPixelFormat_Grayscale64 ORTHANC_PLUGIN_SINCE_SDK("1.4.0") = 11,
786
787 _OrthancPluginPixelFormat_INTERNAL = 0x7fffffff
789
790
791
795 typedef enum
796 {
800 OrthancPluginContentType_DicomUntilPixelData ORTHANC_PLUGIN_SINCE_SDK("1.9.2") = 3,
801
802 _OrthancPluginContentType_INTERNAL = 0x7fffffff
804
805
806
820
821
822
852
853
868
869
874 typedef enum
875 {
879
880 _OrthancPluginImageFormat_INTERNAL = 0x7fffffff
882
883
920
921
927 typedef enum
928 {
932
933 _OrthancPluginDicomToJsonFormat_INTERNAL = 0x7fffffff
935
936
956
957
963 typedef enum
964 {
965 OrthancPluginCreateDicomFlags_None ORTHANC_PLUGIN_SINCE_SDK("1.2.0") = 0,
968
969 _OrthancPluginCreateDicomFlags_INTERNAL = 0x7fffffff
971
972
987
988
1003
1004
1019
1020
1030
1031
1045
1046
1050 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1051 {
1053
1061
1062
1073
1074
1123
1124
1128 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
1129 {
1133
1134 _OrthancPluginReceivedInstanceAction_INTERNAL = 0x7fffffff
1136
1137
1142 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
1143 {
1148
1154
1161
1162 _OrthancPluginLoadDicomInstanceMode_INTERNAL = 0x7fffffff
1164
1165
1172 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
1173 {
1178
1179 _OrthancPluginLogLevel_INTERNAL = 0x7fffffff
1181
1182
1189 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
1190 {
1198
1199 _OrthancPluginLogCategory_INTERNAL = 0x7fffffff
1201
1202
1206 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1207 {
1213
1214 _OrthancPluginStoreStatus_INTERNAL = 0x7fffffff
1216
1217
1221 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1222 {
1225
1226 _OrthancPluginQueueOrigin_INTERNAL = 0x7fffffff
1228
1229
1233 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
1234 {
1237
1238 _OrthancPluginStableStatus_INTERNAL = 0x7fffffff
1240
1241
1254
1255
1263 typedef struct
1264 {
1268 void* data;
1269
1273 uint32_t size;
1275
1276
1277
1285 ORTHANC_PLUGIN_SINCE_SDK("1.9.0") typedef struct
1286 {
1290 void* data;
1291
1295 uint64_t size;
1297
1298
1299
1300
1305 typedef struct _OrthancPluginRestOutput_t OrthancPluginRestOutput;
1306
1307
1308
1313 typedef struct _OrthancPluginDicomInstance_t OrthancPluginDicomInstance;
1314
1315
1316
1321 typedef struct _OrthancPluginImage_t OrthancPluginImage;
1322
1323
1324
1329 typedef struct _OrthancPluginStorageArea_t OrthancPluginStorageArea;
1330
1331
1332
1337 typedef struct _OrthancPluginWorklistQuery_t OrthancPluginWorklistQuery;
1338
1339
1340
1345 typedef struct _OrthancPluginWorklistAnswers_t OrthancPluginWorklistAnswers;
1346
1347
1348
1353 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
1354 _OrthancPluginFindQuery_t OrthancPluginFindQuery;
1355
1356
1357
1362 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
1363 _OrthancPluginFindAnswers_t OrthancPluginFindAnswers;
1364
1365
1366
1371 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
1372 _OrthancPluginFindMatcher_t OrthancPluginFindMatcher;
1373
1374
1375
1380 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1381 _OrthancPluginPeers_t OrthancPluginPeers;
1382
1383
1384
1389 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1390 _OrthancPluginJob_t OrthancPluginJob;
1391
1392
1393
1399 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1400 _OrthancPluginDicomWebNode_t OrthancPluginDicomWebNode;
1401
1402
1407 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1408 _OrthancPluginDicomConnection_t OrthancPluginDicomConnection;
1409
1410
1417 const char* uri,
1418 const OrthancPluginHttpRequest* request);
1419
1420
1421
1427 const OrthancPluginDicomInstance* instance,
1428 const char* instanceId);
1429
1430
1431
1437 OrthancPluginChangeType changeType,
1438 OrthancPluginResourceType resourceType,
1439 const char* resourceId);
1440
1441
1442
1448 OrthancPluginImage** target,
1449 const void* dicom,
1450 const uint32_t size,
1451 uint32_t frameIndex);
1452
1453
1454
1459 typedef void (*OrthancPluginFree) (void* buffer);
1460
1461
1462
1472 const char* bulkDataUri);
1473
1474
1475
1489 const char* uuid,
1490 const void* content,
1491 int64_t size,
1493
1494
1495
1515 void** content,
1516 int64_t* size,
1517 const char* uuid,
1519
1520
1521
1536 const char* uuid,
1538
1539
1540
1559 const char* uuid,
1561 uint64_t rangeStart);
1562
1563
1564
1576 const char* uuid,
1578
1579
1580
1600 OrthancPluginMemoryBuffer* customData,
1601 const char* uuid,
1602 const void* content,
1603 uint64_t size,
1605 OrthancPluginCompressionType compressionType,
1606 const OrthancPluginDicomInstance* dicomInstance);
1607
1608
1609
1630 const char* uuid,
1632 uint64_t rangeStart,
1633 const void* customData,
1634 uint32_t customDataSize);
1635
1636
1637
1652 const char* uuid,
1654 const void* customData,
1655 uint32_t customDataSize);
1656
1657
1673 const OrthancPluginWorklistQuery* query,
1674 const char* issuerAet,
1675 const char* calledAet);
1676
1677
1690 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1693 const OrthancPluginWorklistQuery* query,
1694 const OrthancPluginDicomConnection* connection);
1695
1696
1722 const char* uri,
1723 const char* ip,
1724 uint32_t headersCount,
1725 const char* const* headersKeys,
1726 const char* const* headersValues);
1727
1728
1729
1761 const char* uri,
1762 const char* ip,
1763 uint32_t headersCount,
1764 const char* const* headersKeys,
1765 const char* const* headersValues,
1766 uint32_t getArgumentsCount,
1767 const char* const* getArgumentsKeys,
1768 const char* const* getArgumentsValues);
1769
1770
1771
1787 OrthancPluginFindAnswers* answers,
1788 const OrthancPluginFindQuery* query,
1789 const char* issuerAet,
1790 const char* calledAet);
1791
1792
1806 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1808 OrthancPluginFindAnswers* answers,
1809 const OrthancPluginFindQuery* query,
1810 const OrthancPluginDicomConnection* connection);
1811
1812
1848 typedef void* (*OrthancPluginMoveCallback) (
1849 OrthancPluginResourceType resourceType,
1850 const char* patientId,
1851 const char* accessionNumber,
1852 const char* studyInstanceUid,
1853 const char* seriesInstanceUid,
1854 const char* sopInstanceUid,
1855 const char* originatorAet,
1856 const char* sourceAet,
1857 const char* targetAet,
1858 uint16_t originatorId);
1859
1860
1893 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1895 OrthancPluginResourceType resourceType,
1896 const char* patientId,
1897 const char* accessionNumber,
1898 const char* studyInstanceUid,
1899 const char* seriesInstanceUid,
1900 const char* sopInstanceUid,
1901 const OrthancPluginDicomConnection* connection,
1902 const char* targetAet,
1903 uint16_t originatorId);
1904
1905
1918 typedef uint32_t (*OrthancPluginGetMoveSize) (void* moveDriver);
1919
1920
1933 typedef OrthancPluginErrorCode (*OrthancPluginApplyMove) (void* moveDriver);
1934
1935
1947 typedef void (*OrthancPluginFreeMove) (void* moveDriver);
1948
1949
1960 typedef void (*OrthancPluginJobFinalize) (void* job);
1961
1962
1973 typedef float (*OrthancPluginJobGetProgress) (void* job);
1974
1975
1989 typedef const char* (*OrthancPluginJobGetContent) (void* job);
1990
1991
2008 void* job);
2009
2010
2027 typedef const char* (*OrthancPluginJobGetSerialized) (void* job);
2028
2029
2048 void* job);
2049
2050
2064
2065
2089
2090
2105
2106
2120 typedef OrthancPluginJob* (*OrthancPluginJobsUnserializer) (const char* jobType,
2121 const char* serialized);
2122
2123
2124
2140
2141
2142
2170 uint32_t levelDepth,
2171 const uint16_t* levelTagGroup,
2172 const uint16_t* levelTagElement,
2173 const uint32_t* levelIndex,
2174 uint16_t tagGroup,
2175 uint16_t tagElement,
2177
2178
2179
2208 uint32_t levelDepth,
2209 const uint16_t* levelTagGroup,
2210 const uint16_t* levelTagElement,
2211 const uint32_t* levelIndex,
2212 uint16_t tagGroup,
2213 uint16_t tagElement,
2215 void* payload);
2216
2217
2218
2222 typedef struct _OrthancPluginContext_t
2223 {
2224 void* pluginsManager;
2225 const char* orthancVersion;
2226 OrthancPluginFree Free;
2227 OrthancPluginErrorCode (*InvokeService) (struct _OrthancPluginContext_t* context,
2228 _OrthancPluginService service,
2229 const void* params);
2231
2232
2233
2245
2246
2247
2256 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeString(
2257 OrthancPluginContext* context,
2258 char* str)
2259 {
2260 if (str != NULL)
2261 {
2262 context->Free(str);
2263 }
2264 }
2265
2266
2286 ORTHANC_PLUGIN_SINCE_SDK("1.4.0")
2287 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginCheckVersionAdvanced(
2288 const OrthancPluginContext* context,
2289 int32_t expectedMajor,
2290 int32_t expectedMinor,
2291 int32_t expectedRevision)
2292 {
2293 int32_t major, minor, revision;
2294
2295 if (sizeof(int) != sizeof(int32_t) || /* Ensure binary compatibility with Orthanc SDK <= 1.12.1 */
2296 sizeof(int32_t) != sizeof(OrthancPluginErrorCode) ||
2297 sizeof(int32_t) != sizeof(OrthancPluginHttpMethod) ||
2298 sizeof(int32_t) != sizeof(_OrthancPluginService) ||
2299 sizeof(int32_t) != sizeof(_OrthancPluginProperty) ||
2300 sizeof(int32_t) != sizeof(OrthancPluginPixelFormat) ||
2301 sizeof(int32_t) != sizeof(OrthancPluginContentType) ||
2302 sizeof(int32_t) != sizeof(OrthancPluginResourceType) ||
2303 sizeof(int32_t) != sizeof(OrthancPluginChangeType) ||
2304 sizeof(int32_t) != sizeof(OrthancPluginCompressionType) ||
2305 sizeof(int32_t) != sizeof(OrthancPluginImageFormat) ||
2306 sizeof(int32_t) != sizeof(OrthancPluginValueRepresentation) ||
2307 sizeof(int32_t) != sizeof(OrthancPluginDicomToJsonFormat) ||
2308 sizeof(int32_t) != sizeof(OrthancPluginDicomToJsonFlags) ||
2309 sizeof(int32_t) != sizeof(OrthancPluginCreateDicomFlags) ||
2310 sizeof(int32_t) != sizeof(OrthancPluginIdentifierConstraint) ||
2311 sizeof(int32_t) != sizeof(OrthancPluginInstanceOrigin) ||
2312 sizeof(int32_t) != sizeof(OrthancPluginJobStepStatus) ||
2313 sizeof(int32_t) != sizeof(OrthancPluginJobStopReason) ||
2314 sizeof(int32_t) != sizeof(OrthancPluginConstraintType) ||
2315 sizeof(int32_t) != sizeof(OrthancPluginMetricsType) ||
2316 sizeof(int32_t) != sizeof(OrthancPluginDicomWebBinaryMode) ||
2317 sizeof(int32_t) != sizeof(OrthancPluginStorageCommitmentFailureReason) ||
2318 sizeof(int32_t) != sizeof(OrthancPluginReceivedInstanceAction) ||
2319 sizeof(int32_t) != sizeof(OrthancPluginLoadDicomInstanceMode) ||
2320 sizeof(int32_t) != sizeof(OrthancPluginLogLevel) ||
2321 sizeof(int32_t) != sizeof(OrthancPluginLogCategory) ||
2322 sizeof(int32_t) != sizeof(OrthancPluginStoreStatus) ||
2323 sizeof(int32_t) != sizeof(OrthancPluginQueueOrigin) ||
2324 sizeof(int32_t) != sizeof(OrthancPluginStableStatus) ||
2325 sizeof(int32_t) != sizeof(OrthancPluginHttpAuthenticationStatus))
2326 {
2327 /* Mismatch in the size of the enumerations */
2328 return 0;
2329 }
2330
2331 /* Assume compatibility with the mainline */
2332 if (!strcmp(context->orthancVersion, "mainline"))
2333 {
2334 return 1;
2335 }
2336
2337 /* Parse the version of the Orthanc core */
2338 if (
2339#ifdef _MSC_VER
2340 sscanf_s
2341#else
2342 sscanf
2343#endif
2344 (context->orthancVersion, "%4d.%4d.%4d", &major, &minor, &revision) != 3)
2345 {
2346 return 0;
2347 }
2348
2349 /* Check the major number of the version */
2350
2351 if (major > expectedMajor)
2352 {
2353 return 1;
2354 }
2355
2356 if (major < expectedMajor)
2357 {
2358 return 0;
2359 }
2360
2361 /* Check the minor number of the version */
2362
2363 if (minor > expectedMinor)
2364 {
2365 return 1;
2366 }
2367
2368 if (minor < expectedMinor)
2369 {
2370 return 0;
2371 }
2372
2373 /* Check the revision number of the version */
2374
2375 if (revision >= expectedRevision)
2376 {
2377 return 1;
2378 }
2379 else
2380 {
2381 return 0;
2382 }
2383 }
2384
2385
2402 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginCheckVersion(
2403 const OrthancPluginContext* context)
2404 {
2406 context,
2407 ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER,
2408 ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER,
2409 ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER);
2410 }
2411
2412
2421 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeMemoryBuffer(
2422 OrthancPluginContext* context,
2424 {
2425 context->Free(buffer->data);
2426 }
2427
2428
2437 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
2438 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeMemoryBuffer64(
2439 OrthancPluginContext* context,
2441 {
2442 context->Free(buffer->data);
2443 }
2444
2445
2454 ORTHANC_PLUGIN_INLINE void OrthancPluginLogError(
2455 OrthancPluginContext* context,
2456 const char* message)
2457 {
2458 context->InvokeService(context, _OrthancPluginService_LogError, message);
2459 }
2460
2461
2470 ORTHANC_PLUGIN_INLINE void OrthancPluginLogWarning(
2471 OrthancPluginContext* context,
2472 const char* message)
2473 {
2474 context->InvokeService(context, _OrthancPluginService_LogWarning, message);
2475 }
2476
2477
2486 ORTHANC_PLUGIN_INLINE void OrthancPluginLogInfo(
2487 OrthancPluginContext* context,
2488 const char* message)
2489 {
2490 context->InvokeService(context, _OrthancPluginService_LogInfo, message);
2491 }
2492
2493
2494
2495 typedef struct
2496 {
2497 const char* pathRegularExpression;
2499 } _OrthancPluginRestCallback;
2500
2522 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterRestCallback(
2523 OrthancPluginContext* context,
2524 const char* pathRegularExpression,
2526 {
2527 _OrthancPluginRestCallback params;
2528 params.pathRegularExpression = pathRegularExpression;
2529 params.callback = callback;
2530 context->InvokeService(context, _OrthancPluginService_RegisterRestCallback, &params);
2531 }
2532
2533
2534
2563 OrthancPluginContext* context,
2564 const char* pathRegularExpression,
2566 {
2567 _OrthancPluginRestCallback params;
2568 params.pathRegularExpression = pathRegularExpression;
2569 params.callback = callback;
2570 context->InvokeService(context, _OrthancPluginService_RegisterRestCallbackNoLock, &params);
2571 }
2572
2573
2574
2575 typedef struct
2576 {
2578 } _OrthancPluginOnStoredInstanceCallback;
2579
2601 OrthancPluginContext* context,
2603 {
2604 _OrthancPluginOnStoredInstanceCallback params;
2605 params.callback = callback;
2606
2607 context->InvokeService(context, _OrthancPluginService_RegisterOnStoredInstanceCallback, &params);
2608 }
2609
2610
2611
2612 typedef struct
2613 {
2615 const void* answer;
2616 uint32_t answerSize;
2617 const char* mimeType;
2618 } _OrthancPluginAnswerBuffer;
2619
2632 ORTHANC_PLUGIN_INLINE void OrthancPluginAnswerBuffer(
2633 OrthancPluginContext* context,
2635 const void* answer,
2636 uint32_t answerSize,
2637 const char* mimeType)
2638 {
2639 _OrthancPluginAnswerBuffer params;
2640 params.output = output;
2641 params.answer = answer;
2642 params.answerSize = answerSize;
2643 params.mimeType = mimeType;
2644 context->InvokeService(context, _OrthancPluginService_AnswerBuffer, &params);
2645 }
2646
2647
2648 typedef struct
2649 {
2652 uint32_t width;
2653 uint32_t height;
2654 uint32_t pitch;
2655 const void* buffer;
2656 } _OrthancPluginCompressAndAnswerPngImage;
2657
2658 typedef struct
2659 {
2661 OrthancPluginImageFormat imageFormat;
2662 OrthancPluginPixelFormat pixelFormat;
2663 uint32_t width;
2664 uint32_t height;
2665 uint32_t pitch;
2666 const void* buffer;
2667 uint8_t quality;
2668 } _OrthancPluginCompressAndAnswerImage;
2669
2670
2689 ORTHANC_PLUGIN_INLINE void OrthancPluginCompressAndAnswerPngImage(
2690 OrthancPluginContext* context,
2693 uint32_t width,
2694 uint32_t height,
2695 uint32_t pitch,
2696 const void* buffer)
2697 {
2698 _OrthancPluginCompressAndAnswerImage params;
2699 params.output = output;
2700 params.imageFormat = OrthancPluginImageFormat_Png;
2701 params.pixelFormat = format;
2702 params.width = width;
2703 params.height = height;
2704 params.pitch = pitch;
2705 params.buffer = buffer;
2706 params.quality = 0; /* No quality for PNG */
2707 context->InvokeService(context, _OrthancPluginService_CompressAndAnswerImage, &params);
2708 }
2709
2710
2711
2712 typedef struct
2713 {
2715 const char* instanceId;
2716 } _OrthancPluginGetDicomForInstance;
2717
2731 OrthancPluginContext* context,
2733 const char* instanceId)
2734 {
2735 _OrthancPluginGetDicomForInstance params;
2736 params.target = target;
2737 params.instanceId = instanceId;
2738 return context->InvokeService(context, _OrthancPluginService_GetDicomForInstance, &params);
2739 }
2740
2741
2742
2743 typedef struct
2744 {
2746 const char* uri;
2747 } _OrthancPluginRestApiGet;
2748
2764 OrthancPluginContext* context,
2766 const char* uri)
2767 {
2768 _OrthancPluginRestApiGet params;
2769 params.target = target;
2770 params.uri = uri;
2771 return context->InvokeService(context, _OrthancPluginService_RestApiGet, &params);
2772 }
2773
2774
2775
2794 OrthancPluginContext* context,
2796 const char* uri)
2797 {
2798 _OrthancPluginRestApiGet params;
2799 params.target = target;
2800 params.uri = uri;
2801 return context->InvokeService(context, _OrthancPluginService_RestApiGetAfterPlugins, &params);
2802 }
2803
2804
2805
2806 typedef struct
2807 {
2809 const char* uri;
2810 const void* body;
2811 uint32_t bodySize;
2812 } _OrthancPluginRestApiPostPut;
2813
2831 OrthancPluginContext* context,
2833 const char* uri,
2834 const void* body,
2835 uint32_t bodySize)
2836 {
2837 _OrthancPluginRestApiPostPut params;
2838 params.target = target;
2839 params.uri = uri;
2840 params.body = body;
2841 params.bodySize = bodySize;
2842 return context->InvokeService(context, _OrthancPluginService_RestApiPost, &params);
2843 }
2844
2845
2866 OrthancPluginContext* context,
2868 const char* uri,
2869 const void* body,
2870 uint32_t bodySize)
2871 {
2872 _OrthancPluginRestApiPostPut params;
2873 params.target = target;
2874 params.uri = uri;
2875 params.body = body;
2876 params.bodySize = bodySize;
2877 return context->InvokeService(context, _OrthancPluginService_RestApiPostAfterPlugins, &params);
2878 }
2879
2880
2881
2895 OrthancPluginContext* context,
2896 const char* uri)
2897 {
2898 return context->InvokeService(context, _OrthancPluginService_RestApiDelete, uri);
2899 }
2900
2901
2918 OrthancPluginContext* context,
2919 const char* uri)
2920 {
2921 return context->InvokeService(context, _OrthancPluginService_RestApiDeleteAfterPlugins, uri);
2922 }
2923
2924
2925
2943 OrthancPluginContext* context,
2945 const char* uri,
2946 const void* body,
2947 uint32_t bodySize)
2948 {
2949 _OrthancPluginRestApiPostPut params;
2950 params.target = target;
2951 params.uri = uri;
2952 params.body = body;
2953 params.bodySize = bodySize;
2954 return context->InvokeService(context, _OrthancPluginService_RestApiPut, &params);
2955 }
2956
2957
2958
2979 OrthancPluginContext* context,
2981 const char* uri,
2982 const void* body,
2983 uint32_t bodySize)
2984 {
2985 _OrthancPluginRestApiPostPut params;
2986 params.target = target;
2987 params.uri = uri;
2988 params.body = body;
2989 params.bodySize = bodySize;
2990 return context->InvokeService(context, _OrthancPluginService_RestApiPutAfterPlugins, &params);
2991 }
2992
2993
2994
2995 typedef struct
2996 {
2998 const char* argument;
2999 } _OrthancPluginOutputPlusArgument;
3000
3012 ORTHANC_PLUGIN_INLINE void OrthancPluginRedirect(
3013 OrthancPluginContext* context,
3015 const char* redirection)
3016 {
3017 _OrthancPluginOutputPlusArgument params;
3018 params.output = output;
3019 params.argument = redirection;
3020 context->InvokeService(context, _OrthancPluginService_Redirect, &params);
3021 }
3022
3023
3024
3025 typedef struct
3026 {
3027 char** result;
3028 const char* argument;
3029 } _OrthancPluginRetrieveDynamicString;
3030
3044 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupPatient(
3045 OrthancPluginContext* context,
3046 const char* patientID)
3047 {
3048 char* result;
3049
3050 _OrthancPluginRetrieveDynamicString params;
3051 params.result = &result;
3052 params.argument = patientID;
3053
3054 if (context->InvokeService(context, _OrthancPluginService_LookupPatient, &params) != OrthancPluginErrorCode_Success)
3055 {
3056 /* Error */
3057 return NULL;
3058 }
3059 else
3060 {
3061 return result;
3062 }
3063 }
3064
3065
3079 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupStudy(
3080 OrthancPluginContext* context,
3081 const char* studyUID)
3082 {
3083 char* result;
3084
3085 _OrthancPluginRetrieveDynamicString params;
3086 params.result = &result;
3087 params.argument = studyUID;
3088
3089 if (context->InvokeService(context, _OrthancPluginService_LookupStudy, &params) != OrthancPluginErrorCode_Success)
3090 {
3091 /* Error */
3092 return NULL;
3093 }
3094 else
3095 {
3096 return result;
3097 }
3098 }
3099
3100
3115 OrthancPluginContext* context,
3116 const char* accessionNumber)
3117 {
3118 char* result;
3119
3120 _OrthancPluginRetrieveDynamicString params;
3121 params.result = &result;
3122 params.argument = accessionNumber;
3123
3124 if (context->InvokeService(context, _OrthancPluginService_LookupStudyWithAccessionNumber, &params) != OrthancPluginErrorCode_Success)
3125 {
3126 /* Error */
3127 return NULL;
3128 }
3129 else
3130 {
3131 return result;
3132 }
3133 }
3134
3135
3149 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupSeries(
3150 OrthancPluginContext* context,
3151 const char* seriesUID)
3152 {
3153 char* result;
3154
3155 _OrthancPluginRetrieveDynamicString params;
3156 params.result = &result;
3157 params.argument = seriesUID;
3158
3159 if (context->InvokeService(context, _OrthancPluginService_LookupSeries, &params) != OrthancPluginErrorCode_Success)
3160 {
3161 /* Error */
3162 return NULL;
3163 }
3164 else
3165 {
3166 return result;
3167 }
3168 }
3169
3170
3184 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupInstance(
3185 OrthancPluginContext* context,
3186 const char* sopInstanceUID)
3187 {
3188 char* result;
3189
3190 _OrthancPluginRetrieveDynamicString params;
3191 params.result = &result;
3192 params.argument = sopInstanceUID;
3193
3194 if (context->InvokeService(context, _OrthancPluginService_LookupInstance, &params) != OrthancPluginErrorCode_Success)
3195 {
3196 /* Error */
3197 return NULL;
3198 }
3199 else
3200 {
3201 return result;
3202 }
3203 }
3204
3205
3206
3207 typedef struct
3208 {
3210 uint16_t status;
3211 } _OrthancPluginSendHttpStatusCode;
3212
3229 ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatusCode(
3230 OrthancPluginContext* context,
3232 uint16_t status)
3233 {
3234 _OrthancPluginSendHttpStatusCode params;
3235 params.output = output;
3236 params.status = status;
3237 context->InvokeService(context, _OrthancPluginService_SendHttpStatusCode, &params);
3238 }
3239
3240
3252 ORTHANC_PLUGIN_INLINE void OrthancPluginSendUnauthorized(
3253 OrthancPluginContext* context,
3255 const char* realm)
3256 {
3257 _OrthancPluginOutputPlusArgument params;
3258 params.output = output;
3259 params.argument = realm;
3260 context->InvokeService(context, _OrthancPluginService_SendUnauthorized, &params);
3261 }
3262
3263
3275 ORTHANC_PLUGIN_INLINE void OrthancPluginSendMethodNotAllowed(
3276 OrthancPluginContext* context,
3278 const char* allowedMethods)
3279 {
3280 _OrthancPluginOutputPlusArgument params;
3281 params.output = output;
3282 params.argument = allowedMethods;
3283 context->InvokeService(context, _OrthancPluginService_SendMethodNotAllowed, &params);
3284 }
3285
3286
3287 typedef struct
3288 {
3290 const char* key;
3291 const char* value;
3292 } _OrthancPluginSetHttpHeader;
3293
3305 ORTHANC_PLUGIN_INLINE void OrthancPluginSetCookie(
3306 OrthancPluginContext* context,
3308 const char* cookie,
3309 const char* value)
3310 {
3311 _OrthancPluginSetHttpHeader params;
3312 params.output = output;
3313 params.key = cookie;
3314 params.value = value;
3315 context->InvokeService(context, _OrthancPluginService_SetCookie, &params);
3316 }
3317
3318
3330 ORTHANC_PLUGIN_INLINE void OrthancPluginSetHttpHeader(
3331 OrthancPluginContext* context,
3333 const char* key,
3334 const char* value)
3335 {
3336 _OrthancPluginSetHttpHeader params;
3337 params.output = output;
3338 params.key = key;
3339 params.value = value;
3340 context->InvokeService(context, _OrthancPluginService_SetHttpHeader, &params);
3341 }
3342
3343
3344 typedef struct
3345 {
3346 char** resultStringToFree;
3347 const char** resultString;
3348 int64_t* resultInt64;
3349 const char* key;
3350 const OrthancPluginDicomInstance* instance;
3351 OrthancPluginInstanceOrigin* resultOrigin; /* New in Orthanc 0.9.5 SDK */
3352 } _OrthancPluginAccessDicomInstance;
3353
3354
3366 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceRemoteAet(
3367 OrthancPluginContext* context,
3368 const OrthancPluginDicomInstance* instance)
3369 {
3370 const char* result;
3371
3372 _OrthancPluginAccessDicomInstance params;
3373 memset(&params, 0, sizeof(params));
3374 params.resultString = &result;
3375 params.instance = instance;
3376
3377 if (context->InvokeService(context, _OrthancPluginService_GetInstanceRemoteAet, &params) != OrthancPluginErrorCode_Success)
3378 {
3379 /* Error */
3380 return NULL;
3381 }
3382 else
3383 {
3384 return result;
3385 }
3386 }
3387
3388
3399 ORTHANC_PLUGIN_INLINE int64_t OrthancPluginGetInstanceSize(
3400 OrthancPluginContext* context,
3401 const OrthancPluginDicomInstance* instance)
3402 {
3403 int64_t size;
3404
3405 _OrthancPluginAccessDicomInstance params;
3406 memset(&params, 0, sizeof(params));
3407 params.resultInt64 = &size;
3408 params.instance = instance;
3409
3410 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSize, &params) != OrthancPluginErrorCode_Success)
3411 {
3412 /* Error */
3413 return -1;
3414 }
3415 else
3416 {
3417 return size;
3418 }
3419 }
3420
3421
3432 ORTHANC_PLUGIN_INLINE const void* OrthancPluginGetInstanceData(
3433 OrthancPluginContext* context,
3434 const OrthancPluginDicomInstance* instance)
3435 {
3436 const char* result;
3437
3438 _OrthancPluginAccessDicomInstance params;
3439 memset(&params, 0, sizeof(params));
3440 params.resultString = &result;
3441 params.instance = instance;
3442
3443 if (context->InvokeService(context, _OrthancPluginService_GetInstanceData, &params) != OrthancPluginErrorCode_Success)
3444 {
3445 /* Error */
3446 return NULL;
3447 }
3448 else
3449 {
3450 return result;
3451 }
3452 }
3453
3454
3468 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceJson(
3469 OrthancPluginContext* context,
3470 const OrthancPluginDicomInstance* instance)
3471 {
3472 char* result;
3473
3474 _OrthancPluginAccessDicomInstance params;
3475 memset(&params, 0, sizeof(params));
3476 params.resultStringToFree = &result;
3477 params.instance = instance;
3478
3479 if (context->InvokeService(context, _OrthancPluginService_GetInstanceJson, &params) != OrthancPluginErrorCode_Success)
3480 {
3481 /* Error */
3482 return NULL;
3483 }
3484 else
3485 {
3486 return result;
3487 }
3488 }
3489
3490
3506 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceSimplifiedJson(
3507 OrthancPluginContext* context,
3508 const OrthancPluginDicomInstance* instance)
3509 {
3510 char* result;
3511
3512 _OrthancPluginAccessDicomInstance params;
3513 memset(&params, 0, sizeof(params));
3514 params.resultStringToFree = &result;
3515 params.instance = instance;
3516
3517 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSimplifiedJson, &params) != OrthancPluginErrorCode_Success)
3518 {
3519 /* Error */
3520 return NULL;
3521 }
3522 else
3523 {
3524 return result;
3525 }
3526 }
3527
3528
3545 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginHasInstanceMetadata(
3546 OrthancPluginContext* context,
3547 const OrthancPluginDicomInstance* instance,
3548 const char* metadata)
3549 {
3550 int64_t result;
3551
3552 _OrthancPluginAccessDicomInstance params;
3553 memset(&params, 0, sizeof(params));
3554 params.resultInt64 = &result;
3555 params.instance = instance;
3556 params.key = metadata;
3557
3558 if (context->InvokeService(context, _OrthancPluginService_HasInstanceMetadata, &params) != OrthancPluginErrorCode_Success)
3559 {
3560 /* Error */
3561 return -1;
3562 }
3563 else
3564 {
3565 return (result != 0);
3566 }
3567 }
3568
3569
3586 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceMetadata(
3587 OrthancPluginContext* context,
3588 const OrthancPluginDicomInstance* instance,
3589 const char* metadata)
3590 {
3591 const char* result;
3592
3593 _OrthancPluginAccessDicomInstance params;
3594 memset(&params, 0, sizeof(params));
3595 params.resultString = &result;
3596 params.instance = instance;
3597 params.key = metadata;
3598
3599 if (context->InvokeService(context, _OrthancPluginService_GetInstanceMetadata, &params) != OrthancPluginErrorCode_Success)
3600 {
3601 /* Error */
3602 return NULL;
3603 }
3604 else
3605 {
3606 return result;
3607 }
3608 }
3609
3610
3611
3612 typedef struct
3613 {
3617 OrthancPluginFree free;
3618 } _OrthancPluginRegisterStorageArea;
3619
3635 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea(
3636 OrthancPluginContext* context,
3640 {
3641 _OrthancPluginRegisterStorageArea params;
3642 params.create = create;
3643 params.read = read;
3644 params.remove = remove;
3645
3646#ifdef __cplusplus
3647 params.free = ::free;
3648#else
3649 params.free = free;
3650#endif
3651
3652 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea, &params);
3653 }
3654
3655
3656
3667 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetOrthancPath(OrthancPluginContext* context)
3668 {
3669 char* result;
3670
3671 _OrthancPluginRetrieveDynamicString params;
3672 params.result = &result;
3673 params.argument = NULL;
3674
3675 if (context->InvokeService(context, _OrthancPluginService_GetOrthancPath, &params) != OrthancPluginErrorCode_Success)
3676 {
3677 /* Error */
3678 return NULL;
3679 }
3680 else
3681 {
3682 return result;
3683 }
3684 }
3685
3686
3697 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetOrthancDirectory(OrthancPluginContext* context)
3698 {
3699 char* result;
3700
3701 _OrthancPluginRetrieveDynamicString params;
3702 params.result = &result;
3703 params.argument = NULL;
3704
3705 if (context->InvokeService(context, _OrthancPluginService_GetOrthancDirectory, &params) != OrthancPluginErrorCode_Success)
3706 {
3707 /* Error */
3708 return NULL;
3709 }
3710 else
3711 {
3712 return result;
3713 }
3714 }
3715
3716
3732 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfigurationPath(OrthancPluginContext* context)
3733 {
3734 char* result;
3735
3736 _OrthancPluginRetrieveDynamicString params;
3737 params.result = &result;
3738 params.argument = NULL;
3739
3740 if (context->InvokeService(context, _OrthancPluginService_GetConfigurationPath, &params) != OrthancPluginErrorCode_Success)
3741 {
3742 /* Error */
3743 return NULL;
3744 }
3745 else
3746 {
3747 return result;
3748 }
3749 }
3750
3751
3752
3753 typedef struct
3754 {
3756 } _OrthancPluginOnChangeCallback;
3757
3778 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterOnChangeCallback(
3779 OrthancPluginContext* context,
3781 {
3782 _OrthancPluginOnChangeCallback params;
3783 params.callback = callback;
3784
3785 context->InvokeService(context, _OrthancPluginService_RegisterOnChangeCallback, &params);
3786 }
3787
3788
3789
3790 typedef struct
3791 {
3792 const char* plugin;
3793 _OrthancPluginProperty property;
3794 const char* value;
3795 } _OrthancPluginSetPluginProperty;
3796
3797
3813 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri(
3814 OrthancPluginContext* context,
3815 const char* uri)
3816 {
3817 _OrthancPluginSetPluginProperty params;
3818 params.plugin = OrthancPluginGetName();
3819 params.property = _OrthancPluginProperty_RootUri;
3820 params.value = uri;
3821
3822 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3823 }
3824
3825
3838 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
3839 ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri2(
3840 OrthancPluginContext* context,
3841 const char* plugin,
3842 const char* uri)
3843 {
3844 _OrthancPluginSetPluginProperty params;
3845 params.plugin = plugin;
3846 params.property = _OrthancPluginProperty_RootUri;
3847 params.value = uri;
3848
3849 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3850 }
3851
3852
3866 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription(
3867 OrthancPluginContext* context,
3868 const char* description)
3869 {
3870 _OrthancPluginSetPluginProperty params;
3871 params.plugin = OrthancPluginGetName();
3872 params.property = _OrthancPluginProperty_Description;
3873 params.value = description;
3874
3875 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3876 }
3877
3878
3889 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
3890 ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription2(
3891 OrthancPluginContext* context,
3892 const char* plugin,
3893 const char* description)
3894 {
3895 _OrthancPluginSetPluginProperty params;
3896 params.plugin = plugin;
3897 params.property = _OrthancPluginProperty_Description;
3898 params.value = description;
3899
3900 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3901 }
3902
3903
3917 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer(
3918 OrthancPluginContext* context,
3919 const char* javascript)
3920 {
3921 _OrthancPluginSetPluginProperty params;
3922 params.plugin = OrthancPluginGetName();
3923 params.property = _OrthancPluginProperty_OrthancExplorer;
3924 params.value = javascript;
3925
3926 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3927 }
3928
3929
3940 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
3941 ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer2(
3942 OrthancPluginContext* context,
3943 const char* plugin,
3944 const char* javascript)
3945 {
3946 _OrthancPluginSetPluginProperty params;
3947 params.plugin = plugin;
3948 params.property = _OrthancPluginProperty_OrthancExplorer;
3949 params.value = javascript;
3950
3951 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3952 }
3953
3954
3955 typedef struct
3956 {
3957 char** result;
3958 int32_t property;
3959 const char* value;
3960 } _OrthancPluginGlobalProperty;
3961
3962
3976 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetGlobalProperty(
3977 OrthancPluginContext* context,
3978 int32_t property,
3979 const char* defaultValue)
3980 {
3981 char* result;
3982
3983 _OrthancPluginGlobalProperty params;
3984 params.result = &result;
3985 params.property = property;
3986 params.value = defaultValue;
3987
3988 if (context->InvokeService(context, _OrthancPluginService_GetGlobalProperty, &params) != OrthancPluginErrorCode_Success)
3989 {
3990 /* Error */
3991 return NULL;
3992 }
3993 else
3994 {
3995 return result;
3996 }
3997 }
3998
3999
4016 OrthancPluginContext* context,
4017 int32_t property,
4018 const char* value)
4019 {
4020 _OrthancPluginGlobalProperty params;
4021 params.result = NULL;
4022 params.property = property;
4023 params.value = value;
4024
4025 return context->InvokeService(context, _OrthancPluginService_SetGlobalProperty, &params);
4026 }
4027
4028
4029
4030 typedef struct
4031 {
4032 int32_t *resultInt32;
4033 uint32_t *resultUint32;
4034 int64_t *resultInt64;
4035 uint64_t *resultUint64;
4036 } _OrthancPluginReturnSingleValue;
4037
4046 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetCommandLineArgumentsCount(
4047 OrthancPluginContext* context)
4048 {
4049 uint32_t count = 0;
4050
4051 _OrthancPluginReturnSingleValue params;
4052 memset(&params, 0, sizeof(params));
4053 params.resultUint32 = &count;
4054
4055 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgumentsCount, &params) != OrthancPluginErrorCode_Success)
4056 {
4057 /* Error */
4058 return 0;
4059 }
4060 else
4061 {
4062 return count;
4063 }
4064 }
4065
4066
4067
4080 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetCommandLineArgument(
4081 OrthancPluginContext* context,
4082 uint32_t argument)
4083 {
4084 char* result;
4085
4086 _OrthancPluginGlobalProperty params;
4087 params.result = &result;
4088 params.property = (int32_t) argument;
4089 params.value = NULL;
4090
4091 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgument, &params) != OrthancPluginErrorCode_Success)
4092 {
4093 /* Error */
4094 return NULL;
4095 }
4096 else
4097 {
4098 return result;
4099 }
4100 }
4101
4102
4112 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetExpectedDatabaseVersion(
4113 OrthancPluginContext* context)
4114 {
4115 uint32_t count = 0;
4116
4117 _OrthancPluginReturnSingleValue params;
4118 memset(&params, 0, sizeof(params));
4119 params.resultUint32 = &count;
4120
4121 if (context->InvokeService(context, _OrthancPluginService_GetExpectedDatabaseVersion, &params) != OrthancPluginErrorCode_Success)
4122 {
4123 /* Error */
4124 return 0;
4125 }
4126 else
4127 {
4128 return count;
4129 }
4130 }
4131
4132
4133
4145 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfiguration(OrthancPluginContext* context)
4146 {
4147 char* result;
4148
4149 _OrthancPluginRetrieveDynamicString params;
4150 params.result = &result;
4151 params.argument = NULL;
4152
4153 if (context->InvokeService(context, _OrthancPluginService_GetConfiguration, &params) != OrthancPluginErrorCode_Success)
4154 {
4155 /* Error */
4156 return NULL;
4157 }
4158 else
4159 {
4160 return result;
4161 }
4162 }
4163
4164
4165
4166 typedef struct
4167 {
4169 const char* subType;
4170 const char* contentType;
4171 } _OrthancPluginStartMultipartAnswer;
4172
4187 OrthancPluginContext* context,
4189 const char* subType,
4190 const char* contentType)
4191 {
4192 _OrthancPluginStartMultipartAnswer params;
4193 params.output = output;
4194 params.subType = subType;
4195 params.contentType = contentType;
4196 return context->InvokeService(context, _OrthancPluginService_StartMultipartAnswer, &params);
4197 }
4198
4199
4216 OrthancPluginContext* context,
4218 const void* answer,
4219 uint32_t answerSize)
4220 {
4221 _OrthancPluginAnswerBuffer params;
4222 params.output = output;
4223 params.answer = answer;
4224 params.answerSize = answerSize;
4225 params.mimeType = NULL;
4226 return context->InvokeService(context, _OrthancPluginService_SendMultipartItem, &params);
4227 }
4228
4229
4230
4231 typedef struct
4232 {
4234 const void* source;
4235 uint32_t size;
4236 OrthancPluginCompressionType compression;
4237 uint8_t uncompress;
4238 } _OrthancPluginBufferCompression;
4239
4240
4258 OrthancPluginContext* context,
4260 const void* source,
4261 uint32_t size,
4262 OrthancPluginCompressionType compression,
4263 uint8_t uncompress)
4264 {
4265 _OrthancPluginBufferCompression params;
4266 params.target = target;
4267 params.source = source;
4268 params.size = size;
4269 params.compression = compression;
4270 params.uncompress = uncompress;
4271
4272 return context->InvokeService(context, _OrthancPluginService_BufferCompression, &params);
4273 }
4274
4275
4276
4277 typedef struct
4278 {
4280 const char* path;
4281 } _OrthancPluginReadFile;
4282
4295 OrthancPluginContext* context,
4297 const char* path)
4298 {
4299 _OrthancPluginReadFile params;
4300 params.target = target;
4301 params.path = path;
4302 return context->InvokeService(context, _OrthancPluginService_ReadFile, &params);
4303 }
4304
4305
4306
4307 typedef struct
4308 {
4309 const char* path;
4310 const void* data;
4311 uint32_t size;
4312 } _OrthancPluginWriteFile;
4313
4326 OrthancPluginContext* context,
4327 const char* path,
4328 const void* data,
4329 uint32_t size)
4330 {
4331 _OrthancPluginWriteFile params;
4332 params.path = path;
4333 params.data = data;
4334 params.size = size;
4335 return context->InvokeService(context, _OrthancPluginService_WriteFile, &params);
4336 }
4337
4338
4339
4340 typedef struct
4341 {
4342 const char** target;
4344 } _OrthancPluginGetErrorDescription;
4345
4356 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetErrorDescription(
4357 OrthancPluginContext* context,
4359 {
4360 const char* result = NULL;
4361
4362 _OrthancPluginGetErrorDescription params;
4363 params.target = &result;
4364 params.error = error;
4365
4366 if (context->InvokeService(context, _OrthancPluginService_GetErrorDescription, &params) != OrthancPluginErrorCode_Success ||
4367 result == NULL)
4368 {
4369 return "Unknown error code";
4370 }
4371 else
4372 {
4373 return result;
4374 }
4375 }
4376
4377
4378
4379 typedef struct
4380 {
4382 uint16_t status;
4383 const void* body;
4384 uint32_t bodySize;
4385 } _OrthancPluginSendHttpStatus;
4386
4409 ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatus(
4410 OrthancPluginContext* context,
4412 uint16_t status,
4413 const void* body,
4414 uint32_t bodySize)
4415 {
4416 _OrthancPluginSendHttpStatus params;
4417 params.output = output;
4418 params.status = status;
4419 params.body = body;
4420 params.bodySize = bodySize;
4421 context->InvokeService(context, _OrthancPluginService_SendHttpStatus, &params);
4422 }
4423
4424
4425
4426 typedef struct
4427 {
4428 const OrthancPluginImage* image;
4429 uint32_t* resultUint32;
4430 OrthancPluginPixelFormat* resultPixelFormat;
4431 void** resultBuffer;
4432 } _OrthancPluginGetImageInfo;
4433
4434
4446 OrthancPluginContext* context,
4447 const OrthancPluginImage* image)
4448 {
4450
4451 _OrthancPluginGetImageInfo params;
4452 memset(&params, 0, sizeof(params));
4453 params.image = image;
4454 params.resultPixelFormat = &target;
4455
4456 if (context->InvokeService(context, _OrthancPluginService_GetImagePixelFormat, &params) != OrthancPluginErrorCode_Success)
4457 {
4459 }
4460 else
4461 {
4462 return (OrthancPluginPixelFormat) target;
4463 }
4464 }
4465
4466
4467
4478 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImageWidth(
4479 OrthancPluginContext* context,
4480 const OrthancPluginImage* image)
4481 {
4482 uint32_t width;
4483
4484 _OrthancPluginGetImageInfo params;
4485 memset(&params, 0, sizeof(params));
4486 params.image = image;
4487 params.resultUint32 = &width;
4488
4489 if (context->InvokeService(context, _OrthancPluginService_GetImageWidth, &params) != OrthancPluginErrorCode_Success)
4490 {
4491 return 0;
4492 }
4493 else
4494 {
4495 return width;
4496 }
4497 }
4498
4499
4500
4511 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImageHeight(
4512 OrthancPluginContext* context,
4513 const OrthancPluginImage* image)
4514 {
4515 uint32_t height;
4516
4517 _OrthancPluginGetImageInfo params;
4518 memset(&params, 0, sizeof(params));
4519 params.image = image;
4520 params.resultUint32 = &height;
4521
4522 if (context->InvokeService(context, _OrthancPluginService_GetImageHeight, &params) != OrthancPluginErrorCode_Success)
4523 {
4524 return 0;
4525 }
4526 else
4527 {
4528 return height;
4529 }
4530 }
4531
4532
4533
4546 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImagePitch(
4547 OrthancPluginContext* context,
4548 const OrthancPluginImage* image)
4549 {
4550 uint32_t pitch;
4551
4552 _OrthancPluginGetImageInfo params;
4553 memset(&params, 0, sizeof(params));
4554 params.image = image;
4555 params.resultUint32 = &pitch;
4556
4557 if (context->InvokeService(context, _OrthancPluginService_GetImagePitch, &params) != OrthancPluginErrorCode_Success)
4558 {
4559 return 0;
4560 }
4561 else
4562 {
4563 return pitch;
4564 }
4565 }
4566
4567
4568
4580 ORTHANC_PLUGIN_INLINE void* OrthancPluginGetImageBuffer(
4581 OrthancPluginContext* context,
4582 const OrthancPluginImage* image)
4583 {
4584 void* target = NULL;
4585
4586 _OrthancPluginGetImageInfo params;
4587 memset(&params, 0, sizeof(params));
4588 params.resultBuffer = &target;
4589 params.image = image;
4590
4591 if (context->InvokeService(context, _OrthancPluginService_GetImageBuffer, &params) != OrthancPluginErrorCode_Success)
4592 {
4593 return NULL;
4594 }
4595 else
4596 {
4597 return target;
4598 }
4599 }
4600
4601
4602 typedef struct
4603 {
4604 OrthancPluginImage** target;
4605 const void* data;
4606 uint32_t size;
4608 } _OrthancPluginUncompressImage;
4609
4610
4624 OrthancPluginContext* context,
4625 const void* data,
4626 uint32_t size,
4628 {
4629 OrthancPluginImage* target = NULL;
4630
4631 _OrthancPluginUncompressImage params;
4632 memset(&params, 0, sizeof(params));
4633 params.target = &target;
4634 params.data = data;
4635 params.size = size;
4636 params.format = format;
4637
4638 if (context->InvokeService(context, _OrthancPluginService_UncompressImage, &params) != OrthancPluginErrorCode_Success)
4639 {
4640 return NULL;
4641 }
4642 else
4643 {
4644 return target;
4645 }
4646 }
4647
4648
4649
4650
4651 typedef struct
4652 {
4653 OrthancPluginImage* image;
4654 } _OrthancPluginFreeImage;
4655
4665 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeImage(
4666 OrthancPluginContext* context,
4667 OrthancPluginImage* image)
4668 {
4669 _OrthancPluginFreeImage params;
4670 params.image = image;
4671
4672 context->InvokeService(context, _OrthancPluginService_FreeImage, &params);
4673 }
4674
4675
4676
4677
4678 typedef struct
4679 {
4681 OrthancPluginImageFormat imageFormat;
4682 OrthancPluginPixelFormat pixelFormat;
4683 uint32_t width;
4684 uint32_t height;
4685 uint32_t pitch;
4686 const void* buffer;
4687 uint8_t quality;
4688 } _OrthancPluginCompressImage;
4689
4690
4711 OrthancPluginContext* context,
4714 uint32_t width,
4715 uint32_t height,
4716 uint32_t pitch,
4717 const void* buffer)
4718 {
4719 _OrthancPluginCompressImage params;
4720 memset(&params, 0, sizeof(params));
4721 params.target = target;
4722 params.imageFormat = OrthancPluginImageFormat_Png;
4723 params.pixelFormat = format;
4724 params.width = width;
4725 params.height = height;
4726 params.pitch = pitch;
4727 params.buffer = buffer;
4728 params.quality = 0; /* Unused for PNG */
4729
4730 return context->InvokeService(context, _OrthancPluginService_CompressImage, &params);
4731 }
4732
4733
4756 OrthancPluginContext* context,
4759 uint32_t width,
4760 uint32_t height,
4761 uint32_t pitch,
4762 const void* buffer,
4763 uint8_t quality)
4764 {
4765 _OrthancPluginCompressImage params;
4766 memset(&params, 0, sizeof(params));
4767 params.target = target;
4768 params.imageFormat = OrthancPluginImageFormat_Jpeg;
4769 params.pixelFormat = format;
4770 params.width = width;
4771 params.height = height;
4772 params.pitch = pitch;
4773 params.buffer = buffer;
4774 params.quality = quality;
4775
4776 return context->InvokeService(context, _OrthancPluginService_CompressImage, &params);
4777 }
4778
4779
4780
4803 OrthancPluginContext* context,
4806 uint32_t width,
4807 uint32_t height,
4808 uint32_t pitch,
4809 const void* buffer,
4810 uint8_t quality)
4811 {
4812 _OrthancPluginCompressAndAnswerImage params;
4813 params.output = output;
4814 params.imageFormat = OrthancPluginImageFormat_Jpeg;
4815 params.pixelFormat = format;
4816 params.width = width;
4817 params.height = height;
4818 params.pitch = pitch;
4819 params.buffer = buffer;
4820 params.quality = quality;
4821 context->InvokeService(context, _OrthancPluginService_CompressAndAnswerImage, &params);
4822 }
4823
4824
4825
4826
4827 typedef struct
4828 {
4831 const char* url;
4832 const char* username;
4833 const char* password;
4834 const void* body;
4835 uint32_t bodySize;
4836 } _OrthancPluginCallHttpClient;
4837
4838
4856 OrthancPluginContext* context,
4858 const char* url,
4859 const char* username,
4860 const char* password)
4861 {
4862 _OrthancPluginCallHttpClient params;
4863 memset(&params, 0, sizeof(params));
4864
4865 params.target = target;
4866 params.method = OrthancPluginHttpMethod_Get;
4867 params.url = url;
4868 params.username = username;
4869 params.password = password;
4870
4871 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4872 }
4873
4874
4894 OrthancPluginContext* context,
4896 const char* url,
4897 const void* body,
4898 uint32_t bodySize,
4899 const char* username,
4900 const char* password)
4901 {
4902 _OrthancPluginCallHttpClient params;
4903 memset(&params, 0, sizeof(params));
4904
4905 params.target = target;
4906 params.method = OrthancPluginHttpMethod_Post;
4907 params.url = url;
4908 params.body = body;
4909 params.bodySize = bodySize;
4910 params.username = username;
4911 params.password = password;
4912
4913 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4914 }
4915
4916
4936 OrthancPluginContext* context,
4938 const char* url,
4939 const void* body,
4940 uint32_t bodySize,
4941 const char* username,
4942 const char* password)
4943 {
4944 _OrthancPluginCallHttpClient params;
4945 memset(&params, 0, sizeof(params));
4946
4947 params.target = target;
4948 params.method = OrthancPluginHttpMethod_Put;
4949 params.url = url;
4950 params.body = body;
4951 params.bodySize = bodySize;
4952 params.username = username;
4953 params.password = password;
4954
4955 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4956 }
4957
4958
4974 OrthancPluginContext* context,
4975 const char* url,
4976 const char* username,
4977 const char* password)
4978 {
4979 _OrthancPluginCallHttpClient params;
4980 memset(&params, 0, sizeof(params));
4981
4982 params.method = OrthancPluginHttpMethod_Delete;
4983 params.url = url;
4984 params.username = username;
4985 params.password = password;
4986
4987 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4988 }
4989
4990
4991
4992 typedef struct
4993 {
4994 OrthancPluginImage** target;
4995 const OrthancPluginImage* source;
4996 OrthancPluginPixelFormat targetFormat;
4997 } _OrthancPluginConvertPixelFormat;
4998
4999
5012 OrthancPluginContext* context,
5013 const OrthancPluginImage* source,
5014 OrthancPluginPixelFormat targetFormat)
5015 {
5016 OrthancPluginImage* target = NULL;
5017
5018 _OrthancPluginConvertPixelFormat params;
5019 params.target = &target;
5020 params.source = source;
5021 params.targetFormat = targetFormat;
5022
5023 if (context->InvokeService(context, _OrthancPluginService_ConvertPixelFormat, &params) != OrthancPluginErrorCode_Success)
5024 {
5025 return NULL;
5026 }
5027 else
5028 {
5029 return target;
5030 }
5031 }
5032
5033
5034
5046 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFontsCount(
5047 OrthancPluginContext* context)
5048 {
5049 uint32_t count = 0;
5050
5051 _OrthancPluginReturnSingleValue params;
5052 memset(&params, 0, sizeof(params));
5053 params.resultUint32 = &count;
5054
5055 if (context->InvokeService(context, _OrthancPluginService_GetFontsCount, &params) != OrthancPluginErrorCode_Success)
5056 {
5057 /* Error */
5058 return 0;
5059 }
5060 else
5061 {
5062 return count;
5063 }
5064 }
5065
5066
5067
5068
5069 typedef struct
5070 {
5071 uint32_t fontIndex; /* in */
5072 const char** name; /* out */
5073 uint32_t* size; /* out */
5074 } _OrthancPluginGetFontInfo;
5075
5086 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetFontName(
5087 OrthancPluginContext* context,
5088 uint32_t fontIndex)
5089 {
5090 const char* result = NULL;
5091
5092 _OrthancPluginGetFontInfo params;
5093 memset(&params, 0, sizeof(params));
5094 params.name = &result;
5095 params.fontIndex = fontIndex;
5096
5097 if (context->InvokeService(context, _OrthancPluginService_GetFontInfo, &params) != OrthancPluginErrorCode_Success)
5098 {
5099 return NULL;
5100 }
5101 else
5102 {
5103 return result;
5104 }
5105 }
5106
5107
5118 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFontSize(
5119 OrthancPluginContext* context,
5120 uint32_t fontIndex)
5121 {
5122 uint32_t result;
5123
5124 _OrthancPluginGetFontInfo params;
5125 memset(&params, 0, sizeof(params));
5126 params.size = &result;
5127 params.fontIndex = fontIndex;
5128
5129 if (context->InvokeService(context, _OrthancPluginService_GetFontInfo, &params) != OrthancPluginErrorCode_Success)
5130 {
5131 return 0;
5132 }
5133 else
5134 {
5135 return result;
5136 }
5137 }
5138
5139
5140
5141 typedef struct
5142 {
5143 OrthancPluginImage* image;
5144 uint32_t fontIndex;
5145 const char* utf8Text;
5146 int32_t x;
5147 int32_t y;
5148 uint8_t r;
5149 uint8_t g;
5150 uint8_t b;
5151 } _OrthancPluginDrawText;
5152
5153
5172 OrthancPluginContext* context,
5173 OrthancPluginImage* image,
5174 uint32_t fontIndex,
5175 const char* utf8Text,
5176 int32_t x,
5177 int32_t y,
5178 uint8_t r,
5179 uint8_t g,
5180 uint8_t b)
5181 {
5182 _OrthancPluginDrawText params;
5183 memset(&params, 0, sizeof(params));
5184 params.image = image;
5185 params.fontIndex = fontIndex;
5186 params.utf8Text = utf8Text;
5187 params.x = x;
5188 params.y = y;
5189 params.r = r;
5190 params.g = g;
5191 params.b = b;
5192
5193 return context->InvokeService(context, _OrthancPluginService_DrawText, &params);
5194 }
5195
5196
5197
5198 typedef struct
5199 {
5200 OrthancPluginStorageArea* storageArea;
5201 const char* uuid;
5202 const void* content;
5203 uint64_t size;
5205 } _OrthancPluginStorageAreaCreate;
5206
5207
5227 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaCreate(
5228 OrthancPluginContext* context,
5229 OrthancPluginStorageArea* storageArea,
5230 const char* uuid,
5231 const void* content,
5232 uint64_t size,
5234 {
5235 _OrthancPluginStorageAreaCreate params;
5236 params.storageArea = storageArea;
5237 params.uuid = uuid;
5238 params.content = content;
5239 params.size = size;
5240 params.type = type;
5241
5242 return context->InvokeService(context, _OrthancPluginService_StorageAreaCreate, &params);
5243 }
5244
5245
5246 typedef struct
5247 {
5249 OrthancPluginStorageArea* storageArea;
5250 const char* uuid;
5252 } _OrthancPluginStorageAreaRead;
5253
5254
5273 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRead(
5274 OrthancPluginContext* context,
5276 OrthancPluginStorageArea* storageArea,
5277 const char* uuid,
5279 {
5280 _OrthancPluginStorageAreaRead params;
5281 params.target = target;
5282 params.storageArea = storageArea;
5283 params.uuid = uuid;
5284 params.type = type;
5285
5286 return context->InvokeService(context, _OrthancPluginService_StorageAreaRead, &params);
5287 }
5288
5289
5290 typedef struct
5291 {
5292 OrthancPluginStorageArea* storageArea;
5293 const char* uuid;
5295 } _OrthancPluginStorageAreaRemove;
5296
5314 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRemove(
5315 OrthancPluginContext* context,
5316 OrthancPluginStorageArea* storageArea,
5317 const char* uuid,
5319 {
5320 _OrthancPluginStorageAreaRemove params;
5321 params.storageArea = storageArea;
5322 params.uuid = uuid;
5323 params.type = type;
5324
5325 return context->InvokeService(context, _OrthancPluginService_StorageAreaRemove, &params);
5326 }
5327
5328
5329
5330 typedef struct
5331 {
5332 OrthancPluginErrorCode* target;
5333 int32_t code;
5334 uint16_t httpStatus;
5335 const char* message;
5336 } _OrthancPluginRegisterErrorCode;
5337
5354 OrthancPluginContext* context,
5355 int32_t code,
5356 uint16_t httpStatus,
5357 const char* message)
5358 {
5360
5361 _OrthancPluginRegisterErrorCode params;
5362 params.target = &target;
5363 params.code = code;
5364 params.httpStatus = httpStatus;
5365 params.message = message;
5366
5367 if (context->InvokeService(context, _OrthancPluginService_RegisterErrorCode, &params) == OrthancPluginErrorCode_Success)
5368 {
5369 return target;
5370 }
5371 else
5372 {
5373 /* There was an error while assigned the error. Use a generic code. */
5375 }
5376 }
5377
5378
5379
5380 typedef struct
5381 {
5382 uint16_t group;
5383 uint16_t element;
5385 const char* name;
5386 uint32_t minMultiplicity;
5387 uint32_t maxMultiplicity;
5388 } _OrthancPluginRegisterDictionaryTag;
5389
5410 OrthancPluginContext* context,
5411 uint16_t group,
5412 uint16_t element,
5414 const char* name,
5415 uint32_t minMultiplicity,
5416 uint32_t maxMultiplicity)
5417 {
5418 _OrthancPluginRegisterDictionaryTag params;
5419 params.group = group;
5420 params.element = element;
5421 params.vr = vr;
5422 params.name = name;
5423 params.minMultiplicity = minMultiplicity;
5424 params.maxMultiplicity = maxMultiplicity;
5425
5426 return context->InvokeService(context, _OrthancPluginService_RegisterDictionaryTag, &params);
5427 }
5428
5429
5430
5431 typedef struct
5432 {
5433 uint16_t group;
5434 uint16_t element;
5436 const char* name;
5437 uint32_t minMultiplicity;
5438 uint32_t maxMultiplicity;
5439 const char* privateCreator;
5440 } _OrthancPluginRegisterPrivateDictionaryTag;
5441
5462 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
5464 OrthancPluginContext* context,
5465 uint16_t group,
5466 uint16_t element,
5468 const char* name,
5469 uint32_t minMultiplicity,
5470 uint32_t maxMultiplicity,
5471 const char* privateCreator)
5472 {
5473 _OrthancPluginRegisterPrivateDictionaryTag params;
5474 params.group = group;
5475 params.element = element;
5476 params.vr = vr;
5477 params.name = name;
5478 params.minMultiplicity = minMultiplicity;
5479 params.maxMultiplicity = maxMultiplicity;
5480 params.privateCreator = privateCreator;
5481
5482 return context->InvokeService(context, _OrthancPluginService_RegisterPrivateDictionaryTag, &params);
5483 }
5484
5485
5486
5487 typedef struct
5488 {
5489 OrthancPluginStorageArea* storageArea;
5491 } _OrthancPluginReconstructMainDicomTags;
5492
5508 OrthancPluginContext* context,
5509 OrthancPluginStorageArea* storageArea,
5511 {
5512 _OrthancPluginReconstructMainDicomTags params;
5513 params.level = level;
5514 params.storageArea = storageArea;
5515
5516 return context->InvokeService(context, _OrthancPluginService_ReconstructMainDicomTags, &params);
5517 }
5518
5519
5520 typedef struct
5521 {
5522 char** result;
5523 const char* instanceId;
5524 const void* buffer;
5525 uint32_t size;
5528 uint32_t maxStringLength;
5529 } _OrthancPluginDicomToJson;
5530
5531
5551 ORTHANC_PLUGIN_INLINE char* OrthancPluginDicomBufferToJson(
5552 OrthancPluginContext* context,
5553 const void* buffer,
5554 uint32_t size,
5557 uint32_t maxStringLength)
5558 {
5559 char* result;
5560
5561 _OrthancPluginDicomToJson params;
5562 memset(&params, 0, sizeof(params));
5563 params.result = &result;
5564 params.buffer = buffer;
5565 params.size = size;
5566 params.format = format;
5567 params.flags = flags;
5568 params.maxStringLength = maxStringLength;
5569
5570 if (context->InvokeService(context, _OrthancPluginService_DicomBufferToJson, &params) != OrthancPluginErrorCode_Success)
5571 {
5572 /* Error */
5573 return NULL;
5574 }
5575 else
5576 {
5577 return result;
5578 }
5579 }
5580
5581
5600 ORTHANC_PLUGIN_INLINE char* OrthancPluginDicomInstanceToJson(
5601 OrthancPluginContext* context,
5602 const char* instanceId,
5605 uint32_t maxStringLength)
5606 {
5607 char* result;
5608
5609 _OrthancPluginDicomToJson params;
5610 memset(&params, 0, sizeof(params));
5611 params.result = &result;
5612 params.instanceId = instanceId;
5613 params.format = format;
5614 params.flags = flags;
5615 params.maxStringLength = maxStringLength;
5616
5617 if (context->InvokeService(context, _OrthancPluginService_DicomInstanceToJson, &params) != OrthancPluginErrorCode_Success)
5618 {
5619 /* Error */
5620 return NULL;
5621 }
5622 else
5623 {
5624 return result;
5625 }
5626 }
5627
5628
5629 typedef struct
5630 {
5632 const char* uri;
5633 uint32_t headersCount;
5634 const char* const* headersKeys;
5635 const char* const* headersValues;
5636 int32_t afterPlugins;
5637 } _OrthancPluginRestApiGet2;
5638
5659 OrthancPluginContext* context,
5661 const char* uri,
5662 uint32_t headersCount,
5663 const char* const* headersKeys,
5664 const char* const* headersValues,
5665 int32_t afterPlugins)
5666 {
5667 _OrthancPluginRestApiGet2 params;
5668 params.target = target;
5669 params.uri = uri;
5670 params.headersCount = headersCount;
5671 params.headersKeys = headersKeys;
5672 params.headersValues = headersValues;
5673 params.afterPlugins = afterPlugins;
5674
5675 return context->InvokeService(context, _OrthancPluginService_RestApiGet2, &params);
5676 }
5677
5678
5679
5680 typedef struct
5681 {
5683 } _OrthancPluginWorklistCallback;
5684
5697 OrthancPluginContext* context,
5699 {
5700 _OrthancPluginWorklistCallback params;
5701 params.callback = callback;
5702
5703 return context->InvokeService(context, _OrthancPluginService_RegisterWorklistCallback, &params);
5704 }
5705
5706
5707 typedef struct
5708 {
5710 const OrthancPluginWorklistQuery* query;
5711 const void* dicom;
5712 uint32_t size;
5713 } _OrthancPluginWorklistAnswersOperation;
5714
5741 OrthancPluginContext* context,
5743 const OrthancPluginWorklistQuery* query,
5744 const void* dicom,
5745 uint32_t size)
5746 {
5747 _OrthancPluginWorklistAnswersOperation params;
5748 params.answers = answers;
5749 params.query = query;
5750 params.dicom = dicom;
5751 params.size = size;
5752
5753 return context->InvokeService(context, _OrthancPluginService_WorklistAddAnswer, &params);
5754 }
5755
5756
5771 OrthancPluginContext* context,
5773 {
5774 _OrthancPluginWorklistAnswersOperation params;
5775 params.answers = answers;
5776 params.query = NULL;
5777 params.dicom = NULL;
5778 params.size = 0;
5779
5780 return context->InvokeService(context, _OrthancPluginService_WorklistMarkIncomplete, &params);
5781 }
5782
5783
5784 typedef struct
5785 {
5786 const OrthancPluginWorklistQuery* query;
5787 const void* dicom;
5788 uint32_t size;
5789 int32_t* isMatch;
5791 } _OrthancPluginWorklistQueryOperation;
5792
5808 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginWorklistIsMatch(
5809 OrthancPluginContext* context,
5810 const OrthancPluginWorklistQuery* query,
5811 const void* dicom,
5812 uint32_t size)
5813 {
5814 int32_t isMatch = 0;
5815
5816 _OrthancPluginWorklistQueryOperation params;
5817 params.query = query;
5818 params.dicom = dicom;
5819 params.size = size;
5820 params.isMatch = &isMatch;
5821 params.target = NULL;
5822
5823 if (context->InvokeService(context, _OrthancPluginService_WorklistIsMatch, &params) == OrthancPluginErrorCode_Success)
5824 {
5825 return isMatch;
5826 }
5827 else
5828 {
5829 /* Error: Assume non-match */
5830 return 0;
5831 }
5832 }
5833
5834
5848 OrthancPluginContext* context,
5850 const OrthancPluginWorklistQuery* query)
5851 {
5852 _OrthancPluginWorklistQueryOperation params;
5853 params.query = query;
5854 params.dicom = NULL;
5855 params.size = 0;
5856 params.isMatch = NULL;
5857 params.target = target;
5858
5859 return context->InvokeService(context, _OrthancPluginService_WorklistGetDicomQuery, &params);
5860 }
5861
5862
5874 OrthancPluginContext* context,
5875 const OrthancPluginDicomInstance* instance)
5876 {
5878
5879 _OrthancPluginAccessDicomInstance params;
5880 memset(&params, 0, sizeof(params));
5881 params.resultOrigin = &origin;
5882 params.instance = instance;
5883
5884 if (context->InvokeService(context, _OrthancPluginService_GetInstanceOrigin, &params) != OrthancPluginErrorCode_Success)
5885 {
5886 /* Error */
5888 }
5889 else
5890 {
5891 return origin;
5892 }
5893 }
5894
5895
5896 typedef struct
5897 {
5899 const char* json;
5900 const OrthancPluginImage* pixelData;
5902 } _OrthancPluginCreateDicom;
5903
5930 OrthancPluginContext* context,
5932 const char* json,
5933 const OrthancPluginImage* pixelData,
5935 {
5936 _OrthancPluginCreateDicom params;
5937 params.target = target;
5938 params.json = json;
5939 params.pixelData = pixelData;
5940 params.flags = flags;
5941
5942 return context->InvokeService(context, _OrthancPluginService_CreateDicom, &params);
5943 }
5944
5945
5946 typedef struct
5947 {
5949 } _OrthancPluginDecodeImageCallback;
5950
5966 OrthancPluginContext* context,
5968 {
5969 _OrthancPluginDecodeImageCallback params;
5970 params.callback = callback;
5971
5972 return context->InvokeService(context, _OrthancPluginService_RegisterDecodeImageCallback, &params);
5973 }
5974
5975
5976
5977 typedef struct
5978 {
5979 OrthancPluginImage** target;
5981 uint32_t width;
5982 uint32_t height;
5983 uint32_t pitch;
5984 void* buffer;
5985 const void* constBuffer;
5986 uint32_t bufferSize;
5987 uint32_t frameIndex;
5988 } _OrthancPluginCreateImage;
5989
5990
6004 OrthancPluginContext* context,
6006 uint32_t width,
6007 uint32_t height)
6008 {
6009 OrthancPluginImage* target = NULL;
6010
6011 _OrthancPluginCreateImage params;
6012 memset(&params, 0, sizeof(params));
6013 params.target = &target;
6014 params.format = format;
6015 params.width = width;
6016 params.height = height;
6017
6018 if (context->InvokeService(context, _OrthancPluginService_CreateImage, &params) != OrthancPluginErrorCode_Success)
6019 {
6020 return NULL;
6021 }
6022 else
6023 {
6024 return target;
6025 }
6026 }
6027
6028
6047 OrthancPluginContext* context,
6049 uint32_t width,
6050 uint32_t height,
6051 uint32_t pitch,
6052 void* buffer)
6053 {
6054 OrthancPluginImage* target = NULL;
6055
6056 _OrthancPluginCreateImage params;
6057 memset(&params, 0, sizeof(params));
6058 params.target = &target;
6059 params.format = format;
6060 params.width = width;
6061 params.height = height;
6062 params.pitch = pitch;
6063 params.buffer = buffer;
6064
6065 if (context->InvokeService(context, _OrthancPluginService_CreateImageAccessor, &params) != OrthancPluginErrorCode_Success)
6066 {
6067 return NULL;
6068 }
6069 else
6070 {
6071 return target;
6072 }
6073 }
6074
6075
6076
6093 OrthancPluginContext* context,
6094 const void* buffer,
6095 uint32_t bufferSize,
6096 uint32_t frameIndex)
6097 {
6098 OrthancPluginImage* target = NULL;
6099
6100 _OrthancPluginCreateImage params;
6101 memset(&params, 0, sizeof(params));
6102 params.target = &target;
6103 params.constBuffer = buffer;
6104 params.bufferSize = bufferSize;
6105 params.frameIndex = frameIndex;
6106
6107 if (context->InvokeService(context, _OrthancPluginService_DecodeDicomImage, &params) != OrthancPluginErrorCode_Success)
6108 {
6109 return NULL;
6110 }
6111 else
6112 {
6113 return target;
6114 }
6115 }
6116
6117
6118
6119 typedef struct
6120 {
6121 char** result;
6122 const void* buffer;
6123 uint32_t size;
6124 } _OrthancPluginComputeHash;
6125
6138 ORTHANC_PLUGIN_INLINE char* OrthancPluginComputeMd5(
6139 OrthancPluginContext* context,
6140 const void* buffer,
6141 uint32_t size)
6142 {
6143 char* result;
6144
6145 _OrthancPluginComputeHash params;
6146 params.result = &result;
6147 params.buffer = buffer;
6148 params.size = size;
6149
6150 if (context->InvokeService(context, _OrthancPluginService_ComputeMd5, &params) != OrthancPluginErrorCode_Success)
6151 {
6152 /* Error */
6153 return NULL;
6154 }
6155 else
6156 {
6157 return result;
6158 }
6159 }
6160
6161
6174 ORTHANC_PLUGIN_INLINE char* OrthancPluginComputeSha1(
6175 OrthancPluginContext* context,
6176 const void* buffer,
6177 uint32_t size)
6178 {
6179 char* result;
6180
6181 _OrthancPluginComputeHash params;
6182 params.result = &result;
6183 params.buffer = buffer;
6184 params.size = size;
6185
6186 if (context->InvokeService(context, _OrthancPluginService_ComputeSha1, &params) != OrthancPluginErrorCode_Success)
6187 {
6188 /* Error */
6189 return NULL;
6190 }
6191 else
6192 {
6193 return result;
6194 }
6195 }
6196
6197
6198
6199 typedef struct
6200 {
6202 const char* name;
6203 } _OrthancPluginLookupDictionary;
6204
6221 OrthancPluginContext* context,
6223 const char* name)
6224 {
6225 _OrthancPluginLookupDictionary params;
6226 params.target = target;
6227 params.name = name;
6228 return context->InvokeService(context, _OrthancPluginService_LookupDictionary, &params);
6229 }
6230
6231
6232
6233 typedef struct
6234 {
6236 const void* answer;
6237 uint32_t answerSize;
6238 uint32_t headersCount;
6239 const char* const* headersKeys;
6240 const char* const* headersValues;
6241 } _OrthancPluginSendMultipartItem2;
6242
6263 ORTHANC_PLUGIN_SINCE_SDK("1.0.0")
6265 OrthancPluginContext* context,
6267 const void* answer,
6268 uint32_t answerSize,
6269 uint32_t headersCount,
6270 const char* const* headersKeys,
6271 const char* const* headersValues)
6272 {
6273 _OrthancPluginSendMultipartItem2 params;
6274 params.output = output;
6275 params.answer = answer;
6276 params.answerSize = answerSize;
6277 params.headersCount = headersCount;
6278 params.headersKeys = headersKeys;
6279 params.headersValues = headersValues;
6280
6281 return context->InvokeService(context, _OrthancPluginService_SendMultipartItem2, &params);
6282 }
6283
6284
6285 typedef struct
6286 {
6288 } _OrthancPluginIncomingHttpRequestFilter;
6289
6302 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6303 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter(
6304 OrthancPluginContext* context,
6306 {
6307 _OrthancPluginIncomingHttpRequestFilter params;
6308 params.callback = callback;
6309
6310 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingHttpRequestFilter, &params);
6311 }
6312
6313
6314
6315 typedef struct
6316 {
6317 OrthancPluginMemoryBuffer* answerBody;
6318 OrthancPluginMemoryBuffer* answerHeaders;
6319 uint16_t* httpStatus;
6321 const char* url;
6322 uint32_t headersCount;
6323 const char* const* headersKeys;
6324 const char* const* headersValues;
6325 const void* body;
6326 uint32_t bodySize;
6327 const char* username;
6328 const char* password;
6329 uint32_t timeout;
6330 const char* certificateFile;
6331 const char* certificateKeyFile;
6332 const char* certificateKeyPassword;
6333 uint8_t pkcs11;
6334 } _OrthancPluginCallHttpClient2;
6335
6336
6337
6378 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6380 OrthancPluginContext* context,
6381 OrthancPluginMemoryBuffer* answerBody,
6382 OrthancPluginMemoryBuffer* answerHeaders,
6383 uint16_t* httpStatus,
6385 const char* url,
6386 uint32_t headersCount,
6387 const char* const* headersKeys,
6388 const char* const* headersValues,
6389 const void* body,
6390 uint32_t bodySize,
6391 const char* username,
6392 const char* password,
6393 uint32_t timeout,
6394 const char* certificateFile,
6395 const char* certificateKeyFile,
6396 const char* certificateKeyPassword,
6397 uint8_t pkcs11)
6398 {
6399 _OrthancPluginCallHttpClient2 params;
6400 memset(&params, 0, sizeof(params));
6401
6402 params.answerBody = answerBody;
6403 params.answerHeaders = answerHeaders;
6404 params.httpStatus = httpStatus;
6405 params.method = method;
6406 params.url = url;
6407 params.headersCount = headersCount;
6408 params.headersKeys = headersKeys;
6409 params.headersValues = headersValues;
6410 params.body = body;
6411 params.bodySize = bodySize;
6412 params.username = username;
6413 params.password = password;
6414 params.timeout = timeout;
6415 params.certificateFile = certificateFile;
6416 params.certificateKeyFile = certificateKeyFile;
6417 params.certificateKeyPassword = certificateKeyPassword;
6418 params.pkcs11 = pkcs11;
6419
6420 return context->InvokeService(context, _OrthancPluginService_CallHttpClient2, &params);
6421 }
6422
6423
6434 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6435 ORTHANC_PLUGIN_INLINE char* OrthancPluginGenerateUuid(
6436 OrthancPluginContext* context)
6437 {
6438 char* result;
6439
6440 _OrthancPluginRetrieveDynamicString params;
6441 params.result = &result;
6442 params.argument = NULL;
6443
6444 if (context->InvokeService(context, _OrthancPluginService_GenerateUuid, &params) != OrthancPluginErrorCode_Success)
6445 {
6446 /* Error */
6447 return NULL;
6448 }
6449 else
6450 {
6451 return result;
6452 }
6453 }
6454
6455
6456
6457
6458 typedef struct
6459 {
6461 } _OrthancPluginFindCallback;
6462
6474 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6476 OrthancPluginContext* context,
6478 {
6479 _OrthancPluginFindCallback params;
6480 params.callback = callback;
6481
6482 return context->InvokeService(context, _OrthancPluginService_RegisterFindCallback, &params);
6483 }
6484
6485
6486 typedef struct
6487 {
6488 OrthancPluginFindAnswers *answers;
6489 const OrthancPluginFindQuery *query;
6490 const void *dicom;
6491 uint32_t size;
6492 uint32_t index;
6493 uint32_t *resultUint32;
6494 uint16_t *resultGroup;
6495 uint16_t *resultElement;
6496 char **resultString;
6497 } _OrthancPluginFindOperation;
6498
6514 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6516 OrthancPluginContext* context,
6517 OrthancPluginFindAnswers* answers,
6518 const void* dicom,
6519 uint32_t size)
6520 {
6521 _OrthancPluginFindOperation params;
6522 memset(&params, 0, sizeof(params));
6523 params.answers = answers;
6524 params.dicom = dicom;
6525 params.size = size;
6526
6527 return context->InvokeService(context, _OrthancPluginService_FindAddAnswer, &params);
6528 }
6529
6530
6544 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6546 OrthancPluginContext* context,
6547 OrthancPluginFindAnswers* answers)
6548 {
6549 _OrthancPluginFindOperation params;
6550 memset(&params, 0, sizeof(params));
6551 params.answers = answers;
6552
6553 return context->InvokeService(context, _OrthancPluginService_FindMarkIncomplete, &params);
6554 }
6555
6556
6557
6569 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6570 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFindQuerySize(
6571 OrthancPluginContext* context,
6572 const OrthancPluginFindQuery* query)
6573 {
6574 uint32_t count = 0;
6575
6576 _OrthancPluginFindOperation params;
6577 memset(&params, 0, sizeof(params));
6578 params.query = query;
6579 params.resultUint32 = &count;
6580
6581 if (context->InvokeService(context, _OrthancPluginService_GetFindQuerySize, &params) != OrthancPluginErrorCode_Success)
6582 {
6583 /* Error */
6584 return 0;
6585 }
6586 else
6587 {
6588 return count;
6589 }
6590 }
6591
6592
6607 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6609 OrthancPluginContext* context,
6610 uint16_t* group,
6611 uint16_t* element,
6612 const OrthancPluginFindQuery* query,
6613 uint32_t index)
6614 {
6615 _OrthancPluginFindOperation params;
6616 memset(&params, 0, sizeof(params));
6617 params.query = query;
6618 params.index = index;
6619 params.resultGroup = group;
6620 params.resultElement = element;
6621
6622 return context->InvokeService(context, _OrthancPluginService_GetFindQueryTag, &params);
6623 }
6624
6625
6639 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6640 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetFindQueryTagName(
6641 OrthancPluginContext* context,
6642 const OrthancPluginFindQuery* query,
6643 uint32_t index)
6644 {
6645 char* result;
6646
6647 _OrthancPluginFindOperation params;
6648 memset(&params, 0, sizeof(params));
6649 params.query = query;
6650 params.index = index;
6651 params.resultString = &result;
6652
6653 if (context->InvokeService(context, _OrthancPluginService_GetFindQueryTagName, &params) != OrthancPluginErrorCode_Success)
6654 {
6655 /* Error */
6656 return NULL;
6657 }
6658 else
6659 {
6660 return result;
6661 }
6662 }
6663
6664
6678 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6679 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetFindQueryValue(
6680 OrthancPluginContext* context,
6681 const OrthancPluginFindQuery* query,
6682 uint32_t index)
6683 {
6684 char* result;
6685
6686 _OrthancPluginFindOperation params;
6687 memset(&params, 0, sizeof(params));
6688 params.query = query;
6689 params.index = index;
6690 params.resultString = &result;
6691
6692 if (context->InvokeService(context, _OrthancPluginService_GetFindQueryValue, &params) != OrthancPluginErrorCode_Success)
6693 {
6694 /* Error */
6695 return NULL;
6696 }
6697 else
6698 {
6699 return result;
6700 }
6701 }
6702
6703
6704
6705
6706 typedef struct
6707 {
6709 OrthancPluginGetMoveSize getMoveSize;
6710 OrthancPluginApplyMove applyMove;
6711 OrthancPluginFreeMove freeMove;
6712 } _OrthancPluginMoveCallback;
6713
6727 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6729 OrthancPluginContext* context,
6731 OrthancPluginGetMoveSize getMoveSize,
6732 OrthancPluginApplyMove applyMove,
6733 OrthancPluginFreeMove freeMove)
6734 {
6735 _OrthancPluginMoveCallback params;
6736 params.callback = callback;
6737 params.getMoveSize = getMoveSize;
6738 params.applyMove = applyMove;
6739 params.freeMove = freeMove;
6740
6741 return context->InvokeService(context, _OrthancPluginService_RegisterMoveCallback, &params);
6742 }
6743
6744
6745
6746 typedef struct
6747 {
6748 OrthancPluginFindMatcher** target;
6749 const void* query;
6750 uint32_t size;
6751 } _OrthancPluginCreateFindMatcher;
6752
6753
6767 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6769 OrthancPluginContext* context,
6770 const void* query,
6771 uint32_t size)
6772 {
6773 OrthancPluginFindMatcher* target = NULL;
6774
6775 _OrthancPluginCreateFindMatcher params;
6776 memset(&params, 0, sizeof(params));
6777 params.target = &target;
6778 params.query = query;
6779 params.size = size;
6780
6781 if (context->InvokeService(context, _OrthancPluginService_CreateFindMatcher, &params) != OrthancPluginErrorCode_Success)
6782 {
6783 return NULL;
6784 }
6785 else
6786 {
6787 return target;
6788 }
6789 }
6790
6791
6792 typedef struct
6793 {
6794 OrthancPluginFindMatcher* matcher;
6795 } _OrthancPluginFreeFindMatcher;
6796
6806 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6807 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeFindMatcher(
6808 OrthancPluginContext* context,
6809 OrthancPluginFindMatcher* matcher)
6810 {
6811 _OrthancPluginFreeFindMatcher params;
6812 params.matcher = matcher;
6813
6814 context->InvokeService(context, _OrthancPluginService_FreeFindMatcher, &params);
6815 }
6816
6817
6818 typedef struct
6819 {
6820 const OrthancPluginFindMatcher* matcher;
6821 const void* dicom;
6822 uint32_t size;
6823 int32_t* isMatch;
6824 } _OrthancPluginFindMatcherIsMatch;
6825
6840 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6841 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginFindMatcherIsMatch(
6842 OrthancPluginContext* context,
6843 const OrthancPluginFindMatcher* matcher,
6844 const void* dicom,
6845 uint32_t size)
6846 {
6847 int32_t isMatch = 0;
6848
6849 _OrthancPluginFindMatcherIsMatch params;
6850 params.matcher = matcher;
6851 params.dicom = dicom;
6852 params.size = size;
6853 params.isMatch = &isMatch;
6854
6855 if (context->InvokeService(context, _OrthancPluginService_FindMatcherIsMatch, &params) == OrthancPluginErrorCode_Success)
6856 {
6857 return isMatch;
6858 }
6859 else
6860 {
6861 /* Error: Assume non-match */
6862 return 0;
6863 }
6864 }
6865
6866
6867 typedef struct
6868 {
6870 } _OrthancPluginIncomingHttpRequestFilter2;
6871
6883 ORTHANC_PLUGIN_SINCE_SDK("1.3.0")
6885 OrthancPluginContext* context,
6887 {
6888 _OrthancPluginIncomingHttpRequestFilter2 params;
6889 params.callback = callback;
6890
6891 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingHttpRequestFilter2, &params);
6892 }
6893
6894
6895
6896 typedef struct
6897 {
6898 OrthancPluginPeers** peers;
6899 } _OrthancPluginGetPeers;
6900
6912 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6914 OrthancPluginContext* context)
6915 {
6916 OrthancPluginPeers* peers = NULL;
6917
6918 _OrthancPluginGetPeers params;
6919 memset(&params, 0, sizeof(params));
6920 params.peers = &peers;
6921
6922 if (context->InvokeService(context, _OrthancPluginService_GetPeers, &params) != OrthancPluginErrorCode_Success)
6923 {
6924 return NULL;
6925 }
6926 else
6927 {
6928 return peers;
6929 }
6930 }
6931
6932
6933 typedef struct
6934 {
6935 OrthancPluginPeers* peers;
6936 } _OrthancPluginFreePeers;
6937
6947 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6948 ORTHANC_PLUGIN_INLINE void OrthancPluginFreePeers(
6949 OrthancPluginContext* context,
6950 OrthancPluginPeers* peers)
6951 {
6952 _OrthancPluginFreePeers params;
6953 params.peers = peers;
6954
6955 context->InvokeService(context, _OrthancPluginService_FreePeers, &params);
6956 }
6957
6958
6959 typedef struct
6960 {
6961 uint32_t* target;
6962 const OrthancPluginPeers* peers;
6963 } _OrthancPluginGetPeersCount;
6964
6978 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6979 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetPeersCount(
6980 OrthancPluginContext* context,
6981 const OrthancPluginPeers* peers)
6982 {
6983 uint32_t target = 0;
6984
6985 _OrthancPluginGetPeersCount params;
6986 memset(&params, 0, sizeof(params));
6987 params.target = &target;
6988 params.peers = peers;
6989
6990 if (context->InvokeService(context, _OrthancPluginService_GetPeersCount, &params) != OrthancPluginErrorCode_Success)
6991 {
6992 /* Error */
6993 return 0;
6994 }
6995 else
6996 {
6997 return target;
6998 }
6999 }
7000
7001
7002 typedef struct
7003 {
7004 const char** target;
7005 const OrthancPluginPeers* peers;
7006 uint32_t peerIndex;
7007 const char* userProperty;
7008 } _OrthancPluginGetPeerProperty;
7009
7027 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7028 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerName(
7029 OrthancPluginContext* context,
7030 const OrthancPluginPeers* peers,
7031 uint32_t peerIndex)
7032 {
7033 const char* target = NULL;
7034
7035 _OrthancPluginGetPeerProperty params;
7036 memset(&params, 0, sizeof(params));
7037 params.target = &target;
7038 params.peers = peers;
7039 params.peerIndex = peerIndex;
7040 params.userProperty = NULL;
7041
7042 if (context->InvokeService(context, _OrthancPluginService_GetPeerName, &params) != OrthancPluginErrorCode_Success)
7043 {
7044 /* Error */
7045 return NULL;
7046 }
7047 else
7048 {
7049 return target;
7050 }
7051 }
7052
7053
7069 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7070 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerUrl(
7071 OrthancPluginContext* context,
7072 const OrthancPluginPeers* peers,
7073 uint32_t peerIndex)
7074 {
7075 const char* target = NULL;
7076
7077 _OrthancPluginGetPeerProperty params;
7078 memset(&params, 0, sizeof(params));
7079 params.target = &target;
7080 params.peers = peers;
7081 params.peerIndex = peerIndex;
7082 params.userProperty = NULL;
7083
7084 if (context->InvokeService(context, _OrthancPluginService_GetPeerUrl, &params) != OrthancPluginErrorCode_Success)
7085 {
7086 /* Error */
7087 return NULL;
7088 }
7089 else
7090 {
7091 return target;
7092 }
7093 }
7094
7095
7096
7116 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7117 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerUserProperty(
7118 OrthancPluginContext* context,
7119 const OrthancPluginPeers* peers,
7120 uint32_t peerIndex,
7121 const char* userProperty)
7122 {
7123 const char* target = NULL;
7124
7125 _OrthancPluginGetPeerProperty params;
7126 memset(&params, 0, sizeof(params));
7127 params.target = &target;
7128 params.peers = peers;
7129 params.peerIndex = peerIndex;
7130 params.userProperty = userProperty;
7131
7132 if (context->InvokeService(context, _OrthancPluginService_GetPeerUserProperty, &params) != OrthancPluginErrorCode_Success)
7133 {
7134 /* No such user property */
7135 return NULL;
7136 }
7137 else
7138 {
7139 return target;
7140 }
7141 }
7142
7143
7144
7145 typedef struct
7146 {
7147 OrthancPluginMemoryBuffer* answerBody;
7148 OrthancPluginMemoryBuffer* answerHeaders;
7149 uint16_t* httpStatus;
7150 const OrthancPluginPeers* peers;
7151 uint32_t peerIndex;
7153 const char* uri;
7154 uint32_t additionalHeadersCount;
7155 const char* const* additionalHeadersKeys;
7156 const char* const* additionalHeadersValues;
7157 const void* body;
7158 uint32_t bodySize;
7159 uint32_t timeout;
7160 } _OrthancPluginCallPeerApi;
7161
7198 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7200 OrthancPluginContext* context,
7201 OrthancPluginMemoryBuffer* answerBody,
7202 OrthancPluginMemoryBuffer* answerHeaders,
7203 uint16_t* httpStatus,
7204 const OrthancPluginPeers* peers,
7205 uint32_t peerIndex,
7207 const char* uri,
7208 uint32_t additionalHeadersCount,
7209 const char* const* additionalHeadersKeys,
7210 const char* const* additionalHeadersValues,
7211 const void* body,
7212 uint32_t bodySize,
7213 uint32_t timeout)
7214 {
7215 _OrthancPluginCallPeerApi params;
7216 memset(&params, 0, sizeof(params));
7217
7218 params.answerBody = answerBody;
7219 params.answerHeaders = answerHeaders;
7220 params.httpStatus = httpStatus;
7221 params.peers = peers;
7222 params.peerIndex = peerIndex;
7223 params.method = method;
7224 params.uri = uri;
7225 params.additionalHeadersCount = additionalHeadersCount;
7226 params.additionalHeadersKeys = additionalHeadersKeys;
7227 params.additionalHeadersValues = additionalHeadersValues;
7228 params.body = body;
7229 params.bodySize = bodySize;
7230 params.timeout = timeout;
7231
7232 return context->InvokeService(context, _OrthancPluginService_CallPeerApi, &params);
7233 }
7234
7235
7236
7237
7238
7239 typedef struct
7240 {
7241 OrthancPluginJob** target;
7242 void *job;
7243 OrthancPluginJobFinalize finalize;
7244 const char *type;
7245 OrthancPluginJobGetProgress getProgress;
7246 OrthancPluginJobGetContent getContent;
7247 OrthancPluginJobGetSerialized getSerialized;
7251 } _OrthancPluginCreateJob;
7252
7285 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7286 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginJob *OrthancPluginCreateJob(
7287 OrthancPluginContext *context,
7288 void *job,
7289 OrthancPluginJobFinalize finalize,
7290 const char *type,
7291 OrthancPluginJobGetProgress getProgress,
7292 OrthancPluginJobGetContent getContent,
7293 OrthancPluginJobGetSerialized getSerialized,
7297 {
7298 OrthancPluginJob* target = NULL;
7299
7300 _OrthancPluginCreateJob params;
7301 memset(&params, 0, sizeof(params));
7302
7303 params.target = &target;
7304 params.job = job;
7305 params.finalize = finalize;
7306 params.type = type;
7307 params.getProgress = getProgress;
7308 params.getContent = getContent;
7309 params.getSerialized = getSerialized;
7310 params.step = step;
7311 params.stop = stop;
7312 params.reset = reset;
7313
7314 if (context->InvokeService(context, _OrthancPluginService_CreateJob, &params) != OrthancPluginErrorCode_Success ||
7315 target == NULL)
7316 {
7317 /* Error */
7318 return NULL;
7319 }
7320 else
7321 {
7322 return target;
7323 }
7324 }
7325
7326
7327 typedef struct
7328 {
7329 OrthancPluginJob** target;
7330 void *job;
7331 OrthancPluginJobFinalize finalize;
7332 const char *type;
7333 OrthancPluginJobGetProgress getProgress;
7334 OrthancPluginJobGetContent2 getContent;
7335 OrthancPluginJobGetSerialized2 getSerialized;
7339 } _OrthancPluginCreateJob2;
7340
7372 ORTHANC_PLUGIN_SINCE_SDK("1.11.3")
7374 OrthancPluginContext *context,
7375 void *job,
7376 OrthancPluginJobFinalize finalize,
7377 const char *type,
7378 OrthancPluginJobGetProgress getProgress,
7379 OrthancPluginJobGetContent2 getContent,
7380 OrthancPluginJobGetSerialized2 getSerialized,
7384 {
7385 OrthancPluginJob* target = NULL;
7386
7387 _OrthancPluginCreateJob2 params;
7388 memset(&params, 0, sizeof(params));
7389
7390 params.target = &target;
7391 params.job = job;
7392 params.finalize = finalize;
7393 params.type = type;
7394 params.getProgress = getProgress;
7395 params.getContent = getContent;
7396 params.getSerialized = getSerialized;
7397 params.step = step;
7398 params.stop = stop;
7399 params.reset = reset;
7400
7401 if (context->InvokeService(context, _OrthancPluginService_CreateJob2, &params) != OrthancPluginErrorCode_Success ||
7402 target == NULL)
7403 {
7404 /* Error */
7405 return NULL;
7406 }
7407 else
7408 {
7409 return target;
7410 }
7411 }
7412
7413
7414 typedef struct
7415 {
7416 OrthancPluginJob* job;
7417 } _OrthancPluginFreeJob;
7418
7428 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7429 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeJob(
7430 OrthancPluginContext* context,
7431 OrthancPluginJob* job)
7432 {
7433 _OrthancPluginFreeJob params;
7434 params.job = job;
7435
7436 context->InvokeService(context, _OrthancPluginService_FreeJob, &params);
7437 }
7438
7439
7440
7441 typedef struct
7442 {
7443 char** resultId;
7444 OrthancPluginJob *job;
7445 int32_t priority;
7446 } _OrthancPluginSubmitJob;
7447
7461 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7462 ORTHANC_PLUGIN_INLINE char *OrthancPluginSubmitJob(
7463 OrthancPluginContext *context,
7464 OrthancPluginJob *job,
7465 int32_t priority)
7466 {
7467 char* resultId = NULL;
7468
7469 _OrthancPluginSubmitJob params;
7470 memset(&params, 0, sizeof(params));
7471
7472 params.resultId = &resultId;
7473 params.job = job;
7474 params.priority = priority;
7475
7476 if (context->InvokeService(context, _OrthancPluginService_SubmitJob, &params) != OrthancPluginErrorCode_Success ||
7477 resultId == NULL)
7478 {
7479 /* Error */
7480 return NULL;
7481 }
7482 else
7483 {
7484 return resultId;
7485 }
7486 }
7487
7488
7489
7490 typedef struct
7491 {
7492 OrthancPluginJobsUnserializer unserializer;
7493 } _OrthancPluginJobsUnserializer;
7494
7507 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7508 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterJobsUnserializer(
7509 OrthancPluginContext* context,
7510 OrthancPluginJobsUnserializer unserializer)
7511 {
7512 _OrthancPluginJobsUnserializer params;
7513 params.unserializer = unserializer;
7514
7515 context->InvokeService(context, _OrthancPluginService_RegisterJobsUnserializer, &params);
7516 }
7517
7518
7519
7520 typedef struct
7521 {
7523 const char* details;
7524 uint8_t log;
7525 } _OrthancPluginSetHttpErrorDetails;
7526
7544 ORTHANC_PLUGIN_SINCE_SDK("1.5.0")
7545 ORTHANC_PLUGIN_INLINE void OrthancPluginSetHttpErrorDetails(
7546 OrthancPluginContext* context,
7548 const char* details,
7549 uint8_t log)
7550 {
7551 _OrthancPluginSetHttpErrorDetails params;
7552 params.output = output;
7553 params.details = details;
7554 params.log = log;
7555 context->InvokeService(context, _OrthancPluginService_SetHttpErrorDetails, &params);
7556 }
7557
7558
7559
7560 typedef struct
7561 {
7562 const char** result;
7563 const char* argument;
7564 } _OrthancPluginRetrieveStaticString;
7565
7577 ORTHANC_PLUGIN_SINCE_SDK("1.5.0")
7578 ORTHANC_PLUGIN_INLINE const char* OrthancPluginAutodetectMimeType(
7579 OrthancPluginContext* context,
7580 const char* path)
7581 {
7582 const char* result = NULL;
7583
7584 _OrthancPluginRetrieveStaticString params;
7585 params.result = &result;
7586 params.argument = path;
7587
7588 if (context->InvokeService(context, _OrthancPluginService_AutodetectMimeType, &params) != OrthancPluginErrorCode_Success)
7589 {
7590 /* Error */
7591 return NULL;
7592 }
7593 else
7594 {
7595 return result;
7596 }
7597 }
7598
7599
7600
7601 typedef struct
7602 {
7603 const char* name;
7604 float value;
7606 } _OrthancPluginSetMetricsValue;
7607
7624 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7625 ORTHANC_PLUGIN_INLINE void OrthancPluginSetMetricsValue(
7626 OrthancPluginContext* context,
7627 const char* name,
7628 float value,
7630 {
7631 _OrthancPluginSetMetricsValue params;
7632 params.name = name;
7633 params.value = value;
7634 params.type = type;
7635 context->InvokeService(context, _OrthancPluginService_SetMetricsValue, &params);
7636 }
7637
7638
7639
7640 typedef struct
7641 {
7643 } _OrthancPluginRegisterRefreshMetricsCallback;
7644
7656 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7658 OrthancPluginContext* context,
7660 {
7661 _OrthancPluginRegisterRefreshMetricsCallback params;
7662 params.callback = callback;
7663 context->InvokeService(context, _OrthancPluginService_RegisterRefreshMetricsCallback, &params);
7664 }
7665
7666
7667
7668
7669 typedef struct
7670 {
7671 char** target;
7672 const void* dicom;
7673 uint32_t dicomSize;
7675 } _OrthancPluginEncodeDicomWeb;
7676
7693 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7694 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson(
7695 OrthancPluginContext* context,
7696 const void* dicom,
7697 uint32_t dicomSize,
7699 {
7700 char* target = NULL;
7701
7702 _OrthancPluginEncodeDicomWeb params;
7703 params.target = &target;
7704 params.dicom = dicom;
7705 params.dicomSize = dicomSize;
7706 params.callback = callback;
7707
7708 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebJson, &params) != OrthancPluginErrorCode_Success)
7709 {
7710 /* Error */
7711 return NULL;
7712 }
7713 else
7714 {
7715 return target;
7716 }
7717 }
7718
7719
7736 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7737 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml(
7738 OrthancPluginContext* context,
7739 const void* dicom,
7740 uint32_t dicomSize,
7742 {
7743 char* target = NULL;
7744
7745 _OrthancPluginEncodeDicomWeb params;
7746 params.target = &target;
7747 params.dicom = dicom;
7748 params.dicomSize = dicomSize;
7749 params.callback = callback;
7750
7751 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebXml, &params) != OrthancPluginErrorCode_Success)
7752 {
7753 /* Error */
7754 return NULL;
7755 }
7756 else
7757 {
7758 return target;
7759 }
7760 }
7761
7762
7763
7764 typedef struct
7765 {
7766 char** target;
7767 const void* dicom;
7768 uint32_t dicomSize;
7770 void* payload;
7771 } _OrthancPluginEncodeDicomWeb2;
7772
7789 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
7790 ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson2(
7791 OrthancPluginContext* context,
7792 const void* dicom,
7793 uint32_t dicomSize,
7795 void* payload)
7796 {
7797 char* target = NULL;
7798
7799 _OrthancPluginEncodeDicomWeb2 params;
7800 params.target = &target;
7801 params.dicom = dicom;
7802 params.dicomSize = dicomSize;
7803 params.callback = callback;
7804 params.payload = payload;
7805
7806 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebJson2, &params) != OrthancPluginErrorCode_Success)
7807 {
7808 /* Error */
7809 return NULL;
7810 }
7811 else
7812 {
7813 return target;
7814 }
7815 }
7816
7817
7834 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
7835 ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml2(
7836 OrthancPluginContext* context,
7837 const void* dicom,
7838 uint32_t dicomSize,
7840 void* payload)
7841 {
7842 char* target = NULL;
7843
7844 _OrthancPluginEncodeDicomWeb2 params;
7845 params.target = &target;
7846 params.dicom = dicom;
7847 params.dicomSize = dicomSize;
7848 params.callback = callback;
7849 params.payload = payload;
7850
7851 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebXml2, &params) != OrthancPluginErrorCode_Success)
7852 {
7853 /* Error */
7854 return NULL;
7855 }
7856 else
7857 {
7858 return target;
7859 }
7860 }
7861
7862
7863
7880 void* answer,
7881 const char* key,
7882 const char* value);
7883
7884
7901 void* answer,
7902 const void* data,
7903 uint32_t size);
7904
7905
7920 typedef uint8_t (*OrthancPluginChunkedClientRequestIsDone) (void* request);
7921
7922
7938
7939
7953 typedef const void* (*OrthancPluginChunkedClientRequestGetChunkData) (void* request);
7954
7955
7969 typedef uint32_t (*OrthancPluginChunkedClientRequestGetChunkSize) (void* request);
7970
7971
7972 typedef struct
7973 {
7974 void* answer;
7977 uint16_t* httpStatus;
7979 const char* url;
7980 uint32_t headersCount;
7981 const char* const* headersKeys;
7982 const char* const* headersValues;
7983 void* request;
7988 const char* username;
7989 const char* password;
7990 uint32_t timeout;
7991 const char* certificateFile;
7992 const char* certificateKeyFile;
7993 const char* certificateKeyPassword;
7994 uint8_t pkcs11;
7995 } _OrthancPluginChunkedHttpClient;
7996
7997
8048 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8050 OrthancPluginContext* context,
8051 void* answer,
8054 uint16_t* httpStatus,
8056 const char* url,
8057 uint32_t headersCount,
8058 const char* const* headersKeys,
8059 const char* const* headersValues,
8060 void* request,
8065 const char* username,
8066 const char* password,
8067 uint32_t timeout,
8068 const char* certificateFile,
8069 const char* certificateKeyFile,
8070 const char* certificateKeyPassword,
8071 uint8_t pkcs11)
8072 {
8073 _OrthancPluginChunkedHttpClient params;
8074 memset(&params, 0, sizeof(params));
8075
8076 /* In common with OrthancPluginHttpClient() */
8077 params.httpStatus = httpStatus;
8078 params.method = method;
8079 params.url = url;
8080 params.headersCount = headersCount;
8081 params.headersKeys = headersKeys;
8082 params.headersValues = headersValues;
8083 params.username = username;
8084 params.password = password;
8085 params.timeout = timeout;
8086 params.certificateFile = certificateFile;
8087 params.certificateKeyFile = certificateKeyFile;
8088 params.certificateKeyPassword = certificateKeyPassword;
8089 params.pkcs11 = pkcs11;
8090
8091 /* For chunked body/answer */
8092 params.answer = answer;
8093 params.answerAddChunk = answerAddChunk;
8094 params.answerAddHeader = answerAddHeader;
8095 params.request = request;
8096 params.requestIsDone = requestIsDone;
8097 params.requestChunkData = requestChunkData;
8098 params.requestChunkSize = requestChunkSize;
8099 params.requestNext = requestNext;
8100
8101 return context->InvokeService(context, _OrthancPluginService_ChunkedHttpClient, &params);
8102 }
8103
8104
8105
8110 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8111 _OrthancPluginServerChunkedRequestReader_t OrthancPluginServerChunkedRequestReader;
8112
8113
8114
8132 const char* uri,
8133 const OrthancPluginHttpRequest* request);
8134
8135
8151 const void* data,
8152 uint32_t size);
8153
8154
8171 OrthancPluginRestOutput* output);
8172
8173
8189
8190 typedef struct
8191 {
8192 const char* pathRegularExpression;
8193 OrthancPluginRestCallback getHandler;
8195 OrthancPluginRestCallback deleteHandler;
8200 } _OrthancPluginChunkedRestCallback;
8201
8202
8232 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8234 OrthancPluginContext* context,
8235 const char* pathRegularExpression,
8236 OrthancPluginRestCallback getHandler,
8238 OrthancPluginRestCallback deleteHandler,
8243 {
8244 _OrthancPluginChunkedRestCallback params;
8245 params.pathRegularExpression = pathRegularExpression;
8246 params.getHandler = getHandler;
8247 params.postHandler = postHandler;
8248 params.deleteHandler = deleteHandler;
8249 params.putHandler = putHandler;
8250 params.addChunk = addChunk;
8251 params.execute = execute;
8252 params.finalize = finalize;
8253
8254 context->InvokeService(context, _OrthancPluginService_RegisterChunkedRestCallback, &params);
8255 }
8256
8257
8258
8259
8260
8261 typedef struct
8262 {
8263 char** result;
8264 uint16_t group;
8265 uint16_t element;
8266 const char* privateCreator;
8267 } _OrthancPluginGetTagName;
8268
8284 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8285 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetTagName(
8286 OrthancPluginContext* context,
8287 uint16_t group,
8288 uint16_t element,
8289 const char* privateCreator)
8290 {
8291 char* result;
8292
8293 _OrthancPluginGetTagName params;
8294 params.result = &result;
8295 params.group = group;
8296 params.element = element;
8297 params.privateCreator = privateCreator;
8298
8299 if (context->InvokeService(context, _OrthancPluginService_GetTagName, &params) != OrthancPluginErrorCode_Success)
8300 {
8301 /* Error */
8302 return NULL;
8303 }
8304 else
8305 {
8306 return result;
8307 }
8308 }
8309
8310
8311
8341 void** handler /* out */,
8342 const char* jobId,
8343 const char* transactionUid,
8344 const char* const* sopClassUids,
8345 const char* const* sopInstanceUids,
8346 uint32_t countInstances,
8347 const char* remoteAet,
8348 const char* calledAet);
8349
8350
8378 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
8380 void** handler /* out */,
8381 const char* jobId,
8382 const char* transactionUid,
8383 const char* const* sopClassUids,
8384 const char* const* sopInstanceUids,
8385 uint32_t countInstances,
8386 const OrthancPluginDicomConnection* connection);
8387
8388
8400 typedef void (*OrthancPluginStorageCommitmentDestructor) (void* handler);
8401
8402
8423 void* handler,
8424 const char* sopClassUid,
8425 const char* sopInstanceUid);
8426
8427
8428 typedef struct
8429 {
8433 } _OrthancPluginRegisterStorageCommitmentScpCallback;
8434
8448 ORTHANC_PLUGIN_SINCE_SDK("1.6.0")
8450 OrthancPluginContext* context,
8454 {
8455 _OrthancPluginRegisterStorageCommitmentScpCallback params;
8456 params.factory = factory;
8457 params.destructor = destructor;
8458 params.lookup = lookup;
8459 return context->InvokeService(context, _OrthancPluginService_RegisterStorageCommitmentScpCallback, &params);
8460 }
8461
8462
8463
8490 const OrthancPluginDicomInstance* instance);
8491
8492
8493 typedef struct
8494 {
8496 } _OrthancPluginIncomingDicomInstanceFilter;
8497
8510 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8512 OrthancPluginContext* context,
8514 {
8515 _OrthancPluginIncomingDicomInstanceFilter params;
8516 params.callback = callback;
8517
8518 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingDicomInstanceFilter, &params);
8519 }
8520
8521
8553 uint16_t* dimseStatus /* out */,
8554 const OrthancPluginDicomInstance* instance);
8555
8556
8557 typedef struct
8558 {
8560 } _OrthancPluginIncomingCStoreInstanceFilter;
8561
8574 ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
8576 OrthancPluginContext* context,
8578 {
8579 _OrthancPluginIncomingCStoreInstanceFilter params;
8580 params.callback = callback;
8581
8582 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingCStoreInstanceFilter, &params);
8583 }
8584
8621 OrthancPluginMemoryBuffer64* modifiedDicomBuffer,
8622 const void* receivedDicomBuffer,
8623 uint64_t receivedDicomBufferSize,
8625
8626
8627 typedef struct
8628 {
8630 } _OrthancPluginReceivedInstanceCallback;
8631
8652 ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
8654 OrthancPluginContext* context,
8656 {
8657 _OrthancPluginReceivedInstanceCallback params;
8658 params.callback = callback;
8659
8660 return context->InvokeService(context, _OrthancPluginService_RegisterReceivedInstanceCallback, &params);
8661 }
8662
8676 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8678 OrthancPluginContext* context,
8679 const OrthancPluginDicomInstance* instance)
8680 {
8681 char* result;
8682
8683 _OrthancPluginAccessDicomInstance params;
8684 memset(&params, 0, sizeof(params));
8685 params.resultStringToFree = &result;
8686 params.instance = instance;
8687
8688 if (context->InvokeService(context, _OrthancPluginService_GetInstanceTransferSyntaxUid, &params) != OrthancPluginErrorCode_Success)
8689 {
8690 /* Error */
8691 return NULL;
8692 }
8693 else
8694 {
8695 return result;
8696 }
8697 }
8698
8699
8712 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8713 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginHasInstancePixelData(
8714 OrthancPluginContext* context,
8715 const OrthancPluginDicomInstance* instance)
8716 {
8717 int64_t hasPixelData;
8718
8719 _OrthancPluginAccessDicomInstance params;
8720 memset(&params, 0, sizeof(params));
8721 params.resultInt64 = &hasPixelData;
8722 params.instance = instance;
8723
8724 if (context->InvokeService(context, _OrthancPluginService_HasInstancePixelData, &params) != OrthancPluginErrorCode_Success ||
8725 hasPixelData < 0 ||
8726 hasPixelData > 1)
8727 {
8728 /* Error */
8729 return -1;
8730 }
8731 else
8732 {
8733 return (hasPixelData != 0);
8734 }
8735 }
8736
8737
8738
8739
8740
8741
8742 typedef struct
8743 {
8745 const void* buffer;
8746 uint32_t size;
8747 const char* transferSyntax;
8748 } _OrthancPluginCreateDicomInstance;
8749
8763 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8765 OrthancPluginContext* context,
8766 const void* buffer,
8767 uint32_t size)
8768 {
8769 OrthancPluginDicomInstance* target = NULL;
8770
8771 _OrthancPluginCreateDicomInstance params;
8772 params.target = &target;
8773 params.buffer = buffer;
8774 params.size = size;
8775
8776 if (context->InvokeService(context, _OrthancPluginService_CreateDicomInstance, &params) != OrthancPluginErrorCode_Success)
8777 {
8778 /* Error */
8779 return NULL;
8780 }
8781 else
8782 {
8783 return target;
8784 }
8785 }
8786
8787 typedef struct
8788 {
8790 } _OrthancPluginFreeDicomInstance;
8791
8802 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8803 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeDicomInstance(
8804 OrthancPluginContext* context,
8806 {
8807 _OrthancPluginFreeDicomInstance params;
8808 params.dicom = dicom;
8809
8810 context->InvokeService(context, _OrthancPluginService_FreeDicomInstance, &params);
8811 }
8812
8813
8814 typedef struct
8815 {
8816 uint32_t* targetUint32;
8817 OrthancPluginMemoryBuffer* targetBuffer;
8818 OrthancPluginImage** targetImage;
8819 char** targetStringToFree;
8820 const OrthancPluginDicomInstance* instance;
8821 uint32_t frameIndex;
8824 uint32_t maxStringLength;
8825 OrthancPluginDicomWebBinaryCallback2 dicomWebCallback;
8826 void* dicomWebPayload;
8827 } _OrthancPluginAccessDicomInstance2;
8828
8840 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8841 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetInstanceFramesCount(
8842 OrthancPluginContext* context,
8843 const OrthancPluginDicomInstance* instance)
8844 {
8845 uint32_t count;
8846
8847 _OrthancPluginAccessDicomInstance2 params;
8848 memset(&params, 0, sizeof(params));
8849 params.targetUint32 = &count;
8850 params.instance = instance;
8851
8852 if (context->InvokeService(context, _OrthancPluginService_GetInstanceFramesCount, &params) != OrthancPluginErrorCode_Success)
8853 {
8854 /* Error */
8855 return 0;
8856 }
8857 else
8858 {
8859 return count;
8860 }
8861 }
8862
8863
8881 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8883 OrthancPluginContext* context,
8885 const OrthancPluginDicomInstance* instance,
8886 uint32_t frameIndex)
8887 {
8888 _OrthancPluginAccessDicomInstance2 params;
8889 memset(&params, 0, sizeof(params));
8890 params.targetBuffer = target;
8891 params.instance = instance;
8892 params.frameIndex = frameIndex;
8893
8894 return context->InvokeService(context, _OrthancPluginService_GetInstanceRawFrame, &params);
8895 }
8896
8897
8910 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8912 OrthancPluginContext* context,
8913 const OrthancPluginDicomInstance* instance,
8914 uint32_t frameIndex)
8915 {
8916 OrthancPluginImage* target = NULL;
8917
8918 _OrthancPluginAccessDicomInstance2 params;
8919 memset(&params, 0, sizeof(params));
8920 params.targetImage = &target;
8921 params.instance = instance;
8922 params.frameIndex = frameIndex;
8923
8924 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDecodedFrame, &params) != OrthancPluginErrorCode_Success)
8925 {
8926 return NULL;
8927 }
8928 else
8929 {
8930 return target;
8931 }
8932 }
8933
8934
8950 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8952 OrthancPluginContext* context,
8953 const void* buffer,
8954 uint32_t size,
8955 const char* transferSyntax)
8956 {
8957 OrthancPluginDicomInstance* target = NULL;
8958
8959 _OrthancPluginCreateDicomInstance params;
8960 params.target = &target;
8961 params.buffer = buffer;
8962 params.size = size;
8963 params.transferSyntax = transferSyntax;
8964
8965 if (context->InvokeService(context, _OrthancPluginService_TranscodeDicomInstance, &params) != OrthancPluginErrorCode_Success)
8966 {
8967 /* Error */
8968 return NULL;
8969 }
8970 else
8971 {
8972 return target;
8973 }
8974 }
8975
8989 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8991 OrthancPluginContext* context,
8993 const OrthancPluginDicomInstance* instance)
8994 {
8995 _OrthancPluginAccessDicomInstance2 params;
8996 memset(&params, 0, sizeof(params));
8997 params.targetBuffer = target;
8998 params.instance = instance;
8999
9000 return context->InvokeService(context, _OrthancPluginService_SerializeDicomInstance, &params);
9001 }
9002
9003
9022 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9023 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceAdvancedJson(
9024 OrthancPluginContext* context,
9025 const OrthancPluginDicomInstance* instance,
9028 uint32_t maxStringLength)
9029 {
9030 char* result = NULL;
9031
9032 _OrthancPluginAccessDicomInstance2 params;
9033 memset(&params, 0, sizeof(params));
9034 params.targetStringToFree = &result;
9035 params.instance = instance;
9036 params.format = format;
9037 params.flags = flags;
9038 params.maxStringLength = maxStringLength;
9039
9040 if (context->InvokeService(context, _OrthancPluginService_GetInstanceAdvancedJson, &params) != OrthancPluginErrorCode_Success)
9041 {
9042 /* Error */
9043 return NULL;
9044 }
9045 else
9046 {
9047 return result;
9048 }
9049 }
9050
9051
9066 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9067 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceDicomWebJson(
9068 OrthancPluginContext* context,
9069 const OrthancPluginDicomInstance* instance,
9071 void* payload)
9072 {
9073 char* target = NULL;
9074
9075 _OrthancPluginAccessDicomInstance2 params;
9076 params.targetStringToFree = &target;
9077 params.instance = instance;
9078 params.dicomWebCallback = callback;
9079 params.dicomWebPayload = payload;
9080
9081 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDicomWebJson, &params) != OrthancPluginErrorCode_Success)
9082 {
9083 /* Error */
9084 return NULL;
9085 }
9086 else
9087 {
9088 return target;
9089 }
9090 }
9091
9092
9107 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9108 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceDicomWebXml(
9109 OrthancPluginContext* context,
9110 const OrthancPluginDicomInstance* instance,
9112 void* payload)
9113 {
9114 char* target = NULL;
9115
9116 _OrthancPluginAccessDicomInstance2 params;
9117 params.targetStringToFree = &target;
9118 params.instance = instance;
9119 params.dicomWebCallback = callback;
9120 params.dicomWebPayload = payload;
9121
9122 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDicomWebXml, &params) != OrthancPluginErrorCode_Success)
9123 {
9124 /* Error */
9125 return NULL;
9126 }
9127 else
9128 {
9129 return target;
9130 }
9131 }
9132
9133
9134
9154 OrthancPluginMemoryBuffer* transcoded /* out */,
9155 const void* buffer,
9156 uint64_t size,
9157 const char* const* allowedSyntaxes,
9158 uint32_t countSyntaxes,
9159 uint8_t allowNewSopInstanceUid);
9160
9161
9162 typedef struct
9163 {
9165 } _OrthancPluginTranscoderCallback;
9166
9180 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9182 OrthancPluginContext* context,
9184 {
9185 _OrthancPluginTranscoderCallback params;
9186 params.callback = callback;
9187
9188 return context->InvokeService(context, _OrthancPluginService_RegisterTranscoderCallback, &params);
9189 }
9190
9191
9192
9193 typedef struct
9194 {
9196 uint32_t size;
9197 } _OrthancPluginCreateMemoryBuffer;
9198
9216 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9218 OrthancPluginContext* context,
9220 uint32_t size)
9221 {
9222 _OrthancPluginCreateMemoryBuffer params;
9223 params.target = target;
9224 params.size = size;
9225
9226 return context->InvokeService(context, _OrthancPluginService_CreateMemoryBuffer, &params);
9227 }
9228
9229
9255 ORTHANC_PLUGIN_SINCE_SDK("1.8.1")
9257 OrthancPluginContext* context)
9258 {
9259 char* result;
9260
9261 _OrthancPluginRetrieveDynamicString params;
9262 params.result = &result;
9263 params.argument = NULL;
9264
9265 if (context->InvokeService(context, _OrthancPluginService_GenerateRestApiAuthorizationToken,
9267 {
9268 /* Error */
9269 return NULL;
9270 }
9271 else
9272 {
9273 return result;
9274 }
9275 }
9276
9277
9278
9279 typedef struct
9280 {
9282 uint64_t size;
9283 } _OrthancPluginCreateMemoryBuffer64;
9284
9302 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9304 OrthancPluginContext* context,
9306 uint64_t size)
9307 {
9308 _OrthancPluginCreateMemoryBuffer64 params;
9309 params.target = target;
9310 params.size = size;
9311
9312 return context->InvokeService(context, _OrthancPluginService_CreateMemoryBuffer64, &params);
9313 }
9314
9315
9316 typedef struct
9317 {
9322 } _OrthancPluginRegisterStorageArea2;
9323
9341 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9342 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea2(
9343 OrthancPluginContext* context,
9348 {
9349 _OrthancPluginRegisterStorageArea2 params;
9350 params.create = create;
9351 params.readWhole = readWhole;
9352 params.readRange = readRange;
9353 params.remove = remove;
9354 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea2, &params);
9355 }
9356
9357
9358
9359 typedef struct
9360 {
9361 _OrthancPluginCreateDicom createDicom;
9362 const char* privateCreator;
9363 } _OrthancPluginCreateDicom2;
9364
9389 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9391 OrthancPluginContext* context,
9393 const char* json,
9394 const OrthancPluginImage* pixelData,
9396 const char* privateCreator)
9397 {
9398 _OrthancPluginCreateDicom2 params;
9399 params.createDicom.target = target;
9400 params.createDicom.json = json;
9401 params.createDicom.pixelData = pixelData;
9402 params.createDicom.flags = flags;
9403 params.privateCreator = privateCreator;
9404
9405 return context->InvokeService(context, _OrthancPluginService_CreateDicom2, &params);
9406 }
9407
9408
9409
9410
9411
9412
9413 typedef struct
9414 {
9415 OrthancPluginMemoryBuffer* answerBody;
9416 OrthancPluginMemoryBuffer* answerHeaders;
9417 uint16_t* httpStatus;
9419 const char* uri;
9420 uint32_t headersCount;
9421 const char* const* headersKeys;
9422 const char* const* headersValues;
9423 const void* body;
9424 uint32_t bodySize;
9425 uint8_t afterPlugins;
9426 } _OrthancPluginCallRestApi;
9427
9458 ORTHANC_PLUGIN_SINCE_SDK("1.9.2")
9460 OrthancPluginContext* context,
9461 OrthancPluginMemoryBuffer* answerBody,
9462 OrthancPluginMemoryBuffer* answerHeaders,
9463 uint16_t* httpStatus,
9465 const char* uri,
9466 uint32_t headersCount,
9467 const char* const* headersKeys,
9468 const char* const* headersValues,
9469 const void* body,
9470 uint32_t bodySize,
9471 uint8_t afterPlugins)
9472 {
9473 _OrthancPluginCallRestApi params;
9474 memset(&params, 0, sizeof(params));
9475
9476 params.answerBody = answerBody;
9477 params.answerHeaders = answerHeaders;
9478 params.httpStatus = httpStatus;
9479 params.method = method;
9480 params.uri = uri;
9481 params.headersCount = headersCount;
9482 params.headersKeys = headersKeys;
9483 params.headersValues = headersValues;
9484 params.body = body;
9485 params.bodySize = bodySize;
9486 params.afterPlugins = afterPlugins;
9487
9488 return context->InvokeService(context, _OrthancPluginService_CallRestApi, &params);
9489 }
9490
9491
9492
9497 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.10.1")
9498 _OrthancPluginWebDavCollection_t OrthancPluginWebDavCollection;
9499
9500
9525 const char* name,
9526 uint64_t size,
9527 const char* mimeType,
9528 const char* dateTime);
9529
9530
9546 const char* name,
9547 const char* dateTime);
9548
9549
9573 const void* data,
9574 uint64_t size,
9575 const char* mimeType,
9576 const char* dateTime);
9577
9578
9593 uint8_t* isExisting, /* out */
9594 uint32_t pathSize,
9595 const char* const* pathItems,
9596 void* payload);
9597
9598
9618 uint8_t* isExisting, /* out */
9622 uint32_t pathSize,
9623 const char* const* pathItems,
9624 void* payload);
9625
9626
9646 uint32_t pathSize,
9647 const char* const* pathItems,
9648 void* payload);
9649
9650
9667 uint8_t* isReadOnly, /* out */
9668 uint32_t pathSize,
9669 const char* const* pathItems,
9670 const void* data,
9671 uint64_t size,
9672 void* payload);
9673
9674
9689 uint8_t* isReadOnly, /* out */
9690 uint32_t pathSize,
9691 const char* const* pathItems,
9692 void* payload);
9693
9694
9709 uint8_t* isReadOnly, /* out */
9710 uint32_t pathSize,
9711 const char* const* pathItems,
9712 void* payload);
9713
9714
9715 typedef struct
9716 {
9717 const char* uri;
9724 void* payload;
9725 } _OrthancPluginRegisterWebDavCollection;
9726
9747 ORTHANC_PLUGIN_SINCE_SDK("1.10.1")
9749 OrthancPluginContext* context,
9750 const char* uri,
9757 void* payload)
9758 {
9759 _OrthancPluginRegisterWebDavCollection params;
9760 params.uri = uri;
9761 params.isExistingFolder = isExistingFolder;
9762 params.listFolder = listFolder;
9763 params.retrieveFile = retrieveFile;
9764 params.storeFile = storeFile;
9765 params.createFolder = createFolder;
9766 params.deleteItem = deleteItem;
9767 params.payload = payload;
9768
9769 return context->InvokeService(context, _OrthancPluginService_RegisterWebDavCollection, &params);
9770 }
9771
9772
9781 ORTHANC_PLUGIN_SINCE_SDK("1.11.1")
9782 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetDatabaseServerIdentifier(
9783 OrthancPluginContext* context)
9784 {
9785 const char* result;
9786
9787 _OrthancPluginRetrieveStaticString params;
9788 params.result = &result;
9789 params.argument = NULL;
9790
9791 if (context->InvokeService(context, _OrthancPluginService_GetDatabaseServerIdentifier, &params) != OrthancPluginErrorCode_Success)
9792 {
9793 /* Error */
9794 return NULL;
9795 }
9796 else
9797 {
9798 return result;
9799 }
9800 }
9801
9802
9803 typedef struct
9804 {
9808 } _OrthancPluginRegisterStorageArea3;
9809
9824 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
9825 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea3(
9826 OrthancPluginContext* context,
9830 {
9831 _OrthancPluginRegisterStorageArea3 params;
9832 params.create = create;
9833 params.readRange = readRange;
9834 params.remove = remove;
9835 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea3, &params);
9836 }
9837
9846 void* backend,
9847 const void* request,
9848 uint64_t requestSize);
9849
9855 typedef void (*OrthancPluginFinalizeDatabaseBackendV4) (void* backend);
9856
9857 typedef struct
9858 {
9859 void* backend;
9860 uint32_t maxDatabaseRetries;
9863 } _OrthancPluginRegisterDatabaseBackendV4;
9864
9882 ORTHANC_PLUGIN_SINCE_SDK("1.12.0")
9884 OrthancPluginContext* context,
9885 void* backend,
9886 uint32_t maxDatabaseRetries,
9889 {
9890 _OrthancPluginRegisterDatabaseBackendV4 params;
9891 params.backend = backend;
9892 params.maxDatabaseRetries = maxDatabaseRetries;
9893 params.operations = operations;
9894 params.finalize = finalize;
9895
9896 return context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackendV4, &params);
9897 }
9898
9899
9900 typedef struct
9901 {
9903 const char* instanceId;
9905 } _OrthancPluginLoadDicomInstance;
9906
9920 ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
9922 OrthancPluginContext* context,
9923 const char* instanceId,
9925 {
9926 OrthancPluginDicomInstance* target = NULL;
9927
9928 _OrthancPluginLoadDicomInstance params;
9929 params.target = &target;
9930 params.instanceId = instanceId;
9931 params.mode = mode;
9932
9933 if (context->InvokeService(context, _OrthancPluginService_LoadDicomInstance, &params) != OrthancPluginErrorCode_Success)
9934 {
9935 /* Error */
9936 return NULL;
9937 }
9938 else
9939 {
9940 return target;
9941 }
9942 }
9943
9944
9945 typedef struct
9946 {
9947 const char* name;
9948 int64_t value;
9950 } _OrthancPluginSetMetricsIntegerValue;
9951
9967 ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
9968 ORTHANC_PLUGIN_INLINE void OrthancPluginSetMetricsIntegerValue(
9969 OrthancPluginContext* context,
9970 const char* name,
9971 int64_t value,
9973 {
9974 _OrthancPluginSetMetricsIntegerValue params;
9975 params.name = name;
9976 params.value = value;
9977 params.type = type;
9978 context->InvokeService(context, _OrthancPluginService_SetMetricsIntegerValue, &params);
9979 }
9980
9981
9995 ORTHANC_PLUGIN_SINCE_SDK("1.12.2")
9997 OrthancPluginContext* context,
9998 const char* threadName)
9999 {
10000 return context->InvokeService(context, _OrthancPluginService_SetCurrentThreadName, threadName);
10001 }
10002
10003
10004 typedef struct
10005 {
10006 /* Note: This structure is also defined in Logging.h and it must be binary compatible */
10007 const char* message;
10008 const char* plugin;
10009 const char* file;
10010 uint32_t line;
10011 OrthancPluginLogCategory category;
10013 } _OrthancPluginLogMessage;
10014
10015
10029 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
10030 ORTHANC_PLUGIN_INLINE void OrthancPluginLogMessage(
10031 OrthancPluginContext* context,
10032 const char* message,
10033 const char* plugin,
10034 const char* file,
10035 uint32_t line,
10036 OrthancPluginLogCategory category,
10038 {
10039 _OrthancPluginLogMessage m;
10040 m.message = message;
10041 m.plugin = plugin;
10042 m.file = file;
10043 m.line = line;
10044 m.category = category;
10045 m.level = level;
10046 context->InvokeService(context, _OrthancPluginService_LogMessage, &m);
10047 }
10048
10049
10050 typedef struct
10051 {
10053 const char* contentType;
10054 } _OrthancPluginStartStreamAnswer;
10055
10068 ORTHANC_PLUGIN_SINCE_SDK("1.12.6")
10070 OrthancPluginContext* context,
10072 const char* contentType)
10073 {
10074 _OrthancPluginStartStreamAnswer params;
10075 params.output = output;
10076 params.contentType = contentType;
10077 return context->InvokeService(context, _OrthancPluginService_StartStreamAnswer, &params);
10078 }
10079
10080
10096 ORTHANC_PLUGIN_SINCE_SDK("1.12.6")
10098 OrthancPluginContext* context,
10100 const void* answer,
10101 uint32_t answerSize)
10102 {
10103 _OrthancPluginAnswerBuffer params;
10104 params.output = output;
10105 params.answer = answer;
10106 params.answerSize = answerSize;
10107 params.mimeType = NULL;
10108 return context->InvokeService(context, _OrthancPluginService_SendStreamChunk, &params);
10109 }
10110
10111
10112 typedef struct
10113 {
10114 OrthancPluginMemoryBuffer* instanceId;
10115 OrthancPluginMemoryBuffer* attachmentUuid;
10116 OrthancPluginStoreStatus* storeStatus;
10117 const void* dicom;
10118 uint64_t dicomSize;
10119 const void* customData;
10120 uint32_t customDataSize;
10121 } _OrthancPluginAdoptDicomInstance;
10122
10161 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10163 OrthancPluginContext* context,
10164 OrthancPluginMemoryBuffer* instanceId, /* out */
10165 OrthancPluginMemoryBuffer* attachmentUuid, /* out */
10166 OrthancPluginStoreStatus* storeStatus, /* out */
10167 const void* dicom,
10168 uint64_t dicomSize,
10169 const void* customData,
10170 uint32_t customDataSize)
10171 {
10172 _OrthancPluginAdoptDicomInstance params;
10173 params.instanceId = instanceId;
10174 params.attachmentUuid = attachmentUuid;
10175 params.storeStatus = storeStatus;
10176 params.dicom = dicom;
10177 params.dicomSize = dicomSize;
10178 params.customData = customData;
10179 params.customDataSize = customDataSize;
10180
10181 return context->InvokeService(context, _OrthancPluginService_AdoptDicomInstance, &params);
10182 }
10183
10184
10185 typedef struct
10186 {
10187 OrthancPluginMemoryBuffer* customData;
10188 const char* attachmentUuid;
10189 } _OrthancPluginGetAttachmentCustomData;
10190
10203 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10205 OrthancPluginContext* context,
10206 OrthancPluginMemoryBuffer* customData, /* out */
10207 const char* attachmentUuid /* in */)
10208 {
10209 _OrthancPluginGetAttachmentCustomData params;
10210 params.customData = customData;
10211 params.attachmentUuid = attachmentUuid;
10212
10213 return context->InvokeService(context, _OrthancPluginService_GetAttachmentCustomData, &params);
10214 }
10215
10216
10217 typedef struct
10218 {
10219 const char* attachmentUuid;
10220 const void* customData;
10221 uint32_t customDataSize;
10222 } _OrthancPluginSetAttachmentCustomData;
10223
10236 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10238 OrthancPluginContext* context,
10239 const char* attachmentUuid, /* in */
10240 const void* customData, /* in */
10241 uint32_t customDataSize /* in */)
10242 {
10243 _OrthancPluginSetAttachmentCustomData params;
10244 params.attachmentUuid = attachmentUuid;
10245 params.customData = customData;
10246 params.customDataSize = customDataSize;
10247
10248 return context->InvokeService(context, _OrthancPluginService_SetAttachmentCustomData, &params);
10249 }
10250
10251
10252 typedef struct
10253 {
10254 const char* storeId;
10255 const char* key;
10256 const void* value;
10257 uint32_t valueSize;
10258 } _OrthancPluginStoreKeyValue;
10259
10270 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10272 OrthancPluginContext* context,
10273 const char* storeId, /* in */
10274 const char* key, /* in */
10275 const void* value, /* in */
10276 uint32_t valueSize /* in */)
10277 {
10278 _OrthancPluginStoreKeyValue params;
10279 params.storeId = storeId;
10280 params.key = key;
10281 params.value = value;
10282 params.valueSize = valueSize;
10283
10284 return context->InvokeService(context, _OrthancPluginService_StoreKeyValue, &params);
10285 }
10286
10287
10288 typedef struct
10289 {
10290 const char* storeId;
10291 const char* key;
10292 } _OrthancPluginDeleteKeyValue;
10293
10302 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10304 OrthancPluginContext* context,
10305 const char* storeId, /* in */
10306 const char* key /* in */)
10307 {
10308 _OrthancPluginDeleteKeyValue params;
10309 params.storeId = storeId;
10310 params.key = key;
10311
10312 return context->InvokeService(context, _OrthancPluginService_DeleteKeyValue, &params);
10313 }
10314
10315
10316 typedef struct
10317 {
10318 uint8_t* found;
10320 const char* storeId;
10321 const char* key;
10322 } _OrthancPluginGetKeyValue;
10323
10335 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10337 OrthancPluginContext* context,
10338 uint8_t* found, /* out */
10339 OrthancPluginMemoryBuffer* target, /* out */
10340 const char* storeId, /* in */
10341 const char* key /* in */)
10342 {
10343 _OrthancPluginGetKeyValue params;
10344 params.found = found;
10345 params.target = target;
10346 params.storeId = storeId;
10347 params.key = key;
10348
10349 return context->InvokeService(context, _OrthancPluginService_GetKeyValue, &params);
10350 }
10351
10352
10358 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10359 _OrthancPluginKeysValuesIterator_t OrthancPluginKeysValuesIterator;
10360
10361
10362 typedef struct
10363 {
10365 const char* storeId;
10366 } _OrthancPluginCreateKeysValuesIterator;
10367
10368
10379 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10381 OrthancPluginContext* context,
10382 const char* storeId)
10383 {
10384 OrthancPluginKeysValuesIterator* target = NULL;
10385
10386 _OrthancPluginCreateKeysValuesIterator params;
10387 params.target = &target;
10388 params.storeId = storeId;
10389
10390 if (context->InvokeService(context, _OrthancPluginService_CreateKeysValuesIterator, &params) != OrthancPluginErrorCode_Success)
10391 {
10392 return NULL;
10393 }
10394 else
10395 {
10396 return target;
10397 }
10398 }
10399
10400
10401 typedef struct
10402 {
10404 } _OrthancPluginFreeKeysValuesIterator;
10405
10412 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10413 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeKeysValuesIterator(
10414 OrthancPluginContext* context,
10416 {
10417 _OrthancPluginFreeKeysValuesIterator params;
10418 params.iterator = iterator;
10419
10420 context->InvokeService(context, _OrthancPluginService_FreeKeysValuesIterator, &params);
10421 }
10422
10423
10424 typedef struct
10425 {
10426 uint8_t* done;
10428 } _OrthancPluginKeysValuesIteratorNext;
10429
10440 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10442 OrthancPluginContext* context,
10443 uint8_t* done, /* out */
10444 OrthancPluginKeysValuesIterator* iterator /* in */)
10445 {
10446 _OrthancPluginKeysValuesIteratorNext params;
10447 params.done = done;
10448 params.iterator = iterator;
10449
10450 return context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorNext, &params);
10451 }
10452
10453
10454 typedef struct
10455 {
10456 const char** target;
10458 } _OrthancPluginKeysValuesIteratorGetKey;
10459
10470 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10471 ORTHANC_PLUGIN_INLINE const char* OrthancPluginKeysValuesIteratorGetKey(
10472 OrthancPluginContext* context,
10474 {
10475 const char* target = NULL;
10476
10477 _OrthancPluginKeysValuesIteratorGetKey params;
10478 params.target = &target;
10479 params.iterator = iterator;
10480
10481 if (context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorGetKey, &params) == OrthancPluginErrorCode_Success)
10482 {
10483 return target;
10484 }
10485 else
10486 {
10487 return NULL;
10488 }
10489 }
10490
10491
10492 typedef struct
10493 {
10496 } _OrthancPluginKeysValuesIteratorGetValue;
10497
10510 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10512 OrthancPluginContext* context,
10513 OrthancPluginMemoryBuffer* target /* out */,
10514 OrthancPluginKeysValuesIterator* iterator /* in */)
10515 {
10516 _OrthancPluginKeysValuesIteratorGetValue params;
10517 params.target = target;
10518 params.iterator = iterator;
10519
10520 return context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorGetValue, &params);
10521 }
10522
10523
10524 typedef struct
10525 {
10526 const char* queueId;
10527 const void* value;
10528 uint32_t valueSize;
10529 } _OrthancPluginEnqueueValue;
10530
10540 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10542 OrthancPluginContext* context,
10543 const char* queueId, /* in */
10544 const void* value, /* in */
10545 uint32_t valueSize /* in */)
10546 {
10547 _OrthancPluginEnqueueValue params;
10548 params.queueId = queueId;
10549 params.value = value;
10550 params.valueSize = valueSize;
10551
10552 return context->InvokeService(context, _OrthancPluginService_EnqueueValue, &params);
10553 }
10554
10555
10556 typedef struct
10557 {
10558 uint8_t* found;
10560 const char* queueId;
10562 } _OrthancPluginDequeueValue;
10563
10577 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10578 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginDequeueValue(
10579 OrthancPluginContext* context,
10580 uint8_t* found, /* out */
10581 OrthancPluginMemoryBuffer* target, /* out */
10582 const char* queueId, /* in */
10583 OrthancPluginQueueOrigin origin /* in */)
10584 {
10585 _OrthancPluginDequeueValue params;
10586 params.found = found;
10587 params.target = target;
10588 params.queueId = queueId;
10589 params.origin = origin;
10590
10591 return context->InvokeService(context, _OrthancPluginService_DequeueValue, &params);
10592 }
10593
10594
10595 typedef struct
10596 {
10597 const char* queueId;
10598 uint64_t* size;
10599 } _OrthancPluginGetQueueSize;
10600
10609 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10611 OrthancPluginContext* context,
10612 const char* queueId, /* in */
10613 uint64_t* size /* out */)
10614 {
10615 _OrthancPluginGetQueueSize params;
10616 params.queueId = queueId;
10617 params.size = size;
10618
10619 return context->InvokeService(context, _OrthancPluginService_GetQueueSize, &params);
10620 }
10621
10622
10623 typedef struct
10624 {
10625 const char* resourceId;
10626 OrthancPluginStableStatus stableStatus;
10627 uint8_t* statusHasChanged;
10628 } _OrthancPluginSetStableStatus;
10629
10650 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10652 OrthancPluginContext* context,
10653 uint8_t* statusHasChanged, /* out */
10654 const char* resourceId, /* in */
10655 OrthancPluginStableStatus stableStatus /* in */)
10656 {
10657 _OrthancPluginSetStableStatus params;
10658 params.resourceId = resourceId;
10659 params.stableStatus= stableStatus;
10660 params.statusHasChanged = statusHasChanged;
10661
10662 return context->InvokeService(context, _OrthancPluginService_SetStableStatus, &params);
10663 }
10664
10665
10689 OrthancPluginHttpAuthenticationStatus* status, /* out */
10690 OrthancPluginMemoryBuffer* customPayload, /* out */
10691 OrthancPluginMemoryBuffer* redirection, /* out */
10692 const char* uri,
10693 const char* ip,
10694 uint32_t headersCount,
10695 const char* const* headersKeys,
10696 const char* const* headersValues,
10697 uint32_t getCount,
10698 const char* const* getKeys,
10699 const char* const* getValues);
10700
10701
10702 typedef struct
10703 {
10705 } _OrthancPluginHttpAuthentication;
10706
10746 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10748 OrthancPluginContext* context,
10750 {
10751 _OrthancPluginHttpAuthentication params;
10752 params.callback = callback;
10753
10754 return context->InvokeService(context, _OrthancPluginService_RegisterHttpAuthentication, &params);
10755 }
10756
10757
10758 typedef struct
10759 {
10760 const char* sourcePlugin;
10761 const char* userId;
10762 OrthancPluginResourceType resourceType;
10763 const char* resourceId;
10764 const char* action;
10765 const void* logData;
10766 uint32_t logDataSize;
10767 } _OrthancPluginEmitAuditLog;
10768
10769
10792 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10793 ORTHANC_PLUGIN_INLINE void OrthancPluginEmitAuditLog(
10794 OrthancPluginContext* context,
10795 const char* sourcePlugin,
10796 const char* userId,
10797 OrthancPluginResourceType resourceType,
10798 const char* resourceId,
10799 const char* action,
10800 const void* logData,
10801 uint32_t logDataSize)
10802 {
10803 _OrthancPluginEmitAuditLog m;
10804 m.sourcePlugin = sourcePlugin;
10805 m.userId = userId;
10806 m.resourceType = resourceType;
10807 m.resourceId = resourceId;
10808 m.action = action;
10809 m.logData = logData;
10810 m.logDataSize = logDataSize;
10811 context->InvokeService(context, _OrthancPluginService_EmitAuditLog, &m);
10812 }
10813
10814
10834 const char* sourcePlugin,
10835 const char* userId,
10836 OrthancPluginResourceType resourceType,
10837 const char* resourceId,
10838 const char* action,
10839 const void* logData,
10840 uint32_t logDataSize);
10841
10842 typedef struct
10843 {
10845 } _OrthancPluginAuditLogHandler;
10846
10858 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10860 OrthancPluginContext* context,
10862 {
10863 _OrthancPluginAuditLogHandler params;
10864 params.handler = handler;
10865
10866 return context->InvokeService(context, _OrthancPluginService_RegisterAuditLogHandler, &params);
10867 }
10868
10869
10870 typedef struct
10871 {
10872 uint8_t* found;
10874 const char* queueId;
10876 uint32_t releaseTimeout;
10877 uint64_t* valueId;
10878 } _OrthancPluginReserveQueueValue;
10879
10901 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10903 OrthancPluginContext* context,
10904 uint8_t* found, /* out */
10905 OrthancPluginMemoryBuffer* target, /* out */
10906 uint64_t* valueId, /* out */
10907 const char* queueId, /* in */
10908 OrthancPluginQueueOrigin origin, /* in */
10909 uint32_t releaseTimeout /* in */)
10910 {
10911 _OrthancPluginReserveQueueValue params;
10912 params.found = found;
10913 params.target = target;
10914 params.queueId = queueId;
10915 params.origin = origin;
10916 params.valueId = valueId;
10917 params.releaseTimeout = releaseTimeout;
10918
10919 return context->InvokeService(context, _OrthancPluginService_ReserveQueueValue, &params);
10920 }
10921
10922 typedef struct
10923 {
10924 const char* queueId;
10925 uint64_t valueId;
10926 } _OrthancPluginAcknowledgeQueueValue;
10927
10937 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10939 OrthancPluginContext* context,
10940 const char* queueId, /* in */
10941 uint64_t valueId /* in */)
10942 {
10943 _OrthancPluginAcknowledgeQueueValue params;
10944 params.queueId = queueId;
10945 params.valueId = valueId;
10946
10947 return context->InvokeService(context, _OrthancPluginService_AcknowledgeQueueValue, &params);
10948 }
10949
10950
10951 typedef struct
10952 {
10953 const OrthancPluginDicomConnection* connection;
10954 const char** resultString;
10955 } _OrthancPluginAccessDicomConnection;
10956
10968 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10969 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetConnectionRemoteAet(
10970 OrthancPluginContext* context,
10971 const OrthancPluginDicomConnection* connection)
10972 {
10973 const char* result;
10974
10975 _OrthancPluginAccessDicomConnection params;
10976 memset(&params, 0, sizeof(params));
10977 params.resultString = &result;
10978 params.connection = connection;
10979
10980 if (context->InvokeService(context, _OrthancPluginService_GetConnectionRemoteAet, &params) != OrthancPluginErrorCode_Success)
10981 {
10982 /* Error */
10983 return NULL;
10984 }
10985 else
10986 {
10987 return result;
10988 }
10989 }
10990
10991
11003 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11004 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetConnectionRemoteIp(
11005 OrthancPluginContext* context,
11006 const OrthancPluginDicomConnection* connection)
11007 {
11008 const char* result;
11009
11010 _OrthancPluginAccessDicomConnection params;
11011 memset(&params, 0, sizeof(params));
11012 params.resultString = &result;
11013 params.connection = connection;
11014
11015 if (context->InvokeService(context, _OrthancPluginService_GetConnectionRemoteIp, &params) != OrthancPluginErrorCode_Success)
11016 {
11017 /* Error */
11018 return NULL;
11019 }
11020 else
11021 {
11022 return result;
11023 }
11024 }
11025
11026
11038 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11039 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetConnectionCalledAet(
11040 OrthancPluginContext* context,
11041 const OrthancPluginDicomConnection* connection)
11042 {
11043 const char* result;
11044
11045 _OrthancPluginAccessDicomConnection params;
11046 memset(&params, 0, sizeof(params));
11047 params.resultString = &result;
11048 params.connection = connection;
11049
11050 if (context->InvokeService(context, _OrthancPluginService_GetConnectionCalledAet, &params) != OrthancPluginErrorCode_Success)
11051 {
11052 /* Error */
11053 return NULL;
11054 }
11055 else
11056 {
11057 return result;
11058 }
11059 }
11060
11061
11062 typedef struct
11063 {
11065 } _OrthancPluginWorklistCallback2;
11066
11078 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11080 OrthancPluginContext* context,
11082 {
11083 _OrthancPluginWorklistCallback2 params;
11084 params.callback = callback;
11085
11086 return context->InvokeService(context, _OrthancPluginService_RegisterWorklistCallback2, &params);
11087 }
11088
11089
11090 typedef struct
11091 {
11093 } _OrthancPluginFindCallback2;
11094
11106 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11108 OrthancPluginContext* context,
11110 {
11111 _OrthancPluginFindCallback2 params;
11112 params.callback = callback;
11113
11114 return context->InvokeService(context, _OrthancPluginService_RegisterFindCallback2, &params);
11115 }
11116
11117
11118 typedef struct
11119 {
11121 OrthancPluginGetMoveSize getMoveSize;
11122 OrthancPluginApplyMove applyMove;
11123 OrthancPluginFreeMove freeMove;
11124 } _OrthancPluginMoveCallback2;
11125
11139 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11141 OrthancPluginContext* context,
11143 OrthancPluginGetMoveSize getMoveSize,
11144 OrthancPluginApplyMove applyMove,
11145 OrthancPluginFreeMove freeMove)
11146 {
11147 _OrthancPluginMoveCallback2 params;
11148 params.callback = callback;
11149 params.getMoveSize = getMoveSize;
11150 params.applyMove = applyMove;
11151 params.freeMove = freeMove;
11152
11153 return context->InvokeService(context, _OrthancPluginService_RegisterMoveCallback2, &params);
11154 }
11155
11156
11157 typedef struct
11158 {
11162 } _OrthancPluginRegisterStorageCommitmentScpCallback2;
11163
11177 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11179 OrthancPluginContext* context,
11183 {
11184 _OrthancPluginRegisterStorageCommitmentScpCallback2 params;
11185 params.factory = factory;
11186 params.destructor = destructor;
11187 params.lookup = lookup;
11188 return context->InvokeService(context, _OrthancPluginService_RegisterStorageCommitmentScpCallback2, &params);
11189 }
11190
11191#ifdef __cplusplus
11192}
11193#endif
11194
11195
OrthancPluginErrorCode OrthancPluginRegisterDatabaseBackendV4(OrthancPluginContext *context, void *backend, uint32_t maxDatabaseRetries, OrthancPluginCallDatabaseBackendV4 operations, OrthancPluginFinalizeDatabaseBackendV4 finalize)
Register a custom database back-end.
Definition OrthancCPlugin.h:9883
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:10688
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:9844
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:8620
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:9523
void OrthancPluginRegisterStorageArea(OrthancPluginContext *context, OrthancPluginStorageCreate create, OrthancPluginStorageRead read, OrthancPluginStorageRemove remove)
Register a custom storage area.
Definition OrthancCPlugin.h:3635
void OrthancPluginRegisterOnStoredInstanceCallback(OrthancPluginContext *context, OrthancPluginOnStoredInstanceCallback callback)
Register a callback for received instances.
Definition OrthancCPlugin.h:2600
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:1469
OrthancPluginErrorCode OrthancPluginRegisterDecodeImageCallback(OrthancPluginContext *context, OrthancPluginDecodeImageCallback callback)
Register a callback to handle the decoding of DICOM images.
Definition OrthancCPlugin.h:5965
OrthancPluginChangeType
Definition OrthancCPlugin.h:829
OrthancPluginErrorCode(* OrthancPluginStorageReadWhole)(OrthancPluginMemoryBuffer64 *target, const char *uuid, OrthancPluginContentType type)
Callback for reading a whole file from the storage area.
Definition OrthancCPlugin.h:1534
OrthancPluginErrorCode OrthancPluginRegisterIncomingCStoreInstanceFilter(OrthancPluginContext *context, OrthancPluginIncomingCStoreInstanceFilter callback)
Register a callback to filter incoming DICOM instances received by Orthanc through C-STORE.
Definition OrthancCPlugin.h:8575
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:1447
void OrthancPluginRegisterRefreshMetricsCallback(OrthancPluginContext *context, OrthancPluginRefreshMetricsCallback callback)
Register a callback to refresh the metrics.
Definition OrthancCPlugin.h:7657
OrthancPluginErrorCode OrthancPluginRegisterHttpAuthentication(OrthancPluginContext *context, OrthancPluginHttpAuthentication callback)
Register a callback to handle HTTP authentication (and possibly HTTP authorization).
Definition OrthancCPlugin.h:10747
OrthancPluginErrorCode(* OrthancPluginWebDavCreateFolderCallback)(uint8_t *isReadOnly, uint32_t pathSize, const char *const *pathItems, void *payload)
Callback to create a folder.
Definition OrthancCPlugin.h:9688
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:1628
struct _OrthancPluginWebDavCollection_t OrthancPluginWebDavCollection
Opaque structure that represents a WebDAV collection.
Definition OrthancCPlugin.h:9497
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:2167
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:9643
int32_t(* OrthancPluginIncomingDicomInstanceFilter)(const OrthancPluginDicomInstance *instance)
Callback to filter incoming DICOM instances received by Orthanc.
Definition OrthancCPlugin.h:8489
OrthancPluginErrorCode OrthancPluginStorageAreaRemove(OrthancPluginContext *context, OrthancPluginStorageArea *storageArea, const char *uuid, OrthancPluginContentType type)
Remove a file from the storage area.
Definition OrthancCPlugin.h:5314
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:9153
OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter2(OrthancPluginContext *context, OrthancPluginIncomingHttpRequestFilter2 callback)
Register a callback to filter incoming HTTP requests.
Definition OrthancCPlugin.h:6884
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:9571
void OrthancPluginRegisterStorageArea3(OrthancPluginContext *context, OrthancPluginStorageCreate2 create, OrthancPluginStorageReadRange2 readRange, OrthancPluginStorageRemove2 remove)
Register a custom storage area, with support for custom data.
Definition OrthancCPlugin.h:9825
OrthancPluginErrorCode(* OrthancPluginStorageRead)(void **content, int64_t *size, const char *uuid, OrthancPluginContentType type)
Callback for reading from the storage area.
Definition OrthancCPlugin.h:1514
void OrthancPluginRegisterRestCallback(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback callback)
Register a REST callback.
Definition OrthancCPlugin.h:2522
uint32_t OrthancPluginGetExpectedDatabaseVersion(OrthancPluginContext *context)
Get the expected version of the database schema.
Definition OrthancCPlugin.h:4112
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:8653
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:9617
int32_t OrthancPluginCheckVersion(const OrthancPluginContext *context)
Check the compatibility of the plugin wrt. the version of its hosting Orthanc.
Definition OrthancCPlugin.h:2402
OrthancPluginJob *(* OrthancPluginJobsUnserializer)(const char *jobType, const char *serialized)
Callback executed to unserialize a custom job.
Definition OrthancCPlugin.h:2120
struct _OrthancPluginRestOutput_t OrthancPluginRestOutput
Opaque structure that represents the HTTP connection to the client application.
Definition OrthancCPlugin.h:1305
void OrthancPluginRegisterOnChangeCallback(OrthancPluginContext *context, OrthancPluginOnChangeCallback callback)
Register a callback to monitor changes.
Definition OrthancCPlugin.h:3778
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:9342
OrthancPluginErrorCode(* OrthancPluginWebDavAddFolder)(OrthancPluginWebDavCollection *collection, const char *name, const char *dateTime)
Declare a subfolder while returning the content of a folder.
Definition OrthancCPlugin.h:9544
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:9748
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:1759
void(* OrthancPluginRefreshMetricsCallback)()
Callback executed to update the metrics of the plugin.
Definition OrthancCPlugin.h:2139
OrthancPluginErrorCode OrthancPluginRegisterTranscoderCallback(OrthancPluginContext *context, OrthancPluginTranscoderCallback callback)
Register a callback to handle the transcoding of DICOM images.
Definition OrthancCPlugin.h:9181
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:1426
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:1599
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:9666
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:9708
OrthancPluginErrorCode OrthancPluginReconstructMainDicomTags(OrthancPluginContext *context, OrthancPluginStorageArea *storageArea, OrthancPluginResourceType level)
Reconstruct the main DICOM tags.
Definition OrthancCPlugin.h:5507
OrthancPluginErrorCode(* OrthancPluginStorageRemove)(const char *uuid, OrthancPluginContentType type)
Callback for removing a file from the storage area.
Definition OrthancCPlugin.h:1575
OrthancPluginErrorCode(* OrthancPluginStorageCreate)(const char *uuid, const void *content, int64_t size, OrthancPluginContentType type)
Callback for writing to the storage area.
Definition OrthancCPlugin.h:1488
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:2205
OrthancPluginErrorCode OrthancPluginRegisterAuditLogHandler(OrthancPluginContext *context, OrthancPluginAuditLogHandler handler)
Register a callback to handle audit logs.
Definition OrthancCPlugin.h:10859
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:1436
OrthancPluginErrorCode(* OrthancPluginRestCallback)(OrthancPluginRestOutput *output, const char *uri, const OrthancPluginHttpRequest *request)
Signature of a callback function that answers to a REST request.
Definition OrthancCPlugin.h:1415
void(* OrthancPluginFinalizeDatabaseBackendV4)(void *backend)
Signature of a callback function that is triggered when the database plugin must be finalized.
Definition OrthancCPlugin.h:9855
struct _OrthancPluginServerChunkedRequestReader_t OrthancPluginServerChunkedRequestReader
Opaque structure that reads the content of a HTTP request body during a chunked HTTP transfer.
Definition OrthancCPlugin.h:8110
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:9592
struct _OrthancPluginKeysValuesIterator_t OrthancPluginKeysValuesIterator
Opaque structure that represents an iterator over the keys and values of a key-value store.
Definition OrthancCPlugin.h:10358
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:1720
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:2287
void OrthancPluginRegisterJobsUnserializer(OrthancPluginContext *context, OrthancPluginJobsUnserializer unserializer)
Register an unserializer for custom jobs.
Definition OrthancCPlugin.h:7508
void(* OrthancPluginFree)(void *buffer)
Signature of a function to free dynamic memory.
Definition OrthancCPlugin.h:1459
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:10833
void OrthancPluginRegisterRestCallbackNoLock(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback callback)
Register a REST callback, without locking.
Definition OrthancCPlugin.h:2562
OrthancPluginErrorCode OrthancPluginStorageAreaRead(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginStorageArea *storageArea, const char *uuid, OrthancPluginContentType type)
Read a file from the storage area.
Definition OrthancCPlugin.h:5273
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:1651
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:1557
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:8233
int32_t(* OrthancPluginIncomingCStoreInstanceFilter)(uint16_t *dimseStatus, const OrthancPluginDicomInstance *instance)
Callback to filter incoming DICOM instances received by Orthanc through C-STORE.
Definition OrthancCPlugin.h:8552
OrthancPluginErrorCode OrthancPluginRegisterIncomingDicomInstanceFilter(OrthancPluginContext *context, OrthancPluginIncomingDicomInstanceFilter callback)
Register a callback to filter incoming DICOM instances.
Definition OrthancCPlugin.h:8511
OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter(OrthancPluginContext *context, OrthancPluginIncomingHttpRequestFilter callback)
Register a callback to filter incoming HTTP requests.
Definition OrthancCPlugin.h:6303
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:5227
@ OrthancPluginChangeType_OrthancStopped
Definition OrthancCPlugin.h:841
@ OrthancPluginChangeType_OrthancStarted
Definition OrthancCPlugin.h:840
@ OrthancPluginChangeType_Deleted
Definition OrthancCPlugin.h:831
@ OrthancPluginChangeType_JobFailure
Definition OrthancCPlugin.h:848
@ OrthancPluginChangeType_NewInstance
Definition OrthancCPlugin.h:833
@ OrthancPluginChangeType_NewPatient
Definition OrthancCPlugin.h:834
@ OrthancPluginChangeType_JobSubmitted
Definition OrthancCPlugin.h:846
@ OrthancPluginChangeType_NewSeries
Definition OrthancCPlugin.h:835
@ OrthancPluginChangeType_StablePatient
Definition OrthancCPlugin.h:837
@ OrthancPluginChangeType_UpdatedPeers
Definition OrthancCPlugin.h:844
@ OrthancPluginChangeType_StableStudy
Definition OrthancCPlugin.h:839
@ OrthancPluginChangeType_CompletedSeries
Definition OrthancCPlugin.h:830
@ OrthancPluginChangeType_NewChildInstance
Definition OrthancCPlugin.h:832
@ OrthancPluginChangeType_UpdatedAttachment
Definition OrthancCPlugin.h:842
@ OrthancPluginChangeType_UpdatedMetadata
Definition OrthancCPlugin.h:843
@ OrthancPluginChangeType_StableSeries
Definition OrthancCPlugin.h:838
@ OrthancPluginChangeType_UpdatedModalities
Definition OrthancCPlugin.h:845
@ OrthancPluginChangeType_JobSuccess
Definition OrthancCPlugin.h:847
@ OrthancPluginChangeType_NewStudy
Definition OrthancCPlugin.h:836
uint32_t OrthancPluginGetFindQuerySize(OrthancPluginContext *context, const OrthancPluginFindQuery *query)
Get the number of tags in a C-Find query.
Definition OrthancCPlugin.h:6570
struct _OrthancPluginFindQuery_t OrthancPluginFindQuery
Opaque structure to an object that represents a C-Find query.
Definition OrthancCPlugin.h:1353
OrthancPluginErrorCode(* OrthancPluginApplyMove)(void *moveDriver)
Callback to apply one C-Move suboperation.
Definition OrthancCPlugin.h:1933
OrthancPluginErrorCode OrthancPluginFindMarkIncomplete(OrthancPluginContext *context, OrthancPluginFindAnswers *answers)
Mark the set of C-Find answers as incomplete.
Definition OrthancCPlugin.h:6545
void(* OrthancPluginStorageCommitmentDestructor)(void *handler)
Callback to free one storage commitment SCP handler.
Definition OrthancCPlugin.h:8400
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:1671
OrthancPluginErrorCode OrthancPluginRegisterMoveCallback2(OrthancPluginContext *context, OrthancPluginMoveCallback2 callback, OrthancPluginGetMoveSize getMoveSize, OrthancPluginApplyMove applyMove, OrthancPluginFreeMove freeMove)
Register a callback to handle C-Move requests (v2).
Definition OrthancCPlugin.h:11140
OrthancPluginErrorCode OrthancPluginRegisterMoveCallback(OrthancPluginContext *context, OrthancPluginMoveCallback callback, OrthancPluginGetMoveSize getMoveSize, OrthancPluginApplyMove applyMove, OrthancPluginFreeMove freeMove)
Register a callback to handle C-Move requests.
Definition OrthancCPlugin.h:6728
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:6679
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:8340
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:11178
OrthancPluginErrorCode OrthancPluginRegisterWorklistCallback2(OrthancPluginContext *context, OrthancPluginWorklistCallback2 callback)
Register a callback to handle modality worklists requests (v2).
Definition OrthancCPlugin.h:11079
OrthancPluginErrorCode OrthancPluginRegisterFindCallback(OrthancPluginContext *context, OrthancPluginFindCallback callback)
Register a callback to handle C-Find requests.
Definition OrthancCPlugin.h:6475
OrthancPluginErrorCode(* OrthancPluginFindCallback2)(OrthancPluginFindAnswers *answers, const OrthancPluginFindQuery *query, const OrthancPluginDicomConnection *connection)
Callback to handle incoming C-Find SCP requests (v2).
Definition OrthancCPlugin.h:1807
OrthancPluginErrorCode OrthancPluginWorklistGetDicomQuery(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const OrthancPluginWorklistQuery *query)
Retrieve the worklist query as a DICOM file.
Definition OrthancCPlugin.h:5847
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:8421
int32_t OrthancPluginWorklistIsMatch(OrthancPluginContext *context, const OrthancPluginWorklistQuery *query, const void *dicom, uint32_t size)
Test whether a worklist matches the query.
Definition OrthancCPlugin.h:5808
OrthancPluginErrorCode OrthancPluginFindAddAnswer(OrthancPluginContext *context, OrthancPluginFindAnswers *answers, const void *dicom, uint32_t size)
Add one answer to some C-Find request.
Definition OrthancCPlugin.h:6515
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:8449
struct _OrthancPluginFindAnswers_t OrthancPluginFindAnswers
Opaque structure to an object that represents the answers to a C-Find query for worklists.
Definition OrthancCPlugin.h:1362
struct _OrthancPluginWorklistAnswers_t OrthancPluginWorklistAnswers
Opaque structure to an object that represents the answers to a C-Find query for worklists.
Definition OrthancCPlugin.h:1345
OrthancPluginErrorCode(* OrthancPluginFindCallback)(OrthancPluginFindAnswers *answers, const OrthancPluginFindQuery *query, const char *issuerAet, const char *calledAet)
Callback to handle incoming C-Find SCP requests.
Definition OrthancCPlugin.h:1786
uint32_t(* OrthancPluginGetMoveSize)(void *moveDriver)
Callback to read the size of a C-Move driver.
Definition OrthancCPlugin.h:1918
OrthancPluginErrorCode OrthancPluginRegisterWorklistCallback(OrthancPluginContext *context, OrthancPluginWorklistCallback callback)
Register a callback to handle modality worklists requests.
Definition OrthancCPlugin.h:5696
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:1894
OrthancPluginErrorCode OrthancPluginRegisterFindCallback2(OrthancPluginContext *context, OrthancPluginFindCallback2 callback)
Register a callback to handle C-Find requests (v2).
Definition OrthancCPlugin.h:11107
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:6640
OrthancPluginErrorCode OrthancPluginWorklistMarkIncomplete(OrthancPluginContext *context, OrthancPluginWorklistAnswers *answers)
Mark the set of worklist answers as incomplete.
Definition OrthancCPlugin.h:5770
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:6608
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:8379
void(* OrthancPluginFreeMove)(void *moveDriver)
Callback to free one C-Move driver.
Definition OrthancCPlugin.h:1947
struct _OrthancPluginWorklistQuery_t OrthancPluginWorklistQuery
Opaque structure to an object that represents a C-Find query for worklists.
Definition OrthancCPlugin.h:1337
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:1848
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:5740
OrthancPluginErrorCode(* OrthancPluginWorklistCallback2)(OrthancPluginWorklistAnswers *answers, const OrthancPluginWorklistQuery *query, const OrthancPluginDicomConnection *connection)
Callback to handle the C-Find SCP requests for worklists (v2).
Definition OrthancCPlugin.h:1691
const char * OrthancPluginGetConnectionRemoteAet(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the remote AET of a DICOM connection.
Definition OrthancCPlugin.h:10969
struct _OrthancPluginDicomConnection_t OrthancPluginDicomConnection
Opaque structure that represents the parameters of a DICOM connection.
Definition OrthancCPlugin.h:1407
const char * OrthancPluginGetConnectionRemoteIp(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the remote IP of a DICOM connection.
Definition OrthancCPlugin.h:11004
const char * OrthancPluginGetConnectionCalledAet(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the called AET of a DICOM connection.
Definition OrthancCPlugin.h:11039
int32_t OrthancPluginHasInstancePixelData(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Check whether the DICOM file has pixel data.
Definition OrthancCPlugin.h:8713
char * OrthancPluginGetInstanceDicomWebXml(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:9108
struct _OrthancPluginDicomInstance_t OrthancPluginDicomInstance
Opaque structure that represents a DICOM instance that is managed by the Orthanc core.
Definition OrthancCPlugin.h:1313
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:8882
const char * OrthancPluginGetInstanceRemoteAet(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the AET of a DICOM instance.
Definition OrthancCPlugin.h:3366
OrthancPluginDicomInstance * OrthancPluginLoadDicomInstance(OrthancPluginContext *context, const char *instanceId, OrthancPluginLoadDicomInstanceMode mode)
Load a DICOM instance from the Orthanc server.
Definition OrthancCPlugin.h:9921
char * OrthancPluginGetInstanceJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file.
Definition OrthancCPlugin.h:3468
OrthancPluginDicomInstance * OrthancPluginTranscodeDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size, const char *transferSyntax)
Parse and transcode a DICOM instance.
Definition OrthancCPlugin.h:8951
int32_t OrthancPluginHasInstanceMetadata(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, const char *metadata)
Check whether a DICOM instance is associated with some metadata.
Definition OrthancCPlugin.h:3545
OrthancPluginDicomInstance * OrthancPluginCreateDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size)
Parse a DICOM instance.
Definition OrthancCPlugin.h:8764
uint32_t OrthancPluginGetInstanceFramesCount(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the number of frames in a DICOM instance.
Definition OrthancCPlugin.h:8841
OrthancPluginInstanceOrigin OrthancPluginGetInstanceOrigin(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the origin of a DICOM file.
Definition OrthancCPlugin.h:5873
int64_t OrthancPluginGetInstanceSize(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the size of a DICOM file.
Definition OrthancCPlugin.h:3399
char * OrthancPluginGetInstanceDicomWebJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:9067
char * OrthancPluginGetInstanceTransferSyntaxUid(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the transfer syntax of a DICOM file.
Definition OrthancCPlugin.h:8677
void OrthancPluginFreeDicomInstance(OrthancPluginContext *context, OrthancPluginDicomInstance *dicom)
Free a DICOM instance.
Definition OrthancCPlugin.h:8803
OrthancPluginErrorCode OrthancPluginSerializeDicomInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const OrthancPluginDicomInstance *instance)
Writes a DICOM instance to a memory buffer.
Definition OrthancCPlugin.h:8990
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:3586
char * OrthancPluginGetInstanceSimplifiedJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file (with simplification).
Definition OrthancCPlugin.h:3506
const void * OrthancPluginGetInstanceData(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the data of a DICOM file.
Definition OrthancCPlugin.h:3432
OrthancPluginImage * OrthancPluginGetInstanceDecodedFrame(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition OrthancCPlugin.h:8911
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:9023
OrthancPluginImage * OrthancPluginConvertPixelFormat(OrthancPluginContext *context, const OrthancPluginImage *source, OrthancPluginPixelFormat targetFormat)
Change the pixel format of an image.
Definition OrthancCPlugin.h:5011
OrthancPluginPixelFormat
Definition OrthancCPlugin.h:704
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:5171
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:4755
uint32_t OrthancPluginGetImagePitch(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the pitch of an image.
Definition OrthancCPlugin.h:4546
OrthancPluginPixelFormat OrthancPluginGetImagePixelFormat(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the pixel format of an image.
Definition OrthancCPlugin.h:4445
OrthancPluginImage * OrthancPluginCreateImage(OrthancPluginContext *context, OrthancPluginPixelFormat format, uint32_t width, uint32_t height)
Create an image.
Definition OrthancCPlugin.h:6003
uint32_t OrthancPluginGetFontsCount(OrthancPluginContext *context)
Return the number of available fonts.
Definition OrthancCPlugin.h:5046
uint32_t OrthancPluginGetImageHeight(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the height of an image.
Definition OrthancCPlugin.h:4511
void * OrthancPluginGetImageBuffer(OrthancPluginContext *context, const OrthancPluginImage *image)
Return a pointer to the content of an image.
Definition OrthancCPlugin.h:4580
void OrthancPluginFreeImage(OrthancPluginContext *context, OrthancPluginImage *image)
Free an image.
Definition OrthancCPlugin.h:4665
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:4710
OrthancPluginImage * OrthancPluginDecodeDicomImage(OrthancPluginContext *context, const void *buffer, uint32_t bufferSize, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition OrthancCPlugin.h:6092
OrthancPluginImage * OrthancPluginUncompressImage(OrthancPluginContext *context, const void *data, uint32_t size, OrthancPluginImageFormat format)
Decode a compressed image.
Definition OrthancCPlugin.h:4623
const char * OrthancPluginGetFontName(OrthancPluginContext *context, uint32_t fontIndex)
Return the name of a font.
Definition OrthancCPlugin.h:5086
OrthancPluginImageFormat
Definition OrthancCPlugin.h:875
struct _OrthancPluginStorageArea_t OrthancPluginStorageArea
Opaque structure that represents the storage area that is actually used by Orthanc.
Definition OrthancCPlugin.h:1329
OrthancPluginCompressionType
Definition OrthancCPlugin.h:859
uint32_t OrthancPluginGetImageWidth(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the width of an image.
Definition OrthancCPlugin.h:4478
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:4257
uint32_t OrthancPluginGetFontSize(OrthancPluginContext *context, uint32_t fontIndex)
Return the size of a font.
Definition OrthancCPlugin.h:5118
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:6046
struct _OrthancPluginImage_t OrthancPluginImage
Opaque structure that represents an image that is uncompressed in memory.
Definition OrthancCPlugin.h:1321
@ OrthancPluginPixelFormat_RGBA32
Color image in RGBA32 format.
Definition OrthancCPlugin.h:743
@ OrthancPluginPixelFormat_RGB48
Color image in RGB48 format.
Definition OrthancCPlugin.h:753
@ OrthancPluginPixelFormat_Grayscale8
Graylevel 8bpp image.
Definition OrthancCPlugin.h:711
@ OrthancPluginPixelFormat_SignedGrayscale16
Graylevel, signed 16bpp image.
Definition OrthancCPlugin.h:727
@ OrthancPluginPixelFormat_Float32
Graylevel, floating-point 32bpp image.
Definition OrthancCPlugin.h:769
@ OrthancPluginPixelFormat_RGB24
Color image in RGB24 format.
Definition OrthancCPlugin.h:735
@ OrthancPluginPixelFormat_BGRA32
Color image in BGRA32 format.
Definition OrthancCPlugin.h:777
@ OrthancPluginPixelFormat_Unknown
Definition OrthancCPlugin.h:745
@ OrthancPluginPixelFormat_Grayscale64
Graylevel, unsigned 64bpp image.
Definition OrthancCPlugin.h:785
@ OrthancPluginPixelFormat_Grayscale32
Graylevel, unsigned 32bpp image.
Definition OrthancCPlugin.h:761
@ OrthancPluginPixelFormat_Grayscale16
Graylevel, unsigned 16bpp image.
Definition OrthancCPlugin.h:719
@ OrthancPluginImageFormat_Png
Definition OrthancCPlugin.h:876
@ OrthancPluginImageFormat_Jpeg
Definition OrthancCPlugin.h:877
@ OrthancPluginImageFormat_Dicom
Definition OrthancCPlugin.h:878
@ OrthancPluginCompressionType_Gzip
Definition OrthancCPlugin.h:862
@ OrthancPluginCompressionType_ZlibWithSize
Definition OrthancCPlugin.h:861
@ OrthancPluginCompressionType_None
Definition OrthancCPlugin.h:864
@ OrthancPluginCompressionType_Zlib
Definition OrthancCPlugin.h:860
@ OrthancPluginCompressionType_GzipWithSize
Definition OrthancCPlugin.h:863
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:2830
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:2865
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:2978
char * OrthancPluginLookupStudyWithAccessionNumber(OrthancPluginContext *context, const char *accessionNumber)
Look for a study, using the accession number.
Definition OrthancCPlugin.h:3114
char * OrthancPluginLookupSeries(OrthancPluginContext *context, const char *seriesUID)
Look for a series.
Definition OrthancCPlugin.h:3149
OrthancPluginErrorCode OrthancPluginSetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *value)
Set the value of a global property.
Definition OrthancCPlugin.h:4015
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:2942
char * OrthancPluginGetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *defaultValue)
Get the value of a global property.
Definition OrthancCPlugin.h:3976
char * OrthancPluginLookupStudy(OrthancPluginContext *context, const char *studyUID)
Look for a study.
Definition OrthancCPlugin.h:3079
OrthancPluginErrorCode OrthancPluginRestApiGet(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri)
Make a GET call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2763
char * OrthancPluginLookupInstance(OrthancPluginContext *context, const char *sopInstanceUID)
Look for an instance.
Definition OrthancCPlugin.h:3184
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:2793
char * OrthancPluginLookupPatient(OrthancPluginContext *context, const char *patientID)
Look for a patient.
Definition OrthancCPlugin.h:3044
OrthancPluginErrorCode OrthancPluginRestApiDelete(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2894
OrthancPluginErrorCode OrthancPluginRestApiDeleteAfterPlugins(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the REST API, as tainted by the plugins.
Definition OrthancCPlugin.h:2917
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:9459
char * OrthancPluginGenerateRestApiAuthorizationToken(OrthancPluginContext *context)
Generate a token to grant full access to the REST API of Orthanc.
Definition OrthancCPlugin.h:9256
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:5658
OrthancPluginErrorCode OrthancPluginGetDicomForInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *instanceId)
Retrieve a DICOM instance using its Orthanc identifier.
Definition OrthancCPlugin.h:2730
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:2689
void OrthancPluginSendUnauthorized(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *realm)
Signal that a REST request is not authorized.
Definition OrthancCPlugin.h:3252
void OrthancPluginSetHttpErrorDetails(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *details, uint8_t log)
Provide a detailed description for an HTTP error.
Definition OrthancCPlugin.h:7545
void OrthancPluginSendMethodNotAllowed(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *allowedMethods)
Signal that this URI does not support this HTTP method.
Definition OrthancCPlugin.h:3275
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:10097
void OrthancPluginAnswerBuffer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const void *answer, uint32_t answerSize, const char *mimeType)
Answer to a REST request.
Definition OrthancCPlugin.h:2632
void OrthancPluginSendHttpStatusCode(OrthancPluginContext *context, OrthancPluginRestOutput *output, uint16_t status)
Send a HTTP status code.
Definition OrthancCPlugin.h:3229
void OrthancPluginSetHttpHeader(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *key, const char *value)
Set some HTTP header.
Definition OrthancCPlugin.h:3330
OrthancPluginErrorCode OrthancPluginStartStreamAnswer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *contentType)
Start an HTTP stream answer.
Definition OrthancCPlugin.h:10069
void OrthancPluginSetCookie(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *cookie, const char *value)
Set a cookie.
Definition OrthancCPlugin.h:3305
void OrthancPluginRedirect(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *redirection)
Redirect a REST request.
Definition OrthancCPlugin.h:3012
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:4802
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:4215
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:6264
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:4409
OrthancPluginErrorCode OrthancPluginStartMultipartAnswer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *subType, const char *contentType)
Start an HTTP multipart answer.
Definition OrthancCPlugin.h:4186
OrthancPluginErrorCode(* OrthancPluginJobStop)(void *job, OrthancPluginJobStopReason reason)
Callback executed once one custom job leaves the "running" state.
Definition OrthancCPlugin.h:2087
OrthancPluginErrorCode(* OrthancPluginServerChunkedRequestReaderExecute)(OrthancPluginServerChunkedRequestReader *reader, OrthancPluginRestOutput *output)
Callback invoked whenever the request body is entirely received.
Definition OrthancCPlugin.h:8169
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:6379
struct _OrthancPluginJob_t OrthancPluginJob
Opaque structure to a job to be executed by Orthanc.
Definition OrthancCPlugin.h:1389
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:9390
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:10030
void OrthancPluginLogInfo(OrthancPluginContext *context, const char *message)
Log an information.
Definition OrthancCPlugin.h:2486
void OrthancPluginFreeFindMatcher(OrthancPluginContext *context, OrthancPluginFindMatcher *matcher)
Free a C-Find matcher.
Definition OrthancCPlugin.h:6807
void OrthancPluginFreePeers(OrthancPluginContext *context, OrthancPluginPeers *peers)
Free the list of available Orthanc peers.
Definition OrthancCPlugin.h:6948
OrthancPluginLogLevel
Definition OrthancCPlugin.h:1173
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:5463
OrthancPluginIdentifierConstraint
Definition OrthancCPlugin.h:979
void OrthancPluginExtendOrthancExplorer2(OrthancPluginContext *context, const char *plugin, const char *javascript)
Extend the JavaScript code of Orthanc Explorer.
Definition OrthancCPlugin.h:3941
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:5409
OrthancPluginResourceType
Definition OrthancCPlugin.h:811
void OrthancPluginSetRootUri2(OrthancPluginContext *context, const char *plugin, const char *uri)
Set the URI where the plugin provides its Web interface.
Definition OrthancCPlugin.h:3839
void OrthancPluginSetMetricsIntegerValue(OrthancPluginContext *context, const char *name, int64_t value, OrthancPluginMetricsType type)
Set the value of an integer metrics.
Definition OrthancCPlugin.h:9968
OrthancPluginLogCategory
Definition OrthancCPlugin.h:1190
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:10938
OrthancPluginErrorCode OrthancPluginWriteFile(OrthancPluginContext *context, const char *path, const void *data, uint32_t size)
Write a file.
Definition OrthancCPlugin.h:4325
const char * OrthancPluginKeysValuesIteratorGetKey(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Get the current key of an iterator over a key-value store.
Definition OrthancCPlugin.h:10471
uint32_t OrthancPluginGetCommandLineArgumentsCount(OrthancPluginContext *context)
Get the number of command-line arguments.
Definition OrthancCPlugin.h:4046
OrthancPluginErrorCode OrthancPluginKeysValuesIteratorNext(OrthancPluginContext *context, uint8_t *done, OrthancPluginKeysValuesIterator *iterator)
Read the next element of an iterator over a key-value store.
Definition OrthancCPlugin.h:10441
char * OrthancPluginComputeMd5(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute an MD5 hash.
Definition OrthancCPlugin.h:6138
OrthancPluginErrorCode
Definition OrthancCPlugin.h:240
struct _OrthancPluginPeers_t OrthancPluginPeers
Opaque structure to the set of remote Orthanc Peers that are known to the local Orthanc server.
Definition OrthancCPlugin.h:1380
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:4893
uint32_t(* OrthancPluginChunkedClientRequestGetChunkSize)(void *request)
Callback to read the size of the current request chunk during a chunked transfer.
Definition OrthancCPlugin.h:7969
OrthancPluginErrorCode OrthancPluginRegisterErrorCode(OrthancPluginContext *context, int32_t code, uint16_t httpStatus, const char *message)
Declare a custom error code for this plugin.
Definition OrthancCPlugin.h:5353
OrthancPluginErrorCode OrthancPluginCreateMemoryBuffer(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, uint32_t size)
Create a 32-bit memory buffer.
Definition OrthancCPlugin.h:9217
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:7373
OrthancPluginErrorCode(* OrthancPluginServerChunkedRequestReaderFactory)(OrthancPluginServerChunkedRequestReader **reader, const char *uri, const OrthancPluginHttpRequest *request)
Callback to create a reader to handle incoming chunked HTTP transfers.
Definition OrthancCPlugin.h:8130
OrthancPluginDicomWebBinaryMode
Definition OrthancCPlugin.h:1068
OrthancPluginErrorCode(* OrthancPluginJobGetContent2)(OrthancPluginMemoryBuffer *target, void *job)
Callback to retrieve the content of one custom job.
Definition OrthancCPlugin.h:2007
OrthancPluginErrorCode(* OrthancPluginChunkedClientRequestNext)(void *request)
Callback to advance in the request body during a chunked transfer.
Definition OrthancCPlugin.h:7937
OrthancPluginHttpAuthenticationStatus
Definition OrthancCPlugin.h:1246
struct _OrthancPluginDicomWebNode_t OrthancPluginDicomWebNode
Opaque structure that represents a node in a JSON or XML document used in DICOMweb.
Definition OrthancCPlugin.h:1399
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:10336
float(* OrthancPluginJobGetProgress)(void *job)
Callback to check the progress of one custom job.
Definition OrthancCPlugin.h:1973
char * OrthancPluginEncodeDicomWebJson(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback callback)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:7694
OrthancPluginFindMatcher * OrthancPluginCreateFindMatcher(OrthancPluginContext *context, const void *query, uint32_t size)
Create a C-Find matcher.
Definition OrthancCPlugin.h:6768
OrthancPluginDicomToJsonFlags
Definition OrthancCPlugin.h:943
OrthancPluginJobStepStatus
Definition OrthancCPlugin.h:1025
OrthancPluginCreateDicomFlags
Definition OrthancCPlugin.h:964
void(* OrthancPluginServerChunkedRequestReaderFinalize)(OrthancPluginServerChunkedRequestReader *reader)
Callback invoked to release the resources associated with an incoming HTTP chunked transfer.
Definition OrthancCPlugin.h:8187
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:6841
void OrthancPluginExtendOrthancExplorer(OrthancPluginContext *context, const char *javascript)
Extend the JavaScript code of Orthanc Explorer.
Definition OrthancCPlugin.h:3917
void OrthancPluginLogWarning(OrthancPluginContext *context, const char *message)
Log a warning.
Definition OrthancCPlugin.h:2470
OrthancPluginQueueOrigin
Definition OrthancCPlugin.h:1222
OrthancPluginErrorCode OrthancPluginDequeueValue(OrthancPluginContext *context, uint8_t *found, OrthancPluginMemoryBuffer *target, const char *queueId, OrthancPluginQueueOrigin origin)
Dequeue a value from a queue.
Definition OrthancCPlugin.h:10578
const char * OrthancPluginGetPeerName(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the symbolic name of an Orthanc peer.
Definition OrthancCPlugin.h:7028
OrthancPluginPeers * OrthancPluginGetPeers(OrthancPluginContext *context)
Return the list of available Orthanc peers.
Definition OrthancCPlugin.h:6913
OrthancPluginConstraintType
Definition OrthancCPlugin.h:994
char * OrthancPluginGetOrthancDirectory(OrthancPluginContext *context)
Return the directory containing the Orthanc.
Definition OrthancCPlugin.h:3697
OrthancPluginErrorCode OrthancPluginReadFile(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *path)
Read a file.
Definition OrthancCPlugin.h:4294
OrthancPluginJobStepStatus(* OrthancPluginJobStep)(void *job)
Callback to execute one step of a custom job.
Definition OrthancCPlugin.h:2063
char * OrthancPluginComputeSha1(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute a SHA-1 hash.
Definition OrthancCPlugin.h:6174
char * OrthancPluginGetCommandLineArgument(OrthancPluginContext *context, uint32_t argument)
Get the value of a command-line argument.
Definition OrthancCPlugin.h:4080
void OrthancPluginSetMetricsValue(OrthancPluginContext *context, const char *name, float value, OrthancPluginMetricsType type)
Set the value of a floating-point metrics.
Definition OrthancCPlugin.h:7625
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:8149
OrthancPluginReceivedInstanceAction
Definition OrthancCPlugin.h:1129
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:8049
int32_t(* OrthancPluginJobGetSerialized2)(OrthancPluginMemoryBuffer *target, void *job)
Callback to serialize one custom job.
Definition OrthancCPlugin.h:2047
void OrthancPluginFreeMemoryBuffer64(OrthancPluginContext *context, OrthancPluginMemoryBuffer64 *buffer)
Free a memory buffer.
Definition OrthancCPlugin.h:2438
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:4935
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:10271
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:5551
OrthancPluginErrorCode OrthancPluginSetStableStatus(OrthancPluginContext *context, uint8_t *statusHasChanged, const char *resourceId, OrthancPluginStableStatus stableStatus)
Change the "Stable" status of a resource.
Definition OrthancCPlugin.h:10651
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:5929
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:5600
void OrthancPluginFreeKeysValuesIterator(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Free an iterator over a key-value store.
Definition OrthancCPlugin.h:10413
void OrthancPluginFreeJob(OrthancPluginContext *context, OrthancPluginJob *job)
Free a custom job.
Definition OrthancCPlugin.h:7429
const char * OrthancPluginGetDatabaseServerIdentifier(OrthancPluginContext *context)
Gets the DatabaseServerIdentifier.
Definition OrthancCPlugin.h:9782
char * OrthancPluginGenerateUuid(OrthancPluginContext *context)
Generate an UUID.
Definition OrthancCPlugin.h:6435
OrthancPluginStorageCommitmentFailureReason
Definition OrthancCPlugin.h:1081
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:7900
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:7117
OrthancPluginMetricsType
Definition OrthancCPlugin.h:1051
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:10902
const char * OrthancPluginAutodetectMimeType(OrthancPluginContext *context, const char *path)
Detect the MIME type of a file.
Definition OrthancCPlugin.h:7578
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:10237
OrthancPluginErrorCode OrthancPluginHttpDelete(OrthancPluginContext *context, const char *url, const char *username, const char *password)
Issue a HTTP DELETE call.
Definition OrthancCPlugin.h:4973
uint8_t(* OrthancPluginChunkedClientRequestIsDone)(void *request)
Callback to know whether the request body is entirely read during a chunked transfer.
Definition OrthancCPlugin.h:7920
const void *(* OrthancPluginChunkedClientRequestGetChunkData)(void *request)
Callback to read the current chunk of the request body during a chunked transfer.
Definition OrthancCPlugin.h:7953
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:10162
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:7286
void OrthancPluginFreeMemoryBuffer(OrthancPluginContext *context, OrthancPluginMemoryBuffer *buffer)
Free a memory buffer.
Definition OrthancCPlugin.h:2421
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:10541
char * OrthancPluginEncodeDicomWebXml(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback callback)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:7737
const char *(* OrthancPluginJobGetSerialized)(void *job)
Callback to serialize one custom job.
Definition OrthancCPlugin.h:2027
char * OrthancPluginGetConfiguration(OrthancPluginContext *context)
Return the content of the configuration file(s).
Definition OrthancCPlugin.h:4145
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:10380
OrthancPluginErrorCode OrthancPluginCreateMemoryBuffer64(OrthancPluginContext *context, OrthancPluginMemoryBuffer64 *target, uint64_t size)
Create a 64-bit memory buffer.
Definition OrthancCPlugin.h:9303
OrthancPluginLoadDicomInstanceMode
Definition OrthancCPlugin.h:1143
OrthancPluginStoreStatus
Definition OrthancCPlugin.h:1207
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:7879
uint32_t OrthancPluginGetPeersCount(OrthancPluginContext *context, const OrthancPluginPeers *peers)
Get the number of Orthanc peers.
Definition OrthancCPlugin.h:6979
const char *(* OrthancPluginJobGetContent)(void *job)
Callback to retrieve the content of one custom job.
Definition OrthancCPlugin.h:1989
OrthancPluginValueRepresentation
Definition OrthancCPlugin.h:889
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:10793
char * OrthancPluginSubmitJob(OrthancPluginContext *context, OrthancPluginJob *job, int32_t priority)
Submit a new job to the jobs engine of Orthanc.
Definition OrthancCPlugin.h:7462
OrthancPluginErrorCode OrthancPluginKeysValuesIteratorGetValue(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginKeysValuesIterator *iterator)
Get the current value of an iterator over a key-value store.
Definition OrthancCPlugin.h:10511
OrthancPluginErrorCode OrthancPluginHttpGet(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *url, const char *username, const char *password)
Issue a HTTP GET call.
Definition OrthancCPlugin.h:4855
OrthancPluginJobStopReason
Definition OrthancCPlugin.h:1039
OrthancPluginErrorCode OrthancPluginDeleteKeyValue(OrthancPluginContext *context, const char *storeId, const char *key)
Delete a key-value pair from the Orthanc database.
Definition OrthancCPlugin.h:10303
char * OrthancPluginGetOrthancPath(OrthancPluginContext *context)
Return the path to the Orthanc executable.
Definition OrthancCPlugin.h:3667
OrthancPluginDicomToJsonFormat
Definition OrthancCPlugin.h:928
void OrthancPluginSetDescription2(OrthancPluginContext *context, const char *plugin, const char *description)
Set a description for this plugin.
Definition OrthancCPlugin.h:3890
OrthancPluginErrorCode OrthancPluginGetAttachmentCustomData(OrthancPluginContext *context, OrthancPluginMemoryBuffer *customData, const char *attachmentUuid)
Retrieve the custom data associated with an attachment in the Orthanc database.
Definition OrthancCPlugin.h:10204
void OrthancPluginLogError(OrthancPluginContext *context, const char *message)
Log an error.
Definition OrthancCPlugin.h:2454
char * OrthancPluginGetConfigurationPath(OrthancPluginContext *context)
Return the path to the configuration file(s).
Definition OrthancCPlugin.h:3732
OrthancPluginHttpMethod
Definition OrthancCPlugin.h:369
void OrthancPluginSetRootUri(OrthancPluginContext *context, const char *uri)
Set the URI where the plugin provides its Web interface.
Definition OrthancCPlugin.h:3813
char * OrthancPluginEncodeDicomWebXml2(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:7835
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:7199
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:1371
char * OrthancPluginEncodeDicomWebJson2(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:7790
OrthancPluginErrorCode OrthancPluginLookupDictionary(OrthancPluginContext *context, OrthancPluginDictionaryEntry *target, const char *name)
Get information about the given DICOM tag.
Definition OrthancCPlugin.h:6220
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:10610
OrthancPluginInstanceOrigin
Definition OrthancCPlugin.h:1009
void(* OrthancPluginJobFinalize)(void *job)
Callback to finalize one custom job.
Definition OrthancCPlugin.h:1960
void OrthancPluginFreeString(OrthancPluginContext *context, char *str)
Free a string.
Definition OrthancCPlugin.h:2256
OrthancPluginErrorCode OrthancPluginSetCurrentThreadName(OrthancPluginContext *context, const char *threadName)
Set the name of the current thread.
Definition OrthancCPlugin.h:9996
OrthancPluginErrorCode(* OrthancPluginJobReset)(void *job)
Callback executed once one stopped custom job is started again.
Definition OrthancCPlugin.h:2104
const char * OrthancPluginGetErrorDescription(OrthancPluginContext *context, OrthancPluginErrorCode error)
Get the description of a given error code.
Definition OrthancCPlugin.h:4356
struct _OrthancPluginContext_t OrthancPluginContext
Data structure that contains information about the Orthanc core.
OrthancPluginContentType
Definition OrthancCPlugin.h:796
const char * OrthancPluginGetPeerUrl(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the base URL of an Orthanc peer.
Definition OrthancCPlugin.h:7070
void OrthancPluginSetDescription(OrthancPluginContext *context, const char *description)
Set a description for this plugin.
Definition OrthancCPlugin.h:3866
OrthancPluginStableStatus
Definition OrthancCPlugin.h:1234
char * OrthancPluginGetTagName(OrthancPluginContext *context, uint16_t group, uint16_t element, const char *privateCreator)
Returns the symbolic name of a DICOM tag.
Definition OrthancCPlugin.h:8285
@ OrthancPluginLogLevel_Warning
Definition OrthancCPlugin.h:1175
@ OrthancPluginLogLevel_Trace
Definition OrthancCPlugin.h:1177
@ OrthancPluginLogLevel_Error
Definition OrthancCPlugin.h:1174
@ OrthancPluginLogLevel_Info
Definition OrthancCPlugin.h:1176
@ OrthancPluginIdentifierConstraint_Wildcard
Definition OrthancCPlugin.h:983
@ OrthancPluginIdentifierConstraint_Equal
Definition OrthancCPlugin.h:980
@ OrthancPluginIdentifierConstraint_SmallerOrEqual
Definition OrthancCPlugin.h:981
@ OrthancPluginIdentifierConstraint_GreaterOrEqual
Definition OrthancCPlugin.h:982
@ OrthancPluginResourceType_Instance
Definition OrthancCPlugin.h:815
@ OrthancPluginResourceType_None
Definition OrthancCPlugin.h:816
@ OrthancPluginResourceType_Series
Definition OrthancCPlugin.h:814
@ OrthancPluginResourceType_Study
Definition OrthancCPlugin.h:813
@ OrthancPluginResourceType_Patient
Definition OrthancCPlugin.h:812
@ OrthancPluginLogCategory_Dicom
Definition OrthancCPlugin.h:1195
@ OrthancPluginLogCategory_Jobs
Definition OrthancCPlugin.h:1196
@ OrthancPluginLogCategory_Sqlite
Definition OrthancCPlugin.h:1194
@ OrthancPluginLogCategory_Plugins
Definition OrthancCPlugin.h:1192
@ OrthancPluginLogCategory_Generic
Definition OrthancCPlugin.h:1191
@ OrthancPluginLogCategory_Lua
Definition OrthancCPlugin.h:1197
@ OrthancPluginLogCategory_Http
Definition OrthancCPlugin.h:1193
@ OrthancPluginErrorCode_CreateDicomBadParent
Definition OrthancCPlugin.h:330
@ OrthancPluginErrorCode_MainDicomTagsMultiplyDefined
Definition OrthancCPlugin.h:286
@ OrthancPluginErrorCode_SQLiteFlush
Definition OrthancCPlugin.h:298
@ OrthancPluginErrorCode_IncompatibleDatabaseVersion
Definition OrthancCPlugin.h:260
@ OrthancPluginErrorCode_BadSequenceOfCalls
Definition OrthancCPlugin.h:248
@ OrthancPluginErrorCode_SharedLibrary
Definition OrthancCPlugin.h:267
@ OrthancPluginErrorCode_NullPointer
Definition OrthancCPlugin.h:277
@ OrthancPluginErrorCode_NotLuaPredicate
Definition OrthancCPlugin.h:340
@ OrthancPluginErrorCode_LuaAlreadyExecuted
Definition OrthancCPlugin.h:338
@ OrthancPluginErrorCode_NotAcceptable
Definition OrthancCPlugin.h:276
@ OrthancPluginErrorCode_FullStorage
Definition OrthancCPlugin.h:261
@ OrthancPluginErrorCode_DatabaseBackendAlreadyRegistered
Definition OrthancCPlugin.h:343
@ OrthancPluginErrorCode_InexistentFile
Definition OrthancCPlugin.h:255
@ OrthancPluginErrorCode_CreateDicomParentEncoding
Definition OrthancCPlugin.h:332
@ OrthancPluginErrorCode_CannotOrderSlices
Definition OrthancCPlugin.h:346
@ OrthancPluginErrorCode_InternalError
Definition OrthancCPlugin.h:241
@ OrthancPluginErrorCode_DiscontinuedAbi
Definition OrthancCPlugin.h:282
@ OrthancPluginErrorCode_NoCFindHandler
Definition OrthancCPlugin.h:316
@ OrthancPluginErrorCode_SQLiteCommitWithoutTransaction
Definition OrthancCPlugin.h:296
@ OrthancPluginErrorCode_DatabasePlugin
Definition OrthancCPlugin.h:273
@ OrthancPluginErrorCode_SQLiteStatementAlreadyUsed
Definition OrthancCPlugin.h:293
@ OrthancPluginErrorCode_SQLiteCannotRun
Definition OrthancCPlugin.h:299
@ OrthancPluginErrorCode_UnknownPluginService
Definition OrthancCPlugin.h:268
@ OrthancPluginErrorCode_JsonToLuaTable
Definition OrthancCPlugin.h:335
@ OrthancPluginErrorCode_CreateDicomOverrideTag
Definition OrthancCPlugin.h:326
@ OrthancPluginErrorCode_SQLiteBindOutOfRange
Definition OrthancCPlugin.h:301
@ OrthancPluginErrorCode_ParameterOutOfRange
Definition OrthancCPlugin.h:245
@ OrthancPluginErrorCode_SQLiteRegisterFunction
Definition OrthancCPlugin.h:297
@ OrthancPluginErrorCode_SQLiteTransactionBegin
Definition OrthancCPlugin.h:305
@ OrthancPluginErrorCode_CreateDicomNoPayload
Definition OrthancCPlugin.h:328
@ OrthancPluginErrorCode_Unauthorized
Definition OrthancCPlugin.h:271
@ OrthancPluginErrorCode_RegularFileExpected
Definition OrthancCPlugin.h:312
@ OrthancPluginErrorCode_DicomPortInUse
Definition OrthancCPlugin.h:310
@ OrthancPluginErrorCode_BadApplicationEntityTitle
Definition OrthancCPlugin.h:315
@ OrthancPluginErrorCode_NoCStoreHandler
Definition OrthancCPlugin.h:318
@ OrthancPluginErrorCode_PathToExecutable
Definition OrthancCPlugin.h:313
@ OrthancPluginErrorCode_NoSopClassOrInstance
Definition OrthancCPlugin.h:320
@ OrthancPluginErrorCode_BadFont
Definition OrthancCPlugin.h:272
@ OrthancPluginErrorCode_DicomGetUnavailable
Definition OrthancCPlugin.h:351
@ OrthancPluginErrorCode_DatabaseUnavailable
Definition OrthancCPlugin.h:278
@ OrthancPluginErrorCode_CannotCreateLua
Definition OrthancCPlugin.h:336
@ OrthancPluginErrorCode_SQLiteExecute
Definition OrthancCPlugin.h:294
@ OrthancPluginErrorCode_UriSyntax
Definition OrthancCPlugin.h:254
@ OrthancPluginErrorCode_DirectoryOverFile
Definition OrthancCPlugin.h:306
@ OrthancPluginErrorCode_Revision
Definition OrthancCPlugin.h:285
@ OrthancPluginErrorCode_InexistentTag
Definition OrthancCPlugin.h:263
@ OrthancPluginErrorCode_IncompatibleImageFormat
Definition OrthancCPlugin.h:265
@ OrthancPluginErrorCode_UnsupportedMediaType
Definition OrthancCPlugin.h:352
@ OrthancPluginErrorCode_DicomFindUnavailable
Definition OrthancCPlugin.h:322
@ OrthancPluginErrorCode_SQLiteCannotStep
Definition OrthancCPlugin.h:300
@ OrthancPluginErrorCode_CreateDicomParentIsInstance
Definition OrthancCPlugin.h:331
@ OrthancPluginErrorCode_DuplicateResource
Definition OrthancCPlugin.h:288
@ OrthancPluginErrorCode_StorageAreaAlreadyRegistered
Definition OrthancCPlugin.h:342
@ OrthancPluginErrorCode_LuaReturnsNoString
Definition OrthancCPlugin.h:341
@ OrthancPluginErrorCode_UnknownResource
Definition OrthancCPlugin.h:259
@ OrthancPluginErrorCode_CreateDicomNotString
Definition OrthancCPlugin.h:325
@ OrthancPluginErrorCode_HttpPortInUse
Definition OrthancCPlugin.h:309
@ OrthancPluginErrorCode_SslDisabled
Definition OrthancCPlugin.h:345
@ OrthancPluginErrorCode_UnknownModality
Definition OrthancCPlugin.h:333
@ OrthancPluginErrorCode_BadHttpStatusInRest
Definition OrthancCPlugin.h:311
@ OrthancPluginErrorCode_BadGeometry
Definition OrthancCPlugin.h:280
@ OrthancPluginErrorCode_AlreadyExistingTag
Definition OrthancCPlugin.h:348
@ OrthancPluginErrorCode_FileStorageCannotWrite
Definition OrthancCPlugin.h:307
@ OrthancPluginErrorCode_CreateDicomUseDataUriScheme
Definition OrthancCPlugin.h:329
@ OrthancPluginErrorCode_DirectoryExpected
Definition OrthancCPlugin.h:308
@ OrthancPluginErrorCode_NoCMoveHandler
Definition OrthancCPlugin.h:317
@ OrthancPluginErrorCode_SQLitePrepareStatement
Definition OrthancCPlugin.h:302
@ OrthancPluginErrorCode_CorruptedFile
Definition OrthancCPlugin.h:262
@ OrthancPluginErrorCode_StorageAreaPlugin
Definition OrthancCPlugin.h:274
@ OrthancPluginErrorCode_BadJobOrdering
Definition OrthancCPlugin.h:334
@ OrthancPluginErrorCode_IncompatibleConfigurations
Definition OrthancCPlugin.h:289
@ OrthancPluginErrorCode_DatabaseCannotSerialize
Definition OrthancCPlugin.h:284
@ OrthancPluginErrorCode_CanceledJob
Definition OrthancCPlugin.h:279
@ OrthancPluginErrorCode_BadRange
Definition OrthancCPlugin.h:283
@ OrthancPluginErrorCode_NotImplemented
Definition OrthancCPlugin.h:244
@ OrthancPluginErrorCode_SslInitialization
Definition OrthancCPlugin.h:281
@ OrthancPluginErrorCode_IncompatibleImageSize
Definition OrthancCPlugin.h:266
@ OrthancPluginErrorCode_BadFileFormat
Definition OrthancCPlugin.h:257
@ OrthancPluginErrorCode_BadRequest
Definition OrthancCPlugin.h:250
@ OrthancPluginErrorCode_SystemCommand
Definition OrthancCPlugin.h:252
@ OrthancPluginErrorCode_NoStorageCommitmentHandler
Definition OrthancCPlugin.h:349
@ OrthancPluginErrorCode_SQLiteAlreadyOpened
Definition OrthancCPlugin.h:291
@ OrthancPluginErrorCode_Plugin
Definition OrthancCPlugin.h:243
@ OrthancPluginErrorCode_CannotExecuteLua
Definition OrthancCPlugin.h:337
@ OrthancPluginErrorCode_SQLiteRollbackWithoutTransaction
Definition OrthancCPlugin.h:295
@ OrthancPluginErrorCode_UnknownDicomTag
Definition OrthancCPlugin.h:269
@ OrthancPluginErrorCode_ForbiddenAccess
Definition OrthancCPlugin.h:287
@ OrthancPluginErrorCode_NoPresentationContext
Definition OrthancCPlugin.h:321
@ OrthancPluginErrorCode_EmptyRequest
Definition OrthancCPlugin.h:275
@ OrthancPluginErrorCode_DatabaseNotInitialized
Definition OrthancCPlugin.h:344
@ OrthancPluginErrorCode_DicomMoveUnavailable
Definition OrthancCPlugin.h:323
@ OrthancPluginErrorCode_SQLiteTransactionCommit
Definition OrthancCPlugin.h:304
@ OrthancPluginErrorCode_BadJson
Definition OrthancCPlugin.h:270
@ OrthancPluginErrorCode_Success
Definition OrthancCPlugin.h:242
@ OrthancPluginErrorCode_NetworkProtocol
Definition OrthancCPlugin.h:251
@ OrthancPluginErrorCode_NoApplicationEntityFilter
Definition OrthancCPlugin.h:319
@ OrthancPluginErrorCode_InexistentItem
Definition OrthancCPlugin.h:249
@ OrthancPluginErrorCode_Timeout
Definition OrthancCPlugin.h:258
@ OrthancPluginErrorCode_LuaBadOutput
Definition OrthancCPlugin.h:339
@ OrthancPluginErrorCode_SQLiteTransactionAlreadyStarted
Definition OrthancCPlugin.h:303
@ OrthancPluginErrorCode_NoCGetHandler
Definition OrthancCPlugin.h:350
@ OrthancPluginErrorCode_SQLiteNotOpened
Definition OrthancCPlugin.h:290
@ OrthancPluginErrorCode_ReadOnly
Definition OrthancCPlugin.h:264
@ OrthancPluginErrorCode_CannotStoreInstance
Definition OrthancCPlugin.h:324
@ OrthancPluginErrorCode_CannotWriteFile
Definition OrthancCPlugin.h:256
@ OrthancPluginErrorCode_BadParameterType
Definition OrthancCPlugin.h:247
@ OrthancPluginErrorCode_NotEnoughMemory
Definition OrthancCPlugin.h:246
@ OrthancPluginErrorCode_CreateDicomUseContent
Definition OrthancCPlugin.h:327
@ OrthancPluginErrorCode_Database
Definition OrthancCPlugin.h:253
@ OrthancPluginErrorCode_SQLiteCannotOpen
Definition OrthancCPlugin.h:292
@ OrthancPluginErrorCode_MakeDirectory
Definition OrthancCPlugin.h:314
@ OrthancPluginErrorCode_NoWorklistHandler
Definition OrthancCPlugin.h:347
@ OrthancPluginDicomWebBinaryMode_InlineBinary
Definition OrthancCPlugin.h:1070
@ OrthancPluginDicomWebBinaryMode_BulkDataUri
Definition OrthancCPlugin.h:1071
@ OrthancPluginDicomWebBinaryMode_Ignore
Definition OrthancCPlugin.h:1069
@ OrthancPluginHttpAuthenticationStatus_Forbidden
Definition OrthancCPlugin.h:1249
@ OrthancPluginHttpAuthenticationStatus_Redirect
Definition OrthancCPlugin.h:1250
@ OrthancPluginHttpAuthenticationStatus_Unauthorized
Definition OrthancCPlugin.h:1248
@ OrthancPluginHttpAuthenticationStatus_Granted
Definition OrthancCPlugin.h:1247
@ OrthancPluginDicomToJsonFlags_ConvertBinaryToAscii
Definition OrthancCPlugin.h:949
@ OrthancPluginDicomToJsonFlags_IncludeBinary
Definition OrthancCPlugin.h:945
@ OrthancPluginDicomToJsonFlags_IncludePixelData
Definition OrthancCPlugin.h:948
@ OrthancPluginDicomToJsonFlags_IncludeUnknownTags
Definition OrthancCPlugin.h:947
@ OrthancPluginDicomToJsonFlags_SkipGroupLengths
Definition OrthancCPlugin.h:952
@ OrthancPluginDicomToJsonFlags_None
Definition OrthancCPlugin.h:944
@ OrthancPluginDicomToJsonFlags_ConvertBinaryToNull
Definition OrthancCPlugin.h:950
@ OrthancPluginDicomToJsonFlags_StopAfterPixelData
Definition OrthancCPlugin.h:951
@ OrthancPluginDicomToJsonFlags_IncludePrivateTags
Definition OrthancCPlugin.h:946
@ OrthancPluginJobStepStatus_Continue
Definition OrthancCPlugin.h:1028
@ OrthancPluginJobStepStatus_Success
Definition OrthancCPlugin.h:1026
@ OrthancPluginJobStepStatus_Failure
Definition OrthancCPlugin.h:1027
@ OrthancPluginCreateDicomFlags_DecodeDataUriScheme
Definition OrthancCPlugin.h:966
@ OrthancPluginCreateDicomFlags_None
Definition OrthancCPlugin.h:965
@ OrthancPluginCreateDicomFlags_GenerateIdentifiers
Definition OrthancCPlugin.h:967
@ OrthancPluginQueueOrigin_Front
Definition OrthancCPlugin.h:1223
@ OrthancPluginQueueOrigin_Back
Definition OrthancCPlugin.h:1224
@ OrthancPluginConstraintType_SmallerOrEqual
Definition OrthancCPlugin.h:996
@ OrthancPluginConstraintType_List
Definition OrthancCPlugin.h:999
@ OrthancPluginConstraintType_GreaterOrEqual
Definition OrthancCPlugin.h:997
@ OrthancPluginConstraintType_Equal
Definition OrthancCPlugin.h:995
@ OrthancPluginConstraintType_Wildcard
Definition OrthancCPlugin.h:998
@ OrthancPluginReceivedInstanceAction_KeepAsIs
Definition OrthancCPlugin.h:1130
@ OrthancPluginReceivedInstanceAction_Discard
Definition OrthancCPlugin.h:1132
@ OrthancPluginReceivedInstanceAction_Modify
Definition OrthancCPlugin.h:1131
@ OrthancPluginStorageCommitmentFailureReason_ReferencedSOPClassNotSupported
Definition OrthancCPlugin.h:1108
@ OrthancPluginStorageCommitmentFailureReason_Success
Definition OrthancCPlugin.h:1085
@ OrthancPluginStorageCommitmentFailureReason_DuplicateTransactionUID
Definition OrthancCPlugin.h:1121
@ OrthancPluginStorageCommitmentFailureReason_ClassInstanceConflict
Definition OrthancCPlugin.h:1115
@ OrthancPluginStorageCommitmentFailureReason_ResourceLimitation
Definition OrthancCPlugin.h:1102
@ OrthancPluginStorageCommitmentFailureReason_NoSuchObjectInstance
Definition OrthancCPlugin.h:1096
@ OrthancPluginStorageCommitmentFailureReason_ProcessingFailure
Definition OrthancCPlugin.h:1090
@ OrthancPluginMetricsType_Default
Definition OrthancCPlugin.h:1052
@ OrthancPluginMetricsType_Timer
Definition OrthancCPlugin.h:1059
@ OrthancPluginLoadDicomInstanceMode_UntilPixelData
Definition OrthancCPlugin.h:1153
@ OrthancPluginLoadDicomInstanceMode_WholeDicom
Definition OrthancCPlugin.h:1147
@ OrthancPluginLoadDicomInstanceMode_EmptyPixelData
Definition OrthancCPlugin.h:1160
@ OrthancPluginStoreStatus_Success
Definition OrthancCPlugin.h:1208
@ OrthancPluginStoreStatus_FilteredOut
Definition OrthancCPlugin.h:1211
@ OrthancPluginStoreStatus_StorageFull
Definition OrthancCPlugin.h:1212
@ OrthancPluginStoreStatus_Failure
Definition OrthancCPlugin.h:1210
@ OrthancPluginStoreStatus_AlreadyStored
Definition OrthancCPlugin.h:1209
@ OrthancPluginValueRepresentation_PN
Definition OrthancCPlugin.h:905
@ OrthancPluginValueRepresentation_UL
Definition OrthancCPlugin.h:913
@ OrthancPluginValueRepresentation_UN
Definition OrthancCPlugin.h:914
@ OrthancPluginValueRepresentation_DA
Definition OrthancCPlugin.h:894
@ OrthancPluginValueRepresentation_OF
Definition OrthancCPlugin.h:903
@ OrthancPluginValueRepresentation_OW
Definition OrthancCPlugin.h:904
@ OrthancPluginValueRepresentation_CS
Definition OrthancCPlugin.h:893
@ OrthancPluginValueRepresentation_US
Definition OrthancCPlugin.h:915
@ OrthancPluginValueRepresentation_SH
Definition OrthancCPlugin.h:906
@ OrthancPluginValueRepresentation_FL
Definition OrthancCPlugin.h:898
@ OrthancPluginValueRepresentation_DT
Definition OrthancCPlugin.h:896
@ OrthancPluginValueRepresentation_TM
Definition OrthancCPlugin.h:911
@ OrthancPluginValueRepresentation_SQ
Definition OrthancCPlugin.h:908
@ OrthancPluginValueRepresentation_DS
Definition OrthancCPlugin.h:895
@ OrthancPluginValueRepresentation_OB
Definition OrthancCPlugin.h:902
@ OrthancPluginValueRepresentation_SL
Definition OrthancCPlugin.h:907
@ OrthancPluginValueRepresentation_ST
Definition OrthancCPlugin.h:910
@ OrthancPluginValueRepresentation_IS
Definition OrthancCPlugin.h:899
@ OrthancPluginValueRepresentation_LT
Definition OrthancCPlugin.h:901
@ OrthancPluginValueRepresentation_SS
Definition OrthancCPlugin.h:909
@ OrthancPluginValueRepresentation_UT
Definition OrthancCPlugin.h:916
@ OrthancPluginValueRepresentation_LO
Definition OrthancCPlugin.h:900
@ OrthancPluginValueRepresentation_AE
Definition OrthancCPlugin.h:890
@ OrthancPluginValueRepresentation_FD
Definition OrthancCPlugin.h:897
@ OrthancPluginValueRepresentation_UI
Definition OrthancCPlugin.h:912
@ OrthancPluginValueRepresentation_AS
Definition OrthancCPlugin.h:891
@ OrthancPluginValueRepresentation_AT
Definition OrthancCPlugin.h:892
@ OrthancPluginJobStopReason_Failure
Definition OrthancCPlugin.h:1042
@ OrthancPluginJobStopReason_Success
Definition OrthancCPlugin.h:1040
@ OrthancPluginJobStopReason_Canceled
Definition OrthancCPlugin.h:1043
@ OrthancPluginJobStopReason_Paused
Definition OrthancCPlugin.h:1041
@ OrthancPluginDicomToJsonFormat_Full
Definition OrthancCPlugin.h:929
@ OrthancPluginDicomToJsonFormat_Human
Definition OrthancCPlugin.h:931
@ OrthancPluginDicomToJsonFormat_Short
Definition OrthancCPlugin.h:930
@ OrthancPluginHttpMethod_Delete
Definition OrthancCPlugin.h:373
@ OrthancPluginHttpMethod_Post
Definition OrthancCPlugin.h:371
@ OrthancPluginHttpMethod_Put
Definition OrthancCPlugin.h:372
@ OrthancPluginHttpMethod_Get
Definition OrthancCPlugin.h:370
@ OrthancPluginInstanceOrigin_Unknown
Definition OrthancCPlugin.h:1010
@ OrthancPluginInstanceOrigin_RestApi
Definition OrthancCPlugin.h:1012
@ OrthancPluginInstanceOrigin_Lua
Definition OrthancCPlugin.h:1014
@ OrthancPluginInstanceOrigin_WebDav
Definition OrthancCPlugin.h:1015
@ OrthancPluginInstanceOrigin_DicomProtocol
Definition OrthancCPlugin.h:1011
@ OrthancPluginInstanceOrigin_Plugin
Definition OrthancCPlugin.h:1013
@ OrthancPluginContentType_Dicom
Definition OrthancCPlugin.h:798
@ OrthancPluginContentType_DicomAsJson
Definition OrthancCPlugin.h:799
@ OrthancPluginContentType_Unknown
Definition OrthancCPlugin.h:797
@ OrthancPluginContentType_DicomUntilPixelData
Definition OrthancCPlugin.h:800
@ OrthancPluginStableStatus_Unstable
Definition OrthancCPlugin.h:1236
@ OrthancPluginStableStatus_Stable
Definition OrthancCPlugin.h:1235
An entry in the dictionary of DICOM tags.
Definition OrthancCPlugin.h:2238
uint32_t minMultiplicity
Definition OrthancCPlugin.h:2242
uint32_t maxMultiplicity
Definition OrthancCPlugin.h:2243
OrthancPluginValueRepresentation vr
Definition OrthancCPlugin.h:2241
uint16_t element
Definition OrthancCPlugin.h:2240
uint16_t group
Definition OrthancCPlugin.h:2239
The parameters of a REST request.
Definition OrthancCPlugin.h:384
uint32_t authenticationPayloadSize
The size of the custom authentication payload (0 if no authentication callback is registered).
Definition OrthancCPlugin.h:460
const char *const * getValues
For a GET request, the values of the GET parameters.
Definition OrthancCPlugin.h:413
const char *const * groups
The matched values for the groups of the regular expression.
Definition OrthancCPlugin.h:398
const void * authenticationPayload
If a HTTP authentication callback is registered, the content of the custom payload generated by the c...
Definition OrthancCPlugin.h:454
uint32_t bodySize
For a PUT or POST request, the number of bytes of the body.
Definition OrthancCPlugin.h:423
uint32_t groupsCount
The number of groups of the regular expression.
Definition OrthancCPlugin.h:393
const char *const * headersKeys
The keys of the HTTP headers (always converted to low-case).
Definition OrthancCPlugin.h:438
const void * body
For a PUT or POST request, the content of the body.
Definition OrthancCPlugin.h:418
const char *const * getKeys
For a GET request, the keys of the GET parameters.
Definition OrthancCPlugin.h:408
uint32_t headersCount
The number of HTTP headers.
Definition OrthancCPlugin.h:433
OrthancPluginHttpMethod method
The HTTP method.
Definition OrthancCPlugin.h:388
uint32_t getCount
For a GET request, the number of GET parameters.
Definition OrthancCPlugin.h:403
const char *const * headersValues
The values of the HTTP headers.
Definition OrthancCPlugin.h:443
A 64-bit memory buffer allocated by the core system of Orthanc.
Definition OrthancCPlugin.h:1286
uint64_t size
The number of bytes in the buffer.
Definition OrthancCPlugin.h:1295
void * data
The content of the buffer.
Definition OrthancCPlugin.h:1290
A 32-bit memory buffer allocated by the core system of Orthanc.
Definition OrthancCPlugin.h:1264
uint32_t size
The number of bytes in the buffer.
Definition OrthancCPlugin.h:1273
void * data
The content of the buffer.
Definition OrthancCPlugin.h:1268