• Version: Snow Owl v3.1
  • Start date: 23 December 2013
  • End date: 07 February 2014
  • Code name / adopted animal: Fürge, a big hairy armadillo at the Budapest Zoo

Collaborative authoring

Restricting editing functions to task context

When creating a task, the project manager needs to specify the kind of task, the terminology, and – if applicable – the version that will be used. This will restrict the author to editing functions within the selected terminology and task. Functions that are not needed for the active task, are turned off.

For example, if you are working on a SNOMED CT general authoring task, it’s not possible to author in ATC or to modify a value domain. Likewise, it’s not possible to create a new concept, if you are assigned to a Reference set authoring task. The concept editor will be read-only (not showing additional properties) unless you are working on a SNOMED CT general authoring task, in which case you will need the additional property fields for editing.

Updated artifact types in task wizard

The task wizard allows now to specify the terminology. For this reason the artifact types have been refined.

  • SNOMED CT authoring
  • SNOMED CT reference set authoring
  • SNOMED CT mapping reference set authoring
  • ATC authoring
  • LCS authoring
  • LOINC authoring
  • Value domain authoring
  • Mapping set authoring

Specifying an artifact type in the task wizard

Restricting work to specified version

It’s now possible to specify a version for the authoring process. This allows working with older releases (e.g. an earlier release of SNOMED CT, or a local code system) for the purposes of patching a release. As the users are going to work most of the time on the latest version, the default setting is the latest version, which is indicated by MAIN. If you want to use an earlier version, select the version from the drop-down list.

A version can only be selected when the task is created. When an author activates a task, the selected version is automatically set and displayed on the status bar. It’s not possible for the author to switch to a different version.

Specifying a version in the task wizard

Switching perspective when activating VD or MS task

When activating a task for value domain authoring or mapping set authoring the UI switches to the corresponding perspective. The default setting for other artifact types is the Authoring perspective.

Versioning support

Creating a new version

A version is created when the state of a particular terminology needs to be captured. From a business sense it is performed when the terminology is ready to be published to customers. Versioning always applies to the entire terminology and can be performed at any time on the current state of the terminology. For example, the SMOMED CT July 2013 release is a version that marks the state of SNOMED CT at this particular point of time. Different versions are distinguished by tags, hence the process of creating a version is often referred to as tagging. There are no versions of SNOMED CT reference sets, and SNOMED CT map type reference sets since they are considered to be part of SNOMED CT. When a new version of SNOMED CT is created, modifications made to reference sets and map type reference sets are contained.

Versions can be created for all editable artefacts namely:

  • ATC
  • Mapping sets
  • Local code systems
  • Value domains

To create a version, verify that all changes are saved. Go to” Tools > Create” version, or use the toolbar button to bring up the wizard. Enter a unique version name and a description. If applicable, existing versions are displayed in the bottom section.

Specifying version name and description

Where applicable (ATC and LOINC do not have an effective time property), you can use the calendar icon to specify an effective date. By default the current date is displayed. Click Next.

Selecting a SNOMED CT release

You are now presented with a summary of unversioned components. These are components that were modified since the last publication. Where applicable (ATC and LOINC do not have an effective time property), these components will be updated during the versioning process by changing the effective time from Unpublished to the specified publication date. Components that were not modified will not be updated and keep the original publication date. Click Next to start the versioning process.

Summary of unversioned components

A dialog confirms the versioning was completed.

Confirmation of versioning with version name

Switching between versions

Apart from the latest release of SNOMED CT, Snow Owl now allows to browse and edit older versions of SNOMED CT. You can switch between available versions of LCS, MS, VD, LOINC, ATC.

To select a version, click the icon in the toolbar or select Tools > Select version in the menu. You can see a list of the terminologies and local code systems that are supported in Snow Owl. By default, the latest version is used, which is indicated with MAIN. To work with an earlier version version,

  • Click on table to open the drop-down list
  • Select the preferred version from the list
  • Finish.

Selecting a SNOMED CT release

