Mercurial > hg > orthanc
diff OrthancServer/Sources/ServerJobs/Operations/ModifyInstanceOperation.cpp @ 4508:8f9090b137f1
Optimization in C-STORE SCP by avoiding an unnecessary DICOM parsing
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 11 Feb 2021 11:00:05 +0100 |
parents | d9473bd5ed43 |
children | f0038043fb97 7053502fbf97 |
line wrap: on
line diff
--- a/OrthancServer/Sources/ServerJobs/Operations/ModifyInstanceOperation.cpp Thu Feb 11 09:33:48 2021 +0100 +++ b/OrthancServer/Sources/ServerJobs/Operations/ModifyInstanceOperation.cpp Thu Feb 11 11:00:05 2021 +0100 @@ -104,16 +104,15 @@ { modification_->Apply(*modified); - DicomInstanceToStore toStore; + std::unique_ptr<DicomInstanceToStore> toStore(DicomInstanceToStore::CreateFromParsedDicomFile(*modified)); assert(origin_ == RequestOrigin_Lua); - toStore.SetOrigin(DicomInstanceOrigin::FromLua()); - toStore.SetParsedDicomFile(*modified); + toStore->SetOrigin(DicomInstanceOrigin::FromLua()); // TODO other metadata - toStore.AddMetadata(ResourceType_Instance, MetadataType_ModifiedFrom, instance.GetId()); + toStore->AddMetadata(ResourceType_Instance, MetadataType_ModifiedFrom, instance.GetId()); std::string modifiedId; - context_.Store(modifiedId, toStore, StoreInstanceMode_Default); + context_.Store(modifiedId, *toStore, StoreInstanceMode_Default); // Only chain with other commands if this command succeeds outputs.Append(new DicomInstanceOperationValue(instance.GetServerContext(), modifiedId));