-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema_clinica.sql.sql
More file actions
80 lines (77 loc) · 2.27 KB
/
schema_clinica.sql.sql
File metadata and controls
80 lines (77 loc) · 2.27 KB
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
USE clinica;
CREATE TABLE convenio (
id_convenio INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
registro_ans CHAR(6) NOT NULL UNIQUE,
ativo boolean default TRUE
);
CREATE TABLE paciente (
id_paciente INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
nome VARCHAR(100) NOT NULL,
cpf VARCHAR(14) NOT NULL UNIQUE,
data_nascimento DATE NOT NULL,
ddd CHAR(2) NOT NULL,
numero VARCHAR(9) NOT NULL,
foreign key(id_convenio) references convenio(id_convenio)
);
CREATE TABLE especialidade (
id_especialidade INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL UNIQUE
);
CREATE TABLE medico (
id_medico INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) not null,
crm VARCHAR(20) UNIQUE NOT NULL,
ativo boolean default true,
id_especialidade INT NOT NULL,
foreign key(id_especialidade)
references especialidade(id_especialidade)
);
CREATE TABLE agenda(
id_agenda INT NOT NULL auto_increment PRIMARY KEY,
id_medico INT NOT NULL,
situacao ENUM(
'Livre',
'Ocupado',
'Bloqueado'
) NOT NULL DEFAULT 'Livre',
data_slot DATE NOT NULL,
hora_slot TIME NOT NULL,
UNIQUE( data_slot , hora_slot),
FOREIGN KEY (id_medico) REFERENCES medico(id_medico)
);
CREATE TABLE consulta (
id_consulta INT AUTO_INCREMENT PRIMARY KEY,
id_paciente INT NOT NULL,
id_agenda INT,
status_consulta ENUM(
'Agendada',
'Confirmada',
'Em Espera',
'Em Atendimento',
'Realizada',
'Cancelada',
'Faltou'
) DEFAULT 'Agendada',
FOREIGN KEY (id_paciente) references paciente(id_paciente),
FOREIGN KEY (id_agenda) references agenda(id_agenda),
UNIQUE(id_agenda)
);
-- 7. Tabela de Usuários (para login no sistema)
CREATE TABLE usuario (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100),
email varchar(100),
senha VARCHAR(255),
perfil ENUM('Paciente', 'medico', 'administrador') NOT NULL
default 'administrador'
);
CREATE TABLE prontuario(
id_prontuario INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
id_consulta INT NOT NULL,
FOREIGN KEY(id_consulta) REFERENCES consulta(id_consulta),
descricao TEXT NOT NULL,
prescricao TEXT NOT NULL,
diagnostico TEXT NOT NULL,
UNIQUE(id_consulta)
)