ecat7h.c
Go to the documentation of this file.
1 /******************************************************************************
2 
3  ecat7h.c (c) 2008 by Turku PET Centre
4 
5  Procedures for editing ECAT 7.x header contents.
6 
7  Version:
8  2008-07-24 Vesa Oikonen
9  Content functions copied from previous programs.
10 
11 ******************************************************************************/
12 #include <stdio.h>
13 #include <stdlib.h>
14 #include <math.h>
15 #include <ctype.h>
16 #include <string.h>
17 #include <strings.h>
18 #include <unistd.h>
19 #include <time.h>
20 /*****************************************************************************/
21 #include <swap.h>
22 #include "include/ecat7.h"
23 #include "include/substitutions.h"
24 /*****************************************************************************/
25 
26 /*****************************************************************************/
34  char *field,
36  char *value
37 ) {
38  int ii, yy, mm, dd, ho, mi, se;
39  struct tm *st;
40  time_t timet;
41  short int si;
42  float f;
43 
44  si=atoi(value); ii=atoi(value); f=atof(value);
45  if(strcmp(field, "magic_number")==0) {
46  strncpy(h->magic_number, value, 14);
47  } else if(strcmp(field, "original_file_name")==0) {
48  strncpy(h->original_file_name, value, 32);
49  } else if(strcmp(field, "sw_version")==0) {
50  if(si<=0) return(2); else h->sw_version=si;
51  } else if(strcmp(field, "system_type")==0) {
52  if(si<0) return(2); else h->system_type=si;
53  } else if(strcmp(field, "file_type")==0) {
54  if(si<0) return(2); else h->file_type=si;
55  } else if(strcmp(field, "serial_number")==0) {
56  strncpy(h->serial_number, value, 10);
57  } else if(strcmp(field, "scan_start_time")==0) {
58  timet=time(NULL); st=localtime(&timet);
59  if(sscanf(value, "%d-%d-%d %d:%d:%d", &yy, &mm, &dd, &ho, &mi, &se)!=6)
60  return(2);
61  st->tm_mday=dd; st->tm_mon=mm-1; st->tm_year=yy-1900;
62  st->tm_hour=ho; st->tm_min=mi; st->tm_sec=se; st->tm_isdst=-1;
63  h->scan_start_time=mktime(st);
64  } else if(strcmp(field, "isotope_name")==0) {
65  strncpy(h->isotope_name, value, 8);
66  } else if(strcmp(field, "isotope_halflife")==0) {
67  if(f<=1.0E-3) return(2); else h->isotope_halflife=f;
68  } else if(strcmp(field, "radiopharmaceutical")==0) {
69  strncpy(h->radiopharmaceutical, value, 32);
70  } else if(strcmp(field, "gantry_tilt")==0) {
71  h->gantry_tilt=f;
72  } else if(strcmp(field, "gantry_rotation")==0) {
73  h->gantry_rotation=f;
74  } else if(strcmp(field, "bed_elevation")==0) {
75  h->bed_elevation=f;
76  } else if(strcmp(field, "intrinsic_tilt")==0) {
77  h->intrinsic_tilt=f;
78  } else if(strcmp(field, "wobble_speed")==0) {
79  h->wobble_speed=si;
80  } else if(strcmp(field, "transm_source_type")==0) {
81  h->transm_source_type=si;
82  } else if(strcmp(field, "distance_scanned")==0) {
83  h->distance_scanned=f;
84  } else if(strcmp(field, "transaxial_fov")==0) {
85  h->transaxial_fov=f;
86  } else if(strcmp(field, "angular_compression")==0) {
87  h->angular_compression=si;
88  } else if(strcmp(field, "coin_samp_mode")==0) {
89  h->coin_samp_mode=si;
90  } else if(strcmp(field, "axial_samp_mode")==0) {
91  h->axial_samp_mode=si;
92  } else if(strcmp(field, "ecat_calibration_factor")==0) {
94  } else if(strcmp(field, "calibration_units")==0) {
95  h->calibration_units=si;
96  } else if(strcmp(field, "calibration_units_label")==0) {
98  } else if(strcmp(field, "compression_code")==0) {
99  h->compression_code=si;
100  } else if(strcmp(field, "study_type")==0) {
101  strncpy(h->study_type, value, 12);
102  } else if(strcmp(field, "patient_id")==0) {
103  strncpy(h->patient_id, value, 16);
104  } else if(strcmp(field, "patient_name")==0) {
105  strncpy(h->patient_name, value, 32);
106  } else if(strcmp(field, "patient_sex")==0) {
107  h->patient_sex=value[0];
108  } else if(strcmp(field, "patient_dexterity")==0) {
109  h->patient_dexterity=value[0];
110  } else if(strcmp(field, "patient_age")==0) {
111  h->patient_age=f;
112  } else if(strcmp(field, "patient_height")==0) {
113  h->patient_height=f;
114  } else if(strcmp(field, "patient_weight")==0) {
115  h->patient_weight=f;
116  } else if(strcmp(field, "patient_birth_date")==0) {
117  timet=time(NULL); st=localtime(&timet);
118  if(sscanf(value, "%d-%d-%d", &yy, &mm, &dd)!=3) return(2);
119  st->tm_mday=dd; st->tm_mon=mm-1; st->tm_year=yy-1900;
120  st->tm_hour=0; st->tm_min=0; st->tm_sec=0; st->tm_isdst=-1;
121  h->patient_birth_date=mktime(st);
122  } else if(strcmp(field, "physician_name")==0) {
123  strncpy(h->physician_name, value, 32);
124  } else if(strcmp(field, "operator_name")==0) {
125  strncpy(h->operator_name, value, 32);
126  } else if(strcmp(field, "study_description")==0) {
127  strncpy(h->study_description, value, 32);
128  } else if(strcmp(field, "acquisition_type")==0) {
129  h->acquisition_type=si;
130  } else if(strcmp(field, "patient_orientation")==0) {
131  h->patient_orientation=si;
132  } else if(strcmp(field, "facility_name")==0) {
133  strncpy(h->facility_name, value, 20);
134  } else if(strcmp(field, "num_planes")==0) {
135  h->num_planes=si;
136  } else if(strcmp(field, "num_frames")==0) {
137  h->num_frames=si;
138  } else if(strcmp(field, "num_gates")==0) {
139  h->num_gates=si;
140  } else if(strcmp(field, "num_bed_pos")==0) {
141  h->num_bed_pos=si;
142  } else if(strcmp(field, "init_bed_position")==0) {
143  h->init_bed_position=f;
144  } else if(strcmp(field, "bed_position")==0) {
145  sscanf(value, "%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f",
146  h->bed_position+0, h->bed_position+1, h->bed_position+2,
147  h->bed_position+3, h->bed_position+4, h->bed_position+5,
148  h->bed_position+6, h->bed_position+7, h->bed_position+8,
149  h->bed_position+9, h->bed_position+10, h->bed_position+11,
150  h->bed_position+12, h->bed_position+13, h->bed_position+14
151  );
152  } else if(strcmp(field, "plane_separation")==0) {
153  h->plane_separation=f;
154  } else if(strcmp(field, "lwr_sctr_thres")==0) {
155  h->lwr_sctr_thres=si;
156  } else if(strcmp(field, "lwr_true_thres")==0) {
157  h->lwr_true_thres=si;
158  } else if(strcmp(field, "upr_true_thres")==0) {
159  h->upr_true_thres=si;
160  } else if(strcmp(field, "user_process_code")==0) {
161  strncpy(h->user_process_code, value, 10);
162  } else if(strcmp(field, "acquisition_mode")==0) {
163  h->acquisition_mode=si;
164  } else if(strcmp(field, "bin_size")==0) {
165  h->bin_size=f;
166  } else if(strcmp(field, "branching_fraction")==0) {
167  h->branching_fraction=f;
168  } else if(strcmp(field, "dose_start_time")==0) {
169  timet=time(NULL); st=localtime(&timet);
170  if(sscanf(value, "%d-%d-%d %d:%d:%d", &yy, &mm, &dd, &ho, &mi, &se)!=6)
171  return(2);
172  st->tm_mday=dd; st->tm_mon=mm-1; st->tm_year=yy-1900;
173  st->tm_hour=ho; st->tm_min=mi; st->tm_sec=se; st->tm_isdst=-1;
174  h->dose_start_time=mktime(st);
175  } else if(strcmp(field, "dosage")==0) {
176  h->dosage=f;
177  } else if(strcmp(field, "well_counter_corr_factor")==0) {
179  } else if(strcmp(field, "data_units")==0) {
180  strncpy(h->data_units, value, 32);
181  } else if(strcmp(field, "septa_state")==0) {
182  h->septa_state=si;
183  } else
184  return(1);
185 
186  return(0);
187 }
188 /*****************************************************************************/
189 
190 /*****************************************************************************/
197  ECAT7_scanheader *h,
199  char *field,
201  char *value
202 ) {
203  int i, ii;
204  short int si;
205  float f;
206  char *cptr;
207 
208  si=atoi(value); ii=atoi(value); f=atof(value);
209 
210  if(strcasecmp(field, "DATA_TYPE")==0) {
211  h->data_type=si;
212  } else if(strcasecmp(field, "NUM_DIMENSIONS")==0) {
213  h->num_dimensions=si;
214  } else if(strcasecmp(field, "NUM_R_ELEMENTS")==0) {
215  h->num_r_elements=si;
216  } else if(strcasecmp(field, "NUM_ANGLES")==0) {
217  h->num_angles=si;
218  } else if(strcasecmp(field, "CORRECTIONS_APPLIED")==0) {
219  h->corrections_applied=si;
220  } else if(strncasecmp(field, "NUM_Z_ELEMENTS", 14)==0) {
221  cptr=strtok(value, " \t,;\n\r");
222  for(i=0; i<64; i++) {
223  if(cptr==NULL) break;
224  h->num_z_elements[i]=(short int)atoi(cptr);
225  cptr=strtok(NULL, " \t,;\n\r");
226  }
227  } else if(strcasecmp(field, "RING_DIFFERENCE")==0) {
228  h->ring_difference=si;
229  } else if(strcasecmp(field, "STORAGE_ORDER")==0) {
230  h->storage_order=si;
231  } else if(strcasecmp(field, "AXIAL_COMPRESSION")==0) {
232  h->axial_compression=si;
233  } else if(strcasecmp(field, "X_RESOLUTION")==0) {
234  h->x_resolution=f;
235  } else if(strcasecmp(field, "V_RESOLUTION")==0) {
236  h->v_resolution=f;
237  } else if(strcasecmp(field, "Z_RESOLUTION")==0) {
238  h->z_resolution=f;
239  } else if(strcasecmp(field, "W_RESOLUTION")==0) {
240  h->w_resolution=f;
241  } else if(strncasecmp(field, "FILL_GATE", 9)==0) {
242  cptr=strtok(value, " \t,;\n\r");
243  for(i=0; i<6; i++) {
244  if(cptr==NULL) break;
245  h->fill_gate[i]=(short int)atoi(cptr);
246  cptr=strtok(NULL, " \t,;\n\r");
247  }
248  } else if(strcasecmp(field, "GATE_DURATION")==0) {
249  h->gate_duration=ii;
250  } else if(strcasecmp(field, "R_WAVE_OFFSET")==0) {
251  h->r_wave_offset=ii;
252  } else if(strcasecmp(field, "NUM_ACCEPTED_BEATS")==0) {
253  h->num_accepted_beats=ii;
254  } else if(strcasecmp(field, "SCALE_FACTOR")==0) {
255  h->scale_factor=f;
256  } else if(strcasecmp(field, "SCAN_MIN")==0) {
257  h->scan_min=si;
258  } else if(strcasecmp(field, "SCAN_MAX")==0) {
259  h->scan_max=si;
260  } else if(strcasecmp(field, "PROMPTS")==0) {
261  h->prompts=ii;
262  } else if(strcasecmp(field, "DELAYED")==0) {
263  h->delayed=ii;
264  } else if(strcasecmp(field, "MULTIPLES")==0) {
265  h->multiples=ii;
266  } else if(strcasecmp(field, "NET_TRUES")==0) {
267  h->net_trues=ii;
268  } else if(strcasecmp(field, "TOT_AVG_COR")==0) {
269  h->tot_avg_cor=f;
270  } else if(strcasecmp(field, "TOT_AVG_UNCOR")==0) {
271  h->tot_avg_uncor=f;
272  } else if(strcasecmp(field, "TOTAL_COIN_RATE")==0) {
273  h->total_coin_rate=ii;
274  } else if(strcasecmp(field, "FRAME_START_TIME")==0) {
275  h->frame_start_time=ii;
276  } else if(strcasecmp(field, "FRAME_DURATION")==0) {
277  h->frame_duration=ii;
278  } else if(strcasecmp(field, "DEADTIME_CORRECTION_FACTOR")==0) {
280  } else if(strncasecmp(field, "FILL_CTI", 8)==0) {
281  cptr=strtok(value, " \t,;\n\r");
282  for(i=0; i<90; i++) {
283  if(cptr==NULL) break;
284  h->fill_cti[i]=(short int)atoi(cptr);
285  cptr=strtok(NULL, " \t,;\n\r");
286  }
287  } else if(strncasecmp(field, "FILL_USER", 9)==0) {
288  cptr=strtok(value, " \t,;\n\r");
289  for(i=0; i<50; i++) {
290  if(cptr==NULL) break;
291  h->fill_user[i]=(short int)atoi(cptr);
292  cptr=strtok(NULL, " \t,;\n\r");
293  }
294  } else if(strncasecmp(field, "UNCOR_SINGLES", 13)==0) {
295  cptr=strtok(value, " \t,;\n\r");
296  for(i=0; i<128; i++) {
297  if(cptr==NULL) break;
298  h->fill_user[i]=(float)atof(cptr);
299  cptr=strtok(NULL, " \t,;\n\r");
300  }
301  } else
302  return(1);
303  return(0);
304 }
305 /*****************************************************************************/
306 
307 /*****************************************************************************/
316  char *field,
318  char *value
319 ) {
320  int ii;
321  short int si;
322  float f;
323 
324  si=atoi(value); ii=atoi(value); f=atof(value);
325 
326  if(strcasecmp(field, "DATA_TYPE")==0) {
327  h->data_type=si;
328  } else if(strcasecmp(field, "NUM_DIMENSIONS")==0) {
329  h->num_dimensions=si;
330  } else if(strcasecmp(field, "X_DIMENSION")==0) {
331  h->x_dimension=si;
332  } else if(strcasecmp(field, "Y_DIMENSION")==0) {
333  h->y_dimension=si;
334  } else if(strcasecmp(field, "Z_DIMENSION")==0) {
335  h->z_dimension=si;
336  } else if(strcasecmp(field, "X_OFFSET")==0) {
337  h->x_offset=f;
338  } else if(strcasecmp(field, "Y_OFFSET")==0) {
339  h->y_offset=f;
340  } else if(strcasecmp(field, "Z_OFFSET")==0) {
341  h->z_offset=f;
342  } else if(strcasecmp(field, "RECON_ZOOM")==0) {
343  h->recon_zoom=f;
344  } else if(strcasecmp(field, "SCALE_FACTOR")==0) {
345  h->scale_factor=f;
346  } else if(strcasecmp(field, "IMAGE_MIN")==0) {
347  h->image_min=si;
348  } else if(strcasecmp(field, "IMAGE_MAX")==0) {
349  h->image_max=si;
350  } else if(strcasecmp(field, "X_PIXEL_SIZE")==0) {
351  h->x_pixel_size=f;
352  } else if(strcasecmp(field, "Y_PIXEL_SIZE")==0) {
353  h->y_pixel_size=f;
354  } else if(strcasecmp(field, "Z_PIXEL_SIZE")==0) {
355  h->z_pixel_size=f;
356  } else if(strcasecmp(field, "FRAME_DURATION")==0) {
357  h->frame_duration=ii;
358  } else if(strcasecmp(field, "FRAME_START_TIME")==0) {
359  h->frame_start_time=ii;
360  } else if(strcasecmp(field, "FILTER_CODE")==0) {
361  h->filter_code=si;
362  } else if(strcasecmp(field, "X_RESOLUTION")==0) {
363  h->x_resolution=f;
364  } else if(strcasecmp(field, "Y_RESOLUTION")==0) {
365  h->y_resolution=f;
366  } else if(strcasecmp(field, "Z_RESOLUTION")==0) {
367  h->z_resolution=f;
368  } else if(strcasecmp(field, "NUM_R_ELEMENTS")==0) {
369  h->num_r_elements=f;
370  } else if(strcasecmp(field, "NUM_ANGLES")==0) {
371  h->num_angles=f;
372  } else if(strcasecmp(field, "Z_ROTATION_ANGLES")==0) {
373  h->z_rotation_angle=f;
374  } else if(strcasecmp(field, "DECAY_CORR_FCTR")==0) {
375  h->decay_corr_fctr=f;
376  } else if(strcasecmp(field, "PROCESSING_CODE")==0) {
377  h->processing_code=ii;
378  } else if(strcasecmp(field, "GATE_DURATIONR")==0) {
379  h->gate_duration=ii;
380  } else if(strcasecmp(field, "R_WAVE_OFFSET")==0) {
381  h->r_wave_offset=ii;
382  } else if(strcasecmp(field, "NUM_ACCEPTED_BEATS")==0) {
383  h->num_accepted_beats=ii;
384  } else if(strcasecmp(field, "FILTER_CUTOFF_FREQUENCY")==0) {
386  } else if(strcasecmp(field, "FILTER_RESOLUTION")==0) {
387  h->filter_resolution=f;
388  } else if(strcasecmp(field, "FILTER_RAMP_SLOPE")==0) {
389  h->filter_ramp_slope=f;
390  } else if(strcasecmp(field, "FILTER_ORDER")==0) {
391  h->filter_order=f;
392  } else if(strcasecmp(field, "FILTER_SCATTER_FRACTION")==0) {
394  } else if(strcasecmp(field, "FILTER_SCATTER_SLOPE")==0) {
395  h->filter_scatter_slope=si;
396  } else if(strcasecmp(field, "ANNOTATION")==0) {
397  strncpy(h->annotation, value, 40);
398  } else if(strcasecmp(field, "MT_1_1")==0) {
399  h->mt_1_1=f;
400  } else if(strcasecmp(field, "MT_1_2")==0) {
401  h->mt_1_2=f;
402  } else if(strcasecmp(field, "MT_1_3")==0) {
403  h->mt_1_3=f;
404  } else if(strcasecmp(field, "MT_2_1")==0) {
405  h->mt_2_1=f;
406  } else if(strcasecmp(field, "MT_2_2")==0) {
407  h->mt_2_2=f;
408  } else if(strcasecmp(field, "MT_2_3")==0) {
409  h->mt_2_3=f;
410  } else if(strcasecmp(field, "MT_3_1")==0) {
411  h->mt_3_1=f;
412  } else if(strcasecmp(field, "MT_3_2")==0) {
413  h->mt_3_2=f;
414  } else if(strcasecmp(field, "MT_3_3")==0) {
415  h->mt_3_3=f;
416  } else if(strcasecmp(field, "RFILTER_CUTOFF")==0) {
417  h->rfilter_cutoff=f;
418  } else if(strcasecmp(field, "RFILTER_RESOLUTION")==0) {
419  h->rfilter_resolution=f;
420  } else if(strcasecmp(field, "RFILTER_CODE")==0) {
421  h->rfilter_code=si;
422  } else if(strcasecmp(field, "RFILTER_ORDER")==0) {
423  h->rfilter_order=si;
424  } else if(strcasecmp(field, "ZFILTER_CUTOFF")==0) {
425  h->zfilter_cutoff=f;
426  } else if(strcasecmp(field, "ZFILTER_RESOLUTION")==0) {
427  h->zfilter_resolution=f;
428  } else if(strcasecmp(field, "ZFILTER_CODE")==0) {
429  h->zfilter_code=si;
430  } else if(strcasecmp(field, "ZFILTER_ORDER")==0) {
431  h->zfilter_order=si;
432  } else if(strcasecmp(field, "MT_1_4")==0) {
433  h->mt_1_4=f;
434  } else if(strcasecmp(field, "MT_2_4")==0) {
435  h->mt_2_4=f;
436  } else if(strcasecmp(field, "MT_3_4")==0) {
437  h->mt_3_4=f;
438  } else if(strcasecmp(field, "SCATTER_TYPE")==0) {
439  h->scatter_type=si;
440  } else if(strcasecmp(field, "RECON_TYPE")==0) {
441  h->recon_type=si;
442  } else if(strcasecmp(field, "RECON_VIEWS")==0) {
443  h->recon_views=si;
444  } else
445  return(1);
446 
447  return(0);
448 }
449 /*****************************************************************************/
450 
451 /*****************************************************************************/
452 
float tot_avg_cor
Definition: ecat7.h:403
float z_resolution
Definition: ecat7.h:270
float z_pixel_size
Definition: ecat7.h:258
char study_type[12]
Definition: ecat7.h:154
short int calibration_units_label
Definition: ecat7.h:150
float well_counter_corr_factor
Definition: ecat7.h:219
float isotope_halflife
Definition: ecat7.h:121
short int num_z_elements[64]
Definition: ecat7.h:365
float mt_3_1
Definition: ecat7.h:314
float x_resolution
Definition: ecat7.h:373
int patient_birth_date
Definition: ecat7.h:172
int ecat7EditVHeader(ECAT7_imageheader *h, char *field, char *value)
Definition: ecat7h.c:312
float recon_zoom
Definition: ecat7.h:246
float z_rotation_angle
Definition: ecat7.h:276
short int compression_code
Definition: ecat7.h:152
int ecat7EditSHeader(ECAT7_scanheader *h, char *field, char *value)
Definition: ecat7h.c:195
short int filter_code
Definition: ecat7.h:264
short int corrections_applied
Definition: ecat7.h:363
float branching_fraction
Definition: ecat7.h:213
short int zfilter_code
Definition: ecat7.h:332
float filter_scatter_fraction
Definition: ecat7.h:296
short int recon_type
Definition: ecat7.h:344
int scan_start_time
Definition: ecat7.h:117
float ecat_calibration_factor
Definition: ecat7.h:146
short int patient_orientation
Definition: ecat7.h:183
short int num_dimensions
Definition: ecat7.h:232
int num_accepted_beats
Definition: ecat7.h:387
int r_wave_offset
Definition: ecat7.h:284
float x_offset
Definition: ecat7.h:240
float tot_avg_uncor
Definition: ecat7.h:405
short int num_bed_pos
Definition: ecat7.h:193
float mt_3_3
Definition: ecat7.h:318
char operator_name[32]
Definition: ecat7.h:176
float filter_resolution
Definition: ecat7.h:290
short int num_angles
Definition: ecat7.h:361
short int data_type
Definition: ecat7.h:355
short int z_dimension
Definition: ecat7.h:238
float y_resolution
Definition: ecat7.h:268
short int lwr_true_thres
Definition: ecat7.h:203
short int num_frames
Definition: ecat7.h:189
char original_file_name[32]
Definition: ecat7.h:107
short int data_type
Definition: ecat7.h:230
short int rfilter_order
Definition: ecat7.h:326
float mt_3_4
Definition: ecat7.h:340
short int file_type
Definition: ecat7.h:113
short int fill_cti[90]
Definition: ecat7.h:415
float x_resolution
Definition: ecat7.h:266
float transaxial_fov
Definition: ecat7.h:139
float patient_age
Definition: ecat7.h:164
float zfilter_cutoff
Definition: ecat7.h:328
short int rfilter_code
Definition: ecat7.h:324
char patient_id[16]
Definition: ecat7.h:156
float mt_2_2
Definition: ecat7.h:310
short int num_dimensions
Definition: ecat7.h:357
char serial_number[10]
Definition: ecat7.h:115
char isotope_name[8]
Definition: ecat7.h:119
short int num_gates
Definition: ecat7.h:191
float bed_elevation
Definition: ecat7.h:129
float v_resolution
Definition: ecat7.h:375
int frame_start_time
Definition: ecat7.h:262
char patient_name[32]
Definition: ecat7.h:158
float patient_height
Definition: ecat7.h:166
float scale_factor
Definition: ecat7.h:389
float distance_scanned
Definition: ecat7.h:137
short int x_dimension
Definition: ecat7.h:234
float mt_1_1
Definition: ecat7.h:302
float y_offset
Definition: ecat7.h:242
float rfilter_cutoff
Definition: ecat7.h:320
short int lwr_sctr_thres
Definition: ecat7.h:201
short int angular_compression
Definition: ecat7.h:141
char annotation[40]
Definition: ecat7.h:300
float y_pixel_size
Definition: ecat7.h:256
short int scatter_type
Definition: ecat7.h:342
char magic_number[14]
Definition: ecat7.h:105
float deadtime_correction_factor
Definition: ecat7.h:413
short int calibration_units
Definition: ecat7.h:148
char physician_name[32]
Definition: ecat7.h:174
float init_bed_position
Definition: ecat7.h:195
short int septa_state
Definition: ecat7.h:223
float mt_2_3
Definition: ecat7.h:312
float x_pixel_size
Definition: ecat7.h:254
float mt_2_4
Definition: ecat7.h:338
short int scan_min
Definition: ecat7.h:391
float mt_1_3
Definition: ecat7.h:306
short int sw_version
Definition: ecat7.h:109
short int coin_samp_mode
Definition: ecat7.h:143
int frame_duration
Definition: ecat7.h:260
short int ring_difference
Definition: ecat7.h:367
float zfilter_resolution
Definition: ecat7.h:330
int r_wave_offset
Definition: ecat7.h:385
short int num_planes
Definition: ecat7.h:187
float mt_3_2
Definition: ecat7.h:316
short int zfilter_order
Definition: ecat7.h:334
float mt_2_1
Definition: ecat7.h:308
float filter_scatter_slope
Definition: ecat7.h:298
float rfilter_resolution
Definition: ecat7.h:322
short int upr_true_thres
Definition: ecat7.h:205
float patient_weight
Definition: ecat7.h:168
char patient_dexterity
Definition: ecat7.h:162
float mt_1_2
Definition: ecat7.h:304
int frame_start_time
Definition: ecat7.h:409
float z_resolution
Definition: ecat7.h:377
short int axial_compression
Definition: ecat7.h:371
short int acquisition_mode
Definition: ecat7.h:209
float intrinsic_tilt
Definition: ecat7.h:131
int dose_start_time
Definition: ecat7.h:215
float plane_separation
Definition: ecat7.h:199
float bed_position[15]
Definition: ecat7.h:197
short int filter_order
Definition: ecat7.h:294
short int storage_order
Definition: ecat7.h:369
char user_process_code[10]
Definition: ecat7.h:207
float z_offset
Definition: ecat7.h:244
short int y_dimension
Definition: ecat7.h:236
short int transm_source_type
Definition: ecat7.h:135
int num_accepted_beats
Definition: ecat7.h:286
char patient_sex
Definition: ecat7.h:160
int gate_duration
Definition: ecat7.h:282
float filter_ramp_slope
Definition: ecat7.h:292
int processing_code
Definition: ecat7.h:280
short int acquisition_type
Definition: ecat7.h:181
float decay_corr_fctr
Definition: ecat7.h:278
char data_units[32]
Definition: ecat7.h:221
short int system_type
Definition: ecat7.h:111
float gantry_rotation
Definition: ecat7.h:127
short int fill_user[50]
Definition: ecat7.h:417
char study_description[32]
Definition: ecat7.h:178
short int image_max
Definition: ecat7.h:252
float dosage
Definition: ecat7.h:217
short int axial_samp_mode
Definition: ecat7.h:145
int total_coin_rate
Definition: ecat7.h:407
int frame_duration
Definition: ecat7.h:411
short int scan_max
Definition: ecat7.h:393
float filter_cutoff_frequency
Definition: ecat7.h:288
short int recon_views
Definition: ecat7.h:346
int ecat7EditMHeader(ECAT7_mainheader *h, char *field, char *value)
Definition: ecat7h.c:30
int gate_duration
Definition: ecat7.h:383
short int wobble_speed
Definition: ecat7.h:133
short int fill_gate[6]
Definition: ecat7.h:381
char radiopharmaceutical[32]
Definition: ecat7.h:123
float gantry_tilt
Definition: ecat7.h:125
float mt_1_4
Definition: ecat7.h:336
short int num_r_elements
Definition: ecat7.h:359
float num_r_elements
Definition: ecat7.h:272
float scale_factor
Definition: ecat7.h:248
float num_angles
Definition: ecat7.h:274
short int image_min
Definition: ecat7.h:250
float bin_size
Definition: ecat7.h:211
float w_resolution
Definition: ecat7.h:379
char facility_name[20]
Definition: ecat7.h:185