34 #ifndef itkPhilipsPAR_h 35 #define itkPhilipsPAR_h 36 #include "ITKIOPhilipsRECExport.h" 43 #include "vnl/vnl_vector_fixed.h" 45 #define RESEARCH_IMAGE_EXPORT_TOOL_V3 30 46 #define RESEARCH_IMAGE_EXPORT_TOOL_V4 40 47 #define RESEARCH_IMAGE_EXPORT_TOOL_V4_1 41 48 #define RESEARCH_IMAGE_EXPORT_TOOL_V4_2 42 49 #define RESEARCH_IMAGE_EXPORT_TOOL_UNKNOWN -1 51 #define PAR_DEFAULT_STRING_LENGTH 32 52 #define PAR_DEFAULT_TRIGGER_TIMES_SIZE 128 53 #define PAR_DEFAULT_ECHO_TIMES_SIZE 128 54 #define PAR_DEFAULT_REP_TIMES_SIZE 128 55 #define PAR_DEFAULT_IMAGE_TYPES_SIZE 8 56 #define PAR_DEFAULT_SCAN_SEQUENCE_SIZE 8 57 #define PAR_RESCALE_VALUES_SIZE 3 58 #define PAR_DIFFUSION_VALUES_SIZE 3 60 #define PAR_SLICE_ORIENTATION_TRANSVERSAL 1 61 #define PAR_SLICE_ORIENTATION_SAGITTAL 2 62 #define PAR_SLICE_ORIENTATION_CORONAL 3 231 void ReadPAR(std::string parFile,
struct par_parameter *pPar);
238 PARSliceIndexImageTypeVector GetRECSliceIndexImageTypes(
239 std::string parFile);
246 PARSliceIndexScanSequenceVector GetRECSliceIndexScanningSequence(
247 std::string parFile);
254 PARImageTypeScanSequenceVector GetImageTypesScanningSequence(
255 std::string parFile);
262 typedef vnl_vector_fixed< double, PAR_RESCALE_VALUES_SIZE >
266 bool GetRECRescaleValues(std::string parFile,
278 typedef vnl_vector_fixed< double, PAR_DIFFUSION_VALUES_SIZE >
284 bool GetDiffusionGradientOrientationAndBValues(std::string parFile,
290 bool GetLabelTypesASL(std::string parFile,
291 PARLabelTypesASLContainer *labelTypes);
294 std::string GetLineNumber(std::string file,
int lineNum);
299 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
303 void operator=(const Self &) ITK_DELETE_FUNCTION;
306 int GetPARVersion(
std::
string parFile);
309 std::
string GetGeneralInfoString(
std::
string file,
int lineNum);
315 std::vector<
std::
string > m_PARFileLines;
float repetition_time[PAR_DEFAULT_REP_TIMES_SIZE]
#define PAR_DEFAULT_REP_TIMES_SIZE
int num_scanning_sequences
char exam_date[PAR_DEFAULT_STRING_LENGTH]
#define PAR_DEFAULT_ECHO_TIMES_SIZE
char technique[PAR_DEFAULT_STRING_LENGTH]
int num_slice_repetitions
LightProcessObject Superclass
#define PAR_DEFAULT_IMAGE_TYPES_SIZE
std::vector< PARImageTypeScanSequence > PARImageTypeScanSequenceVector
char scan_mode[PAR_DEFAULT_STRING_LENGTH]
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
float trigger_times[PAR_DEFAULT_TRIGGER_TIMES_SIZE]
std::pair< int, int > PARSliceIndexImageType
int image_types[PAR_DEFAULT_IMAGE_TYPES_SIZE]
vnl_vector_fixed< double, PAR_RESCALE_VALUES_SIZE > PARRescaleValues
float phase_encode_vel[3]
char exam_time[PAR_DEFAULT_STRING_LENGTH]
SmartPointer< Self > Pointer
Read parameters from a Philips PAR file.
std::pair< int, int > PARImageTypeScanSequence
float echo_times[PAR_DEFAULT_ECHO_TIMES_SIZE]
char exam_name[PAR_DEFAULT_STRING_LENGTH]
VectorContainer< unsigned int, PARRescaleValues > PARRescaleValuesContainer
char patient_position[PAR_DEFAULT_STRING_LENGTH]
vnl_vector_fixed< double, PAR_DIFFUSION_VALUES_SIZE > PARDiffusionValues
char prep_direction[PAR_DEFAULT_STRING_LENGTH]
char protocol_name[PAR_DEFAULT_STRING_LENGTH]
#define PAR_DEFAULT_SCAN_SEQUENCE_SIZE
VectorContainer< unsigned int, double > PARBValuesContainer
std::vector< PARSliceIndexImageType > PARSliceIndexImageTypeVector
std::vector< PARSliceIndexScanSequence > PARSliceIndexScanSequenceVector
std::pair< int, int > PARSliceIndexScanSequence
#define PAR_DEFAULT_TRIGGER_TIMES_SIZE
char series_type[PAR_DEFAULT_STRING_LENGTH]
char patient_name[PAR_DEFAULT_STRING_LENGTH]
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
LightProcessObject is the base class for all process objects (source, filters, mappers) in the Insigh...
Control indentation during Print() invocation.
VectorContainer< unsigned int, PARDiffusionValues > PARDiffusionValuesContainer
VectorContainer< unsigned int, int > PARLabelTypesASLContainer
#define PAR_DEFAULT_STRING_LENGTH
int scanning_sequences[PAR_DEFAULT_SCAN_SEQUENCE_SIZE]