/** * A simple set of functions to check our version 1.0 update service. * * @package WordPress * @since 2.3.0 */ /** * Check WordPress version against the newest version. * * The WordPress version, PHP version, and Locale is sent. Checks against the * WordPress server at api.wordpress.org server. Will only check if WordPress * isn't installing. * * @since 2.3.0 * @uses $wp_version Used to check against the newest WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_version_check( $extra_stats = array(), $force_check = false ) { if ( defined('WP_INSTALLING') ) return; global $wpdb, $wp_local_package; include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $php_version = phpversion(); $current = get_site_transient( 'update_core' ); $translations = wp_get_installed_translations( 'core' ); // Invalidate the transient when $wp_version changes if ( is_object( $current ) && $wp_version != $current->version_checked ) $current = false; if ( ! is_object($current) ) { $current = new stdClass; $current->updates = array(); $current->version_checked = $wp_version; } if ( ! empty( $extra_stats ) ) $force_check = true; // Wait 60 seconds between multiple version check requests $timeout = 60; $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( ! $force_check && $time_not_changed ) return false; $locale = get_locale(); /** * Filter the locale requested for WordPress core translations. * * @since 2.8.0 * * @param string $locale Current locale. */ $locale = apply_filters( 'core_version_check_locale', $locale ); // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_core', $current ); if ( method_exists( $wpdb, 'db_version' ) ) $mysql_version = preg_replace('/[^0-9.].*/', '', $wpdb->db_version()); else $mysql_version = 'N/A'; if ( is_multisite() ) { $user_count = get_user_count(); $num_blogs = get_blog_count(); $wp_install = network_site_url(); $multisite_enabled = 1; } else { $user_count = count_users(); $user_count = $user_count['total_users']; $multisite_enabled = 0; $num_blogs = 1; $wp_install = home_url( '/' ); } $query = array( 'version' => $wp_version, 'php' => $php_version, 'locale' => $locale, 'mysql' => $mysql_version, 'local_package' => isset( $wp_local_package ) ? $wp_local_package : '', 'blogs' => $num_blogs, 'users' => $user_count, 'multisite_enabled' => $multisite_enabled, ); $post_body = array( 'translations' => json_encode( $translations ), ); if ( is_array( $extra_stats ) ) $post_body = array_merge( $post_body, $extra_stats ); $url = $http_url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' ); if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $options = array( 'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3 ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ), 'headers' => array( 'wp_install' => $wp_install, 'wp_blog' => home_url( '/' ) ), 'body' => $post_body, ); $response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) return false; $body = trim( wp_remote_retrieve_body( $response ) ); $body = json_decode( $body, true ); if ( ! is_array( $body ) || ! isset( $body['offers'] ) ) return false; $offers = $body['offers']; foreach ( $offers as &$offer ) { foreach ( $offer as $offer_key => $value ) { if ( 'packages' == $offer_key ) $offer['packages'] = (object) array_intersect_key( array_map( 'esc_url', $offer['packages'] ), array_fill_keys( array( 'full', 'no_content', 'new_bundled', 'partial', 'rollback' ), '' ) ); elseif ( 'download' == $offer_key ) $offer['download'] = esc_url( $value ); else $offer[ $offer_key ] = esc_html( $value ); } $offer = (object) array_intersect_key( $offer, array_fill_keys( array( 'response', 'download', 'locale', 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email', 'support_email' ), '' ) ); } $updates = new stdClass(); $updates->updates = $offers; $updates->last_checked = time(); $updates->version_checked = $wp_version; if ( isset( $body['translations'] ) ) $updates->translations = $body['translations']; set_site_transient( 'update_core', $updates ); if ( ! empty( $body['ttl'] ) ) { $ttl = (int) $body['ttl']; if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) { // Queue an event to re-run the update check in $ttl seconds. wp_schedule_single_event( time() + $ttl, 'wp_version_check' ); } } // Trigger a background updates check if running non-interactively, and we weren't called from the update handler. if ( defined( 'DOING_CRON' ) && DOING_CRON && ! doing_action( 'wp_maybe_auto_update' ) ) { do_action( 'wp_maybe_auto_update' ); } } /** * Check plugin versions against the latest versions hosted on WordPress.org. * * The WordPress version, PHP version, and Locale is sent along with a list of * all plugins installed. Checks against the WordPress server at * api.wordpress.org. Will only check if WordPress isn't installing. * * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_plugins( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined('WP_INSTALLING') ) return false; // If running blog-side, bail unless we've not checked in the last 12 hours if ( !function_exists( 'get_plugins' ) ) require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); $plugins = get_plugins(); $translations = wp_get_installed_translations( 'plugins' ); $active = get_option( 'active_plugins', array() ); $current = get_site_transient( 'update_plugins' ); if ( ! is_object($current) ) $current = new stdClass; $new_option = new stdClass; $new_option->last_checked = time(); // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-plugins.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { $new_option->checked[ $file ] = $p['Version']; if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) $plugin_changed = true; } if ( isset ( $current->response ) && is_array( $current->response ) ) { foreach ( $current->response as $plugin_file => $update_details ) { if ( ! isset($plugins[ $plugin_file ]) ) { $plugin_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $plugin_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_plugins', $current ); $to_send = compact( 'plugins', 'active' ); $locales = array( get_locale() ); /** * Filter the locales requested for plugin translations. * * @since 3.7.0 * * @param array $locales Plugin locale. Default is current locale of the site. */ $locales = apply_filters( 'plugins_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 plugins $timeout = 3 + (int) ( count( $plugins ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'plugins' => json_encode( $to_send ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), 'all' => json_encode( true ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); foreach ( $response['plugins'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); foreach ( $response['no_update'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); if ( is_array( $response ) ) { $new_option->response = $response['plugins']; $new_option->translations = $response['translations']; // TODO: Perhaps better to store no_update in a separate transient with an expiry? $new_option->no_update = $response['no_update']; } else { $new_option->response = array(); $new_option->translations = array(); $new_option->no_update = array(); } set_site_transient( 'update_plugins', $new_option ); } /** * Check theme versions against the latest versions hosted on WordPress.org. * * A list of all themes installed in sent to WP. Checks against the * WordPress server at api.wordpress.org. Will only check if WordPress isn't * installing. * * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_themes( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined( 'WP_INSTALLING' ) ) return false; $installed_themes = wp_get_themes(); $translations = wp_get_installed_translations( 'themes' ); $last_update = get_site_transient( 'update_themes' ); if ( ! is_object($last_update) ) $last_update = new stdClass; $themes = $checked = $request = array(); // Put slug of current theme into request. $request['active'] = get_option( 'stylesheet' ); foreach ( $installed_themes as $theme ) { $checked[ $theme->get_stylesheet() ] = $theme->get('Version'); $themes[ $theme->get_stylesheet() ] = array( 'Name' => $theme->get('Name'), 'Title' => $theme->get('Name'), 'Version' => $theme->get('Version'), 'Author' => $theme->get('Author'), 'Author URI' => $theme->get('AuthorURI'), 'Template' => $theme->get_template(), 'Stylesheet' => $theme->get_stylesheet(), ); } // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-themes.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $theme_changed = false; foreach ( $checked as $slug => $v ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) $theme_changed = true; } if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { foreach ( $last_update->response as $slug => $update_details ) { if ( ! isset($checked[ $slug ]) ) { $theme_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $theme_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $last_update->last_checked = time(); set_site_transient( 'update_themes', $last_update ); $request['themes'] = $themes; $locales = array( get_locale() ); /** * Filter the locales requested for theme translations. * * @since 3.7.0 * * @param array $locales Theme locale. Default is current locale of the site. */ $locales = apply_filters( 'themes_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 themes $timeout = 3 + (int) ( count( $themes ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'themes' => json_encode( $request ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $new_update = new stdClass; $new_update->last_checked = time(); $new_update->checked = $checked; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); if ( is_array( $response ) ) { $new_update->response = $response['themes']; $new_update->translations = $response['translations']; } set_site_transient( 'update_themes', $new_update ); } /** * Performs WordPress automatic background updates. * * @since 3.7.0 */ function wp_maybe_auto_update() { include_once( ABSPATH . '/wp-admin/includes/admin.php' ); include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' ); $upgrader = new WP_Automatic_Updater; $upgrader->run(); } /** * Retrieves a list of all language updates available. * * @since 3.7.0 */ function wp_get_translation_updates() { $updates = array(); $transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' ); foreach ( $transients as $transient => $type ) { $transient = get_site_transient( $transient ); if ( empty( $transient->translations ) ) continue; foreach ( $transient->translations as $translation ) { $updates[] = (object) $translation; } } return $updates; } /** * Collect counts and UI strings for available updates * * @since 3.3.0 * * @return array */ function wp_get_update_data() { $counts = array( 'plugins' => 0, 'themes' => 0, 'wordpress' => 0, 'translations' => 0 ); if ( $plugins = current_user_can( 'update_plugins' ) ) { $update_plugins = get_site_transient( 'update_plugins' ); if ( ! empty( $update_plugins->response ) ) $counts['plugins'] = count( $update_plugins->response ); } if ( $themes = current_user_can( 'update_themes' ) ) { $update_themes = get_site_transient( 'update_themes' ); if ( ! empty( $update_themes->response ) ) $counts['themes'] = count( $update_themes->response ); } if ( ( $core = current_user_can( 'update_core' ) ) && function_exists( 'get_core_updates' ) ) { $update_wordpress = get_core_updates( array('dismissed' => false) ); if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array('development', 'latest') ) && current_user_can('update_core') ) $counts['wordpress'] = 1; } if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() ) $counts['translations'] = 1; $counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations']; $titles = array(); if ( $counts['wordpress'] ) $titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] ); if ( $counts['plugins'] ) $titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] ); if ( $counts['themes'] ) $titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] ); if ( $counts['translations'] ) $titles['translations'] = __( 'Translation Updates' ); $update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : ''; $update_data = array( 'counts' => $counts, 'title' => $update_title ); /** * Filter the returned array of update data for plugins, themes, and WordPress core. * * @since 3.5.0 * * @param array $update_data { * Fetched update data. * * @type array $counts An array of counts for available plugin, theme, and WordPress updates. * @type string $update_title Titles of available updates. * } * @param array $titles An array of update counts and UI strings for available updates. */ return apply_filters( 'wp_get_update_data', $update_data, $titles ); } function _maybe_update_core() { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $current = get_site_transient( 'update_core' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) && isset( $current->version_checked ) && $current->version_checked == $wp_version ) return; wp_version_check(); } /** * Check the last time plugins were run before checking plugin versions. * * This might have been backported to WordPress 2.6.1 for performance reasons. * This is used for the wp-admin to check only so often instead of every page * load. * * @since 2.7.0 * @access private */ function _maybe_update_plugins() { $current = get_site_transient( 'update_plugins' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_plugins(); } /** * Check themes versions only after a duration of time. * * This is for performance reasons to make sure that on the theme version * checker is not run on every page load. * * @since 2.7.0 * @access private */ function _maybe_update_themes() { $current = get_site_transient( 'update_themes' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_themes(); } /** * Schedule core, theme, and plugin update checks. * * @since 3.1.0 */ function wp_schedule_update_checks() { if ( !wp_next_scheduled('wp_version_check') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_version_check'); if ( !wp_next_scheduled('wp_update_plugins') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_plugins'); if ( !wp_next_scheduled('wp_update_themes') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_themes'); if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') ) wp_clear_scheduled_hook( 'wp_maybe_auto_update' ); } if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) return; add_action( 'admin_init', '_maybe_update_core' ); add_action( 'wp_version_check', 'wp_version_check' ); add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 ); add_action( 'load-plugins.php', 'wp_update_plugins' ); add_action( 'load-update.php', 'wp_update_plugins' ); add_action( 'load-update-core.php', 'wp_update_plugins' ); add_action( 'admin_init', '_maybe_update_plugins' ); add_action( 'wp_update_plugins', 'wp_update_plugins' ); add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); add_action( 'load-themes.php', 'wp_update_themes' ); add_action( 'load-update.php', 'wp_update_themes' ); add_action( 'load-update-core.php', 'wp_update_themes' ); add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); add_action('init', 'wp_schedule_update_checks'); Medicamentos venenososSesiónDeControl.com
Arrow

