Wie funktionieren ein- und zweidimensionale Barcodes?
Im Duden wird die Bedeutung des Wortes „Code“ als System von Regeln und Übereinkünften definiert, das die Zuordnung von Zeichen, bzw. Zeichenfolgen zweier verschiedener Zeichenvorräte erlaubt. Oder aber auch als Schlüssel, mit dessen Hilfe man einen chiffrierten Text in Klartext übertragen kann. Nun kennen wir alle die Barcodes, welche sich auf der Verpackung eines nahezu jeden Produktes befindet, das man kaufen kann. Ein solcher Barcode, auch Strichcode genannt, enthält parallele Striche unterschiedlicher Breite. Darin verschlüsselt sind Informationen, also Daten, die durch optische Lesegeräte wie Scanner entschlüsselt, also in Klartext übertragen werden können. Bis hierher also nichts Neues, denn Sie alle kennen diese Codes von den Arzneimittel–Verpackungen, die Sie tagtäglich über ihr Kassensystem abscannen. Der Barcode enthält die Pharmazentralnummer (PZN) und in der Kasse erscheint nach dem Einscannen der Name des Artikels, den Sie gerade in der Hand halten.

Code 39 als typischer Vertreter des 1D-Codes
Bei diesem Barcode, den wir alle kennen, ist der Code nur in einer Achse aufgetragen, also wird er auch als eindimensional („1D-Code“) bezeichnet. Es gibt diverse Unterarten dieser eindimensionalen Strichcodes, die sich in vielen Details unterscheiden. Auf Wikipedia gibt es sogar für jede Unterart der Barcodes sogar eigene Einträge. Wissenswert ist an dieser Stelle vor allem, dass bei Arzneimitteln die Pharmazentralnummer im Format „Code 39“ verschlüsselt ist. Diese Strichcodeart wurde bereits 1973 – lediglich 4 Jahre nach Einführung der ABDA-Lochkarte in den deutschen Apotheken – in den USA entwickelt und zeichnet sich vor allem dadurch aus, dass sie einfach herzustellen und auch bei schlechter Druckqualität gut lesbar ist. Deswegen wird Code 39 auch in anderen Branchen verwendet, wie zum Beispiel in der Logistik der Automobilindustrie oder auch auf den meisten Verpackungen von Lebensmitteln im Supermarkt.

Einen eindimensionalen Barcode wie den Code 39 könnte man dabei – zumindest in der Theorie – sogar mit bloßem Auge entschlüsseln. Er ist nämlich äußerst einfach chiffriert. So ist jedem Zeichen des Alphabets eine Abfolge aus jeweils fünf Strichen und vier Zwischenräumen zugeordnet. Dabei gibt es zwei verschiedene Balken- und Lückenbreiten. Ein codiertes Zeichen wird also jeweils durch insgesamt 9 abwechselnd schwarze und weiße Balken in unterschiedlicher Breite dargestellt. Jetzt wird es kurz mathematisch, denn auf diese Art und Weise lassen sich nämlich insgesamt 44 verschiedene Zeichen codieren. Da 39 dieser 44 Möglichkeiten den Ziffern 0–9, dem Alphabet (A–Z), dem Punkt, dem Minuszeichen (bzw. Bindestrich) und dem Leerzeichen entsprechen, lässt sich auch die Herkunft dies Namens „Code 39“ schnell erklären. Das Sternchen-Zeichen („*“) gilt als 40. Symbol, es befindet sich – natürlich auch als Balkencode – zu Beginn und am Ende eines jeden Code-39-Barcodes. Es begrenzt („Start und Stopp“) den Code. Die übrigen 4 Möglichkeiten bzw. Symbole werden für die Sonderzeichen $, %, / und + verwendet.
Beispiel: eine Packung Aspirin-Tabletten 500mg von Bayer mit 20 Stück Inhalt hat die Pharmazentralnummer 10203603. Bevor man sie in einen Barcode umwandelt, muss man noch das Sternchen vor und hinter die Ziffernfolge setzen, damit es so aussieht: *10203603*
Nun kann man diese Zeichenfolge mit einer Code-39-Schriftart, die man schnell im Internet finden kann, in einen maschinenlesbaren Barcode umwandeln. Machen wir die Probe aufs Exempel, denn ich habe den Zeichensatz eben auf meinem Rechner mit Hilfe von Excel in einen Barcode umgewandelt. Wenn Sie die nächste Zeile an Ihren Barcodescanner an der Kasse halten, sollte im Display die oben erwähnte Packung Aspirin erscheinen:

