Xml in healthcare and the semantic web l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 88

XML in Healthcare and the Semantic Web PowerPoint PPT Presentation


  • 144 Views
  • Uploaded on
  • Presentation posted in: General

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. The Goal. Answer questions like:

Download Presentation

XML in Healthcare and the Semantic Web

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Xml in healthcare and the semantic web l.jpg

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


The goal l.jpg

The Goal

  • Answer questions like:

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


Healthcare the current situation l.jpg

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


Strategies l.jpg

Strategies

  • Define open standards

  • Capture information in an electronic form

  • Reduce errors related to information

  • Define distributed, web enabled, query models


Tactics l.jpg

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


Why xml l.jpg

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


Reinventing medical informatics l.jpg

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


Xml briefly l.jpg

XML Briefly

  • Simplification of SGML … markup language for the web

  • <element> content </element>

  • <element attribute=“value”>

    • <child-element another=“123”/>

  • </element>


Xml and infosets l.jpg

XML and Infosets

  • <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”);...


Regular expressions l.jpg

Regular Expressions

  • Pattern matching

  • “*TATA*”

  • bp ::= ‘G’ | ‘T’ | ‘A’ | ‘C’

  • tata ::= bp*, ‘T’, ‘A’, ‘T’, ‘A’, bp*


Xml dtd l.jpg

XML DTD

  • <!ELEMENT foo (bar*)>

  • <!ELEMENT bar (baz?)>

  • <!ATTLIST bar bop CDATA #IMPLIED>

  • <!ELEMENT baz (#PCDATA)>


Tree regular expressions l.jpg

Tree Regular Expressions

  • <foo>

    • <bar bop=“23”>

      • <baz>xxx</baz>

    • </bar>

  • </foo>

  • element foo{

    • element bar{

    • attribute bop[int]

      • element baz{‘xxx’}

      • }

    • }


Astm e2182 e2183 l.jpg

ASTM E2182/E2183

  • XML DTDs for Healthcare

  • Emphasize Human Readability

  • Flexibility

  • Openhealth reference implementation http://www.openhealth.org/ASTM

  • Compatible with HL7 CDA


Astm healthcare dtds l.jpg

ASTM Healthcare DTDs

  • clinical.header

    • compatible with HL7 CDA

  • clinical.body

    • specific to document type

    • operative.report

    • radiology.report

    • discharge.summary etc.


Astm e31 28 clinical header l.jpg

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*

}


Astm e31 28 clinical header16 l.jpg

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?}


Astm e31 28 clinical header17 l.jpg

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 }


Encounter l.jpg

Encounter

  • <encounter>

    • <patient>…</patient>

    • <provider>…</provider>

    • <date.time>…</date.time>

    • <location> … </location>

    • <encounter.id>…</encounter.id>

  • </encounter>


Xml examples l.jpg

XML examples

  • <person>

    • <person.name>

      • <prefix>Ms.</prefix>

      • <given>Susan</given>

      • <given>Samantha</given>

      • <family>Jones</family>

    • </person.name>

    • <id type=“SSN”>000-11-2233</id>


Xml examples20 l.jpg

XML examples

  • <patient>

    • <person.name> … </person.name>

    • <id authority=“New England Medical Center”>000112233</id>

  • </patient>

  • <provider>

    • <person.name><prefix>Dr.</prefix><given>Amanda</given><family>Smith</family></person.name>

  • </provider>


Using xml to generate reports l.jpg

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)


Astm opnote header 1 3 l.jpg

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>5556666</id>

<patient.encounter>

<id>ENC-11111</id>

<practice.setting>Operation</practice.setting>

<date.time>2000-10-15</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>

...


Astm opnote header 2 3 l.jpg

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 type="email">mailto:[email protected]</uri>

<telephone>617-636-7587</telephone>

</addr>

<type.code>Attending</type.code>

<function>Surgeon</function>

</provider>

...


Astm opnote header 3 3 l.jpg

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">111223344</id>

<id type="SSN" authority="SSA">111-22-3344</id>

