Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 3187:4bbadcd03966
refactoring retrieval of metadata from database
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 04 Feb 2019 12:06:19 +0100 |
parents | 8ea7c4546c3a |
children | 810772486249 |
comparison
equal
deleted
inserted
replaced
3184:5d1f5984dc41 | 3187:4bbadcd03966 |
---|---|
703 static void ListMetadata(RestApiGetCall& call) | 703 static void ListMetadata(RestApiGetCall& call) |
704 { | 704 { |
705 CheckValidResourceType(call); | 705 CheckValidResourceType(call); |
706 | 706 |
707 std::string publicId = call.GetUriComponent("id", ""); | 707 std::string publicId = call.GetUriComponent("id", ""); |
708 std::list<MetadataType> metadata; | 708 std::map<MetadataType, std::string> metadata; |
709 | 709 |
710 OrthancRestApi::GetIndex(call).ListAvailableMetadata(metadata, publicId); | 710 OrthancRestApi::GetIndex(call).GetAllMetadata(metadata, publicId); |
711 | 711 |
712 Json::Value result; | 712 Json::Value result; |
713 | 713 |
714 if (call.HasArgument("expand")) | 714 if (call.HasArgument("expand")) |
715 { | 715 { |
716 result = Json::objectValue; | 716 result = Json::objectValue; |
717 | 717 |
718 for (std::list<MetadataType>::const_iterator | 718 for (std::map<MetadataType, std::string>::const_iterator |
719 it = metadata.begin(); it != metadata.end(); ++it) | 719 it = metadata.begin(); it != metadata.end(); ++it) |
720 { | 720 { |
721 std::string value; | 721 std::string key = EnumerationToString(it->first); |
722 if (OrthancRestApi::GetIndex(call).LookupMetadata(value, publicId, *it)) | 722 result[key] = it->second; |
723 { | |
724 std::string key = EnumerationToString(*it); | |
725 result[key] = value; | |
726 } | |
727 } | 723 } |
728 } | 724 } |
729 else | 725 else |
730 { | 726 { |
731 result = Json::arrayValue; | 727 result = Json::arrayValue; |
732 | 728 |
733 for (std::list<MetadataType>::const_iterator | 729 for (std::map<MetadataType, std::string>::const_iterator |
734 it = metadata.begin(); it != metadata.end(); ++it) | 730 it = metadata.begin(); it != metadata.end(); ++it) |
735 { | 731 { |
736 result.append(EnumerationToString(*it)); | 732 result.append(EnumerationToString(it->first)); |
737 } | 733 } |
738 } | 734 } |
739 | 735 |
740 call.GetOutput().AnswerJson(result); | 736 call.GetOutput().AnswerJson(result); |
741 } | 737 } |