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