North West Genomic Medicine Service Alliance
0.0.1 - ci-build United Kingdom flag

DRAFT Implementation Guide

This is for collaboration and discussion purposes and is subject to change.

North West Genomic Medicine Service Alliance - Local Development build (v0.0.1) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Overview

Clean Architecture

Clean Architecture

Clean Architecture


Domain Archetype

Domain Archetype is the result of a collaboration process which aims to form a series of common archetypes within a domain (the domain in this case is Genomics). The initial format for this archetype is often a spreadsheet that is expressed in an electronic format. The format we are using in this guide is HL7 FHIR Questionnaire, other formats can be used such as openEHR Archetype (see Genomic Variant Result)

For communication between different systems, these archetypes are mapped to a Common Information Model.

Domain Archetype

Domain Archetype


Common Information Model

The domain archetypes are implemented via a Canonical Data Model, which is common across all technical formats (i.e. HL7 v2 and HL7 FHIR) and is described using HL7 FHIR.

Elements from NHS England FHIR Genomics Implementation Guide have been incorporated into this guide, in particular the use of NHS Data Model and Dictionary Model identifiers and other identifiers already present in HL7 v2 OML and ORU. See Identities and Codes for more details.

Enterprise Canonical Data Model

Enterprise Canonical Data Model


Identities (Identifiers)

Both domain archetypes have a very strong focus on the use of Correlation Identifier (Enterprise Integration Patterns) or Rule 3: Reference Other Aggregates by Identity (Implementing Domain Driven Design), which is also consistent with IHE/HL7 concepts of Bounded Context (martinfowler.com)

In practice this means, the following FHIR resources will have the following identifiers within the IHE Laboratory Testing Workflow domain:

This includes making use of FHIR Identifier assigner.identifier.value (HL7 v2 Assigning Facility in a variety of ID types) to distinguish these identifiers between different organisations, the recommendation is to use ODS Code, e.g.

    {
      "type" : {
        "coding" : [
          {
            "system" : "http://terminology.hl7.org/CodeSystem/v2-0203",
            "code" : "ACSN"
          }
        ]
      },
      "value" : "1001166717",
      "assigner" : {
        "identifier" : {
          "system" : "https://fhir.nhs.uk/Id/ods-organization-code",
          "value" : "699X0"
        }
      }
    }

References to other domains

Is present around Organisation, Practioner and PractitionerRole. NHS England has expressed a preference to use NHS England Identifiers, these are:

Domain Archetype and Panels

TODO Explains how questions and answers are converted into v2 OBX/FHIR Observations based on https://build.fhir.org/ig/HL7/sdc/extraction.html

Prior Results (Complete Blood Count Panel) Example

The following information is presented as a HOWTO guide, it is not recommending any clinical coding.

The following is an extract from Digital Health and Care Wales HL7 2.5.1 ORU_R01.

NHS England has not defined HL7 v2 ORU standards, and the use of HL7 v2 ORU is common in England. DHCW example is being used for documentation reasons, the clinical coding shown here is an example and not a standard.

OBR|2||914694928301|B0001^Full blood count|||201803091500|||^ABM: Sian Jones||||201803091500|^^Dr Jones
Indiana|^Jones^Indiana^^^Dr||||||201803091500|||F
TQ1|||||||201803091400|201803091500|S^^^^^^^^Urgent
OBX|1|NM|B0300^White blood cell (WBC) count||3.5|x10\S\9/L|4.0-11.0|L|||F|||201803091500
OBX|2|SN|B0307^Haemoglobin (Hb)||<^149|g/L|130-180|H|||F|||201803091500
OBX|3|NM|B0314^Platelet (PLT) count||500|x10\S\9/L|150-400|H|||F|||201803091500
OBX|4|NM|B0306^Red blood cell (RBC) count||6.00|x10\S\12/L|4.50-6.00|N|||F|||201803091500
OBX|6|CE|B0309^Mean cell volume (MCV)||NA^Not assayed^ACME|fL|80-100|N|||F|||201803091500

The coding (B0001, B0300, B0307, etc) is using local laboratory coding, ideally we want all organisations to communicate via standard coding and in the UK this preferred clinical coding is SNOMED CT UK Edition 83821000000107 and the preferred coding standard for units is UCUM. To use local codes would mean 20+ organisation maintaining code mappings between all the different local codesystems, by using SNOMED (or LOINC) this means they only need to maintain mappings between local codes and SNOMED (or LOINC)

At the time of writing, there is no definition of Complete Blood Count in the NHS. So instead, we look elsewhere:

LOINC CBC panel - Blood by Automated count:

