Laboratorios de ensayo · Alimentación, aguas y medioambienteLaboratorios Microal

LIMS con automatización de procesos para Laboratorios Microal

Laboratorios Microal es un laboratorio de ensayo acreditado que analiza muestras de alimentos, aguas y medioambiente. Ya tenía un LIMS comercial para registrar muestras y resultados, pero el trabajo en sí —qué está pendiente, quién lo hace, qué se ha preparado, qué controles de calidad exige cada método y si han pasado— vivía en hojas de papel y hojas de cálculo. El Sistema MICROAL cierra ese hueco.

Fachada de las instalaciones de Laboratorios Microal, con el rótulo de la empresa sobre la entrada y la flota de furgonetas aparcada delante
Cliente
Laboratorios Microal, S.L. · laboratorio de ensayo acreditado (Sevilla)
Sector
Ensayos de alimentos, aguas y medioambiente
Nuestro papel
Desarrollo completo del Sistema MICROAL, de la base de datos a la interfaz
Integración
REST bidireccional con el LIMS que ya usaba el laboratorio
Estado
En producción, con los módulos de ejecución adoptándose línea a línea
  • Next.js
  • React
  • TypeScript
  • FastAPI
  • Python
  • PostgreSQL
Automatización
En cifras

El laboratorio entero, bajo un mismo sistema

Datos de producción a 20 de octubre de 2026.
168.333líneas muestra-parámetroSobre 19.455 muestras, todas sincronizadas desde el LIMS del laboratorio.
601métodos analíticos577 activos, con 3.524 parámetros y 5.645 combinaciones método-parámetro.
71sincronizaciones desatendidasEl proceso nocturno que mantiene el sistema al día con el LIMS, sin intervención.
1.511equipos trazadosCada registro guarda el número de serie y la posición que ocupó cada muestra.
5tipos de control de calidadDuplicados, blancos, MRC, fortificaciones y temperatura, validados automáticamente.
1.111tests automáticos989 de backend y 122 de frontend, sobre 211 rutas REST.
El reto

Un LIMS sabe qué se pidió; no sabe cómo va el trabajo

Un laboratorio de ensayo tiene dos problemas de información muy distintos, y la mayoría de los LIMS solo resuelven el primero. El registro —una muestra entra, se le asignan determinaciones, salen resultados y se emite un informe— ya estaba cubierto. La ejecución, que es donde el laboratorio pasa el día, no, y el resultado de hacerla a mano era siempre el mismo, con la evidencia de la calidad viviendo fuera del sistema de registro.

  • 01

    Qué queda por hacer

    Sin una definición única de «pendiente», los analistas repiten trabajo o se lo saltan.

  • 02

    Quién lo hace hoy

    Repartir el trabajo del día por línea, método y tarea, a mano y en papel.

  • 03

    Si la muestra está preparada

    No se puede leer hasta que el bote correcto está lleno con el volumen y el conservante que toca.

  • 04

    Si cabe en el equipo

    Un digestor tiene un número fijo de posiciones: 48 en la línea de Metales, 24 en otras, 10 en algunas de Agro. El fallo que describía el cliente, literal: un responsable monta una hoja de 38 posiciones y el técnico descubre en el poyete que el digestor solo admite 24.

  • 05

    Si los controles se hicieron y pasaron

    Un laboratorio acreditado tiene que poder demostrarlo lote a lote, no afirmarlo.

  • 06

    Qué resultado sale del cálculo

    Muchos parámetros no se leen de un equipo, se calculan a partir de otros y hay que aplicarles la corrección por dilución.

Cómo funciona

De la muestra que entra al resultado que vuelve

  1. 01

    Las muestras entran solas

    Nadie teclea una muestra. Un proceso programado las trae del LIMS con todos sus parámetros y mantiene al día matrices, clientes, parámetros, métodos y equipos.

  2. 02

    Lo pendiente se convierte en trabajo asignable

    Cada línea pendiente se agrupa por método y tarea y se asigna a los técnicos, en bloque o una a una, sin poder montar una hoja que no quepa en el equipo.

  3. 03

    La preparativa, una fila por muestra

    Una casilla por bote, con su volumen, los que quedan pendientes y las líneas que comparten el mismo bote físico. Se imprime y se exporta a Excel.

  4. 04

    El registro primario recoge la lectura

    Un técnico, una tarea, un equipo, un conjunto de muestras y los controles de calidad que ese lote exige, cada uno con su posición y sus pesadas.

  5. 05

    La validación devuelve el resultado al LIMS

    El responsable revisa, aprueba y transmite. Lo aprobado queda bloqueado; lo rechazado vuelve a la pantalla de asignación con la nota puesta.

