22#include <boost/program_options.hpp>
23#include <boost/algorithm/string/split.hpp>
24#include <InfraMed/InfraMed/InfraMed.h>
25#include <InfraMed/InfraMed/MedPidRepository.h>
30#define LOCAL_SECTION LOG_APP
31#define LOCAL_LEVEL LOG_DEF_LEVEL
33namespace po = boost::program_options;
37namespace PlotlyColorDefaults {
40 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)",
41 "rgba(232, 199, 204,0.333)",
"rgba(200, 232, 199,0.333)",
"rgba(232, 217, 199,0.333)",
"rgba(215, 216, 192,0.333)" };
43 static string get_bg_color(
int i) {
return PlotlyColorDefaults::bg_opaque_colors[i % (int)PlotlyColorDefaults::bg_opaque_colors.size()]; }
54 bool get_ascenders_codes =
false;
55 int ascender_limit = 1;
56 string filter_regex_codes =
"";
57 string remove_regex_codes =
"";
59 int init(map<string, string>& _map);
69 vector<string> drug_colors;
77 PanelInfo(
string _name,
string _title,
const vector<string> &_sigs,
const vector<string> &_drugs,
const vector<string> &_drug_colors,
int _null_zeros,
int _log_scale) {
78 name = _name; title = _title; sigs = _sigs; drugs = _drugs; drug_colors = _drug_colors; null_zeros = _null_zeros; log_scale = _log_scale;
81 int init(map<string, string>& _map);
91 int granularity_months = 1;
92 int min_date = 20000101;
93 string drug_sig =
"Drug";
98 int init(map<string, string>& _map);
107 string page_title =
"Patient Report";
110 map<string, SignalParams> sig_params;
113 map<string, vector<string>> drugs_groups;
116 map<string, PanelInfo> panels;
122 vector<string> views;
126 vector<string> js_files;
129 int null_zeros_default = 1;
130 int log_scale_default = 1;
131 int width_default = 600;
132 int height_default = 400;
133 int block_mode_default = 1;
139 bool load_dynamically =
true;
140 vector<string> phisical_read_sigs;
141 vector<string> all_need_sigs;
143 int read_config(
const string &config_fname);
156 ChartTimeSign(
int t,
const string &_name,
const string _color) { time = t; name = _name; color = _color; }
157 int init(map<string, string>& _map);
167 LocalViewsParams(
int _pid,
int _from,
int _to) { pid = _pid; from_date = _from; to_date = _to; }
179 bool use_dynamic =
false;
181 void uget(
int sid, UniversalSigVec &usv) {
183 rec_dynamic.uget(sid, rec_dynamic.get_n_versions() - 1, usv);
185 rec_static.uget(sid, usv);
187 void uget(
const string &sid, UniversalSigVec &usv) {
189 rec_dynamic.uget(sid, rec_dynamic.get_n_versions() - 1, usv);
191 rec_static.uget(sid, usv);
193 void *get(
const string &sid,
int &len) {
195 return rec_dynamic.get(sid, rec_dynamic.get_n_versions() - 1, len);
197 return rec_static.get(sid, len);
201 return rec_dynamic.pid;
203 return rec_static.pid;
207 return rec_dynamic.my_base_rep;
209 return rec_static.my_base_rep;
223 int read_config(
const string &config_name) {
return params.read_config(config_name); }
227 int get_rec_html(
string &shtml,
LocalViewsParams &lvp,
PidDataRec &rec,
const string &mode,
const vector<ChartTimeSign> &sign_times,
const vector<string> &view);
228 int get_rec_html(
string &shtml,
LocalViewsParams &lvp,
PidDataRec &rec,
const string &mode,
const vector<ChartTimeSign> &sign_times) {
229 return get_rec_html(shtml, lvp, rec, mode, sign_times, params.views);
236 int add_html_header(
string &shtml,
const string &mode);
237 int add_basic_demographics(
string &shtml,
PidDataRec &rec, vector<ChartTimeSign> ×);
239 int add_drugs_heatmap(
string &shtml,
PidDataRec &rec);
242 bool add_categorical_chart(
string &shtml,
PidDataRec &rec,
const vector<ChartTimeSign> ×,
243 const string &sig_name,
string &div_name,
bool show_legend,
int channel);
245 void add_search_box(
string &shtml,
const string &sig_name,
const string &div_chart,
const string &div_table,
int channel);
248 bool add_categorical_table(
string sig,
string &shtml,
PidDataRec &rec,
const vector<ChartTimeSign> ×,
string &div_name);
251 void get_drugs_heatmap(
PidDataRec &rec, vector<int> &_xdates, vector<string> &_sets_names, vector<vector<float>> &_hmap,
const vector<string> &drugs);
255 void add_xy_js(
string &shtml, vector<int> &dates, vector<float> &vals,
int null_zeros_flag,
string prefix);
256 void add_xy_js(
string &shtml, UniversalSigVec &usv,
int time_chan,
int chan,
int null_zeros_flag,
string prefix);
258 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);
259 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);
262 string date_to_string(
int date,
bool fix_days_valid =
false);
263 string time_to_string(
int time,
int time_unit);
264 string time_to_string(
int time) {
return time_to_string(time, params.rep_time_unit); }
265 void get_usv_min_max(UniversalSigVec &usv,
float &vmin,
float &vmax);
Logger.h - allowing logs with more control.
Definition MedPlotly.h:149
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:130
Definition MedPlotly.h:86
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:115
Definition MedPlotly.h:164
A model = repCleaner + featureGenerator + featureProcessor + MedPredictor.
Definition MedModel.h:56
Definition MedPlotly.h:218
Definition MedPidRepository.h:87
Definition MedPlotly.h:105
Definition InfraMed.h:303
static const int Date
dates are in full regular format YYYYMMDD
Definition MedTime.h:25
Definition MedPlotly.h:63
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:92
Definition MedPlotly.h:175
Definition MedPidRepository.h:127
Definition MedPidRepository.h:43
Definition SerializableObject.h:32
Definition MedPlotly.h:48
int init(map< string, string > &_map)
Virtual to init object from parsed fields.
Definition MedPlotly.cpp:72