22#include <boost/algorithm/string/split.hpp>
23#include <InfraMed/InfraMed/InfraMed.h>
24#include <InfraMed/InfraMed/MedPidRepository.h>
29#define LOCAL_SECTION LOG_APP
30#define LOCAL_LEVEL LOG_DEF_LEVEL
35namespace PlotlyColorDefaults {
38 static const vector<string> bg_opaque_colors = {
"rgba(162, 217, 206,0.333)" ,
"rgba(199, 210, 232, 0.333)" ,
"rgba(220, 199, 232,0.333)",
39 "rgba(232, 199, 204,0.333)",
"rgba(200, 232, 199,0.333)",
"rgba(232, 217, 199,0.333)",
"rgba(215, 216, 192,0.333)" };
41 static string get_bg_color(
int i) {
return PlotlyColorDefaults::bg_opaque_colors[i % (int)PlotlyColorDefaults::bg_opaque_colors.size()]; }
52 bool get_ascenders_codes =
false;
53 int ascender_limit = 1;
54 string filter_regex_codes =
"";
55 string remove_regex_codes =
"";
57 int init(map<string, string>& _map);
67 vector<string> drug_colors;
75 PanelInfo(
string _name,
string _title,
const vector<string> &_sigs,
const vector<string> &_drugs,
const vector<string> &_drug_colors,
int _null_zeros,
int _log_scale) {
76 name = _name; title = _title; sigs = _sigs; drugs = _drugs; drug_colors = _drug_colors; null_zeros = _null_zeros; log_scale = _log_scale;
79 int init(map<string, string>& _map);
89 int granularity_months = 1;
90 int min_date = 20000101;
91 string drug_sig =
"Drug";
96 int init(map<string, string>& _map);
105 string page_title =
"Patient Report";
108 map<string, SignalParams> sig_params;
111 map<string, vector<string>> drugs_groups;
114 map<string, PanelInfo> panels;
120 vector<string> views;
124 vector<string> js_files;
127 int null_zeros_default = 1;
128 int log_scale_default = 1;
129 int width_default = 600;
130 int height_default = 400;
131 int block_mode_default = 1;
137 bool load_dynamically =
true;
138 vector<string> phisical_read_sigs;
139 vector<string> all_need_sigs;
141 int read_config(
const string &config_fname);
154 ChartTimeSign(
int t,
const string &_name,
const string _color) { time = t; name = _name; color = _color; }
155 int init(map<string, string>& _map);
165 LocalViewsParams(
int _pid,
int _from,
int _to) { pid = _pid; from_date = _from; to_date = _to; }
177 bool use_dynamic =
false;
179 void uget(
int sid, UniversalSigVec &usv) {
181 rec_dynamic.uget(sid, rec_dynamic.get_n_versions() - 1, usv);
183 rec_static.uget(sid, usv);
185 void uget(
const string &sid, UniversalSigVec &usv) {
187 rec_dynamic.uget(sid, rec_dynamic.get_n_versions() - 1, usv);
189 rec_static.uget(sid, usv);
191 void *get(
const string &sid,
int &len) {
193 return rec_dynamic.get(sid, rec_dynamic.get_n_versions() - 1, len);
195 return rec_static.get(sid, len);
199 return rec_dynamic.pid;
201 return rec_static.pid;
205 return rec_dynamic.my_base_rep;
207 return rec_static.my_base_rep;
221 int read_config(
const string &config_name) {
return params.read_config(config_name); }
225 int get_rec_html(
string &shtml,
LocalViewsParams &lvp,
PidDataRec &rec,
const string &mode,
const vector<ChartTimeSign> &sign_times,
const vector<string> &view);
226 int get_rec_html(
string &shtml,
LocalViewsParams &lvp,
PidDataRec &rec,
const string &mode,
const vector<ChartTimeSign> &sign_times) {
227 return get_rec_html(shtml, lvp, rec, mode, sign_times, params.views);
234 int add_html_header(
string &shtml,
const string &mode);
235 int add_basic_demographics(
string &shtml,
PidDataRec &rec, vector<ChartTimeSign> ×);
237 int add_drugs_heatmap(
string &shtml,
PidDataRec &rec);
240 bool add_categorical_chart(
string &shtml,
PidDataRec &rec,
const vector<ChartTimeSign> ×,
241 const string &sig_name,
string &div_name,
bool show_legend,
int channel);
243 void add_search_box(
string &shtml,
const string &sig_name,
const string &div_chart,
const string &div_table,
int channel);
246 bool add_categorical_table(
string sig,
string &shtml,
PidDataRec &rec,
const vector<ChartTimeSign> ×,
string &div_name);
249 void get_drugs_heatmap(
PidDataRec &rec, vector<int> &_xdates, vector<string> &_sets_names, vector<vector<float>> &_hmap,
const vector<string> &drugs);
253 void add_xy_js(
string &shtml, vector<int> &dates, vector<float> &vals,
int null_zeros_flag,
string prefix);
254 void add_xy_js(
string &shtml, UniversalSigVec &usv,
int time_chan,
int chan,
int null_zeros_flag,
string prefix);
256 void add_dataset_js(
string &html, UniversalSigVec &usv,
int time_chan,
int chan,
int null_zeros_flag,
string prefix,
string sname,
int yaxis,
string sig);
257 void add_bg_dataset_js(
string &shtml, vector<int> &dates, vector<float> &vals,
int null_zeros_flag,
string color,
string prefix,
string sname,
int yaxis,
string name);
260 string date_to_string(
int date,
bool fix_days_valid =
false);
261 string time_to_string(
int time,
int time_unit);
262 string time_to_string(
int time) {
return time_to_string(time, params.rep_time_unit); }
263 void get_usv_min_max(UniversalSigVec &usv,
float &vmin,
float &vmax);
Logger.h - allowing logs with more control.
Definition MedPlotly.h:147
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:130
Definition MedPlotly.h:84
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:115
Definition MedPlotly.h:162
A model = repCleaner + featureGenerator + featureProcessor + MedPredictor.
Definition MedModel.h:56
Definition MedPlotly.h:216
Definition MedPidRepository.h:87
Definition MedPlotly.h:103
Definition InfraMed.h:303
static const int Date
dates are in full regular format YYYYMMDD
Definition MedTime.h:25
Definition MedPlotly.h:61
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:92
Definition MedPlotly.h:173
Definition MedPidRepository.h:127
Definition MedPidRepository.h:43
Definition SerializableObject.h:31
Definition MedPlotly.h:46
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:72