Medicamentos venenosos


0
Materia

Este artículo ha sido escrito en Materia, web de noticias de ciencia, tecnología, salud y medio ambiente, que comparte su contenido para ser republicado.


Escrito el 29 de enero de 2013 a las 19:47 | Clasificado en África, Ciencia

Sólo el 1,4% de los 150.000 ensayos clínicos actuales se dedica a las enfermedades de los más pobres y, mientras, los médicos tienen que usar fármacos creados hace medio siglo con efectos secundarios brutales o que incluso matan a los pacientes

Centro de salud en Ngilima (República Democrática del Congo), territorio de la enfermedad del sueño (Fuente: Ben Milpas)
Centro de salud en Ngilima (República Democrática del Congo), territorio de la enfermedad del sueño (Fuente: Ben Milpas)

Parece difícil sentir indignación porque una mujer tenga la opción de quitarse el bigote, pero depende de qué crema contra el vello facial use y de si se conoce la delirante historia de la eflornitina. El relato, como muchos buenos relatos, empieza en África. Hace 25 años, en concreto. Por entonces, en el continente se registraban cada año unos 350.000 casos de la enfermedad del sueño.

El proceso era siempre el mismo: una mosca tsetsé picaba a los campesinos y les transmitía un parásito, que se multiplicaba en su sangre e invadía su cuerpo. Los bichos microscópicos infectaban el sistema nervioso central. Y el comportamiento de los enfermos se transformaba. Sentían confusión y eran incapaces de coordinar sus movimientos. Y si la enfermedad no se trataba, morían.

