Ing. Giacomo Giustozzi Empoli, 11 Maggio 2010

Slides:



Advertisements
Presentazioni simili
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Advertisements

Valutazione d’Istituto A.S. 2008/2009
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Una Introduzione alle Basi di Dati
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Basi di Dati prof. A. Longheu
Lez. 3 - Gli Indici di VARIABILITA’
Associazione Nazionale Medici Cardiologi Ospedalieri
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Analisi Bivariata e Test Statistici
Canale A. Prof.Ciapetti AA2003/04
Corso di Informatica (Basi di Dati)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Corso di Informatica (Basi di Dati)
1 Anatomia di una pagina Un insieme di pagine web hanno generalmente una parte invariante (o poco): header, navigazione, footer una parte variabile: contenuti.
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
ADVISORY Metodologie per il perseguimento della continuità dellassistenza nel mondo degli anziani FORUM P.A. Roma, 10 maggio 2005 Marco Campari Membro.
Già primario f.f. U.O. di neurochirurgia
Basi di dati Università Degli Studi Parthenope di Napoli
MP/RU 1 Dicembre 2011 ALLEGATO TECNICO Evoluzioni organizzative: organico a tendere - ricollocazioni - Orari TSC.
Cos’è un problema?.
Gli italiani e il marketing di relazione: promozioni, direct marketing, digital marketing UNA RICERCA QUANTITATIVA SVOLTA DA ASTRA RICERCHE PER ASSOCOMUNICAZIONE.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
DBMS ( Database Management System)
Basi di dati Claudia Raibulet
Introduzione alle Basi di Dati. Overview Informazione = contenuto + struttura Informazione non strutturata Molto contenuto, poca struttura Un romanzo.
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Nuove frontiere della medicina trasfusionale: il contributo Avis
Implementare un modello di dati
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
INFORMATICA Corso Base Modulo G: I DataBase  Access.
Array a un dimensione : vettori
DAGLI ARCHIVI AI DATABASE
ISTITUTO COMPRENSIVO “G. BATTAGLINI” MARTINA FRANCA (TA)
Lo sviluppo del progetto informatico
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
MODELLO LOGICO DEI DATI
Introduzione a Oracle 9i
Un trucchetto di Moltiplicazione per il calcolo mentale
1 Ly-LAB Sistema di gestione dei dati analitici di laboratorio.
Introduzione alle basi di dati
Esempi risolti mediante immagini (e con excel)
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
DATABASE Introduzione
ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica”
I DATABASE.
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
IV D Mercurio DB Lezione 2
Dati e DBMS DBMS relazionali SQL Progettazione di un DBMS Normalizzazione Programma del Corso di Basi di Dati.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione Programma del Corso.
Vincoli interrelazionali
Approfondimenti SQL.
Le basi di dati.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Transcript della presentazione:

Ing. Giacomo Giustozzi Empoli, 11 Maggio 2010 MASTER DI I LIVELLO IN: “Scienze tecniche applicate alla gestione dei sistemi informatici in diagnostica per immagini” MED/50 Gestione della risorsa digitale nei percorsi diagnostici Ing. Giacomo Giustozzi Empoli, 11 Maggio 2010

Concetti di Informatica Medica: Definizioni ed introduzione AGENDA – Parte Prima Concetti di Informatica Medica: Definizioni ed introduzione Dati, Informazioni e conoscenza in medicina Nomenclatura medica: il problema della codifica Sistemi di classificazione in medicina (Nom. SIRM, ICD9-CM SNOMED ecc.)

Record Medico e Patient Data Card: Libretto sanitario individuale AGENDA – Parte Seconda Record Medico e Patient Data Card: Libretto sanitario individuale Cartelle cliniche, schede ambulatoriali Multimedialità del record medico. Tecnologie di Smartcard

Concetti di Informatica medica INTRODUZIONE

DEFINIZIONI - Acronimi HIS: Hospital Information System SIO: Sistema Informativo Ospedaliero LIS: Laboratory Information System RIS: Radiology Information System CIS: Cardiology Information System EPR: Electronic Patient Record ADT: Sistema per Accettazione Dimissione Trasferimento paz. Interni CUP: Centro Unificato Prenotazione (Cassa) ….

Informatica Medica - Introduzione Numerose sono le definizioni di Informatica Medica reperibili in letteratura a partire dagli anni '70; alcune di esse sono riportate di seguito. Possono essere un po' diversi i punti di vista, ma elemento centrale resta sempre e comunque l'informazione che deriva dal singolo paziente/cittadino. Questa deve essere acquisita, trattata, aggregata e comunicata dove quando e come necessario al fine di risolvere un problema.

Informatica Medica - Introduzione Le tipologie di informazione sono svariate e coprono un ambito che va dal livello molecolare alla macroeconomia, come svariati sono i problemi da risolvere e che vanno da quello della singola malattia, alla cura del paziente, al controllo della salute, alla organizzazione, alla definizione delle politiche sanitarie e così via.

Informatica Medica - Definizioni Morris F. Collen, 1977 Medical informatics is the application of computer technology to all fields of medicine - medical care, medical teaching, and medical research. Preliminary announcement for the Third World Conference on Medical Informatics, Medinfo 80, 1977.

Informatica Medica - Definizioni M.S. Blois and Edward H. Shortliffe, 1990 Medical informatics is the rapidly developing scientific field that deals with the storage, retrieval, and optimal use of biomedical information, data, and knowledge for problem solving and decision making.

Informatica Medica - Definizioni British Medical Informatics Society ... the understanding, skills, and tools that enable the sharing and use of information to deliver healthcare and promote health. ... the name of an academic discipline developed and pursued over the past decades by a world-wide scientific community engaged in advancing and teaching knowledge about the application of information and technologies to healthcare - the place where health, information and computer sciences, psychology, epidemiology, and engineering intersect

