Orthanc Plugin SDK 1.13.0
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 13
129#define ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER 0
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 _OrthancPluginService_ClearCurrentThreadName = 64, /* New in Orthanc 1.13.0 */
532
533 /* Registration of callbacks */
534 _OrthancPluginService_RegisterRestCallback = 1000,
535 _OrthancPluginService_RegisterOnStoredInstanceCallback = 1001,
536 _OrthancPluginService_RegisterStorageArea = 1002,
537 _OrthancPluginService_RegisterOnChangeCallback = 1003,
538 _OrthancPluginService_RegisterRestCallbackNoLock = 1004,
539 _OrthancPluginService_RegisterWorklistCallback = 1005,
540 _OrthancPluginService_RegisterDecodeImageCallback = 1006,
541 _OrthancPluginService_RegisterIncomingHttpRequestFilter = 1007,
542 _OrthancPluginService_RegisterFindCallback = 1008,
543 _OrthancPluginService_RegisterMoveCallback = 1009,
544 _OrthancPluginService_RegisterIncomingHttpRequestFilter2 = 1010,
545 _OrthancPluginService_RegisterRefreshMetricsCallback = 1011,
546 _OrthancPluginService_RegisterChunkedRestCallback = 1012, /* New in Orthanc 1.5.7 */
547 _OrthancPluginService_RegisterStorageCommitmentScpCallback = 1013, /* New in Orthanc 1.6.0 */
548 _OrthancPluginService_RegisterIncomingDicomInstanceFilter = 1014, /* New in Orthanc 1.6.1 */
549 _OrthancPluginService_RegisterTranscoderCallback = 1015, /* New in Orthanc 1.7.0 */
550 _OrthancPluginService_RegisterStorageArea2 = 1016, /* New in Orthanc 1.9.0 */
551 _OrthancPluginService_RegisterIncomingCStoreInstanceFilter = 1017, /* New in Orthanc 1.10.0 */
552 _OrthancPluginService_RegisterReceivedInstanceCallback = 1018, /* New in Orthanc 1.10.0 */
553 _OrthancPluginService_RegisterWebDavCollection = 1019, /* New in Orthanc 1.10.1 */
554 _OrthancPluginService_RegisterStorageArea3 = 1020, /* New in Orthanc 1.12.8 */
555 _OrthancPluginService_RegisterHttpAuthentication = 1021, /* New in Orthanc 1.12.9 */
556 _OrthancPluginService_RegisterAuditLogHandler = 1022, /* New in Orthanc 1.12.9 */
557 _OrthancPluginService_RegisterFindCallback2 = 1023, /* New in Orthanc 1.12.10 */
558 _OrthancPluginService_RegisterMoveCallback2 = 1024, /* New in Orthanc 1.12.10 */
559 _OrthancPluginService_RegisterWorklistCallback2 = 1025, /* New in Orthanc 1.12.10 */
560 _OrthancPluginService_RegisterStorageCommitmentScpCallback2 = 1026, /* New in Orthanc 1.12.10 */
561
562 /* Sending answers to REST calls */
563 _OrthancPluginService_AnswerBuffer = 2000,
564 _OrthancPluginService_CompressAndAnswerPngImage = 2001, /* Unused as of Orthanc 0.9.4 */
565 _OrthancPluginService_Redirect = 2002,
566 _OrthancPluginService_SendHttpStatusCode = 2003,
567 _OrthancPluginService_SendUnauthorized = 2004,
568 _OrthancPluginService_SendMethodNotAllowed = 2005,
569 _OrthancPluginService_SetCookie = 2006,
570 _OrthancPluginService_SetHttpHeader = 2007,
571 _OrthancPluginService_StartMultipartAnswer = 2008,
572 _OrthancPluginService_SendMultipartItem = 2009,
573 _OrthancPluginService_SendHttpStatus = 2010,
574 _OrthancPluginService_CompressAndAnswerImage = 2011,
575 _OrthancPluginService_SendMultipartItem2 = 2012,
576 _OrthancPluginService_SetHttpErrorDetails = 2013,
577 _OrthancPluginService_StartStreamAnswer = 2014,
578 _OrthancPluginService_SendStreamChunk = 2015,
579
580 /* Access to the Orthanc database and API */
581 _OrthancPluginService_GetDicomForInstance = 3000,
582 _OrthancPluginService_RestApiGet = 3001,
583 _OrthancPluginService_RestApiPost = 3002,
584 _OrthancPluginService_RestApiDelete = 3003,
585 _OrthancPluginService_RestApiPut = 3004,
586 _OrthancPluginService_LookupPatient = 3005,
587 _OrthancPluginService_LookupStudy = 3006,
588 _OrthancPluginService_LookupSeries = 3007,
589 _OrthancPluginService_LookupInstance = 3008,
590 _OrthancPluginService_LookupStudyWithAccessionNumber = 3009,
591 _OrthancPluginService_RestApiGetAfterPlugins = 3010,
592 _OrthancPluginService_RestApiPostAfterPlugins = 3011,
593 _OrthancPluginService_RestApiDeleteAfterPlugins = 3012,
594 _OrthancPluginService_RestApiPutAfterPlugins = 3013,
595 _OrthancPluginService_ReconstructMainDicomTags = 3014,
596 _OrthancPluginService_RestApiGet2 = 3015,
597 _OrthancPluginService_CallRestApi = 3016, /* New in Orthanc 1.9.2 */
598
599 /* Access to DICOM instances */
600 _OrthancPluginService_GetInstanceRemoteAet = 4000,
601 _OrthancPluginService_GetInstanceSize = 4001,
602 _OrthancPluginService_GetInstanceData = 4002,
603 _OrthancPluginService_GetInstanceJson = 4003,
604 _OrthancPluginService_GetInstanceSimplifiedJson = 4004,
605 _OrthancPluginService_HasInstanceMetadata = 4005,
606 _OrthancPluginService_GetInstanceMetadata = 4006,
607 _OrthancPluginService_GetInstanceOrigin = 4007,
608 _OrthancPluginService_GetInstanceTransferSyntaxUid = 4008,
609 _OrthancPluginService_HasInstancePixelData = 4009,
610 _OrthancPluginService_CreateDicomInstance = 4010, /* New in Orthanc 1.7.0 */
611 _OrthancPluginService_FreeDicomInstance = 4011, /* New in Orthanc 1.7.0 */
612 _OrthancPluginService_GetInstanceFramesCount = 4012, /* New in Orthanc 1.7.0 */
613 _OrthancPluginService_GetInstanceRawFrame = 4013, /* New in Orthanc 1.7.0 */
614 _OrthancPluginService_GetInstanceDecodedFrame = 4014, /* New in Orthanc 1.7.0 */
615 _OrthancPluginService_TranscodeDicomInstance = 4015, /* New in Orthanc 1.7.0 */
616 _OrthancPluginService_SerializeDicomInstance = 4016, /* New in Orthanc 1.7.0 */
617 _OrthancPluginService_GetInstanceAdvancedJson = 4017, /* New in Orthanc 1.7.0 */
618 _OrthancPluginService_GetInstanceDicomWebJson = 4018, /* New in Orthanc 1.7.0 */
619 _OrthancPluginService_GetInstanceDicomWebXml = 4019, /* New in Orthanc 1.7.0 */
620 _OrthancPluginService_LoadDicomInstance = 4020, /* New in Orthanc 1.12.1 */
621
622 /* Services for plugins implementing a database back-end */
623 _OrthancPluginService_RegisterDatabaseBackend = 5000, /* New in Orthanc 0.8.6 */
624 _OrthancPluginService_DatabaseAnswer = 5001,
625 _OrthancPluginService_RegisterDatabaseBackendV2 = 5002, /* New in Orthanc 0.9.4 */
626 _OrthancPluginService_StorageAreaCreate = 5003,
627 _OrthancPluginService_StorageAreaRead = 5004,
628 _OrthancPluginService_StorageAreaRemove = 5005,
629 _OrthancPluginService_RegisterDatabaseBackendV3 = 5006, /* New in Orthanc 1.9.2 */
630 _OrthancPluginService_RegisterDatabaseBackendV4 = 5007, /* New in Orthanc 1.12.0 */
631
632 /* Primitives for handling images */
633 _OrthancPluginService_GetImagePixelFormat = 6000,
634 _OrthancPluginService_GetImageWidth = 6001,
635 _OrthancPluginService_GetImageHeight = 6002,
636 _OrthancPluginService_GetImagePitch = 6003,
637 _OrthancPluginService_GetImageBuffer = 6004,
638 _OrthancPluginService_UncompressImage = 6005,
639 _OrthancPluginService_FreeImage = 6006,
640 _OrthancPluginService_CompressImage = 6007,
641 _OrthancPluginService_ConvertPixelFormat = 6008,
642 _OrthancPluginService_GetFontsCount = 6009,
643 _OrthancPluginService_GetFontInfo = 6010,
644 _OrthancPluginService_DrawText = 6011,
645 _OrthancPluginService_CreateImage = 6012,
646 _OrthancPluginService_CreateImageAccessor = 6013,
647 _OrthancPluginService_DecodeDicomImage = 6014,
648
649 /* Primitives for handling C-Find, C-Move and worklists */
650 _OrthancPluginService_WorklistAddAnswer = 7000,
651 _OrthancPluginService_WorklistMarkIncomplete = 7001,
652 _OrthancPluginService_WorklistIsMatch = 7002,
653 _OrthancPluginService_WorklistGetDicomQuery = 7003,
654 _OrthancPluginService_FindAddAnswer = 7004,
655 _OrthancPluginService_FindMarkIncomplete = 7005,
656 _OrthancPluginService_GetFindQuerySize = 7006,
657 _OrthancPluginService_GetFindQueryTag = 7007,
658 _OrthancPluginService_GetFindQueryTagName = 7008,
659 _OrthancPluginService_GetFindQueryValue = 7009,
660 _OrthancPluginService_CreateFindMatcher = 7010,
661 _OrthancPluginService_FreeFindMatcher = 7011,
662 _OrthancPluginService_FindMatcherIsMatch = 7012,
663
664 /* Primitives for accessing Orthanc Peers (new in 1.4.2) */
665 _OrthancPluginService_GetPeers = 8000,
666 _OrthancPluginService_FreePeers = 8001,
667 _OrthancPluginService_GetPeersCount = 8003,
668 _OrthancPluginService_GetPeerName = 8004,
669 _OrthancPluginService_GetPeerUrl = 8005,
670 _OrthancPluginService_CallPeerApi = 8006,
671 _OrthancPluginService_GetPeerUserProperty = 8007,
672
673 /* Primitives for handling jobs (new in 1.4.2) */
674 _OrthancPluginService_CreateJob = 9000, /* Deprecated since SDK 1.11.3 */
675 _OrthancPluginService_FreeJob = 9001,
676 _OrthancPluginService_SubmitJob = 9002,
677 _OrthancPluginService_RegisterJobsUnserializer = 9003,
678 _OrthancPluginService_CreateJob2 = 9004, /* New in SDK 1.11.3 */
679
680 /* Access to DICOM connection */
681 _OrthancPluginService_GetConnectionRemoteAet = 10000, /* New in SDK 1.12.10 */
682 _OrthancPluginService_GetConnectionRemoteIp = 10001, /* New in SDK 1.12.10 */
683 _OrthancPluginService_GetConnectionCalledAet = 10002, /* New in SDK 1.12.10 */
684
685 _OrthancPluginService_INTERNAL = 0x7fffffff
686 } _OrthancPluginService;
687
688
689 typedef enum
690 {
691 _OrthancPluginProperty_Description = 1,
692 _OrthancPluginProperty_RootUri = 2,
693 _OrthancPluginProperty_OrthancExplorer = 3,
694
695 _OrthancPluginProperty_INTERNAL = 0x7fffffff
696 } _OrthancPluginProperty;
697
698
699
704 typedef enum
705 {
713
721
729
737
745
747
754 OrthancPluginPixelFormat_RGB48 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 7,
755
762 OrthancPluginPixelFormat_Grayscale32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 8,
763
770 OrthancPluginPixelFormat_Float32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 9,
771
778 OrthancPluginPixelFormat_BGRA32 ORTHANC_PLUGIN_SINCE_SDK("1.3.1") = 10,
779
786 OrthancPluginPixelFormat_Grayscale64 ORTHANC_PLUGIN_SINCE_SDK("1.4.0") = 11,
787
788 _OrthancPluginPixelFormat_INTERNAL = 0x7fffffff
790
791
792
796 typedef enum
797 {
801 OrthancPluginContentType_DicomUntilPixelData ORTHANC_PLUGIN_SINCE_SDK("1.9.2") = 3,
802
803 _OrthancPluginContentType_INTERNAL = 0x7fffffff
805
806
807
821
822
823
853
854
869
870
875 typedef enum
876 {
880
881 _OrthancPluginImageFormat_INTERNAL = 0x7fffffff
883
884
889 typedef enum
890 {
925
926 _OrthancPluginValueRepresentation_INTERNAL = 0x7fffffff
928
929
935 typedef enum
936 {
940
941 _OrthancPluginDicomToJsonFormat_INTERNAL = 0x7fffffff
943
944
964
965
971 typedef enum
972 {
973 OrthancPluginCreateDicomFlags_None ORTHANC_PLUGIN_SINCE_SDK("1.2.0") = 0,
976
977 _OrthancPluginCreateDicomFlags_INTERNAL = 0x7fffffff
979
980
995
996
1011
1012
1027
1028
1038
1039
1053
1054
1058 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1059 {
1061
1069
1070
1083
1084
1133
1134
1138 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
1139 {
1143
1144 _OrthancPluginReceivedInstanceAction_INTERNAL = 0x7fffffff
1146
1147
1152 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
1153 {
1158
1164
1171
1172 _OrthancPluginLoadDicomInstanceMode_INTERNAL = 0x7fffffff
1174
1175
1182 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
1183 {
1188
1189 _OrthancPluginLogLevel_INTERNAL = 0x7fffffff
1191
1192
1199 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
1200 {
1208
1209 _OrthancPluginLogCategory_INTERNAL = 0x7fffffff
1211
1212
1216 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1217 {
1223
1224 _OrthancPluginStoreStatus_INTERNAL = 0x7fffffff
1226
1227
1231 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1232 {
1235
1236 _OrthancPluginQueueOrigin_INTERNAL = 0x7fffffff
1238
1239
1243 typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
1244 {
1247
1248 _OrthancPluginStableStatus_INTERNAL = 0x7fffffff
1250
1251
1264
1265
1273 typedef struct
1274 {
1278 void* data;
1279
1283 uint32_t size;
1285
1286
1287
1295 ORTHANC_PLUGIN_SINCE_SDK("1.9.0") typedef struct
1296 {
1300 void* data;
1301
1305 uint64_t size;
1307
1308
1309
1310
1315 typedef struct _OrthancPluginRestOutput_t OrthancPluginRestOutput;
1316
1317
1318
1323 typedef struct _OrthancPluginDicomInstance_t OrthancPluginDicomInstance;
1324
1325
1326
1331 typedef struct _OrthancPluginImage_t OrthancPluginImage;
1332
1333
1334
1339 typedef struct _OrthancPluginStorageArea_t OrthancPluginStorageArea;
1340
1341
1342
1347 typedef struct _OrthancPluginWorklistQuery_t OrthancPluginWorklistQuery;
1348
1349
1350
1355 typedef struct _OrthancPluginWorklistAnswers_t OrthancPluginWorklistAnswers;
1356
1357
1358
1363 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
1364 _OrthancPluginFindQuery_t OrthancPluginFindQuery;
1365
1366
1367
1372 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
1373 _OrthancPluginFindAnswers_t OrthancPluginFindAnswers;
1374
1375
1376
1381 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
1382 _OrthancPluginFindMatcher_t OrthancPluginFindMatcher;
1383
1384
1385
1390 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1391 _OrthancPluginPeers_t OrthancPluginPeers;
1392
1393
1394
1399 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1400 _OrthancPluginJob_t OrthancPluginJob;
1401
1402
1403
1409 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1410 _OrthancPluginDicomWebNode_t OrthancPluginDicomWebNode;
1411
1412
1417 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1418 _OrthancPluginDicomConnection_t OrthancPluginDicomConnection;
1419
1420
1427 const char* uri,
1428 const OrthancPluginHttpRequest* request);
1429
1430
1431
1437 const OrthancPluginDicomInstance* instance,
1438 const char* instanceId);
1439
1440
1441
1447 OrthancPluginChangeType changeType,
1448 OrthancPluginResourceType resourceType,
1449 const char* resourceId);
1450
1451
1452
1458 OrthancPluginImage** target,
1459 const void* dicom,
1460 const uint32_t size,
1461 uint32_t frameIndex);
1462
1463
1464
1469 typedef void (*OrthancPluginFree) (void* buffer);
1470
1471
1472
1482 const char* bulkDataUri);
1483
1484
1485
1499 const char* uuid,
1500 const void* content,
1501 int64_t size,
1503
1504
1505
1525 void** content,
1526 int64_t* size,
1527 const char* uuid,
1529
1530
1531
1546 const char* uuid,
1548
1549
1550
1569 const char* uuid,
1571 uint64_t rangeStart);
1572
1573
1574
1586 const char* uuid,
1588
1589
1590
1610 OrthancPluginMemoryBuffer* customData,
1611 const char* uuid,
1612 const void* content,
1613 uint64_t size,
1615 OrthancPluginCompressionType compressionType,
1616 const OrthancPluginDicomInstance* dicomInstance);
1617
1618
1619
1640 const char* uuid,
1642 uint64_t rangeStart,
1643 const void* customData,
1644 uint32_t customDataSize);
1645
1646
1647
1662 const char* uuid,
1664 const void* customData,
1665 uint32_t customDataSize);
1666
1667
1683 const OrthancPluginWorklistQuery* query,
1684 const char* issuerAet,
1685 const char* calledAet);
1686
1687
1700 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1703 const OrthancPluginWorklistQuery* query,
1704 const OrthancPluginDicomConnection* connection);
1705
1706
1732 const char* uri,
1733 const char* ip,
1734 uint32_t headersCount,
1735 const char* const* headersKeys,
1736 const char* const* headersValues);
1737
1738
1739
1771 const char* uri,
1772 const char* ip,
1773 uint32_t headersCount,
1774 const char* const* headersKeys,
1775 const char* const* headersValues,
1776 uint32_t getArgumentsCount,
1777 const char* const* getArgumentsKeys,
1778 const char* const* getArgumentsValues);
1779
1780
1781
1797 OrthancPluginFindAnswers* answers,
1798 const OrthancPluginFindQuery* query,
1799 const char* issuerAet,
1800 const char* calledAet);
1801
1802
1816 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1818 OrthancPluginFindAnswers* answers,
1819 const OrthancPluginFindQuery* query,
1820 const OrthancPluginDicomConnection* connection);
1821
1822
1858 typedef void* (*OrthancPluginMoveCallback) (
1859 OrthancPluginResourceType resourceType,
1860 const char* patientId,
1861 const char* accessionNumber,
1862 const char* studyInstanceUid,
1863 const char* seriesInstanceUid,
1864 const char* sopInstanceUid,
1865 const char* originatorAet,
1866 const char* sourceAet,
1867 const char* targetAet,
1868 uint16_t originatorId);
1869
1870
1903 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
1905 OrthancPluginResourceType resourceType,
1906 const char* patientId,
1907 const char* accessionNumber,
1908 const char* studyInstanceUid,
1909 const char* seriesInstanceUid,
1910 const char* sopInstanceUid,
1911 const OrthancPluginDicomConnection* connection,
1912 const char* targetAet,
1913 uint16_t originatorId);
1914
1915
1928 typedef uint32_t (*OrthancPluginGetMoveSize) (void* moveDriver);
1929
1930
1943 typedef OrthancPluginErrorCode (*OrthancPluginApplyMove) (void* moveDriver);
1944
1945
1957 typedef void (*OrthancPluginFreeMove) (void* moveDriver);
1958
1959
1970 typedef void (*OrthancPluginJobFinalize) (void* job);
1971
1972
1983 typedef float (*OrthancPluginJobGetProgress) (void* job);
1984
1985
1999 typedef const char* (*OrthancPluginJobGetContent) (void* job);
2000
2001
2018 void* job);
2019
2020
2037 typedef const char* (*OrthancPluginJobGetSerialized) (void* job);
2038
2039
2058 void* job);
2059
2060
2074
2075
2099
2100
2115
2116
2130 typedef OrthancPluginJob* (*OrthancPluginJobsUnserializer) (const char* jobType,
2131 const char* serialized);
2132
2133
2134
2150
2151
2152
2180 uint32_t levelDepth,
2181 const uint16_t* levelTagGroup,
2182 const uint16_t* levelTagElement,
2183 const uint32_t* levelIndex,
2184 uint16_t tagGroup,
2185 uint16_t tagElement,
2187
2188
2189
2218 uint32_t levelDepth,
2219 const uint16_t* levelTagGroup,
2220 const uint16_t* levelTagElement,
2221 const uint32_t* levelIndex,
2222 uint16_t tagGroup,
2223 uint16_t tagElement,
2225 void* payload);
2226
2227
2228
2232 typedef struct _OrthancPluginContext_t
2233 {
2234 void* pluginsManager;
2235 const char* orthancVersion;
2236 OrthancPluginFree Free;
2237 OrthancPluginErrorCode (*InvokeService) (struct _OrthancPluginContext_t* context,
2238 _OrthancPluginService service,
2239 const void* params);
2241
2242
2243
2255
2256
2257
2266 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeString(
2267 OrthancPluginContext* context,
2268 char* str)
2269 {
2270 if (str != NULL)
2271 {
2272 context->Free(str);
2273 }
2274 }
2275
2276
2296 ORTHANC_PLUGIN_SINCE_SDK("1.4.0")
2297 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginCheckVersionAdvanced(
2298 const OrthancPluginContext* context,
2299 int32_t expectedMajor,
2300 int32_t expectedMinor,
2301 int32_t expectedRevision)
2302 {
2303 int32_t major, minor, revision;
2304
2305 if (sizeof(int) != sizeof(int32_t) || /* Ensure binary compatibility with Orthanc SDK <= 1.12.1 */
2306 sizeof(int32_t) != sizeof(OrthancPluginErrorCode) ||
2307 sizeof(int32_t) != sizeof(OrthancPluginHttpMethod) ||
2308 sizeof(int32_t) != sizeof(_OrthancPluginService) ||
2309 sizeof(int32_t) != sizeof(_OrthancPluginProperty) ||
2310 sizeof(int32_t) != sizeof(OrthancPluginPixelFormat) ||
2311 sizeof(int32_t) != sizeof(OrthancPluginContentType) ||
2312 sizeof(int32_t) != sizeof(OrthancPluginResourceType) ||
2313 sizeof(int32_t) != sizeof(OrthancPluginChangeType) ||
2314 sizeof(int32_t) != sizeof(OrthancPluginCompressionType) ||
2315 sizeof(int32_t) != sizeof(OrthancPluginImageFormat) ||
2316 sizeof(int32_t) != sizeof(OrthancPluginValueRepresentation) ||
2317 sizeof(int32_t) != sizeof(OrthancPluginDicomToJsonFormat) ||
2318 sizeof(int32_t) != sizeof(OrthancPluginDicomToJsonFlags) ||
2319 sizeof(int32_t) != sizeof(OrthancPluginCreateDicomFlags) ||
2320 sizeof(int32_t) != sizeof(OrthancPluginIdentifierConstraint) ||
2321 sizeof(int32_t) != sizeof(OrthancPluginInstanceOrigin) ||
2322 sizeof(int32_t) != sizeof(OrthancPluginJobStepStatus) ||
2323 sizeof(int32_t) != sizeof(OrthancPluginJobStopReason) ||
2324 sizeof(int32_t) != sizeof(OrthancPluginConstraintType) ||
2325 sizeof(int32_t) != sizeof(OrthancPluginMetricsType) ||
2326 sizeof(int32_t) != sizeof(OrthancPluginDicomWebBinaryMode) ||
2327 sizeof(int32_t) != sizeof(OrthancPluginStorageCommitmentFailureReason) ||
2328 sizeof(int32_t) != sizeof(OrthancPluginReceivedInstanceAction) ||
2329 sizeof(int32_t) != sizeof(OrthancPluginLoadDicomInstanceMode) ||
2330 sizeof(int32_t) != sizeof(OrthancPluginLogLevel) ||
2331 sizeof(int32_t) != sizeof(OrthancPluginLogCategory) ||
2332 sizeof(int32_t) != sizeof(OrthancPluginStoreStatus) ||
2333 sizeof(int32_t) != sizeof(OrthancPluginQueueOrigin) ||
2334 sizeof(int32_t) != sizeof(OrthancPluginStableStatus) ||
2335 sizeof(int32_t) != sizeof(OrthancPluginHttpAuthenticationStatus))
2336 {
2337 /* Mismatch in the size of the enumerations */
2338 return 0;
2339 }
2340
2341 /* Assume compatibility with the mainline */
2342 if (!strcmp(context->orthancVersion, "mainline"))
2343 {
2344 return 1;
2345 }
2346
2347 /* Parse the version of the Orthanc core */
2348 if (
2349#ifdef _MSC_VER
2350 sscanf_s
2351#else
2352 sscanf
2353#endif
2354 (context->orthancVersion, "%4d.%4d.%4d", &major, &minor, &revision) != 3)
2355 {
2356 return 0;
2357 }
2358
2359 /* Check the major number of the version */
2360
2361 if (major > expectedMajor)
2362 {
2363 return 1;
2364 }
2365
2366 if (major < expectedMajor)
2367 {
2368 return 0;
2369 }
2370
2371 /* Check the minor number of the version */
2372
2373 if (minor > expectedMinor)
2374 {
2375 return 1;
2376 }
2377
2378 if (minor < expectedMinor)
2379 {
2380 return 0;
2381 }
2382
2383 /* Check the revision number of the version */
2384
2385 if (revision >= expectedRevision)
2386 {
2387 return 1;
2388 }
2389 else
2390 {
2391 return 0;
2392 }
2393 }
2394
2395
2412 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginCheckVersion(
2413 const OrthancPluginContext* context)
2414 {
2416 context,
2417 ORTHANC_PLUGINS_MINIMAL_MAJOR_NUMBER,
2418 ORTHANC_PLUGINS_MINIMAL_MINOR_NUMBER,
2419 ORTHANC_PLUGINS_MINIMAL_REVISION_NUMBER);
2420 }
2421
2422
2431 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeMemoryBuffer(
2432 OrthancPluginContext* context,
2434 {
2435 context->Free(buffer->data);
2436 }
2437
2438
2447 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
2448 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeMemoryBuffer64(
2449 OrthancPluginContext* context,
2451 {
2452 context->Free(buffer->data);
2453 }
2454
2455
2464 ORTHANC_PLUGIN_INLINE void OrthancPluginLogError(
2465 OrthancPluginContext* context,
2466 const char* message)
2467 {
2468 context->InvokeService(context, _OrthancPluginService_LogError, message);
2469 }
2470
2471
2480 ORTHANC_PLUGIN_INLINE void OrthancPluginLogWarning(
2481 OrthancPluginContext* context,
2482 const char* message)
2483 {
2484 context->InvokeService(context, _OrthancPluginService_LogWarning, message);
2485 }
2486
2487
2496 ORTHANC_PLUGIN_INLINE void OrthancPluginLogInfo(
2497 OrthancPluginContext* context,
2498 const char* message)
2499 {
2500 context->InvokeService(context, _OrthancPluginService_LogInfo, message);
2501 }
2502
2503
2504
2505 typedef struct
2506 {
2507 const char* pathRegularExpression;
2509 } _OrthancPluginRestCallback;
2510
2532 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterRestCallback(
2533 OrthancPluginContext* context,
2534 const char* pathRegularExpression,
2536 {
2537 _OrthancPluginRestCallback params;
2538 params.pathRegularExpression = pathRegularExpression;
2539 params.callback = callback;
2540 context->InvokeService(context, _OrthancPluginService_RegisterRestCallback, &params);
2541 }
2542
2543
2544
2573 OrthancPluginContext* context,
2574 const char* pathRegularExpression,
2576 {
2577 _OrthancPluginRestCallback params;
2578 params.pathRegularExpression = pathRegularExpression;
2579 params.callback = callback;
2580 context->InvokeService(context, _OrthancPluginService_RegisterRestCallbackNoLock, &params);
2581 }
2582
2583
2584
2585 typedef struct
2586 {
2588 } _OrthancPluginOnStoredInstanceCallback;
2589
2611 OrthancPluginContext* context,
2613 {
2614 _OrthancPluginOnStoredInstanceCallback params;
2615 params.callback = callback;
2616
2617 context->InvokeService(context, _OrthancPluginService_RegisterOnStoredInstanceCallback, &params);
2618 }
2619
2620
2621
2622 typedef struct
2623 {
2625 const void* answer;
2626 uint32_t answerSize;
2627 const char* mimeType;
2628 } _OrthancPluginAnswerBuffer;
2629
2642 ORTHANC_PLUGIN_INLINE void OrthancPluginAnswerBuffer(
2643 OrthancPluginContext* context,
2645 const void* answer,
2646 uint32_t answerSize,
2647 const char* mimeType)
2648 {
2649 _OrthancPluginAnswerBuffer params;
2650 params.output = output;
2651 params.answer = answer;
2652 params.answerSize = answerSize;
2653 params.mimeType = mimeType;
2654 context->InvokeService(context, _OrthancPluginService_AnswerBuffer, &params);
2655 }
2656
2657
2658 typedef struct
2659 {
2662 uint32_t width;
2663 uint32_t height;
2664 uint32_t pitch;
2665 const void* buffer;
2666 } _OrthancPluginCompressAndAnswerPngImage;
2667
2668 typedef struct
2669 {
2671 OrthancPluginImageFormat imageFormat;
2672 OrthancPluginPixelFormat pixelFormat;
2673 uint32_t width;
2674 uint32_t height;
2675 uint32_t pitch;
2676 const void* buffer;
2677 uint8_t quality;
2678 } _OrthancPluginCompressAndAnswerImage;
2679
2680
2699 ORTHANC_PLUGIN_INLINE void OrthancPluginCompressAndAnswerPngImage(
2700 OrthancPluginContext* context,
2703 uint32_t width,
2704 uint32_t height,
2705 uint32_t pitch,
2706 const void* buffer)
2707 {
2708 _OrthancPluginCompressAndAnswerImage params;
2709 params.output = output;
2710 params.imageFormat = OrthancPluginImageFormat_Png;
2711 params.pixelFormat = format;
2712 params.width = width;
2713 params.height = height;
2714 params.pitch = pitch;
2715 params.buffer = buffer;
2716 params.quality = 0; /* No quality for PNG */
2717 context->InvokeService(context, _OrthancPluginService_CompressAndAnswerImage, &params);
2718 }
2719
2720
2721
2722 typedef struct
2723 {
2725 const char* instanceId;
2726 } _OrthancPluginGetDicomForInstance;
2727
2741 OrthancPluginContext* context,
2743 const char* instanceId)
2744 {
2745 _OrthancPluginGetDicomForInstance params;
2746 params.target = target;
2747 params.instanceId = instanceId;
2748 return context->InvokeService(context, _OrthancPluginService_GetDicomForInstance, &params);
2749 }
2750
2751
2752
2753 typedef struct
2754 {
2756 const char* uri;
2757 } _OrthancPluginRestApiGet;
2758
2774 OrthancPluginContext* context,
2776 const char* uri)
2777 {
2778 _OrthancPluginRestApiGet params;
2779 params.target = target;
2780 params.uri = uri;
2781 return context->InvokeService(context, _OrthancPluginService_RestApiGet, &params);
2782 }
2783
2784
2785
2804 OrthancPluginContext* context,
2806 const char* uri)
2807 {
2808 _OrthancPluginRestApiGet params;
2809 params.target = target;
2810 params.uri = uri;
2811 return context->InvokeService(context, _OrthancPluginService_RestApiGetAfterPlugins, &params);
2812 }
2813
2814
2815
2816 typedef struct
2817 {
2819 const char* uri;
2820 const void* body;
2821 uint32_t bodySize;
2822 } _OrthancPluginRestApiPostPut;
2823
2841 OrthancPluginContext* context,
2843 const char* uri,
2844 const void* body,
2845 uint32_t bodySize)
2846 {
2847 _OrthancPluginRestApiPostPut params;
2848 params.target = target;
2849 params.uri = uri;
2850 params.body = body;
2851 params.bodySize = bodySize;
2852 return context->InvokeService(context, _OrthancPluginService_RestApiPost, &params);
2853 }
2854
2855
2876 OrthancPluginContext* context,
2878 const char* uri,
2879 const void* body,
2880 uint32_t bodySize)
2881 {
2882 _OrthancPluginRestApiPostPut params;
2883 params.target = target;
2884 params.uri = uri;
2885 params.body = body;
2886 params.bodySize = bodySize;
2887 return context->InvokeService(context, _OrthancPluginService_RestApiPostAfterPlugins, &params);
2888 }
2889
2890
2891
2905 OrthancPluginContext* context,
2906 const char* uri)
2907 {
2908 return context->InvokeService(context, _OrthancPluginService_RestApiDelete, uri);
2909 }
2910
2911
2928 OrthancPluginContext* context,
2929 const char* uri)
2930 {
2931 return context->InvokeService(context, _OrthancPluginService_RestApiDeleteAfterPlugins, uri);
2932 }
2933
2934
2935
2953 OrthancPluginContext* context,
2955 const char* uri,
2956 const void* body,
2957 uint32_t bodySize)
2958 {
2959 _OrthancPluginRestApiPostPut params;
2960 params.target = target;
2961 params.uri = uri;
2962 params.body = body;
2963 params.bodySize = bodySize;
2964 return context->InvokeService(context, _OrthancPluginService_RestApiPut, &params);
2965 }
2966
2967
2968
2989 OrthancPluginContext* context,
2991 const char* uri,
2992 const void* body,
2993 uint32_t bodySize)
2994 {
2995 _OrthancPluginRestApiPostPut params;
2996 params.target = target;
2997 params.uri = uri;
2998 params.body = body;
2999 params.bodySize = bodySize;
3000 return context->InvokeService(context, _OrthancPluginService_RestApiPutAfterPlugins, &params);
3001 }
3002
3003
3004
3005 typedef struct
3006 {
3008 const char* argument;
3009 } _OrthancPluginOutputPlusArgument;
3010
3022 ORTHANC_PLUGIN_INLINE void OrthancPluginRedirect(
3023 OrthancPluginContext* context,
3025 const char* redirection)
3026 {
3027 _OrthancPluginOutputPlusArgument params;
3028 params.output = output;
3029 params.argument = redirection;
3030 context->InvokeService(context, _OrthancPluginService_Redirect, &params);
3031 }
3032
3033
3034
3035 typedef struct
3036 {
3037 char** result;
3038 const char* argument;
3039 } _OrthancPluginRetrieveDynamicString;
3040
3054 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupPatient(
3055 OrthancPluginContext* context,
3056 const char* patientID)
3057 {
3058 char* result;
3059
3060 _OrthancPluginRetrieveDynamicString params;
3061 params.result = &result;
3062 params.argument = patientID;
3063
3064 if (context->InvokeService(context, _OrthancPluginService_LookupPatient, &params) != OrthancPluginErrorCode_Success)
3065 {
3066 /* Error */
3067 return NULL;
3068 }
3069 else
3070 {
3071 return result;
3072 }
3073 }
3074
3075
3089 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupStudy(
3090 OrthancPluginContext* context,
3091 const char* studyUID)
3092 {
3093 char* result;
3094
3095 _OrthancPluginRetrieveDynamicString params;
3096 params.result = &result;
3097 params.argument = studyUID;
3098
3099 if (context->InvokeService(context, _OrthancPluginService_LookupStudy, &params) != OrthancPluginErrorCode_Success)
3100 {
3101 /* Error */
3102 return NULL;
3103 }
3104 else
3105 {
3106 return result;
3107 }
3108 }
3109
3110
3125 OrthancPluginContext* context,
3126 const char* accessionNumber)
3127 {
3128 char* result;
3129
3130 _OrthancPluginRetrieveDynamicString params;
3131 params.result = &result;
3132 params.argument = accessionNumber;
3133
3134 if (context->InvokeService(context, _OrthancPluginService_LookupStudyWithAccessionNumber, &params) != OrthancPluginErrorCode_Success)
3135 {
3136 /* Error */
3137 return NULL;
3138 }
3139 else
3140 {
3141 return result;
3142 }
3143 }
3144
3145
3159 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupSeries(
3160 OrthancPluginContext* context,
3161 const char* seriesUID)
3162 {
3163 char* result;
3164
3165 _OrthancPluginRetrieveDynamicString params;
3166 params.result = &result;
3167 params.argument = seriesUID;
3168
3169 if (context->InvokeService(context, _OrthancPluginService_LookupSeries, &params) != OrthancPluginErrorCode_Success)
3170 {
3171 /* Error */
3172 return NULL;
3173 }
3174 else
3175 {
3176 return result;
3177 }
3178 }
3179
3180
3194 ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupInstance(
3195 OrthancPluginContext* context,
3196 const char* sopInstanceUID)
3197 {
3198 char* result;
3199
3200 _OrthancPluginRetrieveDynamicString params;
3201 params.result = &result;
3202 params.argument = sopInstanceUID;
3203
3204 if (context->InvokeService(context, _OrthancPluginService_LookupInstance, &params) != OrthancPluginErrorCode_Success)
3205 {
3206 /* Error */
3207 return NULL;
3208 }
3209 else
3210 {
3211 return result;
3212 }
3213 }
3214
3215
3216
3217 typedef struct
3218 {
3220 uint16_t status;
3221 } _OrthancPluginSendHttpStatusCode;
3222
3239 ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatusCode(
3240 OrthancPluginContext* context,
3242 uint16_t status)
3243 {
3244 _OrthancPluginSendHttpStatusCode params;
3245 params.output = output;
3246 params.status = status;
3247 context->InvokeService(context, _OrthancPluginService_SendHttpStatusCode, &params);
3248 }
3249
3250
3262 ORTHANC_PLUGIN_INLINE void OrthancPluginSendUnauthorized(
3263 OrthancPluginContext* context,
3265 const char* realm)
3266 {
3267 _OrthancPluginOutputPlusArgument params;
3268 params.output = output;
3269 params.argument = realm;
3270 context->InvokeService(context, _OrthancPluginService_SendUnauthorized, &params);
3271 }
3272
3273
3285 ORTHANC_PLUGIN_INLINE void OrthancPluginSendMethodNotAllowed(
3286 OrthancPluginContext* context,
3288 const char* allowedMethods)
3289 {
3290 _OrthancPluginOutputPlusArgument params;
3291 params.output = output;
3292 params.argument = allowedMethods;
3293 context->InvokeService(context, _OrthancPluginService_SendMethodNotAllowed, &params);
3294 }
3295
3296
3297 typedef struct
3298 {
3300 const char* key;
3301 const char* value;
3302 } _OrthancPluginSetHttpHeader;
3303
3315 ORTHANC_PLUGIN_INLINE void OrthancPluginSetCookie(
3316 OrthancPluginContext* context,
3318 const char* cookie,
3319 const char* value)
3320 {
3321 _OrthancPluginSetHttpHeader params;
3322 params.output = output;
3323 params.key = cookie;
3324 params.value = value;
3325 context->InvokeService(context, _OrthancPluginService_SetCookie, &params);
3326 }
3327
3328
3340 ORTHANC_PLUGIN_INLINE void OrthancPluginSetHttpHeader(
3341 OrthancPluginContext* context,
3343 const char* key,
3344 const char* value)
3345 {
3346 _OrthancPluginSetHttpHeader params;
3347 params.output = output;
3348 params.key = key;
3349 params.value = value;
3350 context->InvokeService(context, _OrthancPluginService_SetHttpHeader, &params);
3351 }
3352
3353
3354 typedef struct
3355 {
3356 char** resultStringToFree;
3357 const char** resultString;
3358 int64_t* resultInt64;
3359 const char* key;
3360 const OrthancPluginDicomInstance* instance;
3361 OrthancPluginInstanceOrigin* resultOrigin; /* New in Orthanc 0.9.5 SDK */
3362 } _OrthancPluginAccessDicomInstance;
3363
3364
3376 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceRemoteAet(
3377 OrthancPluginContext* context,
3378 const OrthancPluginDicomInstance* instance)
3379 {
3380 const char* result;
3381
3382 _OrthancPluginAccessDicomInstance params;
3383 memset(&params, 0, sizeof(params));
3384 params.resultString = &result;
3385 params.instance = instance;
3386
3387 if (context->InvokeService(context, _OrthancPluginService_GetInstanceRemoteAet, &params) != OrthancPluginErrorCode_Success)
3388 {
3389 /* Error */
3390 return NULL;
3391 }
3392 else
3393 {
3394 return result;
3395 }
3396 }
3397
3398
3409 ORTHANC_PLUGIN_INLINE int64_t OrthancPluginGetInstanceSize(
3410 OrthancPluginContext* context,
3411 const OrthancPluginDicomInstance* instance)
3412 {
3413 int64_t size;
3414
3415 _OrthancPluginAccessDicomInstance params;
3416 memset(&params, 0, sizeof(params));
3417 params.resultInt64 = &size;
3418 params.instance = instance;
3419
3420 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSize, &params) != OrthancPluginErrorCode_Success)
3421 {
3422 /* Error */
3423 return -1;
3424 }
3425 else
3426 {
3427 return size;
3428 }
3429 }
3430
3431
3442 ORTHANC_PLUGIN_INLINE const void* OrthancPluginGetInstanceData(
3443 OrthancPluginContext* context,
3444 const OrthancPluginDicomInstance* instance)
3445 {
3446 const char* result;
3447
3448 _OrthancPluginAccessDicomInstance params;
3449 memset(&params, 0, sizeof(params));
3450 params.resultString = &result;
3451 params.instance = instance;
3452
3453 if (context->InvokeService(context, _OrthancPluginService_GetInstanceData, &params) != OrthancPluginErrorCode_Success)
3454 {
3455 /* Error */
3456 return NULL;
3457 }
3458 else
3459 {
3460 return result;
3461 }
3462 }
3463
3464
3478 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceJson(
3479 OrthancPluginContext* context,
3480 const OrthancPluginDicomInstance* instance)
3481 {
3482 char* result;
3483
3484 _OrthancPluginAccessDicomInstance params;
3485 memset(&params, 0, sizeof(params));
3486 params.resultStringToFree = &result;
3487 params.instance = instance;
3488
3489 if (context->InvokeService(context, _OrthancPluginService_GetInstanceJson, &params) != OrthancPluginErrorCode_Success)
3490 {
3491 /* Error */
3492 return NULL;
3493 }
3494 else
3495 {
3496 return result;
3497 }
3498 }
3499
3500
3516 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceSimplifiedJson(
3517 OrthancPluginContext* context,
3518 const OrthancPluginDicomInstance* instance)
3519 {
3520 char* result;
3521
3522 _OrthancPluginAccessDicomInstance params;
3523 memset(&params, 0, sizeof(params));
3524 params.resultStringToFree = &result;
3525 params.instance = instance;
3526
3527 if (context->InvokeService(context, _OrthancPluginService_GetInstanceSimplifiedJson, &params) != OrthancPluginErrorCode_Success)
3528 {
3529 /* Error */
3530 return NULL;
3531 }
3532 else
3533 {
3534 return result;
3535 }
3536 }
3537
3538
3555 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginHasInstanceMetadata(
3556 OrthancPluginContext* context,
3557 const OrthancPluginDicomInstance* instance,
3558 const char* metadata)
3559 {
3560 int64_t result;
3561
3562 _OrthancPluginAccessDicomInstance params;
3563 memset(&params, 0, sizeof(params));
3564 params.resultInt64 = &result;
3565 params.instance = instance;
3566 params.key = metadata;
3567
3568 if (context->InvokeService(context, _OrthancPluginService_HasInstanceMetadata, &params) != OrthancPluginErrorCode_Success)
3569 {
3570 /* Error */
3571 return -1;
3572 }
3573 else
3574 {
3575 return (result != 0);
3576 }
3577 }
3578
3579
3596 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetInstanceMetadata(
3597 OrthancPluginContext* context,
3598 const OrthancPluginDicomInstance* instance,
3599 const char* metadata)
3600 {
3601 const char* result;
3602
3603 _OrthancPluginAccessDicomInstance params;
3604 memset(&params, 0, sizeof(params));
3605 params.resultString = &result;
3606 params.instance = instance;
3607 params.key = metadata;
3608
3609 if (context->InvokeService(context, _OrthancPluginService_GetInstanceMetadata, &params) != OrthancPluginErrorCode_Success)
3610 {
3611 /* Error */
3612 return NULL;
3613 }
3614 else
3615 {
3616 return result;
3617 }
3618 }
3619
3620
3621
3622 typedef struct
3623 {
3627 OrthancPluginFree free;
3628 } _OrthancPluginRegisterStorageArea;
3629
3645 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea(
3646 OrthancPluginContext* context,
3650 {
3651 _OrthancPluginRegisterStorageArea params;
3652 params.create = create;
3653 params.read = read;
3654 params.remove = remove;
3655
3656#ifdef __cplusplus
3657 params.free = ::free;
3658#else
3659 params.free = free;
3660#endif
3661
3662 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea, &params);
3663 }
3664
3665
3666
3677 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetOrthancPath(OrthancPluginContext* context)
3678 {
3679 char* result;
3680
3681 _OrthancPluginRetrieveDynamicString params;
3682 params.result = &result;
3683 params.argument = NULL;
3684
3685 if (context->InvokeService(context, _OrthancPluginService_GetOrthancPath, &params) != OrthancPluginErrorCode_Success)
3686 {
3687 /* Error */
3688 return NULL;
3689 }
3690 else
3691 {
3692 return result;
3693 }
3694 }
3695
3696
3707 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetOrthancDirectory(OrthancPluginContext* context)
3708 {
3709 char* result;
3710
3711 _OrthancPluginRetrieveDynamicString params;
3712 params.result = &result;
3713 params.argument = NULL;
3714
3715 if (context->InvokeService(context, _OrthancPluginService_GetOrthancDirectory, &params) != OrthancPluginErrorCode_Success)
3716 {
3717 /* Error */
3718 return NULL;
3719 }
3720 else
3721 {
3722 return result;
3723 }
3724 }
3725
3726
3742 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfigurationPath(OrthancPluginContext* context)
3743 {
3744 char* result;
3745
3746 _OrthancPluginRetrieveDynamicString params;
3747 params.result = &result;
3748 params.argument = NULL;
3749
3750 if (context->InvokeService(context, _OrthancPluginService_GetConfigurationPath, &params) != OrthancPluginErrorCode_Success)
3751 {
3752 /* Error */
3753 return NULL;
3754 }
3755 else
3756 {
3757 return result;
3758 }
3759 }
3760
3761
3762
3763 typedef struct
3764 {
3766 } _OrthancPluginOnChangeCallback;
3767
3788 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterOnChangeCallback(
3789 OrthancPluginContext* context,
3791 {
3792 _OrthancPluginOnChangeCallback params;
3793 params.callback = callback;
3794
3795 context->InvokeService(context, _OrthancPluginService_RegisterOnChangeCallback, &params);
3796 }
3797
3798
3799
3800 typedef struct
3801 {
3802 const char* plugin;
3803 _OrthancPluginProperty property;
3804 const char* value;
3805 } _OrthancPluginSetPluginProperty;
3806
3807
3823 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri(
3824 OrthancPluginContext* context,
3825 const char* uri)
3826 {
3827 _OrthancPluginSetPluginProperty params;
3828 params.plugin = OrthancPluginGetName();
3829 params.property = _OrthancPluginProperty_RootUri;
3830 params.value = uri;
3831
3832 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3833 }
3834
3835
3848 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
3849 ORTHANC_PLUGIN_INLINE void OrthancPluginSetRootUri2(
3850 OrthancPluginContext* context,
3851 const char* plugin,
3852 const char* uri)
3853 {
3854 _OrthancPluginSetPluginProperty params;
3855 params.plugin = plugin;
3856 params.property = _OrthancPluginProperty_RootUri;
3857 params.value = uri;
3858
3859 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3860 }
3861
3862
3876 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription(
3877 OrthancPluginContext* context,
3878 const char* description)
3879 {
3880 _OrthancPluginSetPluginProperty params;
3881 params.plugin = OrthancPluginGetName();
3882 params.property = _OrthancPluginProperty_Description;
3883 params.value = description;
3884
3885 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3886 }
3887
3888
3899 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
3900 ORTHANC_PLUGIN_INLINE void OrthancPluginSetDescription2(
3901 OrthancPluginContext* context,
3902 const char* plugin,
3903 const char* description)
3904 {
3905 _OrthancPluginSetPluginProperty params;
3906 params.plugin = plugin;
3907 params.property = _OrthancPluginProperty_Description;
3908 params.value = description;
3909
3910 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3911 }
3912
3913
3927 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer(
3928 OrthancPluginContext* context,
3929 const char* javascript)
3930 {
3931 _OrthancPluginSetPluginProperty params;
3932 params.plugin = OrthancPluginGetName();
3933 params.property = _OrthancPluginProperty_OrthancExplorer;
3934 params.value = javascript;
3935
3936 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3937 }
3938
3939
3950 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
3951 ORTHANC_PLUGIN_INLINE void OrthancPluginExtendOrthancExplorer2(
3952 OrthancPluginContext* context,
3953 const char* plugin,
3954 const char* javascript)
3955 {
3956 _OrthancPluginSetPluginProperty params;
3957 params.plugin = plugin;
3958 params.property = _OrthancPluginProperty_OrthancExplorer;
3959 params.value = javascript;
3960
3961 context->InvokeService(context, _OrthancPluginService_SetPluginProperty, &params);
3962 }
3963
3964
3965 typedef struct
3966 {
3967 char** result;
3968 int32_t property;
3969 const char* value;
3970 } _OrthancPluginGlobalProperty;
3971
3972
3986 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetGlobalProperty(
3987 OrthancPluginContext* context,
3988 int32_t property,
3989 const char* defaultValue)
3990 {
3991 char* result;
3992
3993 _OrthancPluginGlobalProperty params;
3994 params.result = &result;
3995 params.property = property;
3996 params.value = defaultValue;
3997
3998 if (context->InvokeService(context, _OrthancPluginService_GetGlobalProperty, &params) != OrthancPluginErrorCode_Success)
3999 {
4000 /* Error */
4001 return NULL;
4002 }
4003 else
4004 {
4005 return result;
4006 }
4007 }
4008
4009
4026 OrthancPluginContext* context,
4027 int32_t property,
4028 const char* value)
4029 {
4030 _OrthancPluginGlobalProperty params;
4031 params.result = NULL;
4032 params.property = property;
4033 params.value = value;
4034
4035 return context->InvokeService(context, _OrthancPluginService_SetGlobalProperty, &params);
4036 }
4037
4038
4039
4040 typedef struct
4041 {
4042 int32_t *resultInt32;
4043 uint32_t *resultUint32;
4044 int64_t *resultInt64;
4045 uint64_t *resultUint64;
4046 } _OrthancPluginReturnSingleValue;
4047
4056 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetCommandLineArgumentsCount(
4057 OrthancPluginContext* context)
4058 {
4059 uint32_t count = 0;
4060
4061 _OrthancPluginReturnSingleValue params;
4062 memset(&params, 0, sizeof(params));
4063 params.resultUint32 = &count;
4064
4065 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgumentsCount, &params) != OrthancPluginErrorCode_Success)
4066 {
4067 /* Error */
4068 return 0;
4069 }
4070 else
4071 {
4072 return count;
4073 }
4074 }
4075
4076
4077
4090 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetCommandLineArgument(
4091 OrthancPluginContext* context,
4092 uint32_t argument)
4093 {
4094 char* result;
4095
4096 _OrthancPluginGlobalProperty params;
4097 params.result = &result;
4098 params.property = (int32_t) argument;
4099 params.value = NULL;
4100
4101 if (context->InvokeService(context, _OrthancPluginService_GetCommandLineArgument, &params) != OrthancPluginErrorCode_Success)
4102 {
4103 /* Error */
4104 return NULL;
4105 }
4106 else
4107 {
4108 return result;
4109 }
4110 }
4111
4112
4122 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetExpectedDatabaseVersion(
4123 OrthancPluginContext* context)
4124 {
4125 uint32_t count = 0;
4126
4127 _OrthancPluginReturnSingleValue params;
4128 memset(&params, 0, sizeof(params));
4129 params.resultUint32 = &count;
4130
4131 if (context->InvokeService(context, _OrthancPluginService_GetExpectedDatabaseVersion, &params) != OrthancPluginErrorCode_Success)
4132 {
4133 /* Error */
4134 return 0;
4135 }
4136 else
4137 {
4138 return count;
4139 }
4140 }
4141
4142
4143
4155 ORTHANC_PLUGIN_INLINE char *OrthancPluginGetConfiguration(OrthancPluginContext* context)
4156 {
4157 char* result;
4158
4159 _OrthancPluginRetrieveDynamicString params;
4160 params.result = &result;
4161 params.argument = NULL;
4162
4163 if (context->InvokeService(context, _OrthancPluginService_GetConfiguration, &params) != OrthancPluginErrorCode_Success)
4164 {
4165 /* Error */
4166 return NULL;
4167 }
4168 else
4169 {
4170 return result;
4171 }
4172 }
4173
4174
4175
4176 typedef struct
4177 {
4179 const char* subType;
4180 const char* contentType;
4181 } _OrthancPluginStartMultipartAnswer;
4182
4197 OrthancPluginContext* context,
4199 const char* subType,
4200 const char* contentType)
4201 {
4202 _OrthancPluginStartMultipartAnswer params;
4203 params.output = output;
4204 params.subType = subType;
4205 params.contentType = contentType;
4206 return context->InvokeService(context, _OrthancPluginService_StartMultipartAnswer, &params);
4207 }
4208
4209
4226 OrthancPluginContext* context,
4228 const void* answer,
4229 uint32_t answerSize)
4230 {
4231 _OrthancPluginAnswerBuffer params;
4232 params.output = output;
4233 params.answer = answer;
4234 params.answerSize = answerSize;
4235 params.mimeType = NULL;
4236 return context->InvokeService(context, _OrthancPluginService_SendMultipartItem, &params);
4237 }
4238
4239
4240
4241 typedef struct
4242 {
4244 const void* source;
4245 uint32_t size;
4246 OrthancPluginCompressionType compression;
4247 uint8_t uncompress;
4248 } _OrthancPluginBufferCompression;
4249
4250
4268 OrthancPluginContext* context,
4270 const void* source,
4271 uint32_t size,
4272 OrthancPluginCompressionType compression,
4273 uint8_t uncompress)
4274 {
4275 _OrthancPluginBufferCompression params;
4276 params.target = target;
4277 params.source = source;
4278 params.size = size;
4279 params.compression = compression;
4280 params.uncompress = uncompress;
4281
4282 return context->InvokeService(context, _OrthancPluginService_BufferCompression, &params);
4283 }
4284
4285
4286
4287 typedef struct
4288 {
4290 const char* path;
4291 } _OrthancPluginReadFile;
4292
4305 OrthancPluginContext* context,
4307 const char* path)
4308 {
4309 _OrthancPluginReadFile params;
4310 params.target = target;
4311 params.path = path;
4312 return context->InvokeService(context, _OrthancPluginService_ReadFile, &params);
4313 }
4314
4315
4316
4317 typedef struct
4318 {
4319 const char* path;
4320 const void* data;
4321 uint32_t size;
4322 } _OrthancPluginWriteFile;
4323
4336 OrthancPluginContext* context,
4337 const char* path,
4338 const void* data,
4339 uint32_t size)
4340 {
4341 _OrthancPluginWriteFile params;
4342 params.path = path;
4343 params.data = data;
4344 params.size = size;
4345 return context->InvokeService(context, _OrthancPluginService_WriteFile, &params);
4346 }
4347
4348
4349
4350 typedef struct
4351 {
4352 const char** target;
4354 } _OrthancPluginGetErrorDescription;
4355
4366 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetErrorDescription(
4367 OrthancPluginContext* context,
4369 {
4370 const char* result = NULL;
4371
4372 _OrthancPluginGetErrorDescription params;
4373 params.target = &result;
4374 params.error = error;
4375
4376 if (context->InvokeService(context, _OrthancPluginService_GetErrorDescription, &params) != OrthancPluginErrorCode_Success ||
4377 result == NULL)
4378 {
4379 return "Unknown error code";
4380 }
4381 else
4382 {
4383 return result;
4384 }
4385 }
4386
4387
4388
4389 typedef struct
4390 {
4392 uint16_t status;
4393 const void* body;
4394 uint32_t bodySize;
4395 } _OrthancPluginSendHttpStatus;
4396
4419 ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatus(
4420 OrthancPluginContext* context,
4422 uint16_t status,
4423 const void* body,
4424 uint32_t bodySize)
4425 {
4426 _OrthancPluginSendHttpStatus params;
4427 params.output = output;
4428 params.status = status;
4429 params.body = body;
4430 params.bodySize = bodySize;
4431 context->InvokeService(context, _OrthancPluginService_SendHttpStatus, &params);
4432 }
4433
4434
4435
4436 typedef struct
4437 {
4438 const OrthancPluginImage* image;
4439 uint32_t* resultUint32;
4440 OrthancPluginPixelFormat* resultPixelFormat;
4441 void** resultBuffer;
4442 } _OrthancPluginGetImageInfo;
4443
4444
4456 OrthancPluginContext* context,
4457 const OrthancPluginImage* image)
4458 {
4460
4461 _OrthancPluginGetImageInfo params;
4462 memset(&params, 0, sizeof(params));
4463 params.image = image;
4464 params.resultPixelFormat = &target;
4465
4466 if (context->InvokeService(context, _OrthancPluginService_GetImagePixelFormat, &params) != OrthancPluginErrorCode_Success)
4467 {
4469 }
4470 else
4471 {
4472 return (OrthancPluginPixelFormat) target;
4473 }
4474 }
4475
4476
4477
4488 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImageWidth(
4489 OrthancPluginContext* context,
4490 const OrthancPluginImage* image)
4491 {
4492 uint32_t width;
4493
4494 _OrthancPluginGetImageInfo params;
4495 memset(&params, 0, sizeof(params));
4496 params.image = image;
4497 params.resultUint32 = &width;
4498
4499 if (context->InvokeService(context, _OrthancPluginService_GetImageWidth, &params) != OrthancPluginErrorCode_Success)
4500 {
4501 return 0;
4502 }
4503 else
4504 {
4505 return width;
4506 }
4507 }
4508
4509
4510
4521 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImageHeight(
4522 OrthancPluginContext* context,
4523 const OrthancPluginImage* image)
4524 {
4525 uint32_t height;
4526
4527 _OrthancPluginGetImageInfo params;
4528 memset(&params, 0, sizeof(params));
4529 params.image = image;
4530 params.resultUint32 = &height;
4531
4532 if (context->InvokeService(context, _OrthancPluginService_GetImageHeight, &params) != OrthancPluginErrorCode_Success)
4533 {
4534 return 0;
4535 }
4536 else
4537 {
4538 return height;
4539 }
4540 }
4541
4542
4543
4556 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetImagePitch(
4557 OrthancPluginContext* context,
4558 const OrthancPluginImage* image)
4559 {
4560 uint32_t pitch;
4561
4562 _OrthancPluginGetImageInfo params;
4563 memset(&params, 0, sizeof(params));
4564 params.image = image;
4565 params.resultUint32 = &pitch;
4566
4567 if (context->InvokeService(context, _OrthancPluginService_GetImagePitch, &params) != OrthancPluginErrorCode_Success)
4568 {
4569 return 0;
4570 }
4571 else
4572 {
4573 return pitch;
4574 }
4575 }
4576
4577
4578
4590 ORTHANC_PLUGIN_INLINE void* OrthancPluginGetImageBuffer(
4591 OrthancPluginContext* context,
4592 const OrthancPluginImage* image)
4593 {
4594 void* target = NULL;
4595
4596 _OrthancPluginGetImageInfo params;
4597 memset(&params, 0, sizeof(params));
4598 params.resultBuffer = &target;
4599 params.image = image;
4600
4601 if (context->InvokeService(context, _OrthancPluginService_GetImageBuffer, &params) != OrthancPluginErrorCode_Success)
4602 {
4603 return NULL;
4604 }
4605 else
4606 {
4607 return target;
4608 }
4609 }
4610
4611
4612 typedef struct
4613 {
4614 OrthancPluginImage** target;
4615 const void* data;
4616 uint32_t size;
4618 } _OrthancPluginUncompressImage;
4619
4620
4634 OrthancPluginContext* context,
4635 const void* data,
4636 uint32_t size,
4638 {
4639 OrthancPluginImage* target = NULL;
4640
4641 _OrthancPluginUncompressImage params;
4642 memset(&params, 0, sizeof(params));
4643 params.target = &target;
4644 params.data = data;
4645 params.size = size;
4646 params.format = format;
4647
4648 if (context->InvokeService(context, _OrthancPluginService_UncompressImage, &params) != OrthancPluginErrorCode_Success)
4649 {
4650 return NULL;
4651 }
4652 else
4653 {
4654 return target;
4655 }
4656 }
4657
4658
4659
4660
4661 typedef struct
4662 {
4663 OrthancPluginImage* image;
4664 } _OrthancPluginFreeImage;
4665
4675 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeImage(
4676 OrthancPluginContext* context,
4677 OrthancPluginImage* image)
4678 {
4679 _OrthancPluginFreeImage params;
4680 params.image = image;
4681
4682 context->InvokeService(context, _OrthancPluginService_FreeImage, &params);
4683 }
4684
4685
4686
4687
4688 typedef struct
4689 {
4691 OrthancPluginImageFormat imageFormat;
4692 OrthancPluginPixelFormat pixelFormat;
4693 uint32_t width;
4694 uint32_t height;
4695 uint32_t pitch;
4696 const void* buffer;
4697 uint8_t quality;
4698 } _OrthancPluginCompressImage;
4699
4700
4721 OrthancPluginContext* context,
4724 uint32_t width,
4725 uint32_t height,
4726 uint32_t pitch,
4727 const void* buffer)
4728 {
4729 _OrthancPluginCompressImage params;
4730 memset(&params, 0, sizeof(params));
4731 params.target = target;
4732 params.imageFormat = OrthancPluginImageFormat_Png;
4733 params.pixelFormat = format;
4734 params.width = width;
4735 params.height = height;
4736 params.pitch = pitch;
4737 params.buffer = buffer;
4738 params.quality = 0; /* Unused for PNG */
4739
4740 return context->InvokeService(context, _OrthancPluginService_CompressImage, &params);
4741 }
4742
4743
4766 OrthancPluginContext* context,
4769 uint32_t width,
4770 uint32_t height,
4771 uint32_t pitch,
4772 const void* buffer,
4773 uint8_t quality)
4774 {
4775 _OrthancPluginCompressImage params;
4776 memset(&params, 0, sizeof(params));
4777 params.target = target;
4778 params.imageFormat = OrthancPluginImageFormat_Jpeg;
4779 params.pixelFormat = format;
4780 params.width = width;
4781 params.height = height;
4782 params.pitch = pitch;
4783 params.buffer = buffer;
4784 params.quality = quality;
4785
4786 return context->InvokeService(context, _OrthancPluginService_CompressImage, &params);
4787 }
4788
4789
4790
4813 OrthancPluginContext* context,
4816 uint32_t width,
4817 uint32_t height,
4818 uint32_t pitch,
4819 const void* buffer,
4820 uint8_t quality)
4821 {
4822 _OrthancPluginCompressAndAnswerImage params;
4823 params.output = output;
4824 params.imageFormat = OrthancPluginImageFormat_Jpeg;
4825 params.pixelFormat = format;
4826 params.width = width;
4827 params.height = height;
4828 params.pitch = pitch;
4829 params.buffer = buffer;
4830 params.quality = quality;
4831 context->InvokeService(context, _OrthancPluginService_CompressAndAnswerImage, &params);
4832 }
4833
4834
4835
4836
4837 typedef struct
4838 {
4841 const char* url;
4842 const char* username;
4843 const char* password;
4844 const void* body;
4845 uint32_t bodySize;
4846 } _OrthancPluginCallHttpClient;
4847
4848
4866 OrthancPluginContext* context,
4868 const char* url,
4869 const char* username,
4870 const char* password)
4871 {
4872 _OrthancPluginCallHttpClient params;
4873 memset(&params, 0, sizeof(params));
4874
4875 params.target = target;
4876 params.method = OrthancPluginHttpMethod_Get;
4877 params.url = url;
4878 params.username = username;
4879 params.password = password;
4880
4881 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4882 }
4883
4884
4904 OrthancPluginContext* context,
4906 const char* url,
4907 const void* body,
4908 uint32_t bodySize,
4909 const char* username,
4910 const char* password)
4911 {
4912 _OrthancPluginCallHttpClient params;
4913 memset(&params, 0, sizeof(params));
4914
4915 params.target = target;
4916 params.method = OrthancPluginHttpMethod_Post;
4917 params.url = url;
4918 params.body = body;
4919 params.bodySize = bodySize;
4920 params.username = username;
4921 params.password = password;
4922
4923 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4924 }
4925
4926
4946 OrthancPluginContext* context,
4948 const char* url,
4949 const void* body,
4950 uint32_t bodySize,
4951 const char* username,
4952 const char* password)
4953 {
4954 _OrthancPluginCallHttpClient params;
4955 memset(&params, 0, sizeof(params));
4956
4957 params.target = target;
4958 params.method = OrthancPluginHttpMethod_Put;
4959 params.url = url;
4960 params.body = body;
4961 params.bodySize = bodySize;
4962 params.username = username;
4963 params.password = password;
4964
4965 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4966 }
4967
4968
4984 OrthancPluginContext* context,
4985 const char* url,
4986 const char* username,
4987 const char* password)
4988 {
4989 _OrthancPluginCallHttpClient params;
4990 memset(&params, 0, sizeof(params));
4991
4992 params.method = OrthancPluginHttpMethod_Delete;
4993 params.url = url;
4994 params.username = username;
4995 params.password = password;
4996
4997 return context->InvokeService(context, _OrthancPluginService_CallHttpClient, &params);
4998 }
4999
5000
5001
5002 typedef struct
5003 {
5004 OrthancPluginImage** target;
5005 const OrthancPluginImage* source;
5006 OrthancPluginPixelFormat targetFormat;
5007 } _OrthancPluginConvertPixelFormat;
5008
5009
5022 OrthancPluginContext* context,
5023 const OrthancPluginImage* source,
5024 OrthancPluginPixelFormat targetFormat)
5025 {
5026 OrthancPluginImage* target = NULL;
5027
5028 _OrthancPluginConvertPixelFormat params;
5029 params.target = &target;
5030 params.source = source;
5031 params.targetFormat = targetFormat;
5032
5033 if (context->InvokeService(context, _OrthancPluginService_ConvertPixelFormat, &params) != OrthancPluginErrorCode_Success)
5034 {
5035 return NULL;
5036 }
5037 else
5038 {
5039 return target;
5040 }
5041 }
5042
5043
5044
5056 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFontsCount(
5057 OrthancPluginContext* context)
5058 {
5059 uint32_t count = 0;
5060
5061 _OrthancPluginReturnSingleValue params;
5062 memset(&params, 0, sizeof(params));
5063 params.resultUint32 = &count;
5064
5065 if (context->InvokeService(context, _OrthancPluginService_GetFontsCount, &params) != OrthancPluginErrorCode_Success)
5066 {
5067 /* Error */
5068 return 0;
5069 }
5070 else
5071 {
5072 return count;
5073 }
5074 }
5075
5076
5077
5078
5079 typedef struct
5080 {
5081 uint32_t fontIndex; /* in */
5082 const char** name; /* out */
5083 uint32_t* size; /* out */
5084 } _OrthancPluginGetFontInfo;
5085
5096 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetFontName(
5097 OrthancPluginContext* context,
5098 uint32_t fontIndex)
5099 {
5100 const char* result = NULL;
5101
5102 _OrthancPluginGetFontInfo params;
5103 memset(&params, 0, sizeof(params));
5104 params.name = &result;
5105 params.fontIndex = fontIndex;
5106
5107 if (context->InvokeService(context, _OrthancPluginService_GetFontInfo, &params) != OrthancPluginErrorCode_Success)
5108 {
5109 return NULL;
5110 }
5111 else
5112 {
5113 return result;
5114 }
5115 }
5116
5117
5128 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFontSize(
5129 OrthancPluginContext* context,
5130 uint32_t fontIndex)
5131 {
5132 uint32_t result;
5133
5134 _OrthancPluginGetFontInfo params;
5135 memset(&params, 0, sizeof(params));
5136 params.size = &result;
5137 params.fontIndex = fontIndex;
5138
5139 if (context->InvokeService(context, _OrthancPluginService_GetFontInfo, &params) != OrthancPluginErrorCode_Success)
5140 {
5141 return 0;
5142 }
5143 else
5144 {
5145 return result;
5146 }
5147 }
5148
5149
5150
5151 typedef struct
5152 {
5153 OrthancPluginImage* image;
5154 uint32_t fontIndex;
5155 const char* utf8Text;
5156 int32_t x;
5157 int32_t y;
5158 uint8_t r;
5159 uint8_t g;
5160 uint8_t b;
5161 } _OrthancPluginDrawText;
5162
5163
5182 OrthancPluginContext* context,
5183 OrthancPluginImage* image,
5184 uint32_t fontIndex,
5185 const char* utf8Text,
5186 int32_t x,
5187 int32_t y,
5188 uint8_t r,
5189 uint8_t g,
5190 uint8_t b)
5191 {
5192 _OrthancPluginDrawText params;
5193 memset(&params, 0, sizeof(params));
5194 params.image = image;
5195 params.fontIndex = fontIndex;
5196 params.utf8Text = utf8Text;
5197 params.x = x;
5198 params.y = y;
5199 params.r = r;
5200 params.g = g;
5201 params.b = b;
5202
5203 return context->InvokeService(context, _OrthancPluginService_DrawText, &params);
5204 }
5205
5206
5207
5208 typedef struct
5209 {
5210 OrthancPluginStorageArea* storageArea;
5211 const char* uuid;
5212 const void* content;
5213 uint64_t size;
5215 } _OrthancPluginStorageAreaCreate;
5216
5217
5237 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaCreate(
5238 OrthancPluginContext* context,
5239 OrthancPluginStorageArea* storageArea,
5240 const char* uuid,
5241 const void* content,
5242 uint64_t size,
5244 {
5245 _OrthancPluginStorageAreaCreate params;
5246 params.storageArea = storageArea;
5247 params.uuid = uuid;
5248 params.content = content;
5249 params.size = size;
5250 params.type = type;
5251
5252 return context->InvokeService(context, _OrthancPluginService_StorageAreaCreate, &params);
5253 }
5254
5255
5256 typedef struct
5257 {
5259 OrthancPluginStorageArea* storageArea;
5260 const char* uuid;
5262 } _OrthancPluginStorageAreaRead;
5263
5264
5283 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRead(
5284 OrthancPluginContext* context,
5286 OrthancPluginStorageArea* storageArea,
5287 const char* uuid,
5289 {
5290 _OrthancPluginStorageAreaRead params;
5291 params.target = target;
5292 params.storageArea = storageArea;
5293 params.uuid = uuid;
5294 params.type = type;
5295
5296 return context->InvokeService(context, _OrthancPluginService_StorageAreaRead, &params);
5297 }
5298
5299
5300 typedef struct
5301 {
5302 OrthancPluginStorageArea* storageArea;
5303 const char* uuid;
5305 } _OrthancPluginStorageAreaRemove;
5306
5324 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRemove(
5325 OrthancPluginContext* context,
5326 OrthancPluginStorageArea* storageArea,
5327 const char* uuid,
5329 {
5330 _OrthancPluginStorageAreaRemove params;
5331 params.storageArea = storageArea;
5332 params.uuid = uuid;
5333 params.type = type;
5334
5335 return context->InvokeService(context, _OrthancPluginService_StorageAreaRemove, &params);
5336 }
5337
5338
5339
5340 typedef struct
5341 {
5342 OrthancPluginErrorCode* target;
5343 int32_t code;
5344 uint16_t httpStatus;
5345 const char* message;
5346 } _OrthancPluginRegisterErrorCode;
5347
5364 OrthancPluginContext* context,
5365 int32_t code,
5366 uint16_t httpStatus,
5367 const char* message)
5368 {
5370
5371 _OrthancPluginRegisterErrorCode params;
5372 params.target = &target;
5373 params.code = code;
5374 params.httpStatus = httpStatus;
5375 params.message = message;
5376
5377 if (context->InvokeService(context, _OrthancPluginService_RegisterErrorCode, &params) == OrthancPluginErrorCode_Success)
5378 {
5379 return target;
5380 }
5381 else
5382 {
5383 /* There was an error while assigned the error. Use a generic code. */
5385 }
5386 }
5387
5388
5389
5390 typedef struct
5391 {
5392 uint16_t group;
5393 uint16_t element;
5395 const char* name;
5396 uint32_t minMultiplicity;
5397 uint32_t maxMultiplicity;
5398 } _OrthancPluginRegisterDictionaryTag;
5399
5420 OrthancPluginContext* context,
5421 uint16_t group,
5422 uint16_t element,
5424 const char* name,
5425 uint32_t minMultiplicity,
5426 uint32_t maxMultiplicity)
5427 {
5428 _OrthancPluginRegisterDictionaryTag params;
5429 params.group = group;
5430 params.element = element;
5431 params.vr = vr;
5432 params.name = name;
5433 params.minMultiplicity = minMultiplicity;
5434 params.maxMultiplicity = maxMultiplicity;
5435
5436 return context->InvokeService(context, _OrthancPluginService_RegisterDictionaryTag, &params);
5437 }
5438
5439
5440
5441 typedef struct
5442 {
5443 uint16_t group;
5444 uint16_t element;
5446 const char* name;
5447 uint32_t minMultiplicity;
5448 uint32_t maxMultiplicity;
5449 const char* privateCreator;
5450 } _OrthancPluginRegisterPrivateDictionaryTag;
5451
5472 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
5474 OrthancPluginContext* context,
5475 uint16_t group,
5476 uint16_t element,
5478 const char* name,
5479 uint32_t minMultiplicity,
5480 uint32_t maxMultiplicity,
5481 const char* privateCreator)
5482 {
5483 _OrthancPluginRegisterPrivateDictionaryTag params;
5484 params.group = group;
5485 params.element = element;
5486 params.vr = vr;
5487 params.name = name;
5488 params.minMultiplicity = minMultiplicity;
5489 params.maxMultiplicity = maxMultiplicity;
5490 params.privateCreator = privateCreator;
5491
5492 return context->InvokeService(context, _OrthancPluginService_RegisterPrivateDictionaryTag, &params);
5493 }
5494
5495
5496
5497 typedef struct
5498 {
5499 OrthancPluginStorageArea* storageArea;
5501 } _OrthancPluginReconstructMainDicomTags;
5502
5518 OrthancPluginContext* context,
5519 OrthancPluginStorageArea* storageArea,
5521 {
5522 _OrthancPluginReconstructMainDicomTags params;
5523 params.level = level;
5524 params.storageArea = storageArea;
5525
5526 return context->InvokeService(context, _OrthancPluginService_ReconstructMainDicomTags, &params);
5527 }
5528
5529
5530 typedef struct
5531 {
5532 char** result;
5533 const char* instanceId;
5534 const void* buffer;
5535 uint32_t size;
5538 uint32_t maxStringLength;
5539 } _OrthancPluginDicomToJson;
5540
5541
5561 ORTHANC_PLUGIN_INLINE char* OrthancPluginDicomBufferToJson(
5562 OrthancPluginContext* context,
5563 const void* buffer,
5564 uint32_t size,
5567 uint32_t maxStringLength)
5568 {
5569 char* result;
5570
5571 _OrthancPluginDicomToJson params;
5572 memset(&params, 0, sizeof(params));
5573 params.result = &result;
5574 params.buffer = buffer;
5575 params.size = size;
5576 params.format = format;
5577 params.flags = flags;
5578 params.maxStringLength = maxStringLength;
5579
5580 if (context->InvokeService(context, _OrthancPluginService_DicomBufferToJson, &params) != OrthancPluginErrorCode_Success)
5581 {
5582 /* Error */
5583 return NULL;
5584 }
5585 else
5586 {
5587 return result;
5588 }
5589 }
5590
5591
5610 ORTHANC_PLUGIN_INLINE char* OrthancPluginDicomInstanceToJson(
5611 OrthancPluginContext* context,
5612 const char* instanceId,
5615 uint32_t maxStringLength)
5616 {
5617 char* result;
5618
5619 _OrthancPluginDicomToJson params;
5620 memset(&params, 0, sizeof(params));
5621 params.result = &result;
5622 params.instanceId = instanceId;
5623 params.format = format;
5624 params.flags = flags;
5625 params.maxStringLength = maxStringLength;
5626
5627 if (context->InvokeService(context, _OrthancPluginService_DicomInstanceToJson, &params) != OrthancPluginErrorCode_Success)
5628 {
5629 /* Error */
5630 return NULL;
5631 }
5632 else
5633 {
5634 return result;
5635 }
5636 }
5637
5638
5639 typedef struct
5640 {
5642 const char* uri;
5643 uint32_t headersCount;
5644 const char* const* headersKeys;
5645 const char* const* headersValues;
5646 int32_t afterPlugins;
5647 } _OrthancPluginRestApiGet2;
5648
5669 OrthancPluginContext* context,
5671 const char* uri,
5672 uint32_t headersCount,
5673 const char* const* headersKeys,
5674 const char* const* headersValues,
5675 int32_t afterPlugins)
5676 {
5677 _OrthancPluginRestApiGet2 params;
5678 params.target = target;
5679 params.uri = uri;
5680 params.headersCount = headersCount;
5681 params.headersKeys = headersKeys;
5682 params.headersValues = headersValues;
5683 params.afterPlugins = afterPlugins;
5684
5685 return context->InvokeService(context, _OrthancPluginService_RestApiGet2, &params);
5686 }
5687
5688
5689
5690 typedef struct
5691 {
5693 } _OrthancPluginWorklistCallback;
5694
5707 OrthancPluginContext* context,
5709 {
5710 _OrthancPluginWorklistCallback params;
5711 params.callback = callback;
5712
5713 return context->InvokeService(context, _OrthancPluginService_RegisterWorklistCallback, &params);
5714 }
5715
5716
5717 typedef struct
5718 {
5720 const OrthancPluginWorklistQuery* query;
5721 const void* dicom;
5722 uint32_t size;
5723 } _OrthancPluginWorklistAnswersOperation;
5724
5751 OrthancPluginContext* context,
5753 const OrthancPluginWorklistQuery* query,
5754 const void* dicom,
5755 uint32_t size)
5756 {
5757 _OrthancPluginWorklistAnswersOperation params;
5758 params.answers = answers;
5759 params.query = query;
5760 params.dicom = dicom;
5761 params.size = size;
5762
5763 return context->InvokeService(context, _OrthancPluginService_WorklistAddAnswer, &params);
5764 }
5765
5766
5781 OrthancPluginContext* context,
5783 {
5784 _OrthancPluginWorklistAnswersOperation params;
5785 params.answers = answers;
5786 params.query = NULL;
5787 params.dicom = NULL;
5788 params.size = 0;
5789
5790 return context->InvokeService(context, _OrthancPluginService_WorklistMarkIncomplete, &params);
5791 }
5792
5793
5794 typedef struct
5795 {
5796 const OrthancPluginWorklistQuery* query;
5797 const void* dicom;
5798 uint32_t size;
5799 int32_t* isMatch;
5801 } _OrthancPluginWorklistQueryOperation;
5802
5818 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginWorklistIsMatch(
5819 OrthancPluginContext* context,
5820 const OrthancPluginWorklistQuery* query,
5821 const void* dicom,
5822 uint32_t size)
5823 {
5824 int32_t isMatch = 0;
5825
5826 _OrthancPluginWorklistQueryOperation params;
5827 params.query = query;
5828 params.dicom = dicom;
5829 params.size = size;
5830 params.isMatch = &isMatch;
5831 params.target = NULL;
5832
5833 if (context->InvokeService(context, _OrthancPluginService_WorklistIsMatch, &params) == OrthancPluginErrorCode_Success)
5834 {
5835 return isMatch;
5836 }
5837 else
5838 {
5839 /* Error: Assume non-match */
5840 return 0;
5841 }
5842 }
5843
5844
5858 OrthancPluginContext* context,
5860 const OrthancPluginWorklistQuery* query)
5861 {
5862 _OrthancPluginWorklistQueryOperation params;
5863 params.query = query;
5864 params.dicom = NULL;
5865 params.size = 0;
5866 params.isMatch = NULL;
5867 params.target = target;
5868
5869 return context->InvokeService(context, _OrthancPluginService_WorklistGetDicomQuery, &params);
5870 }
5871
5872
5884 OrthancPluginContext* context,
5885 const OrthancPluginDicomInstance* instance)
5886 {
5888
5889 _OrthancPluginAccessDicomInstance params;
5890 memset(&params, 0, sizeof(params));
5891 params.resultOrigin = &origin;
5892 params.instance = instance;
5893
5894 if (context->InvokeService(context, _OrthancPluginService_GetInstanceOrigin, &params) != OrthancPluginErrorCode_Success)
5895 {
5896 /* Error */
5898 }
5899 else
5900 {
5901 return origin;
5902 }
5903 }
5904
5905
5906 typedef struct
5907 {
5909 const char* json;
5910 const OrthancPluginImage* pixelData;
5912 } _OrthancPluginCreateDicom;
5913
5940 OrthancPluginContext* context,
5942 const char* json,
5943 const OrthancPluginImage* pixelData,
5945 {
5946 _OrthancPluginCreateDicom params;
5947 params.target = target;
5948 params.json = json;
5949 params.pixelData = pixelData;
5950 params.flags = flags;
5951
5952 return context->InvokeService(context, _OrthancPluginService_CreateDicom, &params);
5953 }
5954
5955
5956 typedef struct
5957 {
5959 } _OrthancPluginDecodeImageCallback;
5960
5976 OrthancPluginContext* context,
5978 {
5979 _OrthancPluginDecodeImageCallback params;
5980 params.callback = callback;
5981
5982 return context->InvokeService(context, _OrthancPluginService_RegisterDecodeImageCallback, &params);
5983 }
5984
5985
5986
5987 typedef struct
5988 {
5989 OrthancPluginImage** target;
5991 uint32_t width;
5992 uint32_t height;
5993 uint32_t pitch;
5994 void* buffer;
5995 const void* constBuffer;
5996 uint32_t bufferSize;
5997 uint32_t frameIndex;
5998 } _OrthancPluginCreateImage;
5999
6000
6014 OrthancPluginContext* context,
6016 uint32_t width,
6017 uint32_t height)
6018 {
6019 OrthancPluginImage* target = NULL;
6020
6021 _OrthancPluginCreateImage params;
6022 memset(&params, 0, sizeof(params));
6023 params.target = &target;
6024 params.format = format;
6025 params.width = width;
6026 params.height = height;
6027
6028 if (context->InvokeService(context, _OrthancPluginService_CreateImage, &params) != OrthancPluginErrorCode_Success)
6029 {
6030 return NULL;
6031 }
6032 else
6033 {
6034 return target;
6035 }
6036 }
6037
6038
6057 OrthancPluginContext* context,
6059 uint32_t width,
6060 uint32_t height,
6061 uint32_t pitch,
6062 void* buffer)
6063 {
6064 OrthancPluginImage* target = NULL;
6065
6066 _OrthancPluginCreateImage params;
6067 memset(&params, 0, sizeof(params));
6068 params.target = &target;
6069 params.format = format;
6070 params.width = width;
6071 params.height = height;
6072 params.pitch = pitch;
6073 params.buffer = buffer;
6074
6075 if (context->InvokeService(context, _OrthancPluginService_CreateImageAccessor, &params) != OrthancPluginErrorCode_Success)
6076 {
6077 return NULL;
6078 }
6079 else
6080 {
6081 return target;
6082 }
6083 }
6084
6085
6086
6103 OrthancPluginContext* context,
6104 const void* buffer,
6105 uint32_t bufferSize,
6106 uint32_t frameIndex)
6107 {
6108 OrthancPluginImage* target = NULL;
6109
6110 _OrthancPluginCreateImage params;
6111 memset(&params, 0, sizeof(params));
6112 params.target = &target;
6113 params.constBuffer = buffer;
6114 params.bufferSize = bufferSize;
6115 params.frameIndex = frameIndex;
6116
6117 if (context->InvokeService(context, _OrthancPluginService_DecodeDicomImage, &params) != OrthancPluginErrorCode_Success)
6118 {
6119 return NULL;
6120 }
6121 else
6122 {
6123 return target;
6124 }
6125 }
6126
6127
6128
6129 typedef struct
6130 {
6131 char** result;
6132 const void* buffer;
6133 uint32_t size;
6134 } _OrthancPluginComputeHash;
6135
6148 ORTHANC_PLUGIN_INLINE char* OrthancPluginComputeMd5(
6149 OrthancPluginContext* context,
6150 const void* buffer,
6151 uint32_t size)
6152 {
6153 char* result;
6154
6155 _OrthancPluginComputeHash params;
6156 params.result = &result;
6157 params.buffer = buffer;
6158 params.size = size;
6159
6160 if (context->InvokeService(context, _OrthancPluginService_ComputeMd5, &params) != OrthancPluginErrorCode_Success)
6161 {
6162 /* Error */
6163 return NULL;
6164 }
6165 else
6166 {
6167 return result;
6168 }
6169 }
6170
6171
6184 ORTHANC_PLUGIN_INLINE char* OrthancPluginComputeSha1(
6185 OrthancPluginContext* context,
6186 const void* buffer,
6187 uint32_t size)
6188 {
6189 char* result;
6190
6191 _OrthancPluginComputeHash params;
6192 params.result = &result;
6193 params.buffer = buffer;
6194 params.size = size;
6195
6196 if (context->InvokeService(context, _OrthancPluginService_ComputeSha1, &params) != OrthancPluginErrorCode_Success)
6197 {
6198 /* Error */
6199 return NULL;
6200 }
6201 else
6202 {
6203 return result;
6204 }
6205 }
6206
6207
6208
6209 typedef struct
6210 {
6212 const char* name;
6213 } _OrthancPluginLookupDictionary;
6214
6231 OrthancPluginContext* context,
6233 const char* name)
6234 {
6235 _OrthancPluginLookupDictionary params;
6236 params.target = target;
6237 params.name = name;
6238 return context->InvokeService(context, _OrthancPluginService_LookupDictionary, &params);
6239 }
6240
6241
6242
6243 typedef struct
6244 {
6246 const void* answer;
6247 uint32_t answerSize;
6248 uint32_t headersCount;
6249 const char* const* headersKeys;
6250 const char* const* headersValues;
6251 } _OrthancPluginSendMultipartItem2;
6252
6273 ORTHANC_PLUGIN_SINCE_SDK("1.0.0")
6275 OrthancPluginContext* context,
6277 const void* answer,
6278 uint32_t answerSize,
6279 uint32_t headersCount,
6280 const char* const* headersKeys,
6281 const char* const* headersValues)
6282 {
6283 _OrthancPluginSendMultipartItem2 params;
6284 params.output = output;
6285 params.answer = answer;
6286 params.answerSize = answerSize;
6287 params.headersCount = headersCount;
6288 params.headersKeys = headersKeys;
6289 params.headersValues = headersValues;
6290
6291 return context->InvokeService(context, _OrthancPluginService_SendMultipartItem2, &params);
6292 }
6293
6294
6295 typedef struct
6296 {
6298 } _OrthancPluginIncomingHttpRequestFilter;
6299
6312 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6313 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter(
6314 OrthancPluginContext* context,
6316 {
6317 _OrthancPluginIncomingHttpRequestFilter params;
6318 params.callback = callback;
6319
6320 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingHttpRequestFilter, &params);
6321 }
6322
6323
6324
6325 typedef struct
6326 {
6327 OrthancPluginMemoryBuffer* answerBody;
6328 OrthancPluginMemoryBuffer* answerHeaders;
6329 uint16_t* httpStatus;
6331 const char* url;
6332 uint32_t headersCount;
6333 const char* const* headersKeys;
6334 const char* const* headersValues;
6335 const void* body;
6336 uint32_t bodySize;
6337 const char* username;
6338 const char* password;
6339 uint32_t timeout;
6340 const char* certificateFile;
6341 const char* certificateKeyFile;
6342 const char* certificateKeyPassword;
6343 uint8_t pkcs11;
6344 } _OrthancPluginCallHttpClient2;
6345
6346
6347
6388 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6390 OrthancPluginContext* context,
6391 OrthancPluginMemoryBuffer* answerBody,
6392 OrthancPluginMemoryBuffer* answerHeaders,
6393 uint16_t* httpStatus,
6395 const char* url,
6396 uint32_t headersCount,
6397 const char* const* headersKeys,
6398 const char* const* headersValues,
6399 const void* body,
6400 uint32_t bodySize,
6401 const char* username,
6402 const char* password,
6403 uint32_t timeout,
6404 const char* certificateFile,
6405 const char* certificateKeyFile,
6406 const char* certificateKeyPassword,
6407 uint8_t pkcs11)
6408 {
6409 _OrthancPluginCallHttpClient2 params;
6410 memset(&params, 0, sizeof(params));
6411
6412 params.answerBody = answerBody;
6413 params.answerHeaders = answerHeaders;
6414 params.httpStatus = httpStatus;
6415 params.method = method;
6416 params.url = url;
6417 params.headersCount = headersCount;
6418 params.headersKeys = headersKeys;
6419 params.headersValues = headersValues;
6420 params.body = body;
6421 params.bodySize = bodySize;
6422 params.username = username;
6423 params.password = password;
6424 params.timeout = timeout;
6425 params.certificateFile = certificateFile;
6426 params.certificateKeyFile = certificateKeyFile;
6427 params.certificateKeyPassword = certificateKeyPassword;
6428 params.pkcs11 = pkcs11;
6429
6430 return context->InvokeService(context, _OrthancPluginService_CallHttpClient2, &params);
6431 }
6432
6433
6444 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6445 ORTHANC_PLUGIN_INLINE char* OrthancPluginGenerateUuid(
6446 OrthancPluginContext* context)
6447 {
6448 char* result;
6449
6450 _OrthancPluginRetrieveDynamicString params;
6451 params.result = &result;
6452 params.argument = NULL;
6453
6454 if (context->InvokeService(context, _OrthancPluginService_GenerateUuid, &params) != OrthancPluginErrorCode_Success)
6455 {
6456 /* Error */
6457 return NULL;
6458 }
6459 else
6460 {
6461 return result;
6462 }
6463 }
6464
6465
6466
6467
6468 typedef struct
6469 {
6471 } _OrthancPluginFindCallback;
6472
6484 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6486 OrthancPluginContext* context,
6488 {
6489 _OrthancPluginFindCallback params;
6490 params.callback = callback;
6491
6492 return context->InvokeService(context, _OrthancPluginService_RegisterFindCallback, &params);
6493 }
6494
6495
6496 typedef struct
6497 {
6498 OrthancPluginFindAnswers *answers;
6499 const OrthancPluginFindQuery *query;
6500 const void *dicom;
6501 uint32_t size;
6502 uint32_t index;
6503 uint32_t *resultUint32;
6504 uint16_t *resultGroup;
6505 uint16_t *resultElement;
6506 char **resultString;
6507 } _OrthancPluginFindOperation;
6508
6524 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6526 OrthancPluginContext* context,
6527 OrthancPluginFindAnswers* answers,
6528 const void* dicom,
6529 uint32_t size)
6530 {
6531 _OrthancPluginFindOperation params;
6532 memset(&params, 0, sizeof(params));
6533 params.answers = answers;
6534 params.dicom = dicom;
6535 params.size = size;
6536
6537 return context->InvokeService(context, _OrthancPluginService_FindAddAnswer, &params);
6538 }
6539
6540
6554 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6556 OrthancPluginContext* context,
6557 OrthancPluginFindAnswers* answers)
6558 {
6559 _OrthancPluginFindOperation params;
6560 memset(&params, 0, sizeof(params));
6561 params.answers = answers;
6562
6563 return context->InvokeService(context, _OrthancPluginService_FindMarkIncomplete, &params);
6564 }
6565
6566
6567
6579 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6580 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetFindQuerySize(
6581 OrthancPluginContext* context,
6582 const OrthancPluginFindQuery* query)
6583 {
6584 uint32_t count = 0;
6585
6586 _OrthancPluginFindOperation params;
6587 memset(&params, 0, sizeof(params));
6588 params.query = query;
6589 params.resultUint32 = &count;
6590
6591 if (context->InvokeService(context, _OrthancPluginService_GetFindQuerySize, &params) != OrthancPluginErrorCode_Success)
6592 {
6593 /* Error */
6594 return 0;
6595 }
6596 else
6597 {
6598 return count;
6599 }
6600 }
6601
6602
6617 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6619 OrthancPluginContext* context,
6620 uint16_t* group,
6621 uint16_t* element,
6622 const OrthancPluginFindQuery* query,
6623 uint32_t index)
6624 {
6625 _OrthancPluginFindOperation params;
6626 memset(&params, 0, sizeof(params));
6627 params.query = query;
6628 params.index = index;
6629 params.resultGroup = group;
6630 params.resultElement = element;
6631
6632 return context->InvokeService(context, _OrthancPluginService_GetFindQueryTag, &params);
6633 }
6634
6635
6649 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6650 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetFindQueryTagName(
6651 OrthancPluginContext* context,
6652 const OrthancPluginFindQuery* query,
6653 uint32_t index)
6654 {
6655 char* result;
6656
6657 _OrthancPluginFindOperation params;
6658 memset(&params, 0, sizeof(params));
6659 params.query = query;
6660 params.index = index;
6661 params.resultString = &result;
6662
6663 if (context->InvokeService(context, _OrthancPluginService_GetFindQueryTagName, &params) != OrthancPluginErrorCode_Success)
6664 {
6665 /* Error */
6666 return NULL;
6667 }
6668 else
6669 {
6670 return result;
6671 }
6672 }
6673
6674
6688 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6689 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetFindQueryValue(
6690 OrthancPluginContext* context,
6691 const OrthancPluginFindQuery* query,
6692 uint32_t index)
6693 {
6694 char* result;
6695
6696 _OrthancPluginFindOperation params;
6697 memset(&params, 0, sizeof(params));
6698 params.query = query;
6699 params.index = index;
6700 params.resultString = &result;
6701
6702 if (context->InvokeService(context, _OrthancPluginService_GetFindQueryValue, &params) != OrthancPluginErrorCode_Success)
6703 {
6704 /* Error */
6705 return NULL;
6706 }
6707 else
6708 {
6709 return result;
6710 }
6711 }
6712
6713
6714
6715
6716 typedef struct
6717 {
6719 OrthancPluginGetMoveSize getMoveSize;
6720 OrthancPluginApplyMove applyMove;
6721 OrthancPluginFreeMove freeMove;
6722 } _OrthancPluginMoveCallback;
6723
6737 ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6739 OrthancPluginContext* context,
6741 OrthancPluginGetMoveSize getMoveSize,
6742 OrthancPluginApplyMove applyMove,
6743 OrthancPluginFreeMove freeMove)
6744 {
6745 _OrthancPluginMoveCallback params;
6746 params.callback = callback;
6747 params.getMoveSize = getMoveSize;
6748 params.applyMove = applyMove;
6749 params.freeMove = freeMove;
6750
6751 return context->InvokeService(context, _OrthancPluginService_RegisterMoveCallback, &params);
6752 }
6753
6754
6755
6756 typedef struct
6757 {
6758 OrthancPluginFindMatcher** target;
6759 const void* query;
6760 uint32_t size;
6761 } _OrthancPluginCreateFindMatcher;
6762
6763
6777 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6779 OrthancPluginContext* context,
6780 const void* query,
6781 uint32_t size)
6782 {
6783 OrthancPluginFindMatcher* target = NULL;
6784
6785 _OrthancPluginCreateFindMatcher params;
6786 memset(&params, 0, sizeof(params));
6787 params.target = &target;
6788 params.query = query;
6789 params.size = size;
6790
6791 if (context->InvokeService(context, _OrthancPluginService_CreateFindMatcher, &params) != OrthancPluginErrorCode_Success)
6792 {
6793 return NULL;
6794 }
6795 else
6796 {
6797 return target;
6798 }
6799 }
6800
6801
6802 typedef struct
6803 {
6804 OrthancPluginFindMatcher* matcher;
6805 } _OrthancPluginFreeFindMatcher;
6806
6816 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6817 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeFindMatcher(
6818 OrthancPluginContext* context,
6819 OrthancPluginFindMatcher* matcher)
6820 {
6821 _OrthancPluginFreeFindMatcher params;
6822 params.matcher = matcher;
6823
6824 context->InvokeService(context, _OrthancPluginService_FreeFindMatcher, &params);
6825 }
6826
6827
6828 typedef struct
6829 {
6830 const OrthancPluginFindMatcher* matcher;
6831 const void* dicom;
6832 uint32_t size;
6833 int32_t* isMatch;
6834 } _OrthancPluginFindMatcherIsMatch;
6835
6850 ORTHANC_PLUGIN_SINCE_SDK("1.2.0")
6851 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginFindMatcherIsMatch(
6852 OrthancPluginContext* context,
6853 const OrthancPluginFindMatcher* matcher,
6854 const void* dicom,
6855 uint32_t size)
6856 {
6857 int32_t isMatch = 0;
6858
6859 _OrthancPluginFindMatcherIsMatch params;
6860 params.matcher = matcher;
6861 params.dicom = dicom;
6862 params.size = size;
6863 params.isMatch = &isMatch;
6864
6865 if (context->InvokeService(context, _OrthancPluginService_FindMatcherIsMatch, &params) == OrthancPluginErrorCode_Success)
6866 {
6867 return isMatch;
6868 }
6869 else
6870 {
6871 /* Error: Assume non-match */
6872 return 0;
6873 }
6874 }
6875
6876
6877 typedef struct
6878 {
6880 } _OrthancPluginIncomingHttpRequestFilter2;
6881
6893 ORTHANC_PLUGIN_SINCE_SDK("1.3.0")
6895 OrthancPluginContext* context,
6897 {
6898 _OrthancPluginIncomingHttpRequestFilter2 params;
6899 params.callback = callback;
6900
6901 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingHttpRequestFilter2, &params);
6902 }
6903
6904
6905
6906 typedef struct
6907 {
6908 OrthancPluginPeers** peers;
6909 } _OrthancPluginGetPeers;
6910
6922 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6924 OrthancPluginContext* context)
6925 {
6926 OrthancPluginPeers* peers = NULL;
6927
6928 _OrthancPluginGetPeers params;
6929 memset(&params, 0, sizeof(params));
6930 params.peers = &peers;
6931
6932 if (context->InvokeService(context, _OrthancPluginService_GetPeers, &params) != OrthancPluginErrorCode_Success)
6933 {
6934 return NULL;
6935 }
6936 else
6937 {
6938 return peers;
6939 }
6940 }
6941
6942
6943 typedef struct
6944 {
6945 OrthancPluginPeers* peers;
6946 } _OrthancPluginFreePeers;
6947
6957 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6958 ORTHANC_PLUGIN_INLINE void OrthancPluginFreePeers(
6959 OrthancPluginContext* context,
6960 OrthancPluginPeers* peers)
6961 {
6962 _OrthancPluginFreePeers params;
6963 params.peers = peers;
6964
6965 context->InvokeService(context, _OrthancPluginService_FreePeers, &params);
6966 }
6967
6968
6969 typedef struct
6970 {
6971 uint32_t* target;
6972 const OrthancPluginPeers* peers;
6973 } _OrthancPluginGetPeersCount;
6974
6988 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
6989 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetPeersCount(
6990 OrthancPluginContext* context,
6991 const OrthancPluginPeers* peers)
6992 {
6993 uint32_t target = 0;
6994
6995 _OrthancPluginGetPeersCount params;
6996 memset(&params, 0, sizeof(params));
6997 params.target = &target;
6998 params.peers = peers;
6999
7000 if (context->InvokeService(context, _OrthancPluginService_GetPeersCount, &params) != OrthancPluginErrorCode_Success)
7001 {
7002 /* Error */
7003 return 0;
7004 }
7005 else
7006 {
7007 return target;
7008 }
7009 }
7010
7011
7012 typedef struct
7013 {
7014 const char** target;
7015 const OrthancPluginPeers* peers;
7016 uint32_t peerIndex;
7017 const char* userProperty;
7018 } _OrthancPluginGetPeerProperty;
7019
7037 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7038 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerName(
7039 OrthancPluginContext* context,
7040 const OrthancPluginPeers* peers,
7041 uint32_t peerIndex)
7042 {
7043 const char* target = NULL;
7044
7045 _OrthancPluginGetPeerProperty params;
7046 memset(&params, 0, sizeof(params));
7047 params.target = &target;
7048 params.peers = peers;
7049 params.peerIndex = peerIndex;
7050 params.userProperty = NULL;
7051
7052 if (context->InvokeService(context, _OrthancPluginService_GetPeerName, &params) != OrthancPluginErrorCode_Success)
7053 {
7054 /* Error */
7055 return NULL;
7056 }
7057 else
7058 {
7059 return target;
7060 }
7061 }
7062
7063
7079 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7080 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerUrl(
7081 OrthancPluginContext* context,
7082 const OrthancPluginPeers* peers,
7083 uint32_t peerIndex)
7084 {
7085 const char* target = NULL;
7086
7087 _OrthancPluginGetPeerProperty params;
7088 memset(&params, 0, sizeof(params));
7089 params.target = &target;
7090 params.peers = peers;
7091 params.peerIndex = peerIndex;
7092 params.userProperty = NULL;
7093
7094 if (context->InvokeService(context, _OrthancPluginService_GetPeerUrl, &params) != OrthancPluginErrorCode_Success)
7095 {
7096 /* Error */
7097 return NULL;
7098 }
7099 else
7100 {
7101 return target;
7102 }
7103 }
7104
7105
7106
7126 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7127 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetPeerUserProperty(
7128 OrthancPluginContext* context,
7129 const OrthancPluginPeers* peers,
7130 uint32_t peerIndex,
7131 const char* userProperty)
7132 {
7133 const char* target = NULL;
7134
7135 _OrthancPluginGetPeerProperty params;
7136 memset(&params, 0, sizeof(params));
7137 params.target = &target;
7138 params.peers = peers;
7139 params.peerIndex = peerIndex;
7140 params.userProperty = userProperty;
7141
7142 if (context->InvokeService(context, _OrthancPluginService_GetPeerUserProperty, &params) != OrthancPluginErrorCode_Success)
7143 {
7144 /* No such user property */
7145 return NULL;
7146 }
7147 else
7148 {
7149 return target;
7150 }
7151 }
7152
7153
7154
7155 typedef struct
7156 {
7157 OrthancPluginMemoryBuffer* answerBody;
7158 OrthancPluginMemoryBuffer* answerHeaders;
7159 uint16_t* httpStatus;
7160 const OrthancPluginPeers* peers;
7161 uint32_t peerIndex;
7163 const char* uri;
7164 uint32_t additionalHeadersCount;
7165 const char* const* additionalHeadersKeys;
7166 const char* const* additionalHeadersValues;
7167 const void* body;
7168 uint32_t bodySize;
7169 uint32_t timeout;
7170 } _OrthancPluginCallPeerApi;
7171
7208 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7210 OrthancPluginContext* context,
7211 OrthancPluginMemoryBuffer* answerBody,
7212 OrthancPluginMemoryBuffer* answerHeaders,
7213 uint16_t* httpStatus,
7214 const OrthancPluginPeers* peers,
7215 uint32_t peerIndex,
7217 const char* uri,
7218 uint32_t additionalHeadersCount,
7219 const char* const* additionalHeadersKeys,
7220 const char* const* additionalHeadersValues,
7221 const void* body,
7222 uint32_t bodySize,
7223 uint32_t timeout)
7224 {
7225 _OrthancPluginCallPeerApi params;
7226 memset(&params, 0, sizeof(params));
7227
7228 params.answerBody = answerBody;
7229 params.answerHeaders = answerHeaders;
7230 params.httpStatus = httpStatus;
7231 params.peers = peers;
7232 params.peerIndex = peerIndex;
7233 params.method = method;
7234 params.uri = uri;
7235 params.additionalHeadersCount = additionalHeadersCount;
7236 params.additionalHeadersKeys = additionalHeadersKeys;
7237 params.additionalHeadersValues = additionalHeadersValues;
7238 params.body = body;
7239 params.bodySize = bodySize;
7240 params.timeout = timeout;
7241
7242 return context->InvokeService(context, _OrthancPluginService_CallPeerApi, &params);
7243 }
7244
7245
7246
7247
7248
7249 typedef struct
7250 {
7251 OrthancPluginJob** target;
7252 void *job;
7253 OrthancPluginJobFinalize finalize;
7254 const char *type;
7255 OrthancPluginJobGetProgress getProgress;
7256 OrthancPluginJobGetContent getContent;
7257 OrthancPluginJobGetSerialized getSerialized;
7261 } _OrthancPluginCreateJob;
7262
7295 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7296 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginJob *OrthancPluginCreateJob(
7297 OrthancPluginContext *context,
7298 void *job,
7299 OrthancPluginJobFinalize finalize,
7300 const char *type,
7301 OrthancPluginJobGetProgress getProgress,
7302 OrthancPluginJobGetContent getContent,
7303 OrthancPluginJobGetSerialized getSerialized,
7307 {
7308 OrthancPluginJob* target = NULL;
7309
7310 _OrthancPluginCreateJob params;
7311 memset(&params, 0, sizeof(params));
7312
7313 params.target = &target;
7314 params.job = job;
7315 params.finalize = finalize;
7316 params.type = type;
7317 params.getProgress = getProgress;
7318 params.getContent = getContent;
7319 params.getSerialized = getSerialized;
7320 params.step = step;
7321 params.stop = stop;
7322 params.reset = reset;
7323
7324 if (context->InvokeService(context, _OrthancPluginService_CreateJob, &params) != OrthancPluginErrorCode_Success ||
7325 target == NULL)
7326 {
7327 /* Error */
7328 return NULL;
7329 }
7330 else
7331 {
7332 return target;
7333 }
7334 }
7335
7336
7337 typedef struct
7338 {
7339 OrthancPluginJob** target;
7340 void *job;
7341 OrthancPluginJobFinalize finalize;
7342 const char *type;
7343 OrthancPluginJobGetProgress getProgress;
7344 OrthancPluginJobGetContent2 getContent;
7345 OrthancPluginJobGetSerialized2 getSerialized;
7349 } _OrthancPluginCreateJob2;
7350
7382 ORTHANC_PLUGIN_SINCE_SDK("1.11.3")
7384 OrthancPluginContext *context,
7385 void *job,
7386 OrthancPluginJobFinalize finalize,
7387 const char *type,
7388 OrthancPluginJobGetProgress getProgress,
7389 OrthancPluginJobGetContent2 getContent,
7390 OrthancPluginJobGetSerialized2 getSerialized,
7394 {
7395 OrthancPluginJob* target = NULL;
7396
7397 _OrthancPluginCreateJob2 params;
7398 memset(&params, 0, sizeof(params));
7399
7400 params.target = &target;
7401 params.job = job;
7402 params.finalize = finalize;
7403 params.type = type;
7404 params.getProgress = getProgress;
7405 params.getContent = getContent;
7406 params.getSerialized = getSerialized;
7407 params.step = step;
7408 params.stop = stop;
7409 params.reset = reset;
7410
7411 if (context->InvokeService(context, _OrthancPluginService_CreateJob2, &params) != OrthancPluginErrorCode_Success ||
7412 target == NULL)
7413 {
7414 /* Error */
7415 return NULL;
7416 }
7417 else
7418 {
7419 return target;
7420 }
7421 }
7422
7423
7424 typedef struct
7425 {
7426 OrthancPluginJob* job;
7427 } _OrthancPluginFreeJob;
7428
7438 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7439 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeJob(
7440 OrthancPluginContext* context,
7441 OrthancPluginJob* job)
7442 {
7443 _OrthancPluginFreeJob params;
7444 params.job = job;
7445
7446 context->InvokeService(context, _OrthancPluginService_FreeJob, &params);
7447 }
7448
7449
7450
7451 typedef struct
7452 {
7453 char** resultId;
7454 OrthancPluginJob *job;
7455 int32_t priority;
7456 } _OrthancPluginSubmitJob;
7457
7471 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7472 ORTHANC_PLUGIN_INLINE char *OrthancPluginSubmitJob(
7473 OrthancPluginContext *context,
7474 OrthancPluginJob *job,
7475 int32_t priority)
7476 {
7477 char* resultId = NULL;
7478
7479 _OrthancPluginSubmitJob params;
7480 memset(&params, 0, sizeof(params));
7481
7482 params.resultId = &resultId;
7483 params.job = job;
7484 params.priority = priority;
7485
7486 if (context->InvokeService(context, _OrthancPluginService_SubmitJob, &params) != OrthancPluginErrorCode_Success ||
7487 resultId == NULL)
7488 {
7489 /* Error */
7490 return NULL;
7491 }
7492 else
7493 {
7494 return resultId;
7495 }
7496 }
7497
7498
7499
7500 typedef struct
7501 {
7502 OrthancPluginJobsUnserializer unserializer;
7503 } _OrthancPluginJobsUnserializer;
7504
7517 ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
7518 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterJobsUnserializer(
7519 OrthancPluginContext* context,
7520 OrthancPluginJobsUnserializer unserializer)
7521 {
7522 _OrthancPluginJobsUnserializer params;
7523 params.unserializer = unserializer;
7524
7525 context->InvokeService(context, _OrthancPluginService_RegisterJobsUnserializer, &params);
7526 }
7527
7528
7529
7530 typedef struct
7531 {
7533 const char* details;
7534 uint8_t log;
7535 } _OrthancPluginSetHttpErrorDetails;
7536
7554 ORTHANC_PLUGIN_SINCE_SDK("1.5.0")
7555 ORTHANC_PLUGIN_INLINE void OrthancPluginSetHttpErrorDetails(
7556 OrthancPluginContext* context,
7558 const char* details,
7559 uint8_t log)
7560 {
7561 _OrthancPluginSetHttpErrorDetails params;
7562 params.output = output;
7563 params.details = details;
7564 params.log = log;
7565 context->InvokeService(context, _OrthancPluginService_SetHttpErrorDetails, &params);
7566 }
7567
7568
7569
7570 typedef struct
7571 {
7572 const char** result;
7573 const char* argument;
7574 } _OrthancPluginRetrieveStaticString;
7575
7587 ORTHANC_PLUGIN_SINCE_SDK("1.5.0")
7588 ORTHANC_PLUGIN_INLINE const char* OrthancPluginAutodetectMimeType(
7589 OrthancPluginContext* context,
7590 const char* path)
7591 {
7592 const char* result = NULL;
7593
7594 _OrthancPluginRetrieveStaticString params;
7595 params.result = &result;
7596 params.argument = path;
7597
7598 if (context->InvokeService(context, _OrthancPluginService_AutodetectMimeType, &params) != OrthancPluginErrorCode_Success)
7599 {
7600 /* Error */
7601 return NULL;
7602 }
7603 else
7604 {
7605 return result;
7606 }
7607 }
7608
7609
7610
7611 typedef struct
7612 {
7613 const char* name;
7614 float value;
7616 } _OrthancPluginSetMetricsValue;
7617
7634 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7635 ORTHANC_PLUGIN_INLINE void OrthancPluginSetMetricsValue(
7636 OrthancPluginContext* context,
7637 const char* name,
7638 float value,
7640 {
7641 _OrthancPluginSetMetricsValue params;
7642 params.name = name;
7643 params.value = value;
7644 params.type = type;
7645 context->InvokeService(context, _OrthancPluginService_SetMetricsValue, &params);
7646 }
7647
7648
7649
7650 typedef struct
7651 {
7653 } _OrthancPluginRegisterRefreshMetricsCallback;
7654
7666 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7668 OrthancPluginContext* context,
7670 {
7671 _OrthancPluginRegisterRefreshMetricsCallback params;
7672 params.callback = callback;
7673 context->InvokeService(context, _OrthancPluginService_RegisterRefreshMetricsCallback, &params);
7674 }
7675
7676
7677
7678
7679 typedef struct
7680 {
7681 char** target;
7682 const void* dicom;
7683 uint32_t dicomSize;
7685 } _OrthancPluginEncodeDicomWeb;
7686
7703 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7704 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson(
7705 OrthancPluginContext* context,
7706 const void* dicom,
7707 uint32_t dicomSize,
7709 {
7710 char* target = NULL;
7711
7712 _OrthancPluginEncodeDicomWeb params;
7713 params.target = &target;
7714 params.dicom = dicom;
7715 params.dicomSize = dicomSize;
7716 params.callback = callback;
7717
7718 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebJson, &params) != OrthancPluginErrorCode_Success)
7719 {
7720 /* Error */
7721 return NULL;
7722 }
7723 else
7724 {
7725 return target;
7726 }
7727 }
7728
7729
7746 ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
7747 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml(
7748 OrthancPluginContext* context,
7749 const void* dicom,
7750 uint32_t dicomSize,
7752 {
7753 char* target = NULL;
7754
7755 _OrthancPluginEncodeDicomWeb params;
7756 params.target = &target;
7757 params.dicom = dicom;
7758 params.dicomSize = dicomSize;
7759 params.callback = callback;
7760
7761 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebXml, &params) != OrthancPluginErrorCode_Success)
7762 {
7763 /* Error */
7764 return NULL;
7765 }
7766 else
7767 {
7768 return target;
7769 }
7770 }
7771
7772
7773
7774 typedef struct
7775 {
7776 char** target;
7777 const void* dicom;
7778 uint32_t dicomSize;
7780 void* payload;
7781 } _OrthancPluginEncodeDicomWeb2;
7782
7799 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
7800 ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebJson2(
7801 OrthancPluginContext* context,
7802 const void* dicom,
7803 uint32_t dicomSize,
7805 void* payload)
7806 {
7807 char* target = NULL;
7808
7809 _OrthancPluginEncodeDicomWeb2 params;
7810 params.target = &target;
7811 params.dicom = dicom;
7812 params.dicomSize = dicomSize;
7813 params.callback = callback;
7814 params.payload = payload;
7815
7816 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebJson2, &params) != OrthancPluginErrorCode_Success)
7817 {
7818 /* Error */
7819 return NULL;
7820 }
7821 else
7822 {
7823 return target;
7824 }
7825 }
7826
7827
7844 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
7845 ORTHANC_PLUGIN_INLINE char* OrthancPluginEncodeDicomWebXml2(
7846 OrthancPluginContext* context,
7847 const void* dicom,
7848 uint32_t dicomSize,
7850 void* payload)
7851 {
7852 char* target = NULL;
7853
7854 _OrthancPluginEncodeDicomWeb2 params;
7855 params.target = &target;
7856 params.dicom = dicom;
7857 params.dicomSize = dicomSize;
7858 params.callback = callback;
7859 params.payload = payload;
7860
7861 if (context->InvokeService(context, _OrthancPluginService_EncodeDicomWebXml2, &params) != OrthancPluginErrorCode_Success)
7862 {
7863 /* Error */
7864 return NULL;
7865 }
7866 else
7867 {
7868 return target;
7869 }
7870 }
7871
7872
7873
7890 void* answer,
7891 const char* key,
7892 const char* value);
7893
7894
7911 void* answer,
7912 const void* data,
7913 uint32_t size);
7914
7915
7930 typedef uint8_t (*OrthancPluginChunkedClientRequestIsDone) (void* request);
7931
7932
7948
7949
7963 typedef const void* (*OrthancPluginChunkedClientRequestGetChunkData) (void* request);
7964
7965
7979 typedef uint32_t (*OrthancPluginChunkedClientRequestGetChunkSize) (void* request);
7980
7981
7982 typedef struct
7983 {
7984 void* answer;
7987 uint16_t* httpStatus;
7989 const char* url;
7990 uint32_t headersCount;
7991 const char* const* headersKeys;
7992 const char* const* headersValues;
7993 void* request;
7998 const char* username;
7999 const char* password;
8000 uint32_t timeout;
8001 const char* certificateFile;
8002 const char* certificateKeyFile;
8003 const char* certificateKeyPassword;
8004 uint8_t pkcs11;
8005 } _OrthancPluginChunkedHttpClient;
8006
8007
8058 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8060 OrthancPluginContext* context,
8061 void* answer,
8064 uint16_t* httpStatus,
8066 const char* url,
8067 uint32_t headersCount,
8068 const char* const* headersKeys,
8069 const char* const* headersValues,
8070 void* request,
8075 const char* username,
8076 const char* password,
8077 uint32_t timeout,
8078 const char* certificateFile,
8079 const char* certificateKeyFile,
8080 const char* certificateKeyPassword,
8081 uint8_t pkcs11)
8082 {
8083 _OrthancPluginChunkedHttpClient params;
8084 memset(&params, 0, sizeof(params));
8085
8086 /* In common with OrthancPluginHttpClient() */
8087 params.httpStatus = httpStatus;
8088 params.method = method;
8089 params.url = url;
8090 params.headersCount = headersCount;
8091 params.headersKeys = headersKeys;
8092 params.headersValues = headersValues;
8093 params.username = username;
8094 params.password = password;
8095 params.timeout = timeout;
8096 params.certificateFile = certificateFile;
8097 params.certificateKeyFile = certificateKeyFile;
8098 params.certificateKeyPassword = certificateKeyPassword;
8099 params.pkcs11 = pkcs11;
8100
8101 /* For chunked body/answer */
8102 params.answer = answer;
8103 params.answerAddChunk = answerAddChunk;
8104 params.answerAddHeader = answerAddHeader;
8105 params.request = request;
8106 params.requestIsDone = requestIsDone;
8107 params.requestChunkData = requestChunkData;
8108 params.requestChunkSize = requestChunkSize;
8109 params.requestNext = requestNext;
8110
8111 return context->InvokeService(context, _OrthancPluginService_ChunkedHttpClient, &params);
8112 }
8113
8114
8115
8120 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8121 _OrthancPluginServerChunkedRequestReader_t OrthancPluginServerChunkedRequestReader;
8122
8123
8124
8142 const char* uri,
8143 const OrthancPluginHttpRequest* request);
8144
8145
8161 const void* data,
8162 uint32_t size);
8163
8164
8181 OrthancPluginRestOutput* output);
8182
8183
8199
8200 typedef struct
8201 {
8202 const char* pathRegularExpression;
8203 OrthancPluginRestCallback getHandler;
8205 OrthancPluginRestCallback deleteHandler;
8210 } _OrthancPluginChunkedRestCallback;
8211
8212
8242 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8244 OrthancPluginContext* context,
8245 const char* pathRegularExpression,
8246 OrthancPluginRestCallback getHandler,
8248 OrthancPluginRestCallback deleteHandler,
8253 {
8254 _OrthancPluginChunkedRestCallback params;
8255 params.pathRegularExpression = pathRegularExpression;
8256 params.getHandler = getHandler;
8257 params.postHandler = postHandler;
8258 params.deleteHandler = deleteHandler;
8259 params.putHandler = putHandler;
8260 params.addChunk = addChunk;
8261 params.execute = execute;
8262 params.finalize = finalize;
8263
8264 context->InvokeService(context, _OrthancPluginService_RegisterChunkedRestCallback, &params);
8265 }
8266
8267
8268
8269
8270
8271 typedef struct
8272 {
8273 char** result;
8274 uint16_t group;
8275 uint16_t element;
8276 const char* privateCreator;
8277 } _OrthancPluginGetTagName;
8278
8294 ORTHANC_PLUGIN_SINCE_SDK("1.5.7")
8295 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetTagName(
8296 OrthancPluginContext* context,
8297 uint16_t group,
8298 uint16_t element,
8299 const char* privateCreator)
8300 {
8301 char* result;
8302
8303 _OrthancPluginGetTagName params;
8304 params.result = &result;
8305 params.group = group;
8306 params.element = element;
8307 params.privateCreator = privateCreator;
8308
8309 if (context->InvokeService(context, _OrthancPluginService_GetTagName, &params) != OrthancPluginErrorCode_Success)
8310 {
8311 /* Error */
8312 return NULL;
8313 }
8314 else
8315 {
8316 return result;
8317 }
8318 }
8319
8320
8321
8351 void** handler /* out */,
8352 const char* jobId,
8353 const char* transactionUid,
8354 const char* const* sopClassUids,
8355 const char* const* sopInstanceUids,
8356 uint32_t countInstances,
8357 const char* remoteAet,
8358 const char* calledAet);
8359
8360
8388 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
8390 void** handler /* out */,
8391 const char* jobId,
8392 const char* transactionUid,
8393 const char* const* sopClassUids,
8394 const char* const* sopInstanceUids,
8395 uint32_t countInstances,
8396 const OrthancPluginDicomConnection* connection);
8397
8398
8410 typedef void (*OrthancPluginStorageCommitmentDestructor) (void* handler);
8411
8412
8433 void* handler,
8434 const char* sopClassUid,
8435 const char* sopInstanceUid);
8436
8437
8438 typedef struct
8439 {
8443 } _OrthancPluginRegisterStorageCommitmentScpCallback;
8444
8458 ORTHANC_PLUGIN_SINCE_SDK("1.6.0")
8460 OrthancPluginContext* context,
8464 {
8465 _OrthancPluginRegisterStorageCommitmentScpCallback params;
8466 params.factory = factory;
8467 params.destructor = destructor;
8468 params.lookup = lookup;
8469 return context->InvokeService(context, _OrthancPluginService_RegisterStorageCommitmentScpCallback, &params);
8470 }
8471
8472
8473
8500 const OrthancPluginDicomInstance* instance);
8501
8502
8503 typedef struct
8504 {
8506 } _OrthancPluginIncomingDicomInstanceFilter;
8507
8520 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8522 OrthancPluginContext* context,
8524 {
8525 _OrthancPluginIncomingDicomInstanceFilter params;
8526 params.callback = callback;
8527
8528 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingDicomInstanceFilter, &params);
8529 }
8530
8531
8563 uint16_t* dimseStatus /* out */,
8564 const OrthancPluginDicomInstance* instance);
8565
8566
8567 typedef struct
8568 {
8570 } _OrthancPluginIncomingCStoreInstanceFilter;
8571
8584 ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
8586 OrthancPluginContext* context,
8588 {
8589 _OrthancPluginIncomingCStoreInstanceFilter params;
8590 params.callback = callback;
8591
8592 return context->InvokeService(context, _OrthancPluginService_RegisterIncomingCStoreInstanceFilter, &params);
8593 }
8594
8631 OrthancPluginMemoryBuffer64* modifiedDicomBuffer,
8632 const void* receivedDicomBuffer,
8633 uint64_t receivedDicomBufferSize,
8635
8636
8637 typedef struct
8638 {
8640 } _OrthancPluginReceivedInstanceCallback;
8641
8662 ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
8664 OrthancPluginContext* context,
8666 {
8667 _OrthancPluginReceivedInstanceCallback params;
8668 params.callback = callback;
8669
8670 return context->InvokeService(context, _OrthancPluginService_RegisterReceivedInstanceCallback, &params);
8671 }
8672
8686 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8688 OrthancPluginContext* context,
8689 const OrthancPluginDicomInstance* instance)
8690 {
8691 char* result;
8692
8693 _OrthancPluginAccessDicomInstance params;
8694 memset(&params, 0, sizeof(params));
8695 params.resultStringToFree = &result;
8696 params.instance = instance;
8697
8698 if (context->InvokeService(context, _OrthancPluginService_GetInstanceTransferSyntaxUid, &params) != OrthancPluginErrorCode_Success)
8699 {
8700 /* Error */
8701 return NULL;
8702 }
8703 else
8704 {
8705 return result;
8706 }
8707 }
8708
8709
8722 ORTHANC_PLUGIN_SINCE_SDK("1.6.1")
8723 ORTHANC_PLUGIN_INLINE int32_t OrthancPluginHasInstancePixelData(
8724 OrthancPluginContext* context,
8725 const OrthancPluginDicomInstance* instance)
8726 {
8727 int64_t hasPixelData;
8728
8729 _OrthancPluginAccessDicomInstance params;
8730 memset(&params, 0, sizeof(params));
8731 params.resultInt64 = &hasPixelData;
8732 params.instance = instance;
8733
8734 if (context->InvokeService(context, _OrthancPluginService_HasInstancePixelData, &params) != OrthancPluginErrorCode_Success ||
8735 hasPixelData < 0 ||
8736 hasPixelData > 1)
8737 {
8738 /* Error */
8739 return -1;
8740 }
8741 else
8742 {
8743 return (hasPixelData != 0);
8744 }
8745 }
8746
8747
8748
8749
8750
8751
8752 typedef struct
8753 {
8755 const void* buffer;
8756 uint32_t size;
8757 const char* transferSyntax;
8758 } _OrthancPluginCreateDicomInstance;
8759
8773 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8775 OrthancPluginContext* context,
8776 const void* buffer,
8777 uint32_t size)
8778 {
8779 OrthancPluginDicomInstance* target = NULL;
8780
8781 _OrthancPluginCreateDicomInstance params;
8782 params.target = &target;
8783 params.buffer = buffer;
8784 params.size = size;
8785
8786 if (context->InvokeService(context, _OrthancPluginService_CreateDicomInstance, &params) != OrthancPluginErrorCode_Success)
8787 {
8788 /* Error */
8789 return NULL;
8790 }
8791 else
8792 {
8793 return target;
8794 }
8795 }
8796
8797 typedef struct
8798 {
8800 } _OrthancPluginFreeDicomInstance;
8801
8812 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8813 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeDicomInstance(
8814 OrthancPluginContext* context,
8816 {
8817 _OrthancPluginFreeDicomInstance params;
8818 params.dicom = dicom;
8819
8820 context->InvokeService(context, _OrthancPluginService_FreeDicomInstance, &params);
8821 }
8822
8823
8824 typedef struct
8825 {
8826 uint32_t* targetUint32;
8827 OrthancPluginMemoryBuffer* targetBuffer;
8828 OrthancPluginImage** targetImage;
8829 char** targetStringToFree;
8830 const OrthancPluginDicomInstance* instance;
8831 uint32_t frameIndex;
8834 uint32_t maxStringLength;
8835 OrthancPluginDicomWebBinaryCallback2 dicomWebCallback;
8836 void* dicomWebPayload;
8837 } _OrthancPluginAccessDicomInstance2;
8838
8850 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8851 ORTHANC_PLUGIN_INLINE uint32_t OrthancPluginGetInstanceFramesCount(
8852 OrthancPluginContext* context,
8853 const OrthancPluginDicomInstance* instance)
8854 {
8855 uint32_t count;
8856
8857 _OrthancPluginAccessDicomInstance2 params;
8858 memset(&params, 0, sizeof(params));
8859 params.targetUint32 = &count;
8860 params.instance = instance;
8861
8862 if (context->InvokeService(context, _OrthancPluginService_GetInstanceFramesCount, &params) != OrthancPluginErrorCode_Success)
8863 {
8864 /* Error */
8865 return 0;
8866 }
8867 else
8868 {
8869 return count;
8870 }
8871 }
8872
8873
8891 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8893 OrthancPluginContext* context,
8895 const OrthancPluginDicomInstance* instance,
8896 uint32_t frameIndex)
8897 {
8898 _OrthancPluginAccessDicomInstance2 params;
8899 memset(&params, 0, sizeof(params));
8900 params.targetBuffer = target;
8901 params.instance = instance;
8902 params.frameIndex = frameIndex;
8903
8904 return context->InvokeService(context, _OrthancPluginService_GetInstanceRawFrame, &params);
8905 }
8906
8907
8920 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8922 OrthancPluginContext* context,
8923 const OrthancPluginDicomInstance* instance,
8924 uint32_t frameIndex)
8925 {
8926 OrthancPluginImage* target = NULL;
8927
8928 _OrthancPluginAccessDicomInstance2 params;
8929 memset(&params, 0, sizeof(params));
8930 params.targetImage = &target;
8931 params.instance = instance;
8932 params.frameIndex = frameIndex;
8933
8934 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDecodedFrame, &params) != OrthancPluginErrorCode_Success)
8935 {
8936 return NULL;
8937 }
8938 else
8939 {
8940 return target;
8941 }
8942 }
8943
8944
8960 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
8962 OrthancPluginContext* context,
8963 const void* buffer,
8964 uint32_t size,
8965 const char* transferSyntax)
8966 {
8967 OrthancPluginDicomInstance* target = NULL;
8968
8969 _OrthancPluginCreateDicomInstance params;
8970 params.target = &target;
8971 params.buffer = buffer;
8972 params.size = size;
8973 params.transferSyntax = transferSyntax;
8974
8975 if (context->InvokeService(context, _OrthancPluginService_TranscodeDicomInstance, &params) != OrthancPluginErrorCode_Success)
8976 {
8977 /* Error */
8978 return NULL;
8979 }
8980 else
8981 {
8982 return target;
8983 }
8984 }
8985
8999 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9001 OrthancPluginContext* context,
9003 const OrthancPluginDicomInstance* instance)
9004 {
9005 _OrthancPluginAccessDicomInstance2 params;
9006 memset(&params, 0, sizeof(params));
9007 params.targetBuffer = target;
9008 params.instance = instance;
9009
9010 return context->InvokeService(context, _OrthancPluginService_SerializeDicomInstance, &params);
9011 }
9012
9013
9032 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9033 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceAdvancedJson(
9034 OrthancPluginContext* context,
9035 const OrthancPluginDicomInstance* instance,
9038 uint32_t maxStringLength)
9039 {
9040 char* result = NULL;
9041
9042 _OrthancPluginAccessDicomInstance2 params;
9043 memset(&params, 0, sizeof(params));
9044 params.targetStringToFree = &result;
9045 params.instance = instance;
9046 params.format = format;
9047 params.flags = flags;
9048 params.maxStringLength = maxStringLength;
9049
9050 if (context->InvokeService(context, _OrthancPluginService_GetInstanceAdvancedJson, &params) != OrthancPluginErrorCode_Success)
9051 {
9052 /* Error */
9053 return NULL;
9054 }
9055 else
9056 {
9057 return result;
9058 }
9059 }
9060
9061
9076 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9077 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceDicomWebJson(
9078 OrthancPluginContext* context,
9079 const OrthancPluginDicomInstance* instance,
9081 void* payload)
9082 {
9083 char* target = NULL;
9084
9085 _OrthancPluginAccessDicomInstance2 params;
9086 params.targetStringToFree = &target;
9087 params.instance = instance;
9088 params.dicomWebCallback = callback;
9089 params.dicomWebPayload = payload;
9090
9091 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDicomWebJson, &params) != OrthancPluginErrorCode_Success)
9092 {
9093 /* Error */
9094 return NULL;
9095 }
9096 else
9097 {
9098 return target;
9099 }
9100 }
9101
9102
9117 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9118 ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceDicomWebXml(
9119 OrthancPluginContext* context,
9120 const OrthancPluginDicomInstance* instance,
9122 void* payload)
9123 {
9124 char* target = NULL;
9125
9126 _OrthancPluginAccessDicomInstance2 params;
9127 params.targetStringToFree = &target;
9128 params.instance = instance;
9129 params.dicomWebCallback = callback;
9130 params.dicomWebPayload = payload;
9131
9132 if (context->InvokeService(context, _OrthancPluginService_GetInstanceDicomWebXml, &params) != OrthancPluginErrorCode_Success)
9133 {
9134 /* Error */
9135 return NULL;
9136 }
9137 else
9138 {
9139 return target;
9140 }
9141 }
9142
9143
9144
9164 OrthancPluginMemoryBuffer* transcoded /* out */,
9165 const void* buffer,
9166 uint64_t size,
9167 const char* const* allowedSyntaxes,
9168 uint32_t countSyntaxes,
9169 uint8_t allowNewSopInstanceUid);
9170
9171
9172 typedef struct
9173 {
9175 } _OrthancPluginTranscoderCallback;
9176
9190 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9192 OrthancPluginContext* context,
9194 {
9195 _OrthancPluginTranscoderCallback params;
9196 params.callback = callback;
9197
9198 return context->InvokeService(context, _OrthancPluginService_RegisterTranscoderCallback, &params);
9199 }
9200
9201
9202
9203 typedef struct
9204 {
9206 uint32_t size;
9207 } _OrthancPluginCreateMemoryBuffer;
9208
9226 ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9228 OrthancPluginContext* context,
9230 uint32_t size)
9231 {
9232 _OrthancPluginCreateMemoryBuffer params;
9233 params.target = target;
9234 params.size = size;
9235
9236 return context->InvokeService(context, _OrthancPluginService_CreateMemoryBuffer, &params);
9237 }
9238
9239
9265 ORTHANC_PLUGIN_SINCE_SDK("1.8.1")
9267 OrthancPluginContext* context)
9268 {
9269 char* result;
9270
9271 _OrthancPluginRetrieveDynamicString params;
9272 params.result = &result;
9273 params.argument = NULL;
9274
9275 if (context->InvokeService(context, _OrthancPluginService_GenerateRestApiAuthorizationToken,
9277 {
9278 /* Error */
9279 return NULL;
9280 }
9281 else
9282 {
9283 return result;
9284 }
9285 }
9286
9287
9288
9289 typedef struct
9290 {
9292 uint64_t size;
9293 } _OrthancPluginCreateMemoryBuffer64;
9294
9312 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9314 OrthancPluginContext* context,
9316 uint64_t size)
9317 {
9318 _OrthancPluginCreateMemoryBuffer64 params;
9319 params.target = target;
9320 params.size = size;
9321
9322 return context->InvokeService(context, _OrthancPluginService_CreateMemoryBuffer64, &params);
9323 }
9324
9325
9326 typedef struct
9327 {
9332 } _OrthancPluginRegisterStorageArea2;
9333
9351 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9352 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea2(
9353 OrthancPluginContext* context,
9358 {
9359 _OrthancPluginRegisterStorageArea2 params;
9360 params.create = create;
9361 params.readWhole = readWhole;
9362 params.readRange = readRange;
9363 params.remove = remove;
9364 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea2, &params);
9365 }
9366
9367
9368
9369 typedef struct
9370 {
9371 _OrthancPluginCreateDicom createDicom;
9372 const char* privateCreator;
9373 } _OrthancPluginCreateDicom2;
9374
9399 ORTHANC_PLUGIN_SINCE_SDK("1.9.0")
9401 OrthancPluginContext* context,
9403 const char* json,
9404 const OrthancPluginImage* pixelData,
9406 const char* privateCreator)
9407 {
9408 _OrthancPluginCreateDicom2 params;
9409 params.createDicom.target = target;
9410 params.createDicom.json = json;
9411 params.createDicom.pixelData = pixelData;
9412 params.createDicom.flags = flags;
9413 params.privateCreator = privateCreator;
9414
9415 return context->InvokeService(context, _OrthancPluginService_CreateDicom2, &params);
9416 }
9417
9418
9419
9420
9421
9422
9423 typedef struct
9424 {
9425 OrthancPluginMemoryBuffer* answerBody;
9426 OrthancPluginMemoryBuffer* answerHeaders;
9427 uint16_t* httpStatus;
9429 const char* uri;
9430 uint32_t headersCount;
9431 const char* const* headersKeys;
9432 const char* const* headersValues;
9433 const void* body;
9434 uint32_t bodySize;
9435 uint8_t afterPlugins;
9436 } _OrthancPluginCallRestApi;
9437
9468 ORTHANC_PLUGIN_SINCE_SDK("1.9.2")
9470 OrthancPluginContext* context,
9471 OrthancPluginMemoryBuffer* answerBody,
9472 OrthancPluginMemoryBuffer* answerHeaders,
9473 uint16_t* httpStatus,
9475 const char* uri,
9476 uint32_t headersCount,
9477 const char* const* headersKeys,
9478 const char* const* headersValues,
9479 const void* body,
9480 uint32_t bodySize,
9481 uint8_t afterPlugins)
9482 {
9483 _OrthancPluginCallRestApi params;
9484 memset(&params, 0, sizeof(params));
9485
9486 params.answerBody = answerBody;
9487 params.answerHeaders = answerHeaders;
9488 params.httpStatus = httpStatus;
9489 params.method = method;
9490 params.uri = uri;
9491 params.headersCount = headersCount;
9492 params.headersKeys = headersKeys;
9493 params.headersValues = headersValues;
9494 params.body = body;
9495 params.bodySize = bodySize;
9496 params.afterPlugins = afterPlugins;
9497
9498 return context->InvokeService(context, _OrthancPluginService_CallRestApi, &params);
9499 }
9500
9501
9502
9507 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.10.1")
9508 _OrthancPluginWebDavCollection_t OrthancPluginWebDavCollection;
9509
9510
9535 const char* name,
9536 uint64_t size,
9537 const char* mimeType,
9538 const char* dateTime);
9539
9540
9556 const char* name,
9557 const char* dateTime);
9558
9559
9583 const void* data,
9584 uint64_t size,
9585 const char* mimeType,
9586 const char* dateTime);
9587
9588
9603 uint8_t* isExisting, /* out */
9604 uint32_t pathSize,
9605 const char* const* pathItems,
9606 void* payload);
9607
9608
9628 uint8_t* isExisting, /* out */
9632 uint32_t pathSize,
9633 const char* const* pathItems,
9634 void* payload);
9635
9636
9656 uint32_t pathSize,
9657 const char* const* pathItems,
9658 void* payload);
9659
9660
9677 uint8_t* isReadOnly, /* out */
9678 uint32_t pathSize,
9679 const char* const* pathItems,
9680 const void* data,
9681 uint64_t size,
9682 void* payload);
9683
9684
9699 uint8_t* isReadOnly, /* out */
9700 uint32_t pathSize,
9701 const char* const* pathItems,
9702 void* payload);
9703
9704
9719 uint8_t* isReadOnly, /* out */
9720 uint32_t pathSize,
9721 const char* const* pathItems,
9722 void* payload);
9723
9724
9725 typedef struct
9726 {
9727 const char* uri;
9734 void* payload;
9735 } _OrthancPluginRegisterWebDavCollection;
9736
9757 ORTHANC_PLUGIN_SINCE_SDK("1.10.1")
9759 OrthancPluginContext* context,
9760 const char* uri,
9767 void* payload)
9768 {
9769 _OrthancPluginRegisterWebDavCollection params;
9770 params.uri = uri;
9771 params.isExistingFolder = isExistingFolder;
9772 params.listFolder = listFolder;
9773 params.retrieveFile = retrieveFile;
9774 params.storeFile = storeFile;
9775 params.createFolder = createFolder;
9776 params.deleteItem = deleteItem;
9777 params.payload = payload;
9778
9779 return context->InvokeService(context, _OrthancPluginService_RegisterWebDavCollection, &params);
9780 }
9781
9782
9791 ORTHANC_PLUGIN_SINCE_SDK("1.11.1")
9792 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetDatabaseServerIdentifier(
9793 OrthancPluginContext* context)
9794 {
9795 const char* result;
9796
9797 _OrthancPluginRetrieveStaticString params;
9798 params.result = &result;
9799 params.argument = NULL;
9800
9801 if (context->InvokeService(context, _OrthancPluginService_GetDatabaseServerIdentifier, &params) != OrthancPluginErrorCode_Success)
9802 {
9803 /* Error */
9804 return NULL;
9805 }
9806 else
9807 {
9808 return result;
9809 }
9810 }
9811
9812
9813 typedef struct
9814 {
9818 } _OrthancPluginRegisterStorageArea3;
9819
9834 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
9835 ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterStorageArea3(
9836 OrthancPluginContext* context,
9840 {
9841 _OrthancPluginRegisterStorageArea3 params;
9842 params.create = create;
9843 params.readRange = readRange;
9844 params.remove = remove;
9845 context->InvokeService(context, _OrthancPluginService_RegisterStorageArea3, &params);
9846 }
9847
9856 void* backend,
9857 const void* request,
9858 uint64_t requestSize);
9859
9865 typedef void (*OrthancPluginFinalizeDatabaseBackendV4) (void* backend);
9866
9867 typedef struct
9868 {
9869 void* backend;
9870 uint32_t maxDatabaseRetries;
9873 } _OrthancPluginRegisterDatabaseBackendV4;
9874
9892 ORTHANC_PLUGIN_SINCE_SDK("1.12.0")
9894 OrthancPluginContext* context,
9895 void* backend,
9896 uint32_t maxDatabaseRetries,
9899 {
9900 _OrthancPluginRegisterDatabaseBackendV4 params;
9901 params.backend = backend;
9902 params.maxDatabaseRetries = maxDatabaseRetries;
9903 params.operations = operations;
9904 params.finalize = finalize;
9905
9906 return context->InvokeService(context, _OrthancPluginService_RegisterDatabaseBackendV4, &params);
9907 }
9908
9909
9910 typedef struct
9911 {
9913 const char* instanceId;
9915 } _OrthancPluginLoadDicomInstance;
9916
9930 ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
9932 OrthancPluginContext* context,
9933 const char* instanceId,
9935 {
9936 OrthancPluginDicomInstance* target = NULL;
9937
9938 _OrthancPluginLoadDicomInstance params;
9939 params.target = &target;
9940 params.instanceId = instanceId;
9941 params.mode = mode;
9942
9943 if (context->InvokeService(context, _OrthancPluginService_LoadDicomInstance, &params) != OrthancPluginErrorCode_Success)
9944 {
9945 /* Error */
9946 return NULL;
9947 }
9948 else
9949 {
9950 return target;
9951 }
9952 }
9953
9954
9955 typedef struct
9956 {
9957 const char* name;
9958 int64_t value;
9960 } _OrthancPluginSetMetricsIntegerValue;
9961
9977 ORTHANC_PLUGIN_SINCE_SDK("1.12.1")
9978 ORTHANC_PLUGIN_INLINE void OrthancPluginSetMetricsIntegerValue(
9979 OrthancPluginContext* context,
9980 const char* name,
9981 int64_t value,
9983 {
9984 _OrthancPluginSetMetricsIntegerValue params;
9985 params.name = name;
9986 params.value = value;
9987 params.type = type;
9988 context->InvokeService(context, _OrthancPluginService_SetMetricsIntegerValue, &params);
9989 }
9990
9991
10010 ORTHANC_PLUGIN_SINCE_SDK("1.12.2")
10012 OrthancPluginContext* context,
10013 const char* threadName)
10014 {
10015 return context->InvokeService(context, _OrthancPluginService_SetCurrentThreadName, threadName);
10016 }
10017
10018
10019 typedef struct
10020 {
10021 /* Note: This structure is also defined in Logging.h and it must be binary compatible */
10022 const char* message;
10023 const char* plugin;
10024 const char* file;
10025 uint32_t line;
10026 OrthancPluginLogCategory category;
10028 } _OrthancPluginLogMessage;
10029
10030
10044 ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
10045 ORTHANC_PLUGIN_INLINE void OrthancPluginLogMessage(
10046 OrthancPluginContext* context,
10047 const char* message,
10048 const char* plugin,
10049 const char* file,
10050 uint32_t line,
10051 OrthancPluginLogCategory category,
10053 {
10054 _OrthancPluginLogMessage m;
10055 m.message = message;
10056 m.plugin = plugin;
10057 m.file = file;
10058 m.line = line;
10059 m.category = category;
10060 m.level = level;
10061 context->InvokeService(context, _OrthancPluginService_LogMessage, &m);
10062 }
10063
10064
10065 typedef struct
10066 {
10068 const char* contentType;
10069 } _OrthancPluginStartStreamAnswer;
10070
10083 ORTHANC_PLUGIN_SINCE_SDK("1.12.6")
10085 OrthancPluginContext* context,
10087 const char* contentType)
10088 {
10089 _OrthancPluginStartStreamAnswer params;
10090 params.output = output;
10091 params.contentType = contentType;
10092 return context->InvokeService(context, _OrthancPluginService_StartStreamAnswer, &params);
10093 }
10094
10095
10111 ORTHANC_PLUGIN_SINCE_SDK("1.12.6")
10113 OrthancPluginContext* context,
10115 const void* answer,
10116 uint32_t answerSize)
10117 {
10118 _OrthancPluginAnswerBuffer params;
10119 params.output = output;
10120 params.answer = answer;
10121 params.answerSize = answerSize;
10122 params.mimeType = NULL;
10123 return context->InvokeService(context, _OrthancPluginService_SendStreamChunk, &params);
10124 }
10125
10126
10127 typedef struct
10128 {
10129 OrthancPluginMemoryBuffer* instanceId;
10130 OrthancPluginMemoryBuffer* attachmentUuid;
10131 OrthancPluginStoreStatus* storeStatus;
10132 const void* dicom;
10133 uint64_t dicomSize;
10134 const void* customData;
10135 uint32_t customDataSize;
10136 } _OrthancPluginAdoptDicomInstance;
10137
10176 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10178 OrthancPluginContext* context,
10179 OrthancPluginMemoryBuffer* instanceId, /* out */
10180 OrthancPluginMemoryBuffer* attachmentUuid, /* out */
10181 OrthancPluginStoreStatus* storeStatus, /* out */
10182 const void* dicom,
10183 uint64_t dicomSize,
10184 const void* customData,
10185 uint32_t customDataSize)
10186 {
10187 _OrthancPluginAdoptDicomInstance params;
10188 params.instanceId = instanceId;
10189 params.attachmentUuid = attachmentUuid;
10190 params.storeStatus = storeStatus;
10191 params.dicom = dicom;
10192 params.dicomSize = dicomSize;
10193 params.customData = customData;
10194 params.customDataSize = customDataSize;
10195
10196 return context->InvokeService(context, _OrthancPluginService_AdoptDicomInstance, &params);
10197 }
10198
10199
10200 typedef struct
10201 {
10202 OrthancPluginMemoryBuffer* customData;
10203 const char* attachmentUuid;
10204 } _OrthancPluginGetAttachmentCustomData;
10205
10218 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10220 OrthancPluginContext* context,
10221 OrthancPluginMemoryBuffer* customData, /* out */
10222 const char* attachmentUuid /* in */)
10223 {
10224 _OrthancPluginGetAttachmentCustomData params;
10225 params.customData = customData;
10226 params.attachmentUuid = attachmentUuid;
10227
10228 return context->InvokeService(context, _OrthancPluginService_GetAttachmentCustomData, &params);
10229 }
10230
10231
10232 typedef struct
10233 {
10234 const char* attachmentUuid;
10235 const void* customData;
10236 uint32_t customDataSize;
10237 } _OrthancPluginSetAttachmentCustomData;
10238
10251 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10253 OrthancPluginContext* context,
10254 const char* attachmentUuid, /* in */
10255 const void* customData, /* in */
10256 uint32_t customDataSize /* in */)
10257 {
10258 _OrthancPluginSetAttachmentCustomData params;
10259 params.attachmentUuid = attachmentUuid;
10260 params.customData = customData;
10261 params.customDataSize = customDataSize;
10262
10263 return context->InvokeService(context, _OrthancPluginService_SetAttachmentCustomData, &params);
10264 }
10265
10266
10267 typedef struct
10268 {
10269 const char* storeId;
10270 const char* key;
10271 const void* value;
10272 uint32_t valueSize;
10273 } _OrthancPluginStoreKeyValue;
10274
10285 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10287 OrthancPluginContext* context,
10288 const char* storeId, /* in */
10289 const char* key, /* in */
10290 const void* value, /* in */
10291 uint32_t valueSize /* in */)
10292 {
10293 _OrthancPluginStoreKeyValue params;
10294 params.storeId = storeId;
10295 params.key = key;
10296 params.value = value;
10297 params.valueSize = valueSize;
10298
10299 return context->InvokeService(context, _OrthancPluginService_StoreKeyValue, &params);
10300 }
10301
10302
10303 typedef struct
10304 {
10305 const char* storeId;
10306 const char* key;
10307 } _OrthancPluginDeleteKeyValue;
10308
10317 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10319 OrthancPluginContext* context,
10320 const char* storeId, /* in */
10321 const char* key /* in */)
10322 {
10323 _OrthancPluginDeleteKeyValue params;
10324 params.storeId = storeId;
10325 params.key = key;
10326
10327 return context->InvokeService(context, _OrthancPluginService_DeleteKeyValue, &params);
10328 }
10329
10330
10331 typedef struct
10332 {
10333 uint8_t* found;
10335 const char* storeId;
10336 const char* key;
10337 } _OrthancPluginGetKeyValue;
10338
10350 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10352 OrthancPluginContext* context,
10353 uint8_t* found, /* out */
10354 OrthancPluginMemoryBuffer* target, /* out */
10355 const char* storeId, /* in */
10356 const char* key /* in */)
10357 {
10358 _OrthancPluginGetKeyValue params;
10359 params.found = found;
10360 params.target = target;
10361 params.storeId = storeId;
10362 params.key = key;
10363
10364 return context->InvokeService(context, _OrthancPluginService_GetKeyValue, &params);
10365 }
10366
10367
10373 typedef struct ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10374 _OrthancPluginKeysValuesIterator_t OrthancPluginKeysValuesIterator;
10375
10376
10377 typedef struct
10378 {
10380 const char* storeId;
10381 } _OrthancPluginCreateKeysValuesIterator;
10382
10383
10394 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10396 OrthancPluginContext* context,
10397 const char* storeId)
10398 {
10399 OrthancPluginKeysValuesIterator* target = NULL;
10400
10401 _OrthancPluginCreateKeysValuesIterator params;
10402 params.target = &target;
10403 params.storeId = storeId;
10404
10405 if (context->InvokeService(context, _OrthancPluginService_CreateKeysValuesIterator, &params) != OrthancPluginErrorCode_Success)
10406 {
10407 return NULL;
10408 }
10409 else
10410 {
10411 return target;
10412 }
10413 }
10414
10415
10416 typedef struct
10417 {
10419 } _OrthancPluginFreeKeysValuesIterator;
10420
10427 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10428 ORTHANC_PLUGIN_INLINE void OrthancPluginFreeKeysValuesIterator(
10429 OrthancPluginContext* context,
10431 {
10432 _OrthancPluginFreeKeysValuesIterator params;
10433 params.iterator = iterator;
10434
10435 context->InvokeService(context, _OrthancPluginService_FreeKeysValuesIterator, &params);
10436 }
10437
10438
10439 typedef struct
10440 {
10441 uint8_t* done;
10443 } _OrthancPluginKeysValuesIteratorNext;
10444
10455 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10457 OrthancPluginContext* context,
10458 uint8_t* done, /* out */
10459 OrthancPluginKeysValuesIterator* iterator /* in */)
10460 {
10461 _OrthancPluginKeysValuesIteratorNext params;
10462 params.done = done;
10463 params.iterator = iterator;
10464
10465 return context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorNext, &params);
10466 }
10467
10468
10469 typedef struct
10470 {
10471 const char** target;
10473 } _OrthancPluginKeysValuesIteratorGetKey;
10474
10485 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10486 ORTHANC_PLUGIN_INLINE const char* OrthancPluginKeysValuesIteratorGetKey(
10487 OrthancPluginContext* context,
10489 {
10490 const char* target = NULL;
10491
10492 _OrthancPluginKeysValuesIteratorGetKey params;
10493 params.target = &target;
10494 params.iterator = iterator;
10495
10496 if (context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorGetKey, &params) == OrthancPluginErrorCode_Success)
10497 {
10498 return target;
10499 }
10500 else
10501 {
10502 return NULL;
10503 }
10504 }
10505
10506
10507 typedef struct
10508 {
10511 } _OrthancPluginKeysValuesIteratorGetValue;
10512
10525 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10527 OrthancPluginContext* context,
10528 OrthancPluginMemoryBuffer* target /* out */,
10529 OrthancPluginKeysValuesIterator* iterator /* in */)
10530 {
10531 _OrthancPluginKeysValuesIteratorGetValue params;
10532 params.target = target;
10533 params.iterator = iterator;
10534
10535 return context->InvokeService(context, _OrthancPluginService_KeysValuesIteratorGetValue, &params);
10536 }
10537
10538
10539 typedef struct
10540 {
10541 const char* queueId;
10542 const void* value;
10543 uint32_t valueSize;
10544 } _OrthancPluginEnqueueValue;
10545
10555 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10557 OrthancPluginContext* context,
10558 const char* queueId, /* in */
10559 const void* value, /* in */
10560 uint32_t valueSize /* in */)
10561 {
10562 _OrthancPluginEnqueueValue params;
10563 params.queueId = queueId;
10564 params.value = value;
10565 params.valueSize = valueSize;
10566
10567 return context->InvokeService(context, _OrthancPluginService_EnqueueValue, &params);
10568 }
10569
10570
10571 typedef struct
10572 {
10573 uint8_t* found;
10575 const char* queueId;
10577 } _OrthancPluginDequeueValue;
10578
10592 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10593 ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginDequeueValue(
10594 OrthancPluginContext* context,
10595 uint8_t* found, /* out */
10596 OrthancPluginMemoryBuffer* target, /* out */
10597 const char* queueId, /* in */
10598 OrthancPluginQueueOrigin origin /* in */)
10599 {
10600 _OrthancPluginDequeueValue params;
10601 params.found = found;
10602 params.target = target;
10603 params.queueId = queueId;
10604 params.origin = origin;
10605
10606 return context->InvokeService(context, _OrthancPluginService_DequeueValue, &params);
10607 }
10608
10609
10610 typedef struct
10611 {
10612 const char* queueId;
10613 uint64_t* size;
10614 } _OrthancPluginGetQueueSize;
10615
10624 ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
10626 OrthancPluginContext* context,
10627 const char* queueId, /* in */
10628 uint64_t* size /* out */)
10629 {
10630 _OrthancPluginGetQueueSize params;
10631 params.queueId = queueId;
10632 params.size = size;
10633
10634 return context->InvokeService(context, _OrthancPluginService_GetQueueSize, &params);
10635 }
10636
10637
10638 typedef struct
10639 {
10640 const char* resourceId;
10641 OrthancPluginStableStatus stableStatus;
10642 uint8_t* statusHasChanged;
10643 } _OrthancPluginSetStableStatus;
10644
10665 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10667 OrthancPluginContext* context,
10668 uint8_t* statusHasChanged, /* out */
10669 const char* resourceId, /* in */
10670 OrthancPluginStableStatus stableStatus /* in */)
10671 {
10672 _OrthancPluginSetStableStatus params;
10673 params.resourceId = resourceId;
10674 params.stableStatus= stableStatus;
10675 params.statusHasChanged = statusHasChanged;
10676
10677 return context->InvokeService(context, _OrthancPluginService_SetStableStatus, &params);
10678 }
10679
10680
10704 OrthancPluginHttpAuthenticationStatus* status, /* out */
10705 OrthancPluginMemoryBuffer* customPayload, /* out */
10706 OrthancPluginMemoryBuffer* redirection, /* out */
10707 const char* uri,
10708 const char* ip,
10709 uint32_t headersCount,
10710 const char* const* headersKeys,
10711 const char* const* headersValues,
10712 uint32_t getCount,
10713 const char* const* getKeys,
10714 const char* const* getValues);
10715
10716
10717 typedef struct
10718 {
10720 } _OrthancPluginHttpAuthentication;
10721
10761 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10763 OrthancPluginContext* context,
10765 {
10766 _OrthancPluginHttpAuthentication params;
10767 params.callback = callback;
10768
10769 return context->InvokeService(context, _OrthancPluginService_RegisterHttpAuthentication, &params);
10770 }
10771
10772
10773 typedef struct
10774 {
10775 const char* sourcePlugin;
10776 const char* userId;
10777 OrthancPluginResourceType resourceType;
10778 const char* resourceId;
10779 const char* action;
10780 const void* logData;
10781 uint32_t logDataSize;
10782 } _OrthancPluginEmitAuditLog;
10783
10784
10807 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10808 ORTHANC_PLUGIN_INLINE void OrthancPluginEmitAuditLog(
10809 OrthancPluginContext* context,
10810 const char* sourcePlugin,
10811 const char* userId,
10812 OrthancPluginResourceType resourceType,
10813 const char* resourceId,
10814 const char* action,
10815 const void* logData,
10816 uint32_t logDataSize)
10817 {
10818 _OrthancPluginEmitAuditLog m;
10819 m.sourcePlugin = sourcePlugin;
10820 m.userId = userId;
10821 m.resourceType = resourceType;
10822 m.resourceId = resourceId;
10823 m.action = action;
10824 m.logData = logData;
10825 m.logDataSize = logDataSize;
10826 context->InvokeService(context, _OrthancPluginService_EmitAuditLog, &m);
10827 }
10828
10829
10849 const char* sourcePlugin,
10850 const char* userId,
10851 OrthancPluginResourceType resourceType,
10852 const char* resourceId,
10853 const char* action,
10854 const void* logData,
10855 uint32_t logDataSize);
10856
10857 typedef struct
10858 {
10860 } _OrthancPluginAuditLogHandler;
10861
10873 ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
10875 OrthancPluginContext* context,
10877 {
10878 _OrthancPluginAuditLogHandler params;
10879 params.handler = handler;
10880
10881 return context->InvokeService(context, _OrthancPluginService_RegisterAuditLogHandler, &params);
10882 }
10883
10884
10885 typedef struct
10886 {
10887 uint8_t* found;
10889 const char* queueId;
10891 uint32_t releaseTimeout;
10892 uint64_t* valueId;
10893 } _OrthancPluginReserveQueueValue;
10894
10916 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10918 OrthancPluginContext* context,
10919 uint8_t* found, /* out */
10920 OrthancPluginMemoryBuffer* target, /* out */
10921 uint64_t* valueId, /* out */
10922 const char* queueId, /* in */
10923 OrthancPluginQueueOrigin origin, /* in */
10924 uint32_t releaseTimeout /* in */)
10925 {
10926 _OrthancPluginReserveQueueValue params;
10927 params.found = found;
10928 params.target = target;
10929 params.queueId = queueId;
10930 params.origin = origin;
10931 params.valueId = valueId;
10932 params.releaseTimeout = releaseTimeout;
10933
10934 return context->InvokeService(context, _OrthancPluginService_ReserveQueueValue, &params);
10935 }
10936
10937 typedef struct
10938 {
10939 const char* queueId;
10940 uint64_t valueId;
10941 } _OrthancPluginAcknowledgeQueueValue;
10942
10952 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10954 OrthancPluginContext* context,
10955 const char* queueId, /* in */
10956 uint64_t valueId /* in */)
10957 {
10958 _OrthancPluginAcknowledgeQueueValue params;
10959 params.queueId = queueId;
10960 params.valueId = valueId;
10961
10962 return context->InvokeService(context, _OrthancPluginService_AcknowledgeQueueValue, &params);
10963 }
10964
10965
10966 typedef struct
10967 {
10968 const OrthancPluginDicomConnection* connection;
10969 const char** resultString;
10970 } _OrthancPluginAccessDicomConnection;
10971
10983 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
10984 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetConnectionRemoteAet(
10985 OrthancPluginContext* context,
10986 const OrthancPluginDicomConnection* connection)
10987 {
10988 const char* result;
10989
10990 _OrthancPluginAccessDicomConnection params;
10991 memset(&params, 0, sizeof(params));
10992 params.resultString = &result;
10993 params.connection = connection;
10994
10995 if (context->InvokeService(context, _OrthancPluginService_GetConnectionRemoteAet, &params) != OrthancPluginErrorCode_Success)
10996 {
10997 /* Error */
10998 return NULL;
10999 }
11000 else
11001 {
11002 return result;
11003 }
11004 }
11005
11006
11018 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11019 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetConnectionRemoteIp(
11020 OrthancPluginContext* context,
11021 const OrthancPluginDicomConnection* connection)
11022 {
11023 const char* result;
11024
11025 _OrthancPluginAccessDicomConnection params;
11026 memset(&params, 0, sizeof(params));
11027 params.resultString = &result;
11028 params.connection = connection;
11029
11030 if (context->InvokeService(context, _OrthancPluginService_GetConnectionRemoteIp, &params) != OrthancPluginErrorCode_Success)
11031 {
11032 /* Error */
11033 return NULL;
11034 }
11035 else
11036 {
11037 return result;
11038 }
11039 }
11040
11041
11053 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11054 ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetConnectionCalledAet(
11055 OrthancPluginContext* context,
11056 const OrthancPluginDicomConnection* connection)
11057 {
11058 const char* result;
11059
11060 _OrthancPluginAccessDicomConnection params;
11061 memset(&params, 0, sizeof(params));
11062 params.resultString = &result;
11063 params.connection = connection;
11064
11065 if (context->InvokeService(context, _OrthancPluginService_GetConnectionCalledAet, &params) != OrthancPluginErrorCode_Success)
11066 {
11067 /* Error */
11068 return NULL;
11069 }
11070 else
11071 {
11072 return result;
11073 }
11074 }
11075
11076
11077 typedef struct
11078 {
11080 } _OrthancPluginWorklistCallback2;
11081
11093 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11095 OrthancPluginContext* context,
11097 {
11098 _OrthancPluginWorklistCallback2 params;
11099 params.callback = callback;
11100
11101 return context->InvokeService(context, _OrthancPluginService_RegisterWorklistCallback2, &params);
11102 }
11103
11104
11105 typedef struct
11106 {
11108 } _OrthancPluginFindCallback2;
11109
11121 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11123 OrthancPluginContext* context,
11125 {
11126 _OrthancPluginFindCallback2 params;
11127 params.callback = callback;
11128
11129 return context->InvokeService(context, _OrthancPluginService_RegisterFindCallback2, &params);
11130 }
11131
11132
11133 typedef struct
11134 {
11136 OrthancPluginGetMoveSize getMoveSize;
11137 OrthancPluginApplyMove applyMove;
11138 OrthancPluginFreeMove freeMove;
11139 } _OrthancPluginMoveCallback2;
11140
11154 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11156 OrthancPluginContext* context,
11158 OrthancPluginGetMoveSize getMoveSize,
11159 OrthancPluginApplyMove applyMove,
11160 OrthancPluginFreeMove freeMove)
11161 {
11162 _OrthancPluginMoveCallback2 params;
11163 params.callback = callback;
11164 params.getMoveSize = getMoveSize;
11165 params.applyMove = applyMove;
11166 params.freeMove = freeMove;
11167
11168 return context->InvokeService(context, _OrthancPluginService_RegisterMoveCallback2, &params);
11169 }
11170
11171
11172 typedef struct
11173 {
11177 } _OrthancPluginRegisterStorageCommitmentScpCallback2;
11178
11192 ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11194 OrthancPluginContext* context,
11198 {
11199 _OrthancPluginRegisterStorageCommitmentScpCallback2 params;
11200 params.factory = factory;
11201 params.destructor = destructor;
11202 params.lookup = lookup;
11203 return context->InvokeService(context, _OrthancPluginService_RegisterStorageCommitmentScpCallback2, &params);
11204 }
11205
11220 ORTHANC_PLUGIN_SINCE_SDK("1.13.0")
11222 OrthancPluginContext* context)
11223 {
11224 return context->InvokeService(context, _OrthancPluginService_ClearCurrentThreadName, NULL);
11225 }
11226
11227#ifdef __cplusplus
11228}
11229#endif
11230
11231
OrthancPluginErrorCode OrthancPluginRegisterDatabaseBackendV4(OrthancPluginContext *context, void *backend, uint32_t maxDatabaseRetries, OrthancPluginCallDatabaseBackendV4 operations, OrthancPluginFinalizeDatabaseBackendV4 finalize)
Register a custom database back-end.
Definition OrthancCPlugin.h:9893
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:10703
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:9854
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:8630
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:9533
void OrthancPluginRegisterStorageArea(OrthancPluginContext *context, OrthancPluginStorageCreate create, OrthancPluginStorageRead read, OrthancPluginStorageRemove remove)
Register a custom storage area.
Definition OrthancCPlugin.h:3645
void OrthancPluginRegisterOnStoredInstanceCallback(OrthancPluginContext *context, OrthancPluginOnStoredInstanceCallback callback)
Register a callback for received instances.
Definition OrthancCPlugin.h:2610
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:1479
OrthancPluginErrorCode OrthancPluginRegisterDecodeImageCallback(OrthancPluginContext *context, OrthancPluginDecodeImageCallback callback)
Register a callback to handle the decoding of DICOM images.
Definition OrthancCPlugin.h:5975
OrthancPluginChangeType
Definition OrthancCPlugin.h:830
OrthancPluginErrorCode(* OrthancPluginStorageReadWhole)(OrthancPluginMemoryBuffer64 *target, const char *uuid, OrthancPluginContentType type)
Callback for reading a whole file from the storage area.
Definition OrthancCPlugin.h:1544
OrthancPluginErrorCode OrthancPluginRegisterIncomingCStoreInstanceFilter(OrthancPluginContext *context, OrthancPluginIncomingCStoreInstanceFilter callback)
Register a callback to filter incoming DICOM instances received by Orthanc through C-STORE.
Definition OrthancCPlugin.h:8585
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:1457
void OrthancPluginRegisterRefreshMetricsCallback(OrthancPluginContext *context, OrthancPluginRefreshMetricsCallback callback)
Register a callback to refresh the metrics.
Definition OrthancCPlugin.h:7667
OrthancPluginErrorCode OrthancPluginRegisterHttpAuthentication(OrthancPluginContext *context, OrthancPluginHttpAuthentication callback)
Register a callback to handle HTTP authentication (and possibly HTTP authorization).
Definition OrthancCPlugin.h:10762
OrthancPluginErrorCode(* OrthancPluginWebDavCreateFolderCallback)(uint8_t *isReadOnly, uint32_t pathSize, const char *const *pathItems, void *payload)
Callback to create a folder.
Definition OrthancCPlugin.h:9698
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:1638
struct _OrthancPluginWebDavCollection_t OrthancPluginWebDavCollection
Opaque structure that represents a WebDAV collection.
Definition OrthancCPlugin.h:9507
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:2177
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:9653
int32_t(* OrthancPluginIncomingDicomInstanceFilter)(const OrthancPluginDicomInstance *instance)
Callback to filter incoming DICOM instances received by Orthanc.
Definition OrthancCPlugin.h:8499
OrthancPluginErrorCode OrthancPluginStorageAreaRemove(OrthancPluginContext *context, OrthancPluginStorageArea *storageArea, const char *uuid, OrthancPluginContentType type)
Remove a file from the storage area.
Definition OrthancCPlugin.h:5324
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:9163
OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter2(OrthancPluginContext *context, OrthancPluginIncomingHttpRequestFilter2 callback)
Register a callback to filter incoming HTTP requests.
Definition OrthancCPlugin.h:6894
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:9581
void OrthancPluginRegisterStorageArea3(OrthancPluginContext *context, OrthancPluginStorageCreate2 create, OrthancPluginStorageReadRange2 readRange, OrthancPluginStorageRemove2 remove)
Register a custom storage area, with support for custom data.
Definition OrthancCPlugin.h:9835
OrthancPluginErrorCode(* OrthancPluginStorageRead)(void **content, int64_t *size, const char *uuid, OrthancPluginContentType type)
Callback for reading from the storage area.
Definition OrthancCPlugin.h:1524
void OrthancPluginRegisterRestCallback(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback callback)
Register a REST callback.
Definition OrthancCPlugin.h:2532
uint32_t OrthancPluginGetExpectedDatabaseVersion(OrthancPluginContext *context)
Get the expected version of the database schema.
Definition OrthancCPlugin.h:4122
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:8663
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:9627
int32_t OrthancPluginCheckVersion(const OrthancPluginContext *context)
Check the compatibility of the plugin wrt. the version of its hosting Orthanc.
Definition OrthancCPlugin.h:2412
OrthancPluginJob *(* OrthancPluginJobsUnserializer)(const char *jobType, const char *serialized)
Callback executed to unserialize a custom job.
Definition OrthancCPlugin.h:2130
struct _OrthancPluginRestOutput_t OrthancPluginRestOutput
Opaque structure that represents the HTTP connection to the client application.
Definition OrthancCPlugin.h:1315
void OrthancPluginRegisterOnChangeCallback(OrthancPluginContext *context, OrthancPluginOnChangeCallback callback)
Register a callback to monitor changes.
Definition OrthancCPlugin.h:3788
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:9352
OrthancPluginErrorCode(* OrthancPluginWebDavAddFolder)(OrthancPluginWebDavCollection *collection, const char *name, const char *dateTime)
Declare a subfolder while returning the content of a folder.
Definition OrthancCPlugin.h:9554
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:9758
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:1769
void(* OrthancPluginRefreshMetricsCallback)()
Callback executed to update the metrics of the plugin.
Definition OrthancCPlugin.h:2149
OrthancPluginErrorCode OrthancPluginRegisterTranscoderCallback(OrthancPluginContext *context, OrthancPluginTranscoderCallback callback)
Register a callback to handle the transcoding of DICOM images.
Definition OrthancCPlugin.h:9191
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:1436
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:1609
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:9676
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:9718
OrthancPluginErrorCode OrthancPluginReconstructMainDicomTags(OrthancPluginContext *context, OrthancPluginStorageArea *storageArea, OrthancPluginResourceType level)
Reconstruct the main DICOM tags.
Definition OrthancCPlugin.h:5517
OrthancPluginErrorCode(* OrthancPluginStorageRemove)(const char *uuid, OrthancPluginContentType type)
Callback for removing a file from the storage area.
Definition OrthancCPlugin.h:1585
OrthancPluginErrorCode(* OrthancPluginStorageCreate)(const char *uuid, const void *content, int64_t size, OrthancPluginContentType type)
Callback for writing to the storage area.
Definition OrthancCPlugin.h:1498
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:2215
OrthancPluginErrorCode OrthancPluginRegisterAuditLogHandler(OrthancPluginContext *context, OrthancPluginAuditLogHandler handler)
Register a callback to handle audit logs.
Definition OrthancCPlugin.h:10874
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:1446
OrthancPluginErrorCode(* OrthancPluginRestCallback)(OrthancPluginRestOutput *output, const char *uri, const OrthancPluginHttpRequest *request)
Signature of a callback function that answers to a REST request.
Definition OrthancCPlugin.h:1425
void(* OrthancPluginFinalizeDatabaseBackendV4)(void *backend)
Signature of a callback function that is triggered when the database plugin must be finalized.
Definition OrthancCPlugin.h:9865
struct _OrthancPluginServerChunkedRequestReader_t OrthancPluginServerChunkedRequestReader
Opaque structure that reads the content of a HTTP request body during a chunked HTTP transfer.
Definition OrthancCPlugin.h:8120
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:9602
struct _OrthancPluginKeysValuesIterator_t OrthancPluginKeysValuesIterator
Opaque structure that represents an iterator over the keys and values of a key-value store.
Definition OrthancCPlugin.h:10373
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:1730
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:2297
void OrthancPluginRegisterJobsUnserializer(OrthancPluginContext *context, OrthancPluginJobsUnserializer unserializer)
Register an unserializer for custom jobs.
Definition OrthancCPlugin.h:7518
void(* OrthancPluginFree)(void *buffer)
Signature of a function to free dynamic memory.
Definition OrthancCPlugin.h:1469
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:10848
void OrthancPluginRegisterRestCallbackNoLock(OrthancPluginContext *context, const char *pathRegularExpression, OrthancPluginRestCallback callback)
Register a REST callback, without locking.
Definition OrthancCPlugin.h:2572
OrthancPluginErrorCode OrthancPluginStorageAreaRead(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginStorageArea *storageArea, const char *uuid, OrthancPluginContentType type)
Read a file from the storage area.
Definition OrthancCPlugin.h:5283
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:1661
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:1567
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:8243
int32_t(* OrthancPluginIncomingCStoreInstanceFilter)(uint16_t *dimseStatus, const OrthancPluginDicomInstance *instance)
Callback to filter incoming DICOM instances received by Orthanc through C-STORE.
Definition OrthancCPlugin.h:8562
OrthancPluginErrorCode OrthancPluginRegisterIncomingDicomInstanceFilter(OrthancPluginContext *context, OrthancPluginIncomingDicomInstanceFilter callback)
Register a callback to filter incoming DICOM instances.
Definition OrthancCPlugin.h:8521
OrthancPluginErrorCode OrthancPluginRegisterIncomingHttpRequestFilter(OrthancPluginContext *context, OrthancPluginIncomingHttpRequestFilter callback)
Register a callback to filter incoming HTTP requests.
Definition OrthancCPlugin.h:6313
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:5237
@ OrthancPluginChangeType_OrthancStopped
Definition OrthancCPlugin.h:842
@ OrthancPluginChangeType_OrthancStarted
Definition OrthancCPlugin.h:841
@ OrthancPluginChangeType_Deleted
Definition OrthancCPlugin.h:832
@ OrthancPluginChangeType_JobFailure
Definition OrthancCPlugin.h:849
@ OrthancPluginChangeType_NewInstance
Definition OrthancCPlugin.h:834
@ OrthancPluginChangeType_NewPatient
Definition OrthancCPlugin.h:835
@ OrthancPluginChangeType_JobSubmitted
Definition OrthancCPlugin.h:847
@ OrthancPluginChangeType_NewSeries
Definition OrthancCPlugin.h:836
@ OrthancPluginChangeType_StablePatient
Definition OrthancCPlugin.h:838
@ OrthancPluginChangeType_UpdatedPeers
Definition OrthancCPlugin.h:845
@ OrthancPluginChangeType_StableStudy
Definition OrthancCPlugin.h:840
@ OrthancPluginChangeType_CompletedSeries
Definition OrthancCPlugin.h:831
@ OrthancPluginChangeType_NewChildInstance
Definition OrthancCPlugin.h:833
@ OrthancPluginChangeType_UpdatedAttachment
Definition OrthancCPlugin.h:843
@ OrthancPluginChangeType_UpdatedMetadata
Definition OrthancCPlugin.h:844
@ OrthancPluginChangeType_StableSeries
Definition OrthancCPlugin.h:839
@ OrthancPluginChangeType_UpdatedModalities
Definition OrthancCPlugin.h:846
@ OrthancPluginChangeType_JobSuccess
Definition OrthancCPlugin.h:848
@ OrthancPluginChangeType_NewStudy
Definition OrthancCPlugin.h:837
uint32_t OrthancPluginGetFindQuerySize(OrthancPluginContext *context, const OrthancPluginFindQuery *query)
Get the number of tags in a C-Find query.
Definition OrthancCPlugin.h:6580
struct _OrthancPluginFindQuery_t OrthancPluginFindQuery
Opaque structure to an object that represents a C-Find query.
Definition OrthancCPlugin.h:1363
OrthancPluginErrorCode(* OrthancPluginApplyMove)(void *moveDriver)
Callback to apply one C-Move suboperation.
Definition OrthancCPlugin.h:1943
OrthancPluginErrorCode OrthancPluginFindMarkIncomplete(OrthancPluginContext *context, OrthancPluginFindAnswers *answers)
Mark the set of C-Find answers as incomplete.
Definition OrthancCPlugin.h:6555
void(* OrthancPluginStorageCommitmentDestructor)(void *handler)
Callback to free one storage commitment SCP handler.
Definition OrthancCPlugin.h:8410
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:1681
OrthancPluginErrorCode OrthancPluginRegisterMoveCallback2(OrthancPluginContext *context, OrthancPluginMoveCallback2 callback, OrthancPluginGetMoveSize getMoveSize, OrthancPluginApplyMove applyMove, OrthancPluginFreeMove freeMove)
Register a callback to handle C-Move requests (v2).
Definition OrthancCPlugin.h:11155
OrthancPluginErrorCode OrthancPluginRegisterMoveCallback(OrthancPluginContext *context, OrthancPluginMoveCallback callback, OrthancPluginGetMoveSize getMoveSize, OrthancPluginApplyMove applyMove, OrthancPluginFreeMove freeMove)
Register a callback to handle C-Move requests.
Definition OrthancCPlugin.h:6738
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:6689
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:8350
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:11193
OrthancPluginErrorCode OrthancPluginRegisterWorklistCallback2(OrthancPluginContext *context, OrthancPluginWorklistCallback2 callback)
Register a callback to handle modality worklists requests (v2).
Definition OrthancCPlugin.h:11094
OrthancPluginErrorCode OrthancPluginRegisterFindCallback(OrthancPluginContext *context, OrthancPluginFindCallback callback)
Register a callback to handle C-Find requests.
Definition OrthancCPlugin.h:6485
OrthancPluginErrorCode(* OrthancPluginFindCallback2)(OrthancPluginFindAnswers *answers, const OrthancPluginFindQuery *query, const OrthancPluginDicomConnection *connection)
Callback to handle incoming C-Find SCP requests (v2).
Definition OrthancCPlugin.h:1817
OrthancPluginErrorCode OrthancPluginWorklistGetDicomQuery(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const OrthancPluginWorklistQuery *query)
Retrieve the worklist query as a DICOM file.
Definition OrthancCPlugin.h:5857
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:8431
int32_t OrthancPluginWorklistIsMatch(OrthancPluginContext *context, const OrthancPluginWorklistQuery *query, const void *dicom, uint32_t size)
Test whether a worklist matches the query.
Definition OrthancCPlugin.h:5818
OrthancPluginErrorCode OrthancPluginFindAddAnswer(OrthancPluginContext *context, OrthancPluginFindAnswers *answers, const void *dicom, uint32_t size)
Add one answer to some C-Find request.
Definition OrthancCPlugin.h:6525
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:8459
struct _OrthancPluginFindAnswers_t OrthancPluginFindAnswers
Opaque structure to an object that represents the answers to a C-Find query for worklists.
Definition OrthancCPlugin.h:1372
struct _OrthancPluginWorklistAnswers_t OrthancPluginWorklistAnswers
Opaque structure to an object that represents the answers to a C-Find query for worklists.
Definition OrthancCPlugin.h:1355
OrthancPluginErrorCode(* OrthancPluginFindCallback)(OrthancPluginFindAnswers *answers, const OrthancPluginFindQuery *query, const char *issuerAet, const char *calledAet)
Callback to handle incoming C-Find SCP requests.
Definition OrthancCPlugin.h:1796
uint32_t(* OrthancPluginGetMoveSize)(void *moveDriver)
Callback to read the size of a C-Move driver.
Definition OrthancCPlugin.h:1928
OrthancPluginErrorCode OrthancPluginRegisterWorklistCallback(OrthancPluginContext *context, OrthancPluginWorklistCallback callback)
Register a callback to handle modality worklists requests.
Definition OrthancCPlugin.h:5706
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:1904
OrthancPluginErrorCode OrthancPluginRegisterFindCallback2(OrthancPluginContext *context, OrthancPluginFindCallback2 callback)
Register a callback to handle C-Find requests (v2).
Definition OrthancCPlugin.h:11122
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:6650
OrthancPluginErrorCode OrthancPluginWorklistMarkIncomplete(OrthancPluginContext *context, OrthancPluginWorklistAnswers *answers)
Mark the set of worklist answers as incomplete.
Definition OrthancCPlugin.h:5780
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:6618
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:8389
void(* OrthancPluginFreeMove)(void *moveDriver)
Callback to free one C-Move driver.
Definition OrthancCPlugin.h:1957
struct _OrthancPluginWorklistQuery_t OrthancPluginWorklistQuery
Opaque structure to an object that represents a C-Find query for worklists.
Definition OrthancCPlugin.h:1347
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:1858
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:5750
OrthancPluginErrorCode(* OrthancPluginWorklistCallback2)(OrthancPluginWorklistAnswers *answers, const OrthancPluginWorklistQuery *query, const OrthancPluginDicomConnection *connection)
Callback to handle the C-Find SCP requests for worklists (v2).
Definition OrthancCPlugin.h:1701
const char * OrthancPluginGetConnectionRemoteAet(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the remote AET of a DICOM connection.
Definition OrthancCPlugin.h:10984
struct _OrthancPluginDicomConnection_t OrthancPluginDicomConnection
Opaque structure that represents the parameters of a DICOM connection.
Definition OrthancCPlugin.h:1417
const char * OrthancPluginGetConnectionRemoteIp(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the remote IP of a DICOM connection.
Definition OrthancCPlugin.h:11019
const char * OrthancPluginGetConnectionCalledAet(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the called AET of a DICOM connection.
Definition OrthancCPlugin.h:11054
int32_t OrthancPluginHasInstancePixelData(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Check whether the DICOM file has pixel data.
Definition OrthancCPlugin.h:8723
char * OrthancPluginGetInstanceDicomWebXml(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:9118
struct _OrthancPluginDicomInstance_t OrthancPluginDicomInstance
Opaque structure that represents a DICOM instance that is managed by the Orthanc core.
Definition OrthancCPlugin.h:1323
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:8892
const char * OrthancPluginGetInstanceRemoteAet(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the AET of a DICOM instance.
Definition OrthancCPlugin.h:3376
OrthancPluginDicomInstance * OrthancPluginLoadDicomInstance(OrthancPluginContext *context, const char *instanceId, OrthancPluginLoadDicomInstanceMode mode)
Load a DICOM instance from the Orthanc server.
Definition OrthancCPlugin.h:9931
char * OrthancPluginGetInstanceJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file.
Definition OrthancCPlugin.h:3478
OrthancPluginDicomInstance * OrthancPluginTranscodeDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size, const char *transferSyntax)
Parse and transcode a DICOM instance.
Definition OrthancCPlugin.h:8961
int32_t OrthancPluginHasInstanceMetadata(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, const char *metadata)
Check whether a DICOM instance is associated with some metadata.
Definition OrthancCPlugin.h:3555
OrthancPluginDicomInstance * OrthancPluginCreateDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size)
Parse a DICOM instance.
Definition OrthancCPlugin.h:8774
uint32_t OrthancPluginGetInstanceFramesCount(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the number of frames in a DICOM instance.
Definition OrthancCPlugin.h:8851
OrthancPluginInstanceOrigin OrthancPluginGetInstanceOrigin(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the origin of a DICOM file.
Definition OrthancCPlugin.h:5883
int64_t OrthancPluginGetInstanceSize(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the size of a DICOM file.
Definition OrthancCPlugin.h:3409
char * OrthancPluginGetInstanceDicomWebJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:9077
char * OrthancPluginGetInstanceTransferSyntaxUid(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the transfer syntax of a DICOM file.
Definition OrthancCPlugin.h:8687
void OrthancPluginFreeDicomInstance(OrthancPluginContext *context, OrthancPluginDicomInstance *dicom)
Free a DICOM instance.
Definition OrthancCPlugin.h:8813
OrthancPluginErrorCode OrthancPluginSerializeDicomInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const OrthancPluginDicomInstance *instance)
Writes a DICOM instance to a memory buffer.
Definition OrthancCPlugin.h:9000
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:3596
char * OrthancPluginGetInstanceSimplifiedJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file (with simplification).
Definition OrthancCPlugin.h:3516
const void * OrthancPluginGetInstanceData(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the data of a DICOM file.
Definition OrthancCPlugin.h:3442
OrthancPluginImage * OrthancPluginGetInstanceDecodedFrame(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition OrthancCPlugin.h:8921
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:9033
OrthancPluginImage * OrthancPluginConvertPixelFormat(OrthancPluginContext *context, const OrthancPluginImage *source, OrthancPluginPixelFormat targetFormat)
Change the pixel format of an image.
Definition OrthancCPlugin.h:5021
OrthancPluginPixelFormat
Definition OrthancCPlugin.h:705
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:5181
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:4765
uint32_t OrthancPluginGetImagePitch(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the pitch of an image.
Definition OrthancCPlugin.h:4556
OrthancPluginPixelFormat OrthancPluginGetImagePixelFormat(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the pixel format of an image.
Definition OrthancCPlugin.h:4455
OrthancPluginImage * OrthancPluginCreateImage(OrthancPluginContext *context, OrthancPluginPixelFormat format, uint32_t width, uint32_t height)
Create an image.
Definition OrthancCPlugin.h:6013
uint32_t OrthancPluginGetFontsCount(OrthancPluginContext *context)
Return the number of available fonts.
Definition OrthancCPlugin.h:5056
uint32_t OrthancPluginGetImageHeight(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the height of an image.
Definition OrthancCPlugin.h:4521
void * OrthancPluginGetImageBuffer(OrthancPluginContext *context, const OrthancPluginImage *image)
Return a pointer to the content of an image.
Definition OrthancCPlugin.h:4590
void OrthancPluginFreeImage(OrthancPluginContext *context, OrthancPluginImage *image)
Free an image.
Definition OrthancCPlugin.h:4675
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:4720
OrthancPluginImage * OrthancPluginDecodeDicomImage(OrthancPluginContext *context, const void *buffer, uint32_t bufferSize, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition OrthancCPlugin.h:6102
OrthancPluginImage * OrthancPluginUncompressImage(OrthancPluginContext *context, const void *data, uint32_t size, OrthancPluginImageFormat format)
Decode a compressed image.
Definition OrthancCPlugin.h:4633
const char * OrthancPluginGetFontName(OrthancPluginContext *context, uint32_t fontIndex)
Return the name of a font.
Definition OrthancCPlugin.h:5096
OrthancPluginImageFormat
Definition OrthancCPlugin.h:876
struct _OrthancPluginStorageArea_t OrthancPluginStorageArea
Opaque structure that represents the storage area that is actually used by Orthanc.
Definition OrthancCPlugin.h:1339
OrthancPluginCompressionType
Definition OrthancCPlugin.h:860
uint32_t OrthancPluginGetImageWidth(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the width of an image.
Definition OrthancCPlugin.h:4488
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:4267
uint32_t OrthancPluginGetFontSize(OrthancPluginContext *context, uint32_t fontIndex)
Return the size of a font.
Definition OrthancCPlugin.h:5128
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:6056
struct _OrthancPluginImage_t OrthancPluginImage
Opaque structure that represents an image that is uncompressed in memory.
Definition OrthancCPlugin.h:1331
@ OrthancPluginPixelFormat_RGBA32
Color image in RGBA32 format.
Definition OrthancCPlugin.h:744
@ OrthancPluginPixelFormat_RGB48
Color image in RGB48 format.
Definition OrthancCPlugin.h:754
@ OrthancPluginPixelFormat_Grayscale8
Graylevel 8bpp image.
Definition OrthancCPlugin.h:712
@ OrthancPluginPixelFormat_SignedGrayscale16
Graylevel, signed 16bpp image.
Definition OrthancCPlugin.h:728
@ OrthancPluginPixelFormat_Float32
Graylevel, floating-point 32bpp image.
Definition OrthancCPlugin.h:770
@ OrthancPluginPixelFormat_RGB24
Color image in RGB24 format.
Definition OrthancCPlugin.h:736
@ OrthancPluginPixelFormat_BGRA32
Color image in BGRA32 format.
Definition OrthancCPlugin.h:778
@ OrthancPluginPixelFormat_Unknown
Definition OrthancCPlugin.h:746
@ OrthancPluginPixelFormat_Grayscale64
Graylevel, unsigned 64bpp image.
Definition OrthancCPlugin.h:786
@ OrthancPluginPixelFormat_Grayscale32
Graylevel, unsigned 32bpp image.
Definition OrthancCPlugin.h:762
@ OrthancPluginPixelFormat_Grayscale16
Graylevel, unsigned 16bpp image.
Definition OrthancCPlugin.h:720
@ OrthancPluginImageFormat_Png
Definition OrthancCPlugin.h:877
@ OrthancPluginImageFormat_Jpeg
Definition OrthancCPlugin.h:878
@ OrthancPluginImageFormat_Dicom
Definition OrthancCPlugin.h:879
@ OrthancPluginCompressionType_Gzip
Definition OrthancCPlugin.h:863
@ OrthancPluginCompressionType_ZlibWithSize
Definition OrthancCPlugin.h:862
@ OrthancPluginCompressionType_None
Definition OrthancCPlugin.h:865
@ OrthancPluginCompressionType_Zlib
Definition OrthancCPlugin.h:861
@ OrthancPluginCompressionType_GzipWithSize
Definition OrthancCPlugin.h:864
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:2840
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:2875
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:2988
char * OrthancPluginLookupStudyWithAccessionNumber(OrthancPluginContext *context, const char *accessionNumber)
Look for a study, using the accession number.
Definition OrthancCPlugin.h:3124
char * OrthancPluginLookupSeries(OrthancPluginContext *context, const char *seriesUID)
Look for a series.
Definition OrthancCPlugin.h:3159
OrthancPluginErrorCode OrthancPluginSetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *value)
Set the value of a global property.
Definition OrthancCPlugin.h:4025
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:2952
char * OrthancPluginGetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *defaultValue)
Get the value of a global property.
Definition OrthancCPlugin.h:3986
char * OrthancPluginLookupStudy(OrthancPluginContext *context, const char *studyUID)
Look for a study.
Definition OrthancCPlugin.h:3089
OrthancPluginErrorCode OrthancPluginRestApiGet(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *uri)
Make a GET call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2773
char * OrthancPluginLookupInstance(OrthancPluginContext *context, const char *sopInstanceUID)
Look for an instance.
Definition OrthancCPlugin.h:3194
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:2803
char * OrthancPluginLookupPatient(OrthancPluginContext *context, const char *patientID)
Look for a patient.
Definition OrthancCPlugin.h:3054
OrthancPluginErrorCode OrthancPluginRestApiDelete(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the built-in Orthanc REST API.
Definition OrthancCPlugin.h:2904
OrthancPluginErrorCode OrthancPluginRestApiDeleteAfterPlugins(OrthancPluginContext *context, const char *uri)
Make a DELETE call to the REST API, as tainted by the plugins.
Definition OrthancCPlugin.h:2927
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:9469
char * OrthancPluginGenerateRestApiAuthorizationToken(OrthancPluginContext *context)
Generate a token to grant full access to the REST API of Orthanc.
Definition OrthancCPlugin.h:9266
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:5668
OrthancPluginErrorCode OrthancPluginGetDicomForInstance(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *instanceId)
Retrieve a DICOM instance using its Orthanc identifier.
Definition OrthancCPlugin.h:2740
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:2699
void OrthancPluginSendUnauthorized(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *realm)
Signal that a REST request is not authorized.
Definition OrthancCPlugin.h:3262
void OrthancPluginSetHttpErrorDetails(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *details, uint8_t log)
Provide a detailed description for an HTTP error.
Definition OrthancCPlugin.h:7555
void OrthancPluginSendMethodNotAllowed(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *allowedMethods)
Signal that this URI does not support this HTTP method.
Definition OrthancCPlugin.h:3285
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:10112
void OrthancPluginAnswerBuffer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const void *answer, uint32_t answerSize, const char *mimeType)
Answer to a REST request.
Definition OrthancCPlugin.h:2642
void OrthancPluginSendHttpStatusCode(OrthancPluginContext *context, OrthancPluginRestOutput *output, uint16_t status)
Send a HTTP status code.
Definition OrthancCPlugin.h:3239
void OrthancPluginSetHttpHeader(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *key, const char *value)
Set some HTTP header.
Definition OrthancCPlugin.h:3340
OrthancPluginErrorCode OrthancPluginStartStreamAnswer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *contentType)
Start an HTTP stream answer.
Definition OrthancCPlugin.h:10084
void OrthancPluginSetCookie(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *cookie, const char *value)
Set a cookie.
Definition OrthancCPlugin.h:3315
void OrthancPluginRedirect(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *redirection)
Redirect a REST request.
Definition OrthancCPlugin.h:3022
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:4812
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:4225
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:6274
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:4419
OrthancPluginErrorCode OrthancPluginStartMultipartAnswer(OrthancPluginContext *context, OrthancPluginRestOutput *output, const char *subType, const char *contentType)
Start an HTTP multipart answer.
Definition OrthancCPlugin.h:4196
OrthancPluginErrorCode(* OrthancPluginJobStop)(void *job, OrthancPluginJobStopReason reason)
Callback executed once one custom job leaves the "running" state.
Definition OrthancCPlugin.h:2097
OrthancPluginErrorCode(* OrthancPluginServerChunkedRequestReaderExecute)(OrthancPluginServerChunkedRequestReader *reader, OrthancPluginRestOutput *output)
Callback invoked whenever the request body is entirely received.
Definition OrthancCPlugin.h:8179
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:6389
struct _OrthancPluginJob_t OrthancPluginJob
Opaque structure to a job to be executed by Orthanc.
Definition OrthancCPlugin.h:1399
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:9400
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:10045
void OrthancPluginLogInfo(OrthancPluginContext *context, const char *message)
Log an information.
Definition OrthancCPlugin.h:2496
void OrthancPluginFreeFindMatcher(OrthancPluginContext *context, OrthancPluginFindMatcher *matcher)
Free a C-Find matcher.
Definition OrthancCPlugin.h:6817
void OrthancPluginFreePeers(OrthancPluginContext *context, OrthancPluginPeers *peers)
Free the list of available Orthanc peers.
Definition OrthancCPlugin.h:6958
OrthancPluginLogLevel
Definition OrthancCPlugin.h:1183
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:5473
OrthancPluginIdentifierConstraint
Definition OrthancCPlugin.h:987
void OrthancPluginExtendOrthancExplorer2(OrthancPluginContext *context, const char *plugin, const char *javascript)
Extend the JavaScript code of Orthanc Explorer.
Definition OrthancCPlugin.h:3951
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:5419
OrthancPluginResourceType
Definition OrthancCPlugin.h:812
void OrthancPluginSetRootUri2(OrthancPluginContext *context, const char *plugin, const char *uri)
Set the URI where the plugin provides its Web interface.
Definition OrthancCPlugin.h:3849
void OrthancPluginSetMetricsIntegerValue(OrthancPluginContext *context, const char *name, int64_t value, OrthancPluginMetricsType type)
Set the value of an integer metrics.
Definition OrthancCPlugin.h:9978
OrthancPluginLogCategory
Definition OrthancCPlugin.h:1200
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:10953
OrthancPluginErrorCode OrthancPluginWriteFile(OrthancPluginContext *context, const char *path, const void *data, uint32_t size)
Write a file.
Definition OrthancCPlugin.h:4335
const char * OrthancPluginKeysValuesIteratorGetKey(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Get the current key of an iterator over a key-value store.
Definition OrthancCPlugin.h:10486
uint32_t OrthancPluginGetCommandLineArgumentsCount(OrthancPluginContext *context)
Get the number of command-line arguments.
Definition OrthancCPlugin.h:4056
OrthancPluginErrorCode OrthancPluginKeysValuesIteratorNext(OrthancPluginContext *context, uint8_t *done, OrthancPluginKeysValuesIterator *iterator)
Read the next element of an iterator over a key-value store.
Definition OrthancCPlugin.h:10456
char * OrthancPluginComputeMd5(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute an MD5 hash.
Definition OrthancCPlugin.h:6148
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:1390
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:4903
uint32_t(* OrthancPluginChunkedClientRequestGetChunkSize)(void *request)
Callback to read the size of the current request chunk during a chunked transfer.
Definition OrthancCPlugin.h:7979
OrthancPluginErrorCode OrthancPluginRegisterErrorCode(OrthancPluginContext *context, int32_t code, uint16_t httpStatus, const char *message)
Declare a custom error code for this plugin.
Definition OrthancCPlugin.h:5363
OrthancPluginErrorCode OrthancPluginCreateMemoryBuffer(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, uint32_t size)
Create a 32-bit memory buffer.
Definition OrthancCPlugin.h:9227
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:7383
OrthancPluginErrorCode(* OrthancPluginServerChunkedRequestReaderFactory)(OrthancPluginServerChunkedRequestReader **reader, const char *uri, const OrthancPluginHttpRequest *request)
Callback to create a reader to handle incoming chunked HTTP transfers.
Definition OrthancCPlugin.h:8140
OrthancPluginDicomWebBinaryMode
Definition OrthancCPlugin.h:1077
OrthancPluginErrorCode OrthancPluginClearCurrentThreadName(OrthancPluginContext *context)
Clear the name of the current thread.
Definition OrthancCPlugin.h:11221
OrthancPluginErrorCode(* OrthancPluginJobGetContent2)(OrthancPluginMemoryBuffer *target, void *job)
Callback to retrieve the content of one custom job.
Definition OrthancCPlugin.h:2017
OrthancPluginErrorCode(* OrthancPluginChunkedClientRequestNext)(void *request)
Callback to advance in the request body during a chunked transfer.
Definition OrthancCPlugin.h:7947
OrthancPluginHttpAuthenticationStatus
Definition OrthancCPlugin.h:1256
struct _OrthancPluginDicomWebNode_t OrthancPluginDicomWebNode
Opaque structure that represents a node in a JSON or XML document used in DICOMweb.
Definition OrthancCPlugin.h:1409
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:10351
float(* OrthancPluginJobGetProgress)(void *job)
Callback to check the progress of one custom job.
Definition OrthancCPlugin.h:1983
char * OrthancPluginEncodeDicomWebJson(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback callback)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:7704
OrthancPluginFindMatcher * OrthancPluginCreateFindMatcher(OrthancPluginContext *context, const void *query, uint32_t size)
Create a C-Find matcher.
Definition OrthancCPlugin.h:6778
OrthancPluginDicomToJsonFlags
Definition OrthancCPlugin.h:951
OrthancPluginJobStepStatus
Definition OrthancCPlugin.h:1033
OrthancPluginCreateDicomFlags
Definition OrthancCPlugin.h:972
void(* OrthancPluginServerChunkedRequestReaderFinalize)(OrthancPluginServerChunkedRequestReader *reader)
Callback invoked to release the resources associated with an incoming HTTP chunked transfer.
Definition OrthancCPlugin.h:8197
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:6851
void OrthancPluginExtendOrthancExplorer(OrthancPluginContext *context, const char *javascript)
Extend the JavaScript code of Orthanc Explorer.
Definition OrthancCPlugin.h:3927
void OrthancPluginLogWarning(OrthancPluginContext *context, const char *message)
Log a warning.
Definition OrthancCPlugin.h:2480
OrthancPluginQueueOrigin
Definition OrthancCPlugin.h:1232
OrthancPluginErrorCode OrthancPluginDequeueValue(OrthancPluginContext *context, uint8_t *found, OrthancPluginMemoryBuffer *target, const char *queueId, OrthancPluginQueueOrigin origin)
Dequeue a value from a queue.
Definition OrthancCPlugin.h:10593
const char * OrthancPluginGetPeerName(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the symbolic name of an Orthanc peer.
Definition OrthancCPlugin.h:7038
OrthancPluginPeers * OrthancPluginGetPeers(OrthancPluginContext *context)
Return the list of available Orthanc peers.
Definition OrthancCPlugin.h:6923
OrthancPluginConstraintType
Definition OrthancCPlugin.h:1002
char * OrthancPluginGetOrthancDirectory(OrthancPluginContext *context)
Return the directory containing the Orthanc.
Definition OrthancCPlugin.h:3707
OrthancPluginErrorCode OrthancPluginReadFile(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *path)
Read a file.
Definition OrthancCPlugin.h:4304
OrthancPluginJobStepStatus(* OrthancPluginJobStep)(void *job)
Callback to execute one step of a custom job.
Definition OrthancCPlugin.h:2073
char * OrthancPluginComputeSha1(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute a SHA-1 hash.
Definition OrthancCPlugin.h:6184
char * OrthancPluginGetCommandLineArgument(OrthancPluginContext *context, uint32_t argument)
Get the value of a command-line argument.
Definition OrthancCPlugin.h:4090
void OrthancPluginSetMetricsValue(OrthancPluginContext *context, const char *name, float value, OrthancPluginMetricsType type)
Set the value of a floating-point metrics.
Definition OrthancCPlugin.h:7635
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:8159
OrthancPluginReceivedInstanceAction
Definition OrthancCPlugin.h:1139
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:8059
int32_t(* OrthancPluginJobGetSerialized2)(OrthancPluginMemoryBuffer *target, void *job)
Callback to serialize one custom job.
Definition OrthancCPlugin.h:2057
void OrthancPluginFreeMemoryBuffer64(OrthancPluginContext *context, OrthancPluginMemoryBuffer64 *buffer)
Free a memory buffer.
Definition OrthancCPlugin.h:2448
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:4945
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:10286
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:5561
OrthancPluginErrorCode OrthancPluginSetStableStatus(OrthancPluginContext *context, uint8_t *statusHasChanged, const char *resourceId, OrthancPluginStableStatus stableStatus)
Change the "Stable" status of a resource.
Definition OrthancCPlugin.h:10666
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:5939
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:5610
void OrthancPluginFreeKeysValuesIterator(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Free an iterator over a key-value store.
Definition OrthancCPlugin.h:10428
void OrthancPluginFreeJob(OrthancPluginContext *context, OrthancPluginJob *job)
Free a custom job.
Definition OrthancCPlugin.h:7439
const char * OrthancPluginGetDatabaseServerIdentifier(OrthancPluginContext *context)
Gets the DatabaseServerIdentifier.
Definition OrthancCPlugin.h:9792
char * OrthancPluginGenerateUuid(OrthancPluginContext *context)
Generate an UUID.
Definition OrthancCPlugin.h:6445
OrthancPluginStorageCommitmentFailureReason
Definition OrthancCPlugin.h:1091
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:7910
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:7127
OrthancPluginMetricsType
Definition OrthancCPlugin.h:1059
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:10917
const char * OrthancPluginAutodetectMimeType(OrthancPluginContext *context, const char *path)
Detect the MIME type of a file.
Definition OrthancCPlugin.h:7588
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:10252
OrthancPluginErrorCode OrthancPluginHttpDelete(OrthancPluginContext *context, const char *url, const char *username, const char *password)
Issue a HTTP DELETE call.
Definition OrthancCPlugin.h:4983
uint8_t(* OrthancPluginChunkedClientRequestIsDone)(void *request)
Callback to know whether the request body is entirely read during a chunked transfer.
Definition OrthancCPlugin.h:7930
const void *(* OrthancPluginChunkedClientRequestGetChunkData)(void *request)
Callback to read the current chunk of the request body during a chunked transfer.
Definition OrthancCPlugin.h:7963
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:10177
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:7296
void OrthancPluginFreeMemoryBuffer(OrthancPluginContext *context, OrthancPluginMemoryBuffer *buffer)
Free a memory buffer.
Definition OrthancCPlugin.h:2431
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:10556
char * OrthancPluginEncodeDicomWebXml(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback callback)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:7747
const char *(* OrthancPluginJobGetSerialized)(void *job)
Callback to serialize one custom job.
Definition OrthancCPlugin.h:2037
char * OrthancPluginGetConfiguration(OrthancPluginContext *context)
Return the content of the configuration file(s).
Definition OrthancCPlugin.h:4155
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:10395
OrthancPluginErrorCode OrthancPluginCreateMemoryBuffer64(OrthancPluginContext *context, OrthancPluginMemoryBuffer64 *target, uint64_t size)
Create a 64-bit memory buffer.
Definition OrthancCPlugin.h:9313
OrthancPluginLoadDicomInstanceMode
Definition OrthancCPlugin.h:1153
OrthancPluginStoreStatus
Definition OrthancCPlugin.h:1217
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:7889
uint32_t OrthancPluginGetPeersCount(OrthancPluginContext *context, const OrthancPluginPeers *peers)
Get the number of Orthanc peers.
Definition OrthancCPlugin.h:6989
const char *(* OrthancPluginJobGetContent)(void *job)
Callback to retrieve the content of one custom job.
Definition OrthancCPlugin.h:1999
OrthancPluginValueRepresentation
Definition OrthancCPlugin.h:890
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:10808
char * OrthancPluginSubmitJob(OrthancPluginContext *context, OrthancPluginJob *job, int32_t priority)
Submit a new job to the jobs engine of Orthanc.
Definition OrthancCPlugin.h:7472
OrthancPluginErrorCode OrthancPluginKeysValuesIteratorGetValue(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, OrthancPluginKeysValuesIterator *iterator)
Get the current value of an iterator over a key-value store.
Definition OrthancCPlugin.h:10526
OrthancPluginErrorCode OrthancPluginHttpGet(OrthancPluginContext *context, OrthancPluginMemoryBuffer *target, const char *url, const char *username, const char *password)
Issue a HTTP GET call.
Definition OrthancCPlugin.h:4865
OrthancPluginJobStopReason
Definition OrthancCPlugin.h:1047
OrthancPluginErrorCode OrthancPluginDeleteKeyValue(OrthancPluginContext *context, const char *storeId, const char *key)
Delete a key-value pair from the Orthanc database.
Definition OrthancCPlugin.h:10318
char * OrthancPluginGetOrthancPath(OrthancPluginContext *context)
Return the path to the Orthanc executable.
Definition OrthancCPlugin.h:3677
OrthancPluginDicomToJsonFormat
Definition OrthancCPlugin.h:936
void OrthancPluginSetDescription2(OrthancPluginContext *context, const char *plugin, const char *description)
Set a description for this plugin.
Definition OrthancCPlugin.h:3900
OrthancPluginErrorCode OrthancPluginGetAttachmentCustomData(OrthancPluginContext *context, OrthancPluginMemoryBuffer *customData, const char *attachmentUuid)
Retrieve the custom data associated with an attachment in the Orthanc database.
Definition OrthancCPlugin.h:10219
void OrthancPluginLogError(OrthancPluginContext *context, const char *message)
Log an error.
Definition OrthancCPlugin.h:2464
char * OrthancPluginGetConfigurationPath(OrthancPluginContext *context)
Return the path to the configuration file(s).
Definition OrthancCPlugin.h:3742
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:3823
char * OrthancPluginEncodeDicomWebXml2(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb XML.
Definition OrthancCPlugin.h:7845
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:7209
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:1381
char * OrthancPluginEncodeDicomWebJson2(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback2 callback, void *payload)
Convert a DICOM instance to DICOMweb JSON.
Definition OrthancCPlugin.h:7800
OrthancPluginErrorCode OrthancPluginLookupDictionary(OrthancPluginContext *context, OrthancPluginDictionaryEntry *target, const char *name)
Get information about the given DICOM tag.
Definition OrthancCPlugin.h:6230
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:10625
OrthancPluginInstanceOrigin
Definition OrthancCPlugin.h:1017
void(* OrthancPluginJobFinalize)(void *job)
Callback to finalize one custom job.
Definition OrthancCPlugin.h:1970
void OrthancPluginFreeString(OrthancPluginContext *context, char *str)
Free a string.
Definition OrthancCPlugin.h:2266
OrthancPluginErrorCode OrthancPluginSetCurrentThreadName(OrthancPluginContext *context, const char *threadName)
Set the name of the current thread.
Definition OrthancCPlugin.h:10011
OrthancPluginErrorCode(* OrthancPluginJobReset)(void *job)
Callback executed once one stopped custom job is started again.
Definition OrthancCPlugin.h:2114
const char * OrthancPluginGetErrorDescription(OrthancPluginContext *context, OrthancPluginErrorCode error)
Get the description of a given error code.
Definition OrthancCPlugin.h:4366
struct _OrthancPluginContext_t OrthancPluginContext
Data structure that contains information about the Orthanc core.
OrthancPluginContentType
Definition OrthancCPlugin.h:797
const char * OrthancPluginGetPeerUrl(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the base URL of an Orthanc peer.
Definition OrthancCPlugin.h:7080
void OrthancPluginSetDescription(OrthancPluginContext *context, const char *description)
Set a description for this plugin.
Definition OrthancCPlugin.h:3876
OrthancPluginStableStatus
Definition OrthancCPlugin.h:1244
char * OrthancPluginGetTagName(OrthancPluginContext *context, uint16_t group, uint16_t element, const char *privateCreator)
Returns the symbolic name of a DICOM tag.
Definition OrthancCPlugin.h:8295
@ OrthancPluginLogLevel_Warning
Definition OrthancCPlugin.h:1185
@ OrthancPluginLogLevel_Trace
Definition OrthancCPlugin.h:1187
@ OrthancPluginLogLevel_Error
Definition OrthancCPlugin.h:1184
@ OrthancPluginLogLevel_Info
Definition OrthancCPlugin.h:1186
@ OrthancPluginIdentifierConstraint_Wildcard
Definition OrthancCPlugin.h:991
@ OrthancPluginIdentifierConstraint_Equal
Definition OrthancCPlugin.h:988
@ OrthancPluginIdentifierConstraint_SmallerOrEqual
Definition OrthancCPlugin.h:989
@ OrthancPluginIdentifierConstraint_GreaterOrEqual
Definition OrthancCPlugin.h:990
@ OrthancPluginResourceType_Instance
Definition OrthancCPlugin.h:816
@ OrthancPluginResourceType_None
Definition OrthancCPlugin.h:817
@ OrthancPluginResourceType_Series
Definition OrthancCPlugin.h:815
@ OrthancPluginResourceType_Study
Definition OrthancCPlugin.h:814
@ OrthancPluginResourceType_Patient
Definition OrthancCPlugin.h:813
@ OrthancPluginLogCategory_Dicom
Definition OrthancCPlugin.h:1205
@ OrthancPluginLogCategory_Jobs
Definition OrthancCPlugin.h:1206
@ OrthancPluginLogCategory_Sqlite
Definition OrthancCPlugin.h:1204
@ OrthancPluginLogCategory_Plugins
Definition OrthancCPlugin.h:1202
@ OrthancPluginLogCategory_Generic
Definition OrthancCPlugin.h:1201
@ OrthancPluginLogCategory_Lua
Definition OrthancCPlugin.h:1207
@ OrthancPluginLogCategory_Http
Definition OrthancCPlugin.h:1203
@ 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:1079
@ OrthancPluginDicomWebBinaryMode_BulkDataUri
Definition OrthancCPlugin.h:1080
@ OrthancPluginDicomWebBinaryMode_ArrayOfValues
Definition OrthancCPlugin.h:1081
@ OrthancPluginDicomWebBinaryMode_Ignore
Definition OrthancCPlugin.h:1078
@ OrthancPluginHttpAuthenticationStatus_Forbidden
Definition OrthancCPlugin.h:1259
@ OrthancPluginHttpAuthenticationStatus_Redirect
Definition OrthancCPlugin.h:1260
@ OrthancPluginHttpAuthenticationStatus_Unauthorized
Definition OrthancCPlugin.h:1258
@ OrthancPluginHttpAuthenticationStatus_Granted
Definition OrthancCPlugin.h:1257
@ OrthancPluginDicomToJsonFlags_ConvertBinaryToAscii
Definition OrthancCPlugin.h:957
@ OrthancPluginDicomToJsonFlags_IncludeBinary
Definition OrthancCPlugin.h:953
@ OrthancPluginDicomToJsonFlags_IncludePixelData
Definition OrthancCPlugin.h:956
@ OrthancPluginDicomToJsonFlags_IncludeUnknownTags
Definition OrthancCPlugin.h:955
@ OrthancPluginDicomToJsonFlags_SkipGroupLengths
Definition OrthancCPlugin.h:960
@ OrthancPluginDicomToJsonFlags_None
Definition OrthancCPlugin.h:952
@ OrthancPluginDicomToJsonFlags_ConvertBinaryToNull
Definition OrthancCPlugin.h:958
@ OrthancPluginDicomToJsonFlags_StopAfterPixelData
Definition OrthancCPlugin.h:959
@ OrthancPluginDicomToJsonFlags_IncludePrivateTags
Definition OrthancCPlugin.h:954
@ OrthancPluginJobStepStatus_Continue
Definition OrthancCPlugin.h:1036
@ OrthancPluginJobStepStatus_Success
Definition OrthancCPlugin.h:1034
@ OrthancPluginJobStepStatus_Failure
Definition OrthancCPlugin.h:1035
@ OrthancPluginCreateDicomFlags_DecodeDataUriScheme
Definition OrthancCPlugin.h:974
@ OrthancPluginCreateDicomFlags_None
Definition OrthancCPlugin.h:973
@ OrthancPluginCreateDicomFlags_GenerateIdentifiers
Definition OrthancCPlugin.h:975
@ OrthancPluginQueueOrigin_Front
Definition OrthancCPlugin.h:1233
@ OrthancPluginQueueOrigin_Back
Definition OrthancCPlugin.h:1234
@ OrthancPluginConstraintType_SmallerOrEqual
Definition OrthancCPlugin.h:1004
@ OrthancPluginConstraintType_List
Definition OrthancCPlugin.h:1007
@ OrthancPluginConstraintType_GreaterOrEqual
Definition OrthancCPlugin.h:1005
@ OrthancPluginConstraintType_Equal
Definition OrthancCPlugin.h:1003
@ OrthancPluginConstraintType_Wildcard
Definition OrthancCPlugin.h:1006
@ OrthancPluginReceivedInstanceAction_KeepAsIs
Definition OrthancCPlugin.h:1140
@ OrthancPluginReceivedInstanceAction_Discard
Definition OrthancCPlugin.h:1142
@ OrthancPluginReceivedInstanceAction_Modify
Definition OrthancCPlugin.h:1141
@ OrthancPluginStorageCommitmentFailureReason_ReferencedSOPClassNotSupported
Definition OrthancCPlugin.h:1118
@ OrthancPluginStorageCommitmentFailureReason_Success
Definition OrthancCPlugin.h:1095
@ OrthancPluginStorageCommitmentFailureReason_DuplicateTransactionUID
Definition OrthancCPlugin.h:1131
@ OrthancPluginStorageCommitmentFailureReason_ClassInstanceConflict
Definition OrthancCPlugin.h:1125
@ OrthancPluginStorageCommitmentFailureReason_ResourceLimitation
Definition OrthancCPlugin.h:1112
@ OrthancPluginStorageCommitmentFailureReason_NoSuchObjectInstance
Definition OrthancCPlugin.h:1106
@ OrthancPluginStorageCommitmentFailureReason_ProcessingFailure
Definition OrthancCPlugin.h:1100
@ OrthancPluginMetricsType_Default
Definition OrthancCPlugin.h:1060
@ OrthancPluginMetricsType_Timer
Definition OrthancCPlugin.h:1067
@ OrthancPluginLoadDicomInstanceMode_UntilPixelData
Definition OrthancCPlugin.h:1163
@ OrthancPluginLoadDicomInstanceMode_WholeDicom
Definition OrthancCPlugin.h:1157
@ OrthancPluginLoadDicomInstanceMode_EmptyPixelData
Definition OrthancCPlugin.h:1170
@ OrthancPluginStoreStatus_Success
Definition OrthancCPlugin.h:1218
@ OrthancPluginStoreStatus_FilteredOut
Definition OrthancCPlugin.h:1221
@ OrthancPluginStoreStatus_StorageFull
Definition OrthancCPlugin.h:1222
@ OrthancPluginStoreStatus_Failure
Definition OrthancCPlugin.h:1220
@ OrthancPluginStoreStatus_AlreadyStored
Definition OrthancCPlugin.h:1219
@ OrthancPluginValueRepresentation_PN
Definition OrthancCPlugin.h:906
@ OrthancPluginValueRepresentation_UV
Definition OrthancCPlugin.h:924
@ OrthancPluginValueRepresentation_UL
Definition OrthancCPlugin.h:914
@ OrthancPluginValueRepresentation_UN
Definition OrthancCPlugin.h:915
@ OrthancPluginValueRepresentation_UR
Definition OrthancCPlugin.h:921
@ OrthancPluginValueRepresentation_DA
Definition OrthancCPlugin.h:895
@ OrthancPluginValueRepresentation_OF
Definition OrthancCPlugin.h:904
@ OrthancPluginValueRepresentation_OW
Definition OrthancCPlugin.h:905
@ OrthancPluginValueRepresentation_CS
Definition OrthancCPlugin.h:894
@ OrthancPluginValueRepresentation_OV
Definition OrthancCPlugin.h:922
@ OrthancPluginValueRepresentation_US
Definition OrthancCPlugin.h:916
@ OrthancPluginValueRepresentation_SH
Definition OrthancCPlugin.h:907
@ OrthancPluginValueRepresentation_OL
Definition OrthancCPlugin.h:919
@ OrthancPluginValueRepresentation_OD
Definition OrthancCPlugin.h:918
@ OrthancPluginValueRepresentation_FL
Definition OrthancCPlugin.h:899
@ OrthancPluginValueRepresentation_DT
Definition OrthancCPlugin.h:897
@ OrthancPluginValueRepresentation_UC
Definition OrthancCPlugin.h:920
@ OrthancPluginValueRepresentation_TM
Definition OrthancCPlugin.h:912
@ OrthancPluginValueRepresentation_SQ
Definition OrthancCPlugin.h:909
@ OrthancPluginValueRepresentation_DS
Definition OrthancCPlugin.h:896
@ OrthancPluginValueRepresentation_OB
Definition OrthancCPlugin.h:903
@ OrthancPluginValueRepresentation_SV
Definition OrthancCPlugin.h:923
@ OrthancPluginValueRepresentation_SL
Definition OrthancCPlugin.h:908
@ OrthancPluginValueRepresentation_ST
Definition OrthancCPlugin.h:911
@ OrthancPluginValueRepresentation_IS
Definition OrthancCPlugin.h:900
@ OrthancPluginValueRepresentation_LT
Definition OrthancCPlugin.h:902
@ OrthancPluginValueRepresentation_SS
Definition OrthancCPlugin.h:910
@ OrthancPluginValueRepresentation_UT
Definition OrthancCPlugin.h:917
@ OrthancPluginValueRepresentation_LO
Definition OrthancCPlugin.h:901
@ OrthancPluginValueRepresentation_AE
Definition OrthancCPlugin.h:891
@ OrthancPluginValueRepresentation_FD
Definition OrthancCPlugin.h:898
@ OrthancPluginValueRepresentation_UI
Definition OrthancCPlugin.h:913
@ OrthancPluginValueRepresentation_AS
Definition OrthancCPlugin.h:892
@ OrthancPluginValueRepresentation_AT
Definition OrthancCPlugin.h:893
@ OrthancPluginJobStopReason_Failure
Definition OrthancCPlugin.h:1050
@ OrthancPluginJobStopReason_Success
Definition OrthancCPlugin.h:1048
@ OrthancPluginJobStopReason_Canceled
Definition OrthancCPlugin.h:1051
@ OrthancPluginJobStopReason_Paused
Definition OrthancCPlugin.h:1049
@ OrthancPluginDicomToJsonFormat_Full
Definition OrthancCPlugin.h:937
@ OrthancPluginDicomToJsonFormat_Human
Definition OrthancCPlugin.h:939
@ OrthancPluginDicomToJsonFormat_Short
Definition OrthancCPlugin.h:938
@ 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:1018
@ OrthancPluginInstanceOrigin_RestApi
Definition OrthancCPlugin.h:1020
@ OrthancPluginInstanceOrigin_Lua
Definition OrthancCPlugin.h:1022
@ OrthancPluginInstanceOrigin_WebDav
Definition OrthancCPlugin.h:1023
@ OrthancPluginInstanceOrigin_DicomProtocol
Definition OrthancCPlugin.h:1019
@ OrthancPluginInstanceOrigin_Plugin
Definition OrthancCPlugin.h:1021
@ OrthancPluginContentType_Dicom
Definition OrthancCPlugin.h:799
@ OrthancPluginContentType_DicomAsJson
Definition OrthancCPlugin.h:800
@ OrthancPluginContentType_Unknown
Definition OrthancCPlugin.h:798
@ OrthancPluginContentType_DicomUntilPixelData
Definition OrthancCPlugin.h:801
@ OrthancPluginStableStatus_Unstable
Definition OrthancCPlugin.h:1246
@ OrthancPluginStableStatus_Stable
Definition OrthancCPlugin.h:1245
An entry in the dictionary of DICOM tags.
Definition OrthancCPlugin.h:2248
uint32_t minMultiplicity
Definition OrthancCPlugin.h:2252
uint32_t maxMultiplicity
Definition OrthancCPlugin.h:2253
OrthancPluginValueRepresentation vr
Definition OrthancCPlugin.h:2251
uint16_t element
Definition OrthancCPlugin.h:2250
uint16_t group
Definition OrthancCPlugin.h:2249
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:1296
uint64_t size
The number of bytes in the buffer.
Definition OrthancCPlugin.h:1305
void * data
The content of the buffer.
Definition OrthancCPlugin.h:1300
A 32-bit memory buffer allocated by the core system of Orthanc.
Definition OrthancCPlugin.h:1274
uint32_t size
The number of bytes in the buffer.
Definition OrthancCPlugin.h:1283
void * data
The content of the buffer.
Definition OrthancCPlugin.h:1278