Two key factors determine the ability of an instance of a terminology server to provide access to a particular SNOMED CT versioned edition. Firstly, the data that forms part of that versioned edition must be loaded into a data store that the terminology service is able to access. Secondly, unless the terminology server only has access to one versioned edition, the terminology server must allow the edition and version to be specified by the client application (see Select Edition and Version).
The table below shows some of the different ways in which a terminology server may be designed and configured to enable access to a specific SNOMED CT edition or versioned edition Most of the options in the table require the client application to select the edition and version to which they require access.
The current version(s) used by its client applications
The version(s) its client applications were using prior to their most recent updates.
Any versions of a single edition| A specific instance of a terminology server has access a datastore that contains the data required to access any version of a single edition.| Referring to a server instance implicitly identifies the edition.Any version of that edition can be selected by specifying the effective time for a snapshot.| Recommended for client applications that are processing, reporting, or analyzing data collected using a range of different versions of a single edition. Specific versions of several editions| A specific instance of a terminology server accesses a datastore that only contains data for several specific versions of a several editions. The edition and version can be selected from those available.| Recommended for client applications that require access to multiple editions.
Any versions of several editions| A specific instance of a terminology server has access a datastore that contains data from the most recent full release for several editions. The edition can be selected from those available.Any version of the selected edition can be selected by specifying the effective time for a snapshot.| Recommended for client applications that are processing, reporting or analyzing data collected with using a range of different versions of more than one edition.
The table below summarizes the recommended ways to identify a SNOMED CT edition or versioned edition using a URI.
Fixed versioned edition
A specific instance of a terminology server accesses a datastore that only contains data for a single .
Referring to a server instance implicitly identifies the edition and version.
Specific versions of a single edition
A specific instance of a terminology server accesses a datastore that only contains data for several specific versions of a single .
Referring to a server instance implicitly identifies the edition. The version can be selected from those available.
Recommended minimum for client applications only requiring access to a single edition.The accessible versions should include:
Module identifier and version date
Edition
Example:
The {moduleId} is an SCTID that identifies the edition. It does this by referring to the moduleId of the most dependent module in the edition. The other modules in the edition are specified by the module dependencies of that module.
Version
Example:
The {versionDate} is the effectiveTime of the set of module dependency reference set rows for this version of this edition. This is formally represented using the format YYYYMMDD (see Time data type).
Uniform Resource Identifiers
Edition
Example:
The SNOMED CT URI Standard defines globally unique identifiers for a wider range of terminology components. These URIs include the {moduleId} and {versionDate} noted above (see URI Standard section 2.1 URIs for Editions and Versions).
Note: The URI http://snomed.info/sct/731000124108/version/20200301 refers to the 2020-01-31 version of the US Edition, which is formally defined to include the 731000124108 | US National Library of Medicine maintained module | and the two International Edition modules on which it depends (900000000000207008 | SNOMED CT core module | and 900000000000012004 | SNOMED CT model component module |).
Versioned Edition
Examples:
—
Other Options
Edition
Key, path or alias for an edition Example:
A less formal approach that provides a more meaningful representation of the edition and version can be used.
The example shown here is currently used by the Snowstorm terminology server to refer to the US Edition of SNOMED CT.
Note: This Snowstorm path refers to an extended version of the formally defined US edition. In addition to the formally defined content noted above, it also includes the 5991000124107 | SNOMED CT to ICD-10-CM rule-based mapping module | and several other additional modules distributed by SNOMED International in separate release packages. The inclusion of these additional extension modules creates an extended versioned edition (see 5.2.2 Enabling Access to Extended Editions).
Versioned Edition
Combination key, path, or alias with the version date Example:
—
{moduleId}900000000000207008{versionDate}20200131http://snomed.info/sct/{moduleId}http://snomed.info/sct/900000000000207008http://snomed.info/sct/{moduleId}/version/{versionDate}http://snomed.info/sct/900000000000207008/version/20200131
http://snomed.info/sct/731000124108/version/20200301{server-url}/MAIN/SNOMEDCT-US{server-url}/MAIN/SNOMEDCT-US/2020-03-01When working with SNOMED CT, it is critical to ensure that release packages are correctly validated and imported. Proper validation safeguards data integrity and ensures that terminology services, applications, and users can rely on accurate and consistent content. This section outlines the general integrity checks required for all release packages, additional checks for extensions, and the requirements for importing release files.
To validate the integrity of SNOMED CT release packages:
Consistency of distribution files
All imported files must be from the same release.
The set of files must be complete and include all mandatory components.
Delta releases
Previously imported data must be from the version immediately prior to the delta release being imported.
Snapshot or full releases
Pre-existing data must be removed before import, or
The process must overwrite duplicates so that:
Component identifiers
Must have a valid partition identifier for the type of component.
Must include a valid check-digit.
Field constraints
All fields must comply with data type, size, and value constraints defined in the Release File Specifications.
Concept integrity
All concepts must have at least two active descriptions:
One Synonym (900000000000013009).
Other consistency checks
May be applied as needed to ensure overall data integrity.
When importing an extension, additional checks must be performed to ensure proper installation and compatibility:
Recognition and approval
The extension must be recognized and formally approved by an appropriate authority.
Compatibility
Terminology service providers must ensure that terminology services provide access to all the data in selected versioned views of a selected SNOMED CT edition.
Applies to all editions and versioned views the service can access.
Data must support the purposes defined in the SNOMED CT Release File Specifications, though storage format does not need to match the release file structures exactly.
The simplest approach is to import all files from the full release and/or snapshot release of the required edition.
The data structure of each release file is defined in the SNOMED CT Release File Specifications:
A full release import matches the full release exactly.
All active concepts (except the root concept 138875005 | SNOMED CT Concept|) must have at least one active Is a relationship (116680003).
The extension must be based on, or supported by, the currently installed version of the International Edition.
Required versions of other dependent extensions must already be installed (or be part of the same import process).
Module dependencies
All dependencies of the extension module must be listed in the Module Dependency Reference Set.
Each dependency row must:
Match the extension’s moduleId.
Have a sourceEffectiveTime that matches the current version of the extension.
Reference the correct dependent modules and target effective times.
Component validation
All components must have a valid moduleId for the extension.
All component identifiers must:
Be unique per effectiveTime.
Have a valid partition identifier.
Use a namespace identifier appropriate to the extension provider.
Include a valid check-digit.
All fields must meet data type, size, and value constraints.
Importing delta data between two versions from a full release
Import only rows where:
• effectiveTime > start date
• effectiveTime ≤ end date.
If multiple rows exist for the same id, import only the most recent.
Importing edition data from a multi-edition release package
Import only rows where the moduleId matches the edition’s moduleId or the moduleId of a dependent module.
Importing edition data from multiple release packages
Import only rows where the moduleId matches the edition or dependent modules. If dependencies are missing, import from additional packages. Avoid duplicates (rows with the same id and effectiveTime).
Importing snapshot data from a full release (same version)
Import only rows with the most recent effectiveTime for each unique id. Discard all other rows.
Importing snapshot data from a full release (later version)
Discard rows newer than the required version date. From the remaining rows, import only the most recent effectiveTime for each unique id.
Importing delta data from a full or snapshot release (same version)
Import only rows with an effectiveTime greater than the previous release date.
Organizations that maintain SNOMED CT edition(s) or extension(s) must distribute one or more release package(s).
Each release package must contain a full release for the current version of an edition or extension for which they are responsible.
Optionally, each release package may also contain a snapshot release and/or delta release for the same version of the same edition or extension.
Terminology service providers must ensure their service can import data from either a full or snapshot release of a selected edition or extension.
They should also consider enabling their service to update a previously imported edition or extension using a delta release.
Healthcare application providers should ensure that their applications can work with terminology services that support importing and updating SNOMED CT using the available release types.
Terminology service users must confirm that the healthcare applications and terminology services they procure:
Provide access to the SNOMED CT editions and extensions they require.
Support updates to more recent versions of those editions and extensions.
The following sections illustrate the differences between delta, full, and snapshot release types across five releases of a simplified example release file.
Six components created.
Delta, Full, and Snapshot are identical (no previous release).
Delta, Full, Snapshot:
Component 3 changed from 3rd → third.
Components 7 (fourth) and 8 (fifth) added.
Component 4 inactivated.
Component 5 inactivated.
Component 6 changed to sixth.
Component 9 added (seventh).
All SNOMED CT release packages must include a set of full release files for a SNOMED CT edition or extension.
A full release includes the complete history of the content of that edition or extension.
This allows a terminology server to enable access to versioned views of the content of this edition or extension as it was at any point between its first release and the current release.
A versioned view is a set of component versions and reference set member versions defined by the characteristics of their effectiveTime.
Versioned views and release types are closely related.
A release type is a physical representation of a particular versioned view.
Some versioned views are not instantiated as release types, but all valid views of a SNOMED CT edition can be generated from a full release.
Includes the most recent version of all components and reference set members at a specified point in time.
Uses:
The current snapshot view is the most important and is in constant use during daily operations.
Includes only rows representing changes to components and reference set members since a specified date or between two dates.
Uses:
When updating to a new version, delta views identify components that were added, updated, or inactivated between releases.
Includes all versions of all components and reference set members in a full release.
Uses:
Useful for organizations that do not apply every update, but still need to interpret data that references content not in the snapshot view they use.
To enable terminology services to access a full view of a SNOMED CT edition:
Import a full release of the edition into an appropriate datastore.
To update:
Import the latest full release, replacing the old data; or
To provide access to a snapshot view:
Import the current snapshot release; or
Selectively import data from the current full release (most recent versions only); or
Filter the full view to include only the most recent version of each component before a specified date.
To update to a new snapshot view:
Use any of the above methods to add or replace a snapshot view; or
Import the latest delta release and update the snapshot accordingly.
To provide access to a delta view:
Import the delta release for that edition; or
Selectively import rows from the full release where effectiveTime is after the previous release date and on or before the current release date; or
Filter a full release to generate configurable delta views between arbitrary dates.
Configurable delta views may include:
Only the most recent change to each component within the period, or
All changes to each component during that period.
🟥
Inactivated version of a component
◼️
Not the most recent version (historical row)
1
second
🟩 3
20010131
1
3rd
🟩 4
20010131
1
forth
🟩 5
20010131
1
V
🟩 6
20010131
1
VI
⚪ 1
20010131
1
first
⚪ 2
⚪ 1
20010131
1
first
20030131
1
fifth
⚪ 1
20010131
1
first
⚪ 1
20010131
1
first
⚪ 1
20010131
1
first
⚪ 2
⚪ 1
20010131
1
first
20050131
1
sixth
🟩 9
20050131
1
seventh
⚪ 1
20010131
1
first
⚪ 1
20010131
1
first
The extent to which a terminology service supports access to different versioned views may vary.
Terminology service providers must:
Optimize performance of access to the current snapshot view of a selected edition or extension.
Provide access to earlier snapshot views and delta views to support:
Analysis of data entered using earlier versions.
Terminology change management when updating to newer versions.
Healthcare application providers must ensure that their applications can use terminology services that provide access to required versioned views of SNOMED CT.
Services that support access to the current snapshot view should be selected and optimized.
Services that enable access to a new version of the same edition should also be accessible to manage updates.
Access to earlier versions should be available to support analysis of data recorded with content that has since been inactivated.
Terminology service users must procure applications and services that:
Optimize access to the current snapshot view of the selected versioned edition.
Support updates to newer versions.
Support analysis of data recorded using content that has since been inactivated.
When reviewing, analyzing, or reporting older data, snapshot views from the relevant time may help interpret unexpected variations.
Access to earlier full views may be required for forensic review or anomaly resolution.
All snapshot views of a range of different editions
Supports snapshot views for multiple editions. ✅ Meets requirements for data entry, display, change management, retrospective data analysis, and access to modules from any supported edition.
Configurable delta views across multiple editions
Shows changes between two points across one or more editions. Useful in cases where multiple editions are in use.
Full
Release files contain every version of every component and reference set member ever released. Enables access to any snapshot view and comparisons between releases.
Snapshot
Release files contain only the most recent version of every component and reference set member as at the release date. Enables access to the current release snapshot and comparison of changes between snapshots.
Delta
Release files contain only rows representing versions created since the previous release date. Supports incremental updates to full or snapshot data and reviewing changes between releases.
⚪
Unchanged component (still active and unchanged in this release)
🟩
New component added in this release
🟨
Updated version of an existing component
🟩 1
20010131
1
first
🟩 2
🟨 3
20020131
1
third
🟩 7
20030131
1
fourth
🟥 4
20040131
0
forth
🟥 5
20050131
0
V
Single snapshot view of an edition
Supports only one preset snapshot view (the current version). The server is reconfigured when updating to a newer version. ✅ Meets requirements for current data entry and display. ❌ Does not meet requirements for change management, retrospective data analysis, or access to modules outside the edition.
Multiple snapshot views of an edition
Supports snapshot views for a limited set of versions (e.g., current and previous). Versions can be specified in requests. ✅ Meets requirements for data entry, display, and change management. ⚠️ Partially meets requirements for retrospective data analysis. ❌ Does not meet requirements for access to modules outside the edition.
All snapshot views of an edition
Supports snapshot views for any point in time within an edition. ✅ Meets requirements for data entry, display, change management, and retrospective data analysis. ❌ Does not meet requirements for modules outside the edition.
Single delta view (current vs. previous version)
Shows changes between the current version and the previous version of an edition. Useful for reviewing the most recent changes. Also requires access to the snapshot of the previous release.
Multiple delta views (between adjacent versions)
Shows changes between earlier releases (each version vs. its predecessor). Useful for reviewing historical changes and addressing issues retrospectively. Requires access to the snapshot view prior to each delta.
Configurable delta views (between any two dates)
Flexible solution showing changes between any two specified points. Requires access to a full release. Supports identifying all changes within the period. May include one or all changes for each component.
Note: Delta files have been removed from the SNOMED International release package, Managed Service Extensions and Derivative packages. Instead, a Delta Generation Tool is available to create deltas between two fixed release dates.
If the release package does not include a snapshot release or delta release, equivalent views can be derived from the full release.
20010131
🟩 8
🟨 6
20010131
1
second
◼️ 3
20010131
1
3rd
🟨 3
20020131
1
third
⚪ 4
20010131
1
forth
⚪ 5
20010131
1
V
⚪ 6
20010131
1
VI
⚪ 2
20010131
1
second
🟨 3
20020131
1
third
⚪ 4
20010131
1
forth
⚪ 5
20010131
1
V
⚪ 6
20010131
1
VI
⚪ 2
20010131
1
second
◼️ 3
20010131
1
3rd
🟨 3
20020131
1
third
⚪ 4
20010131
1
forth
⚪ 5
20010131
1
V
⚪ 6
20010131
1
VI
🟩 7
20030131
1
fourth
🟩 8
20030131
1
fifth
⚪ 2
20010131
1
second
🟨 3
20020131
1
third
⚪ 4
20010131
1
forth
⚪ 5
20010131
1
V
⚪ 6
20010131
1
VI
🟩 7
20030131
1
fourth
🟩 8
20030131
1
fifth
20010131
1
second
◼️ 3
20010131
1
3rd
🟨 3
20020131
1
third
⚪ 4
20010131
1
forth
🟥 4
20040131
0
forth
⚪ 5
20010131
1
V
⚪ 6
20010131
1
VI
⚪ 7
20030131
1
fourth
⚪ 8
20030131
1
fifth
⚪ 2
20010131
1
second
🟨 3
20020131
1
third
🟥 4
20040131
0
forth
⚪ 5
20010131
1
V
⚪ 6
20010131
1
VI
⚪ 7
20030131
1
fourth
⚪ 8
20030131
1
fifth
⚪ 2
20010131
1
second
◼️ 3
20010131
1
3rd
🟨 3
20020131
1
third
⚪ 4
20010131
1
forth
🟥 4
20040131
0
forth
⚪ 5
20010131
1
V
🟥 5
20050131
0
V
⚪ 6
20010131
1
VI
🟨 6
20050131
1
sixth
⚪ 7
20030131
1
fourth
⚪ 8
20030131
1
fifth
🟩 9
20050131
1
seventh
⚪ 2
20010131
1
second
🟨 3
20020131
1
third
🟥 4
20040131
0
forth
🟥 5
20050131
0
V
🟨 6
20050131
1
sixth
⚪ 7
20030131
1
fourth
⚪ 8
20030131
1
fifth
🟩 9
20050131
1
seventh
SNOMED CT is made available to license holders in release packages containing sets of files that represent SNOMED CT components and. The content of these files provides the source data to which a terminology service provides access. This chapter provides guidance on how the structure and content of different release packages should be accessed and used to enable desired services. This chapter is important for those designing, developing, and maintaining terminology services, as they require a thorough understanding of the structure and content of different release packages and the release files they contain.
SNOMED CT terminology data is distributed in release packages containing tab-delimited release files that conform to the SNOMED CT Release Files Specification. All release files follow a consistent design pattern with the following key features:
A versioning mechanism, which tracks additions, changes, and inactivations made in each release. This versioning mechanism enables terminology services to access the full history of every SNOMED CT component and reference set member.
A limited range of data types, all of which are rendered as text in release files.
Use of the Unicode UTF-8 character set for the string data type, to support the inclusion of the full range of Unicode characters.
Data from the files in SNOMED CT release packages needs to be loaded into a datastore that can be accessed by terminology services. The design of this datastore is a key design decision for developers of terminology services since it will determine the capabilities and performance characteristics of those services.
General requirements for the datastore design include:
It must enable the representation of all the information contained in all release files types in the SNOMED CT release package(s) imported
It must support the terminology services that are marked as Required in the subsections of
It must deliver scalable optimization of terminology services required by the use cases in that the server is designed to support1.
Different technical options are available for implementing terminology services, for example, using a relational database, other database options (such as