Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi/OrthancRestApi.cpp @ 2899:5dd649de253d
POST-ing a DICOM file to "/instances" also answers the patient/study/series ID
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 18 Oct 2018 12:03:51 +0200 |
parents | 251614c2edac |
children | ae20fccdd867 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestApi.cpp Thu Oct 18 11:44:17 2018 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestApi.cpp Thu Oct 18 12:03:51 2018 +0200 @@ -40,20 +40,46 @@ namespace Orthanc { - void OrthancRestApi::AnswerStoredResource(RestApiPostCall& call, - const std::string& publicId, - ResourceType resourceType, - StoreStatus status) const + static void SetupResourceAnswer(Json::Value& result, + const std::string& publicId, + ResourceType resourceType, + StoreStatus status) { - Json::Value result = Json::objectValue; + result = Json::objectValue; if (status != StoreStatus_Failure) { result["ID"] = publicId; result["Path"] = GetBasePath(resourceType, publicId); } + + result["Status"] = EnumerationToString(status); + } - result["Status"] = EnumerationToString(status); + + void OrthancRestApi::AnswerStoredInstance(RestApiPostCall& call, + DicomInstanceToStore& instance, + StoreStatus status) const + { + Json::Value result; + SetupResourceAnswer(result, instance.GetHasher().HashInstance(), + ResourceType_Instance, status); + + result["ParentPatient"] = instance.GetHasher().HashPatient(); + result["ParentStudy"] = instance.GetHasher().HashStudy(); + result["ParentSeries"] = instance.GetHasher().HashSeries(); + + call.GetOutput().AnswerJson(result); + } + + + void OrthancRestApi::AnswerStoredResource(RestApiPostCall& call, + const std::string& publicId, + ResourceType resourceType, + StoreStatus status) const + { + Json::Value result; + SetupResourceAnswer(result, publicId, resourceType, status); call.GetOutput().AnswerJson(result); } @@ -100,7 +126,7 @@ std::string publicId; StoreStatus status = context.Store(publicId, toStore); - OrthancRestApi::GetApi(call).AnswerStoredResource(call, publicId, ResourceType_Instance, status); + OrthancRestApi::GetApi(call).AnswerStoredInstance(call, toStore, status); }