# Release Types and Versioned Views

## Importing Release Types

### Requirements

* **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.

***

### Release Type Characteristics and Uses

<table><thead><tr><th width="132.0234375">Release Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>Full</strong></td><td>Release files contain <strong>every version</strong> of every component and reference set member ever released. Enables access to any snapshot view and comparisons between releases.</td></tr><tr><td><strong>Snapshot</strong></td><td>Release files contain <strong>only the most recent version</strong> 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.</td></tr><tr><td><strong>Delta</strong></td><td>Release files contain <strong>only rows representing versions created since the previous release date</strong>. Supports incremental updates to full or snapshot data and reviewing changes between releases.</td></tr></tbody></table>

{% hint style="danger" %}
**Note:** Delta files have been removed from the SNOMED International release package, Managed Service Extensions and Derivative packages. Instead, a [Delta Generation Tool](https://github.com/IHTSDO/delta-generator-tool/releases) 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.
{% endhint %}

### Comparing the Content of Different Release Types

The following sections illustrate the differences between delta, full, and snapshot release types across **five releases** of a simplified example release file.

#### Key to Symbols

<table><thead><tr><th width="100.27734375">Symbol</th><th>Meaning</th></tr></thead><tbody><tr><td>⚪</td><td>Unchanged component (still active and unchanged in this release)</td></tr><tr><td>🟩</td><td>New component added in this release</td></tr><tr><td>🟨</td><td>Updated version of an existing component</td></tr><tr><td>🟥</td><td>Inactivated version of a component</td></tr><tr><td>◼️</td><td>Not the most recent version (historical row)</td></tr></tbody></table>

***

#### Release 20010131 — First release

* Six components created.
* Delta, Full, and Snapshot are identical (no previous release).

**Delta, Full, Snapshot:**

<table><thead><tr><th width="123.00390625">id</th><th>effectiveTime</th><th>active</th><th>term</th></tr></thead><tbody><tr><td>🟩 1</td><td>20010131</td><td>1</td><td>first</td></tr><tr><td>🟩 2</td><td>20010131</td><td>1</td><td>second</td></tr><tr><td>🟩 3</td><td>20010131</td><td>1</td><td>3rd</td></tr><tr><td>🟩 4</td><td>20010131</td><td>1</td><td>forth</td></tr><tr><td>🟩 5</td><td>20010131</td><td>1</td><td>V</td></tr><tr><td>🟩 6</td><td>20010131</td><td>1</td><td>VI</td></tr></tbody></table>

#### Release 20020131 — Second release

* Component 3 changed from `3rd` → `third`.

{% tabs %}
{% tab title="Delta" %}

| id           | effectiveTime | active | term  |
| ------------ | ------------- | ------ | ----- |
| 🟨 3         | 20020131      | 1      | third |
| {% endtab %} |               |        |       |

{% tab title="Full" %}

| id           | effectiveTime | active | term   |
| ------------ | ------------- | ------ | ------ |
| ⚪ 1          | 20010131      | 1      | first  |
| ⚪ 2          | 20010131      | 1      | second |
| ◼️ 3         | 20010131      | 1      | 3rd    |
| 🟨 3         | 20020131      | 1      | third  |
| ⚪ 4          | 20010131      | 1      | forth  |
| ⚪ 5          | 20010131      | 1      | V      |
| ⚪ 6          | 20010131      | 1      | VI     |
| {% endtab %} |               |        |        |

{% tab title="Snapshot" %}

| id            | effectiveTime | active | term   |
| ------------- | ------------- | ------ | ------ |
| ⚪ 1           | 20010131      | 1      | first  |
| ⚪ 2           | 20010131      | 1      | second |
| 🟨 3          | 20020131      | 1      | third  |
| ⚪ 4           | 20010131      | 1      | forth  |
| ⚪ 5           | 20010131      | 1      | V      |
| ⚪ 6           | 20010131      | 1      | VI     |
| {% endtab %}  |               |        |        |
| {% endtabs %} |               |        |        |

#### Release 20030131 — Third release

* Components 7 (`fourth`) and 8 (`fifth`) added.

{% tabs %}
{% tab title="Delta" %}

| id           | effectiveTime | active | term   |
| ------------ | ------------- | ------ | ------ |
| 🟩 7         | 20030131      | 1      | fourth |
| 🟩 8         | 20030131      | 1      | fifth  |
| {% endtab %} |               |        |        |

{% tab title="Full" %}

| id           | effectiveTime | active | term   |
| ------------ | ------------- | ------ | ------ |
| ⚪ 1          | 20010131      | 1      | first  |
| ⚪ 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  |
| {% endtab %} |               |        |        |

{% tab title="Snapshot" %}

| id            | effectiveTime | active | term   |
| ------------- | ------------- | ------ | ------ |
| ⚪ 1           | 20010131      | 1      | first  |
| ⚪ 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  |
| {% endtab %}  |               |        |        |
| {% endtabs %} |               |        |        |

#### Release 20040131 — Fourth release

* Component 4 inactivated.

{% tabs %}
{% tab title="Delta" %}

| id           | effectiveTime | active | term  |
| ------------ | ------------- | ------ | ----- |
| 🟥 4         | 20040131      | 0      | forth |
| {% endtab %} |               |        |       |

{% tab title="Full" %}

<table><thead><tr><th width="91.2421875">id</th><th>effectiveTime</th><th>active</th><th>term</th></tr></thead><tbody><tr><td>⚪ 1</td><td>20010131</td><td>1</td><td>first</td></tr><tr><td>⚪ 2</td><td>20010131</td><td>1</td><td>second</td></tr><tr><td>◼️ 3</td><td>20010131</td><td>1</td><td>3rd</td></tr><tr><td>🟨 3</td><td>20020131</td><td>1</td><td>third</td></tr><tr><td>⚪ 4</td><td>20010131</td><td>1</td><td>forth</td></tr><tr><td>🟥 4</td><td>20040131</td><td>0</td><td>forth</td></tr><tr><td>⚪ 5</td><td>20010131</td><td>1</td><td>V</td></tr><tr><td>⚪ 6</td><td>20010131</td><td>1</td><td>VI</td></tr><tr><td>⚪ 7</td><td>20030131</td><td>1</td><td>fourth</td></tr><tr><td>⚪ 8</td><td>20030131</td><td>1</td><td>fifth</td></tr></tbody></table>
{% endtab %}

{% tab title="Snapshot" %}

| id            | effectiveTime | active | term   |
| ------------- | ------------- | ------ | ------ |
| ⚪ 1           | 20010131      | 1      | first  |
| ⚪ 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  |
| {% endtab %}  |               |        |        |
| {% endtabs %} |               |        |        |

#### Release 20050131 — Fifth release

* Component 5 inactivated.
* Component 6 changed to `sixth`.
* Component 9 added (`seventh`).

{% tabs %}
{% tab title="Delta" %}

| id           | effectiveTime | active | term    |
| ------------ | ------------- | ------ | ------- |
| 🟥 5         | 20050131      | 0      | V       |
| 🟨 6         | 20050131      | 1      | sixth   |
| 🟩 9         | 20050131      | 1      | seventh |
| {% endtab %} |               |        |         |

{% tab title="Full" %}

| id           | effectiveTime | active | term    |
| ------------ | ------------- | ------ | ------- |
| ⚪ 1          | 20010131      | 1      | first   |
| ⚪ 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 |
| {% endtab %} |               |        |         |

{% tab title="Snapshot" %}

<table><thead><tr><th width="88.58203125">id</th><th>effectiveTime</th><th>active</th><th>term</th></tr></thead><tbody><tr><td>⚪ 1</td><td>20010131</td><td>1</td><td>first</td></tr><tr><td>⚪ 2</td><td>20010131</td><td>1</td><td>second</td></tr><tr><td>🟨 3</td><td>20020131</td><td>1</td><td>third</td></tr><tr><td>🟥 4</td><td>20040131</td><td>0</td><td>forth</td></tr><tr><td>🟥 5</td><td>20050131</td><td>0</td><td>V</td></tr><tr><td>🟨 6</td><td>20050131</td><td>1</td><td>sixth</td></tr><tr><td>⚪ 7</td><td>20030131</td><td>1</td><td>fourth</td></tr><tr><td>⚪ 8</td><td>20030131</td><td>1</td><td>fifth</td></tr><tr><td>🟩 9</td><td>20050131</td><td>1</td><td>seventh</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

## Supporting Versioned Views

### Requirements

* **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.
  * 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.

***

### Types of Versioned Views

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.

#### Snapshot view

* 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.
  * When updating to a new version, access to the earlier snapshot is required to determine the type of change made to each component.
  * When reviewing, analyzing, or reporting older data, snapshot views from the relevant time may help interpret unexpected variations.

#### Delta view

* 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.

#### Full view

* 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.
  * Access to earlier full views may be required for forensic review or anomaly resolution.

***

### Terminology Service Versioned View Options

#### [Snapshot views that may be supported](#user-content-fn-1)[^1]

<table><thead><tr><th width="187.5625">View</th><th>Description</th></tr></thead><tbody><tr><td><strong>Single snapshot view of an edition</strong></td><td>Supports only one preset snapshot view (the current version). <a data-footnote-ref href="#user-content-fn-2">The server is reconfigured when updating to a newer version.</a><br><br>✅ Meets requirements for current data entry and display.<br>❌ Does not meet requirements for change management, retrospective data analysis, or access to modules outside the edition.</td></tr><tr><td><strong>Multiple snapshot views of an edition</strong></td><td>Supports snapshot views for a limited set of versions (e.g., current and previous). Versions can be specified in requests.<br><br>✅ Meets requirements for data entry, display, and change management.<br>⚠️ Partially meets requirements for retrospective data analysis.<br>❌ Does not meet requirements for access to modules outside the edition.</td></tr><tr><td><strong>All snapshot views of an edition</strong></td><td>Supports snapshot views for any point in time within an edition.<br><br>✅ Meets requirements for data entry, display, change management, and retrospective data analysis.<br>❌ Does not meet requirements for modules outside the edition.</td></tr><tr><td><strong>All snapshot views of a range of different editions</strong></td><td>Supports snapshot views for multiple editions.<br><br>✅ Meets requirements for data entry, display, change management, retrospective data analysis, and access to modules from any supported edition.</td></tr></tbody></table>

#### Delta views that may be supported

| View                                                  | Description                                                                                                                                                                                                         |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **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.       |
| **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.                                                                                                   |

### Creating and Updating Versioned Views

#### Full views

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
  * Import the latest delta release and append it to the existing full release data.

#### Snapshot views

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.

#### Delta views

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.

<a href="https://docs.google.com/forms/d/e/1FAIpQLScTmbZIf0UEQwYDkY27EEWBkaiYkHSbR0_9DmFrMLXoQLyL7Q/viewform?usp=pp_url&#x26;entry.1767247133=SNOMED+Terminology+Services+Guide&#x26;entry.670899847=Release%20Types%20and%20Versioned%20Views" class="button primary">Provide Feedback</a>

[^1]: The **2020-01-31 International Edition** snapshot release requires 1.25 GB of storage, while the full release requires just under 2 GB. Services supporting multiple snapshots may require more storage than those using a full release. However, individual snapshots can offer performance advantages since they avoid generating views dynamically.

[^2]: Organizations responsible for national editions and extensions are only required to distribute a full release. Terminology services that only support snapshot views may need to generate them from a full release (though most organizations also distribute snapshot releases).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.snomed.org/snomed-ct-practical-guides/snomed-ct-terminology-services-guide/5-service-implementation-considerations/5.3-release-types-and-versioned-views.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
