How to Structure a UDI Barcode
Print quality used to be the most important consideration in barcode quality. Data formatting was something of a minor issue since UPC was almost the only show in town and the structure of a UPC symbol was simple:
- The six digits on the left represented the brand owner. These number were assigned by GS1
- The five digits on the right represent the item, assigned by the brand owner.
Add to these 11 digits a 12th digit, called a check digit, and there you have it—a Version A UPC.
A few other symbologies could have specific number sequencing rules. The US military was employing a numbering scheme for Code 39. The automotive industry was also using Code 39 in the early 1980’s. In these and other early use-cases, data formatting was still quite basic. The advantages of bar coding made them attractive in new use-cases, but more data capacity was required. The development of 2D symbologies such as Data Matrix Code solved the data capacity problem. Expanded data capacity meant additional packets of different types of data, not just brand and item.
UDI is not the only use case in which data format is important, but it is one of the most interesting because the medical device industry requires such a broad scope of data. The data formatting of the UDI symbol may seem illogical at first but the rationale becomes familiar and makes sense. The USI data formatting rules apply identically to 1D symbologies such as GS1-128 and 2D symbologies such as GS1-Data Matrix.
Each packet of data has its own unique prefix, called an Application Identifier or AI. GS1 refers to them as ‘flags’. Each prefix identifies a type of data, including whether the data is a fixed or variable length, and whether it includes numerical-only data or alphanumerical data. Fixed length data must follow a specified format.
AI’s are numerical-only characters and are 2, 3 or 4 digits long. In the human readable interpretation, parentheses bracket the AI’s but the parentheses are not encoded in the symbol data. This could cause confusion when a variable length field such as a lot, batch or serial number happens to terminate in a string of numerical characters that are the same as an AI. To prevent confusion the GS1 standard requires insertion of a FNC1 Group Separator at the end of each variable length AI.
It makes sense for all the variable length data to be consistently located toward the end of the data string and not inserted between packets of fixed length data. This seems illogical to new UDI users because the AI’s do not appear in numerical sequence. For example AI (17) Expiration Date will appear earlier in the data string than AI (10) Batch or Lot Number.
International Uncertainty and Verification Challenges
Presently this is how the GS1 standard applies to UDI companies in the United States. The GS1 Standard does not apply in this same manner internationally. In some countries, it is mandatory to have an AI sequence that does not follow the current GS1 standard. Unless GS1 is able to establish an internationally acceptable standard for AI sequencing, verifier manufacturers will have to deal with this on a nation-by-nation basis.