Mercurial > hg > orthanc
diff OrthancServer/OrthancFindRequestHandler.cpp @ 4007:884b55ce01f6
Private tags returned by C-FIND SCP
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 06 Jun 2020 14:50:21 +0200 |
parents | 2a170a8f1faf |
children | 914b15dedae3 |
line wrap: on
line diff
--- a/OrthancServer/OrthancFindRequestHandler.cpp Sat Jun 06 11:21:39 2020 +0200 +++ b/OrthancServer/OrthancFindRequestHandler.cpp Sat Jun 06 14:50:21 2020 +0200 @@ -302,7 +302,8 @@ const Json::Value* dicomAsJson, const DicomArray& query, const std::list<DicomTag>& sequencesToReturn, - const DicomMap* counters) + const DicomMap* counters, + const std::string& privateCreator) { DicomMap match; @@ -371,7 +372,8 @@ } else { - ParsedDicomFile dicom(result, GetDefaultDicomEncoding(), true /* be permissive, cf. issue #136 */); + ParsedDicomFile dicom(result, GetDefaultDicomEncoding(), + true /* be permissive, cf. issue #136 */, privateCreator); for (std::list<DicomTag>::const_iterator tag = sequencesToReturn.begin(); tag != sequencesToReturn.end(); ++tag) @@ -394,8 +396,7 @@ content.append(item); } - dicom.Replace(*tag, content, false, DicomReplaceMode_InsertIfAbsent, - "" /* no private creator */); + dicom.Replace(*tag, content, false, DicomReplaceMode_InsertIfAbsent, privateCreator); } } @@ -484,6 +485,7 @@ const DicomMap& query_; DicomArray queryAsArray_; const std::list<DicomTag>& sequencesToReturn_; + std::string privateCreator_; public: LookupVisitor(DicomFindAnswers& answers, @@ -499,6 +501,11 @@ sequencesToReturn_(sequencesToReturn) { answers_.SetComplete(false); + + { + OrthancConfiguration::ReaderLock lock; + privateCreator_ = lock.GetConfiguration().GetDefaultPrivateCreator(); + } } virtual bool IsDicomAsJsonNeeded() const @@ -540,7 +547,7 @@ std::unique_ptr<DicomMap> counters(ComputeCounters(context_, instanceId, level_, query_)); AddAnswer(answers_, mainDicomTags, dicomAsJson, - queryAsArray_, sequencesToReturn_, counters.get()); + queryAsArray_, sequencesToReturn_, counters.get(), privateCreator_); } };