19 {
20 int ii, si, ri, fi, n, ret;
21 char tmp[1024], tmp2[512], *cptr;
23 float f[6];
24
25
26
27 if(filename==NULL || dft==NULL || strlen(filename)<1) {
28 strcpy(
dfterrmsg,
"program error");
return(1);
29 }
30
31
34
35
36 strcpy(tmp,
"Image Position"); ii=
iftGet(&ift, tmp, 0);
38 strcpy(tmp,
"XAxis"); ii=
iftGet(&ift, tmp, 0);
40 strcpy(tmp,
"YAxis"); ii=
iftGet(&ift, tmp, 0);
42
43
44 strcpy(tmp, "Curve X Dur Max Min Mean StdDev");
47 si=ii+1;
48
49
50 ri=fi=0; strcpy(tmp2, ""); n=1;
51 for(ii=si; ii<ift.
keyNr; ii++) {
52 if(sscanf(ift.
item[ii].
value,
"%s", tmp)!=1) {
54 if(strcmp(tmp, tmp2)==0) {
55 n++; if(n>fi) fi=n;
56 } else {
57 ri++; strcpy(tmp2, tmp); if(n>fi) fi=n; n=1;
58 }
59
60 }
62
63
67
68
69 ri=fi=0; strcpy(tmp2, ""); n=1;
70 for(ii=si; ii<ift.
keyNr; ii++) {
71 if(sscanf(ift.
item[ii].
value,
"%s %f %f %f %f %f %f",
72 tmp, f, f+1, f+2, f+3, f+4, f+5)!=7) {
74 if(strcmp(tmp, tmp2)==0) n++;
75 else {ri++; strcpy(tmp2, tmp); if(n>fi) fi=n; n=1;}
76
77
79
80
81 if(ri==1) {
82 dft->
x1[n-1]=f[0]; dft->
x2[n-1]=f[0]+f[1];
83 dft->
x[n-1]=0.5*(dft->
x1[n-1]+dft->
x2[n-1]);
84 } else {
85 if(fabs(dft->
x1[n-1]-f[0])>1.0E-12 || fabs(dft->
x2[n-1]-f[0]-f[1])>1.0E-12) {
87 }
88
89 dft->
voi[ri-1].
y[n-1]=f[4];
90 }
91
92
93 strcpy(tmp,
"Image Position"); ii=
iftGet(&ift, tmp, 0);
94 if(ii>=0) {
95 f[0]=atof(ift.
item[ii].
value); sprintf(tmp,
"%-6.0f", f[0]); tmp[6]=
'\0';
96 for(ri=0; ri<dft->
voiNr; ri++) {
99 }
100 }
101
102
103 strcpy(tmp,
"YAxis"); ii=
iftGet(&ift, tmp, 0);
104 if(ii>=0 && strncasecmp(ift.
item[ii].
value,
"Uptake (Bqml)", 8)==0) {
106 if( strncasecmp(cptr,
"Bqml", 4)==0) strcpy(dft->
unit,
"Bq/ml");
107 else if(strncasecmp(cptr,
"kBqml", 5)==0) strcpy(dft->
unit,
"kBq/ml");
108 else if(strncasecmp(cptr,
"MBqml", 5)==0) strcpy(dft->
unit,
"MBq/ml");
109 else if(strncasecmp(cptr,
"Bqcc", 4)==0) strcpy(dft->
unit,
"Bq/ml");
110 else if(strncasecmp(cptr,
"kBqcc", 5)==0) strcpy(dft->
unit,
"kBq/ml");
111 else if(strncasecmp(cptr,
"MBqcc", 5)==0) strcpy(dft->
unit,
"MBq/ml");
112 }
113
114
116 strcpy(tmp,
"XAxis"); ii=
iftGet(&ift, tmp, 0);
117 if(ii>=0) {
120 }
121
123
124
126
127
131
132 return(0);
133}
int dftSetmem(DFT *data, int frameNr, int voiNr)
int iftRead(IFT *ift, char *filename, int is_key_required, int verbose)
int iftFindNthValue(IFT *ift, char *str, int n, int verbose)
int iftGet(IFT *ift, char *key, int verbose)
size_t strlcpy(char *dst, const char *src, size_t dstsize)
int studynr_from_fname(char *fname, char *studynr)
#define MAX_REGIONSUBNAME_LEN
char studynr[MAX_STUDYNR_LEN+1]
char unit[MAX_UNITS_LEN+1]
char voiname[MAX_REGIONSUBNAME_LEN+1]
char name[MAX_REGIONNAME_LEN+1]
char place[MAX_REGIONSUBNAME_LEN+1]