Validation and Terminology

Validation of FHIR structures is expected to be performed against the UK Core package listed within the IG dependencies. This validation can be performed using any open source FHIR validator (the current Alpha FHIR validation is being performed via the HAPI FHIR validation tool).

Validation of codes is split into 2 parts:

  • Validation of codes defined within FHIR CodeSystems, either FHIR R4, UK Core or Genomics specific will occur locally on the central broker, via loading in of the associated packages.
  • Validation of codes defined within external terminologies is expected to occur against central terminology servers, such as the NHS England OntoServer. For the alpha, this is currently limited to validation of HPO and SNOMED CT terms against the versions loaded into the terminology server. Discussions are ongoing for support of further genomics specific terminologies and nomenclatures used within Genomic Reporting
    • The NHS Ontology Server mark Fully Specified Names (FSNs) used in messages as invalid. If a display term is provided, a synonym SHALL be used, preferrably the preferred term as defined within the UK Edition of SNOMED CT.

Users will be able to validate resources against the Genomics IG (UK Core STU3 plus genomic specific business logic) by using the Alpha implementation of the $validate operation.

Note on use of Other

Some ConceptMaps or bindings to ValueSets may not cover the full list of possible codes which could be used, e.g. if driven by shortlists within the Genomics MDS, such as the reasons for reanalysis ServiceRequest.category codes.

If a concept which is not covered by the shortlist needs to be used, the 'other' option SHOULD be used instead, if provided in the ConceptMap or ValueSet. To continue to capture the information entered by the source system, this can be entered into the CodeableConcept.text field.

code: {
    coding: [
        {
            "system": "https://fhir.nhs.uk/CodeSystem/reasonfortesting-genomics",
            "code": "other"
        }
    ],
    "text": "Reinterpretation required"
}

Note on incorrect use of display terms for SNOMED CT Concepts

Occaisionally, terms in internal supplier lists may differ from recognised SNOMED CT display terms. While native use of the NHS Terminology server is preferred, where terms differ the SNOMED CT code SHALL still be sent in the code element. Additionally, the display term selected by the user SHOULD be sent within the CodeableConcept.text element to preserve what was actually selected, and avoid possible harm due to interpretation of only the code. In this case the display element cannot be used as the code, display pair would not pass validation against the Terminology Server.

code: {
    coding: [
        {
            "system": "http://snomed.info/sct",
            "code": "92818009"
        }
    ],
    "text": "Chronic myeloid leukaemia"
}