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.

NivelQué esObjeto en la mesaCuántos hayEjemplo (Inhixa)
marcael nombre comercial, sin dosis ni forma(nuevo) marca:<lab>:<raíz>0 hoy (los crea E-1626)«Inhixa» (7 presentaciones)
presentaciónel medicamento registrado (dosis + forma)cima:<nregistro>25 511 medicamentocima:1161132003 = «INHIXA 4.000 UI (40 MG)/0,4 ML SOLUCIÓN INYECTABLE»
producto / VTMel producto virtual (SNOMED/CIMA VTM)cima:pa:<vtm> · sct: producto2 381 principio activo, 40 790 productocima:pa:108984007 = «enoxaparina sodio»
salla forma salina de la sustanciasct: sustancia (sal)—«enoxaparina sódica» (SNOMED)
sustanciael principio activo químico, sin salsct: sustancia · chembl: fármaco29 557 sustancia, 10 834 fármacosct:372562003 = «enoxaparina»
clasela familia (ATC, «es un», MeSH)sct: superior · atc: · mesh:6 435 ATCHBPM → 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:

DeAPor qué códigoRelación en la mesaFuente
presentación cima:<nreg>producto/VTM cima:pa:<vtm>vtm del registro CIMAtipo:cima:pa «tiene principio activo»CIMA (E-1404)
presentación cima:<nreg>sustancia sct:VTM → «tiene ingrediente activo» de SNOMEDtipo: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ñalfusió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/sustanciatipo:deriv:atc «clasificado en ATC»derivada (CIMA/SNOMED)
sustancia sct:descriptor mesh: / wd:MeSH/Wikidata por código exactofusiónMeSH/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)

DatoCuelga deRelaciónComprobado (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 medicamentotipo:cima:ficha-reaccion «tiene como reacción adversa (ficha técnica)»14 en sct:372562003
indicación de ChEMBLsustancia / fármaco«indicado para (ChEMBL)»—
mecanismo / dianasustancia / fármaco chembl: → gen HGNC / chembltgt:«actúa sobre (ChEMBL)»capa E-1619
clase, ATCsustancia«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, estadopresentacióntipo: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).

NombreDirecciónQué deducePorquéMarca de la deducida
marca-agrupa—la marca agrupa sus presentacionesmismo nombre CIMA antes de dosis/forma + mismo laboratorio + mismo VTMcolumna:marca
hereda-abajo-indicadosustancia → 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`deducidocolumnahereda-abajo` + camino
hereda-abajo-reaccionsustancia → … (un PA)«tiene como reacción adversa»las reacciones de la sustancia son las del medicamento de un PAidem
hereda-abajo-mecanismosustancia/fármaco → … (un PA)«actúa sobre (ChEMBL)»el mecanismo es de la molécula; vale para sus sales/formas/marcasidem
hereda-abajo-clasesustancia → … (un PA)«es un» / «clasificado en ATC»la clase de la sustancia es la del medicamento de un PAidem
sube-ficha-si-todassal/presentación → sustanciala indicación/reacción de ficha sube a la sustancia solo si TODAS sus fichas la dicensi una sola ficha lo dice, es de esa presentación, no de la sustancia`deducidocolumnasube-si-todas`
combinacion-no-hereda—nadauna combinación (2+ PA) solo tiene lo de su propia ficha(guarda)
nunca-hacia-arriba-salvo-todas—nadalo 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>

En esta página