W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

75
W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente
  • date post

    15-Jan-2016
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Page 1: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

W3C HCLS 2009

Applications of SNOMED and DL in Kaiser's EHR

Peter Hendler MDKaiser Permanente

Page 2: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Two Subjects

• How Does Kaiser Currently Use SNOMED

• How Can SNOMED Be Moved to OWL(SHIQ) Expressivity

Page 3: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

The Three Layered Terminology

• There are three layers in Kaisers E.H.R. terminology system

• The providers (physicians) see the interface terminology

• It is specific to Kaiser and created by requests from our users

• This is mapped in the background to our Reference Terminology which is SNOMED

• The interface term is mapped to billing terminologies such as ICD and CPT

Page 4: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

© Kaiser Permanente | For Internal use only | page

Interface terminology

Display name heuristics developed for different areas of each masterfile

Display names are created to be user friendly and are not necessarily the same as those created as FSNs to be submitted to SNOMED

Page 5: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

© Kaiser Permanente | For Internal use only | page

Example of interface terminology to administrative and reference terminology mapping

ICD-9 493, Asthma

SNOMED 57607007, Occupational asthma (disorder)

Page 6: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

SNOMED is EL+

Multiple "Has Some" rolesMultiple IsA (more than one parent allowed)ConjunctionCan do Structural Subsumption.

EL+ can not do Negation or Disjunction  

Page 7: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 8: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Pulmonary Tuberculosis SNOMEDMultiple Hierarchies

• It IsA pneumonitis which in turn IsA– Inflammatory disorder of lower respiratory

tract

• It IsA Tuberculosis• It IsA Pulmonary disease due to

Mycobacteria

Page 9: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Pulmonary Tuberculosis SNOMEDRelationships

• Has causative agent Mycobacterium tuberculosis complex

• Has associated morphology Granulomatous inflammation

• Has finding site Lung structure• Overall a much richer structured model

than single hierarchy with no relationships

Page 10: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Pulmonary TB

• A pure Subsumption approach• It IsA Disorder• It Has Finding Site Lung Structure• It Has Causative Agent Mycobacterium

• Using Kaiser Query Tool to find Patients who have any form of Pulmonary TB

Page 11: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 12: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Create Patient Cohorts

• Given this list of Kaiser Master File Diagnosis terms, we can go into our E.H.R. and bring back the MRNs of all patients that have one of these conditions that is subsumed by pulmonary TB.

• This can be used for Quality of Care or Reporting or even Decision Support

• But we can’t do subsumption on terms that include negation or disjunction

Page 13: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Structural Subsumption in EL+

• Compare terms in Normalized form• Terms can get roles in two ways• It can have roles asserted and it can

inherit roles• In normal form a term is flattened to two

lists• Atomic Primitive Parents (with no roles)• Flattened list of all roles inherited and

asserted

Page 14: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Normalized TB Pneumonia

• 154283005pulmonary tuberculosis [Defined]

• is a=disease• ,causative agent=Mycobacterium

tuberculosis complex• {associated

morphology=granulomatous inflammation• ,finding site=lung structure}

Page 15: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Structural Subsumption

• If you have two normalized terms you can see if one is subsumed by the other

• If they have exactly the same form, they are equal.

• If one of them has everything the other does, plus one or more additional features, then it is more specialized and it is subsumed by the other

• If they share features but each has additional features, they may be siblings

Page 16: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

But Kaiser Needs Negation and Disjunction

• Non infectious Pneumonia• Non genital herpes• Infectious or Malignant disorder of lung• Burn injury of face neck or scalp

• Poisoning by antineoplastic AND/OR immunosuppressive drug

Page 17: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

More Samples of KP terms rejected because of negation or disjunction Non renal secondary hyperparathyroidism  Localized infection of skin AND/OR subcutaneous tissue Warts non-genital

Sprain or strain of wrist

Closed fracture of skull or face with intracranial hemorrhage without coma

Page 18: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 19: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

OWL Web Ontology Language

Because Owl in Winnie the Pooh spelled his name WOL.If OWL can do that, then Web Ontology Language can be spelled OWL Most often is SHIQ

But adds two things Kaiser wants.Negation and Disjunction

Up until now,   OWL/SHIQ expressivity could only be used with small ontologies of 20k or so terms in tools like Protege

Page 20: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 21: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Tableaux Reasoners

Once you add negation and/or disjunction to an ontology, you can no longer do structural subsumption.

You must go to Tableaux reasoners that use a different form of symbolic logic.

In a nutshell they test for the negative hypothesis.If A is subsumed by B, then the only thing that can not be true is that you can’t be an A and NOT a B.

If Chevy is subsumed by Vehicle, then the only thing that can’t be true is that you are a Chevy and NOT a Vehicle

