Orthanc Plugin SDK  1.13.0
Documentation of the plugin interface of Orthanc
OrthancCPlugin.h
1 
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 
231 #ifdef __cplusplus
232 extern "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  {
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 
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,
803  _OrthancPluginContentType_INTERNAL = 0x7fffffff
805 
806 
807 
811  typedef enum
812  {
819  _OrthancPluginResourceType_INTERNAL = 0x7fffffff
821 
822 
823 
829  typedef enum
830  {
845  OrthancPluginChangeType_UpdatedPeers ORTHANC_PLUGIN_SINCE_SDK("1.4.2") = 14,
846  OrthancPluginChangeType_UpdatedModalities ORTHANC_PLUGIN_SINCE_SDK("1.4.2") = 15,
847  OrthancPluginChangeType_JobSubmitted ORTHANC_PLUGIN_SINCE_SDK("1.7.2") = 16,
848  OrthancPluginChangeType_JobSuccess ORTHANC_PLUGIN_SINCE_SDK("1.7.2") = 17,
849  OrthancPluginChangeType_JobFailure ORTHANC_PLUGIN_SINCE_SDK("1.7.2") = 18,
851  _OrthancPluginChangeType_INTERNAL = 0x7fffffff
853 
854 
859  typedef enum
860  {
865  OrthancPluginCompressionType_None ORTHANC_PLUGIN_SINCE_SDK("1.12.8") = 4,
867  _OrthancPluginCompressionType_INTERNAL = 0x7fffffff
869 
870 
875  typedef enum
876  {
881  _OrthancPluginImageFormat_INTERNAL = 0x7fffffff
883 
884 
889  typedef enum
890  {
926  _OrthancPluginValueRepresentation_INTERNAL = 0x7fffffff
928 
929 
935  typedef enum
936  {
941  _OrthancPluginDicomToJsonFormat_INTERNAL = 0x7fffffff
943 
944 
950  typedef enum
951  {
959  OrthancPluginDicomToJsonFlags_StopAfterPixelData ORTHANC_PLUGIN_SINCE_SDK("1.9.1") = (1 << 6),
960  OrthancPluginDicomToJsonFlags_SkipGroupLengths ORTHANC_PLUGIN_SINCE_SDK("1.9.1") = (1 << 7),
962  _OrthancPluginDicomToJsonFlags_INTERNAL = 0x7fffffff
964 
965 
971  typedef enum
972  {
973  OrthancPluginCreateDicomFlags_None ORTHANC_PLUGIN_SINCE_SDK("1.2.0") = 0,
977  _OrthancPluginCreateDicomFlags_INTERNAL = 0x7fffffff
979 
980 
986  typedef enum
987  {
993  _OrthancPluginIdentifierConstraint_INTERNAL = 0x7fffffff
995 
996 
1001  typedef enum
1002  {
1009  _OrthancPluginConstraintType_INTERNAL = 0x7fffffff
1011 
1012 
1016  typedef enum
1017  {
1023  OrthancPluginInstanceOrigin_WebDav ORTHANC_PLUGIN_SINCE_SDK("1.8.0") = 6,
1025  _OrthancPluginInstanceOrigin_INTERNAL = 0x7fffffff
1027 
1028 
1032  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1033  {
1038 
1039 
1046  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.4.2")
1047  {
1053 
1054 
1058  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1059  {
1069 
1070 
1076  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.5.4")
1077  {
1081  OrthancPluginDicomWebBinaryMode_ArrayOfValues ORTHANC_PLUGIN_SINCE_SDK("1.13.0") = 3
1083 
1084 
1090  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.6.0")
1091  {
1096 
1101 
1107 
1113 
1119 
1126 
1133 
1134 
1138  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.10.0")
1139  {
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  {
1189  _OrthancPluginLogLevel_INTERNAL = 0x7fffffff
1191 
1192 
1199  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.4")
1200  {
1209  _OrthancPluginLogCategory_INTERNAL = 0x7fffffff
1211 
1212 
1216  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1217  {
1224  _OrthancPluginStoreStatus_INTERNAL = 0x7fffffff
1226 
1227 
1231  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.8")
1232  {
1236  _OrthancPluginQueueOrigin_INTERNAL = 0x7fffffff
1238 
1239 
1243  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
1244  {
1248  _OrthancPluginStableStatus_INTERNAL = 0x7fffffff
1250 
1251 
1255  typedef enum ORTHANC_PLUGIN_SINCE_SDK("1.12.9")
1256  {
1262  _OrthancPluginHttpAuthenticationStatus_INTERNAL = 0x7fffffff
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 
1426  OrthancPluginRestOutput* output,
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 
1731  OrthancPluginHttpMethod method,
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 
1770  OrthancPluginHttpMethod method,
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")
1904  typedef void* (*OrthancPluginMoveCallback2) (
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 
2247  typedef struct
2248  {
2249  uint16_t group;
2250  uint16_t element;
2252  uint32_t minMultiplicity;
2253  uint32_t maxMultiplicity;
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,
2433  OrthancPluginMemoryBuffer* buffer)
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;
2508  OrthancPluginRestCallback callback;
2509  } _OrthancPluginRestCallback;
2510 
2532  ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterRestCallback(
2533  OrthancPluginContext* context,
2534  const char* pathRegularExpression,
2535  OrthancPluginRestCallback callback)
2536  {
2537  _OrthancPluginRestCallback params;
2538  params.pathRegularExpression = pathRegularExpression;
2539  params.callback = callback;
2540  context->InvokeService(context, _OrthancPluginService_RegisterRestCallback, &params);
2541  }
2542 
2543 
2544 
2572  ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterRestCallbackNoLock(
2573  OrthancPluginContext* context,
2574  const char* pathRegularExpression,
2575  OrthancPluginRestCallback callback)
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  {
2624  OrthancPluginRestOutput* output;
2625  const void* answer;
2626  uint32_t answerSize;
2627  const char* mimeType;
2628  } _OrthancPluginAnswerBuffer;
2629 
2642  ORTHANC_PLUGIN_INLINE void OrthancPluginAnswerBuffer(
2643  OrthancPluginContext* context,
2644  OrthancPluginRestOutput* output,
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  {
2660  OrthancPluginRestOutput* output;
2661  OrthancPluginPixelFormat format;
2662  uint32_t width;
2663  uint32_t height;
2664  uint32_t pitch;
2665  const void* buffer;
2666  } _OrthancPluginCompressAndAnswerPngImage;
2667 
2668  typedef struct
2669  {
2670  OrthancPluginRestOutput* output;
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,
2701  OrthancPluginRestOutput* output,
2702  OrthancPluginPixelFormat format,
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  {
2724  OrthancPluginMemoryBuffer* target;
2725  const char* instanceId;
2726  } _OrthancPluginGetDicomForInstance;
2727 
2741  OrthancPluginContext* context,
2742  OrthancPluginMemoryBuffer* target,
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  {
2755  OrthancPluginMemoryBuffer* target;
2756  const char* uri;
2757  } _OrthancPluginRestApiGet;
2758 
2774  OrthancPluginContext* context,
2775  OrthancPluginMemoryBuffer* target,
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,
2805  OrthancPluginMemoryBuffer* target,
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  {
2818  OrthancPluginMemoryBuffer* target;
2819  const char* uri;
2820  const void* body;
2821  uint32_t bodySize;
2822  } _OrthancPluginRestApiPostPut;
2823 
2841  OrthancPluginContext* context,
2842  OrthancPluginMemoryBuffer* target,
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,
2877  OrthancPluginMemoryBuffer* target,
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,
2954  OrthancPluginMemoryBuffer* target,
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,
2990  OrthancPluginMemoryBuffer* target,
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  {
3007  OrthancPluginRestOutput* output;
3008  const char* argument;
3009  } _OrthancPluginOutputPlusArgument;
3010 
3022  ORTHANC_PLUGIN_INLINE void OrthancPluginRedirect(
3023  OrthancPluginContext* context,
3024  OrthancPluginRestOutput* output,
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 
3124  ORTHANC_PLUGIN_INLINE char* OrthancPluginLookupStudyWithAccessionNumber(
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  {
3219  OrthancPluginRestOutput* output;
3220  uint16_t status;
3221  } _OrthancPluginSendHttpStatusCode;
3222 
3239  ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatusCode(
3240  OrthancPluginContext* context,
3241  OrthancPluginRestOutput* output,
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,
3264  OrthancPluginRestOutput* output,
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,
3287  OrthancPluginRestOutput* output,
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  {
3299  OrthancPluginRestOutput* output;
3300  const char* key;
3301  const char* value;
3302  } _OrthancPluginSetHttpHeader;
3303 
3315  ORTHANC_PLUGIN_INLINE void OrthancPluginSetCookie(
3316  OrthancPluginContext* context,
3317  OrthancPluginRestOutput* output,
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,
3342  OrthancPluginRestOutput* output,
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  {
4178  OrthancPluginRestOutput* output;
4179  const char* subType;
4180  const char* contentType;
4181  } _OrthancPluginStartMultipartAnswer;
4182 
4197  OrthancPluginContext* context,
4198  OrthancPluginRestOutput* output,
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,
4227  OrthancPluginRestOutput* output,
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  {
4243  OrthancPluginMemoryBuffer* target;
4244  const void* source;
4245  uint32_t size;
4246  OrthancPluginCompressionType compression;
4247  uint8_t uncompress;
4248  } _OrthancPluginBufferCompression;
4249 
4250 
4268  OrthancPluginContext* context,
4269  OrthancPluginMemoryBuffer* target,
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  {
4289  OrthancPluginMemoryBuffer* target;
4290  const char* path;
4291  } _OrthancPluginReadFile;
4292 
4305  OrthancPluginContext* context,
4306  OrthancPluginMemoryBuffer* target,
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;
4353  OrthancPluginErrorCode error;
4354  } _OrthancPluginGetErrorDescription;
4355 
4366  ORTHANC_PLUGIN_INLINE const char* OrthancPluginGetErrorDescription(
4367  OrthancPluginContext* context,
4368  OrthancPluginErrorCode error)
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  {
4391  OrthancPluginRestOutput* output;
4392  uint16_t status;
4393  const void* body;
4394  uint32_t bodySize;
4395  } _OrthancPluginSendHttpStatus;
4396 
4419  ORTHANC_PLUGIN_INLINE void OrthancPluginSendHttpStatus(
4420  OrthancPluginContext* context,
4421  OrthancPluginRestOutput* output,
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  {
4459  OrthancPluginPixelFormat target;
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;
4617  OrthancPluginImageFormat format;
4618  } _OrthancPluginUncompressImage;
4619 
4620 
4634  OrthancPluginContext* context,
4635  const void* data,
4636  uint32_t size,
4637  OrthancPluginImageFormat format)
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  {
4690  OrthancPluginMemoryBuffer* target;
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,
4722  OrthancPluginMemoryBuffer* target,
4723  OrthancPluginPixelFormat format,
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,
4767  OrthancPluginMemoryBuffer* target,
4768  OrthancPluginPixelFormat format,
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 
4812  ORTHANC_PLUGIN_INLINE void OrthancPluginCompressAndAnswerJpegImage(
4813  OrthancPluginContext* context,
4814  OrthancPluginRestOutput* output,
4815  OrthancPluginPixelFormat format,
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  {
4839  OrthancPluginMemoryBuffer* target;
4840  OrthancPluginHttpMethod method;
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,
4867  OrthancPluginMemoryBuffer* target,
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,
4905  OrthancPluginMemoryBuffer* target,
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,
4947  OrthancPluginMemoryBuffer* target,
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  {
5258  OrthancPluginMemoryBuffer* target;
5259  OrthancPluginStorageArea* storageArea;
5260  const char* uuid;
5262  } _OrthancPluginStorageAreaRead;
5263 
5264 
5283  ORTHANC_PLUGIN_DEPRECATED ORTHANC_PLUGIN_INLINE OrthancPluginErrorCode OrthancPluginStorageAreaRead(
5284  OrthancPluginContext* context,
5285  OrthancPluginMemoryBuffer* target,
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  {
5369  OrthancPluginErrorCode target;
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  {
5641  OrthancPluginMemoryBuffer* target;
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,
5670  OrthancPluginMemoryBuffer* target,
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;
5800  OrthancPluginMemoryBuffer* target;
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,
5859  OrthancPluginMemoryBuffer* target,
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  {
5908  OrthancPluginMemoryBuffer* target;
5909  const char* json;
5910  const OrthancPluginImage* pixelData;
5912  } _OrthancPluginCreateDicom;
5913 
5940  OrthancPluginContext* context,
5941  OrthancPluginMemoryBuffer* target,
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;
5990  OrthancPluginPixelFormat format;
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,
6015  OrthancPluginPixelFormat format,
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,
6058  OrthancPluginPixelFormat format,
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  {
6245  OrthancPluginRestOutput* output;
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,
6276  OrthancPluginRestOutput* output,
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;
6330  OrthancPluginHttpMethod method;
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,
6394  OrthancPluginHttpMethod method,
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  {
6470  OrthancPluginFindCallback callback;
6471  } _OrthancPluginFindCallback;
6472 
6484  ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6486  OrthancPluginContext* context,
6487  OrthancPluginFindCallback callback)
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  {
6718  OrthancPluginMoveCallback callback;
6719  OrthancPluginGetMoveSize getMoveSize;
6720  OrthancPluginApplyMove applyMove;
6721  OrthancPluginFreeMove freeMove;
6722  } _OrthancPluginMoveCallback;
6723 
6737  ORTHANC_PLUGIN_SINCE_SDK("1.1.0")
6739  OrthancPluginContext* context,
6740  OrthancPluginMoveCallback callback,
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;
7162  OrthancPluginHttpMethod method;
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,
7216  OrthancPluginHttpMethod method,
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;
7258  OrthancPluginJobStep step;
7259  OrthancPluginJobStop stop;
7260  OrthancPluginJobReset reset;
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,
7304  OrthancPluginJobStep step,
7305  OrthancPluginJobStop stop,
7306  OrthancPluginJobReset reset)
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;
7346  OrthancPluginJobStep step;
7347  OrthancPluginJobStop stop;
7348  OrthancPluginJobReset reset;
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,
7391  OrthancPluginJobStep step,
7392  OrthancPluginJobStop stop,
7393  OrthancPluginJobReset reset)
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  {
7532  OrthancPluginRestOutput* output;
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,
7557  OrthancPluginRestOutput* output,
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;
7988  OrthancPluginHttpMethod method;
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,
8065  OrthancPluginHttpMethod method,
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")
8243  ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterChunkedRestCallback(
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")
8687  ORTHANC_PLUGIN_INLINE char* OrthancPluginGetInstanceTransferSyntaxUid(
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  {
8754  OrthancPluginDicomInstance** target;
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,
8894  OrthancPluginMemoryBuffer* target,
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,
9002  OrthancPluginMemoryBuffer* target,
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  {
9205  OrthancPluginMemoryBuffer* target;
9206  uint32_t size;
9207  } _OrthancPluginCreateMemoryBuffer;
9208 
9226  ORTHANC_PLUGIN_SINCE_SDK("1.7.0")
9228  OrthancPluginContext* context,
9229  OrthancPluginMemoryBuffer* target,
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,
9276  &params) != OrthancPluginErrorCode_Success)
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,
9402  OrthancPluginMemoryBuffer* target,
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;
9428  OrthancPluginHttpMethod method;
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,
9474  OrthancPluginHttpMethod method,
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 
9534  OrthancPluginWebDavCollection* collection,
9535  const char* name,
9536  uint64_t size,
9537  const char* mimeType,
9538  const char* dateTime);
9539 
9540 
9555  OrthancPluginWebDavCollection* collection,
9556  const char* name,
9557  const char* dateTime);
9558 
9559 
9582  OrthancPluginWebDavCollection* collection,
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 */
9629  OrthancPluginWebDavCollection* collection,
9631  OrthancPluginWebDavAddFolder addFolder,
9632  uint32_t pathSize,
9633  const char* const* pathItems,
9634  void* payload);
9635 
9636 
9654  OrthancPluginWebDavCollection* collection,
9655  OrthancPluginWebDavRetrieveFile retrieveFile,
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 
9855  OrthancPluginMemoryBuffer64* response,
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  {
9912  OrthancPluginDicomInstance** target;
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;
10027  OrthancPluginLogLevel level;
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,
10052  OrthancPluginLogLevel level)
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  {
10067  OrthancPluginRestOutput* output;
10068  const char* contentType;
10069  } _OrthancPluginStartStreamAnswer;
10070 
10083  ORTHANC_PLUGIN_SINCE_SDK("1.12.6")
10085  OrthancPluginContext* context,
10086  OrthancPluginRestOutput* output,
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,
10114  OrthancPluginRestOutput* output,
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;
10334  OrthancPluginMemoryBuffer* target;
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  {
10509  OrthancPluginMemoryBuffer* target;
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;
10574  OrthancPluginMemoryBuffer* target;
10575  const char* queueId;
10576  OrthancPluginQueueOrigin origin;
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;
10888  OrthancPluginMemoryBuffer* target;
10889  const char* queueId;
10890  OrthancPluginQueueOrigin origin;
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  {
11107  OrthancPluginFindCallback2 callback;
11108  } _OrthancPluginFindCallback2;
11109 
11121  ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11123  OrthancPluginContext* context,
11124  OrthancPluginFindCallback2 callback)
11125  {
11126  _OrthancPluginFindCallback2 params;
11127  params.callback = callback;
11128 
11129  return context->InvokeService(context, _OrthancPluginService_RegisterFindCallback2, &params);
11130  }
11131 
11132 
11133  typedef struct
11134  {
11135  OrthancPluginMoveCallback2 callback;
11136  OrthancPluginGetMoveSize getMoveSize;
11137  OrthancPluginApplyMove applyMove;
11138  OrthancPluginFreeMove freeMove;
11139  } _OrthancPluginMoveCallback2;
11140 
11154  ORTHANC_PLUGIN_SINCE_SDK("1.12.10")
11156  OrthancPluginContext* context,
11157  OrthancPluginMoveCallback2 callback,
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
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
OrthancPluginJob *(* OrthancPluginJobsUnserializer)(const char *jobType, const char *serialized)
Callback executed to unserialize a custom job.
Definition: OrthancCPlugin.h:2130
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
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
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
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
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(* 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
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 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
OrthancPluginErrorCode OrthancPluginRegisterFindCallback2(OrthancPluginContext *context, OrthancPluginFindCallback2 callback)
Register a callback to handle C-Find requests (v2).
Definition: OrthancCPlugin.h:11122
OrthancPluginErrorCode OrthancPluginWorklistMarkIncomplete(OrthancPluginContext *context, OrthancPluginWorklistAnswers *answers)
Mark the set of worklist answers as incomplete.
Definition: OrthancCPlugin.h:5780
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 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
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 * OrthancPluginGetConnectionRemoteIp(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the remote IP of a DICOM connection.
Definition: OrthancCPlugin.h:11019
struct _OrthancPluginDicomConnection_t OrthancPluginDicomConnection
Opaque structure that represents the parameters of a DICOM connection.
Definition: OrthancCPlugin.h:1417
const char * OrthancPluginGetConnectionRemoteAet(OrthancPluginContext *context, const OrthancPluginDicomConnection *connection)
Get the remote AET of a DICOM connection.
Definition: OrthancCPlugin.h:10984
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
char * OrthancPluginGetInstanceTransferSyntaxUid(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the transfer syntax of a DICOM file.
Definition: OrthancCPlugin.h:8687
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
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
const void * OrthancPluginGetInstanceData(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the data of a DICOM file.
Definition: OrthancCPlugin.h:3442
OrthancPluginDicomInstance * OrthancPluginCreateDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size)
Parse a DICOM instance.
Definition: OrthancCPlugin.h:8774
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
uint32_t OrthancPluginGetInstanceFramesCount(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the number of frames in a DICOM instance.
Definition: OrthancCPlugin.h:8851
OrthancPluginImage * OrthancPluginGetInstanceDecodedFrame(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition: OrthancCPlugin.h:8921
OrthancPluginDicomInstance * OrthancPluginLoadDicomInstance(OrthancPluginContext *context, const char *instanceId, OrthancPluginLoadDicomInstanceMode mode)
Load a DICOM instance from the Orthanc server.
Definition: OrthancCPlugin.h:9931
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 * OrthancPluginGetInstanceSimplifiedJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file (with simplification).
Definition: OrthancCPlugin.h:3516
char * OrthancPluginGetInstanceJson(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the DICOM tag hierarchy as a JSON file.
Definition: OrthancCPlugin.h:3478
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
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
OrthancPluginDicomInstance * OrthancPluginTranscodeDicomInstance(OrthancPluginContext *context, const void *buffer, uint32_t size, const char *transferSyntax)
Parse and transcode a DICOM instance.
Definition: OrthancCPlugin.h:8961
const char * OrthancPluginGetInstanceRemoteAet(OrthancPluginContext *context, const OrthancPluginDicomInstance *instance)
Get the AET of a DICOM instance.
Definition: OrthancCPlugin.h:3376
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
OrthancPluginImage * OrthancPluginConvertPixelFormat(OrthancPluginContext *context, const OrthancPluginImage *source, OrthancPluginPixelFormat targetFormat)
Change the pixel format of an image.
Definition: OrthancCPlugin.h:5021
OrthancPluginPixelFormat OrthancPluginGetImagePixelFormat(OrthancPluginContext *context, const OrthancPluginImage *image)
Return the pixel format of an image.
Definition: OrthancCPlugin.h:4455
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 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 * OrthancPluginCreateImage(OrthancPluginContext *context, OrthancPluginPixelFormat format, uint32_t width, uint32_t height)
Create an image.
Definition: OrthancCPlugin.h:6013
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
void * OrthancPluginGetImageBuffer(OrthancPluginContext *context, const OrthancPluginImage *image)
Return a pointer to the content of an image.
Definition: OrthancCPlugin.h:4590
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
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
OrthancPluginImage * OrthancPluginDecodeDicomImage(OrthancPluginContext *context, const void *buffer, uint32_t bufferSize, uint32_t frameIndex)
Decode one frame from a DICOM instance.
Definition: OrthancCPlugin.h:6102
uint32_t OrthancPluginGetFontSize(OrthancPluginContext *context, uint32_t fontIndex)
Return the size of a font.
Definition: OrthancCPlugin.h:5128
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 * OrthancPluginLookupStudy(OrthancPluginContext *context, const char *studyUID)
Look for a study.
Definition: OrthancCPlugin.h:3089
OrthancPluginErrorCode OrthancPluginSetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *value)
Set the value of a global property.
Definition: OrthancCPlugin.h:4025
char * OrthancPluginGetGlobalProperty(OrthancPluginContext *context, int32_t property, const char *defaultValue)
Get the value of a global property.
Definition: OrthancCPlugin.h:3986
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 * OrthancPluginLookupSeries(OrthancPluginContext *context, const char *seriesUID)
Look for a series.
Definition: OrthancCPlugin.h:3159
char * OrthancPluginLookupStudyWithAccessionNumber(OrthancPluginContext *context, const char *accessionNumber)
Look for a study, using the accession number.
Definition: OrthancCPlugin.h:3124
char * OrthancPluginGenerateRestApiAuthorizationToken(OrthancPluginContext *context)
Generate a token to grant full access to the REST API of Orthanc.
Definition: OrthancCPlugin.h:9266
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
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
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
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
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
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 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
const char *(* OrthancPluginJobGetSerialized)(void *job)
Callback to serialize one custom job.
Definition: OrthancCPlugin.h:2037
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
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
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
OrthancPluginConstraintType
Definition: OrthancCPlugin.h:1002
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
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
const char * OrthancPluginAutodetectMimeType(OrthancPluginContext *context, const char *path)
Detect the MIME type of a file.
Definition: OrthancCPlugin.h:7588
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
const char * OrthancPluginGetPeerName(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the symbolic name of an Orthanc peer.
Definition: OrthancCPlugin.h:7038
OrthancPluginErrorCode OrthancPluginSetStableStatus(OrthancPluginContext *context, uint8_t *statusHasChanged, const char *resourceId, OrthancPluginStableStatus stableStatus)
Change the "Stable" status of a resource.
Definition: OrthancCPlugin.h:10666
char * OrthancPluginGetCommandLineArgument(OrthancPluginContext *context, uint32_t argument)
Get the value of a command-line argument.
Definition: OrthancCPlugin.h:4090
const char * OrthancPluginGetErrorDescription(OrthancPluginContext *context, OrthancPluginErrorCode error)
Get the description of a given error code.
Definition: OrthancCPlugin.h:4366
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
void OrthancPluginFreeKeysValuesIterator(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Free an iterator over a key-value store.
Definition: OrthancCPlugin.h:10428
char * OrthancPluginGenerateUuid(OrthancPluginContext *context)
Generate an UUID.
Definition: OrthancCPlugin.h:6445
void OrthancPluginFreeJob(OrthancPluginContext *context, OrthancPluginJob *job)
Free a custom job.
Definition: OrthancCPlugin.h:7439
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 * OrthancPluginGetPeerUrl(OrthancPluginContext *context, const OrthancPluginPeers *peers, uint32_t peerIndex)
Get the base URL of an Orthanc peer.
Definition: OrthancCPlugin.h:7080
OrthancPluginPeers * OrthancPluginGetPeers(OrthancPluginContext *context)
Return the list of available Orthanc peers.
Definition: OrthancCPlugin.h:6923
OrthancPluginMetricsType
Definition: OrthancCPlugin.h:1059
char * OrthancPluginSubmitJob(OrthancPluginContext *context, OrthancPluginJob *job, int32_t priority)
Submit a new job to the jobs engine of Orthanc.
Definition: OrthancCPlugin.h:7472
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 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
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
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 * OrthancPluginGetDatabaseServerIdentifier(OrthancPluginContext *context)
Gets the DatabaseServerIdentifier.
Definition: OrthancCPlugin.h:9792
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
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
char * OrthancPluginComputeMd5(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute an MD5 hash.
Definition: OrthancCPlugin.h:6148
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
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
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
OrthancPluginErrorCode OrthancPluginCreateMemoryBuffer64(OrthancPluginContext *context, OrthancPluginMemoryBuffer64 *target, uint64_t size)
Create a 64-bit memory buffer.
Definition: OrthancCPlugin.h:9313
OrthancPluginLoadDicomInstanceMode
Definition: OrthancCPlugin.h:1153
const char * OrthancPluginKeysValuesIteratorGetKey(OrthancPluginContext *context, OrthancPluginKeysValuesIterator *iterator)
Get the current key of an iterator over a key-value store.
Definition: OrthancCPlugin.h:10486
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
OrthancPluginValueRepresentation
Definition: OrthancCPlugin.h:890
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
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 * OrthancPluginGetConfigurationPath(OrthancPluginContext *context)
Return the path to the configuration file(s).
Definition: OrthancCPlugin.h:3742
const void *(* OrthancPluginChunkedClientRequestGetChunkData)(void *request)
Callback to read the current chunk of the request body during a chunked transfer.
Definition: OrthancCPlugin.h:7963
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 * OrthancPluginGetOrthancDirectory(OrthancPluginContext *context)
Return the directory containing the Orthanc.
Definition: OrthancCPlugin.h:3707
OrthancPluginFindMatcher * OrthancPluginCreateFindMatcher(OrthancPluginContext *context, const void *query, uint32_t size)
Create a C-Find matcher.
Definition: OrthancCPlugin.h:6778
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
OrthancPluginHttpMethod
Definition: OrthancCPlugin.h:369
char * OrthancPluginGetConfiguration(OrthancPluginContext *context)
Return the content of the configuration file(s).
Definition: OrthancCPlugin.h:4155
void OrthancPluginSetRootUri(OrthancPluginContext *context, const char *uri)
Set the URI where the plugin provides its Web interface.
Definition: OrthancCPlugin.h:3823
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
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
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
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
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
char * OrthancPluginComputeSha1(OrthancPluginContext *context, const void *buffer, uint32_t size)
Compute a SHA-1 hash.
Definition: OrthancCPlugin.h:6184
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
const char *(* OrthancPluginJobGetContent)(void *job)
Callback to retrieve the content of one custom job.
Definition: OrthancCPlugin.h:1999
OrthancPluginErrorCode OrthancPluginSetCurrentThreadName(OrthancPluginContext *context, const char *threadName)
Set the name of the current thread.
Definition: OrthancCPlugin.h:10011
char * OrthancPluginEncodeDicomWebJson(OrthancPluginContext *context, const void *dicom, uint32_t dicomSize, OrthancPluginDicomWebBinaryCallback callback)
Convert a DICOM instance to DICOMweb JSON.
Definition: OrthancCPlugin.h:7704
char * OrthancPluginGetOrthancPath(OrthancPluginContext *context)
Return the path to the Orthanc executable.
Definition: OrthancCPlugin.h:3677
OrthancPluginErrorCode(* OrthancPluginJobReset)(void *job)
Callback executed once one stopped custom job is started again.
Definition: OrthancCPlugin.h:2114
struct _OrthancPluginContext_t OrthancPluginContext
Data structure that contains information about the Orthanc core.
OrthancPluginContentType
Definition: OrthancCPlugin.h:797
void OrthancPluginSetDescription(OrthancPluginContext *context, const char *description)
Set a description for this plugin.
Definition: OrthancCPlugin.h:3876
OrthancPluginStableStatus
Definition: OrthancCPlugin.h:1244
@ 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