Importare dati da Tessera Sanitaria CNS

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Salve a tutti,

prima di comprare il lettore per la CNS (compatibile con Ubuntu) vorrei chiedere un'informazione:

Dovendo progettare un gestionale (in php), è possibile gestire l'accettazione dei clienti tramite la smart card (Tessera sanitaria)?
Cioè, posso acquisire i dati inserendo la carta nel lettore e trasferire (in automatico) i dati anagrafici nel form dell'accettazione cliente?

Se sì, mi potete spiegare come si può fare?

Ciao

PS: che lettore (compatibile con Ubu16.04 64bit) mi consigliate?
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Grazie Max,

ho dato uno sguardo al tuo link, ma non cerco un software closed. Se possibile, ero orientato all'Open-Source, in modo tale da poter procedere da solo per ottenere quei dati che m'interessano (su Ubuntu e Win).
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Grazie caro,

avevo già letto il tuo prezioso intervento in quel post, ed ho scaricato lo .zip per la applet.. Ora però dovrò capire come muovermi, e soprattutto dovrò comprare il lettore per fare le prove.
Mi puoi consigliare qualche modello (compatibile anche con Linux) e che abbia una buona assistenza (download manuali e driver/api) dalla casa produttrice?
 

marino51

Utente Attivo
28 Feb 2013
2.988
173
63
Lombardia
ho acquistato (molti anni fa) il lettore di smart card come "inserto" del Corriere della Sera,
lo pagai 7 euro + il prezzo del quotidiano
è marcato Regione Lombardia (è correntemente usato dagli operatori della sanità pubblica)
si tratta del modello ACR38 USB,
ha sempre lavorato con XP, win7 e ora win10
qui trovo tutti i driver aggiornati
http://www.acs.com.hk/en/products/4/acr38-smart-card-reader/
ho sempre preferito i driver del "produttore" a quelli resi disponibili dal sito di Regione Lombardia
utilizzo comunque le funzionalità rese disponibili dalla regione (prenotazioni .....)

certo è una soluzione "home made"
non ho recapiti per una soluzione professionale, ma ci sarà un qualche rivenditore ufficiale
 

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
Interessante. La cosa mi interessa anche a me. Vedo che anche l'ACR38 USB che ha comprato tempo fa Marino51 è compatibile con Linux e Android™ 3.1 and above, oltre a win. Sono disponibili per Linux: PC/SC Drivers (07-Dec-2016), PC/SC Driver Package (07-Dec-2016) e CT-API Library (12-Sep-2011) quindi potrebbero esserci i presupposti per poter fare qualsiasi programma open-source.
 

marino51

Utente Attivo
28 Feb 2013
2.988
173
63
Lombardia
ero riuscito a leggere i dati dalla tessera sanitaria con pc impostato con win7,
ma dopo l'installazione di win10 non ho più provato
 

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
ma dopo l'installazione di win10 non ho più provato
Sul sito, link che hai postato, dice, per windows:
Codice:
Operating System Support - Win CE, Win 98, Win ME, Win 2000, Win 2003, Win 2003 R2, Win XP, Win Vista, Win 2008, Win 7, Win 8, Win 8.1
Win XP x64, Win 2003 x64, Win 2003 R2 x64, Win Vista x64, Win 2008 x64, Win 2008 R2 x64, Win 7 x64, Win 8 x64, Win 8.1 x64, Win 2012 x64, Win 2012 R2 x64
Non è riportato Win10, ma forse semplicemente non lo hanno aggiornato.
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
UP per gli interessati..

Oggi ho acquistato (~20€) un lettore USB di banda magnetica (tipo HiCo) su Amazon. Mi arriva in settimana. Legge la banda magnetica, quindi le 3 tracce della tessera sanitaria, e restituirmi i dati in una stringa alfanumerica:
- Cognome e Nome & Codice Fiscale

"Pulendo" la stringa dovrei essere in grado di ottenere questi campi, e da lì riottenere tutti i dati necessari all'identificazione dell'utente: Cognome, Nome e CF (→ sesso, data e comune di nascita)

