# HG changeset patch # User Sebastien Jodogne # Date 1560787442 -7200 # Node ID 954d15f24366e6c5f3a385f55f1d6bc199fed521 # Parent 6add197274b1a8fede4206038f6be96c78841b2a new function in SDK: OrthancPluginGetTagName() diff -r 6add197274b1 -r 954d15f24366 NEWS --- a/NEWS Mon Jun 17 09:44:45 2019 +0200 +++ b/NEWS Mon Jun 17 18:04:02 2019 +0200 @@ -15,6 +15,7 @@ * New functions in the SDK: - OrthancPluginHttpClientChunkedBody(): HTTP client for POST/PUT with a chunked body - OrthancPluginRegisterMultipartRestCallback(): HTTP server for POST/PUT with multipart body + - OrthancPluginGetTagName(): Retrieve the name of a DICOM tag from its group and element Maintenance ----------- diff -r 6add197274b1 -r 954d15f24366 Plugins/Engine/OrthancPlugins.cpp --- a/Plugins/Engine/OrthancPlugins.cpp Mon Jun 17 09:44:45 2019 +0200 +++ b/Plugins/Engine/OrthancPlugins.cpp Mon Jun 17 18:04:02 2019 +0200 @@ -2842,6 +2842,23 @@ } + void OrthancPlugins::GetTagName(const void* parameters) + { + const _OrthancPluginGetTagName& p = + *reinterpret_cast(parameters); + + std::string privateCreator; + + if (p.privateCreator != NULL) + { + privateCreator = p.privateCreator; + } + + DicomTag tag(p.group, p.element); + *p.result = CopyString(FromDcmtkBridge::GetTagName(tag, privateCreator)); + } + + void OrthancPlugins::ApplyCreateImage(_OrthancPluginService service, const void* parameters) { @@ -3677,6 +3694,10 @@ return true; } + case _OrthancPluginService_GetTagName: + GetTagName(parameters); + return true; + default: return false; } diff -r 6add197274b1 -r 954d15f24366 Plugins/Engine/OrthancPlugins.h --- a/Plugins/Engine/OrthancPlugins.h Mon Jun 17 09:44:45 2019 +0200 +++ b/Plugins/Engine/OrthancPlugins.h Mon Jun 17 18:04:02 2019 +0200 @@ -203,6 +203,8 @@ void ComputeHash(_OrthancPluginService service, const void* parameters); + void GetTagName(const void* parameters); + void SignalChangeInternal(OrthancPluginChangeType changeType, OrthancPluginResourceType resourceType, const char* resource); diff -r 6add197274b1 -r 954d15f24366 Plugins/Include/orthanc/OrthancCPlugin.h --- a/Plugins/Include/orthanc/OrthancCPlugin.h Mon Jun 17 09:44:45 2019 +0200 +++ b/Plugins/Include/orthanc/OrthancCPlugin.h Mon Jun 17 18:04:02 2019 +0200 @@ -433,6 +433,7 @@ _OrthancPluginService_EncodeDicomWebJson = 32, _OrthancPluginService_EncodeDicomWebXml = 33, _OrthancPluginService_ChunkedHttpClient = 34, /* New in Orthanc 1.5.7 */ + _OrthancPluginService_GetTagName = 35, /* New in Orthanc 1.5.7 */ /* Registration of callbacks */ _OrthancPluginService_RegisterRestCallback = 1000, @@ -6968,6 +6969,45 @@ context->InvokeService(context, _OrthancPluginService_RegisterChunkedRestCallback, ¶ms); } + + + + + typedef struct + { + char** result; + uint16_t group; + uint16_t element; + const char* privateCreator; + } _OrthancPluginGetTagName; + + ORTHANC_PLUGIN_INLINE char* OrthancPluginGetTagName( + OrthancPluginContext* context, + uint16_t group, + uint16_t element, + const char* privateCreator /* can be NULL */) + { + char* result; + + _OrthancPluginGetTagName params; + params.result = &result; + params.group = group; + params.element = element; + params.privateCreator = privateCreator; + + if (context->InvokeService(context, _OrthancPluginService_GetTagName, ¶ms) != OrthancPluginErrorCode_Success) + { + /* Error */ + return NULL; + } + else + { + return result; + } + } + + + #ifdef __cplusplus } #endif