Compilación y publicación
Separación entre edición y consumo
Interdrugs utiliza dos niveles de datos:
Base editorial
↓
Compilación / Publicación
↓
Base compilada
↓
API / Go / Aplicaciones
La base editorial es la fuente de verdad y contiene la estructura necesaria para administrar y mantener la información.
Las bases compiladas son productos derivados, optimizados para consulta.
Publicar no significa editar
Guardar o aprobar un cambio editorial no implica que ese cambio quede inmediatamente disponible para las aplicaciones.
La publicación es una operación separada.
Esto permite:
- revisar qué cambios están pendientes;
- decidir cuándo generar una nueva versión;
- mantener estable la información consumida por las aplicaciones;
- regenerar una base compilada cuando sea necesario.
Bases por diccionario e idioma
Inicialmente se generan:
db_interdrugs_MEDICOS_ES
db_interdrugs_FARMACEUTICOS_ES
Cada base representa un contexto ya resuelto.
Por eso las aplicaciones no necesitan decidir en cada consulta qué diccionario o idioma utilizar.
Desnormalización
La base compilada no necesita reproducir la estructura editorial.
Puede almacenar información ya combinada.
Por ejemplo, un producto compilado puede contener directamente:
id
nombre
idLaboratorio
presentacion
composicion
accionTerapeutica
dosificacion
activo
En lugar de consultar una tabla estructural y luego otra tabla de contenidos por idioma.
Compilación de drogas
Cada droga conserva su identificador editorial.
El compilador incorpora el contenido correspondiente al idioma de la base:
id
nombre
contraindicaciones
precauciones
embarazo
lactancia
activo
Compilación de interacciones
Este es uno de los trabajos principales del compilador.
La base editorial puede contener:
- droga-droga;
- droga-grupo;
- grupo-grupo.
La base compilada expone interacciones efectivas droga-droga.
El proceso debe:
- leer las interacciones editoriales;
- resolver los miembros de cada grupo terapéutico;
- expandir droga-grupo;
- expandir grupo-grupo;
- normalizar cada par de drogas;
- detectar colisiones;
- aplicar la prioridad por especificidad;
- incorporar la descripción del diccionario e idioma correspondientes;
- incorporar conducta médica recomendada y referencia bibliográfica del idioma;
- generar una única interacción efectiva por par.
La prioridad aplicada es:
DROGA-DROGA
>
DROGA-GRUPO
>
GRUPO-GRUPO
Consulta en runtime
El objetivo es que la capa pública no tenga que reconstruir reglas farmacológicas complejas.
Una consulta de interacción puede trabajar directamente con:
idDroga1 + idDroga2
y obtener el resultado efectivo ya compilado.
Identificadores
Siempre que sea posible, drogas, productos, laboratorios y demás elementos exportados conservan los mismos identificadores de la base editorial.
Esto facilita:
- trazabilidad;
- integraciones;
- actualización;
- comparación entre versiones;
- una eventual distribución de la base como producto de datos.
Metadata y versión
Cada base compilada posee metadata propia.
Para el MVP se contempla al menos:
version = 20260831
La versión se almacena como texto para permitir variantes futuras, por ejemplo:
20260831-2
Control editorial y publicación
Los cambios que afectan información compilable pueden quedar marcados como pendientes de publicación.
La publicación toma el estado editorial vigente y genera nuevamente las bases compiladas.
Una vez publicada la versión correspondiente, los cambios incluidos pueden marcarse como publicados.
La base compilada debe considerarse derivada: no se edita manualmente.