Search



Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

The recommended approach for implementing the IPS Terminology within a software application is to use a terminology server. In a service-oriented architecture, software like Electronic Health Records and Data Analytics tools can delegate all terminology operations to a terminology server. The IPS Terminology can be loaded into Snowstorm, the open-source terminology server developed by SNOMED International.

a. Download the IPS Terminology

Before you can start using the IPS Terminology, you must first download the IPS Terminology package from the IPS Terminology website. The IPS Terminology package uses the same format as

Downloading the IPS Terminology

The IPS Terminology is available in XXXXX. The package follows the RF2 (Release format 2) release file specification. Being an extraction from However, the IPS Terminology package is a subset of the complete SNOMED CT international release, this package containing only includes active content components in the SNAPSHOT release format and . It does not include historical content or , complete metadata values. All these , or stated Description Logic axiom definitions. All these features are available in any complete SNOMED CT Edition.

Download the The IPS Terminology's RF2 zip package with the RF2 release, it will be used for importing into in the terminology server in the following steps.

Downloading the Terminology Server

import process described below, using Snowstorm as an example. Please refer to your terminology server documentation for further instructions.

Anchor
3b
3b
b. Download Snowstorm

Snowstorm is an Snowstorm is the open-source terminology server developed and maintained by SNOMED International and will be used as an example in this guide. A similar process can be followed with other compatible terminology servers, please refer to each terminology server user's guide for specific instructions on installing and loading RF2 packages. D. To download the most recent release of Snowstorm from the , please visit Snowstorm's GitHub repository releases page, and follow the installation instructions.

...

Anchor
3c
3c
c. Load the IPS Terminology

...

into Snowstorm

The IPS Terminology package is prepared designed to be loaded into an empty Snowstorm instance, instead of the complete International Edition of SNOMED CTterminology server instance. Follow the same standard steps described described in the Snowstorm configuration guide to create a code system and import the IPS Terminology contentpackage into the MAIN branch as the only terminology in the Snowstorm instance.

After the import process is complete, the IPS terminology data Terminology content will be available for access through the terminology server API's APIs.

...

 

Anchor
3d
3d
d. Access the IPS Terminology via the FHIR API

Snowstorm offers a standard FHIR API that implements the HL7 FHIR Terminology Module specification. This provides access to the terminology using FHIR Operations and returning content structured as FHIR Resources, the full specification of the SNOMED CT representation in FHIR is available in the FHIR documentation.

Base URL

The terminology server API will be exposed in through the server that the Snowstorm instance is running (. For example, if the server is using port 8080 on your local machine - i.e.)

Then the base URL for the FHIR API would be:

FHIR Operations

The FHIR terminology services API can support a range of common implementation use cases, including powering searches in a user interface, filtering content for specific clinical fields (by applying an ECL constraint to the terms entered by the user), and restricting results to a particular clinical domain (e.g., diseases, procedures, substances). In the following sections, we explain some common FHIR terminology operations that can be used for these implementation purposes.

CodeSystem.$lookup

The FHIR CodeSystem lookup operation returns information about a concept (e.g. definition status and descriptions) based on the given SNOMED CT concept identifier (code). For exampleAccessing this URL via a web browser will default to the server API documentation site (i.e.):

This page contains all the API calls that can be used to interact with the terminology server. Browsers like the one provided by SNOMED International use these calls to present the terminology content to the user. Clinical or analytics tools can use the same APIs to leverage the power of the IPS Terminology to support queries and run ECL Expressions.

For example, this URL uses the getConcept method of the API, providing a search string and an ECL constraint, displaying all the procedures that include words that start with the string "append":

https://snowstorm.ihtsdotools.org/snowstorm/snomed-ct/MAIN/concepts?activeFilter=true&term=append&ecl=%3C%3C%2071388002%20%7CProcedure%20(procedure)%7C&offset=0&limit=50

In this case, the search criteria are sent in the "term" and "ecl" URL Query parameters. The Swagger documentation is a guide to all the available API calls, parameters, and return formats.

The parameters include the "system" (i.e. "sct") and the "code" to look for (e.g. "900000000000508004"). One of the use cases for the lookup operation is to retrieve terms and properties for a concept id received from another system.

CodeSystem.$validate-code

The validate-code operation is used to validate if a code is included in the given code system. For example:

The parameters include the "system" (i.e. "sct") and the "code" to validate (e.g. "155574008"). One example of a use case for validation is to check if a given conceptId is a valid SNOMED CT concept.

ValueSet.$expand

The expand operation retrieves a list of concepts that are part of a value set, with the option of filtering by a text string. For example:

In this example, the URL parameters include an implicit value set (i.e. "fhir_vs=ecl/") defined using an ECL Expression, with a text filter using the "filter" parameter (i.e. "filter=append"). The example above will find the procedures ("< 71388002"), which match the search string "append".

