comparison OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp @ 4935:acd3f72e2a21 more-tags

split ExpandResource in 2: read from DB and serialize to json. This will allow us to merge requested tags from both the DB and the file system
author Alain Mazy <am@osimis.io>
date Thu, 10 Mar 2022 19:00:43 +0100
parents 43e613a7756b
children 8422e4f99a18
comparison
equal deleted inserted replaced
4934:94a7b681b340 4935:acd3f72e2a21
1294 return DicomTag(tag.getGTag(), tag.getETag()); 1294 return DicomTag(tag.getGTag(), tag.getETag());
1295 } 1295 }
1296 else 1296 else
1297 { 1297 {
1298 CLOG(INFO, DICOM) << "Unknown DICOM tag: \"" << name << "\""; 1298 CLOG(INFO, DICOM) << "Unknown DICOM tag: \"" << name << "\"";
1299 throw OrthancException(ErrorCode_UnknownDicomTag); 1299 throw OrthancException(ErrorCode_UnknownDicomTag, name, false);
1300 } 1300 }
1301 #endif 1301 #endif
1302 } 1302 }
1303 1303
1304 DicomTag FromDcmtkBridge::ParseTag(const std::string &name) 1304 DicomTag FromDcmtkBridge::ParseTag(const std::string &name)
1308 1308
1309 bool FromDcmtkBridge::HasTag(const DicomMap &fields, const std::string &tagName) 1309 bool FromDcmtkBridge::HasTag(const DicomMap &fields, const std::string &tagName)
1310 { 1310 {
1311 return fields.HasTag(ParseTag(tagName)); 1311 return fields.HasTag(ParseTag(tagName));
1312 } 1312 }
1313
1314
1315 // parses a list like "0010,0010;PatientBirthDate;0020,0020"
1316 void FromDcmtkBridge::ParseListOfTags(std::set<DicomTag>& result, const std::string& source)
1317 {
1318 result.clear();
1319
1320 std::vector<std::string> tokens;
1321 Toolbox::TokenizeString(tokens, source, ';');
1322
1323 for (std::vector<std::string>::const_iterator it = tokens.begin();
1324 it != tokens.end(); it++)
1325 {
1326 if (it->size() > 0)
1327 {
1328 DicomTag tag = FromDcmtkBridge::ParseTag(*it);
1329 result.insert(tag);
1330 }
1331 }
1332 }
1333
1313 1334
1314 const DicomValue &FromDcmtkBridge::GetValue(const DicomMap &fields, 1335 const DicomValue &FromDcmtkBridge::GetValue(const DicomMap &fields,
1315 const std::string &tagName) 1336 const std::string &tagName)
1316 { 1337 {
1317 return fields.GetValue(ParseTag(tagName)); 1338 return fields.GetValue(ParseTag(tagName));