Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkCESTDICOMReaderServiceTest.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 // Testing
14 #include "mitkTestFixture.h"
15 #include "mitkTestingMacros.h"
16 
17 // std includes
18 #include <string>
19 
20 // MITK includes
21 #include <mitkImage.h>
22 #include <mitkIOUtil.h>
25 #include "mitkCustomTagParser.h"
26 
27 class mitkCESTDICOMReaderServiceTestSuite : public mitk::TestFixture
28 {
29  CPPUNIT_TEST_SUITE(mitkCESTDICOMReaderServiceTestSuite);
30 
31  // Test the dicom property parsing
32  MITK_TEST(LoadCESTDICOMData_Success);
33  MITK_TEST(LoadNormalizedCESTDICOMData_Success);
34  MITK_TEST(LoadT1DICOMData_Success);
35 
36  CPPUNIT_TEST_SUITE_END();
37 
38 private:
39 
40 
41 public:
42  void setUp() override
43  {
44 
45  }
46 
47  void tearDown() override
48  {
49  }
50 
51  void LoadCESTDICOMData_Success()
52  {
54  options["Force type"] = std::string( "Automatic" );
55  options["Revision mapping"] = std::string( "Strict" );
56  options["Normalize data"] = std::string("No");
57 
58  mitk::Image::Pointer cestImage = mitk::IOUtil::Load<mitk::Image>(GetTestDataFilePath("CEST/B1=0.6MUT/MEI_NER_PHANTOM.MR.E0202_MEISSNER.0587.0001.2017.10.25.22.11.10.373351.41828677.IMA"), options);
59  CPPUNIT_ASSERT_MESSAGE("Make certain offsets have been correctly loaded for CEST image." ,cestImage->GetProperty(mitk::CEST_PROPERTY_NAME_OFFSETS().c_str())->GetValueAsString() == "-300 2 -2 1.92982 -1.92982 1.85965 -1.85965 1.78947 -1.78947 1.7193 -1.7193 1.64912 -1.64912 1.57895 -1.57895 1.50877 -1.50877 1.4386 -1.4386 1.36842 -1.36842 1.29825 -1.29825 1.22807 -1.22807 1.15789 -1.15789 1.08772 -1.08772 1.01754 -1.01754 0.947368 -0.947368 0.877193 -0.877193 0.807018 -0.807018 0.736842 -0.736842 0.666667 -0.666667 0.596491 -0.596491 0.526316 -0.526316 0.45614 -0.45614 0.385965 -0.385965 0.315789 -0.315789 0.245614 -0.245614 0.175439 -0.175439 0.105263 -0.105263 0.0350877 -0.0350877");
60  std::string temp;
61  CPPUNIT_ASSERT_MESSAGE("Make certain image is not loaded as T1.", !mitk::IsCESTT1Image(cestImage));
62  }
63 
64  void LoadNormalizedCESTDICOMData_Success()
65  {
67  options["Force type"] = std::string("Automatic");
68  options["Revision mapping"] = std::string("Strict");
69  options["Normalize data"] = std::string("Automatic");
70 
71  mitk::Image::Pointer cestImage = mitk::IOUtil::Load<mitk::Image>(GetTestDataFilePath("CEST/B1=0.6MUT/MEI_NER_PHANTOM.MR.E0202_MEISSNER.0587.0001.2017.10.25.22.11.10.373351.41828677.IMA"), options);
72  auto tempREsult = cestImage->GetProperty(mitk::CEST_PROPERTY_NAME_OFFSETS().c_str())->GetValueAsString();
73  CPPUNIT_ASSERT_MESSAGE("Make certain offsets have been correctly loaded for CEST image.", cestImage->GetProperty(mitk::CEST_PROPERTY_NAME_OFFSETS().c_str())->GetValueAsString() == "2 -2 1.92982 -1.92982 1.85965 -1.85965 1.78947 -1.78947 1.7193 -1.7193 1.64912 -1.64912 1.57895 -1.57895 1.50877 -1.50877 1.4386 -1.4386 1.36842 -1.36842 1.29825 -1.29825 1.22807 -1.22807 1.15789 -1.15789 1.08772 -1.08772 1.01754 -1.01754 0.947368 -0.947368 0.877193 -0.877193 0.807018 -0.807018 0.736842 -0.736842 0.666667 -0.666667 0.596491 -0.596491 0.526316 -0.526316 0.45614 -0.45614 0.385965 -0.385965 0.315789 -0.315789 0.245614 -0.245614 0.175439 -0.175439 0.105263 -0.105263 0.0350877 -0.0350877 ");
74  std::string temp;
75  CPPUNIT_ASSERT_MESSAGE("Make certain image is not loaded as T1.", !mitk::IsCESTT1Image(cestImage));
76  }
77 
78  void LoadT1DICOMData_Success()
79  {
81  options["Force type"] = std::string("Automatic");
82  options["Revision mapping"] = std::string("Strict");
83 
84  mitk::Image::Pointer cestImage = mitk::IOUtil::Load<mitk::Image>(GetTestDataFilePath("CEST/T1MAP/MEI_NER_PHANTOM.MR.E0202_MEISSNER.0279.0001.2017.10.25.20.21.27.996834.41803047.IMA"), options);
85  std::string temp;
86  CPPUNIT_ASSERT_MESSAGE("Make certain image is loaded as T1.", mitk::IsCESTT1Image(cestImage));
87  }
88 
89 };
90 
91 MITK_TEST_SUITE_REGISTRATION(mitkCESTDICOMReaderService)
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
const std::string MITKCEST_EXPORT CEST_PROPERTY_NAME_OFFSETS()
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
std::map< std::string, us::Any > Options
Options for reading or writing data.
Definition: mitkIFileIO.h:69
static std::string GetTestDataFilePath(const std::string &testData)
Get the absolute path for test data.
MITKCEST_EXPORT bool IsCESTT1Image(const Image *cestImage)
Test fixture for parameterized tests.