00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef STUDY_H
00019 #define STUDY_H
00020
00021 #include <odinpara/jdxblock.h>
00022 #include <odinpara/jdxtypes.h>
00023 #include <odinpara/jdxnumbers.h>
00024
00025
00026 #define ODIN_DATE_LENGTH 8
00027 #define ODIN_DATE_FORMAT "%Y%m%d"
00028 #define ODIN_TIME_LENGTH 6
00029 #define ODIN_TIME_FORMAT "%H%M%S"
00030
00031
00039 class Study : public JcampDxBlock {
00040
00041 public:
00042
00046 Study(const STD_string& label="unnamedStudy");
00047
00051 Study(const Study& s);
00052
00053
00059 Study& set_DateTime(const STD_string& date, const STD_string& time);
00060
00064 void get_DateTime(STD_string& date, STD_string& time) const;
00065
00069 void set_timestamp();
00070
00071
00080 Study& set_Patient(const STD_string& id, const STD_string& full_name, const STD_string& birth_date, char sex, float weight);
00081
00085 void get_Patient(STD_string& id, STD_string& full_name, STD_string& birth_date, char& sex, float& weight) const;
00086
00087
00093 Study& set_Context(const STD_string& description, const STD_string& scientist);
00094
00098 void get_Context(STD_string& description, STD_string& scientist) const;
00099
00100
00106 Study& set_Series(const STD_string& description, int number);
00107
00111 void get_Series(STD_string& description, int& number) const;
00112
00113
00117 Study& operator = (const Study& s);
00118
00119
00120
00121 private:
00122 void append_all_members();
00123
00124 static void format_date(STD_string& result, const STD_string& date);
00125 static void format_time(STD_string& result, const STD_string& time);
00126
00127 JDXstring ScanDate;
00128 JDXstring ScanTime;
00129
00130 JDXstring PatientId;
00131 JDXstring PatientName;
00132 JDXstring PatientBirthDate;
00133 JDXenum PatientSex;
00134 JDXfloat PatientWeight;
00135
00136 JDXstring Description;
00137 JDXstring ScientistName;
00138
00139 JDXstring SeriesDescription;
00140 JDXint SeriesNumber;
00141
00142 };
00143
00144
00145 #endif