feat(lis): migración completa Firebird→MySQL + tracking de muestras en turnero
- Migraciones LIS 01-08: schema completo del nuevo LIS (secciones, protocolos, ítems de resultado, perfiles, tarifas, empresas, histórico transaccional) - ETL Firebird→MySQL: script CLI con conversión WIN1252→UTF-8, batches de 500, resolución de FKs y deduplicación de pacientes - turnero_muestras: tracking pendiente/recibida/rechazada por tipo de tubo - lugar.php: widget de recepción de muestras (solo tipo=muestras) - update_muestra_estado.php: API para marcar estado de muestra - create_solicitud.php: auto-crea muestras al guardar solicitud - get_consentimientos.php: incluye muestras[] en el response - 6 vistas SQL: v_muestras_hoy, v_recepcion_completa, v_examen_precio, etc. - numero_orden en encabezado del formulario firmado (D-/F- color diferenciado) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
86ed70db34
commit
5fedd233f4
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
* Aplica las migraciones LIS 01-07 en orden de dependencias.
|
||||
* Ejecutar UNA VEZ antes del ETL.
|
||||
*
|
||||
* Uso:
|
||||
* php run_lis_migrations.php
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/config/database.php'; // $pdo o Database::getInstance()
|
||||
require_once __DIR__ . '/classes/Database.php';
|
||||
|
||||
$pdo = Database::getInstance()->getConnection();
|
||||
|
||||
$migrations = [
|
||||
'20260704_lis_01_catalogos_base.sql',
|
||||
'20260704_lis_02_protocolos.sql',
|
||||
'20260704_lis_03_perfiles.sql',
|
||||
'20260704_lis_04_exam_ampliar.sql',
|
||||
'20260704_lis_05_tarifas.sql',
|
||||
'20260704_lis_06_historico.sql',
|
||||
'20260704_lis_07_turnero_muestras.sql',
|
||||
'20260704_lis_08_vistas.sql',
|
||||
];
|
||||
|
||||
$dir = __DIR__ . '/migrations/';
|
||||
|
||||
foreach ($migrations as $file) {
|
||||
$path = $dir . $file;
|
||||
echo "Ejecutando $file... ";
|
||||
try {
|
||||
$sql = file_get_contents($path);
|
||||
// Separar por ; para ejecutar sentencia a sentencia
|
||||
foreach (array_filter(array_map('trim', explode(';', $sql))) as $stmt) {
|
||||
if ($stmt !== '') $pdo->exec($stmt);
|
||||
}
|
||||
echo "OK\n";
|
||||
} catch (\Throwable $e) {
|
||||
echo "ERROR: " . $e->getMessage() . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
echo "\nMigraciones LIS completadas. Ahora ejecuta el ETL:\n";
|
||||
echo " cd migrations/etl && cp config.php config.local.php\n";
|
||||
echo " # editar config.local.php con credenciales Firebird\n";
|
||||
echo " php run_etl.php --dry-run # prueba sin insertar\n";
|
||||
echo " php run_etl.php # migración real\n";
|
||||
Reference in New Issue
Block a user