This repository has been archived by the owner on Oct 23, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdbh_schema.sql
205 lines (169 loc) · 5.69 KB
/
dbh_schema.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
/* Do not install MSSQL EXTENSIONS it will show errors*/
/*if you have foreign keys drop child first then parents*/
DROP TABLE IF EXISTS users_session;
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS grps;
DROP TABLE IF EXISTS forces_patients;
DROP TABLE IF EXISTS family_patients;
DROP TABLE IF EXISTS visits;
DROP TABLE IF EXISTS lab_reports;
DROP TABLE IF EXISTS lab_tests_requests;
DROP TABLE IF EXISTS medical_report_info;
DROP TABLE IF EXISTS prescriptions;
#_____________________________________________Table Schema________________________________________#
/* In case of Foreign Keys declare parent first then child */
#table to hold staff groups
CREATE TABLE grps (
id INT(10) AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
permissions TEXT NOT NULL,
PRIMARY KEY (id)
);
#for now permissions are made null
INSERT INTO grps (name,permissions)
VALUES ('Doctor','-');
INSERT INTO grps (name,permissions)
VALUES ('Nurse','-');
INSERT INTO grps (name,permissions)
VALUES ('Lab Staff','-');
INSERT INTO grps (name,permissions)
VALUES ('Admission Officer','-');
INSERT INTO grps(name, permissions)
VALUES('Administrator', '{"admin":1}');
#table to hold verified users
CREATE TABLE users (
id INT(255) AUTO_INCREMENT,
user_first VARCHAR(50) NOT NULL,
user_last VARCHAR(50) NOT NULL,
user_uid VARCHAR(50) UNIQUE NOT NULL,
user_pwd VARCHAR(255) NOT NULL,
user_joined DATETIME NOT NULL,
user_group INT(10) NOT NULL,
user_imgstatus int(2) NOT NULL,
user_email VARCHAR(50) NOT NULL,
user_mobile INT(20) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_group) REFERENCES grps(id)
);
#table to hold unverified users
CREATE TABLE unverified_users (
id INT(255) AUTO_INCREMENT,
user_first VARCHAR(50) NOT NULL,
user_last VARCHAR(50) NOT NULL,
user_uid VARCHAR(50) UNIQUE NOT NULL,
user_pwd VARCHAR(255) NOT NULL,
user_joined DATETIME NOT NULL,
user_group INT(10) NOT NULL,
user_imgstatus int(2) NOT NULL,
user_email VARCHAR(50) NOT NULL,
user_mobile INT(20) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_group) REFERENCES grps(id)
);
#table to hold logged in users
CREATE TABLE users_session (
id INT(255) AUTO_INCREMENT,
user_id VARCHAR(50) UNIQUE NOT NULL,
hash VARCHAR(50) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users(user_uid)
);
#table to hold the details of patients who are military personnel
CREATE TABLE forces_patients (
force_id VARCHAR(32) NOT NULL,
`force` VARCHAR(32) NOT NULL,
first_name VARCHAR(32) NOT NULL,
last_name VARCHAR(32) NOT NULL,
NIC VARCHAR(20) NOT NULL,
gender VARCHAR(15) NOT NULL,
regiment VARCHAR(32) NOT NULL,
`rank` VARCHAR(32) NOT NULL,
email VARCHAR(64) NOT NULL,
date_of_birth VARCHAR(20) NOT NULL,
height double NOT NULL,
weight double NOT NULL,
address VARCHAR(256) NOT NULL,
mobile INT(11) NOT NULL,
photo VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (NIC)
) ;
#table to hold the details of patients who are family members of a military personnel
CREATE TABLE family_patients (
force_id VARCHAR(20) NOT NULL,
`force` VARCHAR(32) NOT NULL,
relation VARCHAR(32) NOT NULL,
first_name VARCHAR(32) NOT NULL,
last_name VARCHAR(32) NOT NULL,
NIC VARCHAR(20) NOT NULL,
gender VARCHAR(15) NOT NULL,
email VARCHAR(32) NOT NULL,
date_of_birth VARCHAR(20) NOT NULL,
height float NOT NULL,
weight float NOT NULL,
address VARCHAR(100) NOT NULL,
mobile INT(15) NOT NULL,
photo VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (NIC)
);
#table to hold visit details of patients for each visit
CREATE TABLE visits (
id INT(255) AUTO_INCREMENT PRIMARY KEY,
nic VARCHAR(16) NOT NULL ,
doa DATE NOT NULL,
reason MEDIUMTEXT DEFAULT NULL,
history MEDIUMTEXT DEFAULT NULL,
cm MEDIUMTEXT DEFAULT NULL,
doctor VARCHAR(255) DEFAULT NULL,
ward VARCHAR(255) DEFAULT NULL,
details MEDIUMTEXT DEFAULT NULL,
Prescription TEXT DEFAULT NULL,
prescription_issued VARCHAR(255) DEFAULT NULL,
Discharged VARCHAR(50) DEFAULT NULL,
discharge_date DATE DEFAULT NULL,
discharge_summary MEDIUMTEXT DEFAULT NULL
);
#table to hold details of lab reports
CREATE TABLE lab_reports (
id INT(255) AUTO_INCREMENT PRIMARY KEY,
nic VARCHAR(20) NOT NULL,
day DATE NOT NULL,
testType VARCHAR(32) NOT NULL,
image longblob NOT NULL
);
#table to hold details of lab test requests
CREATE TABLE lab_tests_requests(
nic VARCHAR(16) PRIMARY KEY,
serializedGeneralLabTestRequest TEXT DEFAULT NULL,
serializedBasicECGRequest TEXT DEFAULT NULL,
serializedABPMonitoringRequest TEXT DEFAULT NULL,
serializedHolterMonitoringRequest TEXT DEFAULT NULL,
serializedHistopathologyRequest TEXT DEFAULT NULL,
serializedImmunoassayRequest TEXT DEFAULT NULL,
serializedXRayRequest TEXT DEFAULT NULL
);
#table to hold details of the medical report
CREATE TABLE medical_report_info(
force_id VARCHAR(32) NOT NULL PRIMARY KEY,
nic VARCHAR(32) NOT NULL,
date DATE NOT NULL,
serializedPersonalHistory TEXT NOT NULL,
serializedHospitalTreatments TEXT NOT NULL,
serializedOtherMedicalTreatments TEXT NOT NULL,
otherInfo TEXT NOT NULL,
summary TEXT NOT NULL,
serializedEyes TEXT NOT NULL,
serializedEarsNoseThroat TEXT NOT NULL,
serializedUpperLimbsLocomotion TEXT NOT NULL,
serializedPhysicalCapacityObject TEXT NOT NULL,
serializedMentalCapacity TEXT NOT NULL,
serializedForm10 TEXT NOT NULL,
serializedSpecialistReportObject TEXT NOT NULL
);
#table to hold prescriptions
CREATE TABLE prescriptions(
id INT(255) AUTO_INCREMENT PRIMARY KEY,
Prescription VARCHAR(255) NOT NULL,
nic VARCHAR(15) NOT NULL,
doa DATE NOT NULL,
prescription_issued VARCHAR(15) NOT NULL
);