You can verify that you are working with the selected release by opening the root concept in the editor where the information about the version is listed as a synonym. Please note that the tree in the SNOMED CT view might also change, since older SNOMED CT releases had different top-level concepts (e.g. Disease used to be a top-level concept).

SNOMED CT root concept from July 2006 release

The status bar on the bottom now has been redesigned to indicate the current version of the artefact the user is working with. There are two scenarios:

  1. User is working on a task – the status bar displays the task name (with a link to the task editor) as well as the context of the task (Terminology and version). If you hover over the task icon, you can see additional information about the task (number, name, context, scenario).
  2. User is not working on a task – “No task activated” text is presented and status bar displays the version of the currently selected artefact.

Tooltip displaying additional task information

History view: Concept history by version

The history of a concept is now grouped by releases. If you click on a version, you can see which changes were made in a particular release of SNOMED CT.

Concept history grouped by version

Commit information update

New information has been added to the commit information view. It’s now possible to see the terminology, and also if the work was performed on MAIN or on a branch.

Commit information view

Value Domain and Mapping Set members

Members of Value Domains or Mappings now incorporate versioning information when created. When a component is added to a Value Domain or a Mapping Set the following rules apply:

  • If the component has never been versioned the member version is set to “Unversioned”
  • If the component has been versioned
    • and changed since the last versioning, the member version is set to “Unversioned”.
    • not changed since the last versioning, the member version is set to the last version tag.

SNOMED CT versioning support for import

Import options have been restricted depending on the existing data in Snow Owl. This means that import options that are not suitable will be disabled (see screenshot).

  • The Delta release contains modifications since the previous release and are used to update a previous version of a full release. For this reason, they can only be imported if there is already SNOMED ED CT content in Snow Owl.
  • The Snapshot release file contains the most recent version of every component without any historical information. It can be imported in an empty database or if there is already an older SNOMED CT release.
  • The full release contains every component and every version ever released. An import is only possible if there is no SNOMED CT content in Snow Owl.
  • Create versions for each effective time: This option is only available when importing a full release. It creates a separate version for each release, which allows to switch between versions, for example if you want to work with older versions. If you run the import without creating versions, you will still be able to see historical information in the History view, but won’t be able to switch between versions.

SNOMED CT import

Simplified export

Due to the newly introduce version function, it’s not necessary to update components during export anymore. Only the current state of the content is exported, there is no content modification during export. This means that unpublished components remain unpublished, and published components retain their publication date.

The export wizard has been simplied. To run an export

  • Verify that you saved all changes
  • Go to File > Export > Snow Owl > Select the artifact type you want to export (e.g. Value domain to Excel)
  • Hit Browse to specify the file name and file path. Click Next to start the export

Specifying file name and file path for export

After the export, you can find a link to your export file.

Link to export file

If you want to create an official release, you need to update the effective time of unpublished components by creating a new version. Afterwards, you can export the new version.

To export an older version

  • Switch to the older version (Tools > Switch version)
  • Verify that the selected version is displayed. The version is indicated in the statusbar on the bottom.
  • Now you can export the file as described above.


A new chapter about Versioning was added to the Snow Owl User Guide guide.

User Interface update

Tools in main menu

A new item called Tools was added to the main menu to accommodate global actions already available throughout the application:

  • Create a version
  • Switch between versions
  • Validate SNOMED CT
  • Compare reference sets
  • Classify SNOMED CT
  • Open the MRCM editor
  • Create a report

Tools in main menu

In addition to the toolbar button, it’s now also possible to execute ESCG queries or groovy script from the menu. This action is only available if an ESCG or groovy script editor is active.

Executing query from main menu

New toolbar buttons

Global actions can also be accessed from the toolbar now.

New buttons in toolbar

Alternate background colors in MS and VD editor

Alternate background colours were added to faciliate working with the mapping set and value domain editor. This feature is only available for Mac users.

New mapping set editor

Visualization tab in SNOMED CT editor

A new tab was added to the SNOMED CT editor, which displays the SNOMED CT compositional grammar expression as a diagram.

Visualization tab showing expression and diagram

