Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi.cpp @ 305:86bb79522f19
name of the private tags
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 20 Dec 2012 13:01:46 +0100 |
parents | 4eea080e6e7a |
children | 326d5a4a5af3 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi.cpp Wed Dec 19 14:57:18 2012 +0100 +++ b/OrthancServer/OrthancRestApi.cpp Thu Dec 20 13:01:46 2012 +0100 @@ -841,8 +841,9 @@ // Modification of DICOM instances ------------------------------------------ - static void ModifyInstanceInternal(ParsedDicomFile& toModify, - const Json::Value& replacements) + static void ReplaceInstanceInternal(ParsedDicomFile& toModify, + const Json::Value& replacements, + DicomReplaceMode mode) { if (!replacements.isObject()) { @@ -857,15 +858,18 @@ std::string value = replacements[name].asString(); DicomTag tag = FromDcmtkBridge::ParseTag(name); - toModify.Replace(tag, value); + toModify.Replace(tag, value, mode); } // A new SOP instance UID is automatically generated std::string instanceUid = FromDcmtkBridge::GenerateUniqueIdentifier(DicomRootLevel_Instance); - toModify.Replace(DICOM_TAG_SOP_INSTANCE_UID, instanceUid); + toModify.Replace(DICOM_TAG_SOP_INSTANCE_UID, instanceUid, DicomReplaceMode_InsertIfAbsent); } + + + static void ModifyInstance(RestApi::PostCall& call) { RETRIEVE_CONTEXT(call); @@ -877,7 +881,7 @@ if (call.ParseJsonRequest(request)) { std::auto_ptr<ParsedDicomFile> modified(dicom.Clone()); - ModifyInstanceInternal(*modified, request); + ReplaceInstanceInternal(*modified, request, DicomReplaceMode_InsertIfAbsent); modified->Answer(call.GetOutput()); } @@ -885,8 +889,6 @@ std::string seriesUid = FromDcmtkBridge::GenerateUniqueIdentifier(DicomRootLevel_Series); modified->Replace(DICOM_TAG_SERIES_INSTANCE_UID, seriesUid); modified->Replace(DICOM_TAG_STUDY_INSTANCE_UID, studyUid);*/ - - }