SNOMED CT is one of the foundational terminology systems used in electronic health record (EHR) systems, along with the LOINC and RxNorm terminologies. SNOMED CT contains over 300,000 concept terms and more than 1,300,000 relationship between those concepts. Thus, it is important to have effective tooling that enables modelers to browse, search, and visualize these ontological structures while applying them in the design of clinical information models. Binding SNOMED CT concepts to information model elements, and constraining coded values, is an integral requirement for the Clinical Information Modeling Initiative (CIMI).

Wikipedia contains a nice summary of the primary four components used in SNOMED CT structure:

  1. Concept Codes – numerical codes that identify clinical terms, primitive or defined, organized in hierarchies
  2. Descriptions – textual descriptions of Concept Codes
  3. Relationships – relationships between Concept Codes that have a related meaning
  4. Reference Sets – used to group Concepts or Descriptions into sets, including reference sets and cross-maps to other classifications and standards.

I have been working on new Eclipse-based tooling for integrating terminology with information modeling. This post provides a short summary, and a bunch of screenshots, for this tooling that uses IHTSDO RESTful services to read (but not modify) SNOMED CT terminology. I expect to have a test build available for download sometime in November. This post describes only the functionality for browsing and displaying details of SNOMED CT concepts within an Eclipse workbench.  I will write several follow-up posts about using this terminology browser as part of an integrated informatics development workbench to:

  • Bind concepts and value sets with UML clinical information models
  • Use terminology binding in UML models to display concept meaning within SNOMED CT
  • Generate FHIR ValueSet resources from SNOMED CT refsets
  • Generate domain-specific Java APIs for FHIR profiles, including value set bindings that are imported from SNOMED CT refsets

First, let’s start with the current IHTSDO web browser application for SNOMED CT. You can access and test this yourself at http://browser.ihtsdotools.org. A screenshot is included below (click the image for a larger view) that shows the concept taxonomy and details for the clinical finding, “Bleeding from nose”.

IHTSDO WebBrowser

IHTSDO has defined an initial set of RESTful services for accessing the terminology database; these same services are used by the web browser application. For example, to retrieve a JSON representation for the concept “Bleeding from nose”, click on this link:

http://browser.ihtsdotools.org:3000/snomed/en-edition/v20140731/concepts/249366005

These RESTful services are used to retrieve all terminology content for presentation in an Eclipse workbench. The following screenshot illustrates the Eclipse tooling interface that I have implemented:
Eclipse Terminology Workbench

A primary goal of my design is to provide an interface that follows recommended Eclipse presentation and use. An Eclipse view with the terminology concept taxonomy is included on the left (but you can drag this view to other positions, based on your personal preferences or task workflow), and I use the shared Properties view with tabs that are displayed for the selected terminology concept. The following two screenshots show Descriptions and Relationships for the “Bleeding gums” concept selected in the taxonomy view. Later in this article I will describe the Refsets tab and the graphical diagram view.

Descriptions
Relationships-Stated

The Relationships tab includes a toggle button to display either the stated or the inferred relationships for a concept. Stated relationships are defined using the selected concept as their source, whereas inferred relationships include those inherited from parent concepts in the hierarchy. Inferred relationships for “On examination – bleeding gums” are shown below:
Relationships-Inferred

There is a basic search capability to find concepts in the Taxonomy view. Click on the flashlight icon in the Taxonomy toolbar, which opens a search dialog like that shown on the left below.  You can choose a top-level parent concept to limit search results, e.g. find only concepts with a description containing “systolic” and under the Clinical Finding hierarchy. The search results are displayed in a second dialog as shown below on the right. When you select one of these concepts and click OK, the Taxonomy view is expanded to show the selected concept.

SearchDialog   SearchResults

The graphic display utilizes an approach that has been a core capability of my hyperModel tooling for almost 15 years. I call them Dynagrams, because they enable a dynamic diagram layout that is created on-the-fly from an underlying model. My original use case was to display a diagram of the types and element relationships defined in a large XML Schema. I later adapted this for displaying UML models, OWL ontologies, and now for SNOMED CT terminology concepts. These diagrams use a notation based on the UML class diagram standard.

With the dynagram display, you can:

  • Click on any concept in the taxonomy and use the context menu to Show Dynagram.
  • Click on any concept or relationship type in the dynagram to see its detail in the Properties View.
  • Double-click on any dynagram concept to create a new dynagram from that point of view e.g., a new diagram for “Face structure”.
  • Right-click on a concept in the dynagram and choose Show Associations to include relationships from that concept.
    • This was done for “Bleeding from nose” in the dynagram shown in the first Eclipse screenshot. Relationships can also be shown for any other concept in the diagram.
  • Change “depth” of relationship traversal from the original concept.  By default, 3 relationships are included and nodes beyond that depth are shown collapsed with a blue color.

In the following dynagram (click for a larger view), I expanded the depth to 15 so that I include all parents up to the root SNOMED CT Concept.

Expanded Concept Dynagram

Finally, access to SNOMED CT reference sets (refset) is an important part of integration with information models. A refset defines a group of concepts based on some clinical criteria, and is often used to specify an enumerated “value set” of codes required in an interoperability standard such as CDA or FHIR. There are no clinical refsets included in the IHTSDO International Edition, but there are numerous useful refsets defined in the Australian extension. You can choose to view the Australian extension in the IHTSDO web browser application, where you can select the “Adverse reaction type reference set”, and then select the Members tab in the details view to see a list of 15 members in this refset. Two screenshots from the IHTSDO web browser application are included below.

IHTSDO-AU-WebBrowser  IHTSDO-AU-WebBrowser-Members

By switching to the Australian release in my Eclipse tooling, you can browse to the Australian reference sets in the Taxonomy view, as shown below:

Australian-Taxonomy

Select a reference set in the taxonomy, then select the Refsets tab in the Eclipse Properties view. There are two sub-tabs: Member Of and Members. The first lists any refsets that contain the selected concept (the selected concept is a Member Of these reference sets). As shown here, select the “Bleeding (finding)” concept and discover that it is included in five Australian reference sets.

Australian-RefsetMemberships

When you select one of the reference set concepts in the Taxonomy, the Members sub-tab displays an enumerated list of concept members. For the Australian release, select “Specimen collection procedure reference set” and see the Members as shown below.

Australian-RefsetMembers