Linguaggi per la specifica e la verifica di linee guida in campo medico DEIS – Università di Bologna ENDIF – Università di Ferrara Sergio Storari.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Strutture di controllo
Linguaggi algoritmici
Linguaggio C++ Selezione.
Selezione A. Ferrari.
La documentazione nel Sistema Gestione Qualità
Le nuove funzioni della piattaforma Puntoedu lingue.
La sperimentazione clinica
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
I. Teoria e metodo normale competenza sociale;
INFORMATICA Strutture iterative
Ospedale Pistoia ASL 3 Pistoia
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
TW Analisi dei documenti n Classificazione dei componenti n Selezione dei componenti, costruzione della gerarchia, dei blocchi informativi e degli elementi.
Iterazione enumerativa (for)
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Analisi, rappresentazione e progettazione delle procedure
fondamenti di informatica parte 4
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Introduzione alla programmazione lll
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Unità Didattica 1 Algoritmi
1Milano, 3 Novembre 2004Assemblea Nazionale FISM WORKSHOP La certificazione dei requisiti di qualità per le Società Medico-Scientifiche Presentazione del.
Istruzioni Iterative Nicola Fanizzi
Strutture di controllo in C -- Flow Chart --
Verifica della prima legge di OHM
Fondamenti di Informatica Algoritmi
Progettazione di una base di dati
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Daniel Stoilov Tesi di Laurea
Corso di PHP.
Elementi di Informatica
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
2000 Prentice Hall, Inc. All rights reserved. Capitolo 3 (Deitel) Lo sviluppo di programmi strutturati Indice degli argomenti Introduzione 3.2 -
INFORMATICA MATTEO CRISTANI.
L’ingegneria del software
I sistemi di pianificazione e controllo.
Algoritmi e Strutture Dati
Strumenti operativi Si tratta di strumenti la cui finalità è quella di migliorare l’organizzazione dell’assistenza e, di conseguenza, favorire l’erogazione.
Specifica e verifica di protocolli nel progetto Massive Marco Alberti, Fedrico Chesani, Anna Ciampolini, Paola Mello, Marco Montali, Sergio Storari, Paolo.
Programmazione Strutturata
PROGETTAZIONE: SCOPO Requisiti: cosa realizzare; progetto: come realizzarlo Livelli di dettaglio: concettuale/logico/fisico; architetturale/di massima/dettagliato.
Anno accademico Le istruzioni di controllo in C.
COME RAGIONA UN COMPUTER
Linguaggi algoritmici
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Assise Gestione assemblee Documentazione Commerciale Presentazione prodotti.
MODELLI TEORICI PER LA PRATICA GABBIA CHE LIMITA E COSTRINGE O PROSPETIVA DA CUI OSSERVARE E CON CUI LEGGERE LA REALTA’ ?
1.1 Progettazione di Basi di Dati PROGETTAZIONE: SCOPO Requisiti: cosa realizzare; progetto: come realizzarlo Livelli di dettaglio: concettuale/logico/fisico;
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
Diagramma delle Classi
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
Rappresentazione degli algoritmi
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Algoritmi.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Realizzazione software
Progettazione di basi di dati: metodologie e modelli
Automi temporizzati.
Ingegneria del software Modulo 2 -Il software come prodotto Unità didattica 2 - I costi del software Ernesto Damiani Università degli Studi di Milano Lezione.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Linguaggi per la specifica e la verifica di linee guida in campo medico DEIS – Università di Bologna ENDIF – Università di Ferrara Sergio Storari

Sommario Esempio di formalizzazione Linguaggio grafico per la formalizzazione Raccolta di eventi interessanti Conclusioni e attività future

Medical guidelines formalization Proof procedure SEKB SOKB GOAL ICs SOKB ICs Abbiamo formalizzato manualmente una linea guida medica tramite ICs Infezioni MicrobiologicheScreening cancro al seno e pap-test

Linea guida microbiologica Abbiamo identificato: –Tutti gli attori coinvolti: Paziente, Pronto Soccorso, Medico, … –Tutte le interazioni: Visita, Ricovero, Richiesta di test, … Patiente Medico

Considerazioni La linea guida è stata correttamente formalizzata e testata su diverse history (conformi o no) Diversi strumenti per la formalizzazione sono proposti in letteratura La nostra proposta offre un diverso punto di vista: –Tutti gli attori della linea guida sono esplicitamente modellati (non solo il paziente) –Tutte le interazioni dono formalizzate e verificate –Si condiderano i processi legati alla linea guida

Modello di linea guida diagramma di flusso ontologia di azioni e partecipanti MODELLO

Diagramma di flusso Modella graficamente il flusso di esecuzione della linea guida Tipico approccio top-down con uso di macroblocchi Interconnessioni fra blocchi rigidamente controllate Tool per la progettazione (Ippocrate) Ispirato alla programmazione strutturata

Ontologia Tramite il tool progettiamo la struttura della linea guida Come andiamo a caratterizzare i vari blocchi? Ontologia di dominio per modellare –Partecipanti (attivi e passivi) –Azioni in cui i partecipanti sono coinvolti

Struttura ontologica Abbiamo quindi due gerarchie entityaction Partecipanti (nessun attributo) Azioni (ogni azione è legata ad una serie di partecipanti)

Mapping ontologia-ICs Nell’ottica dei vincoli di integrità: –Le azioni sono performative –I partecipanti sono variabili (o, al limite, costanti) A livello di ICs, si perdono le distinzioni ontologiche –Che rimangono però utili al fine di ricostruire quali sono le sorgenti di eventi (vedi dopo…)

