22 de mayo: Día Mundial de la Esofagitis Eosinofílica

Infografía sobre el 22 de mayo Día Mundial de la Esofagitis Eosinofilica - Generada con Gemini IA

 Asociación Española de Esofagitis Eosinofílica

La Esofagitis Eosinofílica (EoE) es una enfermedad inflamatoria crónica del esófago de origen inmunoalergénico. Se caracteriza por una acumulación anormal de un tipo de glóbulos blancos llamados eosinófilos en la mucosa del esófago, lo que provoca inflamación, disfunción y rigidez en este conducto.

A menudo se le llama coloquialmente "el asma del esófago" debido a su naturaleza alérgica y crónica.

Síntomas Principales

Los síntomas varían considerablemente según la edad del paciente:

  • En adultos y adolescentes:
    • Disfagia: Dificultad para tragar alimentos sólidos (el síntoma más común).
    • Impactación alimentaria: Alimentos que se quedan atascados en el esófago, requiriendo a veces atención médica de urgencia.
    • Dolor en el pecho (que no responde a antiácidos).
    • Ardor de estómago o reflujo persistente.
  • En niños:
    • Dificultad para alimentarse o rechazo a la comida.
    • Vómitos frecuentes y dolor abdominal.
    • Retraso en el crecimiento o pérdida de peso.

Causas y Desencadenantes

Aunque se considera una enfermedad mediada por el sistema inmunitario, los desencadenantes principales suelen ser ambientales:

  1. Alergenos alimentarios: Es la causa más frecuente. Los alimentos más comúnmente implicados son la leche de vaca, el trigo/gluten, el huevo, la soja, los frutos secos y los mariscos.
  2. Alergenos ambientales (aéreos): El polen, los ácaros del polvo o el pelo de animales pueden empeorar los síntomas en ciertas épocas del año.
  3. Componente genético: Existe una predisposición familiar. Es común que estos pacientes tengan otras condiciones alérgicas como asma, dermatitis atópica o rinitis.

Diagnóstico

El diagnóstico de la EoE no se puede hacer solo con los síntomas, ya que se confunde fácilmente con el Reflujo Gastroesofágico (ERGE). Se requiere:

  • Endoscopia digestiva alta: Para observar el estado del esófago (suele presentar anillos, estrías longitudinales o estrechamiento).
  • Biopsia esofágica: Es el estándar de oro. Se toman muestras de tejido y se confirma el diagnóstico si se contabilizan $\ge$ 15 eosinófilos por campo de gran aumento (hpf) bajo el microscopio.

Tratamiento actual

El tratamiento es personalizado y se basa en las "3 Ds": Dieta, Medicamentos (Drugs) y Dilatación.

Tipo de Tratamiento Descripción
Dietético Dieta de eliminación (retirar los alimentos sospechosos y reintroducirlos gradualmente para identificar el causante).
Farmacológico

Inhibidores de la Bomba de Protones (IBP): Reducen el ácido y tienen efecto antiinflamatorio.


Corticoides tópicos deglutidos: (Como la budesonida o fluticasona) que actúan directamente en la mucosa del esófago sin pasar masivamente a la sangre.

Endoscópico Dilatación esofágica: Se reserva para casos avanzados donde el esófago se ha estrechado gravemente (estenosis), permitiendo ensanchar el conducto.

Nota importante: Al ser una enfermedad crónica, la EoE requiere un seguimiento a largo plazo por parte de un gastroenterólogo y, en muchos casos, de un alergólogo, ya que suspender el tratamiento suele provocar la reaparición de la inflamación.

Conoce más sobre la EoE y sus síntomas con el Hospital Gregorio Marañón

Este vídeo explica de forma clara las causas, síntomas específicos por edad y el manejo clínico de la esofagitis eosinofílica.

{source}<?php

defined('_JEXEC') or die('Acceso restringido');

