Terminology binding in FHIR-RDF

Similar documents
Tony Mallia Edmond Scientific

FHIR RDF Sample side by side comparisons

The OWL API: An Introduction

FHIR Overview. HL7 FHIR Connectathon20 January 12, 2019

Comparison of Semantic Web serialization syntaxes

OWL DL / Full Compatability

Ontological Modeling: Part 7

FHIR Packages and Versioning

OWL 2 Update. Christine Golbreich

ISO CTS2 and Value Set Binding. Harold Solbrig Mayo Clinic

Guidance on the use of CodeableConcept

Smart Open Services for European Patients. Work Package 3.5 Semantic Services Definition Appendix E - Ontology Specifications

OMV / CTS2 Crosswalk

H1 Spring B. Programmers need to learn the SOAP schema so as to offer and use Web services.

Knowledge Representation RDF Turtle Namespace

Table of Contents. iii

RDF /RDF-S Providing Framework Support to OWL Ontologies

Semantic Web Fundamentals

Health Information Exchange Content Model Architecture Building Block HISO

LECTURE 09 RDF: SCHEMA - AN INTRODUCTION

NHS STU3 Capability Statement Profile Design

WSDL RDF Mapping. Jacek Kopecký 2005/12/14. Copyright 2005 Digital Enterprise Research Institute. All rights reserved.

Today: RDF syntax. + conjunctive queries for OWL. KR4SW Winter 2010 Pascal Hitzler 3

Orchestrating Music Queries via the Semantic Web

FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES

Building Blocks of Linked Data

Terminology as a Service HL7 AU

Adding formal semantics to the Web

Extracting knowledge from Ontology using Jena for Semantic Web

Semantic Web and ehealth

FHA Federal Health Information Model (FHIM) Terminology Modeling Process

An Alternative CIM Modeling Approach using JSON-LD

IHE IT Infrastructure Technical Framework Supplement. Patient Identifier Cross-reference for Mobile (PIXm) Rev. 1.4 Trial Implementation

Semantic Web Engineering

AutoRDF - Using OWL as an Object Graph Mapping (OGM) specification language

Logic and Reasoning in the Semantic Web (part I RDF/RDFS)

Ontological Modeling: Part 11

Introduction to Protégé. Federico Chesani, 18 Febbraio 2010

Blending FHIR RDF and OWL

OWL a glimpse. OWL a glimpse (2) requirements for ontology languages. requirements for ontology languages

Semantic Web. MPRI : Web Data Management. Antoine Amarilli Friday, January 11th 1/29

An Introduction to the Semantic Web. Jeff Heflin Lehigh University

Semantic Web Fundamentals

SNOMED CT Implementation Approaches. National Resource Centre for EHR Standards (NRCeS) C-DAC, Pune

INF3580 Semantic Technologies Spring 2012

A Semantic Web-Based Approach for Harvesting Multilingual Textual. definitions from Wikipedia to support ICD-11 revision

Semantic Web In Depth: Resource Description Framework. Dr Nicholas Gibbins 32/4037

Short notes about OWL 1

Simplified Approach for Representing Part-Whole Relations in OWL-DL Ontologies

Ontological Modeling: Part 2

Lecture Telecooperation. D. Fensel Leopold-Franzens- Universität Innsbruck

SWAD-Europe Deliverable 8.1 Core RDF Vocabularies for Thesauri

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

INF3580/4580 Semantic Technologies Spring 2017

RDF AND SPARQL. Part III: Semantics of RDF(S) Dresden, August Sebastian Rudolph ICCL Summer School

12th ICCRTS. On the Automated Generation of an OWL Ontology based on the Joint C3 Information Exchange Data Model (JC3IEDM)

FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES

Semantic Technologies and CDISC Standards. Frederik Malfait, Information Architect, IMOS Consulting Scott Bahlavooni, Independent

Knowledge Representation for the Semantic Web

ISO/IEC INTERNATIONAL STANDARD. Information technology Multimedia framework (MPEG-21) Part 21: Media Contract Ontology

