Mercurial > hg > orthanc
diff OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp @ 4697:569d9ef165b1
Added "short", "simplify" and/or "full" options to control the format of DICOM tags wherever possible
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 18 Jun 2021 16:08:35 +0200 |
parents | da1edb7d6332 |
children | f0038043fb97 23aeffecb8cb |
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Thu Jun 17 15:47:21 2021 +0200 +++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Fri Jun 18 16:08:35 2021 +0200 @@ -724,16 +724,22 @@ bool StatelessDatabaseOperations::ExpandResource(Json::Value& target, const std::string& publicId, - ResourceType level) + ResourceType level, + DicomToJsonFormat format) { - class Operations : public ReadOnlyOperationsT4<bool&, Json::Value&, const std::string&, ResourceType> + class Operations : public ReadOnlyOperationsT5< + bool&, Json::Value&, const std::string&, ResourceType, DicomToJsonFormat> { private: static void MainDicomTagsToJson(ReadOnlyTransaction& transaction, Json::Value& target, int64_t resourceId, - ResourceType resourceType) + ResourceType resourceType, + DicomToJsonFormat format) { + static const char* const MAIN_DICOM_TAGS = "MainDicomTags"; + static const char* const PATIENT_MAIN_DICOM_TAGS = "PatientMainDicomTags"; + DicomMap tags; transaction.GetMainDicomTags(tags, resourceId); @@ -743,16 +749,16 @@ tags.ExtractStudyInformation(t1); tags.ExtractPatientInformation(t2); - target["MainDicomTags"] = Json::objectValue; - FromDcmtkBridge::ToJson(target["MainDicomTags"], t1, true); - - target["PatientMainDicomTags"] = Json::objectValue; - FromDcmtkBridge::ToJson(target["PatientMainDicomTags"], t2, true); + target[MAIN_DICOM_TAGS] = Json::objectValue; + FromDcmtkBridge::ToJson(target[MAIN_DICOM_TAGS], t1, format); + + target[PATIENT_MAIN_DICOM_TAGS] = Json::objectValue; + FromDcmtkBridge::ToJson(target[PATIENT_MAIN_DICOM_TAGS], t2, format); } else { - target["MainDicomTags"] = Json::objectValue; - FromDcmtkBridge::ToJson(target["MainDicomTags"], tags, true); + target[MAIN_DICOM_TAGS] = Json::objectValue; + FromDcmtkBridge::ToJson(target[MAIN_DICOM_TAGS], tags, format); } } @@ -949,7 +955,7 @@ // Record the remaining information target["ID"] = tuple.get<2>(); - MainDicomTagsToJson(transaction, target, internalId, type); + MainDicomTagsToJson(transaction, target, internalId, type, tuple.get<4>()); std::string tmp; @@ -982,7 +988,7 @@ bool found; Operations operations; - operations.Apply(*this, found, target, publicId, level); + operations.Apply(*this, found, target, publicId, level, format); return found; }