HL7 RIM V3 OWL Ontology for Semantic Web

- Issues, rationale and design decisions

Helen Chen, Ph.D
Advanced Clinical Applications
Agfa Healthcare
http://www.agfa.com/w3c/hchen


This ontology expresses concepts and relationships defined in HL7 V3 Ballot May 2006, which can be found at HL7 V3 Resources

Some name conventions and comments are borrowed from HL-RIM Ontology developed by Bhavna Orgun .

1. Overview

HL7 RIM is developed based on UML. Act,Entity, Role are top level classes in healthcare domain. In order to express 1 to many mapping relationship between instances of these key classes, three top classes, namely, Participation, Act_Relationship and Role_link are also defined.

HL7 RIM was developed with UML, and Object-Oriented Design approach. It is easy to mistake the concept of a Class in UML for a Class (set) in OWL, and also directly equal class.attribute in OO design to rdf:Property in owl.

The biggest difference between these two paradiam is the attributes. in OO, a subclass will inherit all attributes of its super classes. In owl, given {?A ?P ?B. ?C rdfs:subClassOf ?B}, we can to assert => {?C ?P ?B}.

2. Foundation Classes

2.1 Act Class

The Act class diagram presents a hierachy of classes in ACT. It is easy to mistake this class diagram for a comprehensive caterogy of classes defined as ACT in HL7. Classification of ACT is defined in HL7 Vocabuary domain for ActClass (CNE), which contains codified value for Act.classCode attribute.

ACT Ontology is developed based on the ActClass values and levels.

2.1.1 Issue 1 - ActClassContainer:

"ActClassContainer" is a sub-class of Act root class. It is used to group a set of acts sharing a common context. Examples of such acts include a set of acts commit to compose, transmit and store clinical documents. A careplan consists of cohesive steps of actions could also be of a ActClassContainer.

I believe these two levels of classification are more based on data structure rather than the ontology of ACT, i.e. types of ACT in healthcare domain. Therefore, the RIMV3OWL ontology does not include ActClassContainer and ActClassConposition subclasses.

ActClassDocument is promoted to a level 2 concept, which is a subclass of ACT root class directly.

One possible need for such "container class" could be that ActDocument, ActEntry etc are meant to indicate a fixed sequenece and multiple parts to a clincial document, while ActObservation could be a one-step (componement) action.

2.1.2 Issue 2 - ActClassExtract

HL7 defines an extract "represents the part of a patient record conveyed in a single communication. It is drawn from a providing system for the purposes of communication to a requesting process (which might be another repository, a client application or a middleware service such as an electronic guideline engine), and supporting the faithful inclusion of the communicated data in the receiving system."

One of the constrait on this class is "An extract cannot contain another extract." The reason for such restriction is not known to the readers of the HL7 Act ClassCode domain. When modelled in owl as a sub-class of Act, this restriction does not apply to the definition of ActExact, nor to its supper class Act. It is perfectly OK for a class in OWL to include a member of its own kind. Thus this HL7 restriction can be not tranlated into RIMV3OWL ontology.

2.1.3 Issue 3 - relationsip "A may contain B"

In the Act ClassCode domain, HL7 specified a hierchy for act related to clinical documents. In addition to the categorization by "level" (subclass), there is "A may contain B" type of relationship.

The typical "A contains B" is modelled with "isPartOf" relationship. But it is difficult to model "may".

2.2 Role Class

2.2.1 Ontological Role Type

In HL7, "role" is one of the top-level class. Role is further classified into the following three categories (sub-classes)

The first two types are captured in the RIMV3OWL ontology. OWL Ontology naturally express the ontological relationship such as "same, instanceOf, hasGeneralization (supper-class)". Therefore, there is no RoleOntological class in the RIMV3OWL ontology.

2.3 RoleLink Class

Although RoleLink is defined as a class in RIM, it is really about dependency/relationships between two kinds of roles. In an owl model, this relationship is naturally modelled by triples. In our RIMV3OWL ontology, RoleLink is a property, with both domain and range of "Role" class.

HL7 defines types of dependency between two roles in RoleLinkType.

I found the following defination in RoleLinkType domain very puzzling:

Under most circumstances, level 1 "relatedLink" will be defined as a rdf:Property, with level 2 concept "hasDirectAuthorOver" as sub-property. However, I failed to understand why something like "suspension, license restrictions, etc " could be a relationship between two roles.

I plan to post the question to HL7 when possible. Meanwhile, the ontological structure specified in RoleLinkType is captured in RIMV3OWL as it is.

3. RIM Data Value

Every data type is modelled as a class. The top level class of all data type classes is "Any".

3.1 Different "set" data type

HL7 defines a basic data type "set". HL7 also defines many types of set data with individual names, for example: Act.id is of type SET, where II is a basic data type called "Instance Identifier".

In Bhavna's model, each SET data type is a subclass of SET class. In OWL ontology, when define a "range" for a given property, i.e. act.id, it is assumed to be a "set of such data type", unless it has "maxCardinality = 1" constraint.

Therefore, this RIMV3OWL ontology does not have subclasses of different data type for SET datatype.

4. Properties

4.1 Cardinality Constraints

HL7 RIM is using Object Oriented design, the entities and relationship are expressed in UML. The cardinality constraints are expressed in OWL using owl:minCardinality, owl:maxCardinality and owl:functionalProperty construct according to the following principles:

4.2 Act Status

Act class is a specialization of a process defined in the top level process ontology. HL7 defines the following state of an act as following

According to this state diagram, there are following value for Act.status

In addition, a "normal" state is defined in HL7 to encompass all states of an act, but excludes "nullified" and "obsolete" which represent unusual terminal states for the life-cycle