ConceptMap Design

This section provides background information on metadata used within ConceptMap resources, a section that lists HL7 FHIR standard extensions that may be considered relevant to a UK Core ConceptMap, and links to example CodeSystems already created for the UK Core.

Further information about the ConceptMap resource is available online.

This section also lists HL7 FHIR standard extensions that may be considered relevant to a ConceptMap, followed by an XML template for a new ConceptMap and links to example ConceptMaps already created for the UK Core.

Metadata usage

The list below contains generic Resource elements, followed by generic DomainResource elements, followed by ConceptMap resource elements.

View further information about FHIR base resource definitions and elements.

View further information about FHIR domain resources.

Element name Base Cardinality UK Core Cardinality Type Definition, Constraints and Notes
id 0..1 1..1 id Logical id of this artifact.

In the UK Core the format is the following, with the BusinessName in PascalCase:

UKCore-[BusinessNames].
url 0..1 1..1 uri Canonical identifier for this concept map, represented as a URI (globally unique).

In the UK Core the format is the following, with the BusinessName in PascalCase:

https://fhir.hl7.org.uk/CodeSystem/UKCore-[BusinessNames].



Element name Base Cardinality UK Core Cardinality Type Definition, Constraints and Notes
identifier 0..* 0..* Identifier Additional identifier for the ConceptMap, for example an OID.

If this is an OID, this should be in the following format:

    <identifier>
        <system value="urn:ietf:rfc:3986"/>
        <value value="urn:oid:2.16.840.1.113883.2.1.3.2.4.16.21"/>
    </identifier>


Further guidance may be needed in due course.
version 0..1 1..1 string Business version of the ConceptMap.

This will follow the Semantic Versioning standard [major.minor.patch].
name 0..1 1..1 string Computer readable name, this should reflect the name in the url element.

In the UK Core the format is PascalCase:

UKCore[BusinessNames].
title 0..1 1..1 string Human readable name, this should reflect the name in the url element.

In the UK Core the format is Proper Case:

UK Core [Business Names].
date 0..1 1..1 dateTime The date (and optionally time) when the CodeSystem was published or last changed. The date must change when the business version or status changes.

Only the date, without time, is populated in the UK Core.
publisher 0..1 1..1 string Name of the publisher (organization or individual).

For all UK Core CodeSystems, where the base URL is https://fhir.hl7.org.uk, this will be HL7 UK.
contact 0..* 1..* ContactDetail Contact details for the publisher.

See the Metadata Design for details of how this SHALL be populated for all UK Core CodeSystems, where the base URL is https://fhir.hl7.org.uk/.
description 0..1 1..1 markdown A free text natural language description of the of the concept map from a consumer's perspective.

The format should be as follows:

"A mapping between codes from [sourceCodeSystem] and codes from [targetCodeSystem]".
copyright 0..1 1..1 markdown A copyright statement relating to the code system and/or its contents.

All UK Core CodeSystems SHALL contain the the copright as listed in Metadata Design



Element name Base Cardinality UK Core Cardinality Type Definition, Constraints and Notes
source[x] 0..1 1..1 Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings.

UK Core concept maps use sourceUri. This should be a version specific reference. URIs SHOULD be absolute. If there is no source or target value set, there is no specified context for the map (not recommended). The source value set may select codes from either an explicit (standard or local) or implicit code system.
target[x] 0..1 1..1 The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.

UK Core concept maps use targetURI. This should be a version specific reference. URIs SHOULD be absolute. If there is no source or target value set, there is no specified context for the map.
group 0..* 0..* BackboneElement A group of mappings that all have the same source and target system.

A group element SHOULD normally be present.
group
.source
0..1 0..1 uri An absolute URI that identifies the source system where the concepts to be mapped are defined.

Although this is not needed if the source ValueSet is specified and contains concepts from a single CodeSystem, it SHOULD still be included in UK Core concept maps to avoid the need to find the source code system from the value set.
group
.sourceVersion
0..1 0..1 String The specific version of the code system, as determined by the code system authority.

The specification of a particular code system version may be required for code systems which lack concept permanence.

This SHOULD NOT normally be present in the UK Core.
group
.target
0..1 0..1 uri An absolute URI that identifies the target system that the concepts will be mapped to.

Although this is not needed if the target ValueSet is specified and contains concepts from a single CodeSystem, it SHOULD still be included in UK Core concept maps to avoid the needi to find the target code system from the value set. The group.target may be omitted if all of the target element equivalence values are 'unmatched'.
group
.targetVersion
0..1 0..1 string The specific version of the code system, as determined by the code system authority.

The specification of a particular code system version may be required for code systems which lack concept permanence.

This SHOULD NOT normally be present in the UK Core.
group
.element
1..* 1..* BackboneElement Mappings for an individual concept in the source to one or more concepts in the target.

Generally, the ideal is that there would only be one mapping for each concept in the source value set, but a given concept may be mapped multiple times with different comments or dependencies.
group
.element
.code
0..1 1..1 code Identity (code or path) or the element/item being mapped.
group
.element
.display
0..1 1..1 string The display for the code. The display is only provided to help editors when editing the concept map.

The display is ignored when processing the map.
group
.element
.target
0..* 0..* BackboneElement A concept from the target value set that this concept maps to.

Ideally there would only be one map, with equal or equivalent mapping. But multiple maps are allowed for several narrower options, or to assert that other concepts are unmatched.

If the map is narrower or inexact, there SHALL be some comments.

This SHOULD normally be present but MAY be absent where there is no mapping from a source concept.
group
.element
.target
.code
0..1 1..1 code Identity (code or path) or the element/item that the map refers to.
group
.element
.target
.display
0..1 1..1 string The display for the code. The display is only provided to help editors when editing the concept map.

The display is ignored when processing the map.

ConceptMap Extensions

This section lists HL7 FHIR Standard concept map extensions that could be considered for use in UK Core concept maps.

The full list of HL7 FHIR Standard concept map extensions is available online.

Concept-bidirectional

The HL7 FHIR standard extension https://hl7.org/fhir/extension-concept-bidirectional.html MAY be used where the ConceptMap can be safely interpreted in reverse, in order to avoid needing to create an additional ConceptMap for the reverse mapping.

Example Concept Maps from the UK Core

ConceptMap between an HL7UK code system and a code system of SNOMED concepts

https://simplifier.net/HL7FHIRUKCoreR4/UKCore-ConditionEpisodicity-duplicate-2/~xml