<birth.date>1955-10-21</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>


Astm opnote body l.jpg

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>


How it works l.jpg

How it works

Browser

Apache

Servlet engine

RDF

xml:db

XSLT


Form generation l.jpg

Form generation

XML + XSLT => XHTML

Formgen.xsl

Form.xml

Defaults.xml


Workflow l.jpg

Workflow

  • Form created

  • Transform into ASTM XML format

  • XHTML editing (opnote-edit.xsl)

  • Sign finished product

  • Render as XHTML for viewing, printing

  • email to Medical Records and Billing


Workflow34 l.jpg

Workflow

generate

Billing

edit

repository

sign


Document analysis l.jpg

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


Document analysis36 l.jpg

Document analysis


Integrating binary formats l.jpg

Integrating binary formats

  • MIME <-> XMTP

  • HL7 V2

  • X12 EDI

  • DICOM


Internet telemedicine l.jpg

Internet Telemedicine

  • The OceanMed project, 1998

  • Merchant vessel, e-mail access via satellite gateway

  • Digital camera

  • Web based physician access


Slide39 l.jpg

XMTP

Gateway

Ship

SMTP

XMTP

MIME -> XML ->

XSLT ->

HTML

HTML


Xmtp consult l.jpg

XMTP Consult

36 year old male has itchy rash for 6 days

Hydrocortisone cream 1% to affected area t.i.d.|

reply


How it works41 l.jpg

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


Slide42 l.jpg

XMTP

  • From: [email protected]

  • To: [email protected]

  • Content-type: multipart/related; charset=iso-8859-1

  • ---------

  • startDocument()

    • startElement(“MIME”)

      • startElement(“From”)

        • characters([email protected])

      • endElement(“From”)

      • startElement(“Content-Type”, attribute(“charset”,”iso-8859-1”))

        • characters(“multipart/related”)

      • endElement(“Content-Type”)


The xmtp mime grove l.jpg

The XMTP/MIME grove

Content-type: text/plain

From: [email protected]

To: [email protected]

Hi Sue! See you in Boston, Joe

<MIME>

<Content-type>text/plain</Content-Type>

<From>[email protected]</From>

<Body>Hi Sue! See you in Seattle, Joe</Body>

</MIME>


The hl7 grove l.jpg

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”)


Simple building blocks l.jpg

Simple building blocks

  • XML parsers

  • XSLT transform engines

  • HTTP clients and servers


From syntax to semantics l.jpg

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


The shape of information syntax structure semantics l.jpg

The shape of informationsyntax -> structure = semantics

“…..TATA…..”

Pattern matching transform

gene

snp

tata

snp


Semantics l.jpg

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


Healthcare ontology l.jpg

Healthcare Ontology


Rdf in healthcare l.jpg

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>


Rdf is l.jpg

RDF is...

A standard syntax to represent (edge labeled) directed graphs in XML


Dlg semantic networks l.jpg

DLG: Semantic Networks

has

spine

heart

vertebrate

wings

isa

hair

mammal

bird

fly

can

walk

isa

isa

doesn’t fly

yellow

canary

ostrich

freddie

hugo


Semantic networks l.jpg

Semantic Networks

  • A way to represent natural language circa 1970s

  • A format for organizing statements in a way that can be queries by computers


Semantic networks54 l.jpg

Semantic Networks

  • “Can freddy fly?”

  • “Does hugo have wings?”

  • “Does freddy have a spine?”

  • “Of all the canaries, how many live in cages?”


Rdf n triples syntax l.jpg

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


Rdf xml syntax l.jpg

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”>

</rdf:Description>


Rdf xml syntax typed l.jpg

RDF/XML syntax: typed

<ex:Canary rdf:ID=“Freddy”>

<ex:color>Yellow</ex:color>

</ex:Canary>


Semantic analysis l.jpg

Semantic analysis

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


Web ontology language owl l.jpg

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.


Ontologies l.jpg

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.


Slide61 l.jpg

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.


Simple named classes class subclassof l.jpg

Simple Named Classesclass, 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"/>