Examples

The following example URLs use the public Snowstorm API provided by SNOMED International. Please click on these links to see an example of each response.

e. Use the

...

IPS Terminology in a software application

Using a terminology server is the recommended approach to the integration of the IPS Terminology in a software application. In a service-oriented architecture, software like Electronic Health Records and Data Analytics tools can offload all terminology operations on a terminology server. Consuming the APIS like the one described before, it's possible to allow the user to the HL7 FHIR terminology services API, as described in the previous section, a clinical application can enable the user to search for clinical elements in the IPS Terminology, constraining the search for . The search can be constrained to a specific domain , like (e.g. Conditions or Procedures, ) using the ECL Languagequery language.

An example of data entry fields bound to the IPS terminology can be seen on this demo page:

For example, as shown below, a Procedure data entry field can be bound to the procedure codes in the IPS terminology using the ECL query "< 71388002 |Procedure|" in a ValueSet.$expand operation. Note: The ECL query is shown in its terse, percent-encoded form within the URL below (i.e. "%3C%2071388002")

This API call (which includes the term filter "append") can be used to create a user interface similar to this one:

Image Added

The terminology code system and code system version used to refer to the IPS Terminology are shown below:

  • Code system
    • coding.system = "http://snomed.info/sct"
  • Code system version
    • coding.version = "http://snomed.info/sub/999991001000101"
    • coding.version = "http://snomed.info/sub/999991001000101/version/<publicationDate>"
      • e.g., "http://snomed.info/sub/999991001000101/version/20220430"

...

If a terminology server is not available, it 's is possible to use the IPS Free Set (available at XXXXXX), but create a plain list from the RF2 files, but the most advanced features described in this guide (e.g., like concept hierarchies or ECL constraints will not be available.

Updating to new versions of the IPS Terminology

and ECL queries) are not supported by the HL7 IPS Free Set. Users without access to a terminology server can also browse the IPS Terminology and execute ECL queries (for design-time use) in the IPS Terminology browser provided by SNOMED International

Anchor
3f
3f

f. Store IPS Terminology codes in FHIR resources

The FHIR IPS Implementation Guide describes the FHIR resources that are collected into an IPS bundle. Some data elements in these resources use the datatype "CodeableConcept" and are bound to a SNOMED CT value set. These data elements can be populated with codes from the IPS Terminology via a Terminology Server. For example, a response for a ValueSet.$expand operation, which selects all procedures, may look like this:

Image Added

The "expansion.contains" property lists all the matches, and each one includes the necessary values for populating a CodableConcept data element. For example, this might be used to populate the "code" data element in a FHIR Procedure resource.

Image Added

The CodableConcept data type uses a Coding property to represent the details of the concept. Using SNOMED CT, the properties "System", "Code" and "Display" of a Coding should always be completed. For example, this  is a fragment of a FHIR Procedure resource instance:

Image Added

The "version" property of the Coding data type is optional and can be completed if this value is obtained from the terminology server.

Anchor
3g
3g

g. Update the IPS Terminology to a New Version

As SNOMED CT evolvesThe IPS Terminology is updated annually, following the evolution of SNOMED CT and the HL7 FHIR Terminology binding specifications. In each release, some concepts might be inactivated, and some new concepts may appear. Only active concepts are represented in the IPS Terminology, and the A full SNOMED CT edition will include the complete history tracking of these changes, including inactive content and historical associations with proposed replacements. However, is available in the complete edition of SNOMED CT.With each new release, it's necessary any future versions of the IPS Terminology will include only the content that is active at the time of release. Therefore, to update the IPS Terminology in the Snowstorm terminology server

XXXXXXXXXXXXXXXXXXXXXX

  • What do you do if you want codes added to the IPS?

, it is necessary to remove all indices and reimport the new IPS content.

To do this using the command-line tool of Snowstorm, the import parameters should include "–delete-indices":

java -Xms2g -Xmx4g -jar target/snowstorm*.jar --delete-indices --import=<Absolute-path-of-SNOMED-CT-RF2-zip>

If the Snowstorm instance is updated to a complete SNOMED CT edition, the first import should delete indexes in the same way. However, the second and subsequent import of a complete SNOMED CT edition can be performed as usual. These will result in incremental updates since the previous edition.

Anchor
3h
3h

H. Request New Content for

...

the IPS Terminology

The content of the IPS Terminology is defined by the terminology bindings decided in created by the HL7 FHIR IPS group. The IPS Terminology will be updated to match new versions of this terminology binding definitions. All inquiries about the content of the IPS Terminology should be directed to : XXXXXXXXXXXXX info@snomed.org or support@snomed.org.