Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp @ 3942:5b882ad2ffd0 transcoding
"/{patients|studies|series}/.../modify": New option "KeepSource"
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 18 May 2020 19:09:06 +0200 |
parents | b99acc213937 |
children | b26d25d3c1c7 |
comparison
equal
deleted
inserted
replaced
3941:771dbd9eb3bd | 3942:5b882ad2ffd0 |
---|---|
210 AnonymizeOrModifyInstance(modification, call, false /* no transcoding */, | 210 AnonymizeOrModifyInstance(modification, call, false /* no transcoding */, |
211 DicomTransferSyntax_LittleEndianImplicit /* unused */); | 211 DicomTransferSyntax_LittleEndianImplicit /* unused */); |
212 } | 212 } |
213 | 213 |
214 | 214 |
215 static void SetKeepSource(CleaningInstancesJob& job, | |
216 const Json::Value& body) | |
217 { | |
218 static const char* KEEP_SOURCE = "KeepSource"; | |
219 if (body.isMember(KEEP_SOURCE)) | |
220 { | |
221 job.SetKeepSource(SerializationToolbox::ReadBoolean(body, KEEP_SOURCE)); | |
222 } | |
223 } | |
224 | |
225 | |
215 static void SubmitModificationJob(std::unique_ptr<DicomModification>& modification, | 226 static void SubmitModificationJob(std::unique_ptr<DicomModification>& modification, |
216 bool isAnonymization, | 227 bool isAnonymization, |
217 RestApiPostCall& call, | 228 RestApiPostCall& call, |
218 const Json::Value& body, | 229 const Json::Value& body, |
219 ResourceType level) | 230 ResourceType level) |
220 { | 231 { |
221 ServerContext& context = OrthancRestApi::GetContext(call); | 232 ServerContext& context = OrthancRestApi::GetContext(call); |
222 | 233 |
223 std::unique_ptr<ResourceModificationJob> job(new ResourceModificationJob(context)); | 234 std::unique_ptr<ResourceModificationJob> job(new ResourceModificationJob(context)); |
224 | 235 |
225 job->SetModification(modification.release(), level, isAnonymization); | 236 job->SetModification(modification.release(), level, isAnonymization); |
226 job->SetOrigin(call); | 237 job->SetOrigin(call); |
238 SetKeepSource(*job, body); | |
227 | 239 |
228 context.AddChildInstances(*job, call.GetUriComponent("id", "")); | 240 context.AddChildInstances(*job, call.GetUriComponent("id", "")); |
241 job->AddTrailingStep(); | |
229 | 242 |
230 OrthancRestApi::GetApi(call).SubmitCommandsJob | 243 OrthancRestApi::GetApi(call).SubmitCommandsJob |
231 (call, job.release(), true /* synchronous by default */, body); | 244 (call, job.release(), true /* synchronous by default */, body); |
232 } | 245 } |
233 | 246 |
719 | 732 |
720 for (size_t i = 0; i < series.size(); i++) | 733 for (size_t i = 0; i < series.size(); i++) |
721 { | 734 { |
722 job->AddSourceSeries(series[i]); | 735 job->AddSourceSeries(series[i]); |
723 } | 736 } |
724 | 737 |
725 job->AddTrailingStep(); | 738 job->AddTrailingStep(); |
726 | 739 |
727 static const char* KEEP_SOURCE = "KeepSource"; | 740 SetKeepSource(*job, request); |
728 if (request.isMember(KEEP_SOURCE)) | |
729 { | |
730 job->SetKeepSource(SerializationToolbox::ReadBoolean(request, KEEP_SOURCE)); | |
731 } | |
732 | 741 |
733 static const char* REMOVE = "Remove"; | 742 static const char* REMOVE = "Remove"; |
734 if (request.isMember(REMOVE)) | 743 if (request.isMember(REMOVE)) |
735 { | 744 { |
736 if (request[REMOVE].type() != Json::arrayValue) | 745 if (request[REMOVE].type() != Json::arrayValue) |
805 job->AddSource(resources[i]); | 814 job->AddSource(resources[i]); |
806 } | 815 } |
807 | 816 |
808 job->AddTrailingStep(); | 817 job->AddTrailingStep(); |
809 | 818 |
810 static const char* KEEP_SOURCE = "KeepSource"; | 819 SetKeepSource(*job, request); |
811 if (request.isMember(KEEP_SOURCE)) | |
812 { | |
813 job->SetKeepSource(SerializationToolbox::ReadBoolean(request, KEEP_SOURCE)); | |
814 } | |
815 | 820 |
816 OrthancRestApi::GetApi(call).SubmitCommandsJob | 821 OrthancRestApi::GetApi(call).SubmitCommandsJob |
817 (call, job.release(), true /* synchronous by default */, request); | 822 (call, job.release(), true /* synchronous by default */, request); |
818 } | 823 } |
819 | 824 |