e.Toscana Compliance 
Request for Comments: RFC-RF-001
Del: 03/06/2008 
Categoria: Applicativa
Destinatari: Regione Toscana, Aziende Sanitarie ed Ospedaliere, Comuni, Amministrazioni locali, Associazioni

	Carta Sanitaria della Regione Toscana
	
Indice
======

1. Contesto di riferimento	
2. Analisi 
  2.1 Use cases
    2.1.1 Nuova prenotazione
    2.1.2 Conferma erogazione
    2.1.3 Annullamento prenotazione
  2.2 Eventi
    2.2.1 Nuova prenotazione
    2.2.2 Conferma erogazione
    2.2.3 Annullamento prenotazione
3. Schemi XSD
  3.1 XSD Tipi Base
  3.2 XSD Nuova prenotazione
  3.3 XSD Conferma erogazione
  3.4 XSD Annullamento prenotazione
4. Bibliografia

1.Contesto di riferimento
=========================
Questo RFC è la specifica dell'RFC N. RFC-AUSL8-001 riguardante gli eventi generati in 
ambiente sanitario, specifico dell'ambito prenotazioni su agende ambulatoriali 
ospedaliere riferite esplicitamente a pazienti degenti. 
 
2. Analisi
==========
Gli eventi generati in questo ambito prendono spunto dai Casi d'Uso individuati 
di seguito.

2.1 Use cases
=============

2.1.1 Nuova prenotazione
========================
Un reparto effettua una prenotazione ad un ambulatorio/servizio ospedaliero per conto di 
un proprio ricoverato di una o più prestazioni specialistiche.

2.1.2 Conferma erogazione
=========================
Il personale dell'ambulatorio/servizio ospedaliero il giorno dell'appuntamento verifica
la presenza del paziente prenotato e in caso positivo, in seguito all'esecuzione
della/e prestazione/i notifica l'avvenuta erogazione.

2.1.3 Annullamento prenotazione
===============================
Il reparto che originariamente ha effettuato una prenotazione ad un ambulatorio/servizio 
ospedaliero o direttamente il personale dell'ambulatorio/servizio stesso annullano la 
prenotazione in seguito all'indisponibilità del paziente a presentarsi 


2.2 Eventi
==========
In corrispondenza di ciascun Use Case sopra descritto, vengono qui definiti gli 
eventi opportuni, specificando la definizione generale data in [1].

2.2.1 Nuova prenotazione
========================
Il servizio interessato genera un evento con tali specifiche:
Livello:                  1
Origine/RFC ref:          RFC-RF-001
Origine/Numero evento:    0001
Ordinamento temporale:    B
Contenuto:                Amministrativo
Stato/Percentuale:        0
Dettaglio:                secondo le schema rfc_agende_ev_0001.xsd

2.2.2 Conferma erogazione
=========================
Livello:                  1
Origine/RFC ref:          RFC-RF-001
Origine/Numero evento:    0002
Ordinamento temporale:    E
Contenuto:                Amministrativo
Stato/Percentuale:        100
Dettaglio:                secondo le schema rfc_agende_ev_0002.xsd

2.2.3 Annullamento prenotazione
===============================
Livello:                  1
Origine/RFC ref:          RFC-RF-001
Origine/Numero evento:    0003
Ordinamento temporale:    E
Contenuto:                Amministrativo
Stato/Percentuale:        100
Dettaglio:                secondo le schema rfc_agende_ev_0003.xsd

3. Schemi XSD
=============
Vengono qui riportati gli schemi XSD introdotti nei paragrafi precedenti.

