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 sistema inmunitario que afecta al esófago. Se caracteriza por una acumulación excesiva de eosinófilos (un tipo de glóbulo blanco) en la mucosa esofágica, lo que provoca inflamación, daño en los tejidos y dificultades para tragar. Esta inflamación crónica puede hacer que el esófago se estreche o se vuelva rígido con el tiempo.

Niños en edad escolar: Dolor en el pecho o abdomen, náuseas y dificultad para tragar ciertos alimentos.

    • Disfagia: Dificultad para tragar alimentos sólidos.
    • Conductas adaptativas: Masticar excesivamente, beber mucha agua para ayudar a bajar la comida o evitar alimentos de textura dura (como carnes o pan).
    • El diagnóstico no se puede realizar solo con síntomas, ya que estos pueden confundirse con el reflujo común (ERGE).
    • Biopsia: Se toman muestras de tejido. El diagnóstico se confirma si se encuentran

Tratamiento: El enfoque de las "3 D"

Dieta (Diet): Eliminación de alimentos desencadenantes. Se suele empezar por quitar la leche o seguir dietas de exclusión guiadas por un especialista.

  • Inhibidores de la Bomba de Protones (IBP): Para reducir el ácido y la inflamación.
  • Biológicos: Medicamentos como el Dupilumab, aprobado recientemente para casos específicos.

Apoyo en España.

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

Aviso legal

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