Domain-independence Un diagramma di flusso è indipendente dal dominio (e quindi, dall’ontologia) La generalità è stata mantenuta integrando il tool con Protégé Le ontologie sono sviluppate con Protégé e sono caricabili dinamicamente dal tool

Blocco di azione Rappresenta una reale attività da svolgere nell’ambito del protocollo È associata all’istanziazione di un’azione ontologica dicendo quali sono i partecipanti Ha un ingresso e un’uscita Si mappa in un evento (a livello degli ICs)

Decisione automatica Punto di diramazione del protocollo (un ingresso, più uscite) Ha la semantica dell’X-OR Ogni ramo di uscita è associato a una condizione logica valutabile dal sistema Le condizioni possono utilizzare predicati prolog precedentemente “caricati” Il ramo di uscita è uno fra quelli che vengono valutati positivamente

Decisione Come nella decisione automatica, ma senza agganciare condizioni logiche alle uscite Il ramo da seguire viene deciso dall’operatore

Macroblocchi Contenitori di nuovi frammenti di linea guida (approccio top-down) Permettono di definire variabili dando precise regole di visibilità: –Ogni variabile ha come scope il macroblocco in cui è stata definita (è utilizzabile da tutti i blocchi al suo interno) –La variabile rappresenta l’istanziazione di un partecipante ontologico Possibilità di specificare variabili globali (visibili in tutto il protocollo) –Ad esempio il PAZIENTE in una linea guida

Definizione di variabili Protégé

Macroazione Vista all’esterno come un’azione semplice Quando viene incontrata, il flusso prosegue al suo interno (nel punto di start ) Il flusso torna al livello superiore quando si incontra un blocco di fine

Flusso di esecuzione

Cicli 1/2 Cicli espressi in maniera dedicata come in programmazione strutturata –Macroblocco “for” Condizione di uscita sul numero massimo di iterazioni –Macroblocco “while” Condizione di uscita logica Il contenuto del macroblocco è l’i- esimo passo di iterazione

Cicli 2/2 Il blocco di start di un macroblocco ciclico è appunto un cyclic start Differenti modalità di uscita –Riconnessione allo start ciclico Fine del passo di iterazione, ma indicando di rimanere nel ciclo (a meno che la condizione del ciclo non diventi falsa) –fine Fine del passo di iterazione e uscita prematura dal ciclo (equivalente a un “break”)

Esempio di ciclo Esci dal ciclo Rientra nel ciclo

Sezioni parallele Specifica di un insieme di azioni da eseguire in parallelo (semantica dell’AND, vista all’esterno nuovamente come un’unica azione) Massima generalità –anche una macroazione può far parte della sezione Semantica di prosecuzione oltre la sezione: –Wait all (prosegui quando tutte le azioni della sezione sono state completate) –Wait one (prosegui quando una delle azioni è stata completata… le altre andranno comunque tutte completate) –Cambiano le modalità di generazione delle aspettative

Sezione parallela - esempio

Vincoli temporali Possibilità di legare due azioni con un vincolo temporale H(a,Ta)  E(b,Tb),vincolo tra Ta e Tb

Gestione inviti screening (1/2)

Gestione inviti screening (2/2) H(tell(CENTRO,CODP,invito(CODP,AMB,DATA,ORA),CONV),Tinv) ---> E(tell(CODP,CENTRO,accettazione(CODP,AMB,DATA,ORA),CONV),Tacc) /\ Tacc > Tinv /\ Tacc <= Tinv+7 \/ E(tell(CODP,CENTRO,rifiuto(CODP,AMB,DATA,ORA),CONV),Trif) /\ Trif > Tinv /\ Trif <= Tinv+7 \/ E(tell(CODP,CENTRO,posticipa(CODP,AMB,DATA,ORA),CONV),Tpost) /\ Tpost > Tinv /\ Tpost <= Tinv+7 \/ E(tell(CENTRO,CODP,sollecito(CODP,AMB,DATA,ORA),CONV),Tsoll) /\ Tsoll == Tinv+8.

Traduzione in ICs Stiamo lavorando sulla traduzione automatica di un diagramma in ICs Come già accennato: –Le azioni divengono eventi –Le interconnessioni “dirette” dicono di costruire un IC –I blocchi di decisione realizzano IC aventi come testa un x-or di aspettative, ognuna associata alla condizione logica specificata –…

Iter di sviluppo MODELLO Diagramma di flusso ontologia Event source evento1 evento2 evento3 evento4 … Gestione CUSTOM di ogni sorgente Traduzione automatica In ICs ESECUZIONE

Raccolta di eventi da database Elementi di partenza: –Linea guida in forma strutturata –Ontologia Gli elementi di partenza vengono relazionati con una ontologia di sorgenti di eventi Per ogni sorgente si scrive un modulo di accesso: –Per un database si mettono in relazione le dinamiche degli eventi di partenza con quelli delle tabelle del database

Considerazioni finali Il linguaggio utilizza blocchi generici che si vanno a specializzare sulla base dell’ontologia Il nostro focus non è il supporto alle decisioni, ma il supporto al monitoraggio dei processi clinici legati ad una linea guida Tale monitoraggio può agire on-the-fly e off-line (feed back sulla qualità della linea guida, statistiche sull'uso della linea guida) Non c’è una cognizione diretta di tempo, ma di eventi e quindi è più facile implementare servizi tipo “what if” Limiti da affrontare: –manca la classificazione della gravità delle violazioni –i vincoli temporali sono semplici