thematrix il software - ars.toscana.it · il progetto matrice infrastruttura distribuita...
TRANSCRIPT
Indice
Il progetto MATRICE
Infrastruttura distribuita
Caratteristiche e requisiti
Modello di dati IAD
Il linguaggio di programmazione
Riepilogando
Indice
Il progetto MATRICE
Infrastruttura distribuita
Caratteristiche e requisiti
Modello di dati IAD
Il linguaggio di programmazione
Riepilogando
Partner
Agenzia nazionale per i servizi sanitari regionali (AgeNaS)
5 Regioni: Lombardia, Veneto, Emilia Romagna, Toscana,Puglia
Ministero della Salute
Agenzia regionale di sanita della Toscana
Istituto di scienze e tecnologie dell’informazione del CNR
Societa italiana di medicina generale
Dipartimento di Informatica Medica dell’Universita Erasmus diRotterdam
Dipartimento di Informatica dell’Universita degli studi diMilano
Obiettivi generali
dal documento di progetto
. . . condividere basi informative comuni per arrivare ad un sistema chelegga trasversalmente i sistemi sanitari regionali . . .
. . . utilizzare unicamente flussi informativi gia esistenti, per poterosservare la gestione delle patologie complesse nelle diverse Regioni e
Province Autonome, sulla base di dati la cui validita a condivisa con esse,attraverso operazioni di trasformazione del dato la cui validita verra
stabilita sulla base di rigorosi criteri scientifici. . .
. . . dotare i vari livelli istituzionali di una base conoscitiva condivisa chesupporti la governance delle cure territoriali . . .
Obiettivi generali
dal documento di progetto
. . . condividere basi informative comuni per arrivare ad un sistema chelegga trasversalmente i sistemi sanitari regionali . . .
. . . utilizzare unicamente flussi informativi gia esistenti, per poterosservare la gestione delle patologie complesse nelle diverse Regioni e
Province Autonome, sulla base di dati la cui validita a condivisa con esse,attraverso operazioni di trasformazione del dato la cui validita verra
stabilita sulla base di rigorosi criteri scientifici. . .
. . . dotare i vari livelli istituzionali di una base conoscitiva condivisa chesupporti la governance delle cure territoriali . . .
Obiettivi generali
dal documento di progetto
. . . condividere basi informative comuni per arrivare ad un sistema chelegga trasversalmente i sistemi sanitari regionali . . .
. . . utilizzare unicamente flussi informativi gia esistenti, per poterosservare la gestione delle patologie complesse nelle diverse Regioni e
Province Autonome, sulla base di dati la cui validita a condivisa con esse,attraverso operazioni di trasformazione del dato la cui validita verra
stabilita sulla base di rigorosi criteri scientifici. . .
. . . dotare i vari livelli istituzionali di una base conoscitiva condivisa chesupporti la governance delle cure territoriali . . .
Obiettivi specifici
dal documento di progetto
Il progetto prevede il disegno, la sperimentazione, la validazione el’applicazione ad alcuni casi di studio di un software open source di
aggregazione e di integrazione dei dati dei flussi sanitari nazionali. . .
Obiettivi specifici
dal documento di progetto
Il progetto prevede il disegno, la sperimentazione, la validazione el’applicazione ad alcuni casi di studio di un software open source di
aggregazione e di integrazione dei dati dei flussi sanitari nazionali. . .
TheM
atrix
Indice
Il progetto MATRICE
Infrastruttura distribuita
Caratteristiche e requisiti
Modello di dati IAD
Il linguaggio di programmazione
Riepilogando
Dati tasformati localmente
dati localiModello didati IAD
ID SOGGETTOSESSOANNO NASCITAVARIABILE X. . .ESPOSIZIONEEVENTO
esecuzione script di TheMatrix
mapping
Invio al punto centrale
SESSOANNO NASCITAVARIABILE X. . .ESPOSIZIONEEVENTO
dati locali
dati locali
dati locali
dati locali
dati locali
Invio al punto centrale
SESSOANNO NASCITAVARIABILE X. . .ESPOSIZIONEEVENTO
dati locali
dati locali
dati locali
dati locali
dati locali
Dataset piccoli:selezionati,
anonimi, aggregati
Algoritmi
TheMatrix puo applicare ai datilocali degli algoritmi che creano
variabili derivate Per esempio: un diabetico e unsoggetto che ha un’esenzione per
diabete OR un ricovero per diabeteOR una prescrizione di un farmaco
antidiabetico
Algoritmi
TheMatrix puo applicare ai datilocali degli algoritmi che creano
variabili derivate Per esempio: un diabetico e unsoggetto che ha un’esenzione per
diabete OR un ricovero per diabeteOR una prescrizione di un farmaco
antidiabetico
Validazione!
Algoritmi
TheMatrix puo applicare ai datilocali degli algoritmi che creano
variabili derivate Per esempio: un diabetico e unsoggetto che ha un’esenzione per
diabete OR un ricovero per diabeteOR una prescrizione di un farmaco
antidiabetico
Validazione!
Indice
Il progetto MATRICE
Infrastruttura distribuita
Caratteristiche e requisiti
Modello di dati IAD
Il linguaggio di programmazione
Riepilogando
Caratteristiche
Open source TheMatrix e un software open source sviluppatodall’Istituto di scienze e tecnologie dell’informazione(ISTI) del CNR, con il supporto del Dipartimento diInformatica dell’Universita degli studi di Milano
Architettura Si installa presso una istituzione che possiede flussisanitari in cui l’identificativo personale e comune tra iflussi (una ASL, una Regione, un’Agenzia)
Programmazione flessibile E dotato di un linguaggio diprogrammazione sviluppato ad hoc, che consente dicollegare, filtrare, trasformare, aggregare di dati
Accesso ai dati Accede ai dati dei flussi sanitari esportati informato csv in formato IAD oppure custoditi inMySQL o in Oracle
Altri dati in input Accede inoltre a file csv con un qualsiasitracciato record
Requisiti
Sistema operativo Windows, Unix, Mac OS (Java 1.6 o superiore)
Processore e RAM TheMatrix puo funzionare su macchine concaratteristiche relativamente basse, ma i tempi diesecuzione si allungano, specialmente se il numero diassistiti e molto alto
Spazio disco Lo spazio disco necessario a eseguire uno scriptcomplesso e circa 100GB ogni 500mila assistiti.
Indice
Il progetto MATRICE
Infrastruttura distribuita
Caratteristiche e requisiti
Modello di dati IAD
Il linguaggio di programmazione
Riepilogando
IAD
PERSONPERSON ID
GENDER CONCEPT IDDATE OF BIRTH
STARTDATEENDDATE
GP ID
HOSPPERSON ID
START DATEEND DATE
PROCEDURE DATE 1-6MAIN DIAGNOSIS
SECONDARY DIAGNOSIS 1-5PROCEDURE CODE 1-6
EXEPERSON ID
EXE START DATEEXEMPTION CODE
DRUGSPERSON ID
DRUG DISPENSING DATEATC
DURATION
DDRUGPERSON ID
DRUG DISPENSING DATEATC
DURATION
OUTPATPERSON ID
PROC START DATEPROC CODE
GROUP CODE
IAD
PERSONPERSON ID
GENDER CONCEPT IDDATE OF BIRTH
STARTDATEENDDATE
GP ID
HOSPPERSON ID
START DATEEND DATE
PROCEDURE DATE 1-6MAIN DIAGNOSIS
SECONDARY DIAGNOSIS 1-5PROCEDURE CODE 1-6
EXEPERSON ID
EXE START DATEEXEMPTION CODE
DRUGSPERSON ID
DRUG DISPENSING DATEATC
DURATION
DDRUGPERSON ID
DRUG DISPENSING DATEATC
DURATION
OUTPATPERSON ID
PROC START DATEPROC CODE
GROUP CODE
Databaserelazionale
IAD
PERSONPERSON ID
GENDER CONCEPT IDDATE OF BIRTH
STARTDATEENDDATE
GP ID
HOSPPERSON ID
START DATEEND DATE
PROCEDURE DATE 1-6MAIN DIAGNOSIS
SECONDARY DIAGNOSIS 1-5PROCEDURE CODE 1-6
EXEPERSON ID
EXE START DATEEXEMPTION CODE
DRUGSPERSON ID
DRUG DISPENSING DATEATC
DURATION
DDRUGPERSON ID
DRUG DISPENSING DATEATC
DURATION
OUTPATPERSON ID
PROC START DATEPROC CODE
GROUP CODE
Osservazioni condata
IAD
PERSONPERSON ID
GENDER CONCEPT IDDATE OF BIRTH
STARTDATEENDDATE
GP ID
HOSPPERSON ID
START DATEEND DATE
PROCEDURE DATE 1-6MAIN DIAGNOSIS
SECONDARY DIAGNOSIS 1-5PROCEDURE CODE 1-6
EXEPERSON ID
EXE START DATEEXEMPTION CODE
DRUGSPERSON ID
DRUG DISPENSING DATEATC
DURATION
DDRUGPERSON ID
DRUG DISPENSING DATEATC
DURATION
OUTPATPERSON ID
PROC START DATEPROC CODE
GROUP CODE
Contenuto codificatocon sistemi di codificanazionali/internazionali
IAD
PERSONPERSON ID
GENDER CONCEPT IDDATE OF BIRTH
STARTDATEENDDATE
GP ID
HOSPPERSON ID
START DATEEND DATE
PROCEDURE DATE 1-6MAIN DIAGNOSIS
SECONDARY DIAGNOSIS 1-5PROCEDURE CODE 1-6
EXEPERSON ID
EXE START DATEEXEMPTION CODE
DRUGSPERSON ID
DRUG DISPENSING DATEATC
DURATION
DDRUGPERSON ID
DRUG DISPENSING DATEATC
DURATION
OUTPATPERSON ID
PROC START DATEPROC CODE
GROUP CODE
Anagrafe
Caratteristichedell’individuo,
storicizzate
IAD
PERSONPERSON ID
GENDER CONCEPT IDDATE OF BIRTH
STARTDATEENDDATE
GP ID
HOSPPERSON ID
START DATEEND DATE
PROCEDURE DATE 1-6MAIN DIAGNOSIS
SECONDARY DIAGNOSIS 1-5PROCEDURE CODE 1-6
EXEPERSON ID
EXE START DATEEXEMPTION CODE
DRUGSPERSON ID
DRUG DISPENSING DATEATC
DURATION
DDRUGPERSON ID
DRUG DISPENSING DATEATC
DURATION
OUTPATPERSON ID
PROC START DATEPROC CODE
GROUP CODE
Ricoveri ospedalieri
Con diagnosi eprocedure
Codifica ICD9CM (WHO)
IAD
PERSONPERSON ID
GENDER CONCEPT IDDATE OF BIRTH
STARTDATEENDDATE
GP ID
HOSPPERSON ID
START DATEEND DATE
PROCEDURE DATE 1-6MAIN DIAGNOSIS
SECONDARY DIAGNOSIS 1-5PROCEDURE CODE 1-6
EXEPERSON ID
EXE START DATEEXEMPTION CODE
DRUGSPERSON ID
DRUG DISPENSING DATEATC
DURATION
DDRUGPERSON ID
DRUG DISPENSING DATEATC
DURATION
OUTPATPERSON ID
PROC START DATEPROC CODE
GROUP CODE
AmbulatorioVisite
specialistiche,esami diagnostici,
procedureambulatoriali
Codifica nazionale/locale
IAD
PERSONPERSON ID
GENDER CONCEPT IDDATE OF BIRTH
STARTDATEENDDATE
GP ID
HOSPPERSON ID
START DATEEND DATE
PROCEDURE DATE 1-6MAIN DIAGNOSIS
SECONDARY DIAGNOSIS 1-5PROCEDURE CODE 1-6
EXEPERSON ID
EXE START DATEEXEMPTION CODE
DRUGSPERSON ID
DRUG DISPENSING DATEATC
DURATION
DDRUGPERSON ID
DRUG DISPENSING DATEATC
DURATION
OUTPATPERSON ID
PROC START DATEPROC CODE
GROUP CODE
EsenzioniEsenzioni ticketspecifiche per
patologia
Codifica nazionale
IAD
PERSONPERSON ID
GENDER CONCEPT IDDATE OF BIRTH
STARTDATEENDDATE
GP ID
HOSPPERSON ID
START DATEEND DATE
PROCEDURE DATE 1-6MAIN DIAGNOSIS
SECONDARY DIAGNOSIS 1-5PROCEDURE CODE 1-6
EXEPERSON ID
EXE START DATEEXEMPTION CODE
DRUGSPERSON ID
DRUG DISPENSING DATEATC
DURATION
DDRUGPERSON ID
DRUG DISPENSING DATEATC
DURATION
OUTPATPERSON ID
PROC START DATEPROC CODE
GROUP CODE
Farmaci territorio
Farmaci acquistatiin farmacie non
ospedaliere
Farmaci direttiFarmaci erogati in
farmacieospedaliere, al di
fuori di unricovero Codifica ATC (WHO)
Indice
Il progetto MATRICE
Infrastruttura distribuita
Caratteristiche e requisiti
Modello di dati IAD
Il linguaggio di programmazione
Riepilogando
Tipi di dato
stringa contiene una stringa di caratteri alfanumericicircondata da virgolette, per esempio ”C0ju 9ik”
intero contiene un numero intero positivo, per esempio5890443
float contiene un numero decimale, con il punto comeseparatore, per esempio 87.907
boolean contiene la dichiarazione di vero oppure di falso: veroe registrato con la stringa true e falso e registratocon la stringa false
date contiene una data, nel formato YYYY-MM-DD, peresempio 2010-05-31
Esempio
Codice,Quantita,Prezzo,Data,Disponibile
C01,98,69.90,2012-02-22,true
C02,5,6.10,2012-02-22,false
declareSchema schemaEsempio = [ {Codice : string} ; {Quantita: int} ; {Prezzo: float} ;
{Data: date} ; {Disponibile: boolean} ]
Script
Le procedure che eseguono letrasformazioni di dati sono
contenute in file di testo chiamatiscript
Script
Le procedure che eseguono letrasformazioni di dati sono
contenute in file di testo chiamatiscript
Uno script e una sequenza dimoduli, ciascuno dei quali ha un ben
definito input e output
Script
Le procedure che eseguono letrasformazioni di dati sono
contenute in file di testo chiamatiscript
Uno script e una sequenza dimoduli, ciascuno dei quali ha un ben
definito input e output
L’output e anch’esso in formato csv
Script
Le procedure che eseguono letrasformazioni di dati sono
contenute in file di testo chiamatiscript
Uno script e una sequenza dimoduli, ciascuno dei quali ha un ben
definito input e output
L’output e anch’esso in formato csvDettaglio: i csv di input devonoessere validati prima di poter essereusati, la validazione e registrata in
un filecon lo stesso nome conl’estensione xml
Struttura di un modulo
OutputDataset (ModuleName)
input
custom = InputDataset
parameters
parameter1 = parvalue
parameter2 = parvalue
end
Struttura di un modulo
OutputDataset (ModuleName)
input
custom = InputDataset
parameters
parameter1 = parvalue
parameter2 = parvalue
end
Nome del datasetdi output
Struttura di un modulo
OutputDataset (ModuleName)
input
custom = InputDataset
parameters
parameter1 = parvalue
parameter2 = parvalue
end
Nome del modulo
Struttura di un modulo
OutputDataset (ModuleName)
input
custom = InputDataset
parameters
parameter1 = parvalue
parameter2 = parvalue
end
descrizione del/deidataset di input
Struttura di un modulo
OutputDataset (ModuleName)
input
custom = InputDataset
parameters
parameter1 = parvalue
parameter2 = parvalue
end
parametri delmodulo
Moduli per l’input
FileInputModule da un file csv
ScriptInputModule dall’output di uno script precedente
Moduli di integrazione
MergeModule record linkage deterministico uno-a-molti
ProductModule record linkage deterministico molti-a-molti,condizionata
Moduli di creazione e modifica colonne
ExtendDataModule crea una nuova colonna con un valore didefault
ApplyFunction modifica una colonna con l’uso di funzioni
Moduli di filtro e aggregazione
FilterModule conserva sole le righe le cui celle soddisfano unacondizione logica
AggregateModule aggrega per le combinazioni di un in sieme dicolonne, calcolando misure di sintesi (conteggio,somma, media, minimo. . . ) su altre
Moduli di servizio
SortModule ordinamento delle righe
DropModule cancellazione colonne
RenameModule modifica del nome delle colonne
// C a r i c a f i l e c o n t e n e n t e l ’ i n d i c e d i d e p r i v a z i o n edec la reSchema schemaDepr iv = [{ ID SOGGETTO : s t r i n g } ; { i n d i c e d e p r i v a z i o n e : i n t } ]D e p r i v ( F i l e I n p u t M o d u l e )p a r a m e t e r si n p u t F i l e N a m e = DEPRIVAZIONE . c s vinputSchema = schemaDepr ivend// I n p u t d a l l o s c r i p t p r e c e d e n t es o r t e d C o h o r t ( S c r i p t I n p u t M o d u l e )p a r a m e t e r ss c r i p t F i l e n a m e = C O R S O p o p o l a z i o n e 1 p a t o l o g i e . t x tinputName = C O R S O P o p o l a z i o n e 1 p a t o l o g i eexpectedSchema = customend// Ordina i l f i l e D e p r i vs o r t e d D e p r i v ( SortModule )i n p u t sschemaDepr iv = D e p r i vp a r a m e t e r sf i e l d N a m e s = [ ID SOGGETTO ]end// U n i s c e i l f i l e d e l l ’ i n d i c e d i d e p r i v a z i o n e e q u e l l o d e l l o s c r i p t p r e c e d e n t eMerge ( MergeModule )i n p u t scustom = s o r t e d C o h o r tschemaDepr iv = s o r t e d D e p r i vp a r a m e t e r spr imaryKey = [ ID SOGGETTO ]f i e l d N a m e s = [ ID SOGGETTO ]end// OutputC O R S O P o p o l a z i o n e 2 i n d i c e d e p r i v a z i o n e ( F i l eOutputModu le )i n p u t scustom = Mergep a r a m e t e r schecksum = nonec o m p r e s s i o n = noneend
Indice
Il progetto MATRICE
Infrastruttura distribuita
Caratteristiche e requisiti
Modello di dati IAD
Il linguaggio di programmazione
Riepilogando
Riepilogando
Il progetto MATRICE dell’AgeNasha sviluppato il software open source
TheMatrix
TheMatrix realizza un’architetturadistribuita
Riepilogando
Il progetto MATRICE dell’AgeNasha sviluppato il software open source
TheMatrix
TheMatrix realizza un’architetturadistribuita
Si installa localmente e legge flussi infromativi o altri filedi dati
Riepilogando
Il progetto MATRICE dell’AgeNasha sviluppato il software open source
TheMatrix
TheMatrix realizza un’architetturadistribuita
Si installa localmente e legge flussi infromativi o altri filedi dati
Il linguaggio di script implementasemplici trasformazioni di dati
Riepilogando
Il progetto MATRICE dell’AgeNasha sviluppato il software open source
TheMatrix
TheMatrix realizza un’architetturadistribuita
Si installa localmente e legge flussi infromativi o altri filedi dati
Il linguaggio di script implementasemplici trasformazioni di dati
Approfondimenti:https://github.com/hpclab/TheMatrixProject-doc