-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
--  BEWARE: string comparisons are done against many tables
--  and it is assumed "COLLATE utf8_ci" for default db collation. 
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -

CREATE TABLE lookup_umls (
  id int(11) NOT NULL auto_increment,
  CUI char(10) NOT NULL,
  SAB varchar(20) NOT NULL,
  STR text NOT NULL,
  PRIMARY KEY  (id),
  KEY X_CUI (CUI),
  KEY X_SAB (SAB),
  KEY X_STR (STR(255))
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
-- create table for dictionaryAnnotator, this implements the old txt dictionaries from earlier versions of scrubber.
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -

CREATE TABLE lookup_dictionary (
  id int(11) NOT NULL auto_increment,
  code varchar(50) NOT NULL,
  ontology varchar(50) NOT NULL,
  str text NOT NULL,
  update_date timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (id),
  KEY strIdx (str(255))
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
-- create table for tf of tokens across a corpus, group by token, pos
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -

CREATE TABLE lookup_term_frequency (
  id int(11) NOT NULL auto_increment,
  cnt int(11) NOT NULL ,
  token varchar(100) NOT NULL,
  pos varchar(10),
  source varchar(20) NOT NULL,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
-- intermediate table used for comparing the distribution of part of speech 
-- between pubs, cases, and known phi tokens.
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
CREATE TABLE pubs_pos (
  id int(11) NOT NULL auto_increment,
  pos varchar(10),
  pos_bin varchar(10),
  pos_cnt int(11) NOT NULL ,
  PRIMARY KEY  (id)
) ENGINE=innodb DEFAULT CHARSET=utf8;

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
-- create feature table for CASES
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
CREATE TABLE feature_matrix_train (
  id int(11) NOT NULL auto_increment,
  token varchar(100) NOT NULL,
  start_idx int(11) NOT NULL ,
  end_idx int(11) NOT NULL ,
  filename_short varchar(20) NOT NULL,
  pos varchar(10),
  pos_bin varchar(10) NOT NULL,
  has_capital int(11) NOT NULL default 0 ,
  cnt_regex_phon int(11) NOT NULL ,
  cnt_regex_date int(11) NOT NULL ,
  cnt_regex_age int(11) NOT NULL ,
  cnt_regex_id int(11) NOT NULL ,
  cnt_regex_pat int(11) NOT NULL ,
  cnt_regex_doc int(11) NOT NULL ,
  cnt_regex_loc int(11) NOT NULL ,
  cnt_regex_hosp int(11) NOT NULL ,
  cnt_priv int(11) NOT NULL ,
  cnt_hosp int(11) NOT NULL ,
  cnt_name int(11) NOT NULL ,
  cnt_dict_costar int(11) NOT NULL ,
  cnt_dict_hl7v25 int(11) NOT NULL ,
  cnt_dict_hl7v30 int(11) NOT NULL ,
  cnt_dict_icd10cm int(11) NOT NULL ,
  cnt_dict_icd10pcs int(11) NOT NULL ,
  cnt_dict_icd9cm int(11) NOT NULL ,
  cnt_dict_lnc int(11) NOT NULL ,
  cnt_dict_msh int(11) NOT NULL ,
  cnt_dict_rxnorm int(11) NOT NULL ,
  cnt_dict_snomedct int(11) NOT NULL ,
  cnt_ham_w_pos float(23,15)  NOT NULL ,
  cnt_ham_wo_pos float(23,15)  NOT NULL ,
  is_phi int(11) NOT NULL ,
  classified_as varchar(20) NOT NULL default 'NA',
  phi_type varchar(20),
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

create table feature_matrix_test like feature_matrix_train;

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
-- create table for KNOWN PHI. determined by annotated gold standard for training data.
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
CREATE TABLE human_annotations_train (
  id int(11) NOT NULL auto_increment,
  subject_id varchar(100) NOT NULL,
  tag_name varchar(1000) NOT NULL,
  tag_value LONGTEXT NOT NULL,
  start_idx int(11) NOT NULL, 
  end_idx int(11) NOT NULL,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

create table human_annotations_test like human_annotations_train;

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
-- create table for annotations
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
CREATE TABLE machine_annotations_train (
  id int(11) NOT NULL auto_increment,
  source varchar(20),
  filename_long varchar(1000) NOT NULL,
  filename_short varchar(20) NOT NULL,
  annot_type_long varchar(1000) NOT NULL,
  annot_type_short varchar(50) NOT NULL,
  token varchar(100) NOT NULL,
  start_idx int(11) NOT NULL,
  end_idx int(11) NOT NULL,
  match_value varchar(50),
  match_source varchar(50),
  update_date timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

create table machine_annotations_test like machine_annotations_train;

CREATE TABLE machine_annotations_pubs (
  id int(11) NOT NULL auto_increment,
  source varchar(20),
  filename_long varchar(1000) NOT NULL,
  filename_short varchar(20) NOT NULL,
  annot_type_long varchar(1000) NOT NULL,
  annot_type_short varchar(50) NOT NULL,
  token varchar(100) NOT NULL,
  start_idx int(11) NOT NULL,
  end_idx int(11) NOT NULL,
  match_value varchar(50),
  match_source varchar(50),
  update_date timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
-- creates table for OPEN ACCESS pub data
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
CREATE TABLE pubs (
  id int(11) NOT NULL auto_increment,
  journal_title varchar(1000),
  article_title varchar(1000),
  pmc varchar(100),
  pmid varchar(100),
  doi varchar(100),
  body LONGTEXT,
  filepath varchar(1000),
  update_date timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE pubs_authors (
  id int(11) NOT NULL auto_increment,
  pub_id int(11) NOT NULL ,
  surname varchar(1000),
  given_name varchar(1000),  
  update_date timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE pubs_refs (
  id int(11) NOT NULL auto_increment,
  pub_id int(11) NOT NULL ,
  surname varchar(1000),
  given_name varchar(1000),  
  update_date timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE pubs_keywords (
  id int(11) NOT NULL auto_increment,
  pub_id int(11) NOT NULL ,
  keyword varchar(1000),
  update_date timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