HIS – SIO : Sistema Informativo Ospedaliero Sistema Informativo Ospedaliero (SIO) Area Direzionale datawarehouse, controllo di gestione… Area Amministrativa contabilità, acquisti, personale, magazzini… Area Sanitaria ricoveri, ambulatoriale, laboratorio… Area Servizi messaging, intranet, protocollo

HIS – SIO : AREA SANITARIA Ambulatori Gestione appuntamenti documentazione … Radiologia Laboratorio Cardiologia Anatomia Patologica … Servizi/Unità Funzionali Reparti di Degenza Gestione Reparto Gestione Ordini e Risultati (OERR) Cartella Clinica Cartella Infermieristica …

Dati in medicina DB e SQL

NOZIONI PRELIMINARI BASI DI DATI: la collezione dei dati logicamente correlati tra loro. DATI: fatti conosciuti memorizzabili e con significato implicito. DATO - INFORMAZIONE: solo per alcuni utenti, un dato può avere diverse informazioni per utenti diversi. Organizzazione in: entità (tupla o record) oggetto rappresentato nella base di dati da proprietà (attributi o campi) che descrivono uno o piu’ aspetti di una entità, i valori assoluti dai dati stessi sono detti istanze.

ESEMPIO(1) Si consideri l’elenco dei pazienti che hanno effettuato una visita medica. Ogni paziente costituisce un’entità (RECORD), ognuno dei suoi dati ( Nome, Cognome….) attributi di tale entità. Una caratteristica importante dell’attributo è il suo tipo. Esempi di tipo sono: Intero (altezza di una persona in cm) Reale (peso in Kg) Stringa (cognome e nome) Data (giorno della visita)

ESEMPIO (2) Cognome Nome Data di Nascita Luogo di Nascita Rossi Andrea 09/07/1946 Milano Bianchi Maria 12/09/1966 Parma Verdi Paola 11/11/1947 Genova Tabella contenente i dati identificativi di pazienti.

DBMS Si definisce DBMS un sistema di gestione basi dati, ossia una collezione di programmi che consente di gestire le basi dati informatiche. E’uno strumento Software che facilita il processo di definizione, costruzione e manipolazione di basi di dati relativi a differenti applicazioni. Il Database è la singola unità che costituisce tale struttura e i programmi sono gestori della base dati.

Attività del processo di definizione di una base di dati Una tra le prime, è quella di individuare i tipi di dati che devono essere memorizzati nella base dati; la costruzione di una base di dati equivale alla memorizzazione di tali dati su qualsiasi supporto che viene controllato dal DBMS. Il processo di manipolazione di una base di dati consiste in diverse funzioni, quali l’interrogazione della base di dati per trovare alcune informazioni, l’aggiornamento della base di dati per riflettere i cambiamenti osservati nella realtà che la base di dati vuole descrivere, e la generazione di tabulati costruiti sui dati memorizzati. Infine, un DBMS è caratterizzato dalle proprietà che sono in seguito illustrate.

Gestione di grandi moli di dati Un DBMS è in grado di gestire una grande quantità di dati: si consideri una base di dati riguardante i pazienti di una divisione ospedaliera, dove quindi devono essere tenuti in memoria tutti i dati clinici ed amministrativi dei pazienti precedentemente o attualmente ricoverati, oppure alla base di dati ed immagini di una divisione radiologica. In entrambi questi casi, si ha a che fare con una grande quantità di moli , che si traducono in centinaia o migliaia di Mbyte. Il DBMS deve essere quindi in grado di gestire dati che risiedono nella memoria secondaria.

Gestione della Persistenza I dati di una base di dati sono persistenti: hanno un tempo di vita che supera il tempo di esecuzione delle applicazioni che li utilizzano. Questo li rende molto differenti dai dati che vengono gestiti in memoria principale da un programma in esecuzione; la vita di tali dati, infatti, termina con la fine dell’esecuzione del programma.

Condivisione dei dati Ad una base di dati, normalmente, vi accedono differenti tipi di utenti. Per una base di dati clinici, per esempio, si possono distinguere le seguenti categorie di utenti: I Medici Il personale medico e paramedico Il personale tecnico Il responsabile del Dipartimento Il personale amministrativo Il responsabile del sistema informativo del Dipartimento

Condivisione dei dati (2) Ogni utente accederà alla base di dati con finalità e modalità diverse, a seconda della categoria a cui appartiene. Il DBMS deve essere in grado di gestire l’accesso di diversi utenti agli stessi dati. Deve quindi, permettere azioni consentite sui dati agli utenti autorizzati ad accedervi. Il DBMS deve evitare anche che due Medici contemporaneamente accedano e modifichino la terapia dello stesso paziente (controllo di concorrenza); il personale paramedico potrà leggere i dati relative alle terapie, ma solo il Medico potrà, oltre a leggerli, apportare modifiche (proprietà del dato)

Controllo della ridondanza Dato che diverse categorie hanno la possibilità d’accesso alla stessa base di dati, il DBMS ha il compito di evitare la ridondanza dei dati: i dati anagrafici del paziente, per esempio, devono essere memorizzati una volta sola, anche se visti da tutte le categorie di utenti. In questo modo, le inconsistenze dei dati vengono evitate. Se sono presenti errori nei dati relativi ad un paziente, è necessario apportare correzioni una volta sola (si evitano quindi anche duplicazioni dello stesso dato relativo ad un paziente).

