INTRODUZIONE

In medicina, cosi' come in molti altri settori del mondo scientifico, si e' consolidata nel tempo una progressiva specializzazione che ha contribuito alla formazione di diversi centri ciascuno dei quali e' competente per la diagnosi e/o il trattamento di particolari patologie. Una ovvia conseguenza e' rappresentata dalla eccessiva frammentazione delle informazioni cliniche relative al paziente, che vengono ad essere suddivise tra le varie cliniche e gli istituti di cura presso cui egli e' stato ricoverato.

Il presente progetto di ricerca si propone quindi di fornire una risposta alla necessita' fondamentale dei vari operatori sanitari di cooperare fra loro. In particolare si cerca di estendere ed integrare all'interno di un unico disegno metodologie e tecniche gia' da tempo presenti negli ambienti di ricerca. Tra queste figurano ovviamente le metodologie connesse con la pianificazione e il supporto al lavoro cooperativo, ma vengono coinvolti anche aspetti connessi con la modellizzazione del ragionamento medico ed acquisizione della conoscenza, tecniche di ragionamento temporale e ragionamento in presenza di incertezza ed il progetto e lo sviluppo di data base orientati agli oggetti.


IL PARADIGMA MULTIAGENTE

Il cosiddetto "paradigma Multi-Agente" (MA), con il concetto correlato di "problem-solving distribuito", appare imprescindibile per l'evoluzione dagli attuali SIS, impiegati per lo piu' come basi di dati centralizzate per l'immagazzinamento di cartelle cliniche, verso veri e propri sistemi integrati in rete, che forniscano agli operatori sanitari, con accesso locale o remoto, servizi di supporto alle decisioni ed interfacce personalizzate. La condivisione ed il riuso di conoscenza e dati biomedicali, indispensabili alla gestione distribuita di un paziente da parte dei diversi operatori che via via lo prendono in carico, trovano l'architettura ideale nella struttura multiagente. Questa infatti, pur consentendo ad ogni sistema informatico di conservare la propria "individualita'" e "specializzazione", li mette in grado di interagire con altri "agenti" secondo uno spettro di "stili di cooperazione" che variano dalla collaborazione totale all'antagonismo assoluto.

