La columna del medicamento
06/11/2026 22:49 CET · Silicio (Opus) · Karb and Sil · CC BY 4.0 · E-1626 (TX-1626, trabajo TX-1362)
Un mismo medicamento vive en Elaizii en varios niveles sueltos, y cada fuente cuelga sus datos en el nivel que a ella le toca: CIMA conoce la presentación y el principio activo; SNOMED, el producto y la sustancia; ChEMBL, la molécula y la diana; la ficha técnica indica y describe reacciones de la sustancia. Cuando a Syd se le pregunta por un nivel (la marca «Inhixa») y el dato cuelga de otro (las reacciones, de la sustancia «enoxaparina»), tiene que saltar, y si no encuentra el salto dice «no consta». Este documento fija la columna: los niveles, cómo se unen por código, en qué nivel cuelga cada tipo de dato y cómo se hereda de un nivel a otro. Es la fuente única de las reglas; E-1626 las materializa en el grafo (capa capa_columna) y E-1624 (el constructor perezoso) las reutiliza sin duplicarlas.
El principio que manda (Eduardo, 06/11/2026): «el valor de Elaizii es precisamente su capacidad de conectar cosas». Y la vara de medir: una respuesta tiene que decir al menos lo que dice el prospecto y, además, lo que solo da el grafo. El grafo conecta; el documento (prospecto/ficha) contesta el contenido.
El diagrama: [diagramas/columna-del-medicamento.archify.json](/content/apis-elaizii/diagramas/columna-del-medicamento.html) (dataflow, validado en calidad showcase).
1. Los niveles (de lo concreto a lo abstracto)
Medido sobre la mesa de trabajo (/datos/nvme/elaizii/mesa.sqlite) el 06/11/2026. El ejemplo que se sigue en todo el documento es Inhixa 4.000 UI (cima:1161132003), la enoxaparina que se inyecta Eduardo.
| Nivel | Qué es | Objeto en la mesa | Cuántos hay | Ejemplo (Inhixa) |
|---|---|---|---|---|
| marca | el nombre comercial, sin dosis ni forma | (nuevo) marca:<lab>:<raíz> | 0 hoy (los crea E-1626) | «Inhixa» (7 presentaciones) |
| presentación | el medicamento registrado (dosis + forma) | cima:<nregistro> | 25 511 medicamento | cima:1161132003 = «INHIXA 4.000 UI (40 MG)/0,4 ML SOLUCIÓN INYECTABLE» |
| producto / VTM | el producto virtual (SNOMED/CIMA VTM) | cima:pa:<vtm> · sct: producto | 2 381 principio activo, 40 790 producto | cima:pa:108984007 = «enoxaparina sodio» |
| sal | la forma salina de la sustancia | sct: sustancia (sal) | — | «enoxaparina sódica» (SNOMED) |
| sustancia | el principio activo químico, sin sal | sct: sustancia · chembl: fármaco | 29 557 sustancia, 10 834 fármaco | sct:372562003 = «enoxaparina» |
| clase | la familia (ATC, «es un», MeSH) | sct: superior · atc: · mesh: | 6 435 ATC | HBPM → anticoagulante de acción directa → anticoagulante; ATC B01AB05; «heparina» (MeSH) |
Una combinación (dos o más principios activos) no sube a ninguna sustancia: sus datos de ficha se quedan en la presentación o en el medicamento. La columna solo hereda cuando hay un solo principio activo.
2. Cómo se unen los niveles, por código (nunca por nombre)
Regla de oro del grafo: **solo por código exacto; lo que choca va a cuestion, no se funde**. Los enlaces vigentes hoy:
| De | A | Por qué código | Relación en la mesa | Fuente |
|---|---|---|---|---|
presentación cima:<nreg> | producto/VTM cima:pa:<vtm> | vtm del registro CIMA | tipo:cima:pa «tiene principio activo» | CIMA (E-1404) |
presentación cima:<nreg> | sustancia sct: | VTM → «tiene ingrediente activo» de SNOMED | tipo:deriv:contiene-pa «contiene (principio activo)» | derivada (E-1413) |
sustancia sct: | sal sct: | SNOMED «es modificación de» / «es una sal de» | sct: «es una sal de» / «es modificación de» | SNOMED (E-1557) |
sustancia sct: | fármaco chembl: | InChIKey / nombre INN + 2.ª señal | fusión sct:↔chembl: | ChEMBL (E-1536/E-1543) |
sustancia sct: | clase sct: | SNOMED «es un» (sct:116680003) | sct:116680003 «es un» | SNOMED |
sustancia sct: | ATC atc: | código ATC del VTM/sustancia | tipo:deriv:atc «clasificado en ATC» | derivada (CIMA/SNOMED) |
sustancia sct: | descriptor mesh: / wd: | MeSH/Wikidata por código exacto | fusión | MeSH/Wikidata (E-1438) |
La marca (nivel nuevo) se une a sus presentaciones con tipo:columna:presentacion-de «es una presentación de» y su vuelta «tiene como presentación»; y a su sustancia con la herencia (abajo).
3. En qué nivel cuelga HOY cada tipo de dato (lo que obliga a saltar)
| Dato | Cuelga de | Relación | Comprobado (Inhixa / enoxaparina) |
|---|---|---|---|
| indicación de ficha (4.1) | sustancia (un PA) o medicamento (combinación) | tipo:cima:ficha-indicado «está indicado para (ficha técnica)» | 12 en sct:372562003 |
| reacción adversa (4.8) | sustancia (un PA) o medicamento | tipo:cima:ficha-reaccion «tiene como reacción adversa (ficha técnica)» | 14 en sct:372562003 |
| indicación de ChEMBL | sustancia / fármaco | «indicado para (ChEMBL)» | — |
| mecanismo / diana | sustancia / fármaco chembl: → gen HGNC / chembltgt: | «actúa sobre (ChEMBL)» | capa E-1619 |
| clase, ATC | sustancia | «es un», «clasificado en ATC» | HBPM; ATC B01AB05 |
| prospecto (texto) | presentación | (nuevo E-1626) «es la sección N del prospecto de» | hoy solo el enlace, no el texto |
| laboratorio, vía, forma, estado | presentación | tipo:wd:dato «tiene el dato» | Techdow; subcutánea; inyectable |
El quid: la ficha y la clase cuelgan de la SUSTANCIA, pero la gente pregunta por la marca o la presentación. Hoy el salto marca→presentación no existe (no hay objeto marca) y el salto presentación→sustancia solo lo hacían algunas formas de Syd, caso a caso (E-1595 en para_que_sirve, E-1619 en efectos_adversos). La columna lo hace de una vez.
Decisión único-PA, el mecanismo real (no n_pactivos): hoy la capa de ficha (E-1586) decide «un PA → sustancia; dos o más → medicamento» **contando los destinos sct: distintos de tipo:deriv:contiene-pa** (línea 7787 de a_mesa.py), no por el campo medicamento.n_pactivos, que vale 0 en las 25 531 filas (el endpoint de lista de CIMA no trae pactivos; solo lo da el detalle, una petición por medicamento). Es decir: n_pactivos está vacío y sin uso en esa ruta. La columna formaliza la regla por el conteo de contiene-pa (la que de verdad decide) y, aparte, rellena n_pactivos desde el detalle de CIMA para los usos futuros y para auditar que ambos coinciden (ver E-1626 §4).
4. Las reglas de la columna (como DATO)
Cada regla con su nombre, su dirección y su porqué. Se aplican solo si cada eslabón es una relación vigente; lo que choca con la ficha va a cuestion; 0 fusiones (la columna solo crea relaciones y la marca).
| Nombre | Dirección | Qué deduce | Porqué | Marca de la deducida | ||
|---|---|---|---|---|---|---|
marca-agrupa | — | la marca agrupa sus presentaciones | mismo nombre CIMA antes de dosis/forma + mismo laboratorio + mismo VTM | columna:marca | ||
hereda-abajo-indicado | sustancia → sal, producto, presentación, marca (un PA) | «está indicado para» | lo que indica la sustancia indica a todo lo que la contiene sin más | `deducido | columna | hereda-abajo` + camino |
hereda-abajo-reaccion | sustancia → … (un PA) | «tiene como reacción adversa» | las reacciones de la sustancia son las del medicamento de un PA | idem | ||
hereda-abajo-mecanismo | sustancia/fármaco → … (un PA) | «actúa sobre (ChEMBL)» | el mecanismo es de la molécula; vale para sus sales/formas/marcas | idem | ||
hereda-abajo-clase | sustancia → … (un PA) | «es un» / «clasificado en ATC» | la clase de la sustancia es la del medicamento de un PA | idem | ||
sube-ficha-si-todas | sal/presentación → sustancia | la indicación/reacción de ficha sube a la sustancia solo si TODAS sus fichas la dicen | si una sola ficha lo dice, es de esa presentación, no de la sustancia | `deducido | columna | sube-si-todas` |
combinacion-no-hereda | — | nada | una combinación (2+ PA) solo tiene lo de su propia ficha | (guarda) | ||
nunca-hacia-arriba-salvo-todas | — | nada | lo de abajo no sube salvo la regla sube-ficha-si-todas | (guarda) |
Herencia, en una frase: hacia abajo (sustancia → sal → producto → presentación → marca) se hereda todo lo de la sustancia si hay un solo principio activo; hacia arriba no se hereda nunca, salvo que todas las fichas de las presentaciones de una sustancia coincidan en un dato, que entonces sube a la sustancia. Cada relación deducida lleva su camino (las filas reales que la sostienen) y su regla, y es deshacible por regla y por lote (E1626-marca, E1626-herencia).
5. La columna de la DIANA (el otro lado)
El mismo fallo de niveles sueltos aparece en las dianas de ChEMBL (visto al desplegar E-1619): «¿qué fármacos inhiben la HMG-CoA reductasa?» cae en el concepto de enzima de SNOMED, mientras que el mecanismo de ChEMBL cuelga del gen HGNC (HMGCR). Son niveles de una misma cosa:
proteína/enzima (SNOMED) ↔ gen (HGNC) ↔ proteína (UniProt) ↔ diana (ChEMBL)
Se unen por código donde se pueda: Wikidata P352 (UniProt), P354 (HGNC), y el mapa de SNOMED si lo hay; lo dudoso, a cuestion. Que la herencia y el «nunca "no consta" sin recorrer la columna» valgan también aquí: preguntar por el nombre español de la enzima debe alcanzar el gen y, por él, los fármacos. Oro: «¿qué fármacos inhiben la HMG-CoA reductasa?» → las estatinas.
6. Qué cambia para Syd (sin saltos a mano)
- Toda respuesta sitúa el objeto: qué es (su clase subiendo por «es un» y por la columna: presentación → marca → sustancia → HBPM → heparina → anticoagulante; ATC de la sustancia), qué contiene, con qué se relaciona — sin pedírselo.
- Nunca «no consta» sin recorrer la columna: antes de negar, se mira en todos los niveles que la columna une (sal, sustancia, clase) y se dice dónde se encontró.
- El prospecto es el suelo, no la respuesta: Syd da al menos lo que dice la sección del prospecto (comprobado en código: sus términos aparecen) y además lo que solo da el grafo (otras marcas del mismo principio activo, la clase y sus miembros, las interacciones, el mecanismo…), cada cosa con su fuente.
- Las formas (
para_que_sirve,efectos_adversos,que_es,mecanismo…) preguntan en el nivel que esta columna dice; se retiran los saltos sal → sustancia añadidos caso a caso (E-1595, E-1619) cuando la herencia los hace innecesarios, con tests que lo demuestren.
7. Límites
Elaizii no da consejo clínico. El texto de CIMA es © AEMPS, sin modificar (limpiar notas y partir términos sí; reescribir no). Ninguna regla con LLM: todo son reglas legibles sobre códigos exactos. SNOMED, UMLS, MedDRA y DeCS no salen de la nave ni van a git. </content>