comparison OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 1139:f167b672db94

/tools/lookup URI to map DICOM UIDs to Orthanc identifiers
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 10 Sep 2014 16:38:28 +0200
parents 1701dcb6f554
children 94c5f6623b3a
comparison
equal deleted inserted replaced
1138:4c4fdee093de 1139:f167b672db94
779 { 779 {
780 GetModuleInternal(call, ResourceType_Study, ResourceType_Patient); 780 GetModuleInternal(call, ResourceType_Study, ResourceType_Patient);
781 } 781 }
782 782
783 783
784 static void Lookup(RestApiPostCall& call)
785 {
786 typedef std::list< std::pair<ResourceType, std::string> > Resources;
787
788 std::string tag = call.GetPostBody();
789 Resources resources;
790
791 OrthancRestApi::GetIndex(call).LookupTagValue(resources, tag);
792
793 Json::Value result = Json::arrayValue;
794
795 for (Resources::const_iterator it = resources.begin();
796 it != resources.end(); it++)
797 {
798 ResourceType type = it->first;
799 const std::string& id = it->second;
800
801 Json::Value item = Json::objectValue;
802 item["Type"] = EnumerationToString(type);
803 item["ID"] = id;
804 item["Path"] = GetBasePath(type, id);
805
806 result.append(item);
807 }
808
809 call.GetOutput().AnswerJson(result);
810 }
811
812
784 void OrthancRestApi::RegisterResources() 813 void OrthancRestApi::RegisterResources()
785 { 814 {
786 Register("/instances", ListResources<ResourceType_Instance>); 815 Register("/instances", ListResources<ResourceType_Instance>);
787 Register("/patients", ListResources<ResourceType_Patient>); 816 Register("/patients", ListResources<ResourceType_Patient>);
788 Register("/series", ListResources<ResourceType_Series>); 817 Register("/series", ListResources<ResourceType_Series>);
847 Register("/{resourceType}/{id}/attachments/{name}/md5", GetAttachmentMD5); 876 Register("/{resourceType}/{id}/attachments/{name}/md5", GetAttachmentMD5);
848 Register("/{resourceType}/{id}/attachments/{name}/size", GetAttachmentSize); 877 Register("/{resourceType}/{id}/attachments/{name}/size", GetAttachmentSize);
849 Register("/{resourceType}/{id}/attachments/{name}/verify-md5", VerifyAttachment); 878 Register("/{resourceType}/{id}/attachments/{name}/verify-md5", VerifyAttachment);
850 Register("/{resourceType}/{id}/attachments/{name}", UploadAttachment); 879 Register("/{resourceType}/{id}/attachments/{name}", UploadAttachment);
851 880
881 Register("/tools/lookup", Lookup);
882
852 Register("/instances/{id}/content/*", GetRawContent); 883 Register("/instances/{id}/content/*", GetRawContent);
853 } 884 }
854 } 885 }