Il package permette la creazione di file XML delle prestazioni mediche per il servizio nazionale sanità secondo il formato XML della tessera sanitaria definito nel DM 31/07/2015. Per maggiori info si veda il Portale della Tessera Sanitaria: http://sistemats1.sanita.finanze.it/wps/portal/
- PROGETTO TESSERA SANITARIA
- Table of Contents
- PREREQUISITI
- CHANGE LOG
- USO DELLA LIBRERIA
- ESEMPIO COMPLETO
- Contributing
- Security
- Credits
- About Padosoft
- License
PHP 5.4+ OpenSSL
Scaricare l'eseguibile da https://slproweb.com/products/Win32OpenSSL.html , lanciarlo e seguire le istruzioni a video.
OpenSSL é già installato di default in tutte le principali distribuzioni. Eventualmente, controllare la versione tramite il comando:
openssl version
se non aggiornata, lanciare i comandi:
apt-get update && apt-get upgrade
apt-get install openssl
Collocare i file del certificato e delle chiavi nella directory specificata nella classe PathHelper (default: /tests/certificates).
Se non in possesso dei file ufficiali del ministero, è possibile crearli a scopo di test della libreria seguendo le istruzioni seguenti:
###Windows Lanciare il comando dal prompt DOS posizionandosi nella directory dove si trova openssl, di default C:\OpenSSL-Win32\bin
###Linux Non é necessario spostarsi nel path, in quanto openSSL dovrebbe essere già essere disponibile all'avvio della shell.
generazione chiave privata
openssl genrsa -out test.key 1024
generazione chiave pubblica
openssl rsa -in test.key -out test.pub -pubout
generazione certificato
openssl req -new -x509 -out test.crt -key test.key -days 30
Vedere anche http://www.programmazione.it/index.php?entity=eitem&idItem=36568
Rinominare il file .env.example in .env aprirlo con un editor di testo e impostare le variabili: Esempio Windows:
TMP_PATH = "c:/xampp/htdocs/tessera-sanitaria/tests/tmp/";
CERT_FILE = "c:/xampp/htdocs/tessera-sanitaria/tests/certificates/test.crt";
OPENSSL_EXE_PATH = "c:/OpenSSL-Win32/bin/";
Esempio Linux:
TMP_PATH = "/var/www/html/tessera-sanitaria/tests/tmp/";
CERT_FILE = "/var/www/html/tessera-sanitaria/tests/certificates/test.crt";
OPENSSL_EXE_PATH = "";
Rendere queste directory scrivibili da php:
chmod -R 777 /var/www/html/padosoft/tessera-sanitaria/tests/tmp/
chmod -R 777 /var/www/html/padosoft/tessera-sanitaria/tests/output/
chmod -R 777 /var/www/html/padosoft/tessera-sanitaria/tests/log/
chmod -R 777 /var/www/html/padosoft/tessera-sanitaria/vendor/luminous/luminous/cache/
Please see CHANGELOG for more information what has changed recently.
Per installare il progetto con il demo, andare nella directory del proprio web server, e lanciare il comando:
composer create-project padosoft/tessera-sanitaria --dev
Supponendo un installazione su windows con XAMPP:
cd C:\xampp\htdocs
composer create-project padosoft/tessera-sanitaria --dev
a questo punto è possibile visitare l'url http://localhost/tessera-sanitaria/tests/index.php e visualizzare la pagina demo.
L'utilizzo base del pacchetto, al netto del caricamento delle dipendenze, prevede l'istanza della classe per il tracciato, il passaggio dei dati necessari alla creazione dell'XML e il successivo recupero del codice in una variabile di tipo stringa:
// Istanzia la classe per il tracciato
$objTracciato = new Tracciato($objValidateHelper);
// Crea XML
$rispostaTracciato = $objTracciato->doTracciato($codiceRegione, $codiceAsl, $codiceSSA, $cfProprietario, $pIva, $arrSpesa, $arrVociSpesa);
// Recupera l'XML creato
$strXML = $objTracciato->getXml();
Successivamente, la stringa ricavata potrà essere usata per:
- Stampare direttamente il codice a video
- Creazione file XML
- Creazione file XML compresso
tramite vari metodi analizzati nel successivo paragrafo "Output".
La stringa XML recuperata dal metodo getXml() della classe Tracciato può essere utilizzata nei seguenti modi:
I metodi della classe PrintHelper stampano a video il codice XML generato. Servendosi della libreria Luminous (https://github.com/markwatkinson/luminous) , il codice viene formattato tramite un'interfaccia chiara ed esteticamente gradevole.
// Stampa header template html
PrintHelper::printHtmlHeader();
// Recupera l'esito e gli eventuali errori
PrintHelper::printError($objTracciato, $logger, $objValidateHelper);
// Stampa l'XML formattato
PrintHelper::printXML($strXML);
// Stampa comandi
PrintHelper::printButton();
// Stampa html footer
PrintHelper::printHtmlFooter();
La classe IOHelper permette di trasformare la stringa XML nel corrispondente file, sia in versione estesa che compressa. I due metodi che si occupano di queste operazioni sono i seguenti:
// Salva XML su file
IOHelper::outputFile($strXML, $pathOutput, $basePath);
// Crea lo zip al volo e salva su $destinationZip
IOHelper::zipFileOntheFly($pathOutput, $destinationZip, $strXML);
La validazione dei dati passati al metodo doTracciato avviene in modo trasparente per l'utente, tramite la classe ValidateHelper richiamata dal metodo stesso. I parametri di validazione si basano sul documento ufficiale fornito dal ministero della sanità: http://sistemats1.sanita.finanze.it/wps/wcm/connect/487b0bba-6a65-42f9-8b43-2fb907fe7e91/730+Schema+dati+spesa+sanitaria+(28_09_2015)_v2.pdf?MOD=AJPERES&CACHEID=487b0bba-6a65-42f9-8b43-2fb907fe7e91
Un esempio esaustivo di tutte le funzionalità summenzionate si trova in /tests/index.php , che carica anche tutte le dipendenze necessarie. Tutti i precedenti esempi di codice sono stati ricavati da questo file.
Uno screenshot di esempio si trova nella cartella resources/img
Please see CONTRIBUTING and CONDUCT for details.
If you discover any security related issues, please email instead of using the issue tracker.
- Lorenzo Padovani
- Raffaele Masi
- All contributors
Padosoft is a software house based in Florence, Italy. Specialized in E-commerce and web sites.
The MIT License (MIT). Please see License File for more information.