Mercurial > hg > orthanc
comparison OrthancFramework/Sources/DicomFormat/DicomMap.cpp @ 4199:fbc49a65340a
cppcheck
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 16 Sep 2020 20:28:20 +0200 |
parents | bf7b9edf6b81 |
children | be2eca8b02e1 |
comparison
equal
deleted
inserted
replaced
4198:c671331ea1ef | 4199:fbc49a65340a |
---|---|
188 DicomTag2() : | 188 DicomTag2() : |
189 DicomTag(0, 0) // To make std::map<> happy | 189 DicomTag(0, 0) // To make std::map<> happy |
190 { | 190 { |
191 } | 191 } |
192 | 192 |
193 DicomTag2(const DicomTag& tag) : | 193 explicit DicomTag2(const DicomTag& tag) : |
194 DicomTag(tag) | 194 DicomTag(tag) |
195 { | 195 { |
196 } | 196 } |
197 }; | 197 }; |
198 } | 198 } |
210 | 210 |
211 for (size_t i = 0; i < size; i++) | 211 for (size_t i = 0; i < size; i++) |
212 { | 212 { |
213 assert(target.find(tags[i].name_) == target.end()); | 213 assert(target.find(tags[i].name_) == target.end()); |
214 | 214 |
215 target[tags[i].name_] = tags[i].tag_; | 215 target[tags[i].name_] = DicomTag2(tags[i].tag_); |
216 } | 216 } |
217 } | 217 } |
218 | 218 |
219 | 219 |
220 void DicomMap::SetValueInternal(uint16_t group, | 220 void DicomMap::SetValueInternal(uint16_t group, |
1228 if (value.type() == Json::arrayValue) | 1228 if (value.type() == Json::arrayValue) |
1229 { | 1229 { |
1230 bool supported = true; | 1230 bool supported = true; |
1231 | 1231 |
1232 std::string s; | 1232 std::string s; |
1233 for (Json::Value::ArrayIndex i = 0; i < value.size() && supported; i++) | 1233 for (Json::Value::ArrayIndex j = 0; j < value.size() && supported; j++) |
1234 { | 1234 { |
1235 if (!s.empty()) | 1235 if (!s.empty()) |
1236 { | 1236 { |
1237 s += '\\'; | 1237 s += '\\'; |
1238 } | 1238 } |
1239 | 1239 |
1240 switch (value[i].type()) | 1240 switch (value[j].type()) |
1241 { | 1241 { |
1242 case Json::objectValue: | 1242 case Json::objectValue: |
1243 if (vr == ValueRepresentation_PersonName && | 1243 if (vr == ValueRepresentation_PersonName && |
1244 value[i].type() == Json::objectValue) | 1244 value[j].type() == Json::objectValue) |
1245 { | 1245 { |
1246 if (value[i].isMember(ALPHABETIC) && | 1246 if (value[j].isMember(ALPHABETIC) && |
1247 value[i][ALPHABETIC].type() == Json::stringValue) | 1247 value[j][ALPHABETIC].type() == Json::stringValue) |
1248 { | 1248 { |
1249 s += value[i][ALPHABETIC].asString(); | 1249 s += value[j][ALPHABETIC].asString(); |
1250 } | 1250 } |
1251 | 1251 |
1252 bool hasIdeographic = false; | 1252 bool hasIdeographic = false; |
1253 | 1253 |
1254 if (value[i].isMember(IDEOGRAPHIC) && | 1254 if (value[j].isMember(IDEOGRAPHIC) && |
1255 value[i][IDEOGRAPHIC].type() == Json::stringValue) | 1255 value[j][IDEOGRAPHIC].type() == Json::stringValue) |
1256 { | 1256 { |
1257 s += '=' + value[i][IDEOGRAPHIC].asString(); | 1257 s += '=' + value[j][IDEOGRAPHIC].asString(); |
1258 hasIdeographic = true; | 1258 hasIdeographic = true; |
1259 } | 1259 } |
1260 | 1260 |
1261 if (value[i].isMember(PHONETIC) && | 1261 if (value[j].isMember(PHONETIC) && |
1262 value[i][PHONETIC].type() == Json::stringValue) | 1262 value[j][PHONETIC].type() == Json::stringValue) |
1263 { | 1263 { |
1264 if (!hasIdeographic) | 1264 if (!hasIdeographic) |
1265 { | 1265 { |
1266 s += '='; | 1266 s += '='; |
1267 } | 1267 } |
1268 | 1268 |
1269 s += '=' + value[i][PHONETIC].asString(); | 1269 s += '=' + value[j][PHONETIC].asString(); |
1270 } | 1270 } |
1271 } | 1271 } |
1272 else | 1272 else |
1273 { | 1273 { |
1274 // This is the case of sequences | 1274 // This is the case of sequences |
1276 } | 1276 } |
1277 | 1277 |
1278 break; | 1278 break; |
1279 | 1279 |
1280 case Json::stringValue: | 1280 case Json::stringValue: |
1281 s += value[i].asString(); | 1281 s += value[j].asString(); |
1282 break; | 1282 break; |
1283 | 1283 |
1284 case Json::intValue: | 1284 case Json::intValue: |
1285 s += boost::lexical_cast<std::string>(value[i].asInt()); | 1285 s += boost::lexical_cast<std::string>(value[j].asInt()); |
1286 break; | 1286 break; |
1287 | 1287 |
1288 case Json::uintValue: | 1288 case Json::uintValue: |
1289 s += boost::lexical_cast<std::string>(value[i].asUInt()); | 1289 s += boost::lexical_cast<std::string>(value[j].asUInt()); |
1290 break; | 1290 break; |
1291 | 1291 |
1292 case Json::realValue: | 1292 case Json::realValue: |
1293 s += boost::lexical_cast<std::string>(value[i].asDouble()); | 1293 s += boost::lexical_cast<std::string>(value[j].asDouble()); |
1294 break; | 1294 break; |
1295 | 1295 |
1296 default: | 1296 default: |
1297 break; | 1297 break; |
1298 } | 1298 } |