feat: multi-archivo órdenes visible en enfermero, domicilios y órdenes médicas
- OrdenMedica::filtrarCampos(): agrega domicilio_id al whitelist - Domicilio::obtener(): consulta secundaria archivos_ordenes[] con fallback - Enfermera::agenda(): bulk-query archivos_ordenes[] por domicilio_id - api/lab/link_ordenes_domicilio.php: API POST vincula orden_ids a domicilio_id - conversations.php guardar(): trackea allOrdenIds[], llama link API post-save - lab_domicilios.php: renderOrdenesDetail() multi-archivo en detalle - enfermero_portal.php: renderOrdenesEnfermero() multi-archivo en cards - lab_ordenes.php: botón 'Ver domicilio' cuando domicilio_id está vinculado - migrations/: ALTER TABLE lab_ordenes_medicas ADD domicilio_id + índice
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
-- Migración: agrega domicilio_id a lab_ordenes_medicas
|
||||
-- Permite vincular múltiples órdenes a un mismo domicilio (multi-archivo).
|
||||
-- Se omite FK para evitar dependencia circular con lab_domicilios ↔ lab_ordenes_medicas.
|
||||
|
||||
ALTER TABLE `lab_ordenes_medicas`
|
||||
ADD COLUMN `domicilio_id` INT(11) DEFAULT NULL
|
||||
COMMENT 'FK a lab_domicilios.id — domicilio al que pertenece esta orden/archivo'
|
||||
AFTER `paciente_id`;
|
||||
|
||||
ALTER TABLE `lab_ordenes_medicas`
|
||||
ADD INDEX `idx_om_domicilio_id` (`domicilio_id`);
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* Migración: agrega domicilio_id a lab_ordenes_medicas
|
||||
* Ejecutar en el servidor: php migrations/run_20260324_ordenes_domicilio_id.php
|
||||
*/
|
||||
require_once __DIR__ . '/../config/config.php';
|
||||
require_once __DIR__ . '/../classes/Database.php';
|
||||
|
||||
$db = Database::getInstance()->getConnection();
|
||||
$ok = 0;
|
||||
$err = 0;
|
||||
|
||||
$statements = [
|
||||
"ALTER TABLE `lab_ordenes_medicas`
|
||||
ADD COLUMN `domicilio_id` INT(11) DEFAULT NULL
|
||||
COMMENT 'FK a lab_domicilios.id — domicilio al que pertenece esta orden/archivo'
|
||||
AFTER `paciente_id`",
|
||||
"ALTER TABLE `lab_ordenes_medicas`
|
||||
ADD INDEX `idx_om_domicilio_id` (`domicilio_id`)",
|
||||
];
|
||||
|
||||
foreach ($statements as $sql) {
|
||||
try {
|
||||
$db->exec($sql);
|
||||
echo "✅ OK: " . substr(trim($sql), 0, 80) . "\n";
|
||||
$ok++;
|
||||
} catch (PDOException $e) {
|
||||
// Ignorar si la columna/índice ya existe
|
||||
if (str_contains($e->getMessage(), 'Duplicate column') || str_contains($e->getMessage(), 'Duplicate key')) {
|
||||
echo "⚠️ Ya existe (omitido): " . substr(trim($sql), 0, 60) . "\n";
|
||||
} else {
|
||||
echo "❌ ERROR: " . $e->getMessage() . "\n";
|
||||
$err++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "\nMigración completada: {$ok} OK, {$err} errores.\n";
|
||||
Reference in New Issue
Block a user