e.Toscana Compliance 
Request for Comments: NNN rev. 0.4
Del: 07/04/2010 
Categoria: Applicativo
Destinatari: Regione Toscana, Aziende Sanitarie

  RFC Gestione consenso al fascicolo sanitario 
  da parte degli operatori Aziendali
  --------------------------------------------

Indice
================================================================================
1. Contesto di riferimento	
2. Obiettivi	
3. Analisi 
3.1. Casi d'uso
3.2. XML Schema dei messaggi
3.3. Esempi XML
3.4. WSDL dei servizi
4. Prodotti attesi
5. Bibliografia
6. Storico Versioni


1. Contesto di riferimento	
================================================================================
Il contesto in cui si colloca questo documento RFC e' la procedura con cui un 
operatore di un'Azienda Sanitaria puo' effettuare l'attivazione del Fascicolo 
Sanitario per conto di un assistito che lo richiede. 

L'assistito (o un delegato autorizzato), recandosi in Azienda Sanitaria 
per ricevere il PIN della propria smartcard, potra' anche richiedere 
l'attivazione del Fascicolo Sanitario ad un operatore. 

A seguito della attivazione, l'assistito potra' anche indicare se 
le informazioni sulle proprie prestazioni sanitarie dovranno essere visibili 
all'interno del Fascicolo o se la visualizzazione dovra' avvenire 
solo a seguito di una ulteriore espressione di consenso 
selettiva sulle singole prestazioni / tipologie di prestazioni.   

La data di attivazione del Fascicolo conincide con  l'istante in cui viene 
effettuata l'operazione.

Obiettivo di questo documento e' allora quello di definire le caratteristiche 
del servizio per la attivazione o meno del Fascicolo Sanitario, fornendo inoltre 
una descrizione di possibili scenari.


2. Obiettivi	
================================================================================
Assunto il contesto di riferimento descritto nel precedente paragrafo, obiettivo
di questo documento RFC e' descrivere il modello organizzativo adottato, i suoi 
scenari e casi d'uso, la tipologia di informazioni e gli eventi al verificarsi 
dei quali tali informazioni sono generate e trasmesse dalle Aziende e verso i 
destinatari.

L'invio di questa informazione da parte delle ASL a Regione Toscana ha 
l'obiettivo di permettere l'attivazione del Fascicolo Sanitario dell'assistito e 
conseguentemente di raccogliere informazioni sugli eventi/flussi dello stesso. 


3. Analisi
================================================================================ 
3.1. Casi d'uso
--------------------------------------------------------------------------------
In questa sezione e' riportata la descrizione dei casi d'uso rilevanti che 
caratterizzano l'operazione di attivazione del Fascicolo Sanitario.

L'unico attore del caso d'uso e' l'operatore dell'Azienda Sanitaria che, una 
volta inviata la richiesta di attivazione del Fascicolo, ricevera' una risposta 
contenente l'esito dell'operazione di attivazione (codice e descrizione 
dell'esito, oltre all'identificativo della transazione ricevuto in ingresso) 

L'invio della richiesta avviene attraverso messaggi XML e con 
l'utilizzo di servizi erogati da Regione Toscana ed esposti alle ASL 
dall'infrastruttura di cooperazione applicativa CART. Il dettaglio sulla 
modalita' di interfacciamento con l'infrastruttura e' descritto in [1][2][4]. 

Quando Regione Toscana riceve il messaggio contenente la richiesta di 
attivazione del fascicolo da parte della ASL, restituisce un messaggio di 
risposta che riporta un codice che indica se l'attivazione e' andata a buon fine 
o se si sono verificati errori. Il formato del messaggio di richiesta e di 
risposta e' descritto in sezione 3.2 (XML Schema dei messaggi).

Le informazioni presenti nel messaggio XML che contiene l'attivazione del 
Fascicolo sono le seguenti:
 - Codice fiscale dell'operatore dell'Azienda
 - Codice fiscale dell'assistito
 - Codice che identifica il tipo di consenso espresso alla attivazione del 
   fascicolo 
   (consenso concesso / non concesso)
 - Un codice (opzionale) che indica se le prestazioni dell'assisistito 
   saranno mostrate direttamente nel fascicolo sanitario o se la visualizzazione 
   delle prestazioni dovra' avvenire solo a seguito di una ulteriore epressione 
   di consenso da parte dell'assistito. 
 - Un codice obbligatorio che viene assegnato dal sistema aziendale e identifica la transazione.

Le informazioni prsenti nel messaggio di risposta restituito dal servizio di 
Regione Toscana sono:
 - Codice relativo all'esito dell'operazione
 - Una descrizione dell'esito
 - Il codice identificativo della transazione presente nella request. 
 