Operazioni di Salvataggio e di Ripristino (Backup and recovery) Un DBMS fornisce gli strumenti atti a conservare integro il contenuto di una base di dati di fronte a guasti o malfunzionamenti di carattere hardware e/o software. Le operazioni di salvataggio e di ripristino permettono di riportare la base di dati all’ultimo stato consistente, nel caso in cui un mal funzionamento capiti, per esempio, durante una operazione complessa. In questo modo, il DBMS garantisce l’affidabilità del sistema.

Privatezza dei Dati Il DBMS garantisce il corretto accesso ad una base di dati a differenti utenti. Il personale paramedico potrà leggere la terapia assegnata ad un determinato paziente, ma solo il Medico sarà autorizzato, oltre che a leggerla, ad apportarvi modifiche, se necessario. Quindi il DBMS deve essere in grado di assicurare che i dati sensibili siano visibili solo dalle persone autorizzate ed anche i cambiamenti su essi possano essere fatti solo da persone esplicitamente autorizzate.

Il modello relazionale dei dati Si definisce Modello relazionale dei dati la base di dati rappresentata da una collezione di tabelle collegate fra loro. Ogni tabella corrisponde al concetto matematico di relazione, o più precisamente, a un concetto ad esso abbastanza simile. Il modello si dimostra di facile comprensione, grazie alla visione tabellare e grazie ad altri vantaggi, quali l’esistenza di numerosi strumenti (tools) per la gestione di basi di dati, l’esistenza di potenti linguaggi di interrogazione e la completa e ricca trattazione teorica. Sono quindi state definite alcune caratteristiche obbligatorie che un DBMS relazionale deve possedere.

Relazioni, Tuple, Attributi I concetti fondamentali del Modello relazionale dei dati si basano sul concetto di relazione, tupla e attributi. Anche se non del tutto uguali, sono usati indifferentemente i termini: relazione o tabella, attributo o colonna, tupla o riga. Analizziamo, per cominciare, l’ analogia tra tabella e relazione. Ogni tabella è composta da righe e colonne. Le righe contengono informazioni differenti relative alla stessa entità e rappresentano tuple (tuple). Le colonne contengono la stessa informazione relativa a differenti entità (o tuple) e rappresentano attributi (attribute). Una relazione è dunque, un insieme di tuple, composte a loro volta da valori di attributi.

Proprietà di una relazione E’ importante ricordare che: Non è stabilito alcun criterio di ordinamento fra le tuple di una relazione; Non possono esistere due tuple identiche nella stessa relazione, dato che non possono esistere elementi identici nello stesso insieme; Non esiste ordinamento fra gli attributi di una relazione. Anche nel Modello relazionale dei dati, sono presenti i concetti di schema e di istanza (in questo caso, schema di relazione ed istanza di relazione).

Esempio di Tabella relazionale PAZIENTE Nome Cognome Data_Vis. Terapia Carlo Bianchi 12-11-87 Farmaco_1 Andrea Rossi 19-04-87 Farmaco_2 Monica Verdi 21-09-88 Farmaco_3 Simona Fiori 09-05-88 Farmaco_4 La prima riga della Tabella, illustra lo schema della relazione, attraverso l’indicazione del nome della relazione (PAZIENTE) e dei nomi degli attributi (Nome, Cognome, Data_Vis., Terapia). Le tre righe successive formano l’istanza della relazione. Lo schema di una relazione, oltre che in forma grafica, si può indicare come segue: Nome_Relazione(Attributo_1, Attributo_2,., Attributo_n) e quindi: PAZIENTE(Nome, Cognome, Data_Vis., Terapia). Ad ogni attributo è associato un dominio, ossia l’insieme dei valori che l’attributo stesso può assumere. Ogni attributo è atomico, non può essere scomposto in parti.

IL LINGUAGGIO SQL Per le basi di dati relazionali, è stato definito e ampiamente utilizzato il linguaggio SQL (Structured Query Language), ossia un linguaggio di interrogazione indipendente dal particolare sistema adottato. Tale linguaggio permette all’utente di interagire in modo omogeneo con differenti sistemi fondati sul modello relazionale. SQL è un linguaggio dichiarativo : permette di specificare le caratteristiche del risultato che si vuole ottenere, piuttosto che le operazione che servono per ottenerlo.

CARATTERISTICHE DI SQL Le parole chiave del linguaggio SQL saranno scritte nel seguito di questo capitolo con un font caratteristico; i termini variabili saranno in corsivo; le parentesi quadre indicano che il termine al loro interno è opzionale; le parentesi graffe indicano che il termine al loro interno può comparire un numero arbitrario di volte; le parentesi angolate “” possono racchiudere un insieme di termini in alternativa; le barre verticali “|” indicano che deve essere scelto uno fra i termini separati dalle barre stesse.

DEFINIZIONE DEI DATI La definizione dei dati in SQL consiste nella definizione di uno schema e di tutte le componenti dello schema scelto. La definizione di uno schema è ottenuta attraverso l’istruzione SQL create schema ogni schema è composto da più oggetti: definizione di domini, tabelle, indici, asserzioni, viste e privilegi.

Create table Paziente_CardioChirurgia ( Cognome varchar(20) not null, Nome varchar(20) not null, Luogo_di_n varchar(30) not null, Data_di_n date not null, HID char(10) not null, Istante_int timestamp, Dur_int interval hour to second Freq_card_med decimal(5,2) , Osped_prov varchar(30), Num_prec_int integer )