Las europeas se han quitado el bigote con un fármaco cuya ausencia en África mataba a miles de personas

En aquella época, el único tratamiento era prácticamente un veneno: pinchazos en vena de melarsoprol, un derivado del arsénico que se empleaba desde 1949 y todavía hoy se sigue utilizando como alternativa. Los enfermos tratados sufrían diarreas con sangre, alergias e incluso un síndrome encefalopático letal. El propio tratamiento provocaba hasta el 10% de las muertes asociadas a la enfermedad. Los médicos mataban antes de que lo hiciera el parásito, porque la industria farmacéutica no ofrecía ninguna otra opción.

Entonces llegó la esperanza. En 1990, la Agencia Federal del Medicamento de EEUU aprobó un nuevo fármaco más seguro, la eflornitina, desarrollado en origen contra el cáncer. Cundió el entusiasmo. Uganda, uno de los países con los que se cebaba la enfermedad del sueño, lo registró en 1993 y en seguida hicieron lo mismo otros países. La enfermedad del sueño había llegado a ser la primera causa de muerte en algunas aldeas africanas, incluso por delante del sida, pero la batalla contra la enfermedad se podía ganar.

Inyecciones no, cremas, sí

Y, entonces, el productor original de la eflornitina (la farmacéutica estadounidense Marion Merrel Dow, luego Hoechst Marion Roussel) decidió interrumpir la producción porque no era rentable. Los médicos africanos tuvieron que seguir envenenando a sus pacientes con el derivado del arsénico.

