22#include <boost/algorithm/string/split.hpp>
23#include <InfraMed/InfraMed/InfraMed.h>
24#include <InfraMed/InfraMed/MedPidRepository.h>
30#define LOCAL_SECTION LOG_APP
31#define LOCAL_LEVEL LOG_DEF_LEVEL
36namespace PlotlyColorDefaults {
39 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)",
40 "rgba(232, 199, 204,0.333)",
"rgba(200, 232, 199,0.333)",
"rgba(232, 217, 199,0.333)",
"rgba(215, 216, 192,0.333)" };
42 static string get_bg_color(
int i) {
return PlotlyColorDefaults::bg_opaque_colors[i % (int)PlotlyColorDefaults::bg_opaque_colors.size()]; }
53 bool get_ascenders_codes =
false;
54 int ascender_limit = 1;
55 string filter_regex_codes =
"";
56 string remove_regex_codes =
"";
58 int init(map<string, string>& _map);
68 vector<string> drug_colors;
76 PanelInfo(
string _name,
string _title,
const vector<string> &_sigs,
const vector<string> &_drugs,
const vector<string> &_drug_colors,
int _null_zeros,
int _log_scale) {
77 name = _name; title = _title; sigs = _sigs; drugs = _drugs; drug_colors = _drug_colors; null_zeros = _null_zeros; log_scale = _log_scale;
80 int init(map<string, string>& _map);
90 int granularity_months = 1;
91 int min_date = 20000101;
92 string drug_sig =
"Drug";
97 int init(map<string, string>& _map);
106 string page_title =
"Patient Report";
109 map<string, SignalParams> sig_params;
112 map<string, vector<string>> drugs_groups;
115 map<string, PanelInfo> panels;
121 vector<string> views;
125 vector<string> js_files;
128 int null_zeros_default = 1;
129 int log_scale_default = 1;
130 int width_default = 600;
131 int height_default = 400;
132 int block_mode_default = 1;
138 bool load_dynamically =
true;
139 vector<string> phisical_read_sigs;
140 vector<string> all_need_sigs;
142 int read_config(
const string &config_fname);
155 ChartTimeSign(
int t,
const string &_name,
const string _color) { time = t; name = _name; color = _color; }
156 int init(map<string, string>& _map);
166 LocalViewsParams(
int _pid,
int _from,
int _to) { pid = _pid; from_date = _from; to_date = _to; }
178 bool use_dynamic =
false;
180 void uget(
int sid, UniversalSigVec &usv) {
182 rec_dynamic.uget(sid, rec_dynamic.get_n_versions() - 1, usv);
184 rec_static.uget(sid, usv);
186 void uget(
const string &sid, UniversalSigVec &usv) {
188 rec_dynamic.uget(sid, rec_dynamic.get_n_versions() - 1, usv);
190 rec_static.uget(sid, usv);
192 void *get(
const string &sid,
int &len) {
194 return rec_dynamic.get(sid, rec_dynamic.get_n_versions() - 1, len);
196 return rec_static.get(sid, len);
200 return rec_dynamic.pid;
202 return rec_static.pid;
206 return rec_dynamic.my_base_rep;
208 return rec_static.my_base_rep;
222 int read_config(
const string &config_name) {
return params.read_config(config_name); }
226 int get_rec_html(
string &shtml,
LocalViewsParams &lvp,
PidDataRec &rec,
const string &mode,
const vector<ChartTimeSign> &sign_times,
const vector<string> &view);
227 int get_rec_html(
string &shtml,
LocalViewsParams &lvp,
PidDataRec &rec,
const string &mode,
const vector<ChartTimeSign> &sign_times) {
228 return get_rec_html(shtml, lvp, rec, mode, sign_times, params.views);
235 int add_html_header(
string &shtml,
const string &mode);
236 int add_basic_demographics(
string &shtml,
PidDataRec &rec, vector<ChartTimeSign> ×);
238 int add_drugs_heatmap(
string &shtml,
PidDataRec &rec);
241 bool add_categorical_chart(
string &shtml,
PidDataRec &rec,
const vector<ChartTimeSign> ×,
242 const string &sig_name,
string &div_name,
bool show_legend,
int channel);
244 void add_search_box(
string &shtml,
const string &sig_name,
const string &div_chart,
const string &div_table,
int channel);
247 bool add_categorical_table(
string sig,
string &shtml,
PidDataRec &rec,
const vector<ChartTimeSign> ×,
string &div_name);
250 void get_drugs_heatmap(
PidDataRec &rec, vector<int> &_xdates, vector<string> &_sets_names, vector<vector<float>> &_hmap,
const vector<string> &drugs);
254 void add_xy_js(
string &shtml, vector<int> &dates, vector<float> &vals,
int null_zeros_flag,
string prefix);
255 void add_xy_js(
string &shtml, UniversalSigVec &usv,
int time_chan,
int chan,
int null_zeros_flag,
string prefix);
257 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);
258 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);
261 string date_to_string(
int date,
bool fix_days_valid =
false);
262 string time_to_string(
int time,
int time_unit);
263 string time_to_string(
int time) {
return time_to_string(time, params.rep_time_unit); }
264 void get_usv_min_max(UniversalSigVec &usv,
float &vmin,
float &vmax);
Logger.h - allowing logs with more control.
Definition MedPlotly.h:148
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:130
Definition MedPlotly.h:85
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:115
Definition MedPlotly.h:163
A model = repCleaner + featureGenerator + featureProcessor + MedPredictor.
Definition MedModel.h:56
Definition MedPlotly.h:217
Definition MedPidRepository.h:87
Definition MedPlotly.h:104
Definition InfraMed.h:303
static const int Date
dates are in full regular format YYYYMMDD
Definition MedTime.h:25
Definition MedPlotly.h:62
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:92
Definition MedPlotly.h:174
Definition MedPidRepository.h:127
Definition MedPidRepository.h:43
Definition SerializableObject.h:33
Definition MedPlotly.h:47
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:72