Capítulo 8: Herramientas y Casos Reales

Por: Artiko
epcisopenepcisherramientasdscsafsmafarmaciaalimentosopen-sourcecasos-de-uso

Herramientas Open Source

OpenEPCIS

OpenEPCIS es la implementación open source más completa de EPCIS 2.0. Desarrollada por la comunidad y alojada en GitHub bajo la organización openepcis.

Stack tecnológico:

Componentes principales:

ComponenteDescripción
EPCIS RepositoryRepositorio completo con Capture y Query API
XML ↔ JSON-LD ConverterConversión bidireccional entre formatos
Test Data GeneratorGenera eventos EPCIS de prueba con datos realistas
Hash GeneratorCalcula hashes de eventos según el algoritmo estándar GS1
Document ValidatorValida documentos EPCIS contra los schemas oficiales

Uso del generador de datos de prueba:

El generador de OpenEPCIS es invaluable para desarrollo. Permite crear documentos EPCIS con datos realistas sin necesidad de hardware RFID ni infraestructura de producción:

  1. Accede a la herramienta web en openepcis.io/tools/testdata
  2. Selecciona el tipo de evento (ObjectEvent, AggregationEvent, etc.)
  3. Configura los parámetros (cantidad de EPCs, bizStep, fechas)
  4. Genera el documento en JSON-LD o XML
  5. Usa el documento para probar tu implementación

epcis2.js

epcis2.js es un SDK JavaScript/TypeScript para EPCIS 2.0 desarrollado originalmente por EVRYTHNG.

Características:

Ejemplo de uso:

import { ObjectEvent, EPCISDocument } from "epcis2.js";

const event = new ObjectEvent()
  .setEventTime("2026-03-21T09:00:00Z")
  .setEventTimeZoneOffset("-03:00")
  .addEPC("urn:epc:id:sgtin:0614141.107340.2026001")
  .setAction("OBSERVE")
  .setBizStep("shipping")
  .setDisposition("in_transit")
  .setReadPoint("urn:epc:id:sgln:0614141.07346.1234");

const doc = new EPCISDocument()
  .setCreationDate("2026-03-21T10:00:00Z")
  .addEvent(event);

// Serializar a JSON-LD
const jsonld = doc.toJSON();

// Validar contra schema
const isValid = doc.isValid();

Es ideal para aplicaciones Node.js que necesitan generar y enviar eventos EPCIS a un repositorio.

EPCPyYes

EPCPyYes es una librería Python para generar documentos EPCIS.

Características:

from EPCPyYes.core.v1_2 import events

event = events.ObjectEvent(
    event_time="2026-03-21T09:00:00Z",
    event_timezone_offset="-03:00",
    epc_list=["urn:epc:id:sgtin:0614141.107340.2026001"],
    action="OBSERVE",
    biz_step="urn:epcglobal:cbv:bizstep:shipping",
    disposition="urn:epcglobal:cbv:disp:in_transit"
)

# Serializar a XML
xml_output = event.render()

Herramientas GS1 online

HerramientaURLUso
Referencia oficialref.gs1.orgSpecs, schemas, contextos JSON-LD
OpenEPCIS Toolsopenepcis.io/toolsGenerador, convertidor, validador
GS1 Digital Linkid.gs1.orgResolver identificadores GS1 como URLs
GS1 GitHubgithub.com/gs1/EPCISSchemas XSD, JSON Schema, OpenAPI spec

Caso real 1: DSCSA (farmacia en EE.UU.)

Contexto

El Drug Supply Chain Security Act (DSCSA) es una ley federal de EE.UU. que exige la trazabilidad serializada de medicamentos de prescripción. Desde noviembre 2023, todos los actores de la cadena farmacéutica deben poder intercambiar datos de trazabilidad a nivel de unidad individual.

Por qué EPCIS

La FDA recomienda EPCIS como el formato estándar para intercambiar Transaction Information (TI), Transaction History (TH) y Transaction Statement (TS) entre socios comerciales. EPCIS permite que un fabricante en Nueva Jersey y una farmacia en California intercambien datos de trazabilidad sin importar qué software usen.

Flujo de trazabilidad DSCSA

┌─────────────┐     ┌──────────────┐     ┌──────────────┐
│ Fabricante   │────>│ Wholesaler   │────>│ Farmacia     │
│              │     │ (Distribuidor)│     │ (Dispensador)│
└─────────────┘     └──────────────┘     └──────────────┘

Eventos EPCIS en cada etapa:

