Medical Intelligence in de praktijk Een kijkje in de MI straat in het UMCU
Aafke Jongsma & Michiel Vuurboom
Visie
Het uitwisselen van oplossingen en ervaringen ten behoeve van het verzamelen en ontsluiten van klinische gegevens, voor stuurinformatie en wetenschappelijk onderzoek.
15 oktober 2013
pagina 2
Architectuur
15 oktober 2013
Integratie
Transformatie
Uitgifte
Tijdelijk klaarzetten
Historisch verankeren
Schone vijver
Gegevensportaal
1-op-1 Bronformaat
•
Archief
• •
ZIS-onafhankelijk Standaarden
• • •
Analyse
Registratie • •
Staging
Autorisatie Multi-format End-user
pagina 3
Rollen en tooling Beheerder
15 oktober 2013
Ontwikkelaar
Datamanager/ Onderzoeker
Eindgebruiker
pagina 4
Keuze Data Vault
Waarom Data Vault • HUBS, SAT en LINKS • Integratie, historiciteit, procesmodellering
15 oktober 2013
pagina 5
Aantallen per component
15 oktober 2013
Component
Aantallen
Allergie/Alert
56.709
Biobank
317.000
Diagnose (dossier)
3.841.323
ECG
865.294
ECHO
1.306.666
Lab uitslagen
96.336.986
Medicatie
2.093.808
Metingen (incl. app.)
± 18.000.000
Patient
1.916.964
Radiologie
4.613.945
Vragenlijsten
Per vragenlijst extractie pagina 6
Proces nieuwe data aanvraag
Intake Scope/domein/bron/Ezis Datakwaliteit Patientselectie Pseudonimisatie/privacy Uitgifte
15 oktober 2013
Informed consent
Biobank
Baseline vragenlijst
pagina 7
Medicatie in MI Medicatie ontsluiten via de MI straat Stap 1: Bron analyse … Biobank
ECG ECHO
… … Ezis
15 oktober 2013
Bron
Staging
Integratie
Teleform
…
Transformatie
Uitgifte
Ond.
pagina 8
Bron analyse Bron Ezis • Ezis bevat ruim 1900 tabellen • Gegroepeerd per ‘domein’ • Geen documentatie, dus gokken/aannames/situaties naspelen • Voor Medicatie: alleen voorschriften van belang
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 9
Staging Staging: het tijdelijk klaarzetten voor verdere verwerking • Database server SQL 2008, dedicated voor het RDP
Ezis bron: • Staging geautomatiseerd. Metadatadriven (stuurtabellen) • SSIS package (parallel) bulk copy • SQL - stored procedures • Kleine transformaties: ntext -> nvarchar(max) Niet Ezis bron: • Maatwerk Sas jobs 15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 10
Staging Staging van Medicatie • Stuurtabel • SSIS verwerking
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 11
Data Vault - SQL Data Vault in SQL • Generieke SQL • Perfect te automatiseren Load Hub INSERT INTO hub_med_eenheid SELECT DISTINCT source.[load_dts], source.[rcrd_src], Ltrim(Cast(source.[code] AS NVARCHAR)) FROM [EZIS_Staging].[dbo].[sta_med_medicat_eenheid] AS source LEFT OUTER JOIN hub_med_eenheid AS hub ON ( hub.[code] = Ltrim(Cast(source.[code] AS NVARCHAR)) ) WHERE hub.[hub_med_eenheid_sqn] IS NULL AND source.[code] IS NOT NULL AND Ltrim(Cast(source.[code] AS NVARCHAR)) <> '';
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 12
Data Vault - SQL Load Satellite– insert new and updated INSERT INTO sat_med_eenheid ([hub_med_eenheid_sqn], [sat_med_eenhe id_ledts], [sat_med_eenheid_ldts], […]) SELECT newrecords.[sqn],NULL, Cast('2013-1003T16:00:09' AS datetime), 'EZIS', newrecords.[…], FROM (SELECT hub1.[hub_med_eenheid_sqn] AS sqn, source.[…], FROM [EZIS_Staging].[dbo].[sta_med_medicat_eenheid] AS s ource INNER JOIN hub_med_eenheid AS hub1 ON ( CASE WHEN source.[code] IS NULL THEN '?' WHEN Ltrim(Cast(source.[code] AS NVA RCHAR)) = '' THEN '?' ELSE Ltrim(Cast(source.[code] AS NVA RCHAR)) END = hub1.[code] ) EXCEPT SELECT sat.[hub_med_eenheid_sqn] AS sqn, sat.[…], FROM sat_med_eenheid AS sat WHERE sat.[sat_med_eenheid_ledts] IS NULL) AS newrecords;
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Source
Uitgifte
SAT
Ond.
pagina 13
Data Vault - SQL Load Satellite – close updated UPDATE sat_med_eenheid SET sat_med_eenheid_ledts = C.[sat_med_eenheid_ledts] FROM sat_med_eenheid AS D INNER JOIN (SELECT A.[hub_med_eenheid_sqn], A.[sat_med_eenheid_ldts], Min(B.[sat_med_eenheid_ldts]) AS SAT_MED_ EENHEID_LEDTS FROM sat_med_eenheid AS A INNER JOIN sat_med_eenheid AS B ON A.[hub_med_eenheid_sqn] = B.[hub_med_eenheid_sqn] AND A.[sat_med_eenheid_ldts] < B.[sat_med_eenheid_ldts] A.[sat_med_eenheid_ledts] IS NULL AND B.[sat_med_eenheid_ledts] IS NULL GROUP BY A.[hub_med_eenheid_sqn], A.[sat_med_eenheid_ldts]) AS C ON D.[hub_med_eenheid_sqn] = C.[hub_med_eenheid_sqn] AND D.[sat_med_eenheid_ldts] = C.[sat_med_eenheid
WHERE
Source
SAT
_ldts] WHERE D.[sat_med_eenheid_ledts] IS NULL AND C.[sat_med_eenheid_ledts] IS NOT NULL; 15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 14
Medicatie in Data Vault Data Vault modelleren • Werk processen. Unit of work
Een medicatievoorschrift is de handeling: het voorschrijven van een bepaald medicijn, met een bepaald doseerschema, door een bepaalde arts en aan een bepaalde patient. 15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 15
Data Vault techniek SAS Data Integration Studio (DI Studio) • ETL tool • Sas Base ‘onder water’ • SAS CT (Custom Transform) • Resultaat komt in SQL database
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 16
Schone vijver De ‘schone vijver’ • Data loskoppelen van de bron • Alles bronnen integreren • Pseudonimiseren DCM • Detailed Clinical Model • Nationaal vastgelegd door Nictiz in Generiek Overdrachts Dossier
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 17
Medicatie in de schone vijver - 1 Logisch model:
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 18
Medicatie in de schone vijver - 2 Logisch model vertalen naar fysiek model:
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 19
Medicatie in de schone vijver - 3 DCM’s genereren met SAS DI Studio jobs: • Bewerkelijk proces • Resultaat in SAS datasets
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 20
Uitgifte
Onderzoeksspecifieke datamarts • Verzamelen alle benodigde data uit de verschillende DCM’s van een beperkte groep patienten • SAS DI Studio jobs • Onwikkelaar maakt deze ism Datamanager/onderzoekers • Resultaat in SAS Datasets
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 21
Analyse Resultaat Datamart ‘over de schutting’ • Datamanager/Onderzoeker kan zelf met de datasets aan de gang • Gebruikt SAS Enterprise Guide • Kan queries maken, filteren, aggregeren, etc. • Process flows kunnen worden vastgelegd
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 22
Analyse in SAS Enterprise Guide
15 oktober 2013
Bron
Staging
Integratie
Transformatie
Uitgifte
Ond.
pagina 23
Samenvatting MI straat
Tool: DB:
Integratie
Transformatie
Uitgifte
Tijdelijk klaarzetten
Historisch verankeren
Schone vijver
Gegevensportaal
1-op-1 Bronformaat
SQL/SAS
•
Archief
SAS/SQL
• •
ZIS-onafhankelijk Standaarden
SAS
SQL Server 2008
• • •
Analyse
Registratie • •
Staging
Autorisatie Multi-format End-user
SAS
SAS
SAS datasets SAS Metadata
15 oktober 2013
pagina 24
Kijk ook eens op: www.medicalintelligence.info
15 oktober 2013
pagina 25