Vi tengo aggiornati!
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Perfetto, funziona! Striscio la scheda nel lettore e ottengo:
COGNOME, NOME e CODICE FISCALE ..che, tradotto, mi da SESSO, DATA e LUOGO (codice catastale) di NASCITA

Procedura:

- Ho comprato questo lettore usb smartcard (non richiede driver d'installazione; io uso Ubuntu ma l'ho provato anche su Winzoz XP): OSAYDE MSR90D

- Per interagire con il lettore utilizzo un script js che mi permette di recuperare la stringa dalla scheda.

- Lavorando sulla stringa riottengo Cognome, Nome e CF che inviato tramite una chiamata ajax ad un file php mi restituisce i dati decodificati.

NB: per chi fosse interessato, lo script js l'ho reperito a questo link (serve l'account a dropbox). Consiglio di usare la jquery.js (vers. 3.1.1), e non quella presente nel file zip. Il file zip è questo:

file zip - script js


Buon lavoro!

PS: il lettore smart-card legge la striscia magnetica, non il chip delle moderne tessere sanitarie. Quindi è valido solo per l'identificazione del paziente, non per entrare nella sua cartella digitale. Per quello serve un altro tipo di lettore (che ho comprato, ed è in standby.. e quando servirà proverò ad utilizzare..)!!
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.988
173
63
Lombardia
PS: il lettore smart-card legge la striscia magnetica, non il chip delle moderne tessere sanitarie. Quindi è valido solo per l'identificazione del paziente, non per entrare nella sua cartella digitale. Per quello serve un altro tipo di lettore (che ho comprato, ed è in standby.. e quando servirà proverò ad utilizzare..)!!
ho riprovato la lettura su win7, ho dovuto inserire lo script nei siti autorizzati di java ( vers 8 . 121 ) perché hanno "migliorato" la sicurezza e di nuovo funziona, legge il chip non la banda, il lettore è il solito distribuito il secolo scorso con il corriere della sera

il software è il solito già indicato

ps viene ben riconosciuto il cambio di tessera,
la prova è stata fatta anche con una tessere "blu", nuova recentemente consegnata
 

Allegati

  • TSmarino.PNG
    TSmarino.PNG
    151,9 KB · Visite: 829

msccmra51

Utente Attivo
9 Set 2017
69
0
6
Perfetto, funziona! Striscio la scheda nel lettore e ottengo:
COGNOME, NOME e CODICE FISCALE ..che, tradotto, mi da SESSO, DATA e LUOGO (codice catastale) di NASCITA

Procedura:

- Ho comprato questo lettore usb smartcard (non richiede driver d'installazione; io uso Ubuntu ma l'ho provato anche su Winzoz XP): OSAYDE MSR90D

- Per interagire con il lettore utilizzo un script js che mi permette di recuperare la stringa dalla scheda.

- Lavorando sulla stringa riottengo Cognome, Nome e CF che inviato tramite una chiamata ajax ad un file php mi restituisce i dati decodificati.

NB: per chi fosse interessato, lo script js l'ho reperito a questo link (serve l'account a dropbox). Consiglio di usare la jquery.js (vers. 3.1.1), e non quella presente nel file zip. Il file zip è questo:

file zip - script js


Buon lavoro!

PS: il lettore smart-card legge la striscia magnetica, non il chip delle moderne tessere sanitarie. Quindi è valido solo per l'identificazione del paziente, non per entrare nella sua cartella digitale. Per quello serve un altro tipo di lettore (che ho comprato, ed è in standby.. e quando servirà proverò ad utilizzare..)!!

Ciao Perseoclub, mi inserisco in questa discussione poiché voglio implementare la funzione di lettura smart card. Volevo chiederti se avevi provato anche le schede col chip, come avevi annunciato. Funzionano?. Nel frattempo hai aggiornato lo script js o continui a lavorare così come hai descritto qui? Grazie!!
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Ciao,