3.1 XSD Tipi Base - rfc_agende_ev.xsd
=====================================

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.erreeffe.it/schema/rfc_agende_ev" targetNamespace="http://www.erreeffe.it/schema/rfc_agende_ev" elementFormDefault="qualified">
	<xsd:complexType name="struttura">
		<xsd:annotation>
			<xsd:documentation>Codice HSP11 e HSP11bis</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tns:valoreCodificato">
				<xsd:sequence>
					<xsd:element name="subStruttura" type="tns:valoreCodificato"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:simpleType name="estInt">
		<xsd:annotation>
			<xsd:documentation>Indica se il paziente è ricoverato (I) o no (E)</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:token">
			<xsd:enumeration value="E"/>
			<xsd:enumeration value="I"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="numeroRicetta">
		<xsd:annotation>
			<xsd:documentation>Numero della ricetta SSN o interna</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:integer"/>
	</xsd:simpleType>
	<xsd:simpleType name="data">
		<xsd:annotation>
			<xsd:documentation>Il formato e' quello ISO 8601</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:token">
			<xsd:pattern value="\d{4}-\d{2}-\d{2}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ora">
		<xsd:annotation>
			<xsd:documentation>Il formato e' quello ISO 8601</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:token">
			<xsd:pattern value="\d{2}:\d{2}:\d{2}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="dataOra">
		<xsd:annotation>
			<xsd:documentation>Il formato e' quello ISO 8601 senza offset GMT</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:token">
			<xsd:pattern value="\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="valoreCodificato">
		<xsd:sequence>
			<xsd:element name="Codice" type="xsd:string"/>
			<xsd:element name="Descrizione" type="xsd:string" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="sesso">
		<xsd:annotation>
			<xsd:documentation>Indica il sesso di un paziente M o F</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:token">
			<xsd:enumeration value="M"/>
			<xsd:enumeration value="F"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="codUsl">
		<xsd:annotation>
			<xsd:documentation/>
		</xsd:annotation>
		<xsd:restriction base="xsd:token">
			<xsd:pattern value="\d{3}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="codRegione">
		<xsd:annotation>
			<xsd:documentation/>
		</xsd:annotation>
		<xsd:restriction base="xsd:token">
			<xsd:pattern value="\d{3}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="usl">
		<xsd:sequence>
			<xsd:element name="codice" type="tns:codUsl"/>
			<xsd:element name="descrizione" type="xsd:string" minOccurs="0"/>
			<xsd:element name="codregione" type="tns:codRegione"/>
			<xsd:element name="regione" type="xsd:string" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="accesso">
		<xsd:sequence>
			<xsd:element name="CodiceAziendale" type="tns:valoreCodificato"/>
			<xsd:element name="CodiceReginale" type="tns:valoreCodificato"/>
			<xsd:element name="NumeroRicetta" type="tns:numeroRicetta" nillable="true" minOccurs="0"/>
			<xsd:element name="TipoProponente" type="tns:valoreCodificato" nillable="true" minOccurs="0"/>
			<xsd:element name="EstInt" type="tns:estInt"/>
			<xsd:element name="Finalita" type="tns:valoreCodificato" nillable="true" minOccurs="0"/>
			<xsd:element name="Proponente" type="xsd:string" nillable="true" minOccurs="0"/>
			<xsd:element name="USL" type="tns:usl" nillable="false"/>
			<xsd:element name="Reparto" type="tns:valoreCodificato" nillable="true" minOccurs="0"/>
			<xsd:element name="Disciplina" type="tns:valoreCodificato" nillable="true" minOccurs="0"/>
			<xsd:element name="CentroCosto" type="tns:valoreCodificato" nillable="true" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Prenotazione">
		<xsd:sequence>
			<xsd:element name="Numero" type="xsd:string"/>
			<xsd:element name="DataContatto" type="tns:data"/>
			<xsd:element name="DataAppuntamento" type="tns:dataOra"/>
			<xsd:element name="PuntoErogante" type="tns:Agenda"/>
			<xsd:element name="ElencoPrestazioni" type="tns:Prestazione" maxOccurs="unbounded"/>
			<xsd:element name="Provenienza" type="tns:accesso"/>
			<xsd:element name="Importo" type="xsd:decimal" default="0" nillable="true"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Agenda">
		<xsd:sequence>
			<xsd:element name="Nome" type="xsd:string"/>
			<xsd:element name="Indirizzo" type="xsd:string"/>
			<xsd:element name="Indirizzo2" type="xsd:string"/>
			<xsd:element name="Telefono" type="xsd:string"/>
			<xsd:element name="Stanza" type="xsd:string"/>
			<xsd:element name="Erogatore" type="xsd:string"/>
			<xsd:element name="CodiceStruttura" type="tns:struttura"/>
			<xsd:element name="CodiceTipoPresidio" type="tns:valoreCodificato"/>
			<xsd:element name="CodiceReparto" type="tns:valoreCodificato"/>
			<xsd:element name="CodiceDisciplina" type="tns:valoreCodificato"/>
			<xsd:element name="CentroCosto" type="tns:valoreCodificato"/>
			<xsd:element name="Zona" type="tns:valoreCodificato"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Prestazione">
		<xsd:sequence>
			<xsd:element name="CodiceRegionale" type="xsd:string"/>
			<xsd:element name="Descrizione" type="xsd:string"/>
			<xsd:element name="CodiceAziendale" type="xsd:string" nillable="true"/>
			<xsd:element name="Quantita" type="xsd:nonNegativeInteger" default="1" nillable="true"/>
			<xsd:element name="ImportoUnitario" type="xsd:decimal" default="0" nillable="true"/>
		</xsd:sequence>
	</xsd:complexType>

</xsd:schema>



3.2 XSD Nuova prenotazione - rfc_agende_ev_0001.xsd
===================================================

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.erreeffe.it/schema/rfc_agende_ev" targetNamespace="http://www.erreeffe.it/schema/rfc_agende_ev" elementFormDefault="qualified">
	<xsd:include schemaLocation="rfc_agende_ev.xsd" id="rfc_agende_ev"/>
	<xsd:complexType name="AgendeEv0001">
		<xsd:sequence>
			<xsd:element name="PrenotazioniPrenotate" type="tns:Prenotazione" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
</xsd:schema>


3.3 XSD Conferma erogazione - rfc_agende_ev_0002.xsd
====================================================

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.erreeffe.it/schema/rfc_agende_ev" targetNamespace="http://www.erreeffe.it/schema/rfc_agende_ev" elementFormDefault="qualified">
	<xsd:include schemaLocation="rfc_agende_ev.xsd" id="rfc_agende_ev"/>
	<xsd:complexType name="AgendeEv0002">
		<xsd:sequence>
			<xsd:element name="PrenotazioniErogate" type="tns:Prenotazione" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
</xsd:schema>

3.4 XSD Annullamento prenotazione - rfc_agende_ev_0003.xsd
==========================================================

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.erreeffe.it/schema/rfc_agende_ev" targetNamespace="http://www.erreeffe.it/schema/rfc_agende_ev" elementFormDefault="qualified">
    <xsd:include schemaLocation="rfc_agende_ev.xsd" id="rfc_agende_ev"/>	
	<xsd:complexType name="AgendeEv0003">
		<xsd:sequence>
			<xsd:element name="DataAnnullamento" type="tns:dataOra" nillable="false"/>
			<xsd:element name="Motivo" type="xsd:string"/>
			<xsd:element name="NumeroPrenotazione" type="xsd:string" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
</xsd:schema>


4. Bibliografia
===============
[1]RFC_RF00 - Evento generato in ambiente sanitario
[2]http://www.cnipa.gov.it/site/_files/Architetture_applicative_r07.pdf
[3]W3C XML Schema - www.w3.org/XML/Schema
