#ifndef __bbSlicerDicomtoNrrdConverter_h_INCLUDED__ #define __bbSlicerDicomtoNrrdConverter_h_INCLUDED__ #include "bbSlicer_EXPORT.h" #include "bbtkAtomicBlackBox.h" #include #include #include #include #include #include #include #include #include #include #include #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__