Il Computer in ambulatorio
 
Riflessioni di un medico-programmatore, pioniere nell’uso dello strumento informatico nell’attività professionale.
 
GLI ALBORI CON IL MITICO "SPECTRUM 48" SINCLAIR 

L'idea di Medica 2, il programma autoprodotto che attualmente sto utilizzando quotidianamente nel mio ambulatorio per la gestione del rapporto con i miei Pazienti, è nata nell'84, quando, con la sola conoscenza del linguaggio Basic in dotazione sull'allora primo computer diffuso sul mercato a prezzi accessibili al grande pubblico, il mitico "Spectrum" della Sinclair, intravidi la possibilità di servirmene come archivio anagrafico dei pazienti.  
Mentre continuavo ancora a registrare i dati strettamente medici sulle schede cartacee che avevo strutturato personalmente fin dal '79, seguendo le esigenze dettatemi dal rapporto quotidiano con i pazienti stessi, potevo intanto verificare l'effetto della presenza della "macchina" in ambulatorio, anche se per la sola consultazione dei dati anagrafici e burocratici USL.  
I risultati furono interessanti: i due "microdrive" con nastro a loop continuo, che si mettevano a girare quando ricercavo i dati del paziente che si era appena seduto, scandivano, con il loro ronzio, l'inizio del rito della visita, e costituivano il primo, seppur minimo, segno di garanzia dell'"interessamento" del medico al problema di cui si sarebbe parlato nei successivi minuti.  
Allora il "programma", o meglio, il suo embrione, vista la piccola capacità di memoria di cui era dotato quel sistema rispetto alle memorie dei sistemi attuali, si chiamò "MEDICA 1", con sottinteso richiamo alla maniera latina "(RES) MEDICA", aggiungendo "1" per indicare che stava iniziando un'opera di cui quella si prevedeva essere la versione numero uno.  
 

IL BASIC MICROSOFT 

