diff OrthancServer/ParsedDicomFile.cpp @ 2207:6dc3bdb4088b

Fix handling of encodings in C-FIND for worklists
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 09 Dec 2016 11:24:04 +0100
parents 9b373b7d6713
children e3fd5bc429a2
line wrap: on
line diff
--- a/OrthancServer/ParsedDicomFile.cpp	Thu Dec 08 16:29:34 2016 +0100
+++ b/OrthancServer/ParsedDicomFile.cpp	Fri Dec 09 11:24:04 2016 +0100
@@ -1384,4 +1384,16 @@
   {
     return DicomFrameIndex::GetFramesCount(*pimpl_->file_);
   }
+
+
+  void ParsedDicomFile::ChangeEncoding(Encoding target)
+  {
+    Encoding source = GetEncoding();
+
+    if (source != target)  // Avoid unnecessary conversion
+    {
+      ReplacePlainString(DICOM_TAG_SPECIFIC_CHARACTER_SET, GetDicomSpecificCharacterSet(target));
+      FromDcmtkBridge::ChangeStringEncoding(*pimpl_->file_->getDataset(), source, target);
+    }
+  }
 }