Extracting Ontologies from Standards: Experiences and Issues

Ontological Modeling: Part 8

WHO ICD11 Wiki LexWiki, Semantic MediaWiki and the International Classification of Diseases

Semantic Web Technologies: Web Ontology Language

Using RDF to Model the Structure and Process of Systems

Multi-agent and Semantic Web Systems: RDF Data Structures

Web Science & Technologies University of Koblenz Landau, Germany. RDF Schema. Steffen Staab. Semantic Web

The Semantic Web. What is the Semantic Web?

OWL Tutorial. LD4P RareMat / ARTFrame Meeting Columbia University January 11-12, 2018

HL7 FHIR. Rik Smithies, HL7 UK Technical Committee Chair September 28 th 2016

User and Reference Manual

Semantics. Matthew J. Graham CACR. Methods of Computational Science Caltech, 2011 May 10. matthew graham

Ontological Modeling: Part 15

DAML+OIL: an Ontology Language for the Semantic Web

Harmonization Pattern for Unique Device Identifiers R3

Terminology Harmonization

OData Protocol JSON Format Standards Support Document

Lessons Learned from a Greenhorn Ontologist

Contents. G52IWS: The Semantic Web. The Semantic Web. Semantic web elements. Semantic Web technologies. Semantic Web Services

CSc 8711 Report: OWL API

Topic Maps Reference Model, version 6.0

Languages and tools for building and using ontologies. Simon Jupp, James Malone

Outline RDF. RDF Schema (RDFS) RDF Storing. Semantic Web and Metadata What is RDF and what is not? Why use RDF? RDF Elements

Coherence and Binding for Workflows and Service Compositions

Using UML To Define XML Document Types

XML ELECTRONIC SIGNATURES

Binding Ontologies & Coding systems to Electronic Health Records and Messages

The CEN Metalex Naming Convention

Presented By Aditya R Joshi Neha Purohit

Semantic Web Update W3C RDF, OWL Standards, Development and Applications. Dave Beckett

Ontology - based Semantic Value Conversion

XPath Expression Syntax

The National Cancer Institute's Thésaurus and Ontology

Core Technology Development Team Meeting

Day 2. RISIS Linked Data Course

OSM Lecture (14:45-16:15) Takahira Yamaguchi. OSM Exercise (16:30-18:00) Susumu Tamagawa

Opus: University of Bath Online Publication Store

Ontology Links in the Distributed Ontology Language (DOL)

Chapter 8: Enhanced ER Model

Introduction to Ontologies

Transcription:

Terminology binding in FHIR-RDF Tony Mallia 2/27/2015 Edmond Scientific Company Contents 1 Introduction...1 2 Terminology differences...2 3 Binding of instance...2 4 Mapping of FHIR (Model) to OWL...4 4.1 Type mappings...4 4.2 Substance OWL Example...5 5 ValueSets...7 5.1 Internal Valuesets...7 5.1.1 Sample ValueSet...7 5.1.2 Sample RDF ValueSet Class...8 5.1.3 Sample Concept Class...9 5.2 ValueSet Binding...9 5.2.1 Profile ValueSet Binding...9 5.2.2 RDF ValueSetBinding... 10 5.3 External ValueSets... 11 1 Introduction There are a couple of requirements which may be easy to meet but have some difficult areas. These two requirements are 1. To have achievable round trip transformation of FHIR payloads to RDF 2. To be RDF tool friendly in the constructed RDF For much of the transformation a verbatim (or transliteral) translation will work but there are difficult areas of which at least four have been identified: Terminology, Extension, ValueSet and Resource Reference. This paper is an attempt to find a middle ground on terminology and ValueSet which can meet both these requirements so that we do not have to develop two versions of RDF. This version addresses four aspects: Alignment with primitive datatypes Addition of Codeable Concept including sequence order ValueSet Definitions ValueSet Bindings 1

