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