diff Framework/DicomToolbox.cpp @ 83:0cb3ac4f9159

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 15 Dec 2016 11:51:58 +0100
parents f45cec2c32e2
children ff0ef01c332c
line wrap: on
line diff
--- a/Framework/DicomToolbox.cpp	Wed Dec 14 17:01:34 2016 +0100
+++ b/Framework/DicomToolbox.cpp	Thu Dec 15 11:51:58 2016 +0100
@@ -28,6 +28,7 @@
 #if ORTHANC_ENABLE_DCMTK == 1
 #  include <dcmtk/dcmdata/dcelem.h>
 #  include <dcmtk/dcmdata/dcsequen.h>
+#  include <dcmtk/dcmdata/dcvrat.h>
 #endif
 
 namespace OrthancWSI
@@ -70,6 +71,23 @@
     }
 
 
+    void SetAttributeTag(DcmItem& dataset,
+                         const DcmTagKey& key,
+                         const DcmTagKey& value)
+    {
+      if (!dataset.tagExists(key))
+      {
+        std::auto_ptr<DcmAttributeTag> tag(new DcmAttributeTag(key));
+        
+        if (!tag->putTagVal(value).good() ||
+            !dataset.insert(tag.release()).good())
+        {
+          throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError);
+        }
+      }
+    }
+
+
     DcmItem* ExtractSingleSequenceItem(DcmItem& dataset,
                                        const DcmTagKey& key)
     {