Arquitectura

La capa de ejecución, junto al LIMS

El Sistema MICROAL no sustituye al LIMS del laboratorio. Se coloca a su lado y habla con él de forma continua, en los dos sentidos.

  1. 01 · Ya en el laboratorio

    LIMS del cliente

    • Registro de muestras y determinaciones
    • Resultados e informes al cliente final
    • API RESTorigen y destino de los datos
  2. 02 · Cada noche

    Sincronización

    • Muestras y parámetros solicitados
    • Maestrosmatrices, clientes, métodos, equipos
    • Idempotente y bajo bloqueoel proceso nocturno y el manual no colisionan
    • Nunca borra trabajo pendientelo marca como resuelto
  3. 03 · El día a día

    Sistema MICROAL

    • Asignación de trabajopor método, tarea y línea
    • Búsqueda y preparativauna casilla por bote
    • Registros primariosequipo, posición, pesadas y QC
    • Motor de fórmulas y corrección por dilución
  4. 04 · De vuelta

    Validación y transmisión

    • Revisión del responsablecon estados Bloqueado, Aprobado, Falta QC y QC no aprobado
    • Transmisión al LIMS y bloqueo de valores
    • Cierre nocturno de los registros transmitidos
    • Alerta de QC sobre lo cerrado en automático sin los controles exigidos

El patrón que recorre todo el sistema: una regla se define una sola vez, en el código, y todas las pantallas que la necesitan usan esa definición.

Bloque de control de calidad de un registro primario: contadores por tipo de control y una fila por muestra y por control, con su equipo, posición y pesadas
Control de calidad

Cinco tipos de control, validados solos

Cuando se introduce una lectura, el sistema busca la regla de QC activa para ese método-parámetro, aplica la comprobación que toca y escribe el resultado, la regla usada y un mensaje legible —por ejemplo «Recuperación 97,4% dentro de [80%-120%]». El analista no lo calcula y no puede olvidarse. Los límites de recuperación y de CV no son un número global: se guardan por método-parámetro y, en MRC y fortificaciones, por rango de concentración, porque una recuperación aceptable a nivel traza no lo es a concentración alta.

CV%
duplicados, contra el límite del método
< LD
blancos, por debajo del límite de detección
% rec.
MRC y fortificaciones, por rango de concentración
± tol.
temperatura, corregida por el certificado de calibración
Detalle de una muestra con su matriz, sus observaciones de preparación y los parámetros solicitados con la tarea asignada a cada uno
Acreditación

Acreditado se es por parámetro, no por método

La convención del laboratorio es que un doble asterisco al final de una determinación significa «no acreditado». Pero la acreditación no es una propiedad del método: un método acreditado puede contener parámetros que no lo están, y al revés. El sistema guarda la marca por parámetro, tomada del LIMS, y la compone al mostrarla en vez de escribirla dentro del nombre, de forma que el parámetro conserva su identidad, sus fórmulas, sus controles y su histórico, y los filtros siguen comparando nombres limpios. Donde la marca todavía no se ha informado, se muestra: lo desconocido cae del lado prudente, porque un nombre limpio afirmaría una acreditación que el sistema no puede evidenciar.

3.524
parámetros en catálogo
577
métodos activos
98
matrices
880
materiales de referencia certificados

El cliente

Laboratorios Microal es un laboratorio de ensayo acreditado de Sevilla. Sus analistas procesan muestras de alimentos, aguas y medioambiente contra un catálogo de 601 métodos analíticos que cubren 3.524 parámetros, con 1.511 equipos, para 1.134 clientes.

El laboratorio ya tenía un LIMS comercial. Lo que no tenía era nada que gestionase el trabajo: qué muestras estaban pendientes, quién las estaba haciendo, qué botes se habían preparado, qué posición del digestor ocupaba cada muestra, qué controles de calidad exigía el método y si habían pasado. Esa capa vivía en hojas de trabajo en papel, en hojas de cálculo y en la memoria de quien llevaba cada línea.

El Sistema MICROAL cierra ese hueco. Recoge cada muestra del LIMS automáticamente, convierte los análisis pendientes en trabajo asignable, guía al técnico por la preparación y la lectura, impone el régimen de control de calidad que exige el método, aplica los cálculos y devuelve los resultados validados al LIMS sin que nadie vuelva a teclear un número.

Que la sincronización se pueda creer

