e.Toscana Compliance 
Request for Comments:128
Del: 27/04/2009
Categoria: Applicativa
Destinatari: ASL
Comunicazione Dispositivi Medici Erogati Dalle Strutture 

Indice
=========================

1. Contesto di riferimento	
2. Obiettivi	
3. Analisi
3.1. Casi d'uso
3.1.1. Ev01 - Inserimento
3.1.2. Ev02 - Sostituzione
3.1.3. Ev03 - Cancellazione
3.2. XML Schema degli eventi
3.2.1. Inserimento - XML Schema (Ev01-Inserimento.xsd) 
3.2.2. Sostituzione - XML Schema (Ev02-Sostituzione.xsd) 
3.2.3. Cancellazione - XML Schema (Ev03-Cancellazione.xsd)
3.2.4. Acknowledge - XML Schema (Acknowledge.xsd)
4. Prodotti attesi	
4.1. WSDL Accordo di servizio parte comune - Comunicazione dei Dispositivi Medici Erogati Dalle Strutture 	
4.2. WSDL Accordo di servizio parte comune - Invio Esito
5. Bibliografia


1. Contesto di riferimento
=========================
Gli oggetti di rilevazione sono costituiti da tutti i dispositivi medici scaricati dalla farmacia ospedaliera:
	da presidi Ospedalieri 
	da presidi Ambulatoriali
	nellambito di prestazioni erogate al domicilio dellutente
	da istituti o centri di riabilitazione
	da farmacie convenzionate
	da strutture della farmaceutica territoriale
	altro (ospedali di comunit, hospice, RSA, istituti penitenziari, guardia medica nelle ambulanze e nellambito del servizio farmaceutico e di elisoccorso)

Sono esclusi i dispositivi medici forniti, previa fatturazione, alle case di cura private convenzionate.


Il debito informativo delle Aziende sanitarie consiste nella trasmissione, dei dati relativi ai dispositivi medici scaricati da parte dei presidi direttamente gestiti. 
Il riferimento normativo Regionale relativo al flusso DES  rappresentato dalla delibera Regionale sui Flussi D.O.C.


2. Obiettivi
=========================
Obiettivo del presente RFC  quello di definire le modalit di scambio delle informazioni relative ai dispositivi medici erogati dalle strutture fra le ASL e Regione Toscana.
Nel contesto sopra indicato l'uso dell'infrastruttura di cooperazione applicativa consente alle ASL di:
1. automatizzare l'invio delle comunicazioni;
2. gestire i messaggi di risposta del sistema infromativo regionale in maniera standard;


3. Analisi
=========================

In questa sezione e' riportata la descrizione dei casi d'uso rilevanti che caratterizzano l'invio dei dispositivi medici al verificarsi dei seguenti eventi:

 - Ev01 - Inserimento
 - Ev02 - Sostituzione 
 - Ev03 - Cancellazione 
 

 
Al verificarsi di un evento, l'informazione ad esso relativa deve essere inviata
dalle Aziende Sanitarie o da una struttura di riferimento che lAzienda deve esplicitamente indicare e (attore primario del caso d'uso) a Regione Toscana (attore secondario del caso d'uso).
La Sostituzione o la cancellazione di informazioni trasmesse con un messaggio  effettuato con  l'invio di un nuovo messaggio di tipo Sostituzione o Cancellazione con lo stesso Id_Azienda e codice usl.
Le informazioni contenute in questo nuovo messaggio sostituiscono in toto (cio schiacciano) quelle contenute nel messaggio precedente. 
Vale cio una regola generale per cui le informazioni valide sono quellecontenute nell'ultimo messaggio ricevuto 

L'invio della informazione 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 la infrastruttura e' descritto nei paragrafi successivi. 
Quando Regione Toscana riceve un messagio da parte della ASL, restituisce una conferma di ricezione (messaggio di Acknowledge) che riporta un codice che 
indica se il messaggio e' stato correttamente elaborato o se si sono verificati errori.

Nelle sezioni successive sono descritti in dettaglio i casi d'uso poi il formato dei messaggi XML utilizzando la notazione XML Schema .


3.1. Casi d'uso

3.1.1. Ev01 - Inserimento
-------------------------------------------------
L'evento si verifica quando l'Azienda ha un nuovo dispositivo medico scaricato  da parte dei presidi direttamente gestiti

