Presentation is loading. Please wait.

Presentation is loading. Please wait.

XML in Healthcare and the Semantic Web

Similar presentations


Presentation on theme: "XML in Healthcare and the Semantic Web"— Presentation transcript:

1 XML in Healthcare and the Semantic Web
Jonathan Borden, M.D. Center for Brain and Cranial Diseases St. Vincent Health System, Erie PA Invited Expert, W3C Web Ontology Working Group Chair, ASTM E31.28 Electronic Healthcare Records

2 The Goal Answer questions like:
“Of all the patient’s I operated on for brain tumors between , matching severity of pathology and matching clinical status and who have the “P53” mutation, did PCV chemotherapy improve the cure rate at five years?”

3 Healthcare: The current situation
A disaster: 1.1 Trillion $/year in the USA 30-40 % overhead mostly paper based highly proprietary commercial systems tens of thousands of people die each year due to poor information/errors Most of the information is rendered useless

4 Strategies Define open standards
Capture information in an electronic form Reduce errors related to information Define distributed, web enabled, query models

5 Tactics XML, schemas, query model Semantic Web/URI graphs
Data analysis based on actual population rather than small, potentially biased, samples Google for biomedical information

6 Why XML? Widely implemented with excellent open source tools
Life of data is longer than life of application Data driven, Platform independent Formal schema and query models

7 Reinventing medical informatics
Get the data format right and the rest will follow Structured information has been the holy grail of medical informatics for the last 30+ years XML is the culmination of 30+ years of work in structured information Time to do something

8 XML Briefly Simplification of SGML … markup language for the web
<element> content </element> <element attribute=“value”> <child-element another=“123”/> </element>

9 XML and Infosets <patient> startElement(“patient”)
<person.name> <given>James</given><given>Steven</given> <family>Smith</family><suffix>3rd</suffix> </person.name> startElement(“patient”) startElement(“person.name”) startElement(“given”);characters(“James”);...

10 Regular Expressions Pattern matching “*TATA*”
bp ::= ‘G’ | ‘T’ | ‘A’ | ‘C’ tata ::= bp*, ‘T’, ‘A’, ‘T’, ‘A’, bp*

11 XML DTD <!ELEMENT foo (bar*)> <!ELEMENT bar (baz?)>
<!ATTLIST bar bop CDATA #IMPLIED> <!ELEMENT baz (#PCDATA)>