Y, para rematar, la producción de eflornitina se retomó sólo cuando se descubrió que impedía la aparición del vello facial. No había inyecciones para los enfermos, pero había cremas para las coquetas. Las mujeres europeas empezaron a ponerse en el bigote un fármaco cuya ausencia en África mataba a miles de personas.

Sólo cuatro de los 336 nuevos medicamentos diseñados entre 2000 y 2011 son para enfermedades olvidadas

La médico Nines Lima recuerda la historia de la eflornitina con indignación. Ha trabajado en hospitales de Somalia, Congo, Afganistán, India, Angola, Sudán, Níger. Y en todos los lugares la misma historia: personas muriendo por enfermedades propias del Medievo, tratadas con medicamentos desarrollados hace medio siglo y con efectos secundarios brutales. Algunos son, más que medicamentos, venenos.

“Debemos hacer presión política para denunciar que la I+D sigue intereses comerciales y no las necesidades de la salud mundial”, clama Lima. Los últimos datos que maneja su organización, Médicos Sin Fronteras (MSF), son escandalosos. Entre 2000 y 2011, la industria y las instituciones públicas diseñaron 336 medicamentos nuevos, pero sólo cuatro de ellos se pensaron para tratar enfermedades tropicales olvidadas.

En otras palabras, sólo el 1,2% de los nuevos fármacos sirven para luchar contra enfermedades que representan el 10,5% de la pérdida de salud de los habitantes del planeta. Son datos de un estudio todavía sin publicar elaborado por MSF y la iniciativa Medicamentos para Enfermedades Olvidadas.

