7 #ifndef Tomato_Tomato_EXPORT_HXX     8 #define Tomato_Tomato_EXPORT_HXX    10 #include "CmakeConfigForTomato.h"    13 #include "gdcmUIDGenerator.h"    14 #include "itkGDCMImageIO.h"    15 #include "itkGDCMSeriesFileNames.h"    16 #include "itkMultiplyImageFilter.h"    17 #include "itkImageFileWriter.h"    18 #include "itkFileTools.h"    19 #include "itkAdaptImageFilter.h"    23     template< 
typename MeasureType >
    28         if (_opts->dir_output_map.empty()){
    29             printf(
"No DICOM export, dir_output_map not given.\n");
    34         typedef itk::Colorbar2DImageFilter< ImageType2D > OxColorbarImageFilterType;
    35         typename OxColorbarImageFilterType::Pointer OxColorbarFilter = OxColorbarImageFilterType::New();
    36         OxColorbarFilter->SetInput(_imageCalculatorItk->GetT1Image());
    37         OxColorbarFilter->SetAddColorbar(_opts->use_colorbar);
    40         itk::EncapsulateMetaData<std::string>( _dictionaryInput, std::string(
"0028|1052"), 
"0"); 
    41         itk::EncapsulateMetaData<std::string>( _dictionaryInput, std::string(
"0028|1053"), 
"1"); 
    44         DictionaryType dictionaryOutput_T1Color(_dictionaryInput);
    47         gdcm::UIDGenerator sopuid;
    48         std::string sopInstanceUID_T1Color = sopuid.Generate();
    49         gdcm::UIDGenerator suid;
    50         std::string seriesUID_T1 = suid.Generate();
    53         std::string seriesNumber;
    54         itk::ExposeMetaData<std::string>(_dictionaryInput, 
"0020|0011", seriesNumber);
    55         if (_opts->output_map_series_number == 0) {
    56             _opts->output_map_series_number = KWUtil::StringToNumber<int>(seriesNumber) + 10002;
    58         std::string newSeriesNumber_T1 = KWUtil::NumberToString(_opts->output_map_series_number);
    62         std::string MagneticFieldStrength;
    63         itk::ExposeMetaData<std::string>(_dictionaryInput, 
"0018|0087", MagneticFieldStrength);
    64         std::string ImageCommentsT1mapWithColormap, clutRedString, clutGreenString, clutBlueString;
    65         if (MagneticFieldStrength.find(
"1.5") != std::string::npos){
    66             ImageCommentsT1mapWithColormap = ImageCommentsT1mapWithColormap.append(
"ShMOLLI color 980SD265ms");
    67             clutRedString = getEncodedSting(getShmolliColormapRed15TArray());
    68             clutGreenString = getEncodedSting(getShmolliColormapGreen15TArray());
    69             clutBlueString = getEncodedSting(getShmolliColormapBlue15TArray());
    70             printf(
"Colormap for MagneticFieldStrength 1.5T is used.\n");
    71         } 
else if (MagneticFieldStrength.find(
'3') != std::string::npos){
    72             ImageCommentsT1mapWithColormap = ImageCommentsT1mapWithColormap.append(
"ShMOLLI color 1198SD175ms");
    73             clutRedString = getEncodedSting(getShmolliColormapRed3TArray());
    74             clutGreenString = getEncodedSting(getShmolliColormapGreen3TArray());
    75             clutBlueString = getEncodedSting(getShmolliColormapBlue3TArray());
    76             printf(
"Colormap for MagneticFieldStrength 3T is used.\n");
    78             printf(
"MagneticFieldStrength not detected, colormap will not be used.\n");
    82         std::string PaletteColorLookupTableUID;
    83         itk::ExposeMetaData<std::string>(_dictionaryInput, 
"0028|1199", PaletteColorLookupTableUID);
    85         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0008|0018"), sopInstanceUID_T1Color);
    86         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0002|0003"), sopInstanceUID_T1Color);
    87         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0020|000e"), seriesUID_T1);
    88         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|1199"), PaletteColorLookupTableUID); 
    90         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0020|0011"), newSeriesNumber_T1); 
    92         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0020|4000"), ImageCommentsT1mapWithColormap); 
    93         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0020|0013"), std::string(
"1")); 
    94         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|0106"), std::string(
"0")); 
    95         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|0107"), std::string(
