Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi/OrthancRestModalities.cpp @ 2986:b1ba0a8311b5
exploring hierarchy of C-FIND answers finished
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 10 Dec 2018 10:03:41 +0100 |
parents | 94c8222c52b7 |
children | 9cc3d40e389b |
comparison
equal
deleted
inserted
replaced
2985:32ec5078e32b | 2986:b1ba0a8311b5 |
---|---|
706 call.GetOutput().AnswerJson(answer); | 706 call.GetOutput().AnswerJson(answer); |
707 } | 707 } |
708 | 708 |
709 | 709 |
710 template <ResourceType CHILDREN_LEVEL> | 710 template <ResourceType CHILDREN_LEVEL> |
711 static void AnswerQueryChildren(RestApiPostCall& call) | 711 static void QueryAnswerChildren(RestApiPostCall& call) |
712 { | 712 { |
713 // New in Orthanc 1.4.3 | 713 // New in Orthanc 1.4.3 |
714 assert(CHILDREN_LEVEL == ResourceType_Study || | 714 assert(CHILDREN_LEVEL == ResourceType_Study || |
715 CHILDREN_LEVEL == ResourceType_Series || | 715 CHILDREN_LEVEL == ResourceType_Series || |
716 CHILDREN_LEVEL == ResourceType_Instance); | 716 CHILDREN_LEVEL == ResourceType_Instance); |
766 for (std::map<DicomTag, std::string>::const_iterator | 766 for (std::map<DicomTag, std::string>::const_iterator |
767 it = query.begin(); it != query.end(); ++it) | 767 it = query.begin(); it != query.end(); ++it) |
768 { | 768 { |
769 handler->SetQuery(it->first, it->second); | 769 handler->SetQuery(it->first, it->second); |
770 } | 770 } |
771 } | |
772 | |
773 DicomMap answer; | |
774 parent.GetHandler().GetAnswer(answer, index); | |
775 | |
776 // This switch-case mimics "DicomUserConnection::Move()" | |
777 switch (parent.GetHandler().GetLevel()) | |
778 { | |
779 case ResourceType_Patient: | |
780 handler->CopyStringTag(answer, DICOM_TAG_PATIENT_ID); | |
781 break; | |
782 | |
783 case ResourceType_Study: | |
784 handler->CopyStringTag(answer, DICOM_TAG_STUDY_INSTANCE_UID); | |
785 break; | |
786 | |
787 case ResourceType_Series: | |
788 handler->CopyStringTag(answer, DICOM_TAG_STUDY_INSTANCE_UID); | |
789 handler->CopyStringTag(answer, DICOM_TAG_SERIES_INSTANCE_UID); | |
790 break; | |
791 | |
792 case ResourceType_Instance: | |
793 handler->CopyStringTag(answer, DICOM_TAG_STUDY_INSTANCE_UID); | |
794 handler->CopyStringTag(answer, DICOM_TAG_SERIES_INSTANCE_UID); | |
795 handler->CopyStringTag(answer, DICOM_TAG_SOP_INSTANCE_UID); | |
796 break; | |
797 | |
798 default: | |
799 throw OrthancException(ErrorCode_InternalError); | |
771 } | 800 } |
772 } | 801 } |
773 } | 802 } |
774 | 803 |
775 AnswerQueryHandler(call, handler); | 804 AnswerQueryHandler(call, handler); |
1232 Register("/queries/{id}/answers", ListQueryAnswers); | 1261 Register("/queries/{id}/answers", ListQueryAnswers); |
1233 Register("/queries/{id}/answers/{index}", ListQueryAnswerOperations); | 1262 Register("/queries/{id}/answers/{index}", ListQueryAnswerOperations); |
1234 Register("/queries/{id}/answers/{index}/content", GetQueryOneAnswer); | 1263 Register("/queries/{id}/answers/{index}/content", GetQueryOneAnswer); |
1235 Register("/queries/{id}/answers/{index}/retrieve", RetrieveOneAnswer); | 1264 Register("/queries/{id}/answers/{index}/retrieve", RetrieveOneAnswer); |
1236 Register("/queries/{id}/answers/{index}/query-instances", | 1265 Register("/queries/{id}/answers/{index}/query-instances", |
1237 AnswerQueryChildren<ResourceType_Instance>); | 1266 QueryAnswerChildren<ResourceType_Instance>); |
1238 Register("/queries/{id}/answers/{index}/query-series", | 1267 Register("/queries/{id}/answers/{index}/query-series", |
1239 AnswerQueryChildren<ResourceType_Series>); | 1268 QueryAnswerChildren<ResourceType_Series>); |
1240 Register("/queries/{id}/answers/{index}/query-studies", | 1269 Register("/queries/{id}/answers/{index}/query-studies", |
1241 AnswerQueryChildren<ResourceType_Study>); | 1270 QueryAnswerChildren<ResourceType_Study>); |
1242 Register("/queries/{id}/level", GetQueryLevel); | 1271 Register("/queries/{id}/level", GetQueryLevel); |
1243 Register("/queries/{id}/modality", GetQueryModality); | 1272 Register("/queries/{id}/modality", GetQueryModality); |
1244 Register("/queries/{id}/query", GetQueryArguments); | 1273 Register("/queries/{id}/query", GetQueryArguments); |
1245 Register("/queries/{id}/retrieve", RetrieveAllAnswers); | 1274 Register("/queries/{id}/retrieve", RetrieveAllAnswers); |
1246 | 1275 |