Terminology Service
Jussara Rötzsch
Based on: Ian McNicoll
Christopher Chute
What do we need?
Information Models
An EHR that is• Independent of implementation technology• Independent of clinical system developer• Enables access to multiple clinical applications• Designed for longevity and re-use
Content Specifications
Terminology
Query
Messaging
March, 2009 3© 2002‐2009, Health Level
Seven, Inc.
The Problem
• Terminology systems vary considerably in both content and structure.
– NDF‐RT– RxNorm– SNOMED‐CT– ICD‐9 and ICD‐10– CPT– etc
• Requirements of terminology vary widely• Implementation decisions of terminology vary widely• Storage formats may differ (relational database, XML,
...)
Real world use of SNOMED CT
• Clinicians– Need to be able to find the term that they need easily
– Need to use SNOMED terms correctly – good subsets are safe
– Transparent to the end user• Applications
– Need to be able to deploy SNOMED and use it reliably in their apps
– Need to be able to query reliably
1.4
March, 2009 5© 2002‐2009, Health Level
Seven, Inc.
Common Terminology Services (CTS)
• Purpose is to specify a common Application Programming Interface (API) to access
terminological content
• Client software doesn’t have to know about specific terminology data structures and/or how to access them
• Server software can plug and play with many clients
March, 2009 6© 2002‐2009, Health Level
Seven, Inc.
Common Terminology Services API
• Allows Client Software to be developed Independently from Service Server Software
• Allows Terminology Plug‐and‐Play
• Allows Client Plug‐and‐Play• Defines a “Functional Contract”
March, 2009 7© 2002‐2009, Health Level
Seven, Inc.
CTS API
Application
Service
Interface
Data
CTS
. . .
March, 2009 8© 2002‐2009, Health Level
Seven, Inc.
CTS API
CTS
MS AccessTables
Application
Service
Interface
Data
HL7VocabBrowser
HL7 Terminology
Server
Find codes having “*myelitis”
Select * from VOC_concept_designationWHERE text like ‘%myelitis’
March, 2009 9© 2002‐2009, Health Level
Seven, Inc.
CTS API –
Different Client, Same Service
IHC
Picklist
Tool
MS AccessTables
Application
Service
Interface
Data
HL7 Terminology
Server
Find codes having “*icillin”
Select * from VOC_concept_designationWHERE text like ‘%icillin’
CTS
March, 2009 10© 2002‐2009, Health Level
Seven, Inc.
CTS API –
Different Server, Same Client
IHC
Picklist
Tool
SNOMEDCT
OracleTables
Application
Service
Interface
Data
APELONDTS
Find codes having “*icillin”
Select * from conc_reprWHERE text like ‘%icillin’
AND ...
CTS
March, 2009 11© 2002‐2009, Health Level
Seven, Inc.
CTS API –
Distributed Services
IHC
Picklist
Tool
Internet Service
Application
Service
Interface
Data
Find codes having “*icillin”
<msg><soap....><filter=“*icillin”...</msg>
CTS
WebPortal
March, 2009 12© 2002‐2009, Health Level
Seven, Inc.
Common Terminology Services
Message Processing ApplicationMessage Processing Application
VocabularyVocabularyVocabulary
Message Processing Application
Message API
Vocabulary API
OpenEHR (Ocean)Terminology Server
MultipleLanguages &
subsets
Maintenance
Use cases
Terminology Server
SNOMED-CT UKextensionEnglish
Ocean TerminologyServer
• Stores named queries• Caches complex queries• Caches saved between
sessions
Process
User determines which part(s) of SNOMED‐CT hierarchy is of interest (including which
subsets)Can choose to:
– Include a node– Exclude a node (pass through)– Exclude a node and all the children of a node
(exclude)– Include the node for navigation only– Hoist the children to be peers of the parent
Blood groups – raw views
Blood Groups simple list (all terms)
• Choose all relevant blood groups• Hoist all nodes to be peer with parents
This gives a flat list of terms
ABO Blood Groups 3‐layer tree
• The hierarchy of ABO blood groups
Navigate
Select
Terminology Query language• <?xml version="1.0" encoding="utf‐8" ?>• <ots:query • xmlns:ots="urn:xmlns:oceaninformatics.biz:schema:OTSQuerySchemav2"• name="BloodTypev2"• language="en‐us" • terminology="Snomed" • cacheMode="Permanent">• <childNodes>• <concept conceptId="112143006"• operation="Navigate">• <childNodes>• <relatedConcept operation="Navigate"• relationship="116680003">• <childNodes>• <relatedConcept operation="Select"• relationship="116680003">• </relatedConcept>• </childNodes>• </relatedConcept>• </childNodes>• </concept>• </childNodes>• </ots:query>
Start at ABO blood group
Iterate down the IS_A relationship
Make all nodes with an IS_A relationshipselectable
Set root to Navigate
ABO Blood Groups 3‐layer tree restructured
Placeholder
Navigate
Select
Placeholder
ABO Blood Groups 3‐layer tree restructured code
• <?xml version="1.0" encoding="utf‐8" ?>• <ots:query • xmlns:ots="urn:xmlns:oceaninformatics.biz:schema:OTSQuerySchemav2"• name="BloodTypev2"• language="en‐us" • terminology="Snomed" • cacheMode="Permanent">• <childNodes>• <placeHolder text="Blood Types">• <childNodes>• <concept conceptId="112143006"• operation="Passthrough">• <childNodes>• <relatedConcept operation="Navigate"• relationship="116680003">• <childNodes>• <placeHolder text="Rh subtypes">• <childNodes>• <relatedConcept operation="Select"• relationship="116680003">• <constraints>• <lexicalConstraints>• <lexicalConstraint matchRule="MustMatch">• <searchString>*Rh*</searchString>• </lexicalConstraint>• </lexicalConstraints>• </constraints>• </relatedConcept>
Placeholder
Navigate
Placeholder
Select
OTS Features• Terminology support
– Support for multiple terminology• linking concepts by relationships (hierarchies)• property based
– Support for terminologies in their native structures– Access to terminologies in any database technology
• Queries– Queries may be pre‐defined and made available to all users– Queries based on queries– Provide a high‐level mechanism for identifying concepts relevant
to local requirements
OTS Features• Query language
– XML based– terminology‐independent– allows selection or navigation around relevant concepts depending on the
situation.
– powerful expressive capabilities across trees, multiple links and iterative structures
• Visual interface– hierarchical navigation– rapid text searches– visual specification of queries
• Computer Interfaces– Global Web Service interface accessible to all– Class library available for local .NET usage