VINCOLI Nella definizione dello schema di una tabella è possibile distinguere due diversi tipi di categorie di vincoli: vincoli intrarelazionali e vincoli interrelazionali. I vincoli intrarelazionali sono definiti rispetto ai valori assunti dagli attributi all’interno della tabella considerata. I vincoli intrarelazionali sono not null, unique e primary key. Il vincolo not null permette di vincolare una certa colonna a non avere valori indefiniti: nella tabella Paziente_CardioChirurgia, definita nella pagina precedente, non è possibile lasciare non definito, ad esempio, il cognome del Paziente. Il vincolo unique si applica ad una o più colonne e permette di imporre che i valori delle colonne specificate siano unici nella tabella (a parte il valore null): non possono esistere due o più righe aventi la stessa combinazione di valori sulle colonne considerate.

ANCORA SUI VINCOLI Il vincolo di primary key può essere specificato una sola volta per ogni tabella, a differenza di quanto accade per i vincoli not null e unique. Attraverso questo vincolo, viene specificata la Chiave Primaria della tabella; la chiave primaria è l’identificatore che le applicazioni useranno prevalentemente per accedere alle righe della tabella. Le colonne specificate nel vincolo primary key non possono contenere valori nulli né ripetitivi. Quindi il vincolo primary key equivale all’applicazione sullo stesso campo dei vincoli not null e unique.

INTERROGAZIONE DEI DATI SQL mette a disposizione il comando select per effettuare interrogazioni su una base di dati. Le interrogazioni in SQL sono espresse in forma dichiarativa: sono definite le caratteristiche del risultato che si vuole ottenere con l’interrogazione, e non le operazioni che devono essere effettuate sui dati (come detto precedentemente).

INTERROGAZIONI ELEMENTARI IN SQL La sintassi del comando select è: select Espressione_su_colonna[[as]Nuovo_nome_colonna] {, Espressione_su_colonna [[as] Nuovo_nome_colonna]} from Nome_tabella [[as] alias ] {, Nome_tabella [[as] alias ]} [where Condizione] Attraverso tale comando, vengono considerate tra le righe ottenute dal prodotto cartesiano delle tabelle elencate dalla clausola from, quelle righe che soddisfano la condizione espressa nella clausola where; su tali righe vengono valutate le espressioni sulle colonne indicate sulla clausola select.

INTERROGAZIONI ELEMENTARI IN SQL(2) Nella maggior parte dei casi l’espressione consiste nel semplice nome della colonna: questo significa che nella tabella risultato compariranno , per le righe selezionate, solo le colonne indicare nella clausola select ed eventualmente rinominate con il Nome_nuova_colonna che può essere presente immediatamente in seguito all’indicazione della colonna. Alle tabelle può essere associato nella clausola from un alias, ovvero un identificatore della tabella stessa: tale identificatore permette di riferirsi a quella tabella in modo rapido e di considerare , in interrogazioni più complesse, più istanze della medesima tabella.

ESEMPIO Si consideri la tabella rappresentata in fig. 5.1; si immagini di dover conoscere cognome e nome dei pazienti maschi considerati nella base dati. Anagrafica(Cognome,Nome,Data_di_n,Sesso) Bianchi Luca 1962-05-08 M Maschera Marina 1965-12-02 F Strozzi Giulia 1964-02-11 Aldobrandi Enrico 1960-02-29 Tab. 5.1 La seguente interrogazione permette di soddisfare alla necessità descritta: Select Cognome, Nome From Anagrafica Where (Sesso=“M” or Sesso=“m”) (Cognome, Nome) Bianchi Luca Aldobrandi Enrico

LA CLAUSOLA SELECT Nella clausola select vengono considerati i componenti dello schema della tabella risultante. Nella clausola select può anche essere indicato unicamente il carattere speciale (*) che sta a rappresentare la scelta di tutte le colonne delle tabelle indicate nella clausola from. Si consideri la tabella 5.1; al fine di avere dati relativi ai pazienti il cui Cognome è ‘Bianchi’, viene formulata la seguente interrogazione: select * from Anagrafica where Cognome = ‘Bianchi’ Il risultato sarà: Cognome,Nome,Data_di_n,Sesso Bianchi Luca 1962-05-08 M

LA CLAUSOLA SELECT(2) Nella clausola select può anche essere indicata un’espressione sugli attributi delle tabelle indicate in from. Si consideri di voler avere cognome, nome e anno di nascita dei pazienti considerati nella tabella illustrata in figura 5.1. A tale scopo, l’interrogazione sarà: select Cognome, Nome, year(Data_di_n)as Anno_Nasc from Anagrafica Il risultato sarà riportato in tabella 5.4: (Cognome, Nome, Anno_nasc) Bianchi Luca 1962 Maschera Marina 1965 Strozzi Giulia 1964 Aldobrandi Enrico 1960

LA CLAUSOLA FROM Nella clausola from vengono elencate tutte le tabelle che devono essere considerate nell’interrogazione. In questa clausola vanno elencate anche le tabelle coinvolte solo nella verifica della condizione espressa in where, e non solo quelle contenenti le colonne indicate nella clausola select. Se nella clausola from compare più di una tabella, viene effettuato un prodotto cartesiano sulle tabelle indicate. Nel caso, quindi, di join, i legami fra i valori delle colonne di differenti tabelle vanno definiti esplicitamente nella clausola where. Nella clausola from un alias può essere associato ad una tabella al fine di riferirsi alla tabella in modo rapido, favorendo la sinteticità e la chiarezza dell’interrogazione.

