12 int df_diagnosis_sid = -1;
13 int df_coded_sid = -1;
14 int df_glucose_sid = -1;
15 int df_hba1c_sid = -1;
16 int df_drug_section_id = -1;
17 int df_diagnosis_section_id = -1;
18 int df_coded_section_id = -1;
21 REASON_RECENT_LABS = 1,
22 REASON_RECENT_DRUGS = 2,
23 REASON_RECENT_DIAGNOSTIC = 4,
25 REASON_PAST_DRUGS = 16,
26 REASON_PAST_DIAGNOSTIC = 32,
30 DFG_DIABETES_EVENT_GLUCOSE,
31 DFG_DIABETES_EVENT_HBA1C,
32 DFG_DIABETES_EVENT_DRUG,
33 DFG_DIABETES_EVENT_DIAGNOSIS,
34 DFG_DIABETES_EVENT_PG_DURING_OGTT,
42 bool is_second =
false;
43 bool is_first =
false;
44 bool is_non_dm =
false;
48 DiabetesEvent(
int _type,
int _time,
float _val) { time = _time; de_type = _type; val = _val; }
50 vector<unsigned char> df_drug_lut;
51 vector<unsigned char> df_diagnosis_lut;
52 vector<unsigned char> df_coded_lut;
54 int _resolve(
PidDynamicRec& rec, vector<DiabetesEvent>& df_events,
int coded_date,
int coded_val,
int calc_time, json& json_out);
57 bool df_score_is_flag =
true;
58 bool df_score_is_bitmask =
false;
61 vector<string> df_drug_sets = {
"ATC_A10_____" };
63 vector<string> df_coded_sets;
65 vector<string> df_diagnosis_sets;
66 string df_diagnosis_sig =
"RC";
67 string df_coded_sig =
"RC";
68 string df_glucose_sig =
"Glucose";
69 string df_hba1c_sig =
"HbA1C";
70 string df_drug_sig =
"Drug";
71 int df_diagnoses_severity = 4;
73 int df_output_verbosity = 2;
74 int df_output_non_dm_period = 0;
76 int df_past_event_days = (365)*3;
77 float df_by_single_glucose = 200.0f;
78 float df_by_single_hba1c = 7.0f;
79 float df_by_second_glucose = 126.0f;
80 float df_by_second_hba1c = 6.5f;
81 float df_pre_d_hba1c = 5.8f;
82 float df_pre_d_glucose = 101.0f;
83 int df_by_second_time_delta_days = (365) * 2;
89 req_signals.push_back(df_glucose_sig);
90 req_signals.push_back(df_hba1c_sig);
91 req_signals.push_back(df_drug_sig);
92 req_signals.push_back(df_diagnosis_sig);
93 if(df_coded_sig != df_diagnosis_sig)
94 req_signals.push_back(df_coded_sig);
100 int init(map<string, string>& mapper);
105 void init_defaults();
108 void set_names() {
if (
names.empty())
names.push_back(
"FTR_" + int_to_string_digits(serial_id, 6) +
".DiabetesFinder");
tags.push_back(
"Diabetes"); }
119 ADD_SERIALIZATION_FUNCS(
generator_type,
names,
tags,
iGenerateWeights, req_signals, df_drug_sets, df_coded_sets, df_diagnosis_sets, df_diagnosis_sig, df_coded_sig, df_glucose_sig,
120 df_hba1c_sig, df_drug_sig, df_past_event_days, df_by_single_glucose, df_by_second_glucose, df_by_second_hba1c, df_by_single_hba1c, df_by_second_time_delta_days, df_pre_d_hba1c, df_pre_d_glucose,
121 df_diagnoses_severity, df_output_verbosity, df_output_non_dm_period)