ActorEventobizStepDescripción
FabricanteObjectEvent ADDcommissioningSerialización del medicamento
FabricanteAggregationEvent ADDpackingEmpaque en cajas/pallets
FabricanteObjectEvent OBSERVEshippingDespacho al wholesaler
WholesalerObjectEvent OBSERVEreceivingRecepción del fabricante
WholesalerObjectEvent OBSERVEshippingDespacho a farmacia
FarmaciaObjectEvent OBSERVEreceivingRecepción del wholesaler
FarmaciaObjectEvent OBSERVEdispensingDispensación al paciente

Identificadores DSCSA

Cada unidad de medicamento lleva un Product Identifier compuesto por:

DatoEstándar GS1Ejemplo
GTIN-14GTIN00363391100620
Número de serieSerial NumberABC12345
Número de loteLot/BatchLOTE2026A
Fecha de vencimientoExpiration Date2027-12-31

Estos datos se codifican en el DataMatrix 2D impreso en cada caja de medicamento y se registran como SGTIN en los eventos EPCIS.

Plataformas DSCSA

Los principales repositorios/plataformas para DSCSA son:

Todas usan EPCIS como formato de intercambio.

Caso real 2: FSMA 204 (alimentos en EE.UU.)

Contexto

La Food Safety Modernization Act Rule 204 (FSMA 204) es una regulación de la FDA que exige trazabilidad mejorada para alimentos de “alto riesgo” (leafy greens, quesos blandos, frutas tropicales, pescado, entre otros). La fecha de cumplimiento fue enero 2026.

Objetivo

Cuando ocurre un brote de enfermedades transmitidas por alimentos, la FDA necesita rastrear el producto desde el consumidor hasta la granja en menos de 24 horas. Antes de FSMA 204, este proceso podía tomar semanas.

Key Data Elements (KDE)

FSMA 204 define datos obligatorios para cada Critical Tracking Event (CTE):

KDEDescripciónMapeo EPCIS
Traceability Lot Code (TLC)Código de lote de trazabilidadLGTIN en quantityList
Product DescriptionDescripción del productoMaster data vinculado al GTIN
Location (origen)Granja, planta, almacénbizLocation (SGLN)
DateFecha del eventoeventTime
Quantity & UOMCantidad y unidad de medidaquantity + uom en quantityList
Reference DocumentDocumento comercialbizTransactionList

Critical Tracking Events

CTEbizStep EPCISEjemplo
Cosecha (Harvesting)commissioningLechugas cosechadas en granja
Enfriamiento (Cooling)holdingPre-cooling en cámara frigorífica
Empaque (Packing)packingEmpaque en cajas con TLC
Envío (Shipping)shippingDespacho al distribuidor
Recepción (Receiving)receivingRecepción en centro de distribución
Transformación (Transformation)TransformationEventCorte y mezcla de ensaladas

Ejemplo: rastreo de un lote de lechugas

Un brote de E. coli se detecta en un supermercado de Miami. Con EPCIS, el rastreo es:

1. Supermercado Miami
   └─ ObjectEvent receiving: recibió lote LOTE-LECH-2026A
      └─ bizTransaction: PO-SUP-001 (del distribuidor FreshDist)

2. Distribuidor FreshDist
   └─ ObjectEvent shipping: despachó lote LOTE-LECH-2026A
   └─ ObjectEvent receiving: recibió de empacadora GreenPack
      └─ bizTransaction: PO-DIST-001

3. Empacadora GreenPack
   └─ TransformationEvent: lechugas cortadas y empacadas
      └─ input: LOTE-GRANJA-2026-MAR12
      └─ output: LOTE-LECH-2026A

4. Granja Orgánica Valle
   └─ ObjectEvent commissioning: cosechó LOTE-GRANJA-2026-MAR12
      └─ readPoint: Campo 7, Sector Norte
      └─ eventTime: 2026-03-12T06:00:00Z

En menos de una hora, la FDA sabe que el lote problemático vino del Campo 7, Sector Norte de Granja Orgánica Valle, cosechado el 12 de marzo de 2026.

Tabla resumen de herramientas

HerramientaLenguajeFormatoCaso de uso principal
OpenEPCISJava (Quarkus)JSON-LD + XMLRepositorio completo, conversión, testing
epcis2.jsJavaScript/TSJSON-LDApps web/Node.js, crear y validar eventos
EPCPyYesPythonXMLScripts de migración, ETL, testing
GS1 SchemasAgnósticoJSON Schema + XSDValidación de documentos
OpenEPCIS ToolsWebJSON-LD + XMLGeneración de datos de prueba, conversión

Recursos adicionales

Con estos 8 capítulos tienes una base solida para entender EPCIS 2.0, desde los conceptos fundamentales hasta la implementación practica con herramientas reales.