Solange es nur um das schnelle Erfassen von Pharmazentralnummern im Handverkauf oder im Wareneingang der Apotheke ging, war der eindimensionale Barcode für die Apotheken ein enormer Fortschritt. Zuvor waren diese Arbeitsschritte mit einem hohen manuellen Aufwand versehen, zum Beispiel, wenn man die ABDA-Lochkarten bei POR-Systemen gesteckt und an den Großhandel übertragen hat. Oder danach, als es die ersten Etiketten gegeben hat, deren computerlesbare Ziffern von optischen Lesegeräten erfasst werden konnte. All das war fehleranfällig und so mussten einige Arbeitsschritte häufig wiederholt werden, bis die zu übermittelnden Ziffern erfasst waren. Aber selbst in eindimensionalen Codes ist die Dichte an Nutzinformationen begrenzt – und irgendwann war sie nicht mehr ausreichend, vor allem nicht für die Vorgaben aus der EU der jüngeren Vergangenheit.
Zweidimensionale Codes
Seit dem 09.02.2019 sind nämlich Humanarzneimittel mit zusätzlichen Sicherheitsmerkmalen und einer Vorrichtung zum Erkennen von möglichen Manipulationen zu versehen. Konkret umgesetzt wird diese europaweit geltende Richtlinie, die den Schutz vor Arzneimittelfälschungen erhöhen soll – in Deutschland besser bekannt unter dem Namen „securpharm“ – durch:
- einen Erstöffnungsschutz, über den erkennbar ist, ob die äußere Verpackung eines Arzneimittels unversehrt ist. Verantwortlich für diesen „Anti Tampering Device“ genannten Schutz, der wie eine Art Siegel wirken soll, ist der jeweilige pharmazeutische Hersteller.
- ein individuelles Erkennungsmerkmal, das jede Packung zum Unikat und über den enthaltenen Produktcode eindeutig identifizierbar macht. Abgebildet wird dieses „Unique Identifier“ genannte Merkmal in einem Code, der neben der Pharmazentralnummer der Packung auch das Verfallsdatum, die Chargenbezeichnung und in den meisten europäischen Ländern die GTIN (Global Trade Item Number) enthält.
Übrigens: GTIN ist die aktuelle Bezeichnung für die bis 2005 gebräuchliche European Article Number (EAN). Es handelt sich dabei um eine weltweit eindeutige Identifikationsnummer für Handelseinheiten.

Somit ist den deutschen Apotheken spätestens seit Februar 2019 nun auch ein Code bekannt, der nicht nur eine, sondern zwei Dimensionen verwendet: der Data Matrix Code, der sich eben spätestens seit der Einführung des securpharm-Systems auf jeder Arzneimittel-Verpackung befinden muss. Der Data-Matrix-Code ist ein zweidimensionaler Code, der aus Schwarz-Weiß-Modulen besteht, die in einem kompakten quadratischen Muster angeordnet sind. Abhängig von der im Symbol codierten Datenmenge nimmt die Anzahl der Module zu oder ab. Mit dem Verfallsdatum, der Chargenbezeichnung und der GTIN enthält er im Bereich der Arzneimittelfälschungssicherheit jetzt auch mehr Informationen, als jemals in einen eindimensionalen Strichcode hätten hinterlegt werden können. Mal weitergesponnen: könnte man die durch securpharm verpflichtend auf jeder Arzneipackung angebrachten Informationen komplett maschinell verarbeiten, würde dadurch nicht nur das ordnungsgemäße Inverkehrbringen verifiziert, sondern könnten (zumindest theoretisch) auch das Verfallsdatum und die Chargenbezeichnung direkt in die Warenwirtschaft übernommen werden. Für Verfallskontrolle und Arzneimittelrückrufe, bei denen die Chargenbezeichnung relevant ist, wäre das eine gelungene Prozessoptimierung durch diesen Code.
Wie bereits erwähnt sind, im Gegensatz zu den 1D-Strichcodes, die Daten bei 2D-Codes wie der Data Matrix nicht nur in einer Richtung codiert, sondern in Form einer Fläche über zwei Dimensionen verteilt. Der große Vorteil hiervon ist, dass wesentlich mehr Informationen auf dichterem Raum verschlüsselt werden können. Zweidimensionale Codes bestehen aus verschieden breiten Strichen oder Punkten und dazwischenliegenden Lücken, die einen möglichst hohem Kontrast aufweisen. Folglich kann nicht jeder Scanner, der Strichcodes lesen kann, auch automatisch 2D-Codes erkennen. Immerhin muss bei letzteren die gesamte Fläche des Codes erfasst werden, während es bei der eindimensionalen Variante völlig ausreicht, lediglich die gesamte Breite des Codes auf einer Linie zu erfassen.
Wie ist der Data Matrix Code aufgebaut?
Wie beim Strichcode gibt es auch beim Data Matrix Code Regeln, was das Aussehen und den Aufbau betrifft, damit er von Lesegeräten korrekt erfasst werden kann. So ist in den meisten Fällen sowohl das Codebild quadratisch als auch die in ihm enthaltenen Symbol-Elemente. Weitere typische Bestandteile eines Data Matrix Codes sind, dass die äußeren Linien an zwei sich berührenden Kanten durchgehend, die ihnen Gegenüberliegenden hingegen unterbrochen sind. Damit findet der Scanner die äußere Begrenzung des Codes. Gegenüber diesen geschlossenen Kanten liegt eine Ecke, durch welche die die Codeschemata schnell erkannt werden können. Bei einer geraden Anzahl an Zeilen und Spalten ist das Element bzw. Pixel in der oberen rechten Ecke weiß, bei ungeraden ist es stets schwarz. Und schließlich befindet dazwischen, im Innenbereich der Begrenzung, der eigentliche Datenbereich, innerhalb dessen die binär codierte Information enthalten ist.

