--- /dev/null
+#ifndef __bbSlicerDicomtoNrrdConverter_h_INCLUDED__
+#define __bbSlicerDicomtoNrrdConverter_h_INCLUDED__
+
+#include "bbSlicer_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+
+#include <vector>
+#include <cstdlib>
+#include <dlfcn.h>
+#include <sstream>
+#include <fstream>
+#include <iostream>
+
+#include <ModuleDescriptionUtilities.h>
+#include <ModuleDescriptionParser.h>
+#include <ModuleParameterGroup.h>
+#include <ModuleDescription.h>
+#include <ModuleParameter.h>
+
+#include "CreationTool.h"
+
+namespace bbSlicer {
+
+ class bbSlicer_EXPORT DicomtoNrrdConverter
+ :
+ public bbtk::AtomicBlackBox {
+ BBTK_BLACK_BOX_INTERFACE ( DicomtoNrrdConverter , bbtk::AtomicBlackBox ) ;
+
+ // GENERATED ARGS
+
+BBTK_DECLARE_INPUT ( inputDicomDirectory , std::string );
+BBTK_DECLARE_INPUT ( outputDirectory , std::string );
+BBTK_DECLARE_INPUT ( outputVolume , std::string );
+BBTK_DECLARE_INPUT ( smallGradientThreshold , double );
+BBTK_DECLARE_INPUT ( writeProtocolGradientsFile , bool );
+BBTK_DECLARE_INPUT ( useIdentityMeaseurementFrame , bool );
+BBTK_DECLARE_INPUT ( useBMatrixGradientDirections , bool );
+
+ // EO GENERATED ARGS
+
+ BBTK_PROCESS ( Process ) ;
+ void Process ( ) ;
+ private:
+ void execute ( std::string lib , int _argc , char * _argv[] ) ;
+ } ;
+
+ BBTK_BEGIN_DESCRIBE_BLACK_BOX ( DicomtoNrrdConverter , bbtk::AtomicBlackBox ) ;
+ BBTK_NAME ( "DicomtoNrrdConverter" ) ;
+ BBTK_AUTHOR ( "Xiaodong Tao" ) ;
+ BBTK_DESCRIPTION ( "Converts diffusion weighted MR images in dicom series into Nrrd format for analysis in Slicer. This program has been tested on only a limited subset of DTI dicom formats available from Siemens, GE, and Phillips scanners. Work in progress to support dicom multi-frame data. The program parses dicom header to extract necessary information about measurement frame, diffusion weighting directions, b-values, etc, and write out a nrrd image. For non-diffusion weighted dicom images, it loads in an entire dicom series and writes out a single dicom volume in a .nhdr/.raw pair." ) ;
+ BBTK_CATEGORY ( "Converters" ) ;
+
+ // GENERATED DESCRPTION
+
+BBTK_INPUT(DicomtoNrrdConverter , inputDicomDirectory , "inputDicomDirectory" , std::string, "");
+BBTK_INPUT(DicomtoNrrdConverter , outputDirectory , "outputDirectory" , std::string, "");
+BBTK_INPUT(DicomtoNrrdConverter , outputVolume , "outputVolume" , std::string, "");
+BBTK_INPUT(DicomtoNrrdConverter , smallGradientThreshold , "smallGradientThreshold" , double, "");
+BBTK_INPUT(DicomtoNrrdConverter , writeProtocolGradientsFile , "writeProtocolGradientsFile" , bool, "");
+BBTK_INPUT(DicomtoNrrdConverter , useIdentityMeaseurementFrame , "useIdentityMeaseurementFrame" , bool, "");
+BBTK_INPUT(DicomtoNrrdConverter , useBMatrixGradientDirections , "useBMatrixGradientDirections" , bool, "");
+
+ // EO GENERATED DESCRIPTION
+
+ BBTK_END_DESCRIBE_BLACK_BOX ( DicomtoNrrdConverter ) ;
+}
+
+#endif // __bbSlicerDicomtoNrrdConverter_h_INCLUDED__
+
+