TURNI DEI CARDIOLOGI L’organizzazione della turnazione dei Cardiologi operanti in una struttura ospedaliera complessa deve perseguire l’obiettivo di garantire l’erogazione del servizio 24h, 365g/anno, declinandolo al rispetto dei vincoli normativi, contrattuali, sociali e professionali. Per superare la gestione manuale è stato avviato il progetto di informatizzazione mediante la collaborazione Ospedale/Università (Prof. Giovanni Righini dell'Università degli Studi di Milano, Polo Didattico e di Ricerca di Crema). E' stata impostata una guardia diurna 8-20, una guardia notturna 20-8, una reperibilità cardiologica diurna 8-20 – solo nei week-end e festivi – , una reperibilità cardiologica notturna 20-8 ed una reperibilità emodinamica. Per la gestione dei week-end e dei festivi si è convenuto di abbinare guardie e reperibilità cosicché chi fa la guardia diurna il sabato fa anche la reperibilità cardiologica diurna la domenica e la guardia notturna la domenica; chi fa la guardia notturna il sabato fa anche la reperibilità cardiologica diurna; chi fa la guardia diurna la domenica fa anche le reperibilità cardiologiche delle due notti. Nei festivi infrasettimanali chi fa la guardia diurna continua poi con la reperibilità cardiologica notturna. La reperibilità emodinamica viene assegnata su base settimanale. Gli emodinamisti partecipano alle guardie e alle reperibilità cardiologiche in pool con percentuali differenziate equivalente ad una unità. E’ poi richiesto in situazioni particolari di prefissare alcuni turni. Per descrizione delle sigle utilizzate nel modello si veda il file 'Macroanalisi PN ...'. Il software è stato sviluppato ad hoc in Java per la parte di interfaccia utente, immissione e controllo dei dati e alimentazione del modello matematico, poggiando su un database SQL aperto. La soluzione viene poi effettivamente ottenuta tramite GUSEK, un’interfaccia aperta al solutore di programmazione lineare GLPK. Data la complessità del calcolo, il sistema genera i turni di ciascun mese in modo indipendente. Per raccordarsi armonicamente con il mese precedente l’operatore pone assenti nei primi giorni i turnisti degli ultimi giorni del mese precedente. Il sistema garantisce: equa attribuzione ai Cardiologi di ciascuna tipologia di turno nell’arco dell’anno, uniforme distribuzione dei turni, evitando sequenze ravvicinate e concentrazioni, evitando ripetizioni immediate dello stesso turno. Chi fa il week-end ha 2-3 giorni di rispetto assicurato prima e dopo, senza ripetizione al week-end successivo. Sono considerati i periodi di ferie o assenze programmate, i saldi del periodo precedente, l’assegnazione alle festività degli ultimi anni. Infine è consentito il recupero il venerdì successivo per chi fa la guardia diurna la domenica. Nei settori Emodinamica, Elettrofisiologia ed Ecocardio è garantita la presenza di almeno uno specialista libero da guardie e reperibilità nei giorni lavorativi. Tutto il sistema è realizzato tramite software aperto, scaricabile all’indirizzo www.arc.fvg.it. Licenza GNU/GPL. Per dettagli si veda il file 'gpl-3.0-standalone.htm'. Prerequisiti di installazione e funzionamento. Dopo aver espanso su C: il file 'turniCardiologi.zip' 1. database SQL a cui il programma ‘turniCardiologi.jar’ accede tramite interfaccia ‘jdbc’. Per la creazione del database si veda il file ‘creaDB.txt’. il DB va poi popolato con i nomi dei Cardiologi, i saldi del periodo precedente e la struttura dei festivi. Non è importante quale sistema database si utilizza. il più comune è sicuramente MySQL ma io uso Firebird. Per dettagli su questa fase si consulti il VIDEO1 2. il programma ‘turniCardiologi.jar’ è modificabile a livello di sorgente (installare NetBeans IDE da 'http://www.netbeans.org/downloads' per utilizzare l'ambiente di sviluppo integrato, o altro equivalente tipo Eclipse) e richiede la libreria QuickTable Database Grid scaricabile da 'http://quicktable.org', fornita assieme al codice sorgente per comodità. Alla fine del ‘Main.java’ si devono personalizzare le date dei festivi (formato americano mm/gg) ed i parametri per l’accesso al DB via jdbc. Per dettagli su questa fase si consulti il VIDEO2 3. fase di inserimento dei dati. Tramite il programma ‘turniCardiologi.jar’ provvedere ad inserire i nominativi dei Cardiologi, le quote, le assenze programmate ed i turni svolti nei festivi degli anni precedenti. Aggiustare le date di inizio e fine periodo, quindi generare il modello matematico. Per dettagli su questa fase si consulti il VIDEO3 4. la cartella ‘gusek’ contiene il solutore lineare ‘gusek.exe’ che utilizza in input i file ‘modello.mod’, ‘modello.dat’ e ‘modelloParametriFissi.dat’ e produce in uscita il file ‘modello.out’. Particolare attenzione va prestata alla variabile re_mese_prec dove va riportato chi ha fatto la reperibilità emodinamica l'ultimo giorno del mese precedente, se la settimana è a scavalco. Come paramtri aggiuntivi della riga di lancio consiglio '--mipgap 0.9' per ottenere la prima soluzione utile e verificare così il funzionamento del sistema, oppure '--tmlim 54000' per far girare GUSEK una notte intera e ottimizzare al massimo la soluzione (il tempo limite è in secondi). Tra i due estremi ciascuno può ovviamente sperimentare la propria parametrizzazione. Per dettagli su questa fase si consulti il VIDEO4 5. caricamento della soluzione. Tramite il programma ‘turniCardiologi.jar’ ricaricare il file di output e popolare la tabella 'Turni'. Esportare la tabella in un foglio elettronico con il copia/incolla da tastiera. Consultare le statistiche per aggiornare i saldi il mese successivo. Per dettagli su questa fase si consulti il VIDEO5 6. Complimenti! A questo punto sei in grado di padroneggiare il sistema e farne buon uso !! Per chiarimenti o problemi contattami al cell. 338 5960366 email [email protected] Enjoy! l'autore Eugenio Cervesato