"4096")); 
    96         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|1050"), std::string(
"2048")); 
    97         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|1051"), std::string(
"4096")); 
    99         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|1101"), std::string(
"4096\\0\\16")); 
   100         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|1102"), std::string(
"4096\\0\\16")); 
   101         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|1103"), std::string(
"4096\\0\\16")); 
   103         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|1201"), clutRedString);
   104         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|1202"), clutGreenString);
   105         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1Color, std::string(
"0028|1203"), clutBlueString);
   108         DictionaryType dictionaryOutput_T1(_dictionaryInput);
   110         std::string sopInstanceUID_T1 = sopuid.Generate();
   112         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0008|0018"), sopInstanceUID_T1);
   113         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0002|0003"), sopInstanceUID_T1);
   114         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0020|000e"), seriesUID_T1);
   116         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0020|0011"), newSeriesNumber_T1); 
   118         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0020|4000"), std::string(
"ShMOLLI T1 map")); 
   119         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0020|0013"), std::string(
"2")); 
   120         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0028|0106"), std::string(
"0")); 
   121         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0028|0107"), std::string(
"4096")); 
   122         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0028|1050"), std::string(
"2048")); 
   123         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1, std::string(
"0028|1051"), std::string(
"4096")); 
   126         DictionaryType dictionaryOutput_R2(_dictionaryInput);
   128         std::string sopInstanceUID_R2 = sopuid.Generate();
   129         std::string seriesUID_R2 = suid.Generate();
   131         itk::ExposeMetaData<std::string>(_dictionaryInput, 
"0020|0011", seriesNumber);
   132         if (_opts->output_fitparams_series_number == 0) {
   133             _opts->output_fitparams_series_number = KWUtil::StringToNumber<int>(seriesNumber) + 10003;
   135         std::string newSeriesNumber_R2 = KWUtil::NumberToString(_opts->output_fitparams_series_number);
   138         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0008|0018"), sopInstanceUID_R2);
   139         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0002|0003"), sopInstanceUID_R2);
   140         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0020|000e"), seriesUID_R2);
   142         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0020|0011"), newSeriesNumber_R2); 
   144         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0020|4000"), std::string(
"Rsquare*4000 Map")); 
   145         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0020|0013"), std::string(
"3")); 
   146         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0028|0106"), std::string(
"0")); 
   147         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0028|0107"), std::string(
"4096")); 
   148         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0028|1050"), std::string(
"3900")); 
   149         itk::EncapsulateMetaData<std::string>( dictionaryOutput_R2, std::string(
"0028|1051"), std::string(
"200")); 
   152         DictionaryType dictionaryOutput_A(_dictionaryInput);
   154         std::string sopInstanceUID_A = sopuid.Generate();
   156         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0008|0018"), sopInstanceUID_A);
   157         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0002|0003"), sopInstanceUID_A);
   158         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0020|000e"), seriesUID_R2);
   160         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0020|0011"), newSeriesNumber_R2); 
   162         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0020|4000"), std::string(
"Signal(TI)=[___AMap___]-B*exp(-TI/T1star)")); 
   163         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0020|0013"), std::string(
"4")); 
   164         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0028|0106"), std::string(
"0")); 
   165         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0028|0107"), std::string(
"4096")); 
   166         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0028|1050"), std::string(
"2000")); 
   167         itk::EncapsulateMetaData<std::string>( dictionaryOutput_A, std::string(
"0028|1051"), std::string(
"4000")); 
   170         DictionaryType dictionaryOutput_B(_dictionaryInput);
   172         std::string sopInstanceUID_B = sopuid.Generate();
   174         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0008|0018"), sopInstanceUID_B);
   175         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0002|0003"), sopInstanceUID_B);
   176         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0020|000e"), seriesUID_R2);
   178         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0020|0011"), newSeriesNumber_R2); 
   180         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0020|4000"), std::string(
"Signal(TI)=A-[___BMap___]*exp(-TI/T1star)")); 
   181         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0020|0013"), std::string(
"5")); 
   182         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0028|0106"), std::string(
"0")); 
   183         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0028|0107"), std::string(
"4096")); 
   184         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0028|1050"), std::string(
