comparison Framework/Targets/OrthancTarget.cpp @ 62:f45cec2c32e2

Speed-up in the Web viewer plugin
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 25 Nov 2016 18:21:15 +0100
parents 147bd6dc28db
children ff0ef01c332c
comparison
equal deleted inserted replaced
61:147bd6dc28db 62:f45cec2c32e2
38 void OrthancTarget::Write(const std::string& file) 38 void OrthancTarget::Write(const std::string& file)
39 { 39 {
40 Json::Value result; 40 Json::Value result;
41 OrthancPlugins::IOrthancConnection::RestApiPost(result, *orthanc_, "/instances", file); 41 OrthancPlugins::IOrthancConnection::RestApiPost(result, *orthanc_, "/instances", file);
42 42
43 std::string instanceId = DicomToolbox::GetMandatoryStringTag(result, "ID"); 43 if (result.type() != Json::objectValue ||
44 !result.isMember("ID") ||
45 result["ID"].type() != Json::stringValue)
46 {
47 throw Orthanc::OrthancException(Orthanc::ErrorCode_NetworkProtocol);
48 }
49
50 std::string instanceId = result["ID"].asString();
44 51
45 if (first_) 52 if (first_)
46 { 53 {
47 Json::Value instance; 54 Json::Value instance;
48 OrthancPlugins::IOrthancConnection::RestApiGet(instance, *orthanc_, "/instances/" + instanceId); 55 OrthancPlugins::IOrthancConnection::RestApiGet(instance, *orthanc_, "/instances/" + instanceId);
49 56
50 std::string seriesId = DicomToolbox::GetMandatoryStringTag(instance, "ParentSeries"); 57 if (instance.type() != Json::objectValue ||
58 !instance.isMember("ParentSeries") ||
59 instance["ParentSeries"].type() != Json::stringValue)
60 {
61 throw Orthanc::OrthancException(Orthanc::ErrorCode_NetworkProtocol);
62 }
63
64 std::string seriesId = instance["ParentSeries"].asString();
51 65
52 LOG(WARNING) << "ID of the whole-slide image series in Orthanc: " << seriesId; 66 LOG(WARNING) << "ID of the whole-slide image series in Orthanc: " << seriesId;
53 first_ = false; 67 first_ = false;
54 } 68 }
55 69