Medial Code Documentation
Loading...
Searching...
No Matches
MedSamplingStrategy.h
Go to the documentation of this file.
1
3#ifndef __MED_SAMPLING_STRATEGY_H__
4#define __MED_SAMPLING_STRATEGY_H__
5
6#include <vector>
7#include <random>
8#include "LabelParams.h"
9#include <InfraMed/InfraMed/MedPidRepository.h>
10#include "MedEnums.h"
11#include "FilterParams.h"
12
13using namespace std;
14
19public:
21
23 virtual void init_sampler(MedRepository &rep);
24
26 void get_sampling_options(const unordered_map<int, vector<pair<int, int>>> &pid_time_ranges,
27 unordered_map<int, vector<int>> &pid_options) const;
28
30 virtual void _get_sampling_options(const unordered_map<int, vector<pair<int, int>>> &pid_time_ranges,
31 unordered_map<int, vector<int>> &pid_options) const = 0;
32
34 static MedSamplingStrategy *make_sampler(const string &sampler_name);
36 static MedSamplingStrategy *make_sampler(const string &sampler_name, const string &init_params);
37
41 void set_filters(const string &filtering_str);
42
43 virtual ~MedSamplingStrategy() {};
44protected:
45 unordered_map<int, int> pids_bdates;
46private:
47 bool apply_filter_params(unordered_map<int, vector<pair<int, int>>> &pid_time_ranges) const;
48};
49
56public:
57 bool take_max;
58 vector<int> minimal_times;
59 vector<int> maximal_times;
61
63 void _get_sampling_options(const unordered_map<int, vector<pair<int, int>>> &pid_time_ranges, unordered_map<int, vector<int>> &pid_options) const;
64
65 int init(map<string, string>& map);
66
68 sample_count = 1; take_max = false;
69 }
70};
71
77public:
79 int end_age;
80 int age_bin;
81
83 void _get_sampling_options(const unordered_map<int, vector<pair<int, int>>> &pid_time_ranges, unordered_map<int, vector<int>> &pid_options) const;
84
86 start_age = 0;
87 end_age = 120;
88 age_bin = 1;
89 }
90
91 int init(map<string, string>& map);
92};
93
98public:
100 vector<vector<pair<int, int>>> samples_list_pid_dates;
102
103 void get_options(const unordered_map<int, vector<pair<int, int>>> &pid_time_ranges,
104 const vector<vector<pair<int, int>>> &samples_list_pid_opts,
105 unordered_map<int, vector<int>> &pid_options) const;
106
110 void _get_sampling_options(const unordered_map<int, vector<pair<int, int>>> &pid_time_ranges, unordered_map<int, vector<int>> &pid_options) const;
111
112 int init(map<string, string>& map);
113
115 take_count = 1;
116 sample_with_filters = true;
117 }
118};
119
125private:
126 int add_time(int time, int add) const;
127public:
134
136 void _get_sampling_options(const unordered_map<int, vector<pair<int, int>>> &pid_time_ranges, unordered_map<int, vector<int>> &pid_options) const;
137
138 int init(map<string, string>& map);
139
141 back_random_duration = 0; //default
142 time_jump = 0;
143 start_time = 0;
144 end_time = 0;
145 time_jump_unit = global_default_windows_time_unit;
146 time_range_unit = global_default_time_unit;
147 }
148};
149
156public:
157 int init(map<string, string>& map);
158};
159
167public:
168 vector<string> signal_list;
169 int delta_time = 0;
170 int delta_time_unit = MedTime::Days;
172
174 void init_sampler(MedRepository &rep);
175
176 int init(map<string, string>& map);
177
178 void _get_sampling_options(const unordered_map<int, vector<pair<int, int>>> &pid_time_ranges, unordered_map<int, vector<int>> &pid_options) const;
179
181};
182
183#endif
registry methods over MedRegistry Object
A Class to constraint sampling options for creating medsamples prior to sample process.
Definition FilterParams.h:14
Definition InfraMed.h:303
A Class which samples by age from age to age by jump and find match in registry.
Definition MedSamplingStrategy.h:76
int init(map< string, string > &map)
Virtual to init object from parsed fields.
Definition MedSamplingStrategy.cpp:186
int age_bin
the age bin in years for jumping
Definition MedSamplingStrategy.h:80
int start_age
The start age to sample from.
Definition MedSamplingStrategy.h:78
void _get_sampling_options(const unordered_map< int, vector< pair< int, int > > > &pid_time_ranges, unordered_map< int, vector< int > > &pid_options) const
sample by year from age to age by jump and find match in registry
Definition MedSamplingStrategy.cpp:202
int end_age
The end age to sample from.
Definition MedSamplingStrategy.h:79
Samples between given dates for ech patient.
Definition MedSamplingStrategy.h:97
bool sample_with_filters
If True will do sampling after time range filtering of years,age,censoring. otherwise total randomall...
Definition MedSamplingStrategy.h:101
int init(map< string, string > &map)
Virtual to init object from parsed fields.
Definition MedSamplingStrategy.cpp:232
void _get_sampling_options(const unordered_map< int, vector< pair< int, int > > > &pid_time_ranges, unordered_map< int, vector< int > > &pid_options) const
sample Take_Count samples for each record in samples_list_pid_dates.
Definition MedSamplingStrategy.cpp:314
int take_count
How many samples to take in each date.
Definition MedSamplingStrategy.h:99
vector< vector< pair< int, int > > > samples_list_pid_dates
All sample options for pid,date to sample from. row is sample with all options to sample from.
Definition MedSamplingStrategy.h:100
A Class which samples from start_time to end_time by jump and find match in registry.
Definition MedSamplingStrategy.h:124
int time_jump_unit
the time jump unit
Definition MedSamplingStrategy.h:133
int time_range_unit
the start_time,end_time unit
Definition MedSamplingStrategy.h:132
int time_jump
the time jump, how much jump from each prediciton date
Definition MedSamplingStrategy.h:131
void _get_sampling_options(const unordered_map< int, vector< pair< int, int > > > &pid_time_ranges, unordered_map< int, vector< int > > &pid_options) const
sample by year from year to year by jump and find match in registry
Definition MedSamplingStrategy.cpp:414
int end_time
The end time to sample from. If 0 will use max time of pid.
Definition MedSamplingStrategy.h:129
int init(map< string, string > &map)
Virtual to init object from parsed fields.
Definition MedSamplingStrategy.cpp:348
int start_time
The start time to sample from. If 0 will use min time of pid.
Definition MedSamplingStrategy.h:128
int back_random_duration
Random duration backward from prediciton month_day. to cancel use 0.
Definition MedSamplingStrategy.h:130
A Sampler to sample on one of signals test.
Definition MedSamplingStrategy.h:166
void _get_sampling_options(const unordered_map< int, vector< pair< int, int > > > &pid_time_ranges, unordered_map< int, vector< int > > &pid_options) const
sample Take_Count samples for each record in samples_list_pid_dates.
Definition MedSamplingStrategy.cpp:618
vector< string > signal_list
list of signals to take times for sampling on each patient
Definition MedSamplingStrategy.h:168
int delta_time
delta time before the sticked signals. a date before should be negative
Definition MedSamplingStrategy.h:169
void init_sampler(MedRepository &rep)
Initialize samples_list_pid_dates by reading signals from repository.
Definition MedSamplingStrategy.cpp:555
int minimal_time_between_samples
minimal time restriction between samples - starts from most recent and takes most recent in each time...
Definition MedSamplingStrategy.h:171
int init(map< string, string > &map)
Virtual to init object from parsed fields.
Definition MedSamplingStrategy.cpp:532
An abstract class with sampling methods over registry records to convert to MedSamples.
Definition MedSamplingStrategy.h:18
static MedSamplingStrategy * make_sampler(const string &sampler_name)
Definition MedSamplingStrategy.cpp:319
virtual void init_sampler(MedRepository &rep)
The sampler need repository for Age filters if exist and some samplers also uses bdate.
Definition MedSamplingStrategy.cpp:463
FilterParams filtering_params
the filtering constraints prior to sampling
Definition MedSamplingStrategy.h:20
void get_sampling_options(const unordered_map< int, vector< pair< int, int > > > &pid_time_ranges, unordered_map< int, vector< int > > &pid_options) const
The sampling options - calls _get_sampling_options, before that applies filters.
Definition MedSamplingStrategy.cpp:519
virtual void _get_sampling_options(const unordered_map< int, vector< pair< int, int > > > &pid_time_ranges, unordered_map< int, vector< int > > &pid_options) const =0
The specific sampler get_options to implement.
void set_filters(const string &filtering_str)
stores filters prior to sampling
Definition MedSamplingStrategy.cpp:459
A Class which samples records on registry for certain time window.
Definition MedSamplingStrategy.h:55
vector< int > maximal_times
maximal times for window options
Definition MedSamplingStrategy.h:59
void _get_sampling_options(const unordered_map< int, vector< pair< int, int > > > &pid_time_ranges, unordered_map< int, vector< int > > &pid_options) const
sample random using Environment variable. params: [Random_Duration, Back_Time_Window_Years,...
Definition MedSamplingStrategy.cpp:66
bool take_max
If true will random sample between all time range of min_allowed to max_allowed.
Definition MedSamplingStrategy.h:57
int sample_count
how many samples to take in each time window
Definition MedSamplingStrategy.h:60
vector< int > minimal_times
minimal times for window options
Definition MedSamplingStrategy.h:58
int init(map< string, string > &map)
Virtual to init object from parsed fields.
Definition MedSamplingStrategy.cpp:13
DEPRECATED - A Class which samples by year from year to year by jump and find match in registry.
Definition MedSamplingStrategy.h:155
int init(map< string, string > &map)
Virtual to init object from parsed fields.
Definition MedSamplingStrategy.cpp:135
static const int Days
days since 1900/01/01
Definition MedTime.h:28
Definition SerializableObject.h:32
Definition StdDeque.h:58