UNPKG

4.59 kBapplication/x-sqlView Raw
1/* Create a new poc_legacy database and begin configuration */
2DROP DATABASE IF EXISTS poc_legacy;
3CREATE DATABASE poc_legacy DEFAULT CHARACTER SET utf8;
4USE poc_legacy;
5
6/* Destroy all existing data */
7DROP TABLE IF EXISTS poc_legacy.general_practitioners;
8DROP TABLE IF EXISTS poc_legacy.medical_departments;
9DROP TABLE IF EXISTS poc_legacy.patients;
10DROP TABLE IF EXISTS poc_legacy.transfers_of_care;
11DROP TABLE IF EXISTS poc_legacy.allergy_headlines;
12DROP TABLE IF EXISTS poc_legacy.contact_headlines;
13DROP TABLE IF EXISTS poc_legacy.medication_headlines;
14DROP TABLE IF EXISTS poc_legacy.problem_headlines;
15
16/* Create new table schemas */
17CREATE TABLE poc_legacy.general_practitioners (
18 id BIGINT NOT NULL AUTO_INCREMENT,
19 gp_name VARCHAR(150) NULL,
20 address_1 VARCHAR(100) NULL,
21 address_2 VARCHAR(100) NULL,
22 address_3 VARCHAR(100) NULL,
23 address_4 VARCHAR(100) NULL,
24 address_5 VARCHAR(100) NULL,
25 postcode VARCHAR(10) NULL,
26 PRIMARY KEY (id)
27);
28
29CREATE TABLE poc_legacy.medical_departments (
30 id BIGINT NOT NULL AUTO_INCREMENT,
31 department VARCHAR(150) NULL,
32 PRIMARY KEY (id)
33);
34
35CREATE TABLE poc_legacy.patients (
36 id BIGINT NOT NULL AUTO_INCREMENT,
37 title VARCHAR(10) NULL,
38 first_name VARCHAR(30) NULL,
39 last_name VARCHAR(30) NULL,
40 address_1 VARCHAR(100) NULL,
41 address_2 VARCHAR(100) NULL,
42 address_3 VARCHAR(100) NULL,
43 address_4 VARCHAR(100) NULL,
44 address_5 VARCHAR(100) NULL,
45 postcode VARCHAR(10) NULL,
46 phone VARCHAR(20) NULL,
47 date_of_birth DATE NULL,
48 gender VARCHAR(10) NULL,
49 nhs_number VARCHAR(20) NULL,
50 pas_number VARCHAR(20) NULL,
51 department_id BIGINT NOT NULL,
52 gp_id BIGINT NOT NULL,
53 PRIMARY KEY (id),
54 FOREIGN KEY (department_id) REFERENCES poc_legacy.medical_departments(id),
55 FOREIGN KEY (gp_id) REFERENCES poc_legacy.general_practitioners(id)
56);
57
58CREATE TABLE poc_legacy.transfers_of_care (
59 id BIGINT NOT NULL AUTO_INCREMENT,
60 patient_id BIGINT NOT NULL,
61 reason_for_contact VARCHAR(256) NULL,
62 clinical_summary VARCHAR(256) NULL,
63 site_from VARCHAR(256) NULL,
64 site_to VARCHAR(256) NULL,
65 date_of_transfer DATE NULL,
66 source VARCHAR(30) NOT NULL,
67 PRIMARY KEY (id),
68 FOREIGN KEY (patient_id) REFERENCES poc_legacy.patients(id)
69);
70
71CREATE TABLE poc_legacy.allergy_headlines (
72 id BIGINT NOT NULL AUTO_INCREMENT,
73 source_id VARCHAR(100) NOT NULL,
74 transfer_id BIGINT NOT NULL,
75 allergy VARCHAR(256) NULL,
76 source VARCHAR(30) NOT NULL,
77 PRIMARY KEY (id),
78 FOREIGN KEY (transfer_id) REFERENCES poc_legacy.transfers_of_care(id)
79);
80
81CREATE TABLE poc_legacy.contact_headlines (
82 id BIGINT NOT NULL AUTO_INCREMENT,
83 source_id VARCHAR(100) NOT NULL,
84 transfer_id BIGINT NOT NULL,
85 contact_name VARCHAR(256) NULL,
86 source VARCHAR(30) NOT NULL,
87 PRIMARY KEY (id),
88 FOREIGN KEY (transfer_id) REFERENCES poc_legacy.transfers_of_care(id)
89);
90
91CREATE TABLE poc_legacy.medication_headlines (
92 id BIGINT NOT NULL AUTO_INCREMENT,
93 source_id VARCHAR(100) NOT NULL,
94 transfer_id BIGINT NOT NULL,
95 medication VARCHAR(256) NULL,
96 source VARCHAR(30) NOT NULL,
97 PRIMARY KEY (id),
98 FOREIGN KEY (transfer_id) REFERENCES poc_legacy.transfers_of_care(id)
99);
100
101CREATE TABLE poc_legacy.problem_headlines (
102 id BIGINT NOT NULL AUTO_INCREMENT,
103 source_id VARCHAR(100) NOT NULL,
104 transfer_id BIGINT NOT NULL,
105 problem VARCHAR(256) NULL,
106 source VARCHAR(30) NOT NULL,
107 PRIMARY KEY (id),
108 FOREIGN KEY (transfer_id) REFERENCES poc_legacy.transfers_of_care(id)
109);
110
111/* Delete the answer user (grant all to workaround MySQL not supporting 'IF EXISTS') */
112GRANT ALL ON poc_legacy.* TO 'answer' IDENTIFIED BY 'answer99q';
113DROP USER 'answer';
114FLUSH PRIVILEGES;
115
116/* Create a new answer user with full privileges */
117CREATE USER 'answer' IDENTIFIED BY 'answer99q';
118GRANT ALL ON poc_legacy.* TO 'answer'@'%' IDENTIFIED BY 'answer99q';
119GRANT ALL ON poc_legacy.* TO 'answer'@'localhost' IDENTIFIED BY 'answer99q';
120FLUSH PRIVILEGES;
\No newline at end of file