"2000")); 
   185         itk::EncapsulateMetaData<std::string>( dictionaryOutput_B, std::string(
"0028|1051"), std::string(
"4000")); 
   188         DictionaryType dictionaryOutput_T1star(_dictionaryInput);
   190         std::string sopInstanceUID_T1star = sopuid.Generate();
   192         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0008|0018"), sopInstanceUID_T1star);
   193         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0002|0003"), sopInstanceUID_T1star);
   194         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0020|000e"), seriesUID_R2);
   196         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0020|0011"), newSeriesNumber_R2); 
   198         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0020|4000"), std::string(
"Signal(TI)=A-B*exp(-TI/[___T1starMap___])")); 
   199         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0020|0013"), std::string(
"6")); 
   200         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0028|0106"), std::string(
"0")); 
   201         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0028|0107"), std::string(
"4096")); 
   202         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0028|1050"), std::string(
"2000")); 
   203         itk::EncapsulateMetaData<std::string>( dictionaryOutput_T1star, std::string(
"0028|1051"), std::string(
"4000")); 
   206         DictionaryType dictionaryOutput_ShMolliT1Range(_dictionaryInput);
   208         std::string sopInstanceUID_ShMolliT1Range = sopuid.Generate();
   210         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0008|0018"), sopInstanceUID_ShMolliT1Range);
   211         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0002|0003"), sopInstanceUID_ShMolliT1Range);
   212         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0020|000e"), seriesUID_R2);
   214         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0020|0011"), newSeriesNumber_R2); 
   216         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0020|4000"), std::string(
"_ShMOLLIT1range")); 
   217         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0020|0013"), std::string(
"7")); 
   218         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0028|0106"), std::string(
"0")); 
   219         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0028|0107"), std::string(
"4096")); 
   220         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0028|1050"), std::string(
"1500")); 
   221         itk::EncapsulateMetaData<std::string>( dictionaryOutput_ShMolliT1Range, std::string(
"0028|1051"), std::string(
"3000")); 
   224         DictionaryType dictionaryOutput_nAmebaCallFinal(_dictionaryInput);
   226         std::string sopInstanceUID_nAmebaCallFinal = sopuid.Generate();
   228         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0008|0018"), sopInstanceUID_nAmebaCallFinal);
   229         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0002|0003"), sopInstanceUID_nAmebaCallFinal);
   230         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0020|000e"), seriesUID_R2);
   232         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0020|0011"), newSeriesNumber_R2); 
   234         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0020|4000"), std::string(
"_nAmebaCallFinal")); 
   235         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0020|0013"), std::string(
"8")); 
   236         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0028|0106"), std::string(
"0")); 
   237         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0028|0107"), std::string(
"4096")); 
   238         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0028|1050"), std::string(
"2000")); 
   239         itk::EncapsulateMetaData<std::string>( dictionaryOutput_nAmebaCallFinal, std::string(
"0028|1051"), std::string(
"4000")); 
   242         DictionaryType dictionaryOutput_RelSNRFinal(_dictionaryInput);
   244         std::string sopInstanceUID_RelSNRFinal = sopuid.Generate();
   246         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0008|0018"), sopInstanceUID_RelSNRFinal);
   247         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0002|0003"), sopInstanceUID_RelSNRFinal);
   248         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0020|000e"), seriesUID_R2);
   250         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0020|0011"), newSeriesNumber_R2); 
   252         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0020|4000"), std::string(
"_RelSNRFinal")); 
   253         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0020|0013"), std::string(
"9")); 
   254         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0028|0106"), std::string(
"0")); 
   255         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0028|0107"), std::string(
"4096")); 
   256         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0028|1050"), std::string(