I codici che identificano l'esito dell'operazione sono i seguenti:
 - 0000 = operazione effettuata
 - 0001 = errore generico, operazione non effettuata
 - 0003 = codice fiscale dell'assistito non esistente o non valido
 - 0004 = codice del consenso non esistente / non corretto
 - 0005 = codice visibilita' predefinita non corretto
 - 0006 = fascicolo gi attivato
 - 0007 = codice transazione non presente
 - 0008 = warning: operatore non riconosciuto, operazione comunque effettuata
  
Nelle sezioni successive sono descritti in dettaglio i casi d'uso e il formato
dei messaggi XML utilizzando la notazione XML Schema [3].

 
3.2. XML Schema dei messaggi (consenso_operatore.xsd)
--------------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:rfc="http://regione.toscana.it/sis/rfc/consenso/" targetNamespace="http://regione.toscana.it/sis/rfc/consenso/"
	elementFormDefault="qualified">
	<xs:element name="AttivazioneFascicolo">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="CodiceFiscaleOperatore" type="rfc:String16" minOccurs="1" maxOccurs="1" />
				<xs:element name="CodiceFiscaleAssistito" type="rfc:String16" minOccurs="1" maxOccurs="1" />
				<xs:element name="CodTransazione" type="rfc:String24" minOccurs="1" maxOccurs="1"/>			
				<xs:element name="CodConsenso" type="rfc:String4" minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>
							Codice che indica l'espressione di consenso. Campo codificato. I valori
							ammissibili sono i seguenti:
							0001  Consenso concesso
							0002  Consenso non concesso
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="CodVisibilita" type="rfc:String4" minOccurs="0" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>
							Codice che indica se le prestazioni dell'assistito saranno visualizzate
							direttamente nel fascicolo o se la visualizzazione richiede
							un'ulteriore espressione di consenso
							(selettiva
							sulle singole prestazioni)
							da parte dell'asssitito.
							Campo codificato. I valori sono i seguenti:
							- 0000 : Consenso concesso all'inserimento diretto delle prestazioni nel fascicolo
							- 0001 :
							Consenso non concesso all'inserimento diretto nel fascicolo. Si richiede un
							consenso specifico su ogni prestazione.
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="EsitoAttivazioneFascicolo">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="CodiceEsitoOperazione" type="rfc:String4" minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>
							- 0000 = operazione effettuata
							- 0001 = errore generico, operazione non effettuata
							- 0003 = codice fiscale dell'assistito non esistente o non valido
							- 0004 = codice del consenso non esistente / non corretto
							- 0005 = codice visibilita' predefinita non corretto
							- 0006 = fascicolo gi attivato
							- 0007 = codice transazione non presente
							- 0008 = warning operatore non riconosciuto, operazione comunque effettuata
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="DescrizioneEsito" minOccurs="1" maxOccurs="1">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:maxLength value="64" />
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="CodTransazione" type="rfc:String24" minOccurs="1" maxOccurs="1" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<!-- Tipi comuni -->

	<xs:simpleType name="String24">
		<xs:restriction base="xs:string">
			<xs:length value="24" />
		</xs:restriction>
	</xs:simpleType>	
	
	
	<xs:simpleType name="String16">
		<xs:restriction base="xs:string">
			<xs:length value="16" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="String4">
		<xs:restriction base="xs:string">
			<xs:length value="4" />
		</xs:restriction>
	</xs:simpleType>
</xs:schema> 


3.3. Esempi XML
--------------------------------------------------------------------------------

Esempio di messaggio di richiesta attivazione:

<?xml version="1.0" encoding="UTF-8"?>
<rfc:AttivazioneFascicolo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://regione.toscana.it/sis/rfc/consenso/ ../xsd/consenso_operatore.xsd"
 xmlns:rfc="http://regione.toscana.it/sis/rfc/consenso/">
	<rfc:CodiceFiscaleOperatore>BCCGRG45H30L612Q</rfc:CodiceFiscaleOperatore>
	<rfc:CodiceFiscaleAssistito>PRTRRO45A13H495W</rfc:CodiceFiscaleAssistito>
	<rfc:CodTransazione>000000000000000000000001</rfc:CodTransazione>
	<rfc:CodConsenso>0001</rfc:CodConsenso>
</rfc:AttivazioneFascicolo>

Esempio di messaggio relativo all'esito dell'operazione:

<?xml version="1.0" encoding="UTF-8"?>
<rfc:EsitoAttivazioneFascicolo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://regione.toscana.it/sis/rfc/consenso/ ../xsd/consenso_operatore.xsd"
	xmlns:rfc="http://regione.toscana.it/sis/rfc/consenso/">
	<rfc:CodiceEsitoOperazione>0000</rfc:CodiceEsitoOperazione>
	<rfc:DescrizioneEsito>operazione effettuata</rfc:DescrizioneEsito>
	<rfc:CodTransazione>000000000000000000000001</rfc:CodTransazione>
</rfc:EsitoAttivazioneFascicolo>