E' possibile delineare un modello generale di agente valido sia per i sistemi informatici sia per gli utenti umani. Entrambe le categorie concorrono infatti a realizzare la gestione cooperativa e distribuita del paziente, ed i loro esponenti possono essere visti come agenti in quanto "incapsulano" conoscenza e dati specialistici, capacita' di elaborarli e "procedure" che determinano il proprio comportamento esterno. Diversi gradi di autonomia (capacita' di svolgere le proprie mansioni indipendentemente dagli altri agenti) e di "complessita' cognitiva" (complessita' delle attivita' di elaborazione delle informazioni e delle interazioni con l'"ambiente" esterno comune alla comunita' di agenti) caratterizzano i vari agenti, che quindi possono esibire comportamenti puramente reattivi (sulla base di meccanismi "stimolo/risposta") oppure propriamente deliberativi (sfruttando basi di conoscenza e procedure inferenziali).

Nell'ambito dell'ingegneria del software, va emergendo una nozione di "agente software" (Software Agent, SA) [Genesereth and Ketchpel, 1994] come processo semi-autonomo, in grado di interoperare con altri processi, in esecuzione sulla stessa o su altre macchine, attraverso un opportuno "linguaggio di comunicazione fra agenti" (Agent Communication Language, ACL). Il nostro modello di SA, compatibile con l'eterogeneita' hardware e software delle effettive implementazioni, comprende dunque:

Un simile modello risulta abbastanza generale da descrivere la quasi totalita' dei sistemi informatici che si puo' pensare di integrare in un'architettura multiagente, dai "sensori intelligenti" ai sistemi di monitoraggio, dai database ai sistemi basati su conoscenza o sistemi esperti di supporto alle decisioni. Requisito essenziale per l'ottenimento dell'interoperabilita' fra agenti e' che i meccanismi di rappresentazione di ogni "entita' isolata" siano estesi con le primitive di comunicazione dell'ACL, che dovranno garantire l'integrazione fra agenti al "livello della conoscenza", vale a dire in maniera indipendente dagli aspetti implementativi individuali.


I SISTEMI BASATI SU CONOSCENZA

L'integrazione di un Sistema Basato su Conoscenza (Knowledge Based System KBS) all'interno di un SIS e' una operazione estremamente complessa e difficile da realizzare per molteplici fattori. Quasi tutti i ricercatori sono concordi nel riconoscere che uno dei principali problemi consiste nella difficolta' di acquisire la conoscenza e nella necessita' di mantenerla aggiornata nel tempo, e pertanto sono stati compiuti molti sforzi nel tentativo di risolvere questo problema. Uno dei fattori che piu' negativamente ha influito sui sistemi di prima generazione e' che tipi diversi di conoscenza venivano mescolati e rappresentati mediante un unico formalismo all'interno delle loro basi di conoscenza [Clancey, 1985]. Pertanto e' ormai generalmente accettato il principio che tipi differenti di conoscenza vadano rappresentati con formalismi e metodi differenti.

Le componenti cognitive fondamentali del modello concettuale che descrive il ragionamento medico sono l'Ontologia ed il Modello Inferenziale. La prima rappresenta un modello astratto delle entita', loro attributi e relazioni fra di esse intercorrenti relativamente ad un particolare dominio, mentre il secondo costituisce un modello astratto della struttura inferenziale utilizzata per risolvere un problema sfruttando l'ontologia. Diversi autori stanno conducendo ricerche miranti ad identificare un linguaggio formale per definire ontologie e scambiare conoscenza in generale. Ontolingua, sviluppato da Tom Gruber [Gruber, 1993] come parte del Knowledge Sharing Effort [Neches et al., 1991] sponsorizzato dalla ARPA e' un linguaggio per definire ontologie basato sul calcolo dei predicati che supporta la distinzione fra conoscenza definizionale ed asserzionale.

Relativamente alla ricerca volta ad identificare dei modelli per la risoluzione dei problemi, Chandrasekaran [1983] e' stato probabilmente uno dei primi ricercatori a sostenere che ogni KBS deve essere appositamente disegnato per risolvere alcuni problemi comunemente incontrati nella pratica, che egli ha denominato task generici. Seguendo Chandrasekaran e' iniziata una vasta attivita' di ricerca allo scopo di identificare e classificare ogni possibile metodo per la risoluzione dei problemi. Clancey [Clancey, 1985] ha identificato la classificazione euristica, mentre il gruppo di John Mcdermott alla Carnegie-Mellon University ha realizzato un gran numero di sistemi, ciascuno dei quali sfruttava un metodo differente.

Piu' recentemente il progetto KADS [Wielinga et al., 1993] ed il suo successore CommonKADS, entrambi sponsorizzati dalla CEE nell'ambito del Programma ESPRIT, hanno realizzato una analisi completa dell'intero processo di acquisizione della conoscenza, e forniscono un elevato supporto nelle diverse fasi di realizzazione di un KBS.

Nel nostro caso, un risolutore di problemi (problem solver) puo' essere definito come un modulo che incapsula elementi di conoscenza specialistica relativa ad un particolare dominio, espressi mediante un particolare formalismo di rappresentazione della conoscenza, e combinati con un opportuno metodo che ne consente l'applicazione alla risoluzione di determinate classi di problemi tipici del mondo reale [van Heijst et al., 1994].

Includere all'interno di un SIS la capacita' di risolvere problemi equivale ad individuare un insieme di problem solver da inserire nella architettura multiagente. Per fare cio' e' necessario condurre una adeguata analisi in merito al livello di decomposizione di un problema e quindi sul tipo di supporto cognitivo che ciascun problem solver dovra' essere in grado di fornire.


DATA BASE MULTIMEDIALI

In ambito medico sono numerosi i sistemi finalizzati alla gestione e archiviazione di dati clinici. Essi implementano differenti tipi di cartella clinica computerizzata, memorizzando informazioni relative a pazienti ricoverati presso un dato reparto oppure in carico presso un certo ambulatorio specialistico oppure in cura presso un determinato medico di famiglia. Caratteristica comune a questi sistemi e' la gestione limitata ai soli dati alfanumerici. La gestione completa dei dati clinici di un paziente prevede d'altra parte la capacita' di gestire informazioni di differente natura e provenienza: da informazioni espresse in linguaggio naturale, a dati numerici o comunque strutturati, a immagini statiche (radiografie, TAC, MR), a immagini dinamiche (film angiografici, ecografie), a biosegnali (ECG, EEG, EMG). Tali informazioni sono fortemente correlate tra loro e solo se considerate nel loro complesso permettono al medico di stabilire una diagnosi ed approntare un piano terapeutico. Un sistema di supporto alla decisione clinica deve dunque essere in grado di considerare in modo opportuno le eterogenee informazioni cliniche disponibili per ogni paziente.

Nella definizione di sistemi in grado di gestire informazioni cliniche eterogenee, notevole interesse e considerazione vanno dedicati agli ultimi sviluppi teorico-metodologici ed applicativi provenienti dall'area delle basi di dati: fra questi sembra opportuno menzionare le ricerche sulle basi di dati orientate agli oggetti e sulle basi di dati temporali [Won Kim, 1995; Tansel et al., 1993].

In letteratura sono presenti alcuni sistemi sotto forma di prototipi che consentono la gestione integrata di dati ed immagini: tra essi occupano posizione di rilievo OSIRIS e PICQUERY+ [Ligier,92; Cardenas, 93]. OSIRIS e' un software sviluppato all'Universita' di Ginevra realizzato per la visualizzazione, l'analisi e la gestione di immagini mediche [Ligier, 92]. OSIRIS consente di gestire bioimmagini di qualsiasi tipo, purche' esse siano scritte secondo il formato Papyrus, che e' conforme allo standard ACR-NEMA. L'interfaccia realizzata, basata su finestre, bottoni e menu', rendono OSIRIS facilmente usabile anche da utenti senza una particolare preparazione di tipo informatico.

PICQUERY+ e' un linguaggio di interrogazione per dati ed immagini che puo' essere applicato a qualsiasi settore. Esso e' stato sviluppato all'Universita' di Los Angeles (UCLA) ed applicato a KMED (Knowledge-based Medical Multimedia Distributed database system) [Cardenas, 93]. Lo scopo di PICQUERY+ e' di poter formulare interrogazioni complesse sia sui dati che sulle immagini. Come dominio di applicazione e di verifica esso e' stato applicato alla medicina. PICQUERY+ e' in grado di effettuare interrogazioni sofisticate del tipo "ricerca un immagine con la falange prossimale del quinto dito di un certo paziente e valuta la lunghezza dell'asse maggiore di tale osso". La realizzazione di interrogazioni di tale tipo e' resa possibile grazie alla presenza di ulteriori elaboratori che hanno lo scopo di applicare alcuni modelli clinici di simulazione e di ricostruzione di immagini e di viste per estrarre caratteristiche da una immagine e verificare se essa soddisfi alle condizioni di selezione.

L'approccio globale che si intende adottare nel presente progetto e' orientato agli oggetti. Anche nella gestione integrata di basi di dati, segnali ed immagini appare opportuno adottare un approccio orientato agli oggetti. In tale ottica, ed al fine di proporre un sistema che sia applicabile a diverse realta' cliniche, e' necessario definire un modello orientato agli oggetti che permetta di gestire basi di dati clinici multimediali. In tale ambito occorre identificare quanto e' specifico della medicina nella gestione ed acquisizione di informazioni multimediali. In particolare il modello deve permettere di legare fra loro informazioni eterogenee, in modo assai ricco ed esaustivo: deve essere ad esempio, possibile esprimere attraverso il modello dei dati che un certo dato alfanumerico si rifa' ad un certo particolare di una o piu' immagini; deve essere altresi' possibile definire la relazione fra una o piu' diagnosi ed un intero insieme di immagini, eventualmente organizzato a comporre un film; deve, inoltre, essere possibile esprimere relazioni fra rappresentazioni grafiche (particolari anatomici stilizzati), immagini diagnostiche, ed eventuali segnali (ECG), che supportano la diagnosi effettuata.

La definizione di un modello orientato agli oggetti per basi di dati clinici multimediali non puo' non considerare che i dati clinici, cosi' come i segnali (ECG, EEG,..) e le immagini (TAC, Angiografie, MR) sono caratterizzati da una complessa ed eterogenea dimensione temporale: basti pensare che le immagini di un film angiocardiografico sono legate da una parte ad una dimensione temporale, per cosi' dire, "interna", legata cioe' alla sequenza dei fotogrammi, dall'altra ad una dimensione temporale "esterna", legata cioe' al momento nel quale l'esame angiografico e' stato effettuato sul paziente.

Rispetto alla complessita' dei dati da gestire attraverso un OODBMS multimediale e' opportuno mettere a disposizione dell'utente finale un ambiente di lavoro quanto piu' amichevole possibile. Oltre ad una usuale interfaccia grafica e' quindi necessario definire ed implementare opportuni linguaggi di gestione e di interrogazione della base di dati. In tale direzione appare dunque opportuno definere un linguaggio di interrogazione visivo (Visual Query Language), che permetta di esprimere in modo quanto piu' amichevole e guidato interrogazioni complesse, comprensive di condizioni legate a caratteristiche delle immagini o dei segnali, senza che l'utente sia obbligato ad apprendere complesse sintassi.


RAGIONAMENTO TEMPORALE IN MEDICINA

Il problema di rappresentare gli aspetti temporali delle informazioni mediche e dei dati dei pazienti e' chiaramante di grande importanza in medicina, ma finora le tecniche informatiche hanno fornito solo soluzioni piuttosto parziali. In altre parole nel campo dell'Informatica medica sono state proposte alcune soluzioni anche piuttosto interessanti ma molto spesso ad hoc nel senso che fanno affidamnato alla particolare classi di problemi afforntati o al dominio.

Un primo lavoro significativo e' quello di [Fagan, 80] in cui e' stato affrontato il problema del monitorggio intelligente di un sistema di ventilazione in terapia d'urgenza. La problematica della predizione temporale dello stato di pazienti e' fortemente collegata con quello del monotoraggio ed ha ricevuto interesse. Tra gli altri lavori vanno citati quello di [Coiera, 90], [Hayes-Roth et al., 92], [Larizza et al., 92]. Un altro problema che ' stato affrontato e' quello di "trend detection", in quanto spesso l'interpretazione dello stato corrente del paziente e la predizione non si basa tanto su dati istantatei ma sulla evoluzione di certi parametri. La possibilita' di individuare dei trend in queste serie di dati e' molto importante: alcune soluzioni iniziali sono descritte in [Kahn, 91], [Haimowitz and Kohane, 93], [Haimowitz, 94]. La problematica di ragionare ed organizzare dati temporali nei pazienti e' stato parzialemtne affronatato in [Das et al., 94], dove particolare attenzione viene posta alla astrazione temporale.

Naturalmente, l'integrazione fra un sistema informativo ed un modulo per la gestione di informazioni temporali non puo' prescindere dall'estensione del sistema informativo stesso al fine di trattare informazioni temporali. A tal fine devono essere affrontati nuovi tipi di problematiche concernenti le basi di dati relazionali.

Anzitutto, risulta necessario sviluppare nuovi modelli per la rappresentazione delle tabelle, al fine di includere anche attributi temporali quali il tempo di validita' ed il tempo di transazione. Come mostrato nell'esempio introduttivo, tuttavia, la gestione di informazioni temporali qualitative (collocazione relativa di tuple) rende il problema particolarmente complesso. Infatti, non risulta possibile memorizzare direttamente le informazioni temporali nelle tabelle dati, ma occorre introdurre nuove tabelle dedicate alla memorizzazione delle sole informazioni temporali concernenti i tempi di validita' delle tuple.

Un secondo e fondamentale problema deriva dalla necessita' non solo di memorizzare informazioni temporali, ma anche di fornire strumenti adeguati per interrogarle. In particolare, tale problema risulta particolarmente complesso, in quanto involve una estensione dell'algebra relazionale classica al fine di considerare anche informazioni temporali. Ad esempio, il prodotto cartesiano fra due tabelle relazionali atemporali T1 e T2 da' come risultato una nuova tabella, in cui ogni tupla t1 di T1 viene concatenata con ogni tupla t2 di T2. Ora, qualora le tuple vengano estese con un tempo di validita' (ed un tempo di transazione), occorre definire quale debba essere il tempo di validita' delle tuple risultanti. A tal fine, la definizione classica dell'operatore di prodotto cartesiano deve essere opportunamente modificata ed estesa. Oltre ad una ri-definizione di tutti gli operatori classici, occorre poi una rielaborazione dell'algebra stessa al fine di introdurre operatori e funzioni temporali specializzate.