Mercurial > hg > orthanc
diff OrthancServer/Plugins/Engine/OrthancPlugins.cpp @ 4921:309fb4f02704
fix signature of OrthancPluginIncomingCStoreInstanceFilter
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 23 Feb 2022 11:09:43 +0100 |
parents | 676e03e69703 |
children | 47d734fa30f6 |
line wrap: on
line diff
--- a/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Wed Feb 23 09:30:53 2022 +0100 +++ b/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Wed Feb 23 11:09:43 2022 +0100 @@ -2260,8 +2260,9 @@ - uint16_t OrthancPlugins::FilterIncomingCStoreInstance(const DicomInstanceToStore& instance, - const Json::Value& simplified) + bool OrthancPlugins::FilterIncomingCStoreInstance(uint16_t& dimseStatus, + const DicomInstanceToStore& instance, + const Json::Value& simplified) { DicomInstanceFromCallback wrapped(instance); @@ -2271,20 +2272,26 @@ filter = pimpl_->incomingCStoreInstanceFilters_.begin(); filter != pimpl_->incomingCStoreInstanceFilters_.end(); ++filter) { - int32_t filterResult = (*filter) (reinterpret_cast<const OrthancPluginDicomInstance*>(&wrapped)); - - if (filterResult >= 0 && filterResult <= 0xFFFF) - { - return static_cast<uint16_t>(filterResult); + int32_t result = (*filter) (&dimseStatus, reinterpret_cast<const OrthancPluginDicomInstance*>(&wrapped)); + + if (result == 0) + { + // The instance must be discarded + return false; + } + else if (result == 1) + { + // The instance is accepted + return true; } else { - // The callback is only allowed to answer uint16_t + // Error throw OrthancException(ErrorCode_Plugin); } } - return STATUS_Success; + return true; // By default, the instance is accepted }