Upload
makena-shurtliff
View
219
Download
1
Tags:
Embed Size (px)
Citation preview
XML in Biomedical Informatics
Jonathan Borden, M.D.Assistant Professor of Neurosurgery, Tufts University, New England Medical Center, BostonChair, ASTM E31 Electronic Healthcare Records
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
A disaster: 1.1 Trillion $/year in the USA30-40 % overheadmostly paper basedhighly proprietary commercial systemstens of thousands of Americans die each
year due to poor information/errorsMost of the information is rendered
useless
Strategies
Define open standardsCapture information in an electronic
formReduce errors related to informationDefine distributed, web enabled,
query models
Tactics
XML, schemas, query modelSemantic Web/URI graphsData analysis based on actual
population rather than small, potentially biased, samples
Google for biomedical information
Why XML?
Widely implemented with excellent open source tools
Life of data is longer than life of application
Data driven, Platform independentFormal schema and query models
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
Simplification of SGML … markup language for the web
<element> content </element><element attribute=“value”>
<child-element another=“123”/></element>
ASTM E31.25
XML DTDs for HealthcareEmphasize Human ReadabilityFlexibilityOpenhealth reference
implementation http://www.openhealth.org/ASTM
Compatible with HL7 CDA
ASTM Healthcare DTDs
clinical.header compatible with HL7 CDA
clinical.body specific to document type operative.report radiology.report discharge.summary etc.
Healthcare Schema
Healthcare datatypes
<person> <person.name>
<prefix>Ms.</prefix> <given>Susan</given> <given>Samantha</given> <family>Jones</family>
</person.name> <id type=“SSN”>000-11-2233</id>
Healthcare datatypes
<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>
Encounter
<encounter> <patient>…</patient> <provider>…</provider> <date.time>…</date.time> <location> … </location> <encounter.id>…</encounter.id>
</encounter>
Capturing encounters
Encounters are billable units of workU.S Govt pays ~50% of the billsPayors often require associated
clinical information prior to paying bill
-This information should be aggregated for statistical purposes-
Leveraging HIPAA: attachments are key!
Collect attachments
Integrating binary formats
MIME <-> XMTPHL7 V2X12 EDIDICOM
Internet Telemedicine
The OceanMed project, 1998Merchant vessel, e-mail access via
satellite gatewayDigital cameraWeb based physician access
XMTP Consult
36 year old male has itchy rash for 6 days
Hydrocortisone cream 1% to affected area t.i.d.|
reply
How it works
Messages arrive in MIME formatMIME SAX parser ‘converts’ to XML
by SAX eventsXMTP employs XML object model
*not necessarily* serialization format ->
grove processing
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
Content-type: text/plain
From: [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>
Healthcare Groves
<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”);...
The HL7 Grove
MSH|PAT|Jones^James^Stephen^3rd|
startElement(“patient”) startElement(“person.name”) startElement(“family”)
characters(“Jones”);
endElement(“family”)
Regular Expressions
Pattern matching“*TATA*”bp ::= ‘G’ | ‘T’ | ‘A’ | ‘C’tata ::= bp*, ‘T’, ‘A’, ‘T’, ‘A’, bp*
XML DTD
<!ELEMENT foo (bar*)><!ELEMENT bar (baz?)><!ATTLIST bar bop CDATA
#IMPLIED><!ELEMENT baz (#PCDATA)>
Tree Regular Expressions
foo[bar[
@bop[int]baz[‘xxx’]]
]
<foo><bar bop=“23”>
<baz>xxx</baz>
</bar></foo>
Tree Regular Expressions
RELAXNG http://www.relaxng.org<pattern name=“foo”>
<element name=“foo”>< element name=“bar”>
• <attribute name=“bop”>– <data type=“int”/>
• </attribute>• <element name=“baz”>
– <value>xxx</value>• </element>
Simple building blocks
XML parsersXSLT transform enginesHTTP clients and servers
The shape of information
“…..TATA…..”
gene
tatasnp
snp
Pattern matching transform
How it works
Browser
Apache
XSLT
Servlet engine
xml:dbRDF
Form generation
Form.xml
Defaults.xml
Formgen.xsl
XML + XSLT => XHTML
Workflow
Form createdTransform into ASTM XML formatXHTML editing (opnote-edit.xsl)Sign finished productRender as XHTML for viewing,
printingemail to Medical Records and Billing
Workflow
generate
edit
sign
Billing
repository
Document analysis
Like gene sequences, it turns out that …Medical documentation is highly repetitiveWith ‘hot spots’ of unique informationSchema defines template filled with valuesEasily expanded into HTML for human
consumptionEasily analyzed by software
Document analysis
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...
A standard syntax to represent (edge labeled) directed graphs in XML
Edge Labeled Directed Graphs
foo
bar
baz
bop bing
isa
has
wantsplays(isa, foo, bar)(has, bar, baz)(plays, baz, bop)(wants, baz, bing)
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 Networks
vertebrate
mammal bird
canary ostrich
heartspine
hair
fly
wings
walkdoesn’t fly
yellow
isa isa
isa
has
can
freddie hugo
Semantic Networks
“Can freddy fly?”“Does hugo have wings?”“Does freddy have a spine?”“Of all the canaries, how many live in
cages?”
XML form
<patient ID=“Patient12345”>
<person.name>
<given>Jonathan</given>
<family>Borden</family>
<person.name>
<primary.care.physician>
<provider ...
RDF Graph
Person12345
Jonathan
Borden
person.name
given
family
value
value
PersonName LiteralPerson
Semantic analysis
repository
instance
Class
Class
Property
domain
type
subClass
Class
type
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?”
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”)
...
DAML+OIL
DARPA Agent Markup LanguageOntology Inferencing LanguageAdds description logic capabilities to
RDFAn extension of RDF SchemaW3C WebOnt“Semantic networks on the web using
c. 2001 technology”
Simplified Healthcare Schema
<rdfs:Class rdf:ID=“Provider”>
<rdfs:subClassOf rdf:resource=“#Person”/>
</rdfs:Class>
Simplified Healthcare Schema
Healthcare Schema
XML Namespaces
Namespace name is a URI “http://…”Namespace name may/should
identify a resource directory (RDDL)RDDL resource directory contains
various schemata, descriptions, code etc. associated with namespace
Resource Directory Description Language (RDDL)
Proposed as a solution to what a namespace name URI ought reference
Both human and machine readableXHTML Basic + XLink resourcesParsers available two weeks after
initial proposalAn XML-DEV project
RDDL
Proposed January 2001Adopted by namespaces such as
XML Schema, Schematron, RSS, Examplotron, XSLT Extension framework, SWAG
http://www.rddl.org/
DAML Schema resource
<rddl:resource id=“DAML” xl:role=“http://www.daml.org/2001/04” -- Nature xl:arcrole=“http://www.rddl.org/
purposes#schema-validation” -- Purpose xl:title=“My DAML Ontology” > <p>This is my DAML</p>
</rddl:resource>
XSLT resource
<rddl:resource xl:role=“http://www.w3.org/1999/XSL/
Transform”
xl:arcrole=“http://purl.org/rss/1.0” xl:href=“toRSS.xsl” >
Java resources
<rddl:resource xl:role=“…application/java-archive”
xl:arcrole=“…purposes/software#xslt-extension”
xl:href=“thisNS-xslt-extension.jar” ><p>The xslt extensions bound to this
namespace are packaged in a JAR</p> </rddl:resource>
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 together
Electronic medical record
genesdiagnoses
drugs
procedures
genetics
MRIPath-specimen
personGene:p53
Left temporal tumorSNOMED:
gliomblastoma
DAML across schemas
The shape of ontologies
glioblastoma
p53
...Ring enhancing
enhancing astrocytoma p53
Queries
Query as universal/existential quantification
DAML/RDF subgraph matchingXML Query modelRegular expression pattern matching
Future directions
The technology is here …Define schemas and ontologiesStandardize data formatsCollect datajust do it!
Contact Information
Jonathan Borden, M.D.Department of NeurosurgeryNew England Medical Center750 Washington StreetBoston, MA 02111617-636-5859
www.openhealth.org/ASTMwww.openhealth.org/opnote (demo)www.openhealth.org/RDF