diff OrthancFramework/UnitTestsSources/DicomMapTests.cpp @ 4213:be2eca8b02e1

testing DicomMap::ParseDicomMetaInformation()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 28 Sep 2020 15:23:04 +0200
parents bf7b9edf6b81
children 7b011cfda135
line wrap: on
line diff
--- a/OrthancFramework/UnitTestsSources/DicomMapTests.cpp	Wed Sep 23 07:41:11 2020 +0200
+++ b/OrthancFramework/UnitTestsSources/DicomMapTests.cpp	Mon Sep 28 15:23:04 2020 +0200
@@ -650,3 +650,46 @@
     }
   }
 }
+
+
+
+
+#include "../Sources/SystemToolbox.h"
+
+TEST(DicomMap, DISABLED_ParseDicomMetaInformation)
+{
+  static const std::string PATH = "/home/jodogne/Subversion/orthanc-tests/Database/TransferSyntaxes/";
+  
+  std::map<std::string, DicomTransferSyntax> f;
+  f.insert(std::make_pair(PATH + "../ColorTestMalaterre.dcm", DicomTransferSyntax_LittleEndianImplicit));  // 1.2.840.10008.1.2
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.1.dcm", DicomTransferSyntax_LittleEndianExplicit));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.2.dcm", DicomTransferSyntax_BigEndianExplicit));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.4.50.dcm", DicomTransferSyntax_JPEGProcess1));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.4.51.dcm", DicomTransferSyntax_JPEGProcess2_4));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.4.57.dcm", DicomTransferSyntax_JPEGProcess14));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.4.70.dcm", DicomTransferSyntax_JPEGProcess14SV1));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.4.80.dcm", DicomTransferSyntax_JPEGLSLossless));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.4.81.dcm", DicomTransferSyntax_JPEGLSLossy));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.4.90.dcm", DicomTransferSyntax_JPEG2000LosslessOnly));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.4.91.dcm", DicomTransferSyntax_JPEG2000));
+  f.insert(std::make_pair(PATH + "1.2.840.10008.1.2.5.dcm", DicomTransferSyntax_RLELossless));
+
+  for (std::map<std::string, DicomTransferSyntax>::const_iterator it = f.begin(); it != f.end(); ++it)
+  {
+    printf("\n== %s ==\n\n", it->first.c_str());
+    
+    std::string dicom;
+    SystemToolbox::ReadFile(dicom, it->first, false);
+
+    DicomMap d;
+    ASSERT_TRUE(DicomMap::ParseDicomMetaInformation(d, dicom.c_str(), dicom.size()));
+    d.Print(stdout);
+
+    std::string s;
+    ASSERT_TRUE(d.LookupStringValue(s, DICOM_TAG_TRANSFER_SYNTAX_UID, false));
+    
+    DicomTransferSyntax ts;
+    ASSERT_TRUE(LookupTransferSyntax(ts, s));
+    ASSERT_EQ(ts, it->second);
+  }
+}