Skip to main content

The NHS England Terminology Server

A terminology solution to help healthcare IT systems speak the same language, and make mapping codes between organisations faster and easier.


What is a terminology server?

Healthcare organisations often use different software and different words, or 'terminologies', to record health information: what one doctor records in their system as a 'chest infection', for example, might be recorded as 'upper-respiratory infection' in another, so the two systems might not be able to match the information up.

A terminology server transforms the way in which data is captured, shared and analysed across health and care, meaning more effective, efficient and safer decision-making. This makes providing healthcare services, treatment and cures more efficient and cost-effective.

It also makes it possible to load local codes and map these to national codes, or other local or system codes.


The NHS England Terminology Server

The NHS England Terminology Server is a FHIR® compliant solution that holds and disseminates assured international terminologies and classifications (such as SNOMED CT and ICD-10) and terminologies mandated for use in England, such as the dictionary of medicines and devices (dm+d).

We have developed the NHS England Terminology Server to deliver assured content in FHIR® compliant, machine readable formats – regardless of which terminology is being accessed. The accuracy of the content is maintained through tightly managed editorial controls. This will remove the need to manually update your systems with downloaded content from TRUD and other terminology sites.

There is also a syndication feed (API) which enables content to be syndicated across a group of terminology servers. This allows you to share your own terminologies with others.


Our goal

Our goal is to
  • simplify the use of clinical terminology and other code systems by addressing the key challenges faced by implementers
  • encourage vendors, health care organisations, researchers etc to adopt terminology products and services
  • create a central repository of assured international and national code systems
  • improve collaboration between the producers and consumers of terminology products and services
  • enable benefits from adoption of terminologies and classifications, such as seamless interoperability, enhanced reporting, and advanced analytics

How it can be used

Authoring, maintenance and distribution

This is for users who want to:

  • make national content readily available using FHIR APIs and syndication
  • author and maintain code systems, value sets and concept maps
  • keep up-to-date with national code systems and maintain local content
  • collaborate with others to develop and publish content for wider use
  • adopt SNOMED CT and keep up-to-date with national releases, but I don’t want to have to understand RF2
Smart data entry and performant run time use

This is for users who want to support:

  • performant smart searches of SNOMED CT or other code systems in my clinical information system
  • advanced use of SNOMED CT for decision support, subsumption and other related tasks
Information modelling and specification development

This is for users who want to:

  • bind terminology and value sets to data models and specifications
  • validate the terminology content against the specifications
  • validate that the FHIR resources are compliant
Interoperability/electronic health records/secure messaging

This is for users who want to:

  • validate or translate content 
  • validate that FHIR profiles are compliant
Analytics

This is for users who want to:

  • use terminology in an advanced way in my analytics queries
  • translate content on load or on demand as part of my analytics service

Who can use it

The terminology server is for:

  • providers of health and care services
  • commissioners of health and care services
  • population health managers
  • suppliers in the health and care market
  • researchers and analysts

Content included in the Terminology Server

Code systems, value sets and concept maps for a growing number of national and internationally assured terminologies and classifications are included in the NHS England Terminology Server.

Currently loaded are:

We plan to load:

  • Data Dictionary - including all reference data national codes and historical versions

Complex mapping tables between the loaded code systems are NOT currently available via the Terminology Server. Future software developments should enable this capability so please check back.

In the interim, please contact the individual teams for copies of complex mapping tables by following the links above.


The various environments

There are several different environments that make up the Terminology Server solution.  

Find out more in the NHS England Terminology Server environments webpage.


How to get access

Individual users can access content on the NHS England Terminology Server with a registered account (authenticated) or without a registered account (non-authenticated).

Guidance for how to register for an account as an individual is provided in our account management guide.

If you wish to access the Terminology Server from a software application or to syndicate content to your own terminology server, rather than access via a browser, you will need a system-to-system account.

Details of the current status of the service, and any periods of forecast unavailability due to changes, can be found on our supplier-hosted Service Navigation and Status page.


How to integrate your system

See the guidance for software developers to understand more about how to integrate your system with the Terminology Server.


Information hub

We understand that people will want to know more about the Terminology Server but will have different levels of knowledge and understanding. To help, we have gathered an extensive collection of information and split it into two categories.


How to buy your own terminology server

You may want to buy your own terminology server, to manage and create content yourself and share it with other terminology servers, including the NHS England Terminology Server.

To help make this quicker and simpler we have set up a framework agreement with our software supplier, Dedalus.

 


Syndication

A syndication feed is available for those who want to be notified of new content or to link their own systems to our server.

An Atom feed is used, and an RSS reader can alert you to updated content. Outlook has a built in RSS reader and has provided guidance on configuring it.

The location of the main feed containing all published content is:

https://ontology.nhs.uk/production1/synd/syndication.xml 

Syndication is available to another Ontoserver instance, such as purchased from our call-off contract, or a non-Ontoserver solution. The feed itself is openly available without authentication but copyright-protected content will still require authentication.

Whilst the information below focusses on connecting an Ontoserver instance, it contains helpful information about the syndication solution.

Two API calls are used to consume content from the syndication feed:

  1. Get Syndication Feed
  2. Get Artefact from Feed

Examples of both calls are available in our GitHub repository

Further details about the syndication feed.

