54 lines
2.8 KiB
SQL
54 lines
2.8 KiB
SQL
-- ============================================================
|
|
-- Migration: 20260302_lab_04_domicilios
|
|
-- Módulo Administrativo: Servicios a domicilio
|
|
-- ============================================================
|
|
|
|
CREATE TABLE IF NOT EXISTS `lab_domicilios` (
|
|
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
|
`orden_id` INT(11) DEFAULT NULL COMMENT 'FK a lab_ordenes_medicas.id',
|
|
`paciente_id` INT(11) NOT NULL COMMENT 'FK a lab_pacientes.id',
|
|
-- Datos del domicilio
|
|
`direccion` TEXT NOT NULL,
|
|
`ciudad` VARCHAR(100) DEFAULT NULL,
|
|
`barrio` VARCHAR(100) DEFAULT NULL,
|
|
`indicaciones_dir` TEXT DEFAULT NULL COMMENT 'Referencia de la dirección',
|
|
`fecha_programada` DATE NOT NULL,
|
|
`hora_programada` TIME DEFAULT NULL,
|
|
`tipo_servicio` VARCHAR(100) DEFAULT NULL COMMENT 'Tipo de toma de muestra',
|
|
-- Estado del domicilio
|
|
`estado` ENUM(
|
|
'programado',
|
|
'confirmado',
|
|
'en_camino',
|
|
'en_domicilio',
|
|
'completado',
|
|
'cancelado',
|
|
'reprogramado'
|
|
) NOT NULL DEFAULT 'programado',
|
|
`motivo_cancelacion` TEXT DEFAULT NULL,
|
|
`fecha_reprogramada` DATE DEFAULT NULL,
|
|
-- Resultados
|
|
`hora_llegada` TIME DEFAULT NULL,
|
|
`hora_salida` TIME DEFAULT NULL,
|
|
`observaciones` TEXT DEFAULT NULL,
|
|
`muestras_tomadas` TEXT DEFAULT NULL COMMENT 'Lista de muestras obtenidas',
|
|
-- Gestión
|
|
`creado_por` INT(11) DEFAULT NULL COMMENT 'FK a admin_users.id',
|
|
`notas_admin` TEXT DEFAULT NULL,
|
|
`created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_dom_orden` (`orden_id`),
|
|
KEY `idx_dom_paciente` (`paciente_id`),
|
|
KEY `idx_dom_fecha` (`fecha_programada`),
|
|
KEY `idx_dom_estado` (`estado`),
|
|
KEY `idx_dom_creado` (`creado_por`),
|
|
CONSTRAINT `fk_dom_orden` FOREIGN KEY (`orden_id`)
|
|
REFERENCES `lab_ordenes_medicas` (`id`) ON DELETE SET NULL,
|
|
CONSTRAINT `fk_dom_paciente` FOREIGN KEY (`paciente_id`)
|
|
REFERENCES `lab_pacientes` (`id`) ON DELETE RESTRICT,
|
|
CONSTRAINT `fk_dom_creado` FOREIGN KEY (`creado_por`)
|
|
REFERENCES `admin_users` (`id`) ON DELETE SET NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|
COMMENT='Servicios a domicilio programados';
|