LOINC Name R/O/C UCUM Units
58410-2 CBC panel - Blood by Automated count    
- 6690-2 Leukocytes [#/volume] in Blood by Automated count R 10*3/uL
- 789-8 Erythrocytes [#/volume] in Blood by Automated count R 10*6/uL
- 718-7 Hemoglobin [Mass/volume] in Blood R g/dL
- 4544-3 Hematocrit [Volume Fraction] of Blood by Automated count R %
- 787-2 MCV [Entitic mean volume] in Red Blood Cells by Automated count R fL
- 785-6 MCH [Entitic mass] by Automated count R pg
- 786-4 MCHC [Entitic Mass/volume] in Red Blood Cells by Automated count R g/dL
- 788-0 Erythrocyte [DistWidth] in Red Blood Cells by Automated count O %
- 777-3 Platelets [#/volume] in Blood by Automated count R 10*3/uL
- 32207-3 Platelet distribution width [Entitic volume] in Blood by Automated count O fL
- 32623-1 Platelet [Entitic mean volume] in Blood by Automated count O fL

Armed with this information which provides more details on the names and units to use, we can search UK sources. Some suggested resources include:

University Hospitals of Liverpool Group Full Blood Count

University Hospitals of Liverpool Group - Full Blood Count


Based on the results we have found so far, we could start to infer LOINC - Local Codes - SNOMED mappings, this is not recommended for a developer or business analyst.

Code mappings should be created by a clinical coder. In HL7 FHIR this code mapping is known as a ConceptMap. NHS England has produced instructions for creating a ConceptMap using the NHS England Ontology Server

However, LOINC and SNOMED have collaborated to produce The LOINC Ontology SNOMED CT Browser. Which allows us to alter our previous definition of the panel to:

LOINC SNOMED Name R/O/C UCUM Units
58410-2   CBC panel - Blood by Automated count    
- 6690-2 147071010000102 Leukocytes [#/volume] in Blood by Automated count R 10*3/uL
- 789-8 249121010000107 Erythrocytes [#/volume] in Blood by Automated count R 10*6/uL
- 718-7 168331010000106 Hemoglobin [Mass/volume] in Blood R g/dL
- 4544-3 558261010000109 Hematocrit [Volume Fraction] of Blood by Automated count R %
- 787-2 613061010000108 MCV [Entitic mean volume] in Red Blood Cells by Automated count R fL
- 785-6 612991010000106 MCH [Entitic mass] by Automated count R pg
- 786-4 613001010000107 MCHC [Entitic Mass/volume] in Red Blood Cells by Automated count R g/dL
- 788-0 613181010000104 Erythrocyte [DistWidth] in Red Blood Cells by Automated count O %
- 777-3 218801010000106 Platelets [#/volume] in Blood by Automated count R 10*3/uL
- 32207-3   Platelet distribution width [Entitic volume] in Blood by Automated count O fL
- 32623-1 528301010000103 Platelet [Entitic mean volume] in Blood by Automated count O fL

Note these SNOMED codes do not appear to be supported in the UK Edition of SNOMED.

As a Domain Archetype or Panel, we can represent this as a FHIR Questionnaire

This format is useful as it is supported by tooling, for example, National Laboratory of Medicine - NLM Form Builder which was used to help produce the CBC example.

NLM Form Builder

NLM Form Builder


An example for Full Blood Count:

Archetype/Panel CBC panel - Blood by Automated count.

FHIR Questionnaire can hold mappings between different structures and codes. In the example below we can see LOINC codes for questions in the LinkId column and where the questions should map to in FHIR Resources (for FHIR Observation resource this also implies HL7 v2 OBX segments, both are commonly used for exchanging questions and answers between systems).

FHIR Questionnaire Example

FHIR Questionnaire Example


The JSON/XML representation can also contain coding for different codesystems, e.g.

 "code": [
        {
          "system": "http://loinc.org",
          "code": "6690-2",
          "display": "WBC # Bld Auto"
        },
        {
          "system": "http://snomed.info/sct",
          "code": "147071010000102",
          "display": "WBC Auto (Bld) [#/Vol]"
        }
      ]

Armed with this information, we can create a FHIR Observation Example Observation: MCV - Mean corpuscular volume. This is similar to the earlier DHCW example for OBX-6.

OBX|6|CE|B0309^Mean cell volume (MCV)||NA^Not assayed^ACME|fL|80-100|N|||F|||201803091500

The main difference is the use of clinical coding instead of the B0309 local code. Note also the ranges are different and will vary between labs.

Another way of handling the mapping between coding is FHIR ConceptMap. A simple example of this mapping between the UK and LOINC SNOMED coding can be found here:

FHIR ConceptMap Example

FHIR ConceptMap SNOMED LOINC Edition to SNOMED UK Edition Example


FHIR ConceptMap Example

FHIR ConceptMap LOINC to SNOMED UK Example


Codes or Resources

This is for discussion, this applies to FHIR resources identified as not being entities (and the use of identifier is not mandatory). These include:

  • Observation
  • Condition

In FHIR the codes for these will be CodeableConcept (HL7 v2 CE Data Types). It is excepted NHS England will

  • express a preference towards SNOMED CT
  • use FHIR Resources to represent these.

The use of FHIR resources for data which is currently HL7 v2 CE Data Type may need to be questioned. For example mapping of HL7 v2 ORC-16 is to ServiceRequest.requestCode according to ServiceRquest - HL7 v2 Mapping, this is a v2 CE to FHIR CodeableConcept conversion. Curently this is stated as an implied ServiceRequest.requestReference mapping (ISSUE link: NHS England Developer Community Genomics Order Management Service - FHIR ServiceRequest reason)