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 }