feat: sistema de notas clínicas para enfermero (ficha + notas libres) y fix lab_reportes métricas

This commit is contained in:
Lizandro Guarnizo
2026-03-25 13:14:25 -05:00
parent 4ba890a0d5
commit 5f695b5604
8 changed files with 1180 additions and 1 deletions
@@ -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';
+25
View File
@@ -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";