Nel novembre '85 l'acquisto, allora economicamente oneroso, di un PC 8088, mi fornì tre nuovi elementi di spinta per far superare al programma il limite gestionale dei soli dati anagrafici: il linguaggio Basic della Microsoft, la maggior capacità di memoria e la maggior capacità espressiva del video (quest'ultimo passava da un formato di 22 righe per 32 colonne dello Spectrum a quello di 25 righe per 80 colonne).  
Fu allora che gettai le fondamenta per il programma futuro, e innalzai le due strutture portanti della cartella clinica, le "Schede", con record a lunghezza fissa e dati predefiniti, e il "Diario", con record a lunghezza fissa, ma dati a testo libero. In seguito sviluppai tutte le funzioni per rendere dinamica la presentazione dei dati e farli diventare informazioni, collegandoli tra di loro in sequenze temporali (cronologiche) e spaziali (accorpamento dei dati per caratteristiche comuni tra di loro) o miste (temporali e spaziali).  
 

CLIPPER: LA SOLUZIONE FINALE 

Tuttavia questo continuo lavoro di costruzione divenne presto immane per continuare ad essere gestito dal linguaggio Basic (soprattutto la farraginosa la gestione degli indici), e la conoscenza dell'esistenza di un emergente linguaggio di gestione dati, che sarebbe divenuto poi uno standard internazionale, il Clipper, molto più potente e più ricco di automatismi rispetto al Basic di allora, mi portò, nell'89, a decidere di compiere un notevole sforzo, a marce forzate, nei momenti liberi dagli impegni professionali, per l'acquisizione delle nuove regole, e fu così che nacque "MEDICA 2", completamente tradotta nel nuovo linguaggio, senza perdere nemmeno uno dei dati che intanto avevo accumulato fino ad allora con la versione precedente.  
 
 
 

          Un pò di definizioni...  
  
I DATI 

Un dato semplice o elementare, o unitario è costituito da uno o più caratteri capaci di definire un singolo attributo di un soggetto. Esempi di dati semplici (ognuno tra virgolette "" e separati da una virgola):  

       "FIRENZE", "BALLERINI", "15/03/1950", "VIA PELLAS 18", "FRANCO".  
   
Un dato complesso, o informazione è costituito da uno o più dati semplici disposti in sequenze temporo/spaziali cariche di contenuto informativo apparentemente finito nei riguardi di un soggetto. Esempio di dato complesso o informazione, basato sui dati semplici del paragrafo precedente:  
   
       cognome: BALLERINI nome FRANCO nato il 15/03/1950   
       abitante a FIRENZE in VIA PELLAS 18  
  

I CONTENITORI DI DATI 

Con penna e carta, la carta rappresenta il contenitore dei dati, con il foglio, bianco o più o meno strutturato o "formattato" con righe, colonne, spazi definiti da riquadri, eccetera. Con il computer, i contenitori dei dati sono gli archivi su memoria (disco o memoria labile), strutturati dal programmatore in "riquadri" costituiti dai "campi" e dai "records". Nell'esempio precedente, "BALLERINI" è un campo/contenitore del dato di cognome ("BALLERINI"), mentre il record intero è il dato complesso che risulta dalla disposizione spaziale dei 5 campi dell'esempio, e che dà l'informazione anagrafica apparentemente finita sul signor Ballerini, descrivendone la data di nascita e l'indirizzo.  
  

COSA VUOL DIRE PROGRAMMARE IN SENSO INFORMATICO 

· Definire i contenitori dei dati semplici (i campi, più o meno rigidi e strutturati)  
· Definire le regole per modificarne i contenuti (aggiungere, cambiare, eliminare i dati stessi)  
· Definire le regole per combinare le sequenze temporo/spaziali del loro apparire sullo schermo o sulla carta della stampante, perché solo così diventino dati complessi o informazioni.  

Queste regole sono genericamente chiamate FUNZIONI all'interno del programma, e sono da concepire come delle "scatole nere" dotate di un ingresso, attraverso cui ricevono i dati semplici, e di una uscita, dalla quale "emettono" gli stessi dati trasformati in informazione.  

Tutto questo è programmare...e non è uno scherzo da poco !  
  

PROGRAMMI RIGIDI E PROGRAMMI ELASTICI 

Definisco un programma "rigido" o "chiuso", quando permette solo di modificare i dati (aggiungere, modificare, eliminare contenuti), ma non permette di modificare le regole per combinare gli stessi dati per farli diventare informazioni, mentre definisco "elastico", o "aperto", o "personalizzabile" un programma che, oltre che permettere di modificare i dati, dà all'utente anche la possibilità di agire almeno in parte sul modo di combinare i dati stessi per farli diventare informazione.  
Con una analogia col mondo musicale, direi che un programma elastico è equivalente ad una partitura in cui sia lasciata all'esecutore del brano la possibilità di personalizzare l'interpretazione del tema di base con variazioni a suo piacimento, mentre un programma rigido non permette all'esecutore di sgarrare di una nota dallo spartito.  
 

PROGRAMMI LENTI E PROGRAMMI VELOCI 

L'unità di misura della velocità, secondo la fisica, implica il fattore spazio e il fattore tempo: quanto più spazio percorro nella stessa unità di tempo, tanto più vado veloce. In informatica la misura della velocità di un programma si basa sul fattore "tasto" invece che sul fattore "spazio", ed è inversamente proporzionale alla quantità di tasti da pigiare nell'unità di tempo, per raggiungere lo scopo di ottenere sullo schermo o su stampante l'informazione desiderata.   
  

GLI "HELP" O "ISTRUZIONI" ALL'INTERNO DEI PROGRAMMI 

L'"help", o cosiddetta fase di "aiuto" nel programma, le "istruzioni per l'uso", costituiscono un "metalinguaggio" attraverso cui attingere le regole che permetteranno in una fase di pratica avanzata, di "guidare" il programma senza interruzione, chiedendogli di passare da una esposizione dei dati con un certo tipo di informazione ad una diversa con un altro tipo di informazione.  
   
L'"help" è insito nei programmi, ed è attivabile, per convenzione con il tasto "F1". In Medica 2, questo tasto in realtà attiva qualcosa di più delle istruzioni di uso, bensì una "mappa" istantanea dei possibili passi eseguibili dal punto in cui ci si trova.  
  

CHE COSA FA "MEDICA 2"... 

Le stesse cose che fanno anche gli altri programmi per la gestione dell'attività del medico, in più:  

· È disponibile alla personalizzazione:   
· della sequenza dei blocchi delle voci nelle schede   
· della disposizione delle voci nelle schede   
· dell'attribuzione dei tasti chiave nel diario.  
   
· Offre la possibilità, a chi lo desideri, in ogni momento, di tenere l'archivio dei farmaci ordinato per "sostanza" e nello stesso tempo permettere la stampa a rotazione automatica dei vari eventuali nomi commerciali esistenti per ogni sostanza. In tal modo, il medico ha il solo compito di scegliere il "principio attivo", il suo dosaggio e la sua forma farmaceutica (cpr, cps, fiale, ecc): il programma penserà a stampare sulla ricetta questi dati, seguiti ogni volta, a rotazione, da uno degli eventuali nomi commerciali che lo stesso medico avrà inserito per quella formulazione di principi, rispettando così automaticamente un vero equilibrio prescrittivo per tutte le case farmaceutiche produttrici.  

· Permette la stampa di una nota esplicativa in calce alla ricetta regionale, distinta per "farmaci" e per "richieste" di analisi o visite specialistiche.  
   
· Permette la stampa dei farmaci sul ricettario regionale, e della contemporanea loro descrizione posologica per il paziente sulla striscia staccabile della stessa ricetta regionale. Assicuro che la chiarezza di tale messaggio rappresenta un notevole vantaggio, sia per chi prescrive, sia per chi deve capire la prescrizione e seguirla. Inoltre, il tutto viene memorizzato, costituendo una traccia sicura e facilmente recuperabile di ciò che è stato fatto. Nella stessa striscia staccabile è inoltre possibile far comparire una comunicazione fissa di due righe scritte in compresso, attraverso la quale inviare messaggi di vario genere ai pazienti.  

L'ESPERIENZA RACCONTA... 
CONSIGLI PER UTILIZZARE AL MEGLIO L'INFORMATICA IN AMBULATORIO 

Le considerazioni che seguono nascono esclusivamente dalla mia personale esperienza, la quale mi porta ad affermare che è necessario innanzitutto imparare a dattilografare con destrezza e disinvoltura, addirittura senza guardare la tastiera, bensì il monitor e/o il paziente o altro (referti, ecc). Questo serve per velocizzare la memorizzazione dei dati e rende la presenza della macchina meno interferente nel rapporto col paziente.  

Il mouse è uno strumento puntatore utile nei programmi di grafica, ma meno veloce, e sicuramente antieconomico, nei programmi di testo (è molto più immediato battere un tasto o una combinazione di tasti piuttosto che far muovere sullo schermo la freccia per arrivare a farle centrare l'area sensibile al click, per indirizzare il programma a fornirci una informazione).  

Quanto ai sistemi vocali (la possibilità di comandare il computer a parole), credo che risultino palesemente inapplicabili nel rapporto medico-paziente: pensiamo alla necessità di una certa discrezione nel registrare i dati, senza che il paziente venga a conoscenza di ciò che stiamo registrando...  

Un ultimo accenno all’acquisizione di immagini con gli scanner : se già il mouse intrattiene il medico in un eccessivo rapporto con il computer per la necessità di verificare continuamente la posizione della freccetta sullo schermo, figuriamoci quanto un’attività lenta e complessa di acquisizione di immagine, con successiva archiviazione dei dati, allontanerebbe quello stesso medico dal Paziente che gli sta seduto davanti...  
 

CONCLUDENDO... 

Non dimentichiamo che il computer, detto alla francese, è puramente un "ordinateur", cioè una macchina con capacità di tenere e mantenere dei dati in un certo ordine, capace altresì di fornire ineguagliabili prestazioni di manipolazione e presentazione degli stessi, in grado cioè di fornirci informazioni con rapidità enormemente più grande di quella di cui sono capaci gli archivi cartacei.  

Sarà quindi da ricercare e valutare, in un programma, la facilità con cui si inseriscono o modificano i dati, e con cui da questi si riescono ad ottenere le informazioni in modo chiaro e finito, tenendo sempre presente innanzitutto ciò che ci serve veramente per lo svolgimento della nostra professione di ogni giorno, guardando quindi con occhio critico a quei programmi troppo sofisticati, cioè carichi di dati e funzioni che non utilizzeremo mai nello svolgimento del nostro rapporto con il paziente, e che da una parte occupano posto nella memoria del nostro computer, e dall'altra vengono ad incidere economicamente sul prezzo del programma stesso.

 
Indietro