Mercurial > hg > orthanc
diff OrthancServer/FromDcmtkBridge.cpp @ 1735:a001f6226c7c
primitives for flags in dicom-to-json conversions
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 21 Oct 2015 16:25:09 +0200 |
parents | 18c02c6987d5 |
children | b953c6eef28d |
line wrap: on
line diff
--- a/OrthancServer/FromDcmtkBridge.cpp Wed Oct 21 14:28:57 2015 +0200 +++ b/OrthancServer/FromDcmtkBridge.cpp Wed Oct 21 16:25:09 2015 +0200 @@ -678,6 +678,7 @@ static void DatasetToJson(Json::Value& parent, DcmItem& item, DicomToJsonFormat format, + DicomToJsonFlags flags, unsigned int maxStringLength, Encoding encoding); @@ -685,6 +686,7 @@ void FromDcmtkBridge::ToJson(Json::Value& parent, DcmElement& element, DicomToJsonFormat format, + DicomToJsonFlags flags, unsigned int maxStringLength, Encoding encoding) { @@ -715,7 +717,7 @@ { DcmItem* child = sequence.getItem(i); Json::Value& v = target.append(Json::objectValue); - DatasetToJson(v, *child, format, maxStringLength, encoding); + DatasetToJson(v, *child, format, flags, maxStringLength, encoding); } } } @@ -724,6 +726,7 @@ static void DatasetToJson(Json::Value& parent, DcmItem& item, DicomToJsonFormat format, + DicomToJsonFlags flags, unsigned int maxStringLength, Encoding encoding) { @@ -732,7 +735,16 @@ for (unsigned long i = 0; i < item.card(); i++) { DcmElement* element = item.getElement(i); - FromDcmtkBridge::ToJson(parent, *element, format, maxStringLength, encoding); + if (element == NULL) + { + throw OrthancException(ErrorCode_InternalError); + } + + if ((flags & DicomToJsonFlags_IncludePrivateTags) || + !element->getTag().isPrivate()) + { + FromDcmtkBridge::ToJson(parent, *element, format, flags, maxStringLength, encoding); + } } } @@ -740,10 +752,11 @@ void FromDcmtkBridge::ToJson(Json::Value& target, DcmDataset& dataset, DicomToJsonFormat format, + DicomToJsonFlags flags, unsigned int maxStringLength) { target = Json::objectValue; - DatasetToJson(target, dataset, format, maxStringLength, DetectEncoding(dataset)); + DatasetToJson(target, dataset, format, flags, maxStringLength, DetectEncoding(dataset)); }