139 lines
5.2 KiB
SQL
139 lines
5.2 KiB
SQL
CREATE TABLE IF NOT EXISTS USUARIO (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
nombre VARCHAR(100) NOT NULL,
|
|
apellido1 VARCHAR(100),
|
|
apellido2 VARCHAR(100),
|
|
email VARCHAR(254) NOT NULL,
|
|
password_hash VARCHAR(255) NOT NULL,
|
|
telefono VARCHAR(30),
|
|
fecha_registro DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
rol VARCHAR(30) NOT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uq_usuario_email (email)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS PACIENTE (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
usuario_id BIGINT NOT NULL,
|
|
fecha_nacimiento DATE,
|
|
genero VARCHAR(30),
|
|
tipo_cancer VARCHAR(150),
|
|
observaciones TEXT,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_paciente_usuario FOREIGN KEY (usuario_id) REFERENCES USUARIO (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS MEDICO (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
usuario_id BIGINT NOT NULL,
|
|
numero_colegiado VARCHAR(50),
|
|
especialidad VARCHAR(100),
|
|
hospital VARCHAR(150),
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_medico_usuario FOREIGN KEY (usuario_id) REFERENCES USUARIO (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS CITA (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
paciente_id BIGINT NOT NULL,
|
|
medico_id BIGINT NOT NULL,
|
|
fecha_hora DATETIME NOT NULL,
|
|
tipo VARCHAR(50),
|
|
notas TEXT,
|
|
estado VARCHAR(30) NOT NULL DEFAULT 'PROGRAMADA',
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_cita_paciente FOREIGN KEY (paciente_id) REFERENCES PACIENTE (id),
|
|
CONSTRAINT fk_cita_medico FOREIGN KEY (medico_id) REFERENCES MEDICO (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS SINTOMA (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
paciente_id BIGINT NOT NULL,
|
|
fecha DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
nombre VARCHAR(120) NOT NULL,
|
|
severidad TINYINT UNSIGNED,
|
|
descripcion TEXT,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_sintoma_paciente FOREIGN KEY (paciente_id) REFERENCES PACIENTE (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS TRATAMIENTO (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
paciente_id BIGINT NOT NULL,
|
|
nombre VARCHAR(150) NOT NULL,
|
|
tipo VARCHAR(80),
|
|
fecha_inicio DATE,
|
|
fecha_fin DATE,
|
|
descripcion TEXT,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_tratamiento_paciente FOREIGN KEY (paciente_id) REFERENCES PACIENTE (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS MEDICINA (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
nombre VARCHAR(150) NOT NULL,
|
|
descripcion TEXT,
|
|
PRIMARY KEY (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS MEDICACION (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
tratamiento_id BIGINT NOT NULL,
|
|
medicina_id BIGINT NOT NULL,
|
|
medico_id BIGINT NOT NULL,
|
|
dosis VARCHAR(100),
|
|
frecuencia VARCHAR(100),
|
|
fecha_inicio DATETIME,
|
|
fecha_fin DATETIME,
|
|
observaciones TEXT,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_medicacion_tratamiento FOREIGN KEY (tratamiento_id) REFERENCES TRATAMIENTO (id),
|
|
CONSTRAINT fk_medicacion_medicina FOREIGN KEY (medicina_id) REFERENCES MEDICINA (id),
|
|
CONSTRAINT fk_medicacion_medico FOREIGN KEY (medico_id) REFERENCES MEDICO (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS HISTORIAL_CLINICO (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
paciente_id BIGINT NOT NULL,
|
|
fecha DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
tipo VARCHAR(80) NOT NULL,
|
|
descripcion TEXT,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_historial_paciente FOREIGN KEY (paciente_id) REFERENCES PACIENTE (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS RESUMEN_COMPARTIDO (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
paciente_id BIGINT NOT NULL,
|
|
medico_id BIGINT NOT NULL,
|
|
fecha_creacion DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
formato VARCHAR(30),
|
|
contenido TEXT,
|
|
estado VARCHAR(30),
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_resumen_paciente FOREIGN KEY (paciente_id) REFERENCES PACIENTE (id),
|
|
CONSTRAINT fk_resumen_medico FOREIGN KEY (medico_id) REFERENCES MEDICO (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS ARCHIVO (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
paciente_id BIGINT NOT NULL,
|
|
nombre VARCHAR(255) NOT NULL,
|
|
tipo VARCHAR(100),
|
|
ruta VARCHAR(1024) NOT NULL,
|
|
fecha_subida DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_archivo_paciente FOREIGN KEY (paciente_id) REFERENCES PACIENTE (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS NOTIFICACION (
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|
usuario_id BIGINT NOT NULL,
|
|
tipo VARCHAR(80) NOT NULL,
|
|
mensaje TEXT NOT NULL,
|
|
leida BOOLEAN NOT NULL DEFAULT FALSE,
|
|
fecha_creacion DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_notificacion_usuario FOREIGN KEY (usuario_id) REFERENCES USUARIO (id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|