Fármacos que producen sordera

Mientras la tuberculosis y las 17 enfermedades tropicales consideradas desatendidas por la OMS mantienen a unos 1.400 millones de personas hundidas en la pobreza, las compañías farmacéuticas y los organismos públicos se centran en investigar las enfermedades de los ricos. A fecha de diciembre de 2011, sólo el 1,4% de los 150.000 ensayos clínicos registrados estaban dedicados a las enfermedades desatendidas, según el mismo estudio.

Cúmulo de pastillas contra la tuberculosis multirresistente (Fuente: José Cendón)

La tuberculosis multirresistente es un buen ejemplo de cómo funciona el sistema. Está causada por bacterias que se hacen resistentes a los dos medicamentos más poderosos que existen contra la enfermedad clásica. Así que para combatir a la bacteria es necesario un tratamiento salvaje: dos años tomando hasta 20 pastillas al día que producen depresión, dolores insoportables, náuseas, reacciones psicóticas e incluso sordera definitiva.

Y aún así sólo se curan la mitad de los pacientes. Sólo en 2011 se registraron 310.000 nuevos casos de esta tuberculosis multirresistente y uno de cada cinco enfermos recibió este tratamiento horrible. El resto, directamente nada.

El pasado 31 de diciembre, sin embargo, ocurrió un hecho histórico. La Agencia Federal del Medicamento de EEUU aprobó el primer fármaco contra la tuberculosis desde 1963, la bedaquilina, producida por la multinacional estadounidense Johnson & Johnson. El director de la Campaña de Acceso de MSF, Manica Balasegaram, lo recibió como “un avance mayúsculo”. Y las ONG contra la pobreza luchan para que este éxito se repita.

Una batalla con final feliz

Nines Lima viajará dentro de un mes desde Barcelona hasta Batangafo, un pueblo del noroeste de la República Centroafricana, escenario de una crisis humanitaria totalmente invisible. En medio de un levantamiento armado contra el Gobierno, MSF ha puesto en marcha un ensayo clínico para probar un nuevo tratamiento contra la enfermedad del sueño. “Necesitamos mejores fármacos, con menos efectos secundarios y más eficaces”, expone Lima.

“Con las enfermedades olvidadas algunas farmacéuticas sólo quieren limpiar su imagen”

La presión política de MSF tras el escándalo de la crema contra el vello facial surtió efecto y entre 2000 y 2001 la OMS llegó a acuerdos con las farmacéuticas Aventis Pharma (que absorbió a Hoechst Marion Roussel, la empresa que detuvo la producción de eflornitina porque no era rentable, y hoy forma parte de la francesa Sanofi) y Bayer Health Care, que comenzaron a suministrar gratuitamente medicamentos para tratar la enfermedad del sueño. Es una batalla con final feliz, de momento. Hace una década había 30.000 casos anuales de enfermedad del sueño. En 2011 fueron unos 7.000.

“Con las enfermedades olvidadas algunas farmacéuticas sólo quieren limpiar su imagen, diciendo que tienen colaboraciones de este tipo”, sentencia el médico Israel Molina, del Instituto de Investigación Vall d’Hebron, un centro público situado en Barcelona.

Molina coordina un macroproyecto internacional seleccionado por la Comisión Europea para conseguir un fármaco más eficaz, barato y benigno contra la enfermedad de Chagas, que afecta a unos ocho millones de personas en todo el mundo, sobre todo en América Latina. “El tratamiento actual contra el chagas, el benznidazol, es un veneno”, explica.

Alrededor del 15% de los pacientes tienen que abandonar el tratamiento por su toxicidad. La supuesta cura muchas veces es peor que la enfermedad, que por su parte puede destruir las paredes del corazón hasta la muerte.

“No te donamos fármacos”

Hace cinco años, Molina y su equipo pensaron que un fármaco contra los hongos, el posaconazol, podría ser útil para tratar la enfermedad de Chagas, prima hermana americana de la enfermedad del sueño. Y Molina trató de investigar su hipótesis.

