comparison OrthancServer/OrthancRestApi/OrthancRestModalities.cpp @ 2441:67c01a6f151e

added ?expand argument to /peers and /modalities routes
author amazy
date Tue, 05 Dec 2017 12:43:28 +0100
parents 7284093111b0
children 878b59270859
comparison
equal deleted inserted replaced
2440:e11483be3f3b 2441:67c01a6f151e
790 static void ListPeers(RestApiGetCall& call) 790 static void ListPeers(RestApiGetCall& call)
791 { 791 {
792 OrthancRestApi::SetOfStrings peers; 792 OrthancRestApi::SetOfStrings peers;
793 Configuration::GetListOfOrthancPeers(peers); 793 Configuration::GetListOfOrthancPeers(peers);
794 794
795 Json::Value result = Json::arrayValue; 795 if (call.HasArgument("expand"))
796 for (OrthancRestApi::SetOfStrings::const_iterator 796 {
797 it = peers.begin(); it != peers.end(); ++it) 797 Json::Value result = Json::objectValue;
798 { 798 for (OrthancRestApi::SetOfStrings::const_iterator
799 result.append(*it); 799 it = peers.begin(); it != peers.end(); ++it)
800 } 800 {
801 801 WebServiceParameters peer;
802 call.GetOutput().AnswerJson(result); 802 Configuration::GetOrthancPeer(peer, *it);
803
804 Json::Value jsonPeer = Json::objectValue;
805 // only return the minimum information to identify the destination, do not include "security" information like passwords
806 jsonPeer["Url"] = peer.GetUrl();
807 if (!peer.GetUsername().empty())
808 {
809 jsonPeer["Username"] = peer.GetUsername();
810 }
811 result[*it] = jsonPeer;
812 }
813 call.GetOutput().AnswerJson(result);
814 }
815 else // if expand is not present, keep backward compatibility and return an array of peers
816 {
817 Json::Value result = Json::arrayValue;
818 for (OrthancRestApi::SetOfStrings::const_iterator
819 it = peers.begin(); it != peers.end(); ++it)
820 {
821 result.append(*it);
822 }
823
824 call.GetOutput().AnswerJson(result);
825 }
803 } 826 }
804 827
805 static void ListPeerOperations(RestApiGetCall& call) 828 static void ListPeerOperations(RestApiGetCall& call)
806 { 829 {
807 OrthancRestApi::SetOfStrings peers; 830 OrthancRestApi::SetOfStrings peers;
870 static void ListModalities(RestApiGetCall& call) 893 static void ListModalities(RestApiGetCall& call)
871 { 894 {
872 OrthancRestApi::SetOfStrings modalities; 895 OrthancRestApi::SetOfStrings modalities;
873 Configuration::GetListOfDicomModalities(modalities); 896 Configuration::GetListOfDicomModalities(modalities);
874 897
875 Json::Value result = Json::arrayValue; 898 if (call.HasArgument("expand"))
876 for (OrthancRestApi::SetOfStrings::const_iterator 899 {
877 it = modalities.begin(); it != modalities.end(); ++it) 900 Json::Value result = Json::objectValue;
878 { 901 for (OrthancRestApi::SetOfStrings::const_iterator
879 result.append(*it); 902 it = modalities.begin(); it != modalities.end(); ++it)
880 } 903 {
881 904 Json::Value modality;
882 call.GetOutput().AnswerJson(result); 905 Configuration::GetModalityUsingSymbolicName(*it).ToJson(modality);
906
907 result[*it] = modality;
908 }
909 call.GetOutput().AnswerJson(result);
910 }
911 else // if expand is not present, keep backward compatibility and return an array of modalities ids
912 {
913 Json::Value result = Json::arrayValue;
914 for (OrthancRestApi::SetOfStrings::const_iterator
915 it = modalities.begin(); it != modalities.end(); ++it)
916 {
917 result.append(*it);
918 }
919 call.GetOutput().AnswerJson(result);
920 }
883 } 921 }
884 922
885 923
886 static void ListModalityOperations(RestApiGetCall& call) 924 static void ListModalityOperations(RestApiGetCall& call)
887 { 925 {