12 Tree Regular Expressions
<foo> <bar bop=“23”> <baz>xxx</baz> </bar> </foo> element foo{ element bar{ attribute bop[int] element baz{‘xxx’} }

13 ASTM E2182/E2183 XML DTDs for Healthcare Emphasize Human Readability
Flexibility Openhealth reference implementation Compatible with HL7 CDA

14 ASTM Healthcare DTDs clinical.header clinical.body
compatible with HL7 CDA clinical.body specific to document type operative.report radiology.report discharge.summary etc.

15 ASTM E31.28 Clinical Header ch.person.type = person.name, id*, addr*
ch.organization.type = organization.name?, id*, addr* clinical.header = element clinical.header{ ch.attrib, id*, version.number?, confidentiality.code*, patient.encounter?, authenticator*, legal.authenticator*, intended.recipient*, originator?, originating.organization?, transcriptionist?, provider+, service.actor*, patient, events?, codes?, related.document* }

16 ASTM E31.28 Clinical Header service.actor =
element service.actor { ch.attrib, xlink.attrib?, (person.name|organization.name), id*, addr*, type.code?, function?, date.time? } provider = element provider{ ch.attrib, ch.actor.type, function?}

17 ASTM E31.28 Clinical Header patient.encounter =
element patient.encounter{ ch.attrib, (id? & practice.setting? & date.time? & location) } service.target.model = ch.actor.type & birth.date? & gender? patient = element patient { ch.attrib,xlink.attrib?, service.target.model }

18 Encounter <encounter> </encounter>
<patient>…</patient> <provider>…</provider> <date.time>…</date.time> <location> … </location> <encounter.id>…</encounter.id> </encounter>

19 XML examples <person> <person.name> </person.name>
<prefix>Ms.</prefix> <given>Susan</given> <given>Samantha</given> <family>Jones</family> </person.name> <id type=“SSN”> </id>

20 XML examples <patient> </patient> <provider>
<person.name> … </person.name> <id authority=“New England Medical Center”> </id> </patient> <provider> <person.name><prefix>Dr.</prefix><given>Amanda</given><family>Smith</family></person.name> </provider>

21 Using XML to generate reports
Browser form ASTM E2182 XML format XSLT transform for display in browser XSL-FO transform for printable form (e.g. PDF)

22

23

24 ASTM Opnote: Header (1/3)
<operative.report xmlns="http://www.openhealth.org/ASTM/operative.report"> <clinical.header xmlns="http://www.openhealth.org/ASTM/clinical.header"> <id> </id> <patient.encounter> <id>ENC-11111</id> <practice.setting>Operation</practice.setting> <date.time> </date.time> <location>New England Medical Center</location> </patient.encounter> <provider> <person.name> <prefix type="title">Dr.</prefix> <given>Jonathan</given> <given>Alan</given> <family>Borden</family> <suffix type="degree">M.D.</suffix> </person.name> ...

25 ASTM Opnote: Header (2/3)
<id type="license" authority="MA">12345</id> <addr type="office"> <house.number>750</house.number> <street>Washington Street</street> <city>Boston</city> <state>MA</state> <zip>02111</zip> <uri <telephone> </telephone> </addr> <type.code>Attending</type.code> <function>Surgeon</function> </provider> ...

26 ASTM Opnote: Header (3/3)
<patient> <person.name> <given>John</given> <given type="MI">Q</given> <family>Doe</family> <suffix>Jr.</suffix> </person.name> <id type="patient.identifier" authority="NEMC"> </id> <id type="SSN" authority="SSA"> </id> <birth.date> </birth.date> </patient> <codes> <coded.value code.system="CPT">63051</coded.value> <coded.value code.system="CPT">69990</coded.value> <coded.value code.system="ICD9">XXX.21</coded.value> </codes> </clinical.header>

27 ASTM Opnote: Body <clinical.body>
<preoperative.diagnosis>Right Frontal Brain Tumor</preoperative.diagnosis> <postoperative.diagnosis>same, probable Astrocytoma</postoperative.diagnosis> <procedure>Right Frontal Craniotomy for Excision of Brain Tumor</procedure> <anesthesia>GETA</anesthesia> <indications><p>The patient presents with severe headaches and blurred vision. An MRI demonstrates a large cystic irregularly shaped mass within the right frontal lobe.</p> </indications> <description> <p>The patient had application of the external fiducial markers and was brought down to the MRI suite where a head MRI was obtained using the frameless stereotactic (3D) protocol. The image set was transferred using the DICOM protocol ... </p> </description> <estimated.blood.loss>100cc</estimated.blood.loss> <patient.condition>Stable, extubated</patient.condition> <disposition>SICU</disposition> </clinical.body> </operative.report>

28

29

30

31 How it works Browser Apache Servlet engine RDF xml:db XSLT

32 Form generation XML + XSLT => XHTML Formgen.xsl Form.xml
Defaults.xml

33 Workflow Form created Transform into ASTM XML format
XHTML editing (opnote-edit.xsl) Sign finished product Render as XHTML for viewing, printing to Medical Records and Billing

34 Workflow generate Billing edit repository sign

35 Document analysis Like gene sequences, it turns out that …
Medical documentation is highly repetitive With ‘hot spots’ of unique information Schema defines template filled with values Easily expanded into HTML for human consumption Easily analyzed by software

36 Document analysis

37 Integrating binary formats
MIME <-> XMTP HL7 V2 X12 EDI DICOM

38 Internet Telemedicine
The OceanMed project, 1998 Merchant vessel, access via satellite gateway Digital camera Web based physician access

39 XMTP Gateway Ship SMTP XMTP MIME -> XML -> XSLT -> HTML HTML

40 XMTP Consult 36 year old male has itchy rash for 6 days
Hydrocortisone cream 1% to affected area t.i.d.| reply

41 How it works Messages arrive in MIME format
MIME SAX parser ‘converts’ to XML by SAX events XMTP employs XML object model *not necessarily* serialization format -> grove processing

42 XMTP From: joe.patient@home.com To: sue.doctor@openhealth.org
Content-type: multipart/related; charset=iso startDocument() startElement(“MIME”) startElement(“From”) endElement(“From”) startElement(“Content-Type”, attribute(“charset”,”iso ”)) characters(“multipart/related”) endElement(“Content-Type”)

43 The XMTP/MIME grove Content-type: text/plain <MIME>
From: To: Hi Sue! See you in Boston, Joe <MIME> <Content-type>text/plain</Content-Type> <Body>Hi Sue! See you in Seattle, Joe</Body> </MIME>

44 The HL7 Grove Non-XML syntax => XML Infoset
MSH|PAT|Jones^James^Stephen^3rd| startElement(“patient”) startElement(“person.name”) startElement(“family”) characters(“Jones”); endElement(“family”) endElement(“person.name”) endElement(“patient”)

45 Simple building blocks
XML parsers XSLT transform engines HTTP clients and servers

46 From syntax to semantics
Layer 1: syntax XML defines syntactic constrains on text other specs define syntactic constraints on binary data Layer 2: datatypes integers define mapping from lexical space to value space “10”base10 -> 10, “10”base2 -> 2

47 The shape of information syntax -> structure = semantics
“…..TATA…..” Pattern matching transform gene snp tata snp

48 Semantics Layer 3: hierarchy of classes
the set of individuals of a given datatype or object type define a class Ontology: a description of a collection of classes, their properties and the relationships between them

49 Healthcare Ontology

50 RDF in Healthcare <rdf:Description about=“…/patient/12345”>
<lab:HIV>positive</lab:HIV> <lab:CD4>100</lab:CD4> </rdf:Description> <path:Biopsy about=“…/patient/12345”> <path:description>The brain demonstrates areas of PML including viral inclusion bodies </path:description> </path>

51 A standard syntax to represent (edge labeled) directed graphs in XML
RDF is... A standard syntax to represent (edge labeled) directed graphs in XML

52 DLG: Semantic Networks
spine has heart vertebrate isa wings hair mammal bird fly walk can isa isa doesn’t fly yellow canary ostrich freddie hugo

53 Semantic Networks A way to represent natural language circa 1970s
A format for organizing statements in a way that can be queries by computers

54 Semantic Networks “Can freddy fly?” “Does hugo have wings?”
“Does freddy have a spine?” “Of all the canaries, how many live in cages?”

55 RDF N-triples syntax Subject predicate object .
ex:Freddy rdf:type ex:Canary . ex:Canary rdfs:subClassOf ex:Bird . ex:Freddy ex:color “Yellow” . Bird isa Canary Freddie yellow

56 RDF/XML syntax <rdf:Description rdf:ID=“Freddy”>
<rdf:type rdf:resource=“#Canary”/> <ex:color>Yellow</ex:color> </rdf:Description> <rdf:Description rdf:ID=“Canary”>

57 RDF/XML syntax: typed <ex:Canary rdf:ID=“Freddy”>
<ex:color>Yellow</ex:color> </ex:Canary>

58 Semantic analysis “Of all the patient’s I operated on for brain tumors between , matching severity of pathology and matching clinical status and who have the “P53” mutation, did PCV chemotherapy improve the cure rate at five years?”

59 Web Ontology Language (OWL)
Problem (restated): "Tell me what wines I should buy to serve with each course of the following menu. And, by the way, I don't like Sauterne." OWL is a language for defining Web ontologies and their associated knowledge bases.

60 Ontologies Ontology is a term borrowed from philosophy that refers to the science of describing the kinds of entities in the world and how they are related. In OWL, an ontology is a set of definitions of classes and properties, and constraints on the way those classes and properties can be employed.

61 OWL includes taxonomic relations between classes datatype properties, descriptions of attributes of elements of classes, object properties, descriptions of relations between elements of classes, Datatype properties and object properties are collectively the properties of a class.

62 Simple Named Classes class, subClassOf
Root classes: Every individual in the OWL world is a member of owl:Thing. sample wines domain, we create three root classes: Winery, Region, and ConsumableThing. <owl:Class rdf:ID="Winery"/> <owl:Class rdf:ID="Region"/> <owl:Class rdf:ID="ConsumableThing"/>

63 Simple Named Classes class, subClassOf
<owl:Class rdf:ID="PotableLiquid"> <rdfs:subClassOf rdf:resource="#ConsumableThing" /> </owl:Class> <owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="#PotableLiquid"/> <rdfs:label xml:lang="en">wine</rdfs:label> <rdfs:label xml:lang="fr">vin</rdfs:label> ...

64 Defining individuals <Region rdf:ID="CentralCoastRegion" />
is identical to <owl:Thing rdf:ID="CentralCoastRegion" /> <owl:Thing rdf:about="#CentralCoastRegion"> <rdf:type rdf:resource="#Region"/> </owl:Thing>

65 Grapes <owl:Class rdf:ID="Grape” />
<owl:Class rdf:ID="WineGrape"> <rdfs:subClassOf rdf:resource="#Grape"/> </owl:Class> <WineGrape rdf:ID="CabernetSauvignonGrape" />

66 Simple properties Object Properties
<owl:ObjectProperty rdf:ID="madeFromGrape"> <rdfs:domain rdf:resource="#Wine"/> <rdfs:range rdf:resource="#WineGrape"/> </owl:ObjectProperty>

67 Property hierarchy <owl:ObjectProperty rdf:ID="WineDescriptor" /> <owl:Class rdf:ID="WineColor"> <rdfs:subClassOf rdf:resource="#WineDescriptor" /> ... </owl:Class> <owl:ObjectProperty rdf:ID="hasWineDescriptor"> <rdfs:domain rdf:resource="#Wine" /> <rdfs:range rdf:resource="#WineDescriptor" /> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="hasColor"> <rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" /> <rdfs:range rdf:resource="#WineColor" />

68 Domain and range <owl:ObjectProperty rdf:ID="locatedIn"> ...
<rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing" /> <rdfs:range rdf:resource="#Region" /> </owl:ObjectProperty>

69 Restrictions <owl:Class rdf:ID="Wine">
<rdfs:subClassOf rdf:resource="#PotableLiquid"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> <owl:onProperty rdf:resource="#locatedIn"/> </rdfs:subClassOf> ... </owl:Class>

70 Vintages <owl:Class rdf:ID="Vintage">
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#vintageOf"/> <owl:minCardinality>1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:ObjectProperty rdf:ID="vintageOf"> <rdfs:domain rdf:resource="#Vintage" /> <rdfs:range rdf:resource="#Wine" /> </owl:ObjectProperty>

71 Datatype properties dt;wineYear ::= integer > 1700
<owl:Class rdf:ID="WineYear" /> <owl:DataTypeProperty rdf:ID="yearValue"> <rdfs:domain rdf:resource="#WineYear" /> <rdfs:range rdf:resource="&dt;wineYear"/> </owl:DataTypeProperty> dt;wineYear ::= integer > 1700

72 Properties of individuals
<CaliforniaRegion rdf:ID="SantaCruzMountainsRegion" /> <Winery rdf:ID="SantaCruzMountainVineyard" /> <CabernetSauvignon rdf:ID="SantaCruzMountainVineyardCabernetSauvignon" > <locatedIn rdf:resource="#SantaCruzMountainsRegion"/> <hasMaker rdf:resource="#SantaCruzMountainVineyard" /> </CabernetSauvignon>

73 Ontology mapping sameClassAs sameIndividualAs samePropertyAs
<owl:Class rdf:ID="TexasThings"> <owl:sameClassAs> <owl:Restriction> <owl:onProperty rdf:resource="#locatedIn" /> <owl:allValuesFrom rdf:resource="#TexasRegion" /> </owl:Restriction> </owl:sameClassAs> </owl:Class>

74 Complex constructs Description Logic unionOf intersectionOf
complementOf oneOf disjointWith

75 Healthcare DL ontologies
OpenGALEN Open terminology French Ministry of Health CCAM SNOMED Closed DL terminology

76 Simplified Healthcare Ontology
<owl:Class rdf:ID=“Provider”> <rdfs:subClassOf rdf:resource=“#Person”/> </owl:Class>

77 Simplified Healthcare Ontology

78 Healthcare Ontology

79 Putting it all together
Biomedical information has many vocabularies - each in its own namespace genetics “Bio ML” pathology “SNOMED” surgery “CPT” medicine “ICD” radiology “DICOM”

80 Putting it all together
diagnoses genes drugs procedures Electronic medical record

81 OWL across schemas person Left temporal tumor SNOMED: Gene:
glioblastoma Gene: p53 genetics Path-specimen MRI

82 Assimilating disparate information
astrocytoma enhancing p53 glioblastoma Ring enhancing ... p53.1

83 UMLS next generation Ontologies exposed as OWL on web
Cross references exposed as OWL on web Enables searching for and reasoning about terms relating to eachother Enables searching for and reasoning about terms from multiple terminologies

84 Semantic analysis Class Class subClass type repository domain Class
Property type instance

85 Queries: several views
Regular expression pattern matching Query as universal/existential quantification (FOPL) Query as DL classification

86 First Order Predicate Logic
(for-all ?pat (exists ?surgeon (last-name ?surgeon “Borden”)) (exists ?procedure (craniotomy ?procedure) (patient ?procedure ?pat) (surgeon ?procedure ?surgeon) (between (date ?procedure) “1996” “2000”) (sequence ?procedure “p53”) ...

87 Future directions The technology is here …
ASTM E31.28 Define schemas and ontologies Standardize data formats Collect data just do it!

88 Contact Information Jonathan Borden, M.D. Center for Brain and Cranial Diseases St. Vincent Health System 311 W. 24th Street Erie, PA, 16505 (demo)


Download ppt "XML in Healthcare and the Semantic Web"

Similar presentations


Ads by Google