i presidi gestiti da un Azienda sono:
	Ospedalieri 
	Ambulatoriali
	nellambito di prestazioni erogate al domicilio dellutente
	da istituti o centri di riabilitazione
	da farmacie convenzionate
	da strutture della farmaceutica territoriale
	altro (ospedali di comunit, hospice, RSA, istituti penitenziari, guardia medica nelle ambulanze e nellambito del servizio farmaceutico e di elisoccorso
Al verificarsi dell'evento, la ASL invia a Regione Toscana un messaggio XML che 
contiene le seguenti informazioni rilevanti:

-  Id Azienda
-  Codice Azienda erogatrice
-  Tipologia del presidio erogatore
-  Codice struttura
-  Giorno di scarico 
-  Mese di scarico
-  Anno di scarico
-  Codice Aziendale del DM
-  Codice specialit di erogazione
-  Codice del reparto di erogazione
-  Tipo dispositivo medico
-  Identificativo di iscrizione al Repertorio
-  Codice prodotto del fornitore
-  Nome commerciale e modello DM attribuito dal fornitore
-  Partita Iva Fornitore
-  Destinazione di utilizzo
-  Motivo scarico
-  Quantit scaricate
-  Costo del dispositivo medico scaricato
-  Fattore di conversione
-  Costo totale
-  Tipo scarico
-  Id Messaggio 

Id Azienda contenere un valore univoco a livello aziendale. Lunivocit deve essere garantita per tutto lanno di riferimento.
Id Messaggio  l'unione di Id Azienda e Codice Azienda erogatrice

Il formato del messaggio e' riportato in sezione 3.2.1. utilizzando la notazione
XML Schema.

3.1.2. Ev02 - Sostituzione
-------------------------------------------------
L'evento si verifica quando l'Azienda ha inviato un messaggio con informazioni sbagliate e quindi deve modificare le informazioni di un dispositivo gi inviato in precedenza

Al verificarsi dell'evento, la ASL invia a Regione Toscana un messaggio XML che 
contiene tutte le informazioni del dispositivo che aveva gi mandato con l'accadere dell Ev01 cosi che le informazioni sbagliate vengono sostituite da quelle giuste.

Il formato del messaggio e' riportato in sezione 3.2.3. utilizzando la notazione
XML Schema.

3.1.3. Ev03 - Cancellazione
-------------------------------------------------
L'evento si verifica quando l'Azienda ha inviato un messaggio errato, quindi comunica a Regione Toscana di cancellare il messaggio precedentemente inviato.

Al verificarsi dell'evento, la ASL invia a Regione Toscana un messaggio XML che 
contiene Id_Azienda e codice usl, questi saranno l'identificativo del messaggio da cancellare
 
Il formato del messaggio e' riportato in sezione 3.2.3. utilizzando la notazione
XML Schema.


3.1.4. Messaggio di Acknowledge
-------------------------------------------------
A seguito della ricezione ed elaborazione del messaggio, il ricevente (Regione 
Toscana) restituisce un messaggio di acknowledge che riporta l'indicazione di 
corretta ricezione ed elaborazione del messaggio o una lista di codici di errore.
I codici di errore possibili sono:
SYN:Errore di validazione nel formato dell'evento ricevuto
CNT:Errore presente nei contenuti dell'evento ricevuto
ELB:Errore applicativo nella elaborazione del messaggio

Il formato del messaggio e' riportato in sezione 3.2.4. utilizzando la notazione
XML Schema.


3.2. XML Schema degli eventi

3.2.1. Inserimento - XML Schema (Ev01-Inserimento.xsd) 
------------------------------------------------- 


<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - 30 Day Trial Edition 7.1.0.1135 (http://www.liquid-technologies.com)-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://regione.toscana.it/sis/rfc/des" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="Inserimento">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Id_Azienda">
        <xs:annotation>
          <xs:documentation>Id Azienda deve contenere un valore univoco a livello aziendale. Lunivocit deve essere garantita per tutto lanno di riferimento.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:ID">
            <xs:length value="10" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="codusl">
        <xs:annotation>
          <xs:documentation>Codice Azienda Sanitaria erogatrice ( USL, AOU, Istituti Ricovero Cura a Carattere Scientifico anche se trasformati in fondazioni)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="tipopres">
        <xs:annotation>
          <xs:documentation>Tipologia del presidio erogatore
Valori ammessi:
01= presidio ospedaliero
02= presidio ambulatoriale
03= domicilio
05= istituto o centro di riabilitazione
06= farmacie convenzionate
07= farmaceutica territoriale
99= altro
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
            <xs:enumeration value="05" />
            <xs:enumeration value="06" />
            <xs:enumeration value="07" />
            <xs:enumeration value="99" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="struttura">
        <xs:annotation>
          <xs:documentation>Codice struttura 
Valori ammessi:
HSP11 BIS : presidi ospedalieri
STS11: presidi  ambulatoriali e RSA
RIA11:  Istituti e Centri di Riabilitazione
Anagrafica Regionale Farmacie Convenzionate
00000000=non rilevato
NB:
Se Tipologia del presidio erogatore=07 indicare il codice aziendale del presidio se disponibile oppure 0000000=non rilevato.
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="8" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="giorno">
        <xs:annotation>
          <xs:documentation>Giorno del mese di riferimento a cui sui riferisce lo scarico. 
Valori ammessi: formato gg per scarichi giornalieri oppure 00 per indicare uno scarico mensile.
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="00" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
            <xs:enumeration value="04" />
            <xs:enumeration value="05" />
            <xs:enumeration value="06" />
            <xs:enumeration value="07" />
            <xs:enumeration value="08" />
            <xs:enumeration value="09" />
            <xs:enumeration value="10" />
            <xs:enumeration value="11" />
            <xs:enumeration value="12" />
            <xs:enumeration value="13" />
            <xs:enumeration value="14" />
            <xs:enumeration value="15" />
            <xs:enumeration value="16" />
            <xs:enumeration value="17" />
            <xs:enumeration value="18" />
            <xs:enumeration value="19" />
            <xs:enumeration value="20" />
            <xs:enumeration value="21" />
            <xs:enumeration value="22" />
            <xs:enumeration value="23" />
            <xs:enumeration value="24" />
            <xs:enumeration value="25" />
            <xs:enumeration value="26" />
            <xs:enumeration value="27" />
            <xs:enumeration value="28" />
            <xs:enumeration value="29" />
            <xs:enumeration value="30" />
            <xs:enumeration value="31" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="annomese" type="xs:gYearMonth">
        <xs:annotation>
          <xs:documentation>Anno e Mese di riferimento dello scarico
Valori ammessi: formato mmaaaa</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="coddm">
        <xs:annotation>
          <xs:documentation>Codice del prodotto utilizzato in Azienda Sanitaria per individuare in maniera univoca ogni singolo dispositivo medico</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="specialit">
        <xs:annotation>
          <xs:documentation>Codice specialit di erogazione 
I valori ammessi e la relativa decodifica sono messi a disposizione delle Aziende tramite i NAL
000 = non rilevato  
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="reparto">
        <xs:annotation>
          <xs:documentation>Codice del reparto di erogazione</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="tipodm">
        <xs:annotation>
          <xs:documentation>Tipo dispositivo medico
Indica la tipologia del dispositivo medico:
1 = DM di classe
2 = Assemblato
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="1" />
            <xs:enumeration value="1" />
            <xs:enumeration value="2" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="codrdm">
        <xs:annotation>
          <xs:documentation>Identificativo di iscrizione al Repertorio (RDM) del dispositivo medico</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="codfor">
        <xs:annotation>
          <xs:documentation>Si intende il codice del prodotto attribuito dal fornitore al singolo dispositivo</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="nomfor">
        <xs:annotation>
          <xs:documentation>Nome commerciale e modello DM attribuito dal fornitore</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="pifor">
        <xs:annotation>
          <xs:documentation>Partita Iva del fornitore</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="15" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="destutil">
        <xs:annotation>
          <xs:documentation>Destinazione di utilizzo
Valori ammessi:
01= Distribuzione interna
02= Erogazione Diretta
99= Altro
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="99" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="motivo">
        <xs:annotation>
          <xs:documentation>Motivo dello scarico
Valori ammessi:
Se destutil = 01
01= Ricovero Regime Ordinario
02= Ricovero Regime Day Hospital, Day Surgery
03= Ambulatoriale
Se destutil = 02
04= Erogazione Diretta (Istituti penitenziari, RSA) e Distribuzione per conto (DPC)
05=Continuit Assistenziale (Hospice, Ospedali di comunit, ADI assistenza domiciliare Integrata) 
Se destutil = 99
99= Altro (elisoccorso, ambulanze, guardia medica)
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
            <xs:enumeration value="04" />
            <xs:enumeration value="05" />
            <xs:enumeration value="99" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="quantun" type="xs:nonNegativeInteger">
        <xs:annotation>
          <xs:documentation>Quantit scaricate:
Numero di unit minime indivisibili/confezioni scaricate al reparto</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="costoun" type="euro1">
        <xs:annotation>
          <xs:documentation>Costo del dispositivo medico scaricato</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="fatconv">
        <xs:annotation>
          <xs:documentation>Fattore di conversione:
Indica il numero che permette di determinare:
il costo unitario del singolo pezzo attraverso la formula: costoun / fatconv 
il numero di pezzi scaricati attraverso la formula: quantuni X fatconv

Valori ammessi:
1= se il DM  scaricato per unit minima indivisibile.
In questo caso il campo quantuni (quantit scaricate) dovr indicare il numero dei pezzi scaricati e il campo costoun (costo unitario del DM) il costo unitario del singolo pezzo.

indicare il numero di unit indivisibili contenute nella confezione se il DM  scaricato a confezioni.
In questo caso il campo quantuni (quantit scaricate) dovr indicare il numero delle confezioni scaricate e il campo costoun (costo unitario del DM) il costo della confezione
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:positiveInteger">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="999" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="costotot" type="euro2" />
      <xs:element minOccurs="1" maxOccurs="1" name="scarico">
        <xs:annotation>
          <xs:documentation>Valori ammessi:
01= Scarico al reparto
02= Reso alla farmacia
03= Scaduto 
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="euro1">
    <xs:annotation>
      <xs:documentation>Costo medio ponderato su base annuale anno mobile con IVA del singolo dispositivo.
Deve essere inserito un valore le cui  prime 8 cifre indicano la parte intera del costo del prodotto,  la nona corrisponde alla virgola decimale e le ultime 5 indicano la parte decimale del costo del  prodotto 
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="parteintera">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="8" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="virgola">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="1" />
            <xs:enumeration value="," />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="partedecimale">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="5" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="euro2">
    <xs:annotation>
      <xs:documentation>Deve essere inserito un valore le cui  prime 11 cifre indicano la parte intera del costo del prodotto,  la dodicesima corrisponde alla virgola decimale e le ultime 3 indicano la parte decimale del costo del  prodotto</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="parteintera">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="11" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="virgola">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="1" />
            <xs:enumeration value="," />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="partedecimale">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

3.2.2. Sostituzione - XML Schema (Ev02-Sostituzione.xsd) 
------------------------------------------------- 

<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - 30 Day Trial Edition 7.1.0.1135 (http://www.liquid-technologies.com)-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://regione.toscana.it/sis/rfc/des" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="Sostituzione">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Id_Azienda">
        <xs:annotation>
          <xs:documentation>Id Azienda deve contenere un valore univoco a livello aziendale. Lunivocit deve essere garantita per tutto lanno di riferimento.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:ID">
            <xs:length value="10" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="codusl">
        <xs:annotation>
          <xs:documentation>Codice Azienda Sanitaria erogatrice ( USL, AOU, Istituti Ricovero Cura a Carattere Scientifico anche se trasformati in fondazioni)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="tipopres">
        <xs:annotation>
          <xs:documentation>Tipologia del presidio erogatore
Valori ammessi:
01= presidio ospedaliero
02= presidio ambulatoriale
03= domicilio
05= istituto o centro di riabilitazione
06= farmacie convenzionate
07= farmaceutica territoriale
99= altro
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
            <xs:enumeration value="05" />
            <xs:enumeration value="06" />
            <xs:enumeration value="07" />
            <xs:enumeration value="99" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="struttura">
        <xs:annotation>
          <xs:documentation>Codice struttura 
Valori ammessi:
HSP11 BIS : presidi ospedalieri
STS11: presidi  ambulatoriali e RSA
RIA11:  Istituti e Centri di Riabilitazione
Anagrafica Regionale Farmacie Convenzionate
00000000=non rilevato
NB:
Se Tipologia del presidio erogatore=07 indicare il codice aziendale del presidio se disponibile oppure 0000000=non rilevato.
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="8" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="giorno">
        <xs:annotation>
          <xs:documentation>Giorno del mese di riferimento a cui sui riferisce lo scarico. 
Valori ammessi: formato gg per scarichi giornalieri oppure 00 per indicare uno scarico mensile.
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="00" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
            <xs:enumeration value="04" />
            <xs:enumeration value="05" />
            <xs:enumeration value="06" />
            <xs:enumeration value="07" />
            <xs:enumeration value="08" />
            <xs:enumeration value="09" />
            <xs:enumeration value="10" />
            <xs:enumeration value="11" />
            <xs:enumeration value="12" />
            <xs:enumeration value="13" />
            <xs:enumeration value="14" />
            <xs:enumeration value="15" />
            <xs:enumeration value="16" />
            <xs:enumeration value="17" />
            <xs:enumeration value="18" />
            <xs:enumeration value="19" />
            <xs:enumeration value="20" />
            <xs:enumeration value="21" />
            <xs:enumeration value="22" />
            <xs:enumeration value="23" />
            <xs:enumeration value="24" />
            <xs:enumeration value="25" />
            <xs:enumeration value="26" />
            <xs:enumeration value="27" />
            <xs:enumeration value="28" />
            <xs:enumeration value="29" />
            <xs:enumeration value="30" />
            <xs:enumeration value="31" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="annomese" type="xs:gYearMonth">
        <xs:annotation>
          <xs:documentation>Anno e Mese di riferimento dello scarico
Valori ammessi: formato mmaaaa</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="coddm">
        <xs:annotation>
          <xs:documentation>Codice del prodotto utilizzato in Azienda Sanitaria per individuare in maniera univoca ogni singolo dispositivo medico</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="specialit">
        <xs:annotation>
          <xs:documentation>Codice specialit di erogazione 
I valori ammessi e la relativa decodifica sono messi a disposizione delle Aziende tramite i NAL
000 = non rilevato  
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="reparto">
        <xs:annotation>
          <xs:documentation>Codice del reparto di erogazione</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="tipodm">
        <xs:annotation>
          <xs:documentation>Tipo dispositivo medico
Indica la tipologia del dispositivo medico:
1 = DM di classe
2 = Assemblato
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="1" />
            <xs:enumeration value="1" />
            <xs:enumeration value="2" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="codrdm">
        <xs:annotation>
          <xs:documentation>Identificativo di iscrizione al Repertorio (RDM) del dispositivo medico</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="codfor">
        <xs:annotation>
          <xs:documentation>Si intende il codice del prodotto attribuito dal fornitore al singolo dispositivo</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="nomfor">
        <xs:annotation>
          <xs:documentation>Nome commerciale e modello DM attribuito dal fornitore</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="pifor">
        <xs:annotation>
          <xs:documentation>Partita Iva del fornitore</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="15" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="destutil">
        <xs:annotation>
          <xs:documentation>Destinazione di utilizzo
Valori ammessi:
01= Distribuzione interna
02= Erogazione Diretta
99= Altro
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="99" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="motivo">
        <xs:annotation>
          <xs:documentation>Motivo dello scarico
Valori ammessi:
Se destutil = 01
01= Ricovero Regime Ordinario
02= Ricovero Regime Day Hospital, Day Surgery
03= Ambulatoriale
Se destutil = 02
04= Erogazione Diretta (Istituti penitenziari, RSA) e Distribuzione per conto (DPC)
05=Continuit Assistenziale (Hospice, Ospedali di comunit, ADI assistenza domiciliare Integrata) 
Se destutil = 99
99= Altro (elisoccorso, ambulanze, guardia medica)
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
            <xs:enumeration value="04" />
            <xs:enumeration value="05" />
            <xs:enumeration value="99" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="quantun" type="xs:nonNegativeInteger">
        <xs:annotation>
          <xs:documentation>Quantit scaricate:
Numero di unit minime indivisibili/confezioni scaricate al reparto</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="costoun" type="euro1">
        <xs:annotation>
          <xs:documentation>Costo del dispositivo medico scaricato</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="fatconv">
        <xs:annotation>
          <xs:documentation>Fattore di conversione:
Indica il numero che permette di determinare:
il costo unitario del singolo pezzo attraverso la formula: costoun / fatconv 
il numero di pezzi scaricati attraverso la formula: quantuni X fatconv

Valori ammessi:
1= se il DM  scaricato per unit minima indivisibile.
In questo caso il campo quantuni (quantit scaricate) dovr indicare il numero dei pezzi scaricati e il campo costoun (costo unitario del DM) il costo unitario del singolo pezzo.

indicare il numero di unit indivisibili contenute nella confezione se il DM  scaricato a confezioni.
In questo caso il campo quantuni (quantit scaricate) dovr indicare il numero delle confezioni scaricate e il campo costoun (costo unitario del DM) il costo della confezione
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:positiveInteger">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="999" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="costotot" type="euro2" />
      <xs:element minOccurs="1" maxOccurs="1" name="scarico">
        <xs:annotation>
          <xs:documentation>Valori ammessi:
01= Scarico al reparto
02= Reso alla farmacia
03= Scaduto 
</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="2" />
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="euro1">
    <xs:annotation>
      <xs:documentation>Costo medio ponderato su base annuale anno mobile con IVA del singolo dispositivo.
Deve essere inserito un valore le cui  prime 8 cifre indicano la parte intera del costo del prodotto,  la nona corrisponde alla virgola decimale e le ultime 5 indicano la parte decimale del costo del  prodotto 
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="parteintera">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="8" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="virgola">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="1" />
            <xs:enumeration value="," />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="partedecimale">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="5" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="euro2">
    <xs:annotation>
      <xs:documentation>Deve essere inserito un valore le cui  prime 11 cifre indicano la parte intera del costo del prodotto,  la dodicesima corrisponde alla virgola decimale e le ultime 3 indicano la parte decimale del costo del  prodotto</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="parteintera">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="11" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="virgola">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="1" />
            <xs:enumeration value="," />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="partedecimale">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>


3.2.3. Cancellazione - XML Schema (Ev03-Cancellazione.xsd) 
------------------------------------------------- 


<<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - 30 Day Trial Edition 7.1.0.1135 (http://www.liquid-technologies.com)-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://regione.toscana.it/sis/rfc/des" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="Cancellazione">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Id_Azienda">
        <xs:annotation>
          <xs:documentation>Id Azienda deve contenere un valore univoco a livello aziendale. Lunivocit deve essere garantita per tutto lanno di riferimento.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:ID">
            <xs:length value="10" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="codusl">
        <xs:annotation>
          <xs:documentation>Codice Azienda Sanitaria erogatrice ( USL, AOU, Istituti Ricovero Cura a Carattere Scientifico anche se trasformati in fondazioni)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

3.2.4. Acknowledge - XML Schema (Acknowledge.xsd)
-------------------------------------------------  

<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - 30 Day Trial Edition 7.1.0.1135 (http://www.liquid-technologies.com)-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://regione.toscana.it/sis/rfc/des" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name=" Acknowledge">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Id_Azienda" type="xs:ID" />
      <xs:element minOccurs="1" maxOccurs="1" name="codusl">
        <xs:annotation>
          <xs:documentation>Codice Azienda Sanitaria erogatrice ( USL, AOU, Istituti Ricovero Cura a Carattere Scientifico anche se trasformati in fondazioni)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:length value="3" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Errori" type="Errori" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Errore">
    <xs:sequence>
      <xs:element name="Codice">
        <xs:annotation>
          <xs:documentation>valori possibili:
SYN:Errore di validazione nel formato dell'evento ricevuto
CNT:Errore presente nei contenuti dell'evento ricevuto
ELB:Errore applicativo nella elaborazione del messaggio</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="SYN" />
            <xs:enumeration value="CNT" />
            <xs:enumeration value="ELB" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="Descrizione" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Errori">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="Errore" type="Errore" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>

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

4.1. WSDL Accordo di servizio parte comune - Comunicazione dei Dispositivi Medici Erogati Dalle Strutture .
------------------------------------------------------------------
In questa sezione e' riportato il documento WSDL che definisce l'interfaccia del servizio di pubblicazione degli eventi relativi alla Comunicazione dei Dispositivi Medici Erogati Dalle Strutture, descritti nelle precedenti sezioni.


<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:tns="http://regione.toscana.it/sis/rfc/des"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:des="http://regione.toscana.it/sis/rfc/des"
	name="InviaDatiDispositiviMedici" targetNamespace="http://regione.toscana.it/sis/rfc/des"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
	
	<wsdl:types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
		  	<xsd:include schemaLocation="Ev01-Inserimento.xsd" />
			<xsd:include schemaLocation="Ev02-Sostituzione.xsd" />
			<xsd:include schemaLocation="Ev03-Cancellazione.xsd" />
		</xsd:schema>
	</wsdl:types>
	<wsdl:message name="inviaInserimentoRequest">
		<wsdl:part name="inserimento" element="tns:inviaInserimento"></wsdl:part>
	</wsdl:message>
	<wsdl:message name="inviaSostituzioneRequest">
		<wsdl:part name="sostituzione" element="tns:inviaSostituzione"></wsdl:part>
	</wsdl:message>
	<wsdl:message name="inviaCancellazioneRequest">
		<wsdl:part name="cancellazione" element="tns:inviaCancellazione"></wsdl:part>
	</wsdl:message>

	<wsdl:portType name="InviaDatiDispositiviMedici">
		<wsdl:operation name="inviaInserimento">
			<wsdl:input message="tns:inviaInserimentoRequest"></wsdl:input>
		</wsdl:operation>
		<wsdl:operation name="inviaSostituzione">
			<wsdl:input message="tns:inviaSostituzioneRequest"></wsdl:input>
		</wsdl:operation>
		<wsdl:operation name="inviaCancellazione">
			<wsdl:input message="tns:inviaCancellazioneRequest"></wsdl:input>
		</wsdl:operation>
		</wsdl:portType>
	<wsdl:binding name="InviaDatiDispositiviMediciBinding" type="tns:InviaDatiDispositiviMedici">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="inviaInserimento">
			<soap:operation soapAction="inviaInserimento"/>
			<wsdl:input><soap:body use="literal"/></wsdl:input>	
		</wsdl:operation>
		<wsdl:operation name="inviaSostituzione">
			<soap:operation soapAction="inviaSostituzione"/>
			<wsdl:input><soap:body use="literal"/></wsdl:input>
		</wsdl:operation>
		<wsdl:operation name="inviaCancellazione">
			<soap:operation soapAction="inviaCancellazione"/>
			<wsdl:input><soap:body use="literal"/></wsdl:input>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="InviaDatiDispositiviMediciService">
		<wsdl:port name="InviaDatiDispositiviMedici" binding="tns:InviaDatiDispositiviMedici">
			<soap:address
				location="http://carttestnal.rete.toscana.it/DES/services/InviaDatiDispositiviMedici" />
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>


4.2. WSDL Accordo di servizio parte comune - Invio Esito
------------------------------------------------------------------
In questa sezione e' riportato il documento WSDL che definisce l'interfaccia 
del servizio "InviaEsito". 
Il servizio permette ad ogni soggetto sottoscrittore di restituire l'esito della ricezione ed elaborazione degli eventi relativi alla Comunicazione dei Dispositivi Medici Erogati Dalle Strutture.

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:tns="http://regione.toscana.it/sis/rfc/des"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	name="InviaEsito" targetNamespace="http://regione.toscana.it/sis/rfc/des"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
	
	<wsdl:types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
		    xmlns:tns="http://regione.toscana.it/sis/rfc/des"
			targetNamespace="http://regione.toscana.it/sis/rfc/des">
			
			<xsd:include schemaLocation="Acknowledge.xsd" />
		</xsd:schema>
	</wsdl:types>
	<wsdl:message name="inviaEsitoRequest">
		<wsdl:part name="esito" element="tns:inviaEsito"></wsdl:part>
	</wsdl:message>
	
	<wsdl:portType name="InviaEsito">
		<wsdl:operation name="inviaEsito">
			<wsdl:input message="tns:inviaEsitoRequest"></wsdl:input>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="InviaEsitoBinding" type="tns:InviaEsito">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="inviaEsito">
			<soap:operation soapAction="inviaEsito"/>
			<wsdl:input><soap:body use="literal"/></wsdl:input>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="InviaEsitoService">
		<wsdl:port name="InviaEsito" binding="tns:InviaEsitoBinding">
			<soap:address
				location="http://carttestnal.rete.toscana.it/DES/services/InviaEsito" />
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>


5. Bibliografia
=================================================
[1] Allegato DGRT DES del 27/04/2009


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

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

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

[5] "RFC Applicativo e.Toscana n.17
http://web.rete.toscana.it/eCompliance/portale/mostraRFC?idRev=55&idRfc=17