The graphical representation follows the SNOMED CT diagramming specified by the IHTSDOhttp://ihtsdo.org/fileadmin/user_upload/Docs_01/Publications/SNOMED_CT_Diagramming_Guideline.pdf

The defined concept is displayed at the top left. It is connected to a series of expressions via operators (see example for Tetralogy of Fallot).

  • Hollow arrows represent parentage by pointing at the parent concept.
  • Concepts are represented by a rectangle.
  • Other relationships (e.g. finding site) are represented by a rounded rectangle between two regular arrows pointing from source to target (e.g.
  • The definition status is indicated by line borders. Double-lines are used for fully defined concepts, single line borders for primitive concepts.

Diagram for Tetralogy of Fallot

There are several functions available from the toolbar

  • The zoom buttons allow to change the size of the diagram.
  • The type of diagram can be switched between the concept definition (reveals the defined concept) and the expression (hides the defined concept).
  • Copies the SNOMED CT compositional grammar expression to the clipboard.
  • Shows/hides the SNOMED CT compositional grammar expression.
  • Exports the diagram (only on Windows).
  • Prints the diagram (only on Windows).

Validation constraints for value domains and mapping sets

Validation happens every time you change something in the editor (e.g. add/remove a member, change the description, add a metadata group, etc.). When saving the editor the validation is performed again to ensure the validity of the saved VD or MS. If there are validation errors, the editor can’t be saved.

Errors are indicated

  • in the toolbar allowing to link to the error
  • in the editor by small error decorators

Mapping sets

The following validation constraints have been implemented for mapping sets

  • The mapping set name must be unique.
  • The following attributes must be set for all mappings: source code, source code system short name, source term
  • If a mapping has a target, all the following attributes must be set for that mapping: target code, target code system short name, target term
  • The mapping set must not contain multiple metadata groups with the same ID, display name and organization.
  • The mapping set must not contain a metadata group with duplicate keywords.
  • The mapping set must not contain mappings, where the source and target code and code system is the same.
  • The mapping set must not contain mappings, where the source and target code, code system and code system version is the same.

Invalid mapping

Value domains

The following validation constraints have been implemented for value domains

  • The value domain name must be unique.
  • The following value domain attributes must be set: name, version, definition, source
  • The following value domain member attributes must be set: code, code system short name, code system version (“Unspecified” is also accepted here), display name
  • The value domain must not contain multiple members with the same code and code system short name.
  • The value domain must not contain multiple members with the same code, code system short name and code system version.
  • Inactive value domains must have an inactivation reason, active value domains must NOT have an inactivation reason.
  • The value domain must not contain multiple metadata groups with the same ID, display name and organization.
  • The value domain must not contain a metadata group with duplicate keywords.

Invalid keyword

Admin function for Snow Owl live backup

Up to now the Snow Owl server needed to be shut down for a backup to be performed. Also, backing up the indexes could only be performed via plain file copy. To overcome these issues and provide a way to perform automated backups, we created an admin function to lock the entire repository, which disables the write access to the connected users. This way, users don’t need to get disconnected and can continue with read-only operations. A message box informs the users if the try to submit changes to the repository: “Write access was denied due to server maintenance”. When the write access is restored the user is also informed by a message.

Message informing users about backup

The administrator needs to perform the following steps for a live backup:

  • Notify users about maintenance (curl command to invoke the admin function exposed as REST)
  • Wait 5 minutes so the users can finish whatever they were doing
  • Lock the repository (curl command to invoke the admin function exposed as REST)
  • If repository cannot be locked due to a long running process, you can write a loop in your script to wait for a while and reattempt the lock a few times
  • Perform index snapshot (curl command to invoke the admin function exposed as REST)
  • Perform the actual backup (mysqldump and copy the resources folder)
  • Unlock the repository (curl command to invoke the admin function exposed as REST)
  • Notify users about the end of maintenance (curl command to invoke the admin function exposed as REST)

We have provided a shell script for convenience that performs the above mentioned steps. The shell script can be further configured and by adding the script to a cron job, the backup process can be automated.

For further details please refer to the Server Admin Guide.