Simple named classes class subclassof63 l.jpg

Simple Named Classesclass, 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>

  • ...

  • </owl:Class>


Defining individuals l.jpg

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>


Grapes l.jpg

Grapes

<owl:Class rdf:ID="Grape” />

<owl:Class rdf:ID="WineGrape">

<rdfs:subClassOf rdf:resource="#Grape"/> </owl:Class>

<WineGrape rdf:ID="CabernetSauvignonGrape" />


Simple properties l.jpg

Simple properties

  • Object Properties

<owl:ObjectProperty rdf:ID="madeFromGrape">

<rdfs:domain rdf:resource="#Wine"/>

<rdfs:range rdf:resource="#WineGrape"/>

</owl:ObjectProperty>


Property hierarchy l.jpg

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" />

</owl:ObjectProperty>


Domain and range l.jpg

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>


Restrictions l.jpg

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>

<rdfs:subClassOf>

<owl:Restriction>

<owl:onProperty rdf:resource="#locatedIn"/>

<owl:minCardinality>1</owl:minCardinality>

</owl:Restriction>

</rdfs:subClassOf> ...

</owl:Class>


Vintages l.jpg

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>


Datatype properties l.jpg

Datatype properties

<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


Properties of individuals l.jpg

Properties of individuals

<CaliforniaRegion rdf:ID="SantaCruzMountainsRegion" />

<Winery rdf:ID="SantaCruzMountainVineyard" />

<CabernetSauvignon rdf:ID="SantaCruzMountainVineyardCabernetSauvignon" >

<locatedIn rdf:resource="#SantaCruzMountainsRegion"/>

<hasMaker rdf:resource="#SantaCruzMountainVineyard" /> </CabernetSauvignon>


Ontology mapping l.jpg

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>


Complex constructs l.jpg

Complex constructs

  • Description Logic

    • unionOf

    • intersectionOf

    • complementOf

    • oneOf

    • disjointWith


Healthcare dl ontologies l.jpg

Healthcare DL ontologies

  • OpenGALEN http://www.opengalen.org

    • Open terminology

    • French Ministry of Health CCAM

  • SNOMED http://www.snomed.org

    • Closed DL terminology


Simplified healthcare ontology l.jpg

Simplified Healthcare Ontology

<owl:Class rdf:ID=“Provider”>

<rdfs:subClassOf rdf:resource=“#Person”/>

</owl:Class>


Simplified healthcare ontology77 l.jpg

Simplified Healthcare Ontology


Healthcare ontology78 l.jpg

Healthcare Ontology


Putting it all together l.jpg

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”


Putting it all together80 l.jpg

Putting it all together

diagnoses

genes

drugs

procedures

Electronic

medical record


Owl across schemas l.jpg

OWL across schemas

person

Left temporal tumor

SNOMED:

glioblastoma

Gene:

p53

genetics

Path-specimen

MRI


Assimilating disparate information l.jpg

Assimilating disparate information

astrocytoma

enhancing

p53

glioblastoma

Ring enhancing

...

p53.1


Umls next generation l.jpg

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


Semantic analysis84 l.jpg

Semantic analysis

Class

Class

subClass

type

repository

domain

Class

Property

type

instance


Queries several views l.jpg

Queries: several views

  • Regular expression pattern matching

  • Query as universal/existential quantification (FOPL)

  • Query as DL classification


First order predicate logic l.jpg

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”)

...


Future directions l.jpg

Future directions

  • The technology is here …

  • ASTM E31.28 http://www.astm.org

  • Define schemas and ontologies

  • Standardize data formats

  • Collect data

  • just do it!

  • [email protected]


Contact information l.jpg

Contact Information

Jonathan Borden, M.D.

Center for Brain and Cranial Diseases

St. Vincent Health System

311 W. 24th Street

Erie, PA, 16505

www.openhealth.org/ASTM

www.openhealth.org/opnote (demo)

www.w3.org/2001/sw/WebOnt

www.jonathanborden-md.com

[email protected]


  • Login