Mercurial > hg > orthanc
diff OrthancFramework/Sources/DicomParsing/DicomModification.cpp @ 4688:177ad026d219
backward compatibility with old DicomModification serialization from Orthanc <= 1.6.1
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 10 Jun 2021 10:09:54 +0200 |
parents | fcd2dc7c8f31 |
children | 13efc0967cea |
line wrap: on
line diff
--- a/OrthancFramework/Sources/DicomParsing/DicomModification.cpp Wed Jun 09 17:24:44 2021 +0200 +++ b/OrthancFramework/Sources/DicomParsing/DicomModification.cpp Thu Jun 10 10:09:54 2021 +0200 @@ -1453,11 +1453,26 @@ allowManualIdentifiers_ = SerializationToolbox::ReadBoolean(serialized, ALLOW_MANUAL_IDENTIFIERS); keepStudyInstanceUid_ = SerializationToolbox::ReadBoolean(serialized, KEEP_STUDY_INSTANCE_UID); keepSeriesInstanceUid_ = SerializationToolbox::ReadBoolean(serialized, KEEP_SERIES_INSTANCE_UID); - keepSopInstanceUid_ = SerializationToolbox::ReadBoolean(serialized, KEEP_SOP_INSTANCE_UID); updateReferencedRelationships_ = SerializationToolbox::ReadBoolean (serialized, UPDATE_REFERENCED_RELATIONSHIPS); isAnonymization_ = SerializationToolbox::ReadBoolean(serialized, IS_ANONYMIZATION); + if (serialized.isMember(KEEP_SOP_INSTANCE_UID)) + { + keepSopInstanceUid_ = SerializationToolbox::ReadBoolean(serialized, KEEP_SOP_INSTANCE_UID); + } + else + { + /** + * Compatibility with jobs serialized using Orthanc between + * 1.5.0 and 1.6.1. This compatibility was broken between 1.7.0 + * and 1.9.3: Indeed, an exception was thrown in "ReadBoolean()" + * if "KEEP_SOP_INSTANCE_UID" was absent, because of changeset: + * https://hg.orthanc-server.com/orthanc/rev/3860 + **/ + keepSopInstanceUid_ = false; + } + if (serialized.isMember(PRIVATE_CREATOR)) { privateCreator_ = SerializationToolbox::ReadString(serialized, PRIVATE_CREATOR);