Mercurial > hg > orthanc
comparison OrthancServer/OrthancInitialization.cpp @ 1772:53e045b5a8ec
MIME content type can be associated to custom attachments (cf. "UserContentType")
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 12 Nov 2015 14:36:27 +0100 |
parents | 57b9e6890482 |
children | 0001f8cd7849 |
comparison
equal
deleted
inserted
replaced
1771:8790488ae98b | 1772:53e045b5a8ec |
---|---|
250 const Json::Value& parameter = configuration_["UserMetadata"]; | 250 const Json::Value& parameter = configuration_["UserMetadata"]; |
251 | 251 |
252 Json::Value::Members members = parameter.getMemberNames(); | 252 Json::Value::Members members = parameter.getMemberNames(); |
253 for (size_t i = 0; i < members.size(); i++) | 253 for (size_t i = 0; i < members.size(); i++) |
254 { | 254 { |
255 std::string info = "\"" + members[i] + "\" = " + parameter[members[i]].toStyledString(); | 255 const std::string& name = members[i]; |
256 LOG(INFO) << "Registering user-defined metadata: " << info; | 256 |
257 | 257 if (!parameter[name].isInt()) |
258 if (!parameter[members[i]].asBool()) | 258 { |
259 { | 259 LOG(ERROR) << "Not a number in this user-defined metadata: " << name; |
260 LOG(ERROR) << "Not a number in this user-defined metadata: " << info; | |
261 throw OrthancException(ErrorCode_BadParameterType); | 260 throw OrthancException(ErrorCode_BadParameterType); |
262 } | 261 } |
263 | 262 |
264 int metadata = parameter[members[i]].asInt(); | 263 int metadata = parameter[name].asInt(); |
264 | |
265 LOG(INFO) << "Registering user-defined metadata: " << name << " (index " | |
266 << metadata << ")"; | |
265 | 267 |
266 try | 268 try |
267 { | 269 { |
268 RegisterUserMetadata(metadata, members[i]); | 270 RegisterUserMetadata(metadata, name); |
269 } | 271 } |
270 catch (OrthancException&) | 272 catch (OrthancException&) |
271 { | 273 { |
272 LOG(ERROR) << "Cannot register this user-defined metadata: " << info; | 274 LOG(ERROR) << "Cannot register this user-defined metadata: " << name; |
273 throw; | 275 throw; |
274 } | 276 } |
275 } | 277 } |
276 } | 278 } |
277 } | 279 } |
284 const Json::Value& parameter = configuration_["UserContentType"]; | 286 const Json::Value& parameter = configuration_["UserContentType"]; |
285 | 287 |
286 Json::Value::Members members = parameter.getMemberNames(); | 288 Json::Value::Members members = parameter.getMemberNames(); |
287 for (size_t i = 0; i < members.size(); i++) | 289 for (size_t i = 0; i < members.size(); i++) |
288 { | 290 { |
289 std::string info = "\"" + members[i] + "\" = " + parameter[members[i]].toStyledString(); | 291 const std::string& name = members[i]; |
290 LOG(INFO) << "Registering user-defined attachment type: " << info; | 292 std::string mime = "application/octet-stream"; |
291 | 293 |
292 if (!parameter[members[i]].asBool()) | 294 const Json::Value& value = parameter[name]; |
293 { | 295 int contentType; |
294 LOG(ERROR) << "Not a number in this user-defined attachment type: " << info; | 296 |
297 if (value.isArray() && | |
298 value.size() == 2 && | |
299 value[0].isInt() && | |
300 value[1].isString()) | |
301 { | |
302 contentType = value[0].asInt(); | |
303 mime = value[1].asString(); | |
304 } | |
305 else if (value.isInt()) | |
306 { | |
307 contentType = value.asInt(); | |
308 } | |
309 else | |
310 { | |
311 LOG(ERROR) << "Not a number in this user-defined attachment type: " << name; | |
295 throw OrthancException(ErrorCode_BadParameterType); | 312 throw OrthancException(ErrorCode_BadParameterType); |
296 } | 313 } |
297 | 314 |
298 int contentType = parameter[members[i]].asInt(); | 315 LOG(INFO) << "Registering user-defined attachment type: " << name << " (index " |
316 << contentType << ") with MIME type \"" << mime << "\""; | |
299 | 317 |
300 try | 318 try |
301 { | 319 { |
302 RegisterUserContentType(contentType, members[i]); | 320 RegisterUserContentType(contentType, name, mime); |
303 } | 321 } |
304 catch (OrthancException&) | 322 catch (OrthancException&) |
305 { | 323 { |
306 LOG(ERROR) << "Cannot register this user-defined attachment type: " << info; | |
307 throw; | 324 throw; |
308 } | 325 } |
309 } | 326 } |
310 } | 327 } |
311 } | 328 } |