Terapia(ID%, Nome%,Inizio_ter,Fine_ter) Si considerino le tabelle riportate in figura 5.5 relative ai dati anagrafici e ai trattamenti terapeutici dei pazienti. Paziente(ID%, Cognome, Nome, Data_di_n) 1 Bianchi Luca 08-05-62 2 Maschera Marina 02-12-65 3 Strozzi Giulia 11-02-64 4 Aldobrandi Enrico 29-02-60 Terapia(ID%, Nome%,Inizio_ter,Fine_ter) 1 Beta-bloccante 1990-05-09 1991-07-10 2 Aspirina 1991-03-21 1991-05-31 3 Nitroglicerina 1995-01-01 1996-03-01 paracetamolo 1990-11-30 1992-11-23 Vediamo come viene definita la seguente interrogazione per rappresentare tutte le terapie associate ad ogni paziente:

select Cognome, P.Nome as Nome, Data_di_n, T.Nome as Terapia from Paziente P, Terapia T where P.ID = T.ID Il risultato dell’interrogazione sarà la seguente tabella 5.6: (Cognome, Nome, Data_di_n, Terapia) Bianchi Luca 08-05-62 Beta-bloccante Maschera Marina 02-12-65 Aspirina Nitroglicerina Aldobrandi Enrico 29-02-60 paracetamolo Nel formulare l’interrogazione 5.6, sono stati usati (P e T)per le tabelle Paziente e Terapia; oltre a questo, sia nella clausola select, sia nella clausola where, è stata usata la notazione dell’operatore punto (dot notation), notazione composta in accordo con la sintassi Indicatore_di_tabella.Nome_colonna, dove il primo può essere il nome di una tabella o il suo alias, e il secondo consiste nel nome di una colonna della tabella considerata.

LA CLAUSOLA WHERE Nella clausola where viene specificata la condizione in base alla quale vengono composte le righe che compongono la tabella risultato dell’interrogazione. La condizione viene composta attraverso la combinazione di predicati semplici con i connettivi logici and, or e not. I predicati semplici consistono nel confronto, attraverso gli usuali operatori relazionali =, <>,<, >,,  , tra un’espressione fondata sui valori di una colonna e di un’altra espressione o un valore costante. Se più connettivi sono presenti nella clausola where, il connettivo not viene valutato per primo; non essendo definita una precedenza nella valutazione dei connettivi and e or.

ESEMPIO Considerando le tabelle riportate in figura 5.6; si voglia costruire l’interrogazione che permetta di avere cognome e nome dei pazienti trattati con ‘aspirina’. select Cognome, P.Nome as Nome from Paziente P, Terapia T where P.ID = T.ID and T.nome = ‘aspirina’ L’interrogazione così definita permette di ottenere il seguente risultato: (Cognome,Nome) Maschera Marina Analogamente per quanto riguarda gli esempi riportati nelle seguenti pagine.

ESEMPIO Si considerino ancora le tabelle riportate in figura 5.6, si consideri ora l’interrogazione che permette di ottenere Cognome, Nome e terapia per quei pazienti la cui terapia è finita prima dell’anno 1992: select Cognome, P.Nome as Nome, Data_di_n, T.Nome as Terapia from Paziente P, Terapia T where P.ID = T.ID and year(Fine_ter) < 1992 Il risultato dell’interrogazione è riportato in tabella 5.8: Cognome, Nome, Data_di_n, Terapia Bianchi Luca 08-05-62 Beta-bloccante Maschera Marina 02-12-65 Aspirina Fig. 5.8

