Source code for pipeline.preprocessing.features.seqfeatures

import abstract
from ... import setup_environment
import datetime

config_db = setup_environment.get_config_file('pipeline/default_profile.yaml')

[docs]class BookingEmsBooking730 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems->booking exist for timeframe booking->ems->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_booking_730_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 730) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEms730 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems exist for timeframe ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_730_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 730) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingMh730 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->mh exist for timeframe booking->mh ' self.query=(" select distinct fin_table.{0}, 1 as booking_mh_730_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 730) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBookingBookingBooking730 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking->booking->booking exist for timeframe booking->booking->booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_booking_booking_730_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 730) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking->booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingEms730 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems exist for timeframe booking->ems ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_730_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 730) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsBooking730 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->booking exist for timeframe ems->booking ' self.query=(" select distinct fin_table.{0}, 1 as ems_booking_730_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 730) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhBooking730 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->booking exist for timeframe mh->booking ' self.query=(" select distinct fin_table.{0}, 1 as mh_booking_730_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 730) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBooking730 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking exist for timeframe booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_730_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 730) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBookingBooking730 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking->booking exist for timeframe booking->booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_booking_730_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 730) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsBookingEms365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->booking->ems exist for timeframe ems->booking->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_booking_ems_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->booking->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingEmsEms365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems->ems exist for timeframe booking->ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_ems_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEmsBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems->booking exist for timeframe ems->ems->booking ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBookingMh365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking->mh exist for timeframe booking->booking->mh ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_mh_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhBookingBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->booking->booking exist for timeframe mh->booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as mh_booking_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingMhBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->mh->booking exist for timeframe booking->mh->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_mh_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->mh->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBookingEms365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking->ems exist for timeframe booking->booking->ems ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_ems_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsBookingBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->booking->booking exist for timeframe ems->booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as ems_booking_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBookingBookingBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking->booking->booking exist for timeframe booking->booking->booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_booking_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking->booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBookingBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking->booking exist for timeframe booking->booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingEms365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems exist for timeframe booking->ems ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingEmsBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems->booking exist for timeframe booking->ems->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEmsEms365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems->ems exist for timeframe ems->ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_ems_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsMh365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->mh exist for timeframe ems->mh ' self.query=(" select distinct fin_table.{0}, 1 as ems_mh_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhEms365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->ems exist for timeframe mh->ems ' self.query=(" select distinct fin_table.{0}, 1 as mh_ems_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhMh365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->mh exist for timeframe mh->mh ' self.query=(" select distinct fin_table.{0}, 1 as mh_mh_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEms365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems exist for timeframe ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->booking exist for timeframe ems->booking ' self.query=(" select distinct fin_table.{0}, 1 as ems_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking exist for timeframe booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEmsEmsEms365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems->ems->ems exist for timeframe ems->ems->ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_ems_ems_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems->ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhBooking365 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->booking exist for timeframe mh->booking ' self.query=(" select distinct fin_table.{0}, 1 as mh_booking_365_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 365) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEms182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems exist for timeframe ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingEmsBooking182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems->booking exist for timeframe booking->ems->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_booking_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsBookingEms182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->booking->ems exist for timeframe ems->booking->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_booking_ems_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->booking->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBookingBooking182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking->booking exist for timeframe booking->booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_booking_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsBooking182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->booking exist for timeframe ems->booking ' self.query=(" select distinct fin_table.{0}, 1 as ems_booking_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingEms182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems exist for timeframe booking->ems ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEmsEms182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems->ems exist for timeframe ems->ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_ems_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBooking182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking exist for timeframe booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsMh182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->mh exist for timeframe ems->mh ' self.query=(" select distinct fin_table.{0}, 1 as ems_mh_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEmsEmsEms182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems->ems->ems exist for timeframe ems->ems->ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_ems_ems_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems->ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingMh182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->mh exist for timeframe booking->mh ' self.query=(" select distinct fin_table.{0}, 1 as booking_mh_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhMh182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->mh exist for timeframe mh->mh ' self.query=(" select distinct fin_table.{0}, 1 as mh_mh_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhEms182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->ems exist for timeframe mh->ems ' self.query=(" select distinct fin_table.{0}, 1 as mh_ems_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhBooking182 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->booking exist for timeframe mh->booking ' self.query=(" select distinct fin_table.{0}, 1 as mh_booking_182_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 182) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEms90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems exist for timeframe ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingEms90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems exist for timeframe booking->ems ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingBooking90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->booking exist for timeframe booking->booking ' self.query=(" select distinct fin_table.{0}, 1 as booking_booking_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEmsEms90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems->ems exist for timeframe ems->ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_ems_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsMh90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->mh exist for timeframe ems->mh ' self.query=(" select distinct fin_table.{0}, 1 as ems_mh_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEmsEmsEms90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems->ems->ems exist for timeframe ems->ems->ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_ems_ems_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems->ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhEms90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->ems exist for timeframe mh->ems ' self.query=(" select distinct fin_table.{0}, 1 as mh_ems_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhBooking90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->booking exist for timeframe mh->booking ' self.query=(" select distinct fin_table.{0}, 1 as mh_booking_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class MhMh90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence mh->mh exist for timeframe mh->mh ' self.query=(" select distinct fin_table.{0}, 1 as mh_mh_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%mh->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEmsMh90 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems->mh exist for timeframe ems->ems->mh ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_mh_90_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 90) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems->mh%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEms30 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems exist for timeframe ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_30_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 30) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingEms30 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems exist for timeframe booking->ems ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_30_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 30) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsBooking30 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->booking exist for timeframe ems->booking ' self.query=(" select distinct fin_table.{0}, 1 as ems_booking_30_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 30) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->booking%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEmsEms30 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems->ems exist for timeframe ems->ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_ems_30_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 30) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class EmsEms7 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence ems->ems exist for timeframe ems->ems ' self.query=(" select distinct fin_table.{0}, 1 as ems_ems_7_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 7) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%ems->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)
[docs]class BookingEms7 (abstract.TimeBoundedFeature): def __init__(self,**kwargs): abstract.TimeBoundedFeature.__init__(self,**kwargs) self.type_of_features = 'TBD' self.description= 'does sequence booking->ems exist for timeframe booking->ems ' self.query=(" select distinct fin_table.{0}, 1 as booking_ems_7_binary " " from (select p3.{0}, t1.start_date, t1.end_date, string_agg(p3.event, '->') " "from " "(select t2.{0}, min(t2.start_date) as start_date, t2.end_date " " from(select t.{0}, t.start_date, max(t.end_date) as end_date " "from " "(select p1.{0}, p1.event as e1, p2.event as e2, p1.begin_date as start_date, p2.begin_date as end_date " "from {1} p1, {1} p2 " "where p1.{0} = p2.{0} and p1.begin_date <p2.begin_date and " "p2.begin_date < '{2}' and p1.begin_date < '{2}' and " "date_part('days',p2.begin_date - p1.begin_date) < 7) as t " "group by t.{0}, t.start_date)as t2 " "group by t2.{0}, t2.end_date) " "as t1, {1} p3 " "where p3.begin_date > t1.start_date and p3.begin_date < t1.end_date and t1.{0} = p3.{0} " "group by p3.{0}, t1.start_date, t1.end_date " "order by p3.{0}, t1.start_date) as fin_table " "where string_agg like '%booking->ems%' ").format(config_db['id_column'], config_db['personid_event_dates'], self.fake_today)