Aimed at FHIR developers, this guidance will show how to process the CodeableConcept, including:
Element | Description |
---|---|
code |
The wrapper element for the CodeableConcept. |
code.coding |
The wrapper element for the coded part of the CodeableConcept. |
code.coding.extension.url |
The HL7 common extension for providing the SNOMED CT Description ID for the display. Value = http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
code.coding.extension.valueId Where extension.url = http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
The SNOMED CT Description ID for the display. |
code.coding.extension.url |
A UKCore extension for providing the SNOMED CT description display. Value = https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
code.coding.extension.valueString Where extension.url = https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
The SNOMED CT description display. |
code.coding.system |
Holds the SNOMED CT system identifier http://snomed.info/sct |
code.coding.version |
Not used for SNOMED CT. |
code.coding.code |
Holds the SNOMED CT concept identifier. |
code.coding.display |
Holds the SNOMED CT concept display. |
code.coding.userSelected |
Indicates that this concept was chosen by the user. |
code.text |
Represents the text that was originally displayed to the user when the code was recorded. |
This section shows you how to populate each field where the code carried is a SNOMED CT code and where it’s not a SNOMED CT code. It also includes population scenarios with examples.
Element | Definition |
---|---|
code.coding |
Populate this group if a SNOMED CT concept id is stored for the item. |
code.coding.extension Where extension.url = http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
The SNOMED CT descriptionId recorded with the item. Only populated if a descriptionId exists. |
code.coding.extension Where extension.url = https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
The display of the description id. Only populated if a descriptionId exists and there is no need to use this extension if the text is lexically identical to the text in coding.display. |
code.coding.system |
Set to http://snomed.info/sct |
code.coding.code |
The SNOMED CT concept id stored for the item. |
code.coding.display |
The text of the current preferred term of the SNOMED CT concept id according to the current NHS Realm Language Reference Sets. The text of the preferred term of the SNOMED CT concept id. The preferred term is the description specified for the concept in the NHS realm description subset. The preferred term for a concept may change over time. The sending system SHOULD determine the current preferred term for the concept. |
code.coding.userSelected |
Set to true if a user selected the SNOMED CT Code when creating/updating this item. If this is false then this element SHALL not be populated by the supplying system. For consuming systems the absence of this element therefore indicates that it is false . |
code.text |
The original text selected/manually entered by the user for the item. If the text displayed to the user when they entered the code on the system is not lexically identical to the term of the code then the displayed text SHALL be populated here. Note: This occurs when either the original entry was not coded or the original coding has been lost. |
Element | Definition |
---|---|
code.coding |
Populate this group if a clinical code other than SNOMED CT is stored for the item. If there are multiple codes (that is,. the item has been translated multiple times) there is a group entry per code. |
code.coding.extension Where extension.url = http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
Note: Do not use here if coding is not SNOMED CT. |
code.coding.extension Where extension.url = https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
Note: Do not use here if coding is not SNOMED CT. |
code.coding.system |
The identification of the code system that defines the meaning of the symbol in the code. |
code.coding.code |
The clinical code associated with the item. |
code.coding.display |
The longest character length variant text associated with the current preferred term for the clinical code. |
|
Set to true if a user selected this code when creating/updating this item. If this is false then this element SHALL not be populated by the supplying system.
For consuming systems the absence of this element therefore indicates that it is false . |
code.text |
The original text selected/manually entered by the user for the item. If the text displayed to the user when they entered the code on the system is not lexically identical to the term of the code then the displayed text SHALL be populated here. Note: This occurs when either the original entry was not coded or the original coding has been lost. |
Where a supplier is using the dm+d codes which does not contain any data at the descriptionId level, then we would not expect the descriptionId extension to be populated. Where the descriptionId is available then this SHALL be included.
The example below demonstrates how a dm+d code SHOULD be sent where there is no descriptionId available.
Medication.id[0] | UKCore-Medication-Sn-Extension-Amoxicillin-Example |
Medication.meta[0].profile[0] | https://fhir.hl7.org.uk/StructureDefinition/UKCore-Medication |
Medication.code[0].coding[0].system[0] | https://dmd.nhs.uk/ |
Medication.code[0].coding[0].code[0] | 323509004 |
Medication.code[0].coding[0].display[0] | Amoxicillin 250mg capsules |
Medication.code[0].coding[0].userSelected[0] | True |
Medication |
id : UKCore-Medication-Sn-Extension-Amoxicillin-Example |
meta |
profile : https://fhir.hl7.org.uk/StructureDefinition/UKCore-Medication |
code |
coding |
system : https://dmd.nhs.uk/ |
code : 323509004 |
display : Amoxicillin 250mg capsules |
userSelected : True |
<Medication xmlns="http://hl7.org/fhir"> <id value="UKCore-Medication-Sn-Extension-Amoxicillin-Example" /> <meta> <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Medication" /> </meta> <!-- **************Snippet start************** --> <code> <coding> <system value="https://dmd.nhs.uk/" /> <code value="323509004" /> <display value="Amoxicillin 250mg capsules" /> <userSelected value="true" /> </coding> </code> <!-- **************Snippet end************** --> </Medication>
{ "resourceType": "Medication", "id": "UKCore-Medication-Sn-Extension-Amoxicillin-Example", "meta": { "profile": [ "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Medication" ] }, "code": { "coding": [ { "system": "https://dmd.nhs.uk/", "code": "323509004", "display": "Amoxicillin 250mg capsules", "userSelected": true } ] } }
When sending a SNOMED CT concept id with its preferred term and the SNOMED CT Description ID is known, then the HL7 common extension coding-sctdescid
SHALL be used and the element sctdescid
SHALL be populated. Where the SNOMED CT Description ID is not known, then the codeable concept MAY be sent without it.
In the example below, the SNOMED CT Description ID is populated with the the preferred term, but there is no description ID display as the concept id was entered by the user and the preferred term was displayed to them when it was added.
Condition.id[0] | UKCore-Condition-Sn-Extension-CodingSCT-Myocardial-Example |
Condition.meta[0].profile[0] | https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition |
Condition.code[0].coding[0].extension[0].url[0] | https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
Condition.code[0].coding[0].extension[0].valueString[0] | Myocardial infarction |
Condition.code[0].coding[0].extension[1].url[0] | http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
Condition.code[0].coding[0].extension[1].valueId[0] | 337436014 |
Condition.code[0].coding[0].system[0] | http://snomed.info/sct |
Condition.code[0].coding[0].code[0] | 22298006 |
Condition.code[0].coding[0].display[0] | Myocardial infarction |
Condition.code[0].coding[0].userSelected[0] | True |
Condition.subject[0].reference[0] | Patient/UKCore-Patient-RichardSmith-Example |
Condition |
id : UKCore-Condition-Sn-Extension-CodingSCT-Myocardial-Example |
meta |
profile : https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition |
code |
coding |
extension |
url : https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
value : Myocardial infarction |
extension |
url : http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
value : 337436014 |
system : http://snomed.info/sct |
code : 22298006 |
display : Myocardial infarction |
userSelected : True |
subject |
reference : Patient/UKCore-Patient-RichardSmith-Example |
<Condition xmlns="http://hl7.org/fhir"> <id value="UKCore-Condition-Sn-Extension-CodingSCT-Myocardial-Example" /> <meta> <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition" /> </meta> <!-- **************Snippet start************** --> <code> <coding> <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> <valueString value="Myocardial infarction" /> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> <valueId value="337436014" /> </extension> <system value="http://snomed.info/sct" /> <code value="22298006" /> <display value="Myocardial infarction" /> <userSelected value="true" /> </coding> </code> <!-- **************Snippet end************** --> <subject> <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> </subject> </Condition>
{ "resourceType": "Condition", "id": "UKCore-Condition-Sn-Extension-CodingSCT-Myocardial-Example", "meta": { "profile": [ "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition" ] }, "code": { "coding": [ { "extension": [ { "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay", "valueString": "Myocardial infarction" }, { "url": "http://hl7.org/fhir/StructureDefinition/coding-sctdescid", "valueId": "337436014" } ], "system": "http://snomed.info/sct", "code": "22298006", "display": "Myocardial infarction", "userSelected": true } ] }, "subject": { "reference": "Patient/UKCore-Patient-RichardSmith-Example" } }
In the exceptional case that the code is not known, then the code.text element MAY be populated without the need to populate a coding element.
Condition.id[0] | UKCore-Condition-Sn-Extension-CodingSCT-MyocardialInf-Example |
Condition.code[0].coding[0].extension[0].url[0] | https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
Condition.code[0].coding[0].extension[0].valueString[0] | Myocardial infarction |
Condition.code[0].coding[0].extension[1].url[0] | http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
Condition.code[0].coding[0].extension[1].valueId[0] | 337436014 |
Condition.code[0].coding[0].system[0] | http://snomed.info/sct |
Condition.code[0].coding[0].code[0] | 22298006 |
Condition.code[0].coding[0].display[0] | Myocardial infarction |
Condition.code[0].coding[0].userSelected[0] | True |
Condition.code[0].text[0] | Myocardial infarction |
Condition.subject[0].reference[0] | Patient/UKCore-Patient-RichardSmith-Example |
Condition |
id : UKCore-Condition-Sn-Extension-CodingSCT-MyocardialInf-Example |
code |
coding |
extension |
url : https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
value : Myocardial infarction |
extension |
url : http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
value : 337436014 |
system : http://snomed.info/sct |
code : 22298006 |
display : Myocardial infarction |
userSelected : True |
text : Myocardial infarction |
subject |
reference : Patient/UKCore-Patient-RichardSmith-Example |
<Condition xmlns="http://hl7.org/fhir"> <id value="UKCore-Condition-Sn-Extension-CodingSCT-MyocardialInf-Example" /> <!-- **************Snippet start************** --> <code> <coding> <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> <valueString value="Myocardial infarction" /> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> <valueId value="337436014" /> </extension> <system value="http://snomed.info/sct" /> <code value="22298006" /> <display value="Myocardial infarction" /> <userSelected value="true" /> </coding> <text value="Myocardial infarction" /> </code> <!-- **************Snippet end************** --> <subject> <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> </subject> </Condition>
{ "resourceType": "Condition", "id": "UKCore-Condition-Sn-Extension-CodingSCT-MyocardialInf-Example", "code": { "coding": [ { "extension": [ { "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay", "valueString": "Myocardial infarction" }, { "url": "http://hl7.org/fhir/StructureDefinition/coding-sctdescid", "valueId": "337436014" } ], "system": "http://snomed.info/sct", "code": "22298006", "display": "Myocardial infarction", "userSelected": true } ], "text": "Myocardial infarction" }, "subject": { "reference": "Patient/UKCore-Patient-RichardSmith-Example" } }
In this case, the SNOMED CT Description ID represents a term that is different from the preferred term and therefore the description display will be different from that used to populate the code.coding.display element. Therefore the extension Extension UKCore-CodingSCTDescDisplay SHALL be populated with the term corresponding to the SNOMED CT Description ID.
Condition.id[0] | UKCore-Condition-Sn-Extension-CodingSCT-Heart-Example |
Condition.meta[0].profile[0] | https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition |
Condition.code[0].coding[0].extension[0].url[0] | https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
Condition.code[0].coding[0].extension[0].valueString[0] | Heart attack |
Condition.code[0].coding[0].extension[1].url[0] | http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
Condition.code[0].coding[0].extension[1].valueId[0] | 37443015 |
Condition.code[0].coding[0].system[0] | http://snomed.info/sct |
Condition.code[0].coding[0].code[0] | 22298006 |
Condition.code[0].coding[0].display[0] | Myocardial infarction |
Condition.code[0].coding[0].userSelected[0] | True |
Condition.subject[0].reference[0] | Patient/UKCore-Patient-RichardSmith-Example |
Condition |
id : UKCore-Condition-Sn-Extension-CodingSCT-Heart-Example |
meta |
profile : https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition |
code |
coding |
extension |
url : https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
value : Heart attack |
extension |
url : http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
value : 37443015 |
system : http://snomed.info/sct |
code : 22298006 |
display : Myocardial infarction |
userSelected : True |
subject |
reference : Patient/UKCore-Patient-RichardSmith-Example |
<Condition xmlns="http://hl7.org/fhir"> <id value="UKCore-Condition-Sn-Extension-CodingSCT-Heart-Example" /> <meta> <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition" /> </meta> <!-- **************Snippet start************** --> <code> <coding> <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> <valueString value="Heart attack" /> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> <valueId value="37443015" /> </extension> <system value="http://snomed.info/sct" /> <code value="22298006" /> <display value="Myocardial infarction" /> <userSelected value="true" /> </coding> </code> <!-- **************Snippet end************** --> <subject> <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> </subject> </Condition>
{ "resourceType": "Condition", "id": "UKCore-Condition-Sn-Extension-CodingSCT-Heart-Example", "meta": { "profile": [ "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition" ] }, "code": { "coding": [ { "extension": [ { "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay", "valueString": "Heart attack" }, { "url": "http://hl7.org/fhir/StructureDefinition/coding-sctdescid", "valueId": "37443015" } ], "system": "http://snomed.info/sct", "code": "22298006", "display": "Myocardial infarction", "userSelected": true } ] }, "subject": { "reference": "Patient/UKCore-Patient-RichardSmith-Example" } }
In the case where a code was entered into the clinical system using a legacy coding system and the code was mapped to a SNOMED CT translation, the following scenario SHALL be considered.
In SNOMED CT, all concept ids always have more than one associated description: all have at least one fully specified name and at least one additional associated synonym. Of these, exactly one fully specified name and one synonym will be declared to be “preferred” at any point in time within a Realm Language Reference Set, but which terms are designated “preferred” can and does change over time.
Therefore, in most cases where such mappings have been created, they will have been mapped to an explicit pairing of one SNOMED CT concept id and one of its legitimate description IDs. The particular description ID selected might also correspond to the preferred term but often does not.
Exceptionally, mappings could correspond to a SNOMED CT concept id only and so no particular description is declared in the map. In these cases the description originally entered by the clinician in the legacy coding system SHALL be considered to be the clinically relevant text.
Observation.id[0] | UKCore-Observation-Sn-Extension-CodingSCT-Potassium-Example |
Observation.meta[0].profile[0] | https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation |
Observation.status[0] | final |
Observation.code[0].coding[0].extension[0].url[0] | https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
Observation.code[0].coding[0].extension[0].valueString[0] | Serum potassium measurement |
Observation.code[0].coding[0].extension[1].url[0] | http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
Observation.code[0].coding[0].extension[1].valueId[0] | 405941011 |
Observation.code[0].coding[0].system[0] | http://snomed.info/sct |
Observation.code[0].coding[0].code[0] | 1000651000000109 |
Observation.code[0].coding[0].display[0] | Serum potassium level |
Observation.code[0].coding[0].userSelected[0] | True |
Observation.code[0].text[0] | Serum Potassium |
Observation.subject[0].reference[0] | Patient/UKCore-Patient-RichardSmith-Example |
Observation |
id : UKCore-Observation-Sn-Extension-CodingSCT-Potassium-Example |
meta |
profile : https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation |
status : final |
code |
coding |
extension |
url : https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
value : Serum potassium measurement |
extension |
url : http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
value : 405941011 |
system : http://snomed.info/sct |
code : 1000651000000109 |
display : Serum potassium level |
userSelected : True |
text : Serum Potassium |
subject |
reference : Patient/UKCore-Patient-RichardSmith-Example |
<Observation xmlns="http://hl7.org/fhir"> <id value="UKCore-Observation-Sn-Extension-CodingSCT-Potassium-Example" /> <meta> <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation" /> </meta> <status value="final" /> <!-- **************Snippet start************** --> <code> <coding> <extension url="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> <valueString value="Serum potassium measurement" /> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> <valueId value="405941011" /> </extension> <system value="http://snomed.info/sct" /> <code value="1000651000000109" /> <display value="Serum potassium level" /> <userSelected value="true" /> <!-- flags the coding originally actually selected by the user --> </coding> <text value="Serum Potassium" /> <!-- what the user saw on screen, from a data entry template --> </code> <!-- **************Snippet end************** --> <subject> <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> </subject> </Observation>
{ "resourceType": "Observation", "id": "UKCore-Observation-Sn-Extension-CodingSCT-Potassium-Example", "meta": { "profile": [ "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation" ] }, "status": "final", "code": { "coding": [ { "extension": [ { "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay", "valueString": "Serum potassium measurement" }, { "url": "http://hl7.org/fhir/StructureDefinition/coding-sctdescid", "valueId": "405941011" } ], "system": "http://snomed.info/sct", "code": "1000651000000109", "display": "Serum potassium level", "userSelected": true } ], "text": "Serum Potassium" }, "subject": { "reference": "Patient/UKCore-Patient-RichardSmith-Example" } }
Condition.id[0] | UKCore-Condition-Sn-Extension-CodingSCT-MoleOfSkin-Example |
Condition.meta[0].profile[0] | https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition |
Condition.code[0].coding[0].system[0] | http://read.info/ctv3 |
Condition.code[0].coding[0].code[0] | X78Uv |
Condition.code[0].coding[0].display[0] | Benign melanocytic naevus skin |
Condition.code[0].coding[1].extension[0].url[0] | https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
Condition.code[0].coding[1].extension[0].valueString[0] | Mole of skin |
Condition.code[0].coding[1].extension[1].url[0] | http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
Condition.code[0].coding[1].extension[1].valueId[0] | 1787065011 |
Condition.code[0].coding[1].system[0] | http://snomed.info/sct |
Condition.code[0].coding[1].code[0] | 400010006 |
Condition.code[0].coding[1].display[0] | Melanocytic naevus of skin |
Condition.code[0].text[0] | Moles |
Condition.subject[0].reference[0] | Patient/UKCore-Patient-RichardSmith-Example |
Condition |
id : UKCore-Condition-Sn-Extension-CodingSCT-MoleOfSkin-Example |
meta |
profile : https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition |
code |
coding |
system : http://read.info/ctv3 |
code : X78Uv |
display : Benign melanocytic naevus skin |
coding |
extension |
url : https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
value : Mole of skin |
extension |
url : http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
value : 1787065011 |
system : http://snomed.info/sct |
code : 400010006 |
display : Melanocytic naevus of skin |
text : Moles |
subject |
reference : Patient/UKCore-Patient-RichardSmith-Example |
<Condition xmlns="http://hl7.org/fhir"> <id value="UKCore-Condition-Sn-Extension-CodingSCT-MoleOfSkin-Example" /> <meta> <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition" /> </meta> <!-- **************Snippet start************** --> <code> <coding> <system value="http://read.info/ctv3" /> <code value="X78Uv" /> <!-- no term code, so CTV3 PT is implied? --> <display value="Benign melanocytic naevus skin" /> <!-- text of V3 PT --> </coding> <coding> <extension url="https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> <valueString value="Mole of skin" /> <!-- text for id = 1787065011 --> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> <valueId value="1787065011" /> <!-- not the SNOMED PT --> </extension> <system value="http://snomed.info/sct" /> <code value="400010006" /> <!-- SNOMED conceptId --> <display value="Melanocytic naevus of skin" /> <!-- text of SNOMED PT --> </coding> <text value="Moles" /> <!-- what user saw on screen, from data entry template --> </code> <!-- **************Snippet end************** --> <subject> <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> </subject> </Condition>
{ "resourceType": "Condition", "id": "UKCore-Condition-Sn-Extension-CodingSCT-MoleOfSkin-Example", "meta": { "profile": [ "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Condition" ] }, "code": { "coding": [ { "system": "http://read.info/ctv3", "code": "X78Uv", "display": "Benign melanocytic naevus skin" }, { "extension": [ { "url": "https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay", "valueString": "Mole of skin" }, { "url": "http://hl7.org/fhir/StructureDefinition/coding-sctdescid", "valueId": "1787065011" } ], "system": "http://snomed.info/sct", "code": "400010006", "display": "Melanocytic naevus of skin" } ], "text": "Moles" }, "subject": { "reference": "Patient/UKCore-Patient-RichardSmith-Example" } }
All Read Codes SHOULD be represented using a full five characters.
Read Codes Version 2 uses a "Term Code" to distinguish between some alternative terms associated with the same Read Code. A Term Code is represented as a two-digit string and is only unique within the context of a single Read Code.
It is now widely recognised that many of the terms associated with a Read Code are not true synonyms. This issue was partially resolved in NHS Clinical Terms Version 3 and further disambiguation has occurred in development of SNOMED CT. However, in the meantime where Term Codes are stored these SHOULD be communicated with the Read Code.
A Read Code + Term Code combination is communicated as a single seven character code. Thus the code "7001200" represents the Term Code "00" associated with the Read Code "70012".
Note: that this specification requires the term to be conveyed in the message in addition to any coded representation. Therefore, safe communication is not dependent on use of the Term Code in all systems. Therefore, a sending system that does not support Term Codes for a particular item of information SHOULD NOT send a Term Code. Similarly a receiving system that does not support Term Code storage MAY ignore the Term Code when constructing a record entry. However, where a sending system stores the Term Code this SHOULD be included in the message and where a receiving system stores the Term Code this SHOULD be retrieved from the message.
In NHS Clinical Terms Version 3 the TermId is a five character string that uniquely identifies an associated term (or set of two or three terms of alternative lengths). Although it is globally unique it says nothing about the associated concept and thus SHALL be combined with the Read Code. There are no plans to use the TermID in NHS Clinical Terms Version 3 and thus inclusion of TermId is not permitted.
Includes the case where the description id is locally declared to be the preferred term.
Observation.id[0] | UKCore-Observation-Sn-Extension-CodingSCT-Weight-Example |
Observation.meta[0].profile[0] | https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation |
Observation.status[0] | final |
Observation.code[0].coding[0].extension[0].url[0] | https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
Observation.code[0].coding[0].extension[0].valueString[0] | Ideal weight |
Observation.code[0].coding[0].extension[1].url[0] | http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
Observation.code[0].coding[0].extension[1].valueId[0] | 787121000006116 |
Observation.code[0].coding[0].code[0] | 170804003 |
Observation.code[0].coding[0].display[0] | Ideal body weight |
Observation.code[0].coding[0].userSelected[0] | True |
Observation.subject[0].reference[0] | Patient/UKCore-Patient-RichardSmith-Example |
Observation |
id : UKCore-Observation-Sn-Extension-CodingSCT-Weight-Example |
meta |
profile : https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation |
status : final |
code |
coding |
extension |
url : https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
value : Ideal weight |
extension |
url : http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
value : 787121000006116 |
code : 170804003 |
display : Ideal body weight |
userSelected : True |
subject |
reference : Patient/UKCore-Patient-RichardSmith-Example |
<Observation xmlns="http://hl7.org/fhir"> <id value="UKCore-Observation-Sn-Extension-CodingSCT-Weight-Example" /> <meta> <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation" /> </meta> <status value="final" /> <!-- **************Snippet start************** --> <code> <coding> <extension url="https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> <valueString value="Ideal weight" /> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> <valueId value="787121000006116" /> <!-- descriptionId from a GP system namespace --> </extension> <code value="170804003" /> <!-- conceptId from SNOMED International CORE --> <display value="Ideal body weight" /> <userSelected value="true" /> </coding> </code> <!-- **************Snippet end************** --> <subject> <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> </subject> </Observation>
{ "resourceType": "Observation", "id": "UKCore-Observation-Sn-Extension-CodingSCT-Weight-Example", "meta": { "profile": [ "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation" ] }, "status": "final", "code": { "coding": [ { "extension": [ { "url": "https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay", "valueString": "Ideal weight" }, { "url": "http://hl7.org/fhir/StructureDefinition/coding-sctdescid", "valueId": "787121000006116" } ], "code": "170804003", "display": "Ideal body weight", "userSelected": true } ] }, "subject": { "reference": "Patient/UKCore-Patient-RichardSmith-Example" } }
Observation.id[0] | UKCore-Observation-Sn-Extension-CodingSCT-IllicitDrugs-Example |
Observation.meta[0].profile[0] | https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation |
Observation.status[0] | final |
Observation.code[0].coding[0].extension[0].url[0] | https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
Observation.code[0].coding[0].extension[0].valueString[0] | Illicit medication use unknown |
Observation.code[0].coding[0].extension[1].url[0] | http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
Observation.code[0].coding[0].extension[1].valueId[0] | 3449865011 |
Observation.code[0].coding[0].system[0] | http://snomed.info/sct |
Observation.code[0].coding[0].code[0] | 702771005 |
Observation.code[0].coding[0].display[0] | Illicit drug use unknown |
Observation.code[0].coding[0].userSelected[0] | True |
Observation.code[0].text[0] | Not known whether uses illicit drugs |
Observation.subject[0].reference[0] | Patient/UKCore-Patient-RichardSmith-Example |
Observation |
id : UKCore-Observation-Sn-Extension-CodingSCT-IllicitDrugs-Example |
meta |
profile : https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation |
status : final |
code |
coding |
extension |
url : https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay |
value : Illicit medication use unknown |
extension |
url : http://hl7.org/fhir/StructureDefinition/coding-sctdescid |
value : 3449865011 |
system : http://snomed.info/sct |
code : 702771005 |
display : Illicit drug use unknown |
userSelected : True |
text : Not known whether uses illicit drugs |
subject |
reference : Patient/UKCore-Patient-RichardSmith-Example |
<Observation xmlns="http://hl7.org/fhir"> <id value="UKCore-Observation-Sn-Extension-CodingSCT-IllicitDrugs-Example" /> <meta> <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation" /> </meta> <status value="final" /> <!-- **************Snippet start************** --> <code> <coding> <extension url="https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay"> <valueString value="Illicit medication use unknown" /> </extension> <extension url="http://hl7.org/fhir/StructureDefinition/coding-sctdescid"> <valueId value="3449865011" /> </extension> <system value="http://snomed.info/sct" /> <code value="702771005" /> <display value="Illicit drug use unknown" /> <userSelected value="true" /> </coding> <text value="Not known whether uses illicit drugs" /> <!-- what the user saw on screen, from a data entry template --> </code> <!-- **************Snippet end************** --> <subject> <reference value="Patient/UKCore-Patient-RichardSmith-Example" /> </subject> </Observation>
{ "resourceType": "Observation", "id": "UKCore-Observation-Sn-Extension-CodingSCT-IllicitDrugs-Example", "meta": { "profile": [ "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Observation" ] }, "status": "final", "code": { "coding": [ { "extension": [ { "url": "https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-CodingSCTDescDisplay", "valueString": "Illicit medication use unknown" }, { "url": "http://hl7.org/fhir/StructureDefinition/coding-sctdescid", "valueId": "3449865011" } ], "system": "http://snomed.info/sct", "code": "702771005", "display": "Illicit drug use unknown", "userSelected": true } ], "text": "Not known whether uses illicit drugs" }, "subject": { "reference": "Patient/UKCore-Patient-RichardSmith-Example" } }
When storing the item, the receiving system MAY choose to store any or all of the clinical codes associated with the item.
However, where the system supports SNOMED CT codes it SHALL store any SNOMED CT codes associated with the item.
Where the receiving system does not understand any of the supplied coding.system
which a coding has been associated with the item (or no clinical codes were supplied), it MAY choose to record the item under a degraded code. The appropriate SNOMED CT degrade code SHOULD be used within the system to store the code.
The following codes are available in SNOMED CT to represent degraded items and can be used when populating FHIR resources. | |
---|---|
Degraded Drug Allergies | 196461000000101 - Transfer-degraded drug allergy |
Degraded Non-Drug Allergies | 196471000000108 - Transfer-degraded non-drug allergy |
Degraded Medications | 196421000000109 - Transfer-degraded medication entry |
Degraded Plan | 196451000000104 - Transfer-degraded plan |
Degraded Referral | 196431000000106 - Transfer-degraded referral |
Degraded Request | 196441000000102 - Transfer-degraded request |
Other degrade | 196411000000103 - Transfer-degraded record entry |
Where an item that is being degraded is contained within a resource that infers a particular type of degrade then the appropriate code SHALL be used e.g. a code in a FHIR medication resource SHALL use the ‘Degraded medication’ code.
Clinical systems SHALL NOT attempt to infer a particular type of degrade code where there is no clear indication that a specific type of data has been degraded. In these scenarios the ‘Transfer degraded record entry’ code SHALL be used.
When displaying the item to end users, it is the choice of the receiving system to design their system and user experience in a safe manner that best suits their users.
When propagating coded data to another system, the system which received the item MAY choose which clinical codes to include when sending the item.
If a receiving system receives a SNOMED CT code that it does not understand it SHOULD store this code and propagate it onwards if the data is exported. If systems decide to do this, a consideration that might be useful is what would happen if the data item is changed/edited.
When processing an item, the receiving system SHALL always store the original term text of the item. That is, the text chosen/manually entered by the clinician/user to describe the item they are recording. Failure to do this could result in the intended meaning of the item being altered.
The original term text will be available in one of the following fields in order of descending priority:
coding.extension.valueString
in Extension UKCore-CodingSCTDescDisplay where coding.userSelected
= TRUE (or is unpopulated, and only one coding element is present)coding.display
where coding.userSelected
= TRUE (or is unpopulated, and only one coding element is present)Where the receiving system can derive the original term text from the clinical code and the derived text is lexically identical to the original term text, then the receiving system is not required to store the text separately.
However, where the system supports SNOMED CT codes it SHALL store any SNOMED CT codes associated with the item where the coding.userSelected
is set to ‘TRUE’ and propagate these onward in any future export of the data. As noted previously, some SNOMED CT codes received may be from a release or extension of SNOMED CT not available on the receiving system.
When displaying an item to end users, the receiving system SHALL always display the original term text of the item.
When propagating an item to another system, the receiving system SHALL always include the original term text of the item.