No, alla fine non provato con il chip perché non mi occorre questa funzione.. al momento utilizzo con profitto lo script come già precedentemente postato.
 

msccmra51

Utente Attivo
9 Set 2017
69
0
6
Scusa se ti disturbo ancora Perseoclub. In attesa che mi arrivi il lettore di card voglio programmare il lavoro. Se ho capito bene si procede così:
- sul server installo jquery.cardswipe.js, MySwipe.php e jquery 3.x.x
- installo il lettore che, se non ho capito male, non necessita di drivers
Quando striscio la TS nella variabile cardData mi ritrovo automaticamente i dati della persona.
E' davvero così semplice o mi sfugge qualcosa?
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Perdona il ritardo.. ma molto incasitato

Io ho adattato il plugin per i miei scopi in questo modo:

Codice:
// ++++++++ CARDSWIPE ++++++++

    // Parses raw scan into name and ID number
    var scan = function (rawData) {
        //if (!$(".cbx").is(':checked')) return false;
        console.log(rawData);
        rawData = rawData.toUpperCase();
        var pattern = /^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/;
        console.log(rawData.substr(1, 16).search(pattern));
        if (!rawData.substr(1, 16).search(pattern)){

            vettore = rawData.split("  ");

            nome = vettore[1].replace("_", "").trim();
            cognome = vettore[0].substr(17).trim();
            cf = vettore[0].substr(1, 16).trim();

            $("[data-cardswipe='cognome']").val(cognome);
            $("[data-cardswipe='nome']").val(nome);
            $("[data-cardswipe='codiceFiscale']").val(cf);

            cardData=rawData;

            $.ajax({
                url: "estrai_dati_cf.php",
                dataType: "json",
                type: "post", //I want a type as POST
                data: "cf="+cf,
                success: function(data){
                    var dataNasc = data.dataNasc;
                    var comune = data.comune;
                    var cod4 = data.cod4;
                    var sesso = data.sesso;

                    $("[data-cardswipe='nascitaData']").val(dataNasc);
                    $("[data-cardswipe='nascitaComune']").val(comune);
                    $("[data-cardswipe='nascitaCod4']").val(cod4);
                    if (sesso==='M') {
                        $("[data-cardswipe='sessoM']").prop("checked", true);
                    } else {
                        $("[data-cardswipe='sessoF']").prop("checked", true);
                    }
                }
            });

            return cardData;
        } else {
            console.log("La tessera non è corretta o non leggibile!");
        }
    };

    // Initialize the plugin.
    $.cardswipe({
        parser: scan,
        enabled: true
    });

Logicamente lanci questo script nella .js principale.. e le data-cardswipe='...' sono gli input dei miei form..

PS: se migliori il parser condividilo.. a me questo va più che bene..

PPS: "estrai_dati_cf.php" è un mio script php che dal codice fiscale estrae: sesso, luogo di nascita e data di nascita..
 

msccmra51

Utente Attivo
9 Set 2017
69
0
6
Ciao Perseoclub, il tuo script funziona perfettamente. L'ho solo personalizzato per adattarlo al mio gestionale, ma nulla di trascendentale. Davvero ottimo lavoro (e ne ha tolto tanto a me:D). Volevo chiederti se hai sotto mano uno script che serva a leggere il chip della tessesa sanitaria. Se ho ben capito quello che striscia la carta non è altro che una tastiera che alla fine della lettura invia un return e quindi completa l'input. Il lettore di chip non è così e non saprei come inviare i dati letti alla applicazione che li dovrà elaborare.
Grazie come sempre.
 

msccmra51

