Los 2.098 prospectos solo en PDF: medida y propuesta para seccionarlos · 09/11/2026 10:24
TX-1652 (punto 3). Medido por Silicio en la nave (solo lectura) sobre /datos/nvme/elaizii/prospectos/prospectos-E1626.sqlite y /datos/nvme/elaizii/cima.sqlite; scripts en herramientas/medidas-tx1652/{pdf.py,pdfdest.py} (corridos en la nave). No se ha ejecutado nada sobre la mesa: esto es la medida y la propuesta. Karb and Sil · CC BY 4.0.
1. Qué son
En la descarga de E-1626-4, de 25.118 presentaciones de CIMA, 22.991 tienen el prospecto en HTML (partido en 137.946 secciones), 29 dan 404 y 2.098 solo lo tienen en PDF: el campo prospecto de CIMA apunta a https://cima.aemps.es/cima/pdfs/p/<nregistro>/P_<nregistro>.pdf. Mirado el destino de cada una (HEAD a CIMA sin seguir la redirección, 09/11/2026), son dos familias distintas:
- 1.056 PDF propios de CIMA (200,
application/pdf): medicamentos nacionales en papel antiguo, importaciones paralelas (nregistros con «IP»), plantas medicinales, publicitarios. Un prospecto por PDF. - 1.034 redirigen a la EMA (
https://www.ema.europa.eu/es/documents/product-information/<producto>-epar-product-information_es.pdf): registro centralizado europeo, cuyo «papel» oficial es la product information del EPAR. Son 289 documentos distintos (3,6 presentaciones por documento de media, hasta 20). - 8 dan 404 en CIMA.
| Medida | Cifra |
|---|---|
| Presentaciones solo en PDF | 2.098 |
| … comercializadas hoy | 1.200 |
| … con receta | 1.964 |
| … genéricos | 186 |
| Laboratorios titulares distintos | 368 |
| … cuyo principio activo tiene otra presentación con prospecto en HTML | 2.043 (el suelo existe por la sustancia; falta el de esa marca) |
| … sin ningún prospecto en HTML de su principio activo | 55 |
| PDF propio de CIMA · redirección a la EMA · 404 | 1.056 · 1.034 · 8 |
| Documentos EMA distintos (lo que de verdad habría que bajar) | 289 |
Los 15 laboratorios con más: Novartis Europharm 74 · Menarini International 72 · Eli Lilly Nederland 58 · Roche Registration 51 · Organon 50 · UCB Pharma 49 · Boehringer Ingelheim International 48 · Bayer AG 38 · Upjohn EESV 38 · Merck Sharp & Dohme 37 · Janssen-Cilag International 37 · Les Laboratoires Servier 37 · Sanofi Winthrop 31 · Novo Nordisk 31 · Cheplapharm 28.
Tamaño. CIMA (12 al azar, semilla 1652): 201 KB de media (30-372 KB), 2-11 páginas, todos con capa de texto → unos 210 MB los 1.056. EMA (una muestra, KOGENATE Bayer, bajada desde corpus): 1,2 MB, 68 páginas, de las que el prospecto es la parte final → del orden de 350 MB los 289 (estimado con una sola muestra: medirlo al bajar).
Desde dónde se baja. La EMA (CloudFront) da 429 a la IP de la nave; desde corpus da 200 (lo mismo que pasa con Cloudflare, ver memoria «descargas tras Cloudflare»). La bajada va por corpus.
2. Cómo son (lo que hay que partir)
Los de CIMA (12 de muestra, pdftotext -layout): un prospecto con la plantilla de seis secciones, con el índice delante (los seis títulos salen dos veces). Con la regla de encabezados del § 3.7, 10 de 12 dan las seis secciones en orden tras el índice; 2 pierden algún título (ARACALM, sin el «2.»; STREPSILS y PROGEFFIK con títulos que no empiezan como la plantilla), y 1 no da ninguno (INZITAN, plantilla antigua). Esos son los casos del banco.
Los de la EMA (pdftotext -layout sobre la muestra):
- Un documento por producto, no por presentación: Anexo I (ficha técnica), Anexo II, Anexo III (A etiquetado, B prospecto). Las N presentaciones de CIMA de un mismo producto apuntan al mismo PDF.
- Varios prospectos dentro de la parte B (uno por grupo de presentaciones o de dispositivo), cada uno empieza por «Prospecto: información para el usuario» y lista en su cabecera las presentaciones a las que vale.
- Cada prospecto sigue la plantilla QRD obligatoria de la EMA, con las mismas seis secciones que el HTML de CIMA:
1. Qué es … y para qué se utiliza·2. Qué necesita saber antes de empezar a …·3. Cómo …·4. Posibles efectos adversos·5. Conservación de …·6. Contenido del envase e información adicional, precedidas de un índice («Contenido del prospecto») con los mismos títulos. - Los autorizados y luego retirados llevan una marca de agua diagonal («Medicamento con autorización anulada») que
pdftotextrompe en trozos de 1-3 letras metidos entre las líneas (y a veces entre el número y el título:2. am).
3. Propuesta: partirlos por regla (algorítmico, sin modelo)
Un paso nuevo en dev/grafo red/prospecto_cima.py, descargar_pdf(...), que deja las secciones en la **misma tabla seccion** del SQLite de prospectos (columna nueva origen = pdf-ema, html vacío), así capa_prospecto y la herramienta prospecto de Syd no cambian.
- Destinos (hecho en esta medida).
HEADa CIMA sin seguir la redirección: 1.056 son de CIMA (un prospecto por PDF: van directos al paso 3 y al 7, sin los pasos 5 y 6); 1.034 van a la EMA, 289 documentos que se bajan una vez cada uno. - Bajada: los de CIMA desde la nave; los de la EMA **desde
corpus**, lenta y contada (1 hilo, pausa, reintento ante 429/5xx), a un SQLite local; lo que cruza a la nave va en lote al acabar (norma del 25/10). El PDF se guarda tal cual (es el original, © EMA). - Texto:
pdftotext -layout(poppler; sin OCR: son PDF con capa de texto). - Limpiar la marca de agua (regla legible): se quitan los trozos aislados de 1-3 letras separados por 3 o más espacios del resto de la línea y las líneas que solo tienen eso, si esos trozos, leídos en orden, forman las letras de «Medicamento con autorización anulada». Si no casan, no se toca nada y la presentación queda como cuestión.
- Cortar la parte B: desde la línea
B. PROSPECTO; dentro, un prospecto por cada «Prospecto: información para el usuario». - Asignar cada prospecto a sus presentaciones: las líneas de su cabecera (hasta «Lea todo el prospecto…») son nombres de presentación; casan con el
nombrede CIMA por la misma raíz de marca decapa_columna(raiz_marca) + la dosis. Una presentación que no casa con exactamente un prospecto → cuestión (no se adivina). - Secciones: el encabezado es
^\s*([1-6])\.\s+(Qué es|Qué necesita|Cómo|Posibles efectos|Conservación|Contenido del envase), o el número solo en su línea y el título en la siguiente. Se salta el índice (el primer bloque de seis títulos seguidos sin texto entre ellos). Comprobación en código: los seis, en orden 1→6, cada uno con texto; si no, cuestión y no se guarda. La sección 0 (cabecera) se guarda aparte, como en el HTML. - Licencia: el texto es © EMA (Unión Europea), no © AEMPS: la fuente de la sección es
emay su aviso va enavisos.pycon la condición de reutilización que publique la EMA (leerla antes de cargar; no se da por supuesta).
Banco y «hecho»: 15 de CIMA y 15 de la EMA al azar (semilla fija) partidos a mano una vez = el oro; la regla debe sacar las seis secciones en ≥ 95 % de las presentaciones del banco, y las cuestiones se clasifican (marca de agua, cabecera que no casa, plantilla vieja). Tests con PDF de juguete (generados) para cada regla del 3 al 7. Coste estimado: 1.056 + 289 descargas (~560 MB), a 1 cada 2 s: menos de una hora; partirlos, minutos.
Qué se gana: el suelo del prospecto para 2.098 presentaciones (1.200 comercializadas: la mitad, biológicos y medicamentos nuevos de la EMA; la otra mitad, nacionales antiguos e importaciones paralelas), y 55 principios activos que hoy no tienen ningún prospecto.