The syndication feed specification.

To apply for a syndication feed, complete the system-to-system account form.

If you would like to discuss syndication further with us, email [email protected].


Quick start for beginners

What is FHIR®?

The Terminology Server stores information in the HL7 FHIR® (Fast Healthcare Interoperability Resources) standard.

Read more about it at hl7.org/fhir/       

More information about how NHS England use FHIR® can be found in the NHS England FHIR® API website.

How to add content

Adding content to the Terminology Server can be done using the Snapper:Author web tool.

Training on how to use Snapper.


Quick start for developers

How to use your credentials

Please see the following link for some further information about the supported operations and examples of how to use the system-to-system credentials to get a token and make an API request:

Using account credentials

How to use FHIR®

The terminology server is FHIR R4 compliant and the API parameters and operations are as specified in the FHIR standard:

The key Resources you will likely be interested in are:

Code system
Value set
Concept map

Where the standard indicates implementation discretion you will find more specifics here: Ontoserver – (csiro.au)

Example interactions

To help make it easier to begin using the Terminology Server we have created a repository of examples that are specific to the various code systems we hold.

We have stored these examples in an area of GitHub.

The examples contained in the repository also contain pointers to other sources of information that will help you understand more and develop queries of your own.

Parameters used in HTTP requests need to be URL encoded prior to sending.

Using the environments

You can find an explanation of the various environments on our Terminology Server environments page.

To use or consume existing content for exploration and analysis then you should use Production 1.

Testing should also be carried out on Production 1.

The Authoring Server is restricted for the internal validation and release of national code systems.  If you feel you need to use the Authoring Server specifically then please email [email protected] to discuss this further.

For runtime use in a clinical system there is a dedicated Production Server (Production 2) but you will need to explain your intended use in order to gain access. This process is managed by the system to system account request form process.


GitHub repository

This repository aims to provide a library of useful examples/code snippets to help users of the NHS England Terminology Server become more familiar with the basic functions and operations of the server.


Use cases

A repository has been created to provide code snippets to demonstrate how the Terminology Server can be used.

Code has been provided to connect Power BI to the server.


Error codes

We have provided some help below on the most popular errors that you might receive when querying the Terminology Server.

If you receive an error that is not listed below, please report it to the helpdesk at [email protected].

400 Bad Request

Check that any parameters (including ECL expressions) that you are passing in the request have been correctly encoded.

401 Unauthorized

Not passing a bearer token in (“Can not determine authorisation; no credentials were provided.”)

  • Make sure that you are adding a header 'Authorization: Bearer XXX
  • Note the spelling of Authorization

Token expired ("error_description": "Access token expired”)

  • Retrieve a new token or refresh your current token (most tokens expire after 30 minutes or less)
403 Forbidden

Check that your Authorization token has the correct claims for the environment that you are accessing (you can debug your token using something like JWT.IO).

""

JSON Web Tokens - jwt.io - JSON Web Token (JWT) is a compact URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is digitally signed using JSON Web Signature (JWS).

Check that your account has the correct permissions to do what you are doing (note: production1 and production2 are read only).

404 Not Found

Some content on the server is available for anonymous users but other content has licence restrictions e.g. SNOMED (or security restrictions) that mean you must authenticate to access. If you don’t have permission to access content, then the server will respond with Not Found.

422 Unprocessable Entity (WebDAV) (RFC 4918)

It is possible to make requests to the terminology server that are considered too costly to fulfil (such as $expand operations that would return greater than 50,000 concepts – like trying to $expand all concepts in SNOMED). Requests that are too costly will fail with a 422 error code and a more detailed explanation. If you have a use case that requires bulk access then please contact the help desk for advice on appropriate alternative methods to access the bulk data.

502 Bad Gateway (Server: Microsoft-Azure-Application-Gateway/v2)

The terminology server is protected by a Web Application Firewall (WAF). FHIR and ECL queries can sometimes appear to be dangerous and the WAF may sometimes incorrectly flag your request as bad. If this happens then you will get a 502 error and please check your request and if it is correct, then please raise a helpdesk call to have the rules updated to allow it.


Communities

Communities are a way of managing and granting access to collections of FHIR resources, either for read or write access.

Find more information on how communities work.

If you are interested in using a community, please contact us at [email protected] to discuss it further.


Contact us for system support

In-hours support

Monday to Friday 9am to 5pm excluding English bank holidays:

Out of hours support

High Severity Service Incidents (such as, the system is unavailable or there has been a security breach):

Non-High Severity Service Incidents (your incident ticket will be reviewed the following working day):

Full instructions on how to use our new support portal, including how to register.

The Terminology Server is protected by a platinum service management contract which provides cover 24 hours a day, 365 days a year.

Incident resolution times (within business hours):

Severity 1 2 hours
Severity 2 4 hours
Severity 3 8 hours (Monday to Friday, between 8am and 6pm, excluding bank holidays)
Severity 4 30 hours (Monday to Friday, between 8am and 6pm, excluding bank holidays)
Severity 5 100 hours (Monday to Friday, between 8am and 6pm, excluding bank holidays)

Please also see our supplier-hosted service page for the current status of the Terminology Server.

For a copy of the Clinical Safety Case Report, please contact: [email protected].


Training guides

Last edited: 22 November 2023 4:42 pm