Utente Attivo
9 Set 2017
69
0
6
Ho semplificato il mio script di lettura della TS. In particolare, per l'uso che ne faccio, non ho avuto bisogno di JS. Dato che l'ottimo lettore suggerito da Perseoclub si comporta come una tastiera, ho creato una pagina php con un form ed un textedit di input chiamato TesseraSanitaria. Appena striscio la tessera il campo di input si valorizza automaticamente con la stringa in essa contenuta. Il form ha come action una pagina php di elaborazione, per esempio EstraiDati.php dove c'è il seguente codice:
Codice:
$ts= $_POST['TesseraSanitaria'];
$codFis = substr($ts, 1, 16);
$stringa = substr($ts, 17);
$stringa = str_replace("  ","_", $stringa);
$stringa = explode('_', $stringa);
$nome = $stringa[0];
$cognome = $stringa[1];
La variabile $codFis può essere inviata ad uno script che ne controlla la validità e restituisce il luogo di nascita e tutto il resto. In rete se ne trovano molti.
Da notare che la stringa della tessera sanitaria usa DUE spazi per separare il cognome dal nome, immagino per non confondersi con i cognomi composti tipo Di Giacomo. Quindi accertarsi che $stringa = str_replace(" ","_", $stringa) contenga due spazi. Spero possa servire a chi non ha bisogno si usare JS.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
Primian Importare dati su tabella MySQL MySQL 3
D Importare dati da più files excel in access MS Access 3
G Importare dati da file csv PHP 0
M Importare dati Xml in un file txt PHP 0
L importare dati xml a mysql PHP 29
borgo italia importare dati csv in mysql MySQL 1
F Importare dati da un file txt PHP 3
felino Importare VHS: video in bianco e nero Discussioni Varie 6
A Importare array in mysql PHP 1
Valerio93 Importare database senza backup MySQL 0
R [MySQL] importare tabella cvs MySQL 0
camilia come importare thunderbird in Outlook Windows e Software 1
F [PHP] Importare file CSV in HTML PHP 12
M Importare - Manipolare Json Array Sviluppo app per Android 2
N [MySQL] Importare un database da MAMP a Remoto MySQL 4
M [PHP] Importare file csv su server PHP 0
W [WooCommerce] importare Prodotti suddivisi con: Categorie, Prodotti, Attributi E-Commerce 6
T mysql tutorial per importare tabelle access in mysql aiuto MySQL 2
F [PHP] Importare file CSV in HTML PHP 3
L [Wordpress][HTML]Importare articoli o progetti in pagina html WordPress 0
A [WordPress] Importare immagini in post WordPress 2
G Importare database dentro un contenitore (docker) wordpress Programmazione 1
S importare testi da file esterno a grafica photoshop Photoshop 0
alessandra86 Importare un xlsx in un database Mysql PHP 2
O importare file csv mysql PHP 3
G importare database mysql dentro un contenitore (docker) PHP 6
Laskot [Javascript] Importare file JSON in local storage Javascript 2
utente importare css da pagina html HTML e CSS 1
felino Importare i post di Facebook tra gli articoli di Wordpress WordPress 0
booklisa Tema Wordpress importare da demo Content Management System (CMS) 3
B IMPORTARE FILE .FRM E .IBD CON PHPMYADMIN MySQL 0
E Importare codice html da una pagina tramite php PHP 9
N come importare da dbf a mysql? MySQL 2
asevenx Importare file excel in database mysql PHP 3
L Importare post multipli in wp WordPress 5
G Cerco script per importare file .xml e .csv. Lavoro retribuito Offerte e Richieste di Lavoro e/o Collaborazione 2
neo996sps [PHP] Importare immagini in pagina PHP 0
otto9due importare file .php tramite .load dove sbaglio?? jQuery 2
C Importare file XML Javascript 1
L Importare e troncare una stringa da url PHP 16
M Importare correttamente in tabella file CSv con doppi apici MySQL 4
M Importare pagine database pubblico in foglio di calcolo OpenOffice Windows e Software 0
ivarello Importare CSV e compilare le giuste tabelle PHP 2
M CSV to MySQL - importare da csv in MySQL MySQL 3
E Importare valori da una tabella MySQL in una tabella con checkbox PHP 4
G Importare file txt in word Windows e Software 2
D errore 1064 nell'importare txt MySQL 1
A [php]Importare contatti PHP 2
G importare csv file in tabella oracle XE da script php PHP 1
B Wordpress: importare blog da feed rss WordPress 3

Discussioni simili