#ifndef _MRILIB_DICOM_STUFF_
#define _MRILIB_DICOM_STUFF_
/*-- manufacturer codes --*/
#undef AFD_MAN_OFFSET
#define AFD_MAN_OFFSET 7532000
#define AFD_MAN_SIEMENS (AFD_MAN_OFFSET + 1)
#define AFD_MAN_GE (AFD_MAN_OFFSET + 2)
#define AFD_MAN_PHILIPS (AFD_MAN_OFFSET + 3)
#define AFD_MAN_TOSHIBA (AFD_MAN_OFFSET + 4)
#define AFD_MAN_FONAR (AFD_MAN_OFFSET + 5)
#define AFD_MAN_HITACHI (AFD_MAN_OFFSET + 6)
#define AFD_MAN_MAGNASERV (AFD_MAN_OFFSET + 7)
#define AFD_MAN_ODIN (AFD_MAN_OFFSET + 8)
#define AFD_MAN_ONI (AFD_MAN_OFFSET + 9)
#define AFD_MAN_BRUKER (AFD_MAN_OFFSET +10)
#define AFD_MAN_VARIAN (AFD_MAN_OFFSET +11)
/*-- struct to hold header info from one file --*/
typedef struct {
int manufacturer_code ; /* from ID group */
float tr , slice_spacing , slice_thick ; /* from ACQ group */
int acq_matrix_xx , acq_matrix_yy ;
float pos_xx , pos_yy , pos_zz , /* from REL group */
ori_ix , ori_iy , ori_iz ,
ori_jx , ori_jy , ori_jz ,
slice_loc ;
float di , dj ; /* from IMG group */
int ni , nj , nk ;
unsigned data_offset, data_length ; /* from PXL group */
int nbits ;
char *filename ; /* where 'tis */
void *extra_info ; /* whatever */
char manufacturer_string[128] ;
} AFD_dicom_header ;
/*-- extra_info from Siemens --*/
#define AFD_EIT_SIEMENS AFD_MAN_SIEMENS
typedef struct {
int eitype ; /* type code for this extra info */
int mosaic_num , /* number of sub-images actually stored in mosaic */
mos_ix,mos_iy , /* number of sub-images along each edge of mosaic */
mos_nx,mos_ny , /* dimensions of mosaic sub-images */
mos_nz ; /* overall size of mosaic = mos_ix * mos_iy */
float auto_align[16]; /* auto align matrix, if [15] == 1 */
int nslice ; /* number of slices we have info about these arrays */
float *position_sag ;
float *position_cor ;
float *position_tra ;
float *normal_sag ;
float *normal_cor ;
float *normal_tra ;
float *inplane_rot ;
} AFD_siemens_info ;
/*-- prototypes --*/
extern char *AFD_manufacturer_code_to_string( int code ) ;
extern void AFD_siemens_info_free( void *aei ) ;
extern void AFD_dicom_header_free( AFD_dicom_header *adh ) ;
#endif /* _MRILIB_DICOM_STUFF_ */
syntax highlighted by Code2HTML, v. 0.9.1