Fragen Sie sich gerade, woher Ihnen das obige Bild mehrerer aneinander gereihter Data-Matrix-Codes bekannt vorkommt? Es ist der linke obere Bildausschnitt eines bundeseinheitlichen Medikationsplans. Auch hier wird der Data-Matrix-Code verwendet, um die patientenorientierte Kommunikation zwischen Arzt und Apotheke zu gewährleisten. Wunderbar auszulesen sind solche Codes mit handelsüblichen 2D-Barcode-Scannern, wie sie auch in jeder Apotheke eingesetzt werden. Aber wenn Sie versuchen, den Medikationsplan mit der Foto-App Ihres Smartphones einzulesen, wird das höchstwahrscheinlich nicht funktionieren. Die wenigsten Handys sind dazu ohne zusätzliche, meist kostenpflichtige Apps in der Lage. Etabliert hat sich der Data-Matrix-Code bevorzugt im B2B-Bereich, also in der Kommunikation von Organisationen oder Unternehmen untereinander. Für die Kommunikation mit Verbrauchern – oder Patienten – gibt es hingegen einen weiteren zweidimensionalen Code, der schon sehr bald aus dem täglichen Leben der Apotheken in Deutschland nicht mehr wegzudenken sein wird: der QR-Code. Was man mit ihm so alles anstellen kann, vor allem in Verbindung mit dem Kassenbon – darüber wurde an dieser Stelle bereits geschrieben. Mit dem E-Rezept wird in wenigen Wochen schon schrittweise der nächste Anwendungsfall eingeführt.
Zeit also, sich nochmal damit auseinanderzusetzen, wie QR-Codes eigentlich aufgebaut sind und wie sie funktionieren … und ob das E-Rezept wirklich einen QR-Code beinhaltet.
[…] den letzten Beitrag aufmerksam gelesen hat, erkennt, dass es sich bei den 2D-Codes oben rechts und den dreien, die zu den […]
LikeLike
[…] dem Fachdienst „E-Rezept-Speicher“ der gematik abgespeichert. Der Patient bekommt einen 2D-Code, den sog. „Token,“ entweder auf Papier oder digital in einer App. Dieser enthält einen […]
LikeLike
[…] Rolle beim E-Rezept kommt dabei dem sog. „Token“ zu. Dabei handelt es sich um einen zweidimensionalen Barcode. Diese sind auch in der Apotheke längst zu einem alltäglichen und bequemen Kommunikationsmittel […]
LikeLike
[…] es wäre, wenn sie selbst in der Apotheke arbeiten würden. Natürlich lässt sich auch einfach ein QR-Code auf dem AR-Schaufenster anzeigen, mit dem KundInnen auf den Shop oder die Plattform der Apotheke […]
LikeLike