45 float nlstPackYears, nlstQuitTimeYears, nlstMinAge, nlstMaxAge;
46 bool nonDefaultNlstCriterion, useDataComplition;
48 string debug_file =
"";
49 set<vector<SMOKING_STATUS>> possibleCombinations;
54 vector<string> raw_feature_names;
62 nlstQuitTimeYears = 15;
63 nonDefaultNlstCriterion =
false;
64 useDataComplition =
false;
72 char *smokingStatusDesc[] = {
"UNKNOWN_SMOKER",
"NEVER_SMOKER",
"PASSIVE_SMOKER",
"EX_SMOKER",
"CURRENT_SMOKER" };
73 for (
auto &comb : possibleCombinations)
75 for (
auto stat : comb)
76 cout << smokingStatusDesc[stat] <<
" ";
86 virtual int init(map<string, string>& mapper);
88 virtual int update(map<string, string>& mapper);
103 void calcSmokingDuration(
int neverSmoker,
int unknownSmoker, vector<RangeStatus>& smokeRanges,
int birthDate,
int lastPackYearsDate, UniversalSigVec & SmokingDurationUsv,
int testDate,
float & smokingDurationBeforeLastPackYears,
float & smokingDuration);
105 void getLastSmokingDuration(
int birthDate, UniversalSigVec & SmokingDurationUsv,
int testDate,
int &lastDurationDate,
float &lastDurationValue);
107 void calcPackYears(UniversalSigVec & SmokingPackYearsUsv,
int testDate,
int & neverSmoker,
int & currentSmoker,
int & formerSmoker,
int & lastPackYearsDate,
float & lastPackYears,
float & maxPackYears);
109 void calcQuitTimeOriginalData(
PidDynamicRec& rec, UniversalSigVec & smokingStatusUsv, UniversalSigVec & quitTimeUsv,
int testDate,
int formerSmoker,
int neverSmoker,
int currentSmoker,
float & daysSinceQuittingOriginal);
111 void calcPackYearsOriginalData(
int testDate,
int lastPackYearsDate,
float lastPackYears,
float & lastPackYearsOriginal, UniversalSigVec SmokingIntensityUsv, UniversalSigVec SmokingDurationUsv);
113 void fixPackYearsSmokingIntensity(
float smokingDurationSinceLastPackYears,
float & smokingIntensity,
float smokingDuration,
float & lastPackYears,
float & maxPackYears);
115 void printDebug(vector<RangeStatus>& smokeRanges,
int qa_print, UniversalSigVec & smokingStatusUsv, UniversalSigVec & SmokingIntensityUsv,
int birthDate,
int testDate, vector<pair<SMOKING_STATUS, int>>& smokingStatusVec,
PidDynamicRec & rec, UniversalSigVec & quitTimeUsv, UniversalSigVec & SmokingPackYearsUsv,
float smokingIntensity,
float smokingDuration,
float yearsSinceQuitting,
float maxPackYears);
117 void addDataToMat(vector<float*>& _p_data,
int index,
int i,
int age,
int currentSmoker,
int formerSmoker,
float daysSinceQuitting,
float daysSinceQuittingOriginal,
float maxPackYears,
float lastPackYears,
float lastPackYearsOriginal,
int neverSmoker,
int unknownSmoker,
int passiveSmoker,
float yearsSinceQuitting,
float smokingIntensity,
float smokingDuration);
123 void get_p_data(
MedFeatures& features, vector<float *> &_p_data);
125 int calcNlst(
int age,
int unknownSmoker,
int daysSinceQuitting,
float lastPackYears);
127 SMOKING_STATUS val2SmokingStatus(
int sigVal,
int smokingStatusSid,
PidRec &rec);
129 void genSmokingVec(
PidDynamicRec & rec, UniversalSigVec & smokingStatusUsv, vector<pair<SMOKING_STATUS, int>>& smokingStatusVec,
int testDate,
int & unknownSmoker,
int & neverSmoker,
int & passiveSmoker,
int & formerSmoker,
int & currentSmoker);
131 void genFirstLastSmokingDates(
PidDynamicRec & rec, UniversalSigVec & smokingStatusUsv, UniversalSigVec & quitTimeUsv,
int testDate, map<SMOKING_STATUS, pair<int, int>>& smokingStatusDates, vector<int>& dates,
int birth_date);
133 void genSmokingStatus(map<SMOKING_STATUS, pair<int, int>>& smokingStatusDates, vector<int>& dates,
int testDate,
int birthDate, vector<pair<SMOKING_STATUS, int>>& smokingStatusVec);
135 void genSmokingRanges(vector<pair<SMOKING_STATUS, int>>& smokingStatusVec,
int testDate,
int birthDate, vector<RangeStatus>& smokeRanges);
137 void genLastStatus(vector<RangeStatus>& smokeRanges,
int & unknownSmoker,
int & neverSmoker,
int & formerSmoker,
int & currentSmoker,
int & passiveSmoker);
139 void calcQuitTime(vector<RangeStatus> &smokeRange,
int formerSmoker,
int neverSmoker,
int currentSmoker,
int testDate,
int birthDate,
float & daysSinceQuitting,
float & yearsSinceQuitting);
141 void calcSmokingIntensity(UniversalSigVec & SmokingIntensityUsv,
int testDate,
int neverSmoker,
float & smokingIntensity);
143 void getQuitAge(
PidDynamicRec& rec,
int lastDate,
float &ageAtEx,
float &deltaTime);
150 vector<vector<char>> smoke_status_luts;
151 int smoke_status_sec_id;
153 int smoking_quit_date_id, smoking_status_id, smoking_intensity_id, smoking_duration_id, smoking_pack_years_id;