128 lines
5.0 KiB
Plaintext
128 lines
5.0 KiB
Plaintext
-- Crear base de datos invima --
|
|
CREATE DATABASE invima;
|
|
-- DROP es para eliminar TABLAS Y BASES DE DATOS si la cago --
|
|
DROP TABLE productos;
|
|
DROP TABLE registros_sanitarios;
|
|
-- Crear la tabla productos lo mismo con las de abajo--
|
|
-- OJO QUE TENEMOS RESTRICCIONES ESTO PARA QUE NO LA EMBARREMOS --
|
|
CREATE TABLE productos (
|
|
id_producto text NOT NULL,
|
|
nombre_comercial text NOT NULL,
|
|
categoria_general text NOT NULL
|
|
);
|
|
|
|
CREATE TABLE registros_sanitarios (
|
|
id_registro text NOT NULL,
|
|
id_producto text NOT NULL,
|
|
numero_registro numeric CHECK (numero_registro>0) NOT NULL,
|
|
estado text CONSTRAINT estado_valido CHECK(estado IN ('vencido', 'no vencido')) DEFAULT 'no vencido',
|
|
fecha_expedicion DATE NOT NULL,
|
|
fecha_vencimiento DATE NOT NULL,
|
|
modalidad text NOT NULL,
|
|
titular_registro text NOT NULL,
|
|
fabricante text NOT NULL,
|
|
observaciones text NOT NULL
|
|
);
|
|
|
|
-- INSERTAR INFORMACION ESTO LO HAREMOS MAS ADELANTE CON UN SCRIPT DE PYTHON QUE HAGA ESTO YA TENIENDO EL COMANDO BASE--
|
|
INSERT INTO productos (id_producto, nombre_comercial, categoria_general) VALUES
|
|
('10e372', 'NADOREX' , 'Medicamento' ),
|
|
('12e518', 'Noxpirin Plus' , 'Medicamento' );
|
|
|
|
-- Actualizar datos
|
|
UPDATE productos SET nombre_comercial = 'Acetaminofén' WHERE id_producto = '10e372';
|
|
|
|
|
|
-- BORRAR PRODUCTOS
|
|
DELETE FROM productos WHERE nombre_comercial = 'Acetaminofén';
|
|
DELETE FROM productos WHERE nombre_comercial = 'Noxpirin Plus';
|
|
|
|
--Consultar esto para que luego con la API se consulte breve
|
|
SELECT * FROM productos;
|
|
SELECT * FROM productos ORDER BY id_producto;
|
|
SELECT * FROM productos WHERE nombre_comercial = 'Acetaminofén' ORDER BY id_producto;
|
|
|
|
-- ALTER osea cambios
|
|
-- QUITAR NO NULO
|
|
ALTER TABLE productos ALTER COLUMN id_producto DROP NOT NULL;
|
|
-- AGREGAR NO NULO
|
|
ALTER TABLE productos ALTER COLUMN id_producto SET NOT NULL;
|
|
-- CAMBIAR NOMBRE DE LA COLUMNA
|
|
ALTER TABLE productos RENAME COLUMN id_producto TO identificador;
|
|
-- RENOMBRAR UNA TABLA
|
|
ALTER TABLE productos_invima RENAME TO productos;
|
|
-- AÑADIR PRIMARY KEY
|
|
ALTER TABLE productos ADD PRIMARY KEY (id_producto);
|
|
-- AÑADIR UN FOREIGN KEY
|
|
ALTER TABLE registros_sanitarios ADD FOREIGN KEY (id_producto) REFERENCES productos(id_producto);
|
|
-- AÑADIR UN CHECK A CATEGORIA PRINCIPAL DE PRODUCTOS PARA EL CHECK DE MEDICAMENTOS Y ASI
|
|
ALTER TABLE productos ADD CONSTRAINT categoria_general_valido CHECK (categoria_general IN ('Medicamento','Dispositivo','Alimento','Cosmetico'));
|
|
ALTER TABLE registros_sanitarios ADD PRIMARY KEY (id_registro);
|
|
|
|
CREATE TABLE alertas_sanitarias (
|
|
id_alerta text NOT NULL PRIMARY KEY,
|
|
id_producto text NOT NULL REFERENCES productos(id_producto),
|
|
fecha_alerta DATE NOT NULL DEFAULT CURRENT_DATE,
|
|
tipo text CONSTRAINT tipo_valido CHECK (tipo IN ('Medicamentos','Biológicos', 'Alimentos' ,'Dispositivos', 'Cosméticos')) DEFAULT 'No específico',
|
|
descripcion text NOT NULL,
|
|
estado_alerta text CONSTRAINT estado_alerta_valido CHECK (estado_alerta IN ('Abierto', 'En curso', 'Cerrado')) DEFAULT 'cerrado',
|
|
url_fuente text NOT NULL
|
|
);
|
|
|
|
|
|
CREATE TABLE medicamentos (
|
|
id_producto text REFERENCES productos(id_producto),
|
|
categoria_general text CHECK (categoria_general IN ('Medicamento')) DEFAULT 'Medicamento',
|
|
estado text REFERENCES evaluaciones(estado),
|
|
subcategoria text NOT NULL PRIMARY KEY,
|
|
concentracion_base text NOT NULL,
|
|
forma_farmaceutica text NOT NULL,
|
|
codigo_atc text NOT NULL,
|
|
tipo_medicamento text NOT NULL CHECK (tipo_medicamento IN ('quimico','biologico','biotecnologico','fitoterapeutico','homeopatico','radiofarmaco'))
|
|
);
|
|
|
|
CREATE TABLE dispositivos (
|
|
id_producto text REFERENCES productos(id_producto),
|
|
categoria_general text CHECK (categoria_general IN ('Dispositivo')) DEFAULT 'Dispositivo',
|
|
estado text REFERENCES evaluaciones(estado),
|
|
subcategoria text NOT NULL PRIMARY KEY,
|
|
clase_riesgo text NOT NULL CHECK (clase_riesgo IN ('I','IIa','IIb','III')),
|
|
uso_previsto_detallado text NOT NULL,
|
|
energia_fuente text NOT NULL,
|
|
software_incluido boolean NOT NULL,
|
|
version_software text NOT NULL,
|
|
vida_util_meses integer NOT NULL
|
|
);
|
|
|
|
CREATE TABLE actores (
|
|
id_actor numeric PRIMARY KEY CHECK (id_actor>0) NOT NULL,
|
|
tipo text NOT NULL,
|
|
razon_social text NOT NULL,
|
|
nit text NOT NULL,
|
|
pais text NOT NULL,
|
|
contacto text NOT NULL
|
|
);
|
|
|
|
CREATE TABLE evaluaciones (
|
|
id_producto text REFERENCES productos(id_producto),
|
|
id_actor numeric REFERENCES actores(id_actor),
|
|
id_registro text REFERENCES registros_sanitarios(id_registro),
|
|
id_alerta text REFERENCES alertas_sanitarias(id_alerta),
|
|
estado text PRIMARY KEY NOT NULL CHECK (estado IN ('buenas condiciones', 'en uso', 'no conforme', 'vencido', 'malas condiciones', 'aceptable')) DEFAULT 'no conforme',
|
|
fecha_revision DATE NOT NULL,
|
|
Observaciones text
|
|
);
|
|
|
|
CREATE TABLE
|
|
|
|
DROP TABLE evaluaciones;
|
|
DROP TABLE dispositivos;
|
|
DROP TABLE medicamentos;
|
|
|
|
--- ESTE COMANDO PARA HACER CONSULTAS MEJORES
|
|
|
|
SELECT * FROM productos WHERE nombre_comercial ILIKE '%marcapasos%'
|
|
|
|
-- SI INCLUYE EL NOMBRE MARCAPASOS CON MAYUSCULA O MINUSCULA ENCUENTRA
|
|
|