ESEMPIO Facendo riferimento alle tabelle riportate in figura 5.6, si vuole ottenere Nome, Cognome dei pazienti che hanno avuto terapie con inizio nell’anno 1995 o nell’anno 1990, senza considerare in quest’ultimo caso i pazienti nati prima dell’anno 1965. select P.Nome, Cognome from Paziente P, Terapia T where P.ID = T.ID and (year(Inizio_Ter) = 1995 or (year(inizio_Ter) = 1990 and not (year(Data_di_n) < 1965) (Nome, Cognome) Marina Maschera Giulia Strozzi

ESEMPIO Si considerino le tabelle 5.6; si vuole ottenere nome e cognome dei pazienti, senza considerare quelli nati prima dell’anno 1965, che hanno avuto terapie con inizio nell’anno 1995 o nell’anno 1990. select P.nome , Cognome from Paziente P, Terapia T where P.ID = T.ID and not(Data_di_n)< 1965 and (year(Inizio_ter) = 1995 or year(Inizio_ter) = 1990) Il risultato dell’operazione è: (Nome, Cognome) Marina Maschera

DIFFERENZE TRA I DUE ESEMPI La differenza tra le interrogazioni precedentemente viste, è resa esplicitando, dunque, attraverso l’uso delle parentesi l’ordine di valutazione dei connettivi and e or coinvolti nella condizione.

ORDINAMENTO SQL, infine, mette a disposizione la clausola order by, che permette di stabilire un ordinamento sulle righe risultato di un’interrogazione SQL. La sintassi è: Order by Nome_colonna [asc | desc] {, Nome_colonna [asc | desc]} Possono essere specificate colonne il cui dominio abbia definito un ordinamento: le righe vengono ordinate rispetto al valore della prima colonna indicata; sulle righe che hanno valore uguale per tale colonna, viene applicato l’ordinamento rispetto alla seconda colonna specificata; più in generale, le righe vengono ordinate considerando in sequenza tutte le colonne specificate nella clausola. L’ordinamento può essere ascendente(di default) o discendente.

ESEMPIO 5.14 Si voglia ottenere l’elenco ordinato alfabeticamente per cognome dei pazienti considerati nella tabella Paziente, rappresentata in figura 5.6. Select Cognome, Nome From Paziente Order by Cognome Il risultato sarà: (Cognome, Nome) Bianchi Luca Maschera Marina Strozzi Giulia Aldobrandi Enrico Tabella 5.14

NOMENCLATURA MEDICA IL PROBLEMA DELLA CODIFICA

SOMMARIO Nomenclatore SIRM Tariffario Regionale SNOMED Codifiche ICD9 – CM DRG

Nomenclatore SIRM

Generalità SIRM: Tariffario Regionale Nomenclatore CLINICO per la definizione degli esami radiologici Tariffario Regionale Listino ad uso AMMINISTRATIVO per la valutazione del costo di ciascuna prestazione clinica

SIRM - Caratteristiche Suddivisione esami in albero gerarchico: METODICA APPARATO ORGANO ESAME

SIRM - Caratteristiche METODICA: 1: RADIOLOGIA 2: ECOGRAFIA 3: TC 4: RM 5: ANGIOGRAFIA DIAGNOSTICA 6: INTERVENTISTICA

SIRM - Caratteristiche APPARATO: A: CUORE B: APPARATO DIGERENTE C: APPARATO GENITALE FEMMINILE D: APPARATO GENITALE MASCHILE E: MAMMELLA F: COLLO G: OSTEOARTICOLARE E TESS. MOLLI H: APPARATO RESPIRATORIO

SIRM - Caratteristiche ORGANO: Numerazione progressiva No Codifica univoca

SIRM - Caratteristiche ESAME: Numerazione progressiva No Codifica univoca

SIRM - ESEMPI 1 G 5 2 3 4 Rx Colonna Cervicale (2Pr.) Rx Colonna Dorsale (2Pr.) Rx Colonna Lombo Sacrale (2Pr.) Rx Vertebrale Completa (2Pr.) 87.22 87.23 87.24 ?

SIRM - ESEMPI 1 G 5 4 Rx Vertebrale Completa (2Pr.) 87.22 + 87.23 + 87.24

SIRM - Caratteristiche COSTI Costo Personale Medico Tecnico Ausiliario Infermieristico Altri Costi Ammortamento Apparecchiature Spese Generali Pellicole Materiali tipo A

SIRM - Caratteristiche PESI Peso per Costi Personale Peso Per Altri Costi Peso SIRM Esame

SIRM - Caratteristiche MARGINI Tariffa Rimborso SSN Valore COSTO

SIRM - ESEMPI LINK

Strumento indispensabile per il management dell’attività radiologica SIRM - CONCLUSIONI Strumento indispensabile per il management dell’attività radiologica Costi Rimborsi Margini

SIRM - CONCLUSIONI Strumento indispensabile per il confronto delle attività di radiologie diverse Basato su pesi e non su numero esami Rende possibile un confronto omogeneo dell’attività di realtà radiologiche eterogenee !!

Tariffario Regionale

TARIFFARIO REGIONALE Listino ad uso AMMINISTRATIVO per la valutazione del costo di ciascuna prestazione clinica

TARIFFARIO REGIONALE Non specifica esattamente l’esame clinico da eseguire Definisce una tariffa per classi omogenee di esami

TARIFFARIO REGIONALE - Esempi 88.22 RADIOGRAFIA DEL GOMITO E DELL'AVAMBRACCIO Radiografia (2 proiezioni) di: gomito, avambraccio 14,98 31/12/2999 88.23 RADIOGRAFIA DEL POLSO E DELLA MANO Radiografia (2 proiezioni) di: polso, mano, dito della mano 14,2

TARIFFARIO REGIONALE Non specifica esattamente l’esame clinico da eseguire Occorre utilizzare più codici del tariffario per descrivere una singola prestazione clinica (SIRM)

TARIFFARIO REGIONALE - Esempi 87.22 RADIOGRAFIA DELLA COLONNA CERVICALE (2 proiezioni) Esame morfodinamico della colonna cervicale 18,08 87.23 RADIOGRAFIA DELLA COLONNA TORACICA (DORSALE) (2 proiezioni) Esame morfodinamico della colonna dorsale, rachide dorsale per morfometria vertebrale 17,3 87.24 RADIOGRAFIA DELLA COLONNA LOMBOSACRALE (2 proiezioni) Radiografia del rachide lombosacrale o sacrococcigeo, esame morfodinamico della colonna lombosacrale, rachide lombosacrale per morfometria vertebrale

MINISTERIALE - ESEMPI LINK

SNOMED

SNOMED SNOMED International è un organizzazione che annovera tra i suoi membri medici, esperti di informatica medica, rappresentanti della United kingdom’s National Health Service, infermieri e esperti di standard.

SNOMED SNOMED = Systemized NOmenclature of (human and veterinary) MEDicine) Nasce come SNOP (Systemized Nomenclature of Pathology) sviluppato nel 1965 dalla Committee on Nomenclature and Classification of Disease del CAP (College of American Pathology ).

SNOMED Attraverso successive modificazioni si è giunti a SNOMED CT (Clinical Terms) che combina la struttura e i contenuti di SNOMED RT con la United Kingdom’s Clinical Terms. Scarsamente utilizzato in Italia

Riferimenti Per approfondimenti, il sito ufficiale è : www.snomed.org.

ICD9

ICD9 Standard mondiale per la classificazione di patologie Elemento base utilizzato per la classificazione dei ricoveri (DRG)

ICD9 L’ ICD (= International Classification of Diseases) è un sistema di codifica della morbilità e della mortalità. Viene utilizzato per tradurre le diagnosi di malattie ed altri problemi sanitari in un codice alfanumerico per rendere agevole : l’archiviazione dati; il recupero dati; l’ analisi dei dati.

ICD9 L‘ ICD è diventata la classificazione diagnostica standard da utilizzarsi a livello internazionale per scopi epidemiologici generali e di gestione della sanità . (es Calcolo DRG)

ICD9 La metodologia ICD può essere usata per classificare dati riportati sotto diciture quali: diagnosi; motivo di ricovero; condizioni trattate; motivo di consultazione. Tali diciture appaiono su un’ampia varietà di documenti sanitari e da esse sono ricavate statistiche o altre informazioni sulla situazione sanitaria.

ICD9 STRUTTURA DELLA CLASSIFICAZIONE: tipologia di malattia (infettive, tumori, nutrizionali, ecc…) parti del corpo coinvolte codice alfanumerico (associato al termine medico della malattia)

ICD9 L’ ICD è stato promosso ed elaborato da WHO (World Health Organization). A tale organizzazione appartengono 38 nazioni in tutto il mondo, compresa l’Italia. Viene revisionato periodicamente e attualmente è alla versione ICD-10 entrata in vigore a metà degli anni ’90.

Rispetto alla versione precedente (ICD-9) vi sono: Nuovi settori (17-21); Revisione radicale di alcuni settori; Utilizzo di un codice alfanumerico al posto del classico codice numerico

ICD9 CM ESEMPI

SIRM - DEMO DEMO

DRG

DRG (Diagnosis Related Group) è un sistema di classificazione dei ricoveri costruito partendo dalle informazioni e dai dati contenuti nella scheda di dimissione ospedaliera (SDO).

DRG Costituiscono un sistema di classificazione iso-risorse infatti ogni DRG raggruppa al suo interno solo pazienti clinicamente omogenei, in base alle risorse necessarie al loro trattamento ospedaliero, ma non in base alla loro gravità clinica.

DRG Ogni DRG è composto da: un punteggio (costo della prestazione sanitaria); un peso (misura la complessità assistenziale del ricovero al quale fa riferimento). La tariffa DRG si ottiene moltiplicando il punteggio per il peso. Al calcolo contribuiscono fattori come: Età; Sesso; Stato alla dimissione; Diagnosi secondarie.

DRG I DRG, già utilizzati negli USA da oltre dieci anni, sono stati adottato in Italia, per il pagamento a prestazione dei ricoveri ospedalieri , nel 1994 (D.M. 15/04/94 e 14/12/94). La versione più aggiornata risale al 1997 e l’organo preposto a tali modifiche è il Ministero della Salute.

DRG Ad oggi vi sono 43 DRG a “rischio di inappropriatezza” per i quali la prossima versione prevede l’esclusione dai LEA (Livelli Essenziali di Assistenza) ovvero dalla lista di prestazioni sanitarie garantite a tutti i cittadini e interamente sovvenzionate dallo Stato. Problema di “SIMULAZIONE” dei DRG

DRG Per approfondimenti: http://www.ministerosalute.it/programmazione/normativa/sezNormativa.jsp?label=tar

DRG WP - Interfacing 3M Grouper ORBIS DRG WP Input File Mandatory Fields: Payor Code –Hospital Related Discharge Date Dischage Type (Catalog) Birthdate Sex Main Diagnosis Secondary Diagnosis Main Procedure Secondary Procedure 3M GROUPER IMPUT FILE.htm Diagnosis+Procedures 1 2 DRG / Errors / Control Code 3M GROUPER Output File Main Fields: DRG Error Code Diagnosis Control Code Procedure Control Code 3M GROUPER OUTPUT FILE.htm

DRG WP – Providing Additional DRG Related Info 1 3M GROUPER DRG Code DRG LOOKUP TABLES (Catalogs) ORBIS DRG WP 2 3 DRG Related Info

DRG WP – DRG Calculation Results DRG Value (Euro) HIGH SPECIALITY DRG STANDARD DRG Time (day) 1d Upper Limit (UL) (DRG Related) UL +1d HS DRG - 1D Ordinary Admission/Discharge HS DRG – Day Hospital Admission/Discharge

PARTE SECONDA

Record Medico e Patient Data Card: Libretto sanitario individuale AGENDA – Parte Seconda Record Medico e Patient Data Card: Libretto sanitario individuale Cartelle cliniche, schede ambulatoriali Multimedialità del record medico. Tecnologie di Smartcard

CARTELLE CLINICHE SCHEDE AMBULATORIALI

ORBIS - DEMO DEMO

TECNOLOGIE DI SMARTCARD

Overview the project Citizen smart card The citizen card contains: Administrative data Emergency sanitary data Citizen data Electronic signature (if required) 6 Kb for personal services It can be used as: Regional Healthcare and Services Card National Healthcare Card European health assurance card (E111) Fiscal Code Exemption card (ICCE) Card to allow the access to SISS extranet Card to access to Regione Lombardia and Public Bodies services Card for citizen authentication, identification and (optionally) electronic signature

Overview on the project Operator smart card The operator card contains: Operator data Digital signature Encryption It can be used to: Identify and authenticate the operator on the SISS extranet Allow the operator to get into and work on the SISS extranet Allow the operator to view, manage and operate (on the basis of the operator role) on citizen data Update citizens clinical history Put digital signature (FIRMA FORTE) on electronic documentation

Content of the project – main datas Regional DataBase Maintenance of event index Maintenance of Prescription Index Maintenance of citizen and professional register Maintenance of access grant through Single-Sign-On Maintenance of coding tables Management of General Parctitioners communication Hospital Document Repository Document management Maintain the database of signed documents Communicates to the Hospital Gate for allowing the SISS to access documents Can be used also by the Hospital software (e.g. EPR)

Operators and structures System overview Repository center 1° level Regione Lombardia Central systems (Healthcare Ministry) 2° level Extranet Provider Provider Citizens Integrated data management center SERVICES Operators and structures 3° level Hospitals, ASL, Pharmacies, … Family doctors and practitioners

CRS-SISS System overview - Architectural Model (1/2) Document Management PRACTITIONER WORKSTATION DOC POINTERS CRS-SISS Regional DataBase Hospital A Hospital B DOC REPOSITORY DOC REPOSITORY Repository of signed documents which have to be protected in accordance with the law

System overview - Architectural Model (2/2) Detailed view EHR (Electronic Health Record) is a virtual entity that integrates all citizen's clinical data within the whole Regional HC (HealthCare) System EHR is based on a document registry which contains metadata linked to structured documents Structured documents are stored inside HC Services Providers' structured repositories The HC Extranet is the framework on which EHR is based on Access to document is web based

SMART CARD

SMART CARD - Classificazione Le smart card possono essere classificate in base a diversi criteri: sulla base delle potenzialità e delle caratteristiche del microchip, si distinguono smart card a sola memoria (Memory Card) e smart card a microprocessore (Microprocessor Card); sulla base del tipo di interfaccia di collegamento, si distinguono smart card con contattiera (Contact), smart card con antenna (Contacless smartcard) e smart card con antenna e contattiera (Dual Interface Card). Le caratteristiche del microchip determinano sia il costo della smart card, sia l’ambito di applicazione. Le smart card a sola memoria, tecnologicamente più semplici, sono più economiche ma offrono un livello di sicurezza più basso rispetto alle smart card a microprocessore e pertanto sono usate tipicamente per conservare dati che non necessitano di protezione “forte”.

SMART CARD - Classificazione Memory card La memory card, o smart card a sola memoria, offre unicamente funzionalità di memorizzazione sicura dei dati. Il microchip contiene una componente di memoria permanente nella quale si può leggere e scrivere attraverso un insieme di funzioni cablate in un circuito logico preprogrammato, stampato nel microchip durante la fase di produzione. Il circuito logico a sua volta comprende un meccanismo di protezione che salvaguarda l’accesso ai dati memorizzati basato tipicamente su un insieme di permessi di accesso.

SMART CARD - Classificazione Memory card Tipicamente le memory card offrono circa da 1 a 4 Kbyte di memoria e sono usate principalmente per applicazioni semplici quali carte prepagate, carte per la raccolta punti, ecc. In questi casi, il meccanismo di protezione consente di evitare l’incremento fraudolento del credito. I comandi per la lettura e scrittura in memoria sono tipicamente sequenze di byte incapsulate in un protocollo seriale. Il vantaggio delle memory card sta loro nel basso costo dovuto alla semplicità della tecnologia adottata, tuttavia per applicazioni più complesse che richiedono un livello di sicurezza maggiore, si preferisce usare smart card a microprocessore.

SMART CARD - Classificazione Microprocessor card La smart card a microprocessore, grazie alla potenza di calcolo fornita da un microprocessore incluso nel microchip, può essere paragonata ad un piccolo computer portatile altamente affidabile e inattaccabile in grado di elaborare e memorizzare informazioni salvaguardandone la riservatezza. Nella memoria del microchip è installato un sistema operativo che implementa la logica operativa della smart card. In particolare il sistema operativo si occupa della gestione interna della memoria e fornisce varie funzioni tra le quali lettura e scrittura in memoria, funzioni di programmazione dei permessi di accesso, funzioni crittografiche, ecc. La programmabilità del microchip conseguente alla presenza di un sistema operativo, consente di ottimizzare e personalizzare la smart card per una particolare applicazione o di integrare sullo stesso dispositivo più applicazioni (eventualmente interagenti tra loro).

SMART CARD - Classificazione Microprocessor card L'unico limite a tale flessibilità è rappresentato dalla disponibilità di risorse di memoria. Il set di comandi di una smart card a microprocessore è molto più vasto di quello di una smart card a sola memoria. Oltre ai comandi di lettura e scrittura, le smart card a microprocessore forniscono comandi di gestione dell'accesso alla memoria (es. comandi di verifica del PIN) e comandi di gestione del file system interno. Il singolo comando viene chiamato APDU (Application Protocol Data Unit). Grazie alla capacità di memorizzare informazioni in maniera estremamente sicura e inviolabile e alla possibilità di elaborare dati al suo interno, la smart card a microprocessore si propone in primo luogo come strumento informatico di identificazione sicura e certificata degli individui; in secondo luogo come dispositivo di elaborazione a supporto della crittografia in grado di memorizzare e proteggere le chiavi crittografiche private e di eseguire i principali algoritmi crittografici.

SMART CARD - Classificazione Contact e contactless card La differenza tra le smart card contact e contactless sta nel tipo di interfaccia di collegamento esistente tra il microchip e il mondo esterno. Le prime hanno una contattiera mediante la quale ricevono l'alimentazione e dialogano con l'esterno una volta inserite in un apposito dispositivo terminale detto lettore di smart card. Le seconde hanno un'antenna che reagisce alla presenza di un campo elettromagnetico emesso da uno speciale dispositivo di lettura/scrittura nella banda delle radio-frequenze (con tecnologia RFID), consentendo al microchip di scambiare dati con l'esterno (purché l'antenna si trovi entro una distanza minima dal dispositivo di lettura/scrittura).

SMART CARD - Classificazione Contact e contactless card Le smart card dual-interface offrono entrambe le interfacce contact e contacless e pertanto la comunicazione con il microchip può avvenire indifferentemente mediante una o l'altra. Tale caratteristica consente di integrare sulla stessa smart card sia applicazioni complesse come quelle di firma digitale tipiche delle smart card contact, sia applicazioni più semplici e veloci, come quelle di controllo dell'accesso ad aree riservate, che richiedono esclusivamente accessi alla memoria wireless.