Achieving Healthcare Information Interoperability: A Wiki-like Approach for Cutting the Gordian Knot
David Booth, Ph.D. KnowMED, Inc.
Latest version of these slides: @@@@ Associated paper: @@@@
Achieving Healthcare Information Interoperability: A Wiki-like - - PowerPoint PPT Presentation
Achieving Healthcare Information Interoperability: A Wiki-like Approach for Cutting the Gordian Knot David Booth, Ph.D. KnowMED, Inc. Latest version of these slides: @@@@ Associated paper: @@@@ Imagine a world 2 Imagine a world in which
David Booth, Ph.D. KnowMED, Inc.
Latest version of these slides: @@@@ Associated paper: @@@@
2
3
in which all healthcare systems speak the same language with the same meanings covering all healthcare.
4
Tower of Babel, Abel Grimmer (1570-1619)
5
OBX|1|CE|3727-0^BPsystolic, sitting||120||mmHg| <Observation xmlns="http://hl7.org/fhir"> <system value="http://loinc.org"/> <code value="8580-6"/> <display value="Systolic BP"/> <value value="120"/> <units value="mm[Hg]"/> </Observation>
HL7 v2.x FHIR
6
7
Sender
HL7 v2.x
Receiver
FHIR Transform
OBX|1|CE|3727-0^BPsystolic, sitting||120||mmHg| <Observation xmlns="http://hl7.org/fhir"> <system value="http://loinc.org"/> <code value="8580-6"/> <display value="Systolic BP"/> <value value="120"/> <units value="mm[Hg]"/> </Observation>
8
language
Sender
HL7 v2.x
To RDF From RDF
Receiver
FHIR
Syntactic Syntactic RDF to RDF m1 m1 Semantic m2
9
Why RDF?
Country Address FirstName LastName Email City ZipCode Blue Model
10
Why RDF?
HomePhone Town ZipPlus4 FullName Country Red Model
11
Why RDF?
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Country
12
Why RDF?
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Country subClassOf sameAs hasLast hasFirst
13
Why RDF?
(Using Red & Blue models)
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country subClassOf sameAs hasLast hasFirst
Multiple models peacefully coexist
14
Why RDF?
– No difference!
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country Country Address FirstName LastName Email City ZipCode Blue Model Country
15
Why RDF?
– No difference!
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country HomePhone Town ZipPlus4 FullName Country Red Model
16
Why RDF?
– No difference!
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country HomePhone Town ZipPlus4 Country FirstName LastName Email Green Model Country
17
language
Sender
HL7 v2.x
To RDF From RDF
Receiver
FHIR
Syntactic Syntactic RDF to RDF m1 m1 Semantic m2
18
d1:obs042 a m1:PatientObservation ; m1:code "3727-0" ; m1:description "BPsystolic, sitting" ; m1:value 120 ; m1:units "mmHg" . OBX|1|CE|3727-0^BPsystolic, sitting||120||mmHg|
RDF
Sender
HL7 v2.x
To RDF m1 m1
19
CONSTRUCT { ?observation a m2:Observation ; a m2:BP_systolic ; m2:value ?value ; m2:units m3:mmHg ; m2:position m3:sitting . } WHERE { ?observation a m1:PatientObservation ; m1:code "3727-0" ; m1:value ?value ; m1:units "mmHg" . }
RDF to RDF m1 m1 m2
20
RDF
d2:obs-091 a m2:Observation ; m2:system "http://loinc.org/" ; m2:code "8580-6" ; m2:display "Systolic BP" ; m2:value 107 ; m2:units "mm[Hg]" . <Observation xmlns="http://hl7.org/fhir"> <system value="http://loinc.org/"/> <code value="8580-6"/> <display value="Systolic BP"/> <value value="107"/> <units value="mm[Hg]"/> </Observation>
Receiver
FHIR
From RDF m2
21
concepts
22
23
– Ontologies v:Patient rdfs:subClassOf v:Person .
– Rules { ?p a v:Patient . } => { ?p a v:Person . } – Programs, e.g., Python, Java, C, etc.
by a URI
24
25
– Machine processable – Identified by URI
Upload Upload Lookup / Download Lookup / Download
26
– Transforms internal format to RDF – Provides instance data in RDF – Class and property URIs indicate the vocabularies/data models used – Class and property URIs MUST be dereferenceable to definitions, i.e., as Linked Data
– Receives RDF data, and uses the wiki to lookup transformations for vocabularies / data models it does not understand – Downloads the desired transformations – Applies the transformations to the instance data
– Transforms from RDF to internal format
27
28
definitions
parties
Definitions Metadata / Definitions Instance Data
29
– Source vocabulary/data model – Target vocabulary/data model
– Objective: Number of downloads, Author, Date, etc. – Subjective: Who/how many like it, reviews, etc.
– E.g., allow commercial transformations?
30
– Centralized place to go – Decentralized contribution
31
– Vocabularies – Data models – Terms – Transformations
Upload Upload Lookup / Download Lookup / Download
32
transformations?
quality? E.g., number of downloads, who is using which transforms, etc.
transformations too?
34
BACKUP SLIDES
35
36
37
I speak:
I understand:
38
I speak:
I understand:
39
Standard
– Only need n transformations instead of (n-1)*(n-1)
40
Std 1
standardization!
Std 2 Std 3
41
and data models
standards
42
information in machine-processable form
43
linked to existing ones
concepts to be obtained automatically Best available candidate: RDF
44
45
1.Semantics, not syntax
46
1.Semantics, not syntax 2.Self describing – derefenceable URIs
47
1.Semantics, not syntax 2.Self describing 3.Schema promiscuous
48
Why RDF?
Country Address FirstName LastName Email City ZipCode Blue Model
49
Why RDF?
HomePhone Town ZipPlus4 FullName Country Red Model
50
Why RDF?
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Country
51
Why RDF?
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Country subClassOf sameAs hasLast hasFirst
52
Why RDF?
(Using Red & Blue models)
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country subClassOf sameAs hasLast hasFirst
Multiple models peacefully coexist
53
Why RDF?
– No difference!
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country Country Address FirstName LastName Email City ZipCode Blue Model Country
54
Why RDF?
– No difference!
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country HomePhone Town ZipPlus4 FullName Country Red Model
55
Why RDF?
– No difference!
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country HomePhone Town ZipPlus4 Country FirstName LastName Email Green Model Country
56
1.Semantics, not syntax 2.Self describing 3.Schema promiscuous 4.Neutral, mature, international standard
57
1.Semantics, not syntax 2.Self describing 3.Schema promiscuous 4.Neutral, mature, international standard Best available candidate for a universal healthcare exchange language!
58
59
How?
Sender1 Sender2
HL7 v2.x FHIR
Receiver
CSV Universal Healthcare Exchange Language
60
Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
Syntactic Syntactic RDF to RDF RDF to RDF m1 m2 m1 m3 Semantic
RDF
61 Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
(Fictitious examples for illustration) OBX|1|CE|3727-0^BPsystolic, sitting||120||mmHg|
Sender1
HL7 v2.x
62 Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
(Fictitious example for illustration)
Sender2
FHIR
<Observation xmlns="http://hl7.org/fhir"> <system value="http://loinc.org"/> <code value="8580-6"/> <display value="Systolic BP"/> <value value="107"/> <units value="mm[Hg]"/> </Observation>
63 Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
d1:obs042 a m3:Observation ; a m3:BP_systolic ; m3:value 120 ; m3:units m3:mmHg ; m3:position m3:sitting . d2:obs-091 a m3:Observation ; a m3:BP_systolic ; m3:value 107 ; m3:units m3:mmHg .
Receiver
CSV
64 Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF Syntactic m1 m2
RDF
65 Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
d1:obs042 a m1:PatientObservation ; m1:code "3727-0" ; m1:description "BPsystolic, sitting" ; m1:value 120 ; m1:units "mmHg" . OBX|1|CE|3727-0^BPsystolic, sitting||120||mmHg|
RDF
Sender1
HL7 v2.x
To RDF Syntactic m1 m1
66 Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
RDF
d2:obs-091 a m2:Observation ; m2:system "http://loinc.org/" ; m2:code "8580-6" ; m2:display "Systolic BP" ; m2:value 107 ; m2:units "mm[Hg]" . <Observation xmlns="http://hl7.org/fhir"> <system value="http://loinc.org/"/> <code value="8580-6"/> <display value="Systolic BP"/> <value value="107"/> <units value="mm[Hg]"/> </Observation>
Sender2
FHIR
To RDF m2
67
Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
Syntactic Syntactic RDF to RDF RDF to RDF m1 m2 m1 m3 Semantic
RDF
68 Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
CONSTRUCT { ?observation a m3:Observation ; a m3:BP_systolic ; m3:value ?value ; m3:units m3:mmHg ; m3:position m3:sitting . } WHERE { ?observation a m1:PatientObservation ; m1:code "3727-0" ; m1:value ?value ; m1:units "mmHg" . }
RDF to RDF m1 m1 m3
69 Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
CONSTRUCT { ?observation a m3:Observation ; a m3:BP_systolic ; m3:value ?value ; m3:units m3:mmHg . } WHERE { ?observation a m2:Observation ; m2:system "http://loinc.org/" ; m2:code "8580-6" ; m2:value ?value ; m2:units "mm[Hg]" . }
RDF to RDF m2 m3
70 Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
d1:obs042 a m3:Observation ; a m3:BP_systolic ; m3:value 120 ; m3:units m3:mmHg ; m3:position m3:sitting . d2:obs-091 a m3:Observation ; a m3:BP_systolic ; m3:value 107 ; m3:units m3:mmHg .
To CSV
Receiver
CSV
Syntactic m3
71
Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
Syntactic Syntactic RDF to RDF RDF to RDF m1 m2 m1 m3 Semantic
RDF Ideally, transformations should be standardized
72
be based on free and open vocabularies
– But proprietary can be used internally
73
Yosemite Manifesto
language.
either: (a) is an RDF format directly; or (b) has a standard mapping to RDF.
languages should be leveraged by defining standard mappings to RDF, and any new standards should have RDF representations.
universal healthcare exchange language.
Data principles, so that each concept URI is de-referenceable to its free and
Sign at http://YosemiteManifesto.org/
74
– At least two senders and one receiver
– Syntactic & semantic transformations – Selecting and applying transformations – Incorporate new vocabularies & deprecate old – Privacy & security – Hosting concept definitions
75
WIKITRANSFORMIA
For Health Data Languages Upload Upload Lookup / Download Lookup / Download
76
Goal: True semantic interoperability
77
78
interrelated concepts, many domains
toward zero as committee size grows
technology continually changing
79
80
Sender1 Sender2 Receiver
81
82
83
84
Sender1 Sender2 Receiver
85
Sender1 Sender2
HL7 v2.x FHIR
Receiver
CSV Universal Healthcare Exchange Language
86
Sender1 Sender2
HL7 v2.x FHIR
m1 to m3 m2 to m3 HL7 v2.x to RDF FHIR to RDF RDF to CSV
RDF
Receiver
CSV
87
Sender1 Receiver Sender2
HL7 v2.x FHIR CSV
RDF to RDF RDF to CSV
Semantic Transformations Syntactic Transformations Syntactic Transformations
RDF
88
RDF to RDF
Semantic Transformations Syntactic Transformations Syntactic Transformations
RDF
89
RDF
Semantic Transformations Semantic Transformations Semantic Transformations
90
Sender1 Sender2
HL7 v2.x FHIR
HL7 v2.x to RDF FHIR to RDF RDF to CSV
Receiver
CSV
Syntactic Semantic (RDF) Syntactic RDF to RDF RDF to RDF
91
Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
Syntactic Syntactic RDF to RDF RDF to RDF m1 m2 m1 m3 Semantic
92
Sender1 Sender2
HL7 v2.x FHIR
To RDF To RDF To CSV
Receiver
CSV
RDF to RDF RDF to RDF m1 m2 m1 m3
93
Sender1 Sender2
HL7 v2.x FHIR
RDF to RDF RDF to RDF HL7 v2.x to RDF FHIR to RDF RDF to CSV Receiver
CSV Semantic Transformations Syntactic Transformations Syntactic Transformations
94
Why RDF?
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country subClassOf sameAs hasLast hasFirst
95
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Country subClassOf sameAs hasLast hasFirst
96
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country
97
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country
98
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country
99
HomePhone Town ZipPlus4 Country FirstName LastName Email Green Model
100
Country Address FirstName LastName Email City ZipCode Blue Model
101
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country Country Address FirstName LastName Email City ZipCode Blue Model Country
102
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country HomePhone Town ZipPlus4 FullName Country Red Model
103
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country HomePhone Town ZipPlus4 Country FirstName LastName Email Green Model Country
104
HomePhone Town ZipPlus4 FullName Country Red Model
105
Why RDF?
HomePhone Town ZipPlus4 FullName Country Address FirstName LastName Email City ZipCode Red Model Blue Model Green Model Country subClassOf sameAs hasLast hasFirst
106
Universal Healthcare Exchange Language
107
Universal Healthcare Exchange Language Sender1 Sender2 Receiver
108
– Sitting versus Standing
=> { ?bp a v:BP . } .
109 Sender1 Receiver Sender2
HL7 v2.x FHIR
RDF to RDF RDF to RDF HL7 v2.x to RDF FHIR to RDF
110 Sender1 Receiver Sender2
HL7 v2.x FHIR
HL7 v2.x to RDF FHIR to RDF
111 Sender1 Receiver Sender2
HL7 v2.x FHIR
(Fictitious examples for illustration)
112
Yosemite Manifesto
113
Yosemite Manifesto
114
Yosemite Manifesto
115
Yosemite Manifesto
116
Yosemite Manifesto