"2000")); 
   257         itk::EncapsulateMetaData<std::string>( dictionaryOutput_RelSNRFinal, std::string(
"0028|1051"), std::string(
"4000")); 
   260         typedef itk::GDCMImageIO ImageIOType;
   261         ImageIOType::Pointer gdcmImageIO = ImageIOType::New();
   262         gdcmImageIO->KeepOriginalUIDOn();
   265         typedef itk::AdaptImageFilter < ImageType2D, OutputImageType, CastPixelAccessor< InputPixelType, OutputPixelType > > ImageAdaptorType;
   266         typename ImageAdaptorType::Pointer adaptor = ImageAdaptorType::New();
   269         typedef itk::ImageFileWriter<OutputImageType> WriterType;
   270         typename WriterType::Pointer writer = WriterType::New();
   271         writer->SetUseInputMetaDataDictionary(
false);
   274         if (!_opts->dir_output_map.empty()) {
   276             printf(
"Saving to: %s ", _opts->dir_output_map.c_str());
   279             itk::FileTools::CreateDirectory(_opts->dir_output_map);
   282             gdcmImageIO->SetMetaDataDictionary(dictionaryOutput_T1Color);
   285             adaptor->SetInput(OxColorbarFilter->GetOutput());
   286             writer->SetFileName(_opts->dir_output_map + KWUtil::PathSeparator() + newSeriesNumber_T1 + 
"_T1color.dcm");
   287             writer->SetInput(adaptor->GetOutput());
   288             writer->SetImageIO(gdcmImageIO);
   291             } 
catch (itk::ExceptionObject &e) {
   292                 std::cerr << 
"Exception in file writer " << std::endl;
   293                 std::cerr << e << std::endl;
   297             gdcmImageIO->SetMetaDataDictionary(dictionaryOutput_T1);
   300             adaptor->SetInput(OxColorbarFilter->GetOutput());
   301             writer->SetFileName( _opts->dir_output_map + KWUtil::PathSeparator() + newSeriesNumber_T1 + 
"_T1.dcm");
   302             writer->SetInput(adaptor->GetOutput());
   303             writer->SetImageIO(gdcmImageIO);
   306             } 
