use hilis4;
CREATE TABLE `patients` (
`id` int NOT NULL auto_increment,
`last_name` varchar(50) default NULL,
`first_name` varchar(50) default NULL,
`middle_name` varchar(50) default NULL,
`dob` date default NULL,
`gender` enum('M','F','U') default 'U',
`nhs_number` varchar(10) default NULL,
`created_at` timestamp NOT NULL default '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `name` (`last_name`,`first_name`),
UNIQUE KEY `nhs_number` (`nhs_number`)
) ENGINE=InnoDB;
CREATE TABLE `patient_case` (
`id` int NOT NULL auto_increment,
`patient_id` int NOT NULL default '0',
`referral_source_id` smallint NOT NULL default '0',
`unit_number` varchar(255) NOT NULL default 'UNKNOWN',
`time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `case` (`patient_id`,`unit_number`,`referral_source_id`),
KEY `patient_id` (`patient_id`),
KEY `referral_source_id` (`referral_source_id`)
) ENGINE=InnoDB;
CREATE TABLE `requests` (
`id` int NOT NULL auto_increment,
`request_number` smallint NOT NULL default '0',
`year` year(4) NOT NULL default '0000',
`patient_case_id` int NOT NULL default '0',
`referrer_department_id` int NOT NULL default '0',
`status_option_id` smallint NOT NULL default '1',
`created_at` timestamp NOT NULL default '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `lab_no` (`request_number`,`year`),
KEY `patient_case_id` (`patient_case_id`),
KEY `referrer_department_id` (`referrer_department_id`),
KEY `status_option_id` (`status_option_id`)
) ENGINE=InnoDB;
CREATE TABLE `patient_demographics` (
`patient_id` int(11) NOT NULL default '0',
`address` varchar(255) default NULL,
`post_code` varchar(8) default NULL,
`contact_number` varchar(15) default NULL,
`gp_id` int(11) NOT NULL default '0',
`practice_id` smallint(6) NOT NULL default '0',
`status` enum('alive','dead') NOT NULL default 'alive',
`dod` date default NULL,
`time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`patient_id`),
KEY `practice_id` (`practice_id`)
) ENGINE=InnoDB;
CREATE TABLE `referral_sources` (
`id` smallint NOT NULL auto_increment,
`display_name` varchar(255) NOT NULL default '',
`organisation_code` varchar(6) NOT NULL default '',
`parent_organisation_id` smallint NOT NULL default '0',
`referral_type_id` smallint NOT NULL default '0',
`is_active` enum('yes','no') NOT NULL default 'yes',
PRIMARY KEY (`id`),
UNIQUE KEY `organisation_code` (`organisation_code`),
UNIQUE KEY `display_name` (`display_name`),
KEY `referral_type_id` (`referral_type_id`),
KEY `parent_organisation_id` (`parent_organisation_id`)
) ENGINE=InnoDB;
CREATE TABLE `referrers` (
`id` int NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`national_code` varchar(8) NOT NULL default '',
`referral_type_id` smallint NOT NULL default '0',
`active` enum('yes','no') NOT NULL default 'yes',
PRIMARY KEY (`id`),
KEY `name` (`name`),
UNIQUE KEY `national_code` (`national_code`)
) ENGINE=InnoDB;
ALTER TABLE `patient_case`
ADD CONSTRAINT `patient_case_ibfk_1` FOREIGN KEY (`referral_source_id`)
REFERENCES `referral_sources` (`id`),
ADD CONSTRAINT `patient_case_ibfk_2` FOREIGN KEY (`patient_id`) REFERENCES `patients` (`id`) ON DELETE CASCADE;
ALTER TABLE `patient_demographics`
ADD CONSTRAINT `patient_demographics_ibfk_3` FOREIGN KEY (`gp_id`) REFERENCES `referrers` (`id`),
ADD CONSTRAINT `patient_demographics_ibfk_2` FOREIGN KEY (`practice_id`) REFERENCES `referral_sources` (`id`),
ADD CONSTRAINT `patient_demographics_ibfk_1` FOREIGN KEY (`patient_id`) REFERENCES `patients` (`id`);
use outreach;
CREATE TABLE `patient_dispatch_detail` (
`patient_id` INT(11) NOT NULL DEFAULT '0',
`dispatch_to` ENUM('home','alternate','GP') NOT NULL DEFAULT 'home',
PRIMARY KEY (`patient_id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;
CREATE TABLE `request_pack_dispatch` (
`request_id` INT(11) NOT NULL DEFAULT '0',
`pack_due` DATE NULL DEFAULT NULL,
`pack_sent` DATE NULL DEFAULT NULL,
`return_due` DATE NULL DEFAULT NULL,
`time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`request_id`))
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;
CREATE TABLE `request_results` (
`request_id` INT(11) NOT NULL DEFAULT '0',
`param_id` SMALLINT(6) NOT NULL DEFAULT '0',
`result` VARCHAR(255) NOT NULL DEFAULT '',
PRIMARY KEY (`request_id`, `param_id`),
INDEX `request_results_ibfk_1` (`param_id`),
CONSTRAINT `request_results_ibfk_1` FOREIGN KEY (`param_id`) REFERENCES `lab_params` (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;
CREATE TABLE `request_followup` (
`request_id` INT(11) NOT NULL DEFAULT '0',
`followup_option_id` SMALLINT(6) NOT NULL DEFAULT '0',
`time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`request_id`),
INDEX `followup_option_id` (`followup_option_id`),
CONSTRAINT `request_followup_ibfk_1` FOREIGN KEY (`followup_option_id`) REFERENCES `followup_options` (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;
CREATE TABLE `followup_options` (
`id` SMALLINT(6) NOT NULL AUTO_INCREMENT,
`option` VARCHAR(20) NULL DEFAULT NULL,
`label` VARCHAR(25) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;
CREATE TABLE `lab_params` (
`id` SMALLINT(6) NOT NULL AUTO_INCREMENT,
`param_name` VARCHAR(25) NOT NULL DEFAULT '',
`field_label` VARCHAR(255) NOT NULL DEFAULT '',
`field_type` ENUM('menu','int','decimal') NULL DEFAULT 'int',
`department_id` SMALLINT(6) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE INDEX `param_name` (`param_name`),
INDEX `department_id` (`department_id`),
CONSTRAINT `lab_params_ibfk_1` FOREIGN KEY (`department_id`) REFERENCES `result_types` (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;