5#ifndef _LIBTPCCURVEIO_H_
6#define _LIBTPCCURVEIO_H_
10#include "tpcclibConfig.h"
25#ifndef BACKUP_EXTENSION
27#define BACKUP_EXTENSION ".bak"
37#ifndef _DFT_COMMENT_LEN
38#define _DFT_COMMENT_LEN 16384
88 char radiopharmaceutical[32];
94 char scanStartTime[20];
96 char injectionTime[20];
114 char comments[_DFT_COMMENT_LEN+1];
133#define MAX_RESPARAMS 100
135#ifndef MAX_RESPARNAME_LEN
137#define MAX_RESPARNAME_LEN 15
181 char datafile[FILENAME_MAX];
183 char reffile[FILENAME_MAX];
185 char plasmafile[FILENAME_MAX];
187 char plasmafile2[FILENAME_MAX];
189 char bloodfile[FILENAME_MAX];
220 char titleline[1024];
234#define FIT_VER "FIT1"
239#define MAX_FITPARAMS 100
244 MF_LEVEL=100, MF_LINE, MF_POL2, MF_POL3, MF_POL4, MF_POL5, MF_POL6, MF_POL7,
246 MF_RATF11=211, MF_RATF21=221, MF_RATF22=222, MF_RATF32=232, MF_RATF33=233,
247 MF_EXP1=301, MF_EXP2, MF_EXP3, MF_EXP4, MF_EXP5,
248 MF_LUNDQVIST=321, MF_LUNDQVIST2, MF_LUNDQVIST3,
249 MF_EXPBOLUSINF=331, MF_EXPBOLUSINF_RW=332, MF_MF_EXPBOLUSINF_AZ=334,
253 MF_HILL=841, MF_1MHILL=842, MF_1MHILL_ADE=843, MF_HILL_B=844, MF_AMHILL=845,
254 MF_EHILL_PAR=846, MF_EHILL_MET=847,
255 MF_EHILL2_PAR=848, MF_EHILL2_MET=849,
256 MF_MAMEDE=851, MF_1MMAMEDE,
257 MF_MAYER_PAR=861, MF_MAYER_MET, MF_EMAYER_PAR=863, MF_EMAYER_MET,
258 MF_HILL3M_PAR=871, MF_HILL3M_M1, MF_HILL3M_M2, MF_HILL3M_M3,
259 MF_PF3M_PAR=881, MF_PF3M_M1, MF_PF3M_M2, MF_PF3M_M3,
262 MF_FENGM2S=1312, MF_FENGM2=1313, MF_FENGM2E=1314,
263 MF_GAMMAV=1401, MF_GAMMAVB=1402, MF_GAMMAVR=1403,
264 MF_WEIBULLCDF_D=1421, MF_WEIBULLCDF_DD=1423,
265 MF_SURGE=1431, MF_SURGE_TRAD=1432, MF_SURGE_RECIRC=1433, MF_P2B_SRC=1434, MF_SURGE_FDG=1435,
267 MF_HILL_D=1801, MF_HILL_DD=1811, MF_HILL_SDD=1821,
269 MF_P2B_RF=2233, MF_P2B_FM2=2313, MF_P2B_HILL=2841,
270 MF_GRAHAM_INP=9501, MF_GRAHAM_EINP, MF_GRAHAM_INPM,
271 MF_HUANG_MET=9601, MF_CARSON_EMET, MF_NEW_MET,
313 char datafile[FILENAME_MAX];
339extern int cptrnameSplit(
char *rname,
char *name1,
char *name2,
char *name3,
int max_name_len);
341extern int cptWrite(
DFT *dft,
char *filename,
int cpt_format);
348enum {CSV_OK, CSV_ERROR, CSV_CANNOTOPEN, CSV_INVALIDFORMAT, CSV_TOOBIG,
349 CSV_OUTOFMEMORY, CSV_NOTABLE
388extern char*
csvCell(
CSV *csv,
int row,
int col);
401#define DFT_FORMAT_UNKNOWN -1
403#define DFT_FORMAT_PLAIN 0
405#define DFT_FORMAT_STANDARD 1
407#define DFT_FORMAT_IFT 2
409#define DFT_FORMAT_FIT 3
411#define DFT_FORMAT_NCI 4
413#define DFT_FORMAT_PMOD 5
415#define DFT_FORMAT_CSV_INT 6
417#define DFT_FORMAT_CSV_UK 7
419#define DFT_FORMAT_CPT 8
421#define DFT_FORMAT_IDWC 9
423#define DFT_FORMAT_IF 10
425#define DFT_FORMAT_XML 11
427#define DFT_FORMAT_HTML 12
429#define DFT_FORMAT_XELERIS 13
432#define DFT_TIME_MIDDLE 0
434#define DFT_TIME_START 1
436#define DFT_TIME_END 2
438#define DFT_TIME_STARTEND 3
441#define DFT_DECAY_UNKNOWN 0
443#define DFT_DECAY_CORRECTED 1
445#define DFT_DECAY_NOTCORRECTED 2
470extern int dftMinMax(
DFT *dft,
double *minx,
double *maxx,
double *miny,
double *maxy);
472 DFT *dft,
int tacindex,
double *minx,
double *maxx,
473 double *miny,
double *maxy,
int *mini,
int *maxi,
int *mins,
int *maxs
475extern int dftMaxY(
DFT *dft,
double t1,
double t2,
double *miny,
double *maxy);
487extern int dftValidNr(
DFT *dft,
double tstart,
double tstop,
int index);
491#define initDFT dftInit
492#define emptyDFT dftEmpty
493#define setmemDFT dftSetmem
494#define addmemDFT dftAddmem
496#define selectDFT dftSelect
497#define frametimesDFT dftFrametimes
498#define overflowDFT dftOverflow
499#define copyvoiDFT dftCopyvoi
500#define copymainhdrDFT dftCopymainhdr
501#define copyvoihdrDFT dftCopyvoihdr
502#define addnullframeDFT dftAddnullframe
503#define sortDFT dftSort
504#define na_fillDFT dftNAfill
511 DFT *dft,
double hl,
int mode,
int y,
int y2,
int y3,
512 char *status,
int verbose
548#define dftUnitId petCunitId
549#define dftUnit petCunit
550#define dftTimeunitId petTunitId
551#define dftTimeunit petTunit
553#define DFTUNIT_UNKNOWN CUNIT_UNKNOWN
554#define DFTUNIT_CPS CUNIT_CPS
555#define DFTUNIT_COUNTS CUNIT_COUNTS
556#define DFTUNIT_KBQ_PER_ML CUNIT_KBQ_PER_ML
557#define DFTUNIT_SEC_KBQ_PER_ML CUNIT_SEC_KBQ_PER_ML
558#define DFTUNIT_PER_SEC CUNIT_PER_SEC
559#define DFTUNIT_PER_MIN CUNIT_PER_MIN
560#define DFTUNIT_ML_PER_ML CUNIT_ML_PER_ML
561#define DFTUNIT_ML_PER_DL CUNIT_ML_PER_DL
562#define DFTUNIT_ML_PER_ML_PER_MIN CUNIT_ML_PER_ML_PER_MIN
563#define DFTUNIT_ML_PER_DL_PER_MIN CUNIT_ML_PER_DL_PER_MIN
564#define DFTUNIT_UNITLESS CUNIT_UNITLESS
565#define DFTUNIT_NCI_PER_ML CUNIT_NCI_PER_ML
566#define DFTUNIT_MBQ_PER_ML CUNIT_MBQ_PER_ML
567#define DFTUNIT_BQ_PER_ML CUNIT_BQ_PER_ML
568#define DFTUNIT_UCI_PER_ML CUNIT_UCI_PER_ML
569#define DFTUNIT_UMOL_PER_MIN_PER_100G CUNIT_UMOL_PER_MIN_PER_100G
570#define DFTUNIT_MG_PER_MIN_PER_100G CUNIT_MG_PER_MIN_PER_100G
572#define DFTTIME_UNKNOWN TUNIT_UNKNOWN
573#define DFTTIME_SEC TUNIT_SEC
574#define DFTTIME_MIN TUNIT_MIN
575#define DFTTIME_UM TUNIT_UM
576#define DFTTIME_MM TUNIT_MM
595extern int ifRead(
char *filename,
DFT *dft);
612extern int fitRead(
char *filename,
FIT *fit,
int verbose);
621extern unsigned int factorial(
unsigned int n);
622extern unsigned long long int lfactorial(
unsigned long long int n);
623extern double igam(
double a,
double x);
624extern double igamc(
double a,
double x);
628#define emptyFIT fitEmpty
629#define initFIT fitInit
630#define setmemFIT fitSetmem
631#define printFIT fitPrint
632#define writeFIT fitWrite
633#define readFIT fitRead
634#define evalFIT fitEval
635#define evaltacFIT fitEvaltac
636#define functionnameFIT fitFunctionname
637#define functionformatFIT fitFunctionformat
638#define ievalFIT fitIntegralEval
639#define ievaltacFIT fitIntegralEvaltac
640#define devalFIT fitDerivEval
641#define devaltacFIT fitDerivEvaltac
670extern int resRead(
char *filename,
RES *res,
int verbose);
671extern int resWrite(
RES *res,
char *filename,
int verbose);
674extern int resMedian(
double *data,
int nr,
double *median,
double *min,
double *max);
675extern int resMean(
double *data,
int nr,
double *
mean,
double *sd);
690 RES *res1,
RES *res2,
int test_par,
double test_limit,
int test_sd);
692 RES *res1,
RES *res2,
int test_par,
double test_limit,
int test_sd);
int dftAddnullframe(DFT *data)
int dftRead(char *filename, DFT *data)
int dftCopyvoihdr(DFT *dft1, int from, DFT *dft2, int to)
int dftRemoveTimeRange(DFT *dft, double startT, double endT)
int csv2dft_a(CSV *csv, DFT *dft)
int dftMinMaxTAC(DFT *dft, int tacindex, double *minx, double *maxx, double *miny, double *maxy, int *mini, int *maxi, int *mins, int *maxs)
#define MAX_RESPARNAME_LEN
int dftdup(DFT *dft1, DFT *dft2)
int dftFormat(char *fname)
double igam(double a, double x)
int dftDeleteFrameOverlap(DFT *dft)
int dft_fill_hdr_from_IFT(DFT *dft, IFT *ift)
int dftMovevoi(DFT *dft, int from, int to)
int dftAddSpaceForFrames(DFT *dft, int nr_to_add)
int resSetmem(RES *res, int voiNr)
unsigned long long int lfactorial(unsigned long long int n)
void dftSetComments(DFT *dft)
int fitDerivEval(FitVOI *r, double x, double *yd)
int csvIsRegular(CSV *csv)
int cptrnameSplit(char *rname, char *name1, char *name2, char *name3, int max_name_len)
int roikbqRead(char *fname, DFT *dft)
int csv2dft_mat(CSV *csv, DFT *dft)
int dftSortByFrame(DFT *dft)
int resMatchRegions(RES *res1, RES *res2)
int resMean(double *data, int nr, double *mean, double *sd)
int resSelectRegions(RES *res, char *region_name, int reset)
int dftSelectBestReference(DFT *dft)
int dftWrite(DFT *data, char *filename)
int dftCopymainhdr2(DFT *dft1, DFT *dft2, int ow)
int tsvRead(char *filename, DFT *dft)
void resSortByName(RES *res)
void dftUnitToDFT(DFT *dft, int dunit)
int fitSetmem(FIT *fit, int voiNr)
int resCopyMHeader(RES *res1, RES *res2)
int dftMinMax(DFT *dft, double *minx, double *maxx, double *miny, double *maxy)
int idwcRead(char *filename, DFT *dft)
int fitEvaltac(FitVOI *r, double *x, double *y, int dataNr)
int ifRead(char *filename, DFT *dft)
int fitEval(FitVOI *r, double x, double *y)
double igamc(double a, double x)
int resWriteXHTML11_head(FILE *fp, char *author_name)
int resFName2study(char *fname, char *studyNumber)
int resParameterPrintType(RES *res, int parIndex)
int resWriteXHTML11_doctype(FILE *fp)
int dftWriteXHTML11_doctype(FILE *fp)
int cptReadOne(char *cptfile, DFT *dft, int verbose)
char * csvCell(CSV *csv, int row, int col)
int dftCopyvoi(DFT *data, int from, int to)
void dftMin2sec(DFT *data)
void resFixParnames(RES *res)
int dftDelete(DFT *dft, int voi)
int csv2dft(CSV *csv, DFT *dft)
int xelRead(char *filename, DFT *dft)
int csvRead(CSV *csv, char *fname)
int dftMaxY(DFT *dft, double t1, double t2, double *miny, double *maxy)
int dftValidNr(DFT *dft, double tstart, double tstop, int index)
int csv2dft_linkset(CSV *csv, DFT *dft)
int cptWrite(DFT *dft, char *filename, int cpt_format)
int dftMeanTAC(DFT *dft, DFT *mean)
int fitRead(char *filename, FIT *fit, int verbose)
int dftToResult(DFT *dft, RES *res, char *status)
int resMatchParameternames(RES *res1, RES *res2)
int fitWrite(FIT *fit, char *filename)
int res_allocate_with_dft(RES *res, DFT *dft)
int resIsDuplicateNames(RES *res)
int dftSetmem(DFT *data, int frameNr, int voiNr)
int resWrite(RES *res, char *filename, int verbose)
int idwcWrite(DFT *dft, char *filename)
double dft_kBqMin(DFT *data)
int resSelect(RES *data, char *name)
int fitIntegralEvaltac(FitVOI *r, double *x, double *yi, int dataNr)
int fitIntegralEval(FitVOI *r, double x, double *yi)
int dftUnitConversion(DFT *dft, int dunit)
int dftAdd(DFT *data1, DFT *data2, int voi)
int dftTimeunitConversion(DFT *dft, int tunit)
int resDelete(RES *res, int voi)
int resRNameSubfieldExists(RES *res)
int dftFillInitialGap(DFT *dft)
double dft_kBqMax(DFT *data)
void dftRNameSimplify(DFT *dft, int hemisphere, int place)
int dftWriteXHTML11_head(FILE *fp, char *author_name)
int dftWriteHTML(DFT *dft, char *fname, int orientation)
int dft_nr_of_NA(DFT *dft)
int dftGetPmodTitle(DFT *dft, char *title_line)
int dftSortPlane(DFT *data)
int fitToResult(FIT *fit, RES *res, char *status)
int fitFunctionformat(int type, char *str)
int resRead(char *filename, RES *res, int verbose)
int dftSelectRegions(DFT *dft, char *region_name, int reset)
int res2ift(RES *res, IFT *ift, int verbose)
int resMatchParameters(RES *res1, RES *res2, int test_par, double test_limit, int test_sd)
int resWriteHTML_table(RES *res, FILE *fp)
int dftAllocateWithHeader(DFT *dft, int frameNr, int voiNr, DFT *dft_from)
int resWriteHTML(RES *res, char *fname, int verbose)
int roikbqWrite(DFT *dft, char *fname)
int resMatchHeader(RES *res1, RES *res2)
int dftDeleteFrameOverlap_old(DFT *dft)
int dftTimeunitToDFT(DFT *dft, const char *timeunit)
void dftSec2min(DFT *data)
void dftFrametimes(DFT *data)
int dftSelect(DFT *data, char *name)
int dftDecayCorrection(DFT *dft, double hl, int mode, int y, int y2, int y3, char *status, int verbose)
int fitDerivEvaltac(FitVOI *r, double *x, double *yd, int dataNr)
int resMatchParametersAbs(RES *res1, RES *res2, int test_par, double test_limit, int test_sd)
unsigned int factorial(unsigned int n)
int fit_allocate_with_dft(FIT *fit, DFT *dft)
int fitFunctionname(int type, char *str)
int ifWrite(DFT *dft, char *filename)
int dftCopymainhdr(DFT *dft1, DFT *dft2)
int csv2dft_b(CSV *csv, DFT *dft)
int dftOverflow(DFT *data)
int resMedian(double *data, int nr, double *median, double *min, double *max)
int dftAddmem(DFT *data, int voiNr)
Header file for libtpcmisc.
#define MAX_REGIONNAME_LEN
#define MAX_REGIONSUBNAME_LEN
int mean(double *x, double *y, int nr, double *xmean, double *xsd, double *ymean, double *ysd)