comparison Core/DicomParsing/FromDcmtkBridge.cpp @ 2830:ab0fd5923c1d

fix
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 20 Sep 2018 11:07:38 +0200
parents 47d812308d63
children b51233f03e7e
comparison
equal deleted inserted replaced
2829:61fdb06e389a 2830:ab0fd5923c1d
1712 1712
1713 for (Json::Value::ArrayIndex i = 0; i < value.size(); i++) 1713 for (Json::Value::ArrayIndex i = 0; i < value.size(); i++)
1714 { 1714 {
1715 std::auto_ptr<DcmItem> item(new DcmItem); 1715 std::auto_ptr<DcmItem> item(new DcmItem);
1716 1716
1717 Json::Value::Members members = value[i].getMemberNames(); 1717 switch (value[i].type())
1718 for (Json::Value::ArrayIndex j = 0; j < members.size(); j++)
1719 { 1718 {
1720 item->insert(FromJson(ParseTag(members[j]), value[i][members[j]], decodeDataUriScheme, dicomEncoding)); 1719 case Json::objectValue:
1720 {
1721 Json::Value::Members members = value[i].getMemberNames();
1722 for (Json::Value::ArrayIndex j = 0; j < members.size(); j++)
1723 {
1724 item->insert(FromJson(ParseTag(members[j]), value[i][members[j]], decodeDataUriScheme, dicomEncoding));
1725 }
1726 }
1727
1728 case Json::arrayValue:
1729 // Lua cannot disambiguate between an empty dictionary
1730 // and an empty array
1731 if (value[i].size() != 0)
1732 {
1733 throw OrthancException(ErrorCode_BadParameterType);
1734 }
1735 break;
1736
1737 default:
1738 throw OrthancException(ErrorCode_BadParameterType);
1721 } 1739 }
1722 1740
1723 sequence->append(item.release()); 1741 sequence->append(item.release());
1724 } 1742 }
1725 1743