Page 22: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Tableaux reasoners

The reasoner has to prove that given all of the assertions (triplets) in the ontology, that this one assertion is incompatible. This happens when all branches of the tableaux are closed with a contradiction such as A and NOT A in the same branch Pellet and FaCT++ are free open source Tableaux classifiers and they come packaged with the free tool ProtegeThey apparently need to load the entire ontology into memory

Page 23: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 24: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Protege

Using Protege you can easily produce a small version of a SNOMED like ontology and add negated and disjunctive terms.

But in a 32 bit machine you can only address 4 gigs of RAM and it turns out that is not enough to load SNOMED.

Page 25: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

A 64 bit machine can address enough memoryA 64 bit machine can have much more memory but..They cost a lot.Amazon EC2 (Elastic Compute Cloud) is able to virtualize various machines which can be run for 40 to 80 cents an hour.

These virtual machines are intended to be desktopless web servers, but you can create an image of 64 bit Ubuntu Linux which Has a nice desktop

In order to use the Desktop remotely you must install VNC or even better NoMachine NX server

Page 26: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Methods Continued

Once you have a 64 bit machine with a desktop and 14 Gigs of memory you can install 64 bit JAVA and you can install Protege

The Protege start up configuration must be changed to specify more memory for the Java Heap.

SNOMED is distributed in 3 very large text files

Kent Spackman has written a PERL script that will convert this format to OWL RDF/XML which is the input format for Protege

Page 27: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

The First Experiment

The first test was to see if the entire (the large inferred version) of SNOMED OWL/SHIQ could be loaded and navigated in Protege on a machine with 14 Gigs of RAM.

Happily it could, but it was indeed quite sluggish.

The next test was whether it could be classified. 

Page 28: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 29: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Resources Required

• Taking 37 min• Using 100% CPU• Using 5.5 Gigs of memory

Page 30: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 31: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Fully Classified

• Just under 40 minutes on High Mem machine with 14 gig RAM and 4 CPUs

• This is the inferred Class Hierarchy view• Next slide shows fully classified inferred

view of SNOMED CT

Page 32: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 33: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Ancestor Query

• On classified SNOMED OWL• United Kingdom children's cancer study group

central nervous system tumor staging system

• Has Ancestors…

• SNOMED CT Concept • Staging and scales • Tumor staging

Page 34: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 35: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Subclasses and Descendents

• Of Bilateral Pneumonia

• Bilateral bronchopneumonia• Bilateral basal pneumonia

Page 36: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 37: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

But what about negation?

So far we proved you could load and classify all of SNOMED in OWL/SHOIN xml/rdf but we haven't proved you can add negation.

For the next experiment I modeled a negated term in Protege. 

It is not recommended that humans try to write the XML by hand

Once this term was created I took the XML added it to the stated SNOMED ontologyDisorder, FindingSite Lung, Morphology Inflamation

not(CausativeAgent some InfectiousAgent)

Page 38: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 39: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Note the negation has been added

• In the “Superclasses” section on lower right of Protégé the new role can be seen.

Page 40: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 41: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Re Classify with Negation

After adding Negation ReClassified and still took 37 min. The addition of one negated term

did not effect much

Page 42: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 43: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 44: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Proof of Classification with Negation

• In the next slide we see the now fully defined Non-infectious pneumonia with children of its own after re classification of SNOMED with negation in OWL, the children (display names) are

• Allergic pneumonia,Lupus pneumonia,Traumatic Pneumonia, Chronic chemical respiratory disease, Chemical respiratory disease NOS, Endogenous lipoid pneumonia, Foreign body pneumonia, and Rheumatic pneumonia

Page 45: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 46: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

And Proof of Classification with Disjunction

Poisoning by antineoplastic AND/OR immunosuppressive

drug

Added one Disjunctive Term

Page 47: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 48: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Negation and Disjunction is OK with Single Terms

• What happens if you add massive amounts of Negation and disjunction?

Page 49: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

The Test Negated terms

• Using a small JAVA for loop and a JAVA collection with 25000 SNOMED codes for anatomic structures, it was possible to create 25000 Negated terms of the format…

• Non infectious disorder of <<anatomic structure>>

Page 50: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Negation test

Then using a text editor, these 25000 negated terms were appended to SNOMED_stated.owl

This was successfully Classified.

Page 51: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Disjunctive Terms

• Similarly a template was created from a model term in Protégé and then used to auto generate 25000 disjunctive terms of the format

• Infectious or Malignant disorder of <<anatomic location>>

Page 52: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Switching from Protege

• Protégé had a GUI and when dealing with these very large Ontologies it is a drawback to have the GUI locked for over an hour

Page 53: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Without Protege

A fully programmatic solution was wanted.

First I tried the DIG interface which is a way to send an ontology over a web service to a reasoner and then get back the classified ontology