2 Terminology differences In FHIR the binding to terminology uses the FHIR Coding Type which has various contained values as uri, strings and code. There is no concept of including the terminology model. RDF has representations of some terminologies SNOMED CT and ICD-11. Both these representations use OWL Classes to represent the concepts in a hierarchy. A term is referenced as a URI. In SNOMED CT there are also a number of Object Properties. The bindings to a term of an element in FHIR and RDF are therefore fundamentally different. FHIR provides the code/system for a CTS to lookup the term. FHIR carries the display value in the instance payload to avoid having to lookup the term. RDF has a relationship between the element (rdfs:resource also called an owl:named Individual ) and the term class. The only relationship available is rdf:type and therefore the element must declare itself or a related individual as member of the Term OWL class. 3 Binding of instance Example of House Dust Allergen as a FHIR substance resource (from the FHIR DSTU examples). <?xml version="1.0" encoding="utf-8"?> <Substance xmlns="http://hl7.org/fhir"> <name value="house Dust"/> <type> <coding> <system value="http://snomed.info/id"/> <code value="406466009"/> <display value="house dust allergen"/> </coding> </type> </Substance> In an RDF instance binding to a SNOMED concept (defined by IHTSDO) would look like: rec:xxxx rdf:type <http://snomed.info/id/406466009> rdf:type is concatenation of system, version, and code from the FHIR payload The rec: is the instance ontology prefix identification. The RDF can now obtain closure to the concept in the SNOMED ontology if imported. What is the instance? There have been various approaches to this which range from making the substance the instance with the term type applied to it to a verbatim approach to declare coding and its components as complex types but eventually as primitives. There was resistance to making the substance a semantic type due to the difficulty of round tripping back to the FHIR structure. There was resistance to the verbatim approach since OWL does not match on strings only on URIs so it is not possible to get closure to imported terminologies. There is a middle ground to make coding (or code) an instance where the Substance instance has an object property Substance.type to the Codeable Concept which has Coding instances and text. Coding is mapped verbatim with specific annotated derived additions to make it understandable by the reasoner. There are two ways to arrive at the fully populated RDF: 1. Assemble the entities from the FHIR Resource and then compute the derivations 2. Assemble the entities from a minimal RDF and compute the FHIR structure. The RDF representation is fully populated. 2

Here are RDF target substance and coding instances represented in Manchester Syntax (from Protégé). Individual: <http://record#01339> fhir:derivation "Substance.name.value" rdfs:label "House Dust" Types: fhir:derivation "Root Tag adding FHIR Ontology prefix" fhir:substance fhir:order "3" fhir:substance.type <http://record#01351>, fhir:order "2" fhir:substance.name http://record#01353 Record#01339 is the substance instance (OWL Named Individual). Its type is equivalent to its tag since it is a root element of the resource. The name.value field containing House Dust is mapped to the rdfs:label annotation so it will show up as that in the OWL tool. The annotation on the annotation is a fhir:derivation which expresses the computation. Its type as an Object Property identified as Substance.type points to record#01351 Its name as an Object Property identified as Substance.name points to record#01353 Annotations for order define the sequence in which the properties would be rendered in a FHIR XML or JSON payload. It is derived from the Substance class definition (see Model mappings). The name field record#01353 is a fhir:string (inferred) which again has the rdfs:label computed from name.value OWL types can be inferred from the ObjectProperty Range of the Object Property (see Model mappings) and is not required in the exchange. Individual: <http://record#01353> rdfs:isdefinedby "String.value" rdfs:label "House Dust" fhir:value "House Dust"^^fhir:string-primitive Substance.type is a fhir:codeableconcept (inferred) can include multiple coding and then a text. (See Model mappings) Individual: <http://record#01351> fhir:derivation "Label cannot be computed since codings can have different values" rdfs:label "Codeable Concept" fhir:order "1" fhir:codeableconcept.coding <http://record#01349>, Individual: <http://record#01349> fhir:derivation "display.value" rdfs:label "House dust allergen" Types: fhir:derivation "From a translation of system to Ontology URI and the version and code appended to form the Term URI" <http://snomed.info/id/406466009> fhir:coding.system <http://record#01340>, fhir:coding.display <http://record#01342>, fhir:coding.code <http://record#01341> 3