Dos decisiones de ingeniería marcan la diferencia entre una sincronización fiable y una que no lo es.

La primera: la importación nunca borra trabajo pendiente. Un planteamiento anterior deducía que «si la muestra no está en la lista de pendientes del LIMS, el LIMS la ha cerrado». El equipo midió esa inferencia y resultó falsa, porque el endpoint devuelve lo que se recibió ese día, no lo que está pendiente. Ahora el trabajo se marca como resuelto, nunca se elimina.

La segunda: la ingesta es idempotente y corre bajo bloqueo, de modo que el proceso nocturno y un «sincronizar ahora» manual no pueden chocar ni importar dos veces lo mismo.

Una sola definición de «pendiente»

Lo que hace correcta —y no solo cómoda— la pantalla de asignación es que hay una única definición compartida de qué significa «queda por hacer». Una línea de lectura está viva solo si se cumplen las tres condiciones:

  1. El LIMS todavía no tiene resultado para ella (una fila vacía de relleno no es un resultado).
  2. No se ha bloqueado internamente.
  3. La sincronización de entrada no la ha marcado como completada.

Esa definición vive en un único sitio del código y la comparten la pantalla de asignación, la rejilla de preparativa y el movimiento de «método madre». Antes estaba escrita dos veces y las dos copias habían divergido, que es como tres pantallas acaban discrepando sobre la misma muestra.

La asignación, además, se niega a crear trabajo que no se puede hacer: la comprobación de capacidad conoce cuántas posiciones tiene cada digestor y no deja montar una hoja que no vaya a caber en el poyete.

El registro primario, el documento regulado

Un registro primario es el documento controlado de un lote de trabajo. Abrir uno enseña cuánto rigor metrológico carga el sistema: el analista y la fecha, el equipo elegido del catálogo con su número de serie y su número de posiciones, un recuento de muestras que incluye explícitamente los controles de calidad —porque un control ocupa una posición física igual que una muestra—, un campo de observaciones del responsable cuyo marcador de texto dice para qué es («justifique por escrito, p. ej., la aceptación de un registro con QC ausente o fallido») y el control de temperatura de digestión.

Ese último merece atención. Los límites de conformidad no son una banda fija: se calculan como 120 °C ± 2 con una corrección de +0,1903 tomada del certificado de calibración del termómetro concreto que se usa en el digestor concreto, lo que da 118,1903 – 122,1903 °C. El registro no se puede cerrar sin la temperatura, y la pantalla lo dice.

Un registro no se cierra en silencio con controles malos

El estado del registro primario lo decide un evaluador que reduce sus controles enlazados a una de tres señales: todos pasados, al menos uno fallado de forma definitiva o incompleto. Un fallo definitivo pesa más que los hermanos incompletos; es la opción conservadora. Los registros cerrados en modo automático con controles que no cumplen las proporciones exigidas por el método generan una alerta de QC persistida que aparece en la pantalla de validación.

Y donde el responsable decide aceptar un registro de todas formas, el sistema no se lo impide: le exige escribir por qué, que es exactamente lo que va a pedir un auditor.

La trazabilidad, de regalo

Cada registro primario lleva los equipos usados por número de serie, la posición que ocupó cada muestra, las pesadas, el analista, las marcas de tiempo y quién lo cerró y cuándo. Nada de eso es un formulario extra que rellenar: es el registro que el técnico ya estaba recorriendo.

Cómo trabajamos el código

Tres prácticas se ven por todo el repositorio:

  • La documentación está en el código y recoge el porqué. Los módulos se abren con una explicación de la decisión que codifican y, a menudo, de la medición que la zanjó, incluidos los casos en que se puso a prueba una suposición anterior y resultó falsa. Es lo que permite que una regla sobreviva a quien la escribió.
  • Toda ruta de la API exige sesión autenticada. Los routers se montan detrás de una única dependencia de sesión, con cuatro endpoints públicos deliberados (login, logout, raíz y comprobación de salud). Un test recorre la tabla de rutas viva y falla si alguna es alcanzable sin sesión, y un segundo test comprueba que ese recorrido sigue viendo las cuatro públicas, para que la comprobación no pueda dejar de comprobar sin que nadie se entere.
  • Los cambios se revisan contra una copia viva de producción. Cada pull request se monta junto a las demás en un entorno de integración, sus migraciones se ensayan contra una copia fresca de la base de datos de producción y se verifican por valor —filas tocadas, filas que quedan pendientes, filas fuera de alcance— antes de que nada llegue al laboratorio.

