Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 2129:0c09d1af22f3
"/tools/invalidate-tags" to invalidate the JSON summary of all the DICOM files
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 07 Nov 2016 17:44:10 +0100 |
parents | 9329ba17a069 |
children | bb199bccdc45 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Mon Nov 07 15:13:16 2016 +0100 +++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Mon Nov 07 17:44:10 2016 +0100 @@ -1354,6 +1354,32 @@ } + static void InvalidateTags(RestApiPostCall& call) + { + ServerIndex& index = OrthancRestApi::GetIndex(call); + + // Loop over the instances, grouping them by parent studies so as + // to avoid large memory consumption + std::list<std::string> studies; + index.GetAllUuids(studies, ResourceType_Study); + + for (std::list<std::string>::const_iterator + study = studies.begin(); study != studies.end(); ++study) + { + std::list<std::string> instances; + index.GetChildInstances(instances, *study); + + for (std::list<std::string>::const_iterator + instance = instances.begin(); instance != instances.end(); ++instance) + { + index.DeleteAttachment(*instance, FileContentType_DicomAsJson); + } + } + + call.GetOutput().AnswerBuffer("", "text/plain"); + } + + void OrthancRestApi::RegisterResources() { Register("/instances", ListResources<ResourceType_Instance>); @@ -1428,6 +1454,7 @@ Register("/{resourceType}/{id}/attachments/{name}/uncompress", ChangeAttachmentCompression<CompressionType_None>); Register("/{resourceType}/{id}/attachments/{name}/verify-md5", VerifyAttachment); + Register("/tools/invalidate-tags", InvalidateTags); Register("/tools/lookup", Lookup); Register("/tools/find", Find);