Individual: <http://record#01340> rdfs:label "http://snomed.info/id" fhir:value "http://snomed.info/id/"^^fhir:uri-primitive Individual: <http://record#01341> rdfs:label "406466009" fhir:value "406466009"^^fhir:code-primitive Individual: <http://record#01342> rdfs:label "House dust allergen" fhir:value "House dust allergen"^^fhir:string-primitive Record#01349 is an instance of fhir:coding and has an rdfs:label of the Coding.display.value so it shows up (displays) in the OWL tool. The code, version and system are concatenated into the standard URI for the term which is also applied as a rdf:type to the coding thus providing the graph closure to the terminology if imported. If the terminology is not imported the system and code are still retained independently. Below is the graph of the example shown in Protégé Ontograph with closure to SNOMED (sct: ) where its label (in this case) is identical to the label of the Coding instance. 4 Mapping of FHIR (Model) to OWL 4.1 Type mappings The mapping of the CodeableConcept type from FHIR to OWL is described as follows: FHIR Model element OWL Type/Property Comment CodeableConcept type extends Element CodeableConcept.code CodeableConcept.text Class subclass of Element Object Property target Class Coding Object Property target Class string 4

Coding complex type extends Element Class subclass of Element In line with transliteral mapping from Complex Object. Object properties have to be gathered from Element Coding.id (Element.id) record: <URI> If element.id is empty it will be generated on the RDF side as it is required. Coding.extension (Element.extension) Coding.system Coding.version Coding.code Coding.display Coding.primary Coding.system Coding.version Coding.code Coding.valueset Object property target Class fhir:uri Object property target Class fhir:string Object property target Class fhir:code Object property target Class fhir:string Coding.display.value Mapped to Coding rdfs:label Object property target Class fhir:boolean Mapped to Coding rdf:type Class represents valueset Resource Tbd will cover this in discussion of extensions Allows tool to show display Verbatim Allows the Coding instance to bind to the imported Ontology if available. System is pound indirectly to URI prefix See later section 4.2 Substance OWL Example Target is defined as: Class: fhir:substance rdfs:label "Substance" fhir:resource, fhir:order "1" fhir:substance.identifier max 1 fhir:identifier, fhir:order "2" fhir:substance.name exactly 1 fhir:string, fhir:order "3" fhir:substance.type max 1 fhir:codeableconcept, fhir:order "4" fhir:substance.description max 1 fhir:string, fhir:order "5" fhir:substance.status max 1 fhir:codeableconcept, fhir:order "6" fhir:substance.effectivetime max 1 fhir:period, 5

fhir:order "7" fhir:substance.quantity max 1 fhir:quantity, fhir:order "8" fhir:substance.ingredient some fhir:substance fhir:order "9" fhir:substance.quantitymode max 1 fhir:codeableconcept, Class: CodeableConcept rdfs:comment "The set of possible coded values this coding was chosen from or constrained by.", rdfs:comment "If the element is present, it must have a value for at least one of the defined elements, an @id referenced from the Narrative, or extensions" Element, order 1 CodeableConcept.coding some Coding, order 2 CodeableConcept.text max 1 string Class: Coding Element, order "1", rdfs:comment "The identification of the code system that defines the meaning of the symbol in the code." Coding.system max 1 uri order "2", rdfs:comment "The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when it is not, the version SHOULD be exchanged." Coding.version max 1 string, order "3", rdfs:comment "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination)." Coding.code max 1 code, order "4", rdfs:comment "A representation of the meaning of the code in the system, following the rules laid out by the system." Coding.display max 1 string, order "5", rdfs:comment "Indicates that this code was chosen by a user directly - i.e. off a pick list of available codes." Coding.primary max 1 boolean, order "6", rdfs:comment "The set of possible coded values this coding was chosen from or constrained by." Coding.valueset max 1 Valueset, Datatype definitions are declared in another document. 6

