feat: sistema de notas clínicas para enfermero (ficha + notas libres) y fix lab_reportes métricas
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
-- Migración: Sistema de notas clínicas por domicilio
|
||||
-- Permite al enfermero registrar:
|
||||
-- · Una ficha clínica (antecedentes, medicamentos, acudiente si es menor)
|
||||
-- · N notas libres adicionales con título, texto enriquecido e imagen adjunta
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `lab_domicilio_notas` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`domicilio_id` INT(11) NOT NULL COMMENT 'FK lab_domicilios.id',
|
||||
`enfermera_id` INT(11) NOT NULL COMMENT 'FK lab_enfermeras.id — quien registró',
|
||||
`tipo` ENUM('clinica','libre') NOT NULL DEFAULT 'libre',
|
||||
-- Campos exclusivos de tipo='clinica'
|
||||
`antecedentes` TEXT DEFAULT NULL COMMENT 'Antecedentes clínicos del paciente',
|
||||
`medicamentos` TEXT DEFAULT NULL COMMENT 'Medicamentos actuales del paciente',
|
||||
`acudiente_nombre` VARCHAR(200) DEFAULT NULL COMMENT 'Nombre del acudiente (obligatorio si es menor)',
|
||||
`acudiente_documento` VARCHAR(50) DEFAULT NULL COMMENT 'Documento del acudiente',
|
||||
-- Campos exclusivos de tipo='libre'
|
||||
`titulo` VARCHAR(200) DEFAULT NULL COMMENT 'Título de la nota libre',
|
||||
`cuerpo` TEXT DEFAULT NULL COMMENT 'Cuerpo de la nota (HTML básico desde contenteditable)',
|
||||
`imagen_path` VARCHAR(300) DEFAULT NULL COMMENT 'Nombre del archivo de imagen en uploads/media/',
|
||||
-- Timestamps
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_notas_domicilio` (`domicilio_id`),
|
||||
KEY `idx_notas_enfermera` (`enfermera_id`),
|
||||
KEY `idx_notas_tipo` (`domicilio_id`, `tipo`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
COMMENT='Notas clínicas y libres registradas por enfermeros durante un servicio de domicilio';
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Migración: crea tabla lab_domicilio_notas
|
||||
* Ejecutar: php migrations/run_20260325_notas.php
|
||||
*/
|
||||
require_once __DIR__ . '/../config/config.php';
|
||||
require_once __DIR__ . '/../classes/Database.php';
|
||||
|
||||
$db = Database::getInstance()->getConnection();
|
||||
$sql = file_get_contents(__DIR__ . '/20260325_lab_12_domicilio_notas.sql');
|
||||
|
||||
// Ejecutar la sentencia CREATE TABLE
|
||||
try {
|
||||
$db->exec($sql);
|
||||
echo "✅ Tabla lab_domicilio_notas creada correctamente.\n";
|
||||
} catch (PDOException $e) {
|
||||
if (str_contains($e->getMessage(), 'already exists')) {
|
||||
echo "⚠️ La tabla ya existe (omitido).\n";
|
||||
} else {
|
||||
echo "❌ ERROR: " . $e->getMessage() . "\n";
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
echo "Migración completada.\n";
|
||||
Reference in New Issue
Block a user