catch (itk::ExceptionObject &e) {
   307                 std::cerr << 
"Exception in file writer " << std::endl;
   308                 std::cerr << e << std::endl;
   310             std::cout << 
" Saved!" << std::endl;
   313         if (!_opts->dir_output_fitparams.empty()) {
   315             printf(
"Saving to: %s ", _opts->dir_output_fitparams.c_str());
   319             typedef itk::MultiplyImageFilter< ImageType2D, ImageType2D, ImageType2D > MultiplyImageFilterType;
   320             typename MultiplyImageFilterType::Pointer multiplyFilter = MultiplyImageFilterType::New();
   321             multiplyFilter->SetInput( _imageCalculatorItk->GetR2AbsImage() );
   322             multiplyFilter->SetConstant( 4000 );
   324             OxColorbarFilter->SetInput(multiplyFilter->GetOutput());
   325             OxColorbarFilter->SetZerosInsteadOfColorbar(
true);
   328             itk::FileTools::CreateDirectory(_opts->dir_output_fitparams);
   331             gdcmImageIO->SetMetaDataDictionary(dictionaryOutput_R2);
   334             adaptor->SetInput(OxColorbarFilter->GetOutput());
   335             writer->SetFileName(_opts->dir_output_fitparams + KWUtil::PathSeparator() + newSeriesNumber_R2 + 
"_R2.dcm");
   336             writer->SetInput(adaptor->GetOutput());
   337             writer->SetImageIO(gdcmImageIO);
   340             } 
catch (itk::ExceptionObject &e) {
   341                 std::cerr << 
"Exception in file writer " << std::endl;
   342                 std::cerr << e << std::endl;
   346             gdcmImageIO->SetMetaDataDictionary(dictionaryOutput_A);
   348             OxColorbarFilter->SetInput(_imageCalculatorItk->GetAImage());
   349             OxColorbarFilter->SetZerosInsteadOfColorbar(
true);
   352             adaptor->SetInput(OxColorbarFilter->GetOutput());
   353             writer->SetFileName(_opts->dir_output_fitparams + KWUtil::PathSeparator() + newSeriesNumber_R2 + 
"_A.dcm");
   354             writer->SetInput(adaptor->GetOutput());
   355             writer->SetImageIO(gdcmImageIO);
   358             } 
catch (itk::ExceptionObject &e) {
   359                 std::cerr << 
"Exception in file writer " << std::endl;
   360                 std::cerr << e << std::endl;
   364             gdcmImageIO->SetMetaDataDictionary(dictionaryOutput_B);
   366             OxColorbarFilter->SetInput(_imageCalculatorItk->GetBImage());
   367             OxColorbarFilter->SetZerosInsteadOfColorbar(
true);
   370             adaptor->SetInput(OxColorbarFilter->GetOutput());
   371             writer->SetFileName(_opts->dir_output_fitparams + KWUtil::PathSeparator() + newSeriesNumber_R2 + 
"_B.dcm");
   372             writer->SetInput(adaptor->GetOutput());
   373             writer->SetImageIO(gdcmImageIO);
   376             } 
catch (itk::ExceptionObject &e) {
   377                 std::cerr << 
"Exception in file writer " << std::endl;
   378                 std::cerr << e << std::endl;
   382             gdcmImageIO->SetMetaDataDictionary(dictionaryOutput_T1star);
   384             OxColorbarFilter->SetInput(_imageCalculatorItk->GetT1starImage());
   385             OxColorbarFilter->SetZerosInsteadOfColorbar(
true);
   388             adaptor->SetInput(OxColorbarFilter->GetOutput());
   389             writer->SetFileName(_opts->dir_output_fitparams + KWUtil::PathSeparator() + newSeriesNumber_R2 + 
"_T1star.dcm");
   390             writer->SetInput(adaptor->GetOutput());
   391             writer->SetImageIO(gdcmImageIO);
   394             } 
catch (itk::ExceptionObject &e) {
   395                 std::cerr << 
"Exception in file writer " << std::endl;
   396                 std::cerr << e << std::endl;
   400             gdcmImageIO->SetMetaDataDictionary(dictionaryOutput_ShMolliT1Range);
   402             typedef itk::NShmolliSamplesUsedTo123ImageFilter <ImageType2D> nShmolliSamplesUsedTo123FilterType;
   403             typename nShmolliSamplesUsedTo123FilterType::Pointer nShmolliSamplesUsedTo123Filter = nShmolliSamplesUsedTo123FilterType::New();
   404             nShmolliSamplesUsedTo123Filter->SetInput(_imageCalculatorItk->GetNShmolliSamplesUsedImage());
   406             OxColorbarFilter->SetInput(nShmolliSamplesUsedTo123Filter->GetOutput());
   407             OxColorbarFilter->SetZerosInsteadOfColorbar(
true);
   410             adaptor->SetInput(OxColorbarFilter->GetOutput());
   411             writer->SetFileName(_opts->dir_output_fitparams + KWUtil::PathSeparator() + newSeriesNumber_R2 + 
"_ShMolliRange.dcm");
   412             writer->SetInput(adaptor->GetOutput());
   413             writer->SetImageIO(gdcmImageIO);
   416             } 
catch (itk::ExceptionObject &e) {
   417                 std::cerr << 
"Exception in file writer " << std::endl;
   418                 std::cerr << e << std::endl;
   423             gdcmImageIO->SetMetaDataDictionary(dictionaryOutput_nAmebaCallFinal);
   425             OxColorbarFilter->SetInput(_imageCalculatorItk->GetChiSqrtImage());
   426             OxColorbarFilter->SetZerosInsteadOfColorbar(
true);
   429             adaptor->SetInput(OxColorbarFilter->GetOutput());
   430             writer->SetFileName(_opts->dir_output_fitparams + KWUtil::PathSeparator() + newSeriesNumber_R2 + 
"_nAmebaCallFinal.dcm");
   431             writer->SetInput(adaptor->GetOutput());
   432             writer->SetImageIO(gdcmImageIO);
   435             } 
catch (itk::ExceptionObject &e) {
   436                 std::cerr << 
"Exception in file writer " << std::endl;
   437                 std::cerr << e << std::endl;
   442             gdcmImageIO->SetMetaDataDictionary(dictionaryOutput_RelSNRFinal);
   444             OxColorbarFilter->SetInput(_imageCalculatorItk->GetSNRImage());
   445             OxColorbarFilter->SetZerosInsteadOfColorbar(
true);
   448             adaptor->SetInput(OxColorbarFilter->GetOutput());
   449             writer->SetFileName(_opts->dir_output_fitparams + KWUtil::PathSeparator() + newSeriesNumber_R2 + 
"_RelSNRFinal.dcm");
   450             writer->SetInput(adaptor->GetOutput());
   451             writer->SetImageIO(gdcmImageIO);
   454             } 
catch (itk::ExceptionObject &e) {
   455                 std::cerr << 
"Exception in file writer " << std::endl;
   456                 std::cerr << e << std::endl;
   458             std::cout << 
" Saved!" << std::endl;
   470 #endif //Tomato_Tomato_EXPORT_HXX Definition: OxCalculator.h:19