comparison OrthancServer/OrthancRestApi/OrthancRestModalities.cpp @ 1819:84f0a118a72c worklists

new URI: /modalities/{id}/find-worklist
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 24 Nov 2015 17:20:23 +0100
parents 1b1d5470233f
children b1291df2f780
comparison
equal deleted inserted replaced
1818:1065401501fb 1819:84f0a118a72c
863 Configuration::RemovePeer(call.GetUriComponent("id", "")); 863 Configuration::RemovePeer(call.GetUriComponent("id", ""));
864 call.GetOutput().AnswerBuffer("", "text/plain"); 864 call.GetOutput().AnswerBuffer("", "text/plain");
865 } 865 }
866 866
867 867
868 static void DicomFindWorklist(RestApiPostCall& call)
869 {
870 ServerContext& context = OrthancRestApi::GetContext(call);
871
872 Json::Value json;
873 if (call.ParseJsonRequest(json))
874 {
875 const std::string& localAet = context.GetDefaultLocalApplicationEntityTitle();
876 RemoteModalityParameters remote = Configuration::GetModalityUsingSymbolicName(call.GetUriComponent("id", ""));
877
878 std::auto_ptr<ParsedDicomFile> query(ParsedDicomFile::CreateFromJson(json, static_cast<DicomFromJsonFlags>(0)));
879
880 DicomFindAnswers answers;
881
882 {
883 ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), localAet, remote);
884 locker.GetConnection().FindWorklist(answers, *query);
885 }
886
887 Json::Value result;
888 answers.ToJson(result, true);
889 call.GetOutput().AnswerJson(result);
890 }
891 }
892
893
868 void OrthancRestApi::RegisterModalities() 894 void OrthancRestApi::RegisterModalities()
869 { 895 {
870 Register("/modalities", ListModalities); 896 Register("/modalities", ListModalities);
871 Register("/modalities/{id}", ListModalityOperations); 897 Register("/modalities/{id}", ListModalityOperations);
872 Register("/modalities/{id}", UpdateModality); 898 Register("/modalities/{id}", UpdateModality);
896 Register("/peers", ListPeers); 922 Register("/peers", ListPeers);
897 Register("/peers/{id}", ListPeerOperations); 923 Register("/peers/{id}", ListPeerOperations);
898 Register("/peers/{id}", UpdatePeer); 924 Register("/peers/{id}", UpdatePeer);
899 Register("/peers/{id}", DeletePeer); 925 Register("/peers/{id}", DeletePeer);
900 Register("/peers/{id}/store", PeerStore); 926 Register("/peers/{id}/store", PeerStore);
927
928 Register("/modalities/{id}/find-worklist", DicomFindWorklist);
901 } 929 }
902 } 930 }