Dónde está el proyecto

La plataforma está en producción y en uso diario para la entrada de muestras, los catálogos de métodos y equipos, la preparativa y la asignación de trabajo. Los módulos de ejecución y control de calidad están desplegados y se adoptan línea a línea según el laboratorio va sacando cada una del papel.

El desarrollo continúa con cadencia semanal, con los cambios llegando a producción por una tubería de pull requests revisados y un camino de migración ensayado.

Sistema MICROAL

Las pantallas donde vive el trabajo

Capturas del entorno de integración, que ejecuta el mismo código sobre una copia reciente de los datos de producción. Los nombres de clientes y de técnicos están ocultos.

  • Pantalla de asignación de trabajo, con las muestras pendientes agrupadas por método y tarea y filtradas por día de recepción

    Asignación de trabajo

    La pantalla en la que vive el responsable del laboratorio: todas las líneas pendientes, agrupadas por método y tarea, filtradas aquí a un solo día de recepción y asignadas a los técnicos en bloque o una a una.

  • Pantalla de inicio del Sistema MICROAL con sus seis módulos: registros primarios, muestras, matrices y expedientes, control de calidad, búsqueda y preparativa, y asignación de trabajo

    Seis cosas, una pantalla

    Registros primarios, muestras, matrices y expedientes, control de calidad, búsqueda y preparativa, y asignación de trabajo.

  • Listado de muestras del Sistema MICROAL con los filtros por línea, método, parámetro y estado, y una fila por muestra con su matriz, fecha de recepción y número de parámetros

    Las muestras, tal y como llegan

    El catálogo real, con filtro por línea, método, parámetro, grupo de parámetros, estado, identificador, matriz, cliente y rango de fechas de recepción.

  • Rejilla de búsqueda y preparativa: una fila por muestra y una casilla por bote, con el volumen de cada tipo de bote y los que quedan pendientes

    Búsqueda y preparativa

    Una fila por muestra y una casilla por bote, con su volumen y los que quedan pendientes. La columna «Compartida con» indica qué líneas usan el mismo bote físico, para no preparar dos veces lo mismo.

  • Detalle de un registro primario con el analista, el equipo y su número de posiciones, y el control de temperatura de digestión con sus límites de conformidad

    El registro primario

    El documento controlado de un lote: analista, fecha, equipo con su número de serie y sus posiciones, el recuento de muestras contando cada control como una más, y la temperatura de digestión sin la cual el registro no se cierra.

  • Bloque de control de calidad de un registro primario: contadores por tipo de control y una fila por muestra y por control, con su equipo, posición y pesadas

    Los controles ocupan sitio

    Contadores por tipo de control y una fila por muestra y por control, cada una con el equipo usado, la posición en el digestor y las pesadas. Un control ocupa una posición física igual que una muestra.

  • Catálogo de métodos del laboratorio con sus parámetros, su línea y la marca de acreditación de cada uno

    Catálogo de métodos

    Cada método con sus parámetros, su línea de laboratorio y si está acreditado, filtrable por estado, línea y acreditación.

  • Pantalla de validación de trabajo, con las alertas de QC y los filtros por cliente, tarea, técnico, completación, modo y estado

    Validación de trabajo

    La revisión previa a devolver nada al LIMS, con las alertas de QC arriba y los filtros por cliente, tarea, técnico, completación, modo y estado.

Stack tecnológico

Un sistema de una sola pieza

Desarrollado y operado por DPI Systems, con despliegue revisado contra una copia de producción.

  • FrontendNext.jsReactTypeScript
    • Next.js 15.5
    • React 19.1
    • TypeScript 5
    • Tailwind CSS 4
    • 133 componentes y páginas
  • BackendPythonFastAPI
    • Python
    • FastAPI 0.115
    • SQLAlchemy 2.0
    • Pydantic 2.9
    • APScheduler
    • 165 módulos · 211 rutas REST
  • DatosPostgreSQL
    • PostgreSQL
    • 55 migraciones SQL versionadas
    • Aplicadas y registradas al arrancar
  • Integración y calidad
    • API REST bidireccional con el LIMS
    • 1.111 tests automáticos
    • Entorno de integración por pull request
    • Migraciones ensayadas contra copia de producción

Otros casos de éxito

Ver todos los casos de éxito
Hablemos

¿Tu sistema registra el trabajo, pero no lo gestiona?

Construimos la capa que falta entre el software que ya tienes y lo que de verdad pasa en planta, en laboratorio o en oficina.