Capítulo 8: Herramientas y Casos Reales
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:
- Backend: Java con Quarkus (framework cloud-native)
- Messaging: Apache Kafka para procesamiento de eventos
- Storage: OpenSearch para indexación y consulta de eventos
- API: implementación completa de la API REST EPCIS 2.0
Componentes principales:
| Componente | Descripción |
|---|---|
| EPCIS Repository | Repositorio completo con Capture y Query API |
| XML ↔ JSON-LD Converter | Conversión bidireccional entre formatos |
| Test Data Generator | Genera eventos EPCIS de prueba con datos realistas |
| Hash Generator | Calcula hashes de eventos según el algoritmo estándar GS1 |
| Document Validator | Valida 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:
- Accede a la herramienta web en
openepcis.io/tools/testdata - Selecciona el tipo de evento (ObjectEvent, AggregationEvent, etc.)
- Configura los parámetros (cantidad de EPCs, bizStep, fechas)
- Genera el documento en JSON-LD o XML
- 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:
- Crear eventos EPCIS programáticamente con builders tipados
- Validar documentos contra el schema EPCIS 2.0
- Serializar a JSON-LD
- Compatible con Node.js y navegador
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:
- Genera documentos EPCIS 1.2 en XML
- Soporte para todos los tipos de eventos
- Útil para scripts de migración, ETL y testing
- Integrable con frameworks Python (Django, FastAPI)
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
| Herramienta | URL | Uso |
|---|---|---|
| Referencia oficial | ref.gs1.org | Specs, schemas, contextos JSON-LD |
| OpenEPCIS Tools | openepcis.io/tools | Generador, convertidor, validador |
| GS1 Digital Link | id.gs1.org | Resolver identificadores GS1 como URLs |
| GS1 GitHub | github.com/gs1/EPCIS | Schemas 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:
| Actor | Evento | bizStep | Descripción |
|---|---|---|---|
| Fabricante | ObjectEvent ADD | commissioning | Serialización del medicamento |
| Fabricante | AggregationEvent ADD | packing | Empaque en cajas/pallets |
| Fabricante | ObjectEvent OBSERVE | shipping | Despacho al wholesaler |
| Wholesaler | ObjectEvent OBSERVE | receiving | Recepción del fabricante |
| Wholesaler | ObjectEvent OBSERVE | shipping | Despacho a farmacia |
| Farmacia | ObjectEvent OBSERVE | receiving | Recepción del wholesaler |
| Farmacia | ObjectEvent OBSERVE | dispensing | Dispensación al paciente |
Identificadores DSCSA
Cada unidad de medicamento lleva un Product Identifier compuesto por:
| Dato | Estándar GS1 | Ejemplo |
|---|---|---|
| GTIN-14 | GTIN | 00363391100620 |
| Número de serie | Serial Number | ABC12345 |
| Número de lote | Lot/Batch | LOTE2026A |
| Fecha de vencimiento | Expiration Date | 2027-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:
- TraceLink: la plataforma más grande, conecta miles de empresas farmacéuticas
- rfXcel (ahora Antares Vision): fuerte en serialización y trazabilidad
- LSPedia: enfocada en compliance DSCSA
- SAP ATTP: módulo de trazabilidad de SAP
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):
| KDE | Descripción | Mapeo EPCIS |
|---|---|---|
| Traceability Lot Code (TLC) | Código de lote de trazabilidad | LGTIN en quantityList |
| Product Description | Descripción del producto | Master data vinculado al GTIN |
| Location (origen) | Granja, planta, almacén | bizLocation (SGLN) |
| Date | Fecha del evento | eventTime |
| Quantity & UOM | Cantidad y unidad de medida | quantity + uom en quantityList |
| Reference Document | Documento comercial | bizTransactionList |
Critical Tracking Events
| CTE | bizStep EPCIS | Ejemplo |
|---|---|---|
| Cosecha (Harvesting) | commissioning | Lechugas cosechadas en granja |
| Enfriamiento (Cooling) | holding | Pre-cooling en cámara frigorífica |
| Empaque (Packing) | packing | Empaque en cajas con TLC |
| Envío (Shipping) | shipping | Despacho al distribuidor |
| Recepción (Receiving) | receiving | Recepción en centro de distribución |
| Transformación (Transformation) | TransformationEvent | Corte 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
| Herramienta | Lenguaje | Formato | Caso de uso principal |
|---|---|---|---|
| OpenEPCIS | Java (Quarkus) | JSON-LD + XML | Repositorio completo, conversión, testing |
| epcis2.js | JavaScript/TS | JSON-LD | Apps web/Node.js, crear y validar eventos |
| EPCPyYes | Python | XML | Scripts de migración, ETL, testing |
| GS1 Schemas | Agnóstico | JSON Schema + XSD | Validación de documentos |
| OpenEPCIS Tools | Web | JSON-LD + XML | Generación de datos de prueba, conversión |
Recursos adicionales
- Especificación EPCIS 2.0:
ref.gs1.org/standards/epcis/2.0.0 - Especificación CBV 2.0:
ref.gs1.org/standards/cbv/2.0.0 - OpenAPI spec:
github.com/gs1/EPCIS(directorio/REST Bindings/) - DSCSA guidance (FDA):
fda.gov/drugs/drug-supply-chain-security-act-dscsa - FSMA 204 guidance (FDA):
fda.gov/food/food-safety-modernization-act-fsma/fsma-final-rule-requirements-additional-traceability-records
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.