Esempio di richiesta di attivazione nel caso in cui la persona che si reca in Azienda voglia anche
esprimere una visibilita delle prestazioni differente da quella di default:

<?xml version="1.0" encoding="UTF-8"?>
<rfc:AttivazioneFascicolo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://regione.toscana.it/sis/rfc/consenso/ ../xsd/consenso_operatore.xsd"
	xmlns:rfc="http://regione.toscana.it/sis/rfc/consenso/">
	<rfc:CodiceFiscaleOperatore>BCCGRG45H30L612Q</rfc:CodiceFiscaleOperatore>
	<rfc:CodiceFiscaleAssistito>PRTRRO45A13H495W</rfc:CodiceFiscaleAssistito>
	<rfc:CodTransazione>000000000000000000000003</rfc:CodTransazione>
	<rfc:CodConsenso>0001</rfc:CodConsenso>
	<rfc:CodVisibilita>0000</rfc:CodVisibilita>	
</rfc:AttivazioneFascicolo>

Esempio di messaggio relativo all'esito negativo dell'operazione a causa della inesistenza del codice fiscale dell'assistito:

<?xml version="1.0" encoding="UTF-8"?>
<rfc:EsitoAttivazioneFascicolo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://regione.toscana.it/sis/rfc/consenso/ ../xsd/consenso_operatore.xsd"
	xmlns:rfc="http://regione.toscana.it/sis/rfc/consenso/">
	<rfc:CodiceEsitoOperazione>0003</rfc:CodiceEsitoOperazione>
	<rfc:DescrizioneEsito>codice fiscale dell'assistito non esistente o non valido</rfc:DescrizioneEsito>
	<rfc:CodTransazione>000000000000000000000004</rfc:CodTransazione>
</rfc:EsitoAttivazioneFascicolo>


3.4. WSDL dei servizi
--------------------------------------------------------------------------------

<definitions name="ActivationService" targetNamespace="http://regione.toscana.it/sis/rfc/consenso/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://regione.toscana.it/sis/rfc/consenso/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<types>
		<xsd:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:rfc="http://regione.toscana.it/sis/rfc/consenso/" targetNamespace="http://regione.toscana.it/sis/rfc/consenso/"
			elementFormDefault="qualified">
			<xsd:include schemaLocation="consenso_operatore.xsd"/>
		</xsd:schema>
	</types>
	<message name="AttivazioneService_AttivazioneFascicolo">
		<part element="tns:AttivazioneFascicolo" name="AttivazioneFascicolo" />
	</message>
	<message name="AttivazioneService_AttivazioneFascicoloResponse">
		<part element="tns:EsitoAttivazioneFascicolo" name="EsitoAttivazioneFascicolo" />
	</message>
	<portType name="AttivazioneService">
		<operation name="AttivazioneFascicolo">
			<input message="tns:AttivazioneService_AttivazioneFascicolo" />
			<output message="tns:AttivazioneService_AttivazioneFascicoloResponse" />
		</operation>
	</portType>
	<binding name="AttivazioneServiceBinding" type="tns:AttivazioneService">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
		<operation name="AttivazioneFascicolo">
			<soap:operation soapAction="" />
			<input>
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
		</operation>
	</binding>
	<service name="AttivazioneService">
		<port binding="tns:AttivazioneServiceBinding" name="AttivazioneServicePort">
			<soap:address location="http://127.0.0.1:8080/fset-services/ActivationServices" />
		</port>
	</service>
</definitions>



4. Prodotti attesi	
================================================================================
NN.


5. Bibliografia
================================================================================

[1] "Manuale d'Uso Infrastruttura CART", Regione Toscana, 
Versione 1.01 del 03/12/2007 

[2] "SDK-CART", Regione Toscana, Versione 1.1 del 20/04/2008 

[3] "XML Schema", W3C Recommendation 28 October 2004, 
http://www.w3.org/XML/Schema  

[4] "Carta Sanitaria Elettronica - Comunicazione ad eventi di informazioni 
su Prestazioni Sanitarie", Analisi Tecnica, vers 1.1, 13/01/2009

[5] "Piattaforma per lo Sviluppo e Rilascio di Componenti Software", http://oscat.rete.toscana.it/


6. Storico versioni
================================================================================
vers 0.3 del 23/12/2009
-----------------------
Modifiche all'interfaccia del servizio:
 - Aggiunto identificativo della transazione (obbligatorio) nel messagigo di richiesta e in quello di risposta. 
   Conseguente modifica agli esempi xml.
 - Aggiunti i codici di errore/warning per indicare la mancanza dell'identificativo della transazione e l'impossibilita' di identificare l'operatore. 


vers 0.2 del 24/11/2009
-----------------------
Correzione e modifiche della parte narrativa.


vers 0.1 del 20/11/2009
-----------------------
Emissione



 