padosoft/tessera-sanitaria

Export delle prestazioni mediche per il servizio nazionale sanità secondo il formato XML della tessera sanitaria DM 31/07/2015.

1.0.5 2016-01-23 16:09 UTC

README

Latest Version on Packagist Software License Build Status HHVM Status Coverage Status Quality Score Total Downloads SensioLabsInsight

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

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 demo tessera-sanitaria

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

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.