Lettore di codici a barre in farmacia: bollino AIC, Code 32 e GS1 DataMatrix
In farmacia serve un imager 2D con Code 39 e Code 32 abilitati (bollino AIC e tessera sanitaria), GS1 DataMatrix con trasmissione del separatore GS (identificativo univoco previsto dalla normativa europea anticontraffazione), EAN-13 per parafarmaco e lettura da schermo per ricette dematerializzate e app. Un lettore laser oggi non basta più.
In breve: imager 2D da banco o a pistola con base, tastiera italiana, suffisso Invio, simbologie Code 39, Code 32, EAN/UPC, Code 128/GS1-128, GS1 DataMatrix, QR e PDF417 attive; FNC1 trasmesso come GS (ASCII 29) se il gestionale gestisce il Data Matrix.
Quali codici passano sul banco di una farmacia
Una farmacia italiana è uno dei contesti con più simbologie diverse sullo stesso bancone. Ecco cosa trovi davvero:
| Dove | Simbologia | Contenuto | Nota per il lettore |
|---|---|---|---|
| Bollino del farmaco | Code 32 (codifica farmaceutica italiana basata su Code 39) | Codice AIC, in chiaro con la lettera A davanti | Serve la conversione Code 39 in Code 32 attiva |
| Confezione con identificativo univoco | GS1 DataMatrix | AI (01) codice prodotto, (17) scadenza, (10) lotto, (21) seriale | Solo imager 2D; separatore GS tra campi variabili |
| Parafarmaco, cosmetici, integratori | EAN-13, a volte EAN-8 o UPC-A | GTIN del prodotto | Standard retail, nessuna configurazione speciale |
| Tessera sanitaria | Code 39 | Codice fiscale, 16 caratteri | Code 39 attivo, niente verifica cifra di controllo |
| Promemoria ricetta dematerializzata | Codici lineari (Code 39 o Code 128 a seconda del documento) e talvolta 2D | NRE in due codici separati, codice fiscale | Spesso mostrati sullo smartphone del cliente; vedi leggere l'NRE |
| Dispositivi medici | GS1 DataMatrix, GS1-128, HIBC | UDI: codice dispositivo più dati di produzione | Abilita anche GS1-128 |
Per una panoramica delle famiglie di simbologie trovi tutto in tipi di codici a barre.
Il bollino e il Code 32: perché il lettore "sbaglia" il codice AIC
Il bollino farmaceutico stampato dal Poligrafico (IPZS) riporta il codice AIC del medicinale in un codice a barre di tipo Code 32, detto anche codice farmaceutico italiano. Fisicamente è un Code 39: le 9 cifre (8 di codice più una di controllo) vengono convertite in base 32 e codificate in 6 caratteri Code 39. Sotto le barre leggi la versione in chiaro, con la A iniziale.
Conseguenza pratica: se il lettore ha Code 39 attivo ma non la conversione Code 32, il gestionale riceve 6 caratteri alfanumerici incomprensibili invece del codice AIC. Non è un difetto del lettore né del bollino.
Code 32 non attivo: 6 caratteri alfanumerici (es. lettere e cifre senza senso) Code 32 attivo: 9 cifre del codice AIC Code 32 + prefisso A: A seguito dalle 9 cifre
Molti lettori professionali hanno due opzioni distinte, "converti Code 39 in Code 32" e "trasmetti prefisso A per Code 32". Il gestionale di farmacia di solito si aspetta una delle due forme: controlla il manuale del software o fai una prova leggendo un bollino e confrontando con il codice AIC in anagrafica. Il percorso per abilitare simbologie e opzioni è spiegato in abilitare le simbologie.
Le opzioni di conversione Code 32 hanno nomi diversi tra produttori e non tutti i lettori economici le offrono. Prima di acquistare, cerca "Code 32" o "Italian Pharmacode" nella guida di programmazione del modello. Non usare codici di programmazione presi da manuali di altri modelli.
GS1 DataMatrix e identificativo univoco (FMD)
Il Regolamento delegato (UE) 2016/161, attuativo della direttiva sui medicinali falsificati (FMD), prevede sulle confezioni dei medicinali soggetti a prescrizione un identificativo univoco in un Data Matrix bidimensionale, più un sistema antimanomissione. L'Italia, che già aveva il bollino come sistema di tracciatura, ha una transizione propria: tempi e modalità dipendono dal calendario stabilito da AIFA e Ministero della Salute, quindi verifica sempre lo stato aggiornato sui canali ufficiali prima di decidere un investimento.
Il Data Matrix sulle confezioni segue la sintassi GS1. Una lettura tipica, con le parentesi aggiunte solo per leggibilità, contiene:
(01)08012345678907(17)271231(10)LOTTO42A(21)SN8F3K29Q7ZX
- (01) codice prodotto a 14 cifre (GTIN, o codice nazionale nel formato previsto dal sistema di tracciatura).
- (17) data di scadenza nel formato AAMMGG.
- (10) numero di lotto, lunghezza variabile.
- (21) numero seriale, lunghezza variabile, unico per ogni confezione.
Lotto e seriale hanno lunghezza variabile: per sapere dove finiscono, il simbolo contiene il carattere FNC1, che il lettore trasmette come GS (ASCII 29). In emulazione tastiera questo carattere spesso sparisce o diventa un tasto inatteso, e il gestionale non riesce più a separare lotto e seriale. La soluzione dipende dal software: alcuni vogliono il GS, altri un carattere sostitutivo, altri leggono via porta COM. Approfondisci in carattere GS e FNC1 e prova le tue stringhe con il decodificatore GS1.
Per vedere se il GS arriva davvero, leggi un Data Matrix nel test lettore: mostra i caratteri invisibili con il loro codice ASCII. Se tra lotto e (21) non vedi il 29, il problema è nel lettore o nella modalità di trasmissione, non nel gestionale.
Quale lettore scegliere per il banco
Il criterio principale è uno: imager 2D. Un laser legge il bollino e gli EAN, ma non il Data Matrix, non i QR e quasi mai codici mostrati sullo schermo dello smartphone (ricette, app di fidelizzazione). Vedi il confronto in laser, CCD o imager 2D.
| Situazione | Forma consigliata | Perché |
|---|---|---|
| Banco con molte vendite rapide | Lettore da banco (presentazione) 2D | Mani libere, il farmacista passa la scatola davanti alla finestra |
| Confezioni voluminose o lette in magazzino | Pistola 2D con base, oppure cordless | Arriva alla merce senza sollevarla |
| Ricevimento merce e controllo scadenze | Cordless 2D o terminale Android | Lettura lontano dal PC, anche in modalità batch |
Molti modelli da banco funzionano in modalità ibrida: leggono in presentazione quando sono nel supporto e a grilletto quando li prendi in mano. Le differenze sono spiegate in lettore a pistola o da banco.
Configurazione consigliata
| Impostazione | Valore | Motivo |
|---|---|---|
| Interfaccia | USB HID tastiera (o USB COM se il gestionale lo richiede) | HID non richiede driver; la COM gestisce meglio il GS |
| Paese tastiera | Italiano | Evita simboli sbagliati in QR e codici con trattini |
| Suffisso | Invio (CR) | Il gestionale conferma la riga in automatico |
| Code 39 | Attivo, verifica cifra di controllo disattiva | Tessera sanitaria e base del Code 32 |
| Code 32 | Attivo, prefisso A secondo il gestionale | Bollino AIC |
| EAN-13, EAN-8, UPC-A | Attivi | Parafarmaco |
| GS1-128, GS1 DataMatrix | Attivi, FNC1 trasmesso come GS | Identificativo univoco, dispositivi medici |
| QR, PDF417 | Attivi | Ricette e documenti su smartphone |
| Simbologie non usate | Disattive (es. Codabar, MSI) | Meno letture errate su codici parziali |
La procedura completa, dal reset alla prova finale, è in come configurare un lettore; per il suffisso vedi aggiungere Invio o Tab.
Consigli di flusso di lavoro
- Configura partendo da zero. Ripristina le impostazioni di fabbrica, poi imposta tastiera italiana, suffisso e simbologie. Configurazioni stratificate da tecnici diversi sono la prima causa di comportamenti strani.
- Prova un campione per ogni tipo di codice. Un bollino, un parafarmaco, una tessera sanitaria, un Data Matrix, un promemoria sullo schermo di un telefono. Annota cosa arriva nel gestionale.
- Salva la configurazione. Con il software del produttore (vedi software di configurazione) esporta il profilo: se il lettore si guasta, quello nuovo è pronto in un minuto.
- Abbassa il volume, non spegnere il beep. In farmacia il silenzio è gradito ma il feedback serve; usa volume basso o vibrazione (volume, LED e vibrazione).
Errori comuni
- Bollino letto come stringa senza senso: Code 32 non attivo, solo Code 39.
- Codice fiscale troncato di un carattere: verifica cifra di controllo Code 39 attiva con "non trasmettere cifra di controllo": il lettore scarta l'ultimo carattere credendolo un controllo.
- Lotto e seriale incollati: il GS non arriva al gestionale. Vedi la sezione Data Matrix.
- QR della ricetta con simboli sbagliati: lettore impostato su tastiera USA (caratteri sbagliati).
- Codice sullo smartphone che non si legge: lettore laser o luminosità dello schermo troppo bassa (leggere codici da schermo).
- Bollini lucidi sul flacone curvo: riflessi, inclina leggermente il lettore (superfici lucide e curve).
Domande frequenti
Il lettore che uso per il parafarmaco va bene anche per il bollino?
Sì se supporta Code 39 con conversione Code 32. Leggere l'EAN-13 non garantisce nulla sul bollino: verifica l'opzione nella guida di programmazione.
Devo per forza cambiare lettore per il Data Matrix?
Se il tuo è laser o CCD lineare sì, perché fisicamente non può leggere un codice 2D. Un imager 2D legge anche tutti i codici lineari che usi oggi.
Il gestionale riceve il Data Matrix ma la scadenza non viene riconosciuta: perché?
Quasi sempre manca il GS dopo un campo a lunghezza variabile, oppure arriva un prefisso inatteso. Controlla la stringa con il test lettore e con il decodificatore GS1.
Fonti e riferimenti
- Regolamento delegato (UE) 2016/161 sulle caratteristiche di sicurezza dei medicinali; indicazioni nazionali di AIFA.
- GS1 General Specifications e linee guida GS1 Healthcare: gs1.org, GS1 Italy.
- ISO/IEC 16022 (Data Matrix), ISO/IEC 16388 (Code 39).
- Product Reference Guide dei lettori: Honeywell, Zebra, Datalogic.
Altro in Utilizzi
- Lettore codici a barre per biblioteca e libri ISBN
- Lettore per biglietti ed eventi: QR e Aztec da smartphone
- Lettore codici a barre per logistica: SSCC e GS1-128
- Lettore codici a barre per magazzino e inventario
- Lettore codici a barre per negozio e cassa: guida
- NRE ricetta col lettore: perché arriva solo metà numero
- Lettori codici a barre in sanità e ospedali