“Las industrias farmacéuticas no quisieron colaborar en los ensayos con estos productos porque no eran rentables”, denuncia. La empresa propietaria del posaconazol, Schering-Plough, rechazó donar fármacos para la investigación. “Llamamos y nos dijeron que no”, recuerda. Los científicos pidieron entonces una ayuda pública de 400.000 euros para comprar posaconazol a la farmacéutica y continuar por las bravas su investigación, que por otra parte no ha dado los resultados esperados. Por el camino, la estadounidense Merck ha comprado a Schering-Plough.

El médico Israel Molina lamenta que una farmacéutica no quisiera cooperar en su investigación sobre el chagas

“El posaconazol es caro. El tratamiento de cada paciente hoy habría costado unos 7.500 euros. Si hubiéramos demostrado que el posaconazol es fantástico contra la enfermedad de Chagas, Schering-Plough habría estado obligada a reducir los costes de producción, lo que para ella supone no ganar todo lo que podía ganar. Y si no hubieran reducido los costes, habría sido un escándalo.

Por eso no quisieron colaborar en los ensayos”, explica Molina. Que la industria no quiera donar fármacos para participar en este tipo de ensayos es relativamente común, aunque en su nuevo proyecto sí participan dos laboratorios farmacéuticos —Bio Praxis, de Francia, y Elea, de Argentina— que han firmado un documento en el que se comprometen a no enriquecerse con los resultados de la investigación. “Elea y Bio Praxis tienen en sus cartas fundacionales el compromiso con la investigación en enfermedades olvidadas. Sería injusto tildar a todas las farmacéuticas de interesadas”, subraya Molina.

Tras absorber a Schering-Plough, Merck también ha comenzado un proyecto para estudiar el tratamiento de la enfermedad de Chagas con posaconazol.

“La situación ha cambiado con el chagas. Ahora está de moda entre las farmacéuticas”, señala Molina. “Los enfermos han salido de sus países, que son pobres, y han emigrado a países ricos. Ahora sí interesan a las farmacéuticas”, aclara. Bolivia es el país más afectado por el chagas, pero más de 200.000 bolivianos viven en España.

“Un escándalo absoluto”

El caso de la enfermedad de Chagas ha sido, sin embargo, un “escándalo absoluto”, en palabras del médico Rogelio López-Vélez, responsable de la Unidad de Medicina Tropical en el Hospital Ramon y Cajal de Madrid. La multinacional farmacéutica Roche tuvo el monopolio del único tratamiento contra el chagas, el benznidazol, durante más de 20 años. Es casi un veneno, pero es el único tratamiento contra la enfermedad.

En 2003, Roche donó la tecnología necesaria para fabricar el benznidazol al laboratorio público brasileño Lafepe, pero la incompetencia de esta instalación dejó al mundo sin pastillas contra el chagas entre 2011 y 2012. Una enfermedad que cada año mata a 10.000 personas se quedó sin tratamiento. Sólo en España, 24.000 bolivianos se quedaron sin los fármacos que necesitaban. “Ahora hay una recuperación tímida, gracias al laboratorio argentino Elea, que ha empezado a producir más benznidazol”, explica López-Vélez.

Hace un año, la Fundación Bill y Melinda Gates reunió en Londres a la Organización Mundial de la Salud, a 13 empresas farmacéuticas, al Banco Mundial y a países donantes, como EEUU y Reino Unido. De la conferencia salió una alianza para controlar o eliminar 10 enfermedades tropicales a lo largo de esta década. Médicos Sin Fronteras aplaudió, pero bajito. Uno de sus responsables, Daniel Berman, exigió en seguida “una mayor inversión […] en nuevos y mejores tratamientos”.

Y el presidente de MSF, Unni Karunakara, estalló hace un mes en una conferencia en Nueva York. “La gente sigue muriendo de enfermedades arcaicas. Los profesionales sanitarios están todavía atados por las carencias de medicamentos disponibles, obligados a tratar a sus pacientes con medicamentos que tienen décadas de antigüedad y que suelen ser brutales”, bramó. “Nuestros pacientes están a la espera de avances científicos reales”.

Fuente: El escándalo de los medicamentos veneno
Autor: Manuel Ansede

Comparte tu punto de vista

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>