It turns out that this approach was abandoned because the time it takes to upload and then download the ontology is greater than the time to classify the ontology

Page 54: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

OWL API

The latest way to interact with a reasoner is the OWL API, a Java API which allows you to use an in memory in process tableax reasoner.

Pellet, it turns out is dismally slow with SNOMEDBut FaCT++ is good.

A small java program was written using this API which loads a local file, classifies it, takes some statistics and then saves a copy of the classified file

This set up was able to classify all of asserted SNOMED in 35 min

Page 55: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 56: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Use OWL API

• An Eclipse JAVA project was set up using the OWL API and the FaCT++ reasoner outside of the Protégé tool

• This way the classification could be done without human interaction with a GUI

Page 57: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Look at XML of OWL

• A Sample Negated Term

Page 58: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

xml first part

<owl:Class rdf:about="#NEG_TEST_0">   <rdfs:label xml:lang="en" >   TestTermNegated_0 (disorder)</rdfs:label>    <owl:equivalentClass>    <owl:Class>            <owl:intersectionOf rdf:parseType="Collection">          <rdf:Description rdf:about="#SCTID_64572001"/>            <owl:Restriction>               <owl:onProperty rdf:resource="#SCTID_363698007"/>               <owl:someValuesFrom rdf:resource="#SCTID_136652009"/>            </owl:Restriction>

Page 59: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

xml middle part

            <owl:complementOf>              <owl:Restriction>                <owl:onProperty rdf:resource="#SCTID_246075003"/>                <owl:someValuesFrom rdf:resource="#SCTID_36272005"/>              </owl:Restriction>             </owl:complementOf>      

Page 60: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

xml final part

        </owl:intersectionOf>    </owl:Class>        </owl:equivalentClass></owl:Class>

Page 61: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Negation test

Using both Protege with the built in FaCT++ as well as the set up with OWL API I was able to classify this new test copy of SNOMED with 25000 negated terms in  just under an hour.

Note that this significantly slowed down the task

Page 62: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Disjunction Was Added

A similar approach was taken for DisjunctionA test term was modeled in a small SNOMED like ontology in Progege

The XML from that was taken as a templateA java program was written to generate 25000 disjunctive terms of the form

Infectious or neoplastic disorder of <<body part>>

Page 63: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

xml for disjunction (fragment)

                        <owl:onProperty rdf:resource="#SCTID_246075003"/>                        <owl:allValuesFrom>                            <owl:Class>                                <owl:oneOf rdf:parseType="Collection">                                    <rdf:Description rdf:about="#SCTID_49872002"/>                                    <rdf:Description rdf:about="#SCTID_409822003"/>                                </owl:oneOf>                            </owl:Class>                        </owl:allValuesFrom>             

Page 64: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

The Mother of All Classifications

25000 of the negated terms as well as 25000 of the disjunctive terms were added to the asserted nearly 500,000 terms of the SNOMED file  and then classified

It took about 1.2 hours to classify everything. (see screen shot)

I believe that 25000 negated and 25000 disjunctive terms is an adequate stress test for for how a SHIQ/OWL version of SNOMED  would behave.

Page 65: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 66: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Resources Used

• The following screen shot shows the task taking 38.5% of a total of 8 Gigs of RAM and consuming 100% CPU

• The machine was “pegged” for 1hr and 20 minutes classifying this test Ontology which contained all of SNOMED stated and 25000 Negated as well as an additional 25000 Disjunctive test terms

Page 67: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 68: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 69: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 70: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

A Peek At a New Reasoner

• Using an entirely different flavor of reasoner, the resources needed could be reduced by orders of magnitude.

• In fact, a $350 Asus EEE netbook was able to classify the test ontology in a few minutes.

• Is it complete? I can’t test that myself, but the spot checks I did on the results were correct

Page 71: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

The experimental CB reasoner

Ian Horrocks of Oxford is one of the experts in reasoner design for expressive ontologies like OWL

He and Yevgeny Kazakov (the author of CB) have created a forward chaining reasoner that classifed all of asserted SNOMED in about 30 seconds.  When the 50000 extra terms were added it took one minute.

Page 72: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.
Page 73: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Next Steps

-SNOMED can move to a more expressive DL with negation and disjunction-It is no longer limited because of technical shortcomings of hardware and software-Policy will have to determine the flavors of negation and disjunction to allow and which hierarchy they must reside in (situation?)-Tooling needs to be modified to handle new expressivity

   

Page 74: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Any Volunteers?

• Who would be willing to explore a joint project with Kaiser to move our SNOMED EL+ terminology to OWL?

Page 75: W3C HCLS 2009 Applications of SNOMED and DL in Kaiser's EHR Peter Hendler MD Kaiser Permanente.

Questions?