Mercurial > hg > orthanc
comparison OrthancServer/Sources/ServerJobs/MergeStudyJob.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 fb98db281d1d |
comparison
equal
deleted
inserted
replaced
4507:b4c58795f3a8 | 4508:8f9090b137f1 |
---|---|
145 modified->ReplacePlainString(DICOM_TAG_SERIES_INSTANCE_UID, targetSeriesUid->second); | 145 modified->ReplacePlainString(DICOM_TAG_SERIES_INSTANCE_UID, targetSeriesUid->second); |
146 | 146 |
147 // Fix since Orthanc 1.5.8: Assign new "SOPInstanceUID", as the instance has been modified | 147 // Fix since Orthanc 1.5.8: Assign new "SOPInstanceUID", as the instance has been modified |
148 modified->ReplacePlainString(DICOM_TAG_SOP_INSTANCE_UID, FromDcmtkBridge::GenerateUniqueIdentifier(ResourceType_Instance)); | 148 modified->ReplacePlainString(DICOM_TAG_SOP_INSTANCE_UID, FromDcmtkBridge::GenerateUniqueIdentifier(ResourceType_Instance)); |
149 | 149 |
150 DicomInstanceToStore toStore; | 150 std::unique_ptr<DicomInstanceToStore> toStore(DicomInstanceToStore::CreateFromParsedDicomFile(*modified)); |
151 toStore.SetOrigin(origin_); | 151 toStore->SetOrigin(origin_); |
152 toStore.SetParsedDicomFile(*modified); | |
153 | 152 |
154 std::string modifiedInstance; | 153 std::string modifiedInstance; |
155 if (GetContext().Store(modifiedInstance, toStore, | 154 if (GetContext().Store(modifiedInstance, *toStore, |
156 StoreInstanceMode_Default) != StoreStatus_Success) | 155 StoreInstanceMode_Default) != StoreStatus_Success) |
157 { | 156 { |
158 LOG(ERROR) << "Error while storing a modified instance " << instance; | 157 LOG(ERROR) << "Error while storing a modified instance " << instance; |
159 return false; | 158 return false; |
160 } | 159 } |