function generarThumbnailJoomla($url, $nombreArchivo, $ancho = 800) {
$rutaDestino = JPATH_SITE . '/images/thumbnails/noticias/' . $nombreArchivo;

if (!is_writable(JPATH_SITE . '/images/thumbnails/noticias/')) {
return "Error: La carpeta /images/thumbnails/noticias/ no tiene permisos de escritura.";
}

$urlLimpia = trim($url);
if (!preg_match("~^(?:f|ht)tps?://~i", $urlLimpia)) {
$urlLimpia = "http://" . $urlLimpia;
}
$urlLimpia = str_replace(' ', '%20', $urlLimpia);

$apiUrl = "https://api.apiflash.com/v1/urltoimage?access_key=5073ba864a4640458fc659013ecb2ae3&width=1920&format=webp&height=1920&thumbnail_width=1024&no_cookie_banners=true&no_ads=true&no_tracking=true&user_agent=Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36&fail_on_status=400%2C404%2C500-511&url=" . urlencode($urlLimpia);

$ch = curl_init($apiUrl);

$fp = fopen($rutaDestino, 'wb');
if (!$fp) {
return "Error: No se pudo crear el archivo.";
}

// --- SOLUCIÓN AL DEADLOCK (Autobloqueo) ---
if (session_status() === PHP_SESSION_ACTIVE) {
session_write_close();
}

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// Reducimos el timeout
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36');

curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlError = curl_error($ch);

curl_close($ch);
fclose($fp);

if ($httpCode == 200 && file_exists($rutaDestino) && filesize($rutaDestino) > 1000) {
if (@getimagesize($rutaDestino) !== false) {
return true;
}
}

@unlink($rutaDestino);

if (strpos($curlError, 'timed out') !== false) {
return "Error: La API tardó demasiado (Timeout).";
}

return "Error API (HTTP " . $httpCode . "). " . $curlError;
}

date_default_timezone_set('UTC');

$db = \Joomla\CMS\Factory::getContainer()->get('DatabaseDriver');
$app = \Joomla\CMS\Factory::getApplication();

// --- CONFIGURACIÓN DE LÍMITES Y PAGINACIÓN ---
$maxRegistrosAbsolutos = 32; // LÍMITE ESTRICTO DE RESULTADOS EN TOTAL
$limitePorPagina = 32; // 32 elementos = 8 filas exactas de 4 columnas

$paginaActual = $app->input->getInt('pagina', 1);
if ($paginaActual < 1) $paginaActual = 1;

// 1. Obtener el total de registros en la base de datos (SIN WHERE)
$queryTotal = $db->getQuery(true);
$queryTotal->select('COUNT(*)')->from($db->quoteName('noticiaseerr'));
$db->setQuery($queryTotal);
$totalRegistrosReales = (int) $db->loadResult();

// CORTAR el total de registros al límite máximo de 48
$totalRegistros = min($totalRegistrosReales, $maxRegistrosAbsolutos);

$totalPaginas = ceil($totalRegistros / $limitePorPagina);

// Seguridad: Si alguien fuerza una página mayor en la URL, ajustarla a la última válida
if ($paginaActual > $totalPaginas && $totalPaginas > 0) {
$paginaActual = $totalPaginas;
}

// Calcular Offset
$offset = ($paginaActual - 1) * $limitePorPagina;

// Calcular cuántos registros pedir exactamente en la página actual para no pasarse de 48
$registrosAPedir = min($limitePorPagina, $totalRegistros - $offset);

// 2. Obtener los registros limitados (SIN WHERE)
$resultados = [];
if ($registrosAPedir > 0) {
$query = $db->getQuery(true);
$query->select($db->quoteName(['fecha', 'titular', 'url', 'enfermedad']))
->from($db->quoteName('noticiaseerr'))
->where($db->quoteName('enfermedad') . ' = ' . $db->quote('Esofagitis eosinofílica'))
->order($db->quoteName('fecha') . ' DESC, ' . $db->quoteName('nid') . ' DESC')
->setLimit($registrosAPedir, $offset);

$db->setQuery($query);
$resultados = $db->loadObjectList();
}

