package LIMS::DB::Patient;
use base qw(LIMS::RDBO);
#=begin
__PACKAGE__->meta->setup (
table => 'patients',
columns => [
id => { type => 'serial', not_null => 1 },
last_name => { type => 'varchar', length => 50 },
first_name => { type => 'varchar', length => 50 },
middle_name => { type => 'varchar', length => 50 },
dob => { type => 'date' },
gender => { type => 'enum', check_in => [ 'M', 'F', 'U' ], default => 'U' },
nhs_number => { type => 'varchar', length => 10 },
updated_at => { type => 'timestamp', not_null => 1 },
created_at => { type => 'timestamp', not_null => 1 },
],
primary_key_columns => [ 'id' ],
unique_key => [ 'nhs_number' ],
relationships => [
patient_case => {
class => 'LIMS::DB::PatientCase',
column_map => { id => 'patient_id' },
type => 'one to many',
},
patient_demographic => {
class => 'LIMS::DB::PatientDemographic',
column_map => { id => 'patient_id' },
type => 'one to many',
},
patient_demographic_history => {
class => 'LIMS::DB::PatientDemographicHistory',
column_map => { id => 'patient_id' },
type => 'one to many',
},
patient_edit => {
class => 'LIMS::DB::PatientEdit',
column_map => { id => 'patient_id' },
type => 'one to many',
},
patient_trial => {
class => 'LIMS::DB::PatientTrial',
column_map => { id => 'patient_id' },
type => 'one to many',
},
],
);
#=cut
# or to see what it should be:
#__PACKAGE__->meta->table('patients');
#__PACKAGE__->meta->auto_initialize;
# print __PACKAGE__->meta->perl_class_definition(indent => 2);
__PACKAGE__->meta->make_manager_class('patients');
1;
=begin # functionally identical to make_manager_class method above
package LIMS::DB::Patient::Manager;
use base qw(Rose::DB::Object::Manager);
sub object_class { 'LIMS::DB::Patient' }
__PACKAGE__->make_manager_methods('patients');
1;
=cut