Three Word NHS Number

So occasionally you have a hairbrained idea and decide to produce a proof of concept. Let’s back up a bit:

The year is 2002 and Connecting for Health (yes “that” £12.4bn white elephant that umbrellaed NPfIT) has just been established, the “new” format NHS Number has existed for 7 years (since 1995) but isn’t seeing much use. There is a campaign to increase adoption and use of the NHS Number to help join-up and underpin the nascent infrastructure of the NPfIT. Fast forward to 2015 and the NHS Number is legally mandated to be used as a single patient identifier across health and care with the introduction of the The Health and Social Care (Safety and Quality) Bill.

And yet here in 2020 the NHS Number is rarely used as the primary identifier for practical purposes in secondary or primary care (but is used where the two interface). The reasons for this are complex.

A problem with adoption

One of the main reasons the NHS Number is passed over for local identifiers (particularly in secondary care) is that local identifiers are usually shorter, easier to enter and remember.

An example:

Hospital Number: F456321
NHS Number: 943 476 5870

A hairbrained solution?

There have been similar attempts in the past to encode the NHS Number into a more user friendly format (e.g base36) but while these have shortened the number to the typical length of a local identifier (943 476 5870 encodes to 4C17RXQ) it is questionable if this improves overall usability due to the alphanumeric mix.

In the cryptocurrency world there is an analogous problem of making the entry of and storage of binary keys user friendly. This has been somewhat solved by the BIP39 specification. There is also a well know company that has been pedalling a solution in search of a problem that encodes sets of numbers as words.

A proof of concept

The prototype I have developed uses the BIP39 wordlist (American spelling included e.g. color vs colour). The algorithm of the encoding decoding process is as follows:

The NHS Number is broken down into 11bit chunks in LSB order. Each chunk is mapped to a word from the BIP39 English wordlist. Decoding is simply the reverse.

Live Demo

Known issues

Last Update
Update History 3229
  • New Paint
  • Rename files for better organisation
  • Clarify overlaps of "legacy" numbers
  • Add source information about NHS number space
  • Fix decoding of CHI numbers starting with zero
  • Publish "Three Word NHS Number"