sub run_schema {
my $dbix = shift;
my $now = DateTime->now;
my @schema = _schema();
do { $dbix->dbh->do($_) || die $dbix->error } foreach @schema; # $dbix->error doesn't work here
{ # draft_report_users & users table:
my %h = (
username => 'queenie',
first_name => 'miranda',
last_name => 'richardson',
password => 'WdQRFOH9t2KmvPpjgHCjTunkDpM', # sha1 Queenie
email => 'queenie@mail.com',
active => 'yes',
);
$dbix->insert($_, \%h) for qw(draft_report_users users);
}
{ # requests (5):
my %h = (
request_number => 1, # will auto-increment in loop
year => $now->year,
patient_case_id => 1,
status_option_id => 1,
referrer_department_id => 1,
);
$dbix->insert('requests', \%h) && $h{request_number}++ for (1..5);
}
{ # request_specimen (5) & specimen:
my $i = 1;
$dbix->insert('specimens',
{ sample_code => 'PB', description => 'blood' });
$dbix->insert('request_specimen',
{ request_id => $i++, specimen_id => 1}) for (1..5);
}
{ # diagnoses:
my %h = (
name => 'CLL',
icdo3 => '9823/3'
);
$dbix->insert('diagnoses', \%h);
}
}
sub _schema {
return (
q{
CREATE TABLE draft_report_users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username VARCHAR,
first_name VARCHAR,
last_name VARCHAR,
password VARCHAR,
last_login DATETIME,
email VARCHAR,
active VARCHAR
)
},
q{
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username VARCHAR,
first_name VARCHAR,
last_name VARCHAR,
password VARCHAR,
email VARCHAR,
active VARCHAR NOT NULL DEFAULT 'yes'
)
},
q{
CREATE TABLE request_draft_report (
user_id INTEGER,
request_id INTEGER,
request_notes VARCHAR,
clinical_details VARCHAR,
biopsy_site VARCHAR,
gross_description VARCHAR,
morphology VARCHAR,
comment VARCHAR,
status VARCHAR,
diagnosis_id INTEGER,
secondary_diagnosis_id INTEGER,
specimen_quality INTEGER,
created_at DATETIME,
updated_at DATETIME
)
},
q{
CREATE TABLE requests (
id INTEGER PRIMARY KEY AUTOINCREMENT,
request_number INTEGER,
year INTEGER,
patient_case_id INTEGER,
referrer_department_id INTEGER,
status_option_id INTEGER,
created_at DATETIME,
updated_at DATETIME
)
},
q{
CREATE TABLE request_specimen (
request_id INTEGER,
specimen_id INTEGER
)
},
q{
CREATE TABLE specimens (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sample_code TEXT,
description TEXT,
active TEXT
)
},
q{
CREATE TABLE diagnoses (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
icdo3 TEXT,
diagnostic_category_id INTEGER,
active TEXT
)
},
q{
CREATE TABLE user_permission_view (
user_id INTEGER,
function_id INTEGER,
function_name VARCHAR
)
}
);
}
1;