echo "<h2>Últimas noticias</h2>";

if ($resultados) {
// --- CONTENEDOR GRID DE 4 COLUMNAS ---
echo "<div style='display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 30px;'>";

$nt = $offset + 1;

foreach ($resultados as $row) {
$urlObjetivo = $row->url;
$nombreImagen = "thumb_" . md5($urlObjetivo) . ".webp";
$rutaDestino = JPATH_SITE . '/images/thumbnails/noticias/' . $nombreImagen;
$urlImagen = \Joomla\CMS\Uri\Uri::root() . "images/thumbnails/noticias/" . $nombreImagen;

// Estilos para cada "celda" de la tabla/grid
echo "<div style='display: flex; flex-direction: column; font-size:14px; padding:15px; border: 1px solid #eaeaea; border-radius: 8px; background-color: #fcfcfc;'>";

echo "<div style='color: #666; font-size: 12px; margin-bottom: 8px;'><strong>#" . $nt . " | " . $row->fecha . "</strong></div>";
echo "<div style='flex-grow: 1; margin-bottom: 15px;'>";
echo "<a href='" . $urlObjetivo . "' target='_blank' style='text-decoration:none; font-weight:bold; color: #0056b3; line-height: 1.3;'>";
echo htmlspecialchars($row->titular) . "</a></div>";

$logError = "";

if (!file_exists($rutaDestino)) {
$status = generarThumbnailJoomla($urlObjetivo, $nombreImagen, 800);
if ($status !== true) {
$logError = $status;
}
}

if (file_exists($rutaDestino)) {
$imgSrc = $urlImagen . "?v=" . filemtime($rutaDestino);
echo "<a href='" . $urlObjetivo . "' target='_blank' style='display:block; text-align:center;'>";
echo "<img src='" . $imgSrc . "' style='width: 100%; height: auto; object-fit: cover; border: 1px solid #ccc; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);'>";
echo "</a>";
} else {
echo "<div style='background: #ffe3e3; padding: 10px; border-radius: 4px;'><span style='color:#d9534f; font-size:11px; font-weight:bold;'>[" . $logError . "]</span></div>";
}

echo "</div>";
$nt++;
}

echo "</div>"; // Cierra el Grid

// --- RENDERIZAR NAVEGACIÓN DE PAGINACIÓN ---
if ($totalPaginas > 1) {
$uri = \Joomla\CMS\Uri\Uri::getInstance();

echo "<div style='text-align: center; margin-top: 20px; font-family: sans-serif;'>";

// Botón Anterior
if ($paginaActual > 1) {
$uri->setVar('pagina', $paginaActual - 1);
echo "<a href='" . $uri->toString() . "' style='display: inline-block; padding: 8px 12px; margin: 0 4px; background: #eee; color: #333; text-decoration: none; border-radius: 4px;'>&laquo; Anterior</a>";
}

// Números de Página
for ($i = 1; $i <= $totalPaginas; $i++) {
$uri->setVar('pagina', $i);
$estiloActivo = ($i == $paginaActual) ? "background: #0056b3; color: white;" : "background: #eee; color: #333;";
echo "<a href='" . $uri->toString() . "' style='display: inline-block; padding: 8px 12px; margin: 0 4px; text-decoration: none; border-radius: 4px; " . $estiloActivo . "'>" . $i . "</a>";
}

// Botón Siguiente
if ($paginaActual < $totalPaginas) {
$uri->setVar('pagina', $paginaActual + 1);
echo "<a href='" . $uri->toString() . "' style='display: inline-block; padding: 8px 12px; margin: 0 4px; background: #eee; color: #333; text-decoration: none; border-radius: 4px;'>Siguiente &raquo;</a>";
}

echo "</div>";
}

} else {
echo "<p>No hay noticias disponibles.</p>";
}
?>
{/source}

Artículos relacionados

Lun Mar Mié Jue Vie Sáb Dom
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30