5 ValueSets In mapping this to OWL, concepts are declared as named Classes (e.g. in SNOMED CT). Concepts which are contained are declared as subclasses. The fhir:define contains Concepts from a single terminology system and is therefore a superclass or a class expression. The classes come from the terminology. The depth of class hierarchy is defined by the value set expression (TBD). 5.1 Internal Valuesets 5.1.1 Sample ValueSet Here is an example of an HL7 internal Valueset instance for severity of an adverse reaction: <ValueSet xmlns="http://hl7.org/fhir"> <text> <status value="generated"/> <div xmlns="http://www.w3.org/1999/xhtml"> <h2>reactionseverity</h2> <p>the severity of an adverse reaction.</p> <p>this value set defines its own terms in the system http://hl7.org/fhir/reactionseverity</p> <table> <tr> <td> <b>code</b> <td> <b>display</b> <td> <b>definition</b> </tr> <tr> <td>severe <a name="severe"> </a> <td/> <td>severe complications arose due to the reaction. </tr> <tr> <td>serious <a name="serious"> </a> <td/> 7

<td>serious inconvenience to the subject. </tr> <tr> <td>moderate <a name="moderate"> </a> <td/> <td>moderate inconvenience to the subject. </tr> <tr> <td>minor <a name="minor"> </a> <td/> <td>minor inconvenience to the subject. </tr> </table> </div> </text> <identifier value="http://hl7.org/fhir/vs/reactionseverity"/> <name value="reactionseverity"/> <publisher value="hl7 (FHIR Project)"/> <telecom> <system value="url"/> <value value="http://hl7.org/fhir"/> </telecom> <telecom> <system value="email"/> <value value="fhir@lists.hl7.org"/> </telecom> <description value="the severity of an adverse reaction."/> <status value="draft"/> <date value="2014-09-30t18:09:16.978+10:00"/> <define> <system value="http://hl7.org/fhir/reactionseverity"/> <casesensitive value="true"/> <concept> <code value="severe"/> <definition value="severe complications arose due to the reaction."/> </concept> <concept> <code value="serious"/> <definition value="serious inconvenience to the subject."/> </concept> <concept> <code value="moderate"/> <definition value="moderate inconvenience to the subject."/> </concept> <concept> <code value="minor"/> <definition value="minor inconvenience to the subject."/> </concept> </define> </ValueSet> 5.1.2 Sample RDF ValueSet Class The Valuset defined in RDF will be a class as opposed to an individual. The class URI is the ValueSet.identifier. Class: <http://hl7.org/fhir/vs/reactionseverity> rdfs:comment "Maps from ValueSet.publisher" fhir:publisher "HL7 (FHIR Project)", rdfs:comment "Maps from ValueSet.name" rdfs:label "ReactionSeverity", rdfs:comment "Maps from valueset.description" 8

rdfs:comment "The severity of an adverse reaction.", rdfs:comment "Maps from ValueSet.telecom with system = email" fhir:e-mail "fhir"@lists.hl7.org, rdfs:comment "Maps from ValueSet.experimental" fhir:experimental "", rdfs:comment "Maps from ValueSet.telecom System = url" fhir:url "http://hl7.org/fhir", rdfs:comment "Maps from ValueSet.status" fhir:status "draft", rdfs:comment "Maps from ValueSet.date" fhir:publishdate "2014-09-30T18:09:16.978+10:00" fhir:terminology, fhir:valueset This specific ValueSet is a subclass of both fhir:terminology and fhir:valueset. Some ObjectProperties in the ValueSet are mapped to annotations of the Class. The Objectproperty ValueSet.define gets mapped to subclasses of the ValueSet Class. Some mappings are declared as annotation on an annotation. 5.1.3 Sample Concept Class Here is the define.concept for the minor code. Class: reactionseverity:minor fhir:derivation "Maps from ValueSet.define.concept.definition" rdfs:comment "Minor inconvenience to the subject.", fhir:derivation "maps from ValueSet.define.concept.code" rdfs:label "minor" <http://hl7.org/fhir/vs/reactionseverity> The URI for minor is constructed as an suffix of the URI of the system so that it is unique within the system. Prefix: reactionseverity: <http://hl7.org/fhir/vs/reactionseverity/> 5.2 ValueSet Binding 5.2.1 Profile ValueSet Binding The following fragment is from the Adverse Reaction profile for the resource. An element AdverseReaction.symptom.severity has a definition.binding which points to the ValueSet to be used in this case http://hl7.org/fhir/vs/reactionseverity. <element> <path value="adversereaction.symptom.severity"/> <definition> <short value="severe serious moderate minor"/> <formal value="the severity of the sign or symptom."/> <min value="0"/> <max value="1"/> <type> <code value="code"/> </type> <ismodifier value="false"/> <binding> <name value="reactionseverity"/> <isextensible value="false"/> <conformance value="required"/> <referenceresource> <reference value="http://hl7.org/fhir/vs/reactionseverity"/> </referenceresource> 9

</binding> <mapping> <identity value="rim"/> <map value="inboundrelationship[typecode=subj].source[classcode=obs, moodcode=evn, code=<<severity>> ].value"/> </mapping> <mapping> <identity value="v2"/> <map value="al1-4-allergy Severity Code / IAM-4-Allergy Severity Code"/> </mapping> </definition> </element> 5.2.2 RDF ValueSetBinding In the RDF equivalent, the profile element becomes an ObjectProperty: Class: fhir:adversereaction.symptom rdfs:label "AdverseReaction Symptom" fhir:element, fhir:adversereaction.symptom.severity max 1 <http://hl7.org/fhir/vs/reactionseverity> ObjectProperty: fhir:adversereaction.symptom.severity Characteristics: Functional Domain: fhir:adversereaction.symptom Range: fhir:code, <http://hl7.org/fhir/vs/reactionseverity> Thus an occurence of AdverseReaction.symptom.severity will have a range structural type of fhir:code and a semantic ValueSet of http://hl7.org/fhir/vs/reactionseverity. The instance of code will be a member of the set of codes as well as a member of the set defined by reactionseverity. When the code is assigned e.g. minor, that class is a subclass of the ValueSet and therefore conforms to the constraint however it could be typed the ValueSet itself which would not make sense. We also need to define that the terms are disjoint. We can eliminate the ValueSet type itself by declaring the ValueSet to be a union of its subclasses (closed world): Class: <http://hl7.org/fhir/vs/reactionseverity> EquivalentTo: reactionseverity:minor or reactionseverity:moderate or reactionseverity:serious or reactionseverity:severe Thus the partial definition of the RDF ValueSet would be: Class: <http://hl7.org/fhir/vs/reactionseverity> fhir:derivation "Maps from ValueSet.publisher" fhir:publisher "HL7 (FHIR Project)", fhir:derivation "Maps from ValueSet.name" rdfs:label "ReactionSeverity", fhir:derivation "Maps from valueset.description" rdfs:comment "The severity of an adverse reaction.", fhir:derivation "Maps from ValueSet.telecom with system = email" fhir:e-mail "fhir"@lists.hl7.org, fhir:derivation "Maps from ValueSet.experimental" fhir:experimental "", fhir:derivation "Maps from ValueSet.telecom System = url" fhir:url "http://hl7.org/fhir", 10

fhir:derivation "Maps from ValueSet.status" fhir:status "draft", fhir:derivation "Maps from ValueSet.date" fhir:publishdate "2014-09-30T18:09:16.978+10:00" EquivalentTo: reactionseverity:minor or reactionseverity:moderate or reactionseverity:serious or reactionseverity:severe fhir:terminology, fhir:valueset DisjointClasses: reactionseverity:minor,reactionseverity:moderate,reactionseverity:serious,reactionseverity:severe 5.3 External ValueSets External ValueSets are expected to be treated in the same way. The challenge will be to define the exclusion of the ValueSet from the allowed types since they may be declared by a Terminology Organization. It is possible to add a supplemental ontology which declares the equivalence outside the terminology ontology itself. 11