padosoft / tessera-sanitaria
Export delle prestazioni mediche per il servizio nazionale sanità secondo il formato XML della tessera sanitaria DM 31/07/2015.
Requires
- fdisotto/partita-iva: 1.0.*
- usu/codice-fiscale: 1.0.*
- vlucas/phpdotenv: ^2.1
Requires (Dev)
- league/flysystem-ziparchive: ^1.0.2
- luminous/luminous: ^0.7.0
- monolog/monolog: 1.*
- phpmd/phpmd: 2.*
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: 2.*
- twbs/bootstrap: ^3.3
This package is auto-updated.
Last update: 2024-12-22 08:13:53 UTC
README
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/
Table of Contents
- PROGETTO TESSERA SANITARIA
- Table of Contents
- PREREQUISITI
- CHANGE LOG
- USO DELLA LIBRERIA
- ESEMPIO COMPLETO
- Contributing
- Security
- Credits
- About Padosoft
- License
PREREQUISITI
PHP 5.4+ OpenSSL
INSTALLAZIONE OPENSSL
Windows
Scaricare l'eseguibile da https://slproweb.com/products/Win32OpenSSL.html , lanciarlo e seguire le istruzioni a video.
Linux
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
GENERAZIONE CERTIFICATO E CHIAVE PUBBLICA
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.
Comandi da eseguire
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
CONFIGURAZIONE
Enviroment
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 = "";
Permission folder
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/
CHANGE LOG
Please see CHANGELOG for more information what has changed recently.
USO DELLA LIBRERIA
INSTALLAZIONE DEL PROGETTO
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.
ESEMPIO BASE
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".
OUTPUT
La stringa XML recuperata dal metodo getXml() della classe Tracciato può essere utilizzata nei seguenti modi:
Output a video
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();
Creazione File
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);
VALIDAZIONE
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
ESEMPIO COMPLETO
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.
Screenshot esempio
Uno screenshot di esempio si trova nella cartella resources/img
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email instead of using the issue tracker.
Credits
- Lorenzo Padovani
- Raffaele Masi
- All contributors
About Padosoft
Padosoft is a software house based in Florence, Italy. Specialized in E-commerce and web sites.
License
The MIT License (MIT). Please see License File for more information.