To standardise all pages within the FHIR UKCore Implementation Guide (IG), ensuring that they contain only the information necessary for UK Core as deemed by HL7 UK.
Procedure.note.authorReference
rather than note.author
Markdown | Usage |
---|---|
Title Case | Any headers that are not elements |
<code>camelCase</code>, or `camelCase` | Any elements and it’s values |
<code>PascalCase</code>, or `PascalCase` | Any Profile, ValueSet, or CodeSystem |
Markdown | Usage |
---|---|
# [Header 1] | Any Index page title. Note: Profiles SHALL not be in inline code for the first header |
## { {page-title}} | Any other page title |
## `{ {page-title}}` | Any other page title which is an element |
## [header 2] | Sub header for index page |
### [header 3] #### [header 4] |
Sub headers for any pages |
Markdown | Usage |
---|---|
<a href="[link]">[link title]</a> | External Links. Only to be used to link to pages within https://hl7.org/fhir/ and https://simplifier.net/ |
{ {pagelink:[Topic url]}} | Internal Link. For referencing within the IG. |
Note: the Topic url can be found using the dropdown button within the IG editor, or for pages named 'Index' these are manually created and can be found at the top of the page. See YAML Headers for more details.
External links SHALL have class="external" set.
There are two information boxes in use in the IG, a blue box and a yellow box.
Blue should be used for additional callouts of information, e.g.:
<div markdown="span" class="alert alert-info"><i class="fa fa-asterisk"></i> <code>UKCore-MedicationAdministrationCategory</code> was added after specific review and feedback from the Digital and Interoperable Medicines Programme. It was not added under a Clinical & Technical Assurance sprint </div>
UKCore-MedicationAdministrationCategory
was added after specific review and feedback from the Digital and Interoperable Medicines Programme. It was not added under a Clinical & Technical Assurance sprint
Yellow should be used for important information, e.g.:
<div markdown="span" class="alert alert-warning" role="alert"><h4><i class="fa fa-info-circle"></i> Important</h4> Where the prescription is available, it is recommended to reference via a URL - using the <code>MedicationDispense.authorizingPrescription.identifier</code> element rather than adding the <code>MedicationRequest</code> as a bundle - to avoid duplication. </div>
MedicationDispense.authorizingPrescription.identifier
element rather than adding the MedicationRequest
as a bundle - to avoid duplication.
Where guidance has been added or changed between ballots, it SHALL be highlighted in green.
For tr, td, li elements, this is done by adding class="balloted"
For Extensions, Profiles, ValueSets, CodeSystems that have been ADDED, this is done by adding this to the top of the relevant page - this will turn the whole of that Extension, ValueSet, CodeSystem green, or if added to a Profile page, the whole page green.
<div id="newAsset" markdown="span" class="alert alert-success" role="alert"><h4><i class="fa fa-star"></i> Important</h4> This [Asset Type] underwent Clinical and Technical Assurance during Sprint X. This is a new [Asset Type] added to UK Core, and should undergo review under Ballot Y. </div>
The same div, without the id="newAsset"
can be used on a page to add a green banner to the page. This should be used on any guidance page that is not an asset, e.g. within CodeableConcept guidance.
This [Asset Type] underwent Clinical and Technical Assurance during Sprint X. This is a new [Asset Type] added to UK Core, and should undergo review under Ballot Y.
Where guidance has been added in another IG, such as the glossary, this can be rendered in an IG using the Simpifier { {render: command, which can work across projects and organisations.
For example, the Glossary is rendered via:
{ {render:hl7fhirukcorer4/index-duplicate-49}}
Images can be rendered using the same { } command, and SHALL be within a div with id beginning "renderParent", and SHALL contains a title attirbute which will be used for the alt text.
<div id="renderParent" title="The logos of organisations involved in developing and implementing UK Core"> { {render:ukcorelogos2023}} </div>
A checklist to be used when creating or modifying a profile.
Check | OK |
---|---|
Are all relevant UK Core extensions within the profile? | |
Are all relevant UK Core ValueSets bound to the correct element with the correct strength? | |
Are all the references to the UK Core profile where possible, to HL7 FHIR otherwise? | |
Do all the table views work correctly? | |
Do all the links work correctly? | |
Are all examples (including extension examples) added to the Profile table examples table with a link to the correct page within the IG? | |
Is the Minimum Viable Content table correct and up to date? | |
Is the Extension table correct and links working? | |
Is all new information added unique only to the UK Core and not duplicated within HL7 FHIR, the profile or elsewhere within the profile pages? | |
Have the pages been run through a spellchecker? | |
Has the ‘Extensions Library’ been updated? | |
Has the ‘All ValueSets and CodeSystems’ been updated? | |
Is the Bindings (differential) table up to date? | |
Has the Profile been added to the CapabilityStatement on GitHub? |
A checklist to be used when creating or modifying an extension.
Check | OK |
---|---|
Has a page been created under ‘Extensions Library’ folder and filled out correctly? | |
Has the Extension been added to the Extension Library ‘Index’ page? | |
IF HL7 common extension has the extension been added to the Extension Library ‘HL7 Common Extensions’ page? |
A checklist to be used when creating or modifying a ValueSet.
Check | OK |
---|---|
Has a page been created under ‘All ValueSets’ folder and filled out correctly? | |
Has the ValueSet been added to ‘ValueSets and CodeSystems’ page. Is the relevant profile and CodeSystem also been linked? | |
Has the ValueSet been referenced within the relevant profile? | |
Are the examples working correctly within the ValueSet examples tab? |
A checklist to be used when creating or modifying a ValueSet.
Check | OK |
---|---|
Has a page been created under ‘All CodeSystems’ folder and filled out correctly? | |
Has the CodeSystem been added to ‘ValueSets and CodeSystems’ page under its ValueSet? |
A checklist to be used when creating or modifying an example.
Check | OK |
---|---|
Has a page been created under ‘Examples Index’ folder and filled out correctly? | |
Has the example been added to the relevant profile or extension table under the example tab? |
Extensions SHALL have a page within the ‘All Extensions’ folder with the naming convention of ‘Extension UKCore-[extensionName]’, and you must ensure the pages within the folder are in alphabetical order.
Each extension SHALL have an example.
The page layout SHALL be as the following:
## StructureDefinition Extension-UKCore-[ExtensionName] <div id="transpose"> @ ``` from StructureDefinition where name = 'ExtensionUKCoreAdditionalContact' select Canonical_URL: url, Description: description, Profile_Purpose: purpose ``` <table id="addToTranspose"> <tr><td>Context of Use</td> <td>{ {pagelink:Profile-[Profile],text:[Profile]}}</td> </tr> </table> </div> <br> <div class="tab"> <button class="tablinks active" onclick="openTab(event, 'Tree View')">Tree View</button> <button class="tablinks" onclick="openTab(event, 'Table View')">Table View</button> <button class="tablinks" onclick="openTab(event, 'XML View')">XML View</button> <button class="tablinks" onclick="openTab(event, 'JSON View')">JSON View</button> <button class="tablinks" onclick="openTab(event, 'Examples')">Examples</button> </div> <div id="Tree View" class="tabcontent" style="display:block"> <h3>Tree View</h3> { {tree:https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-[ExtensionName]}} </div> <div id="Table View" class="tabcontent"> <h3>Table View</h3> { {table:https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-[ExtensionName]}} </div> <div id="XML View" class="tabcontent"> <h3>XML View</h3> { {xml:https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-[ExtensionName]}} </div> <div id="JSON View" class="tabcontent"> <h3>JSON View</h3> { {json:https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-[ExtensionName]}} </div> <div id="Examples" class="tabcontent"> <h3>Examples</h3> <b>[Example]</b> - An example to illustrate using the extension.<br> { {pagelink:Example-UKCore-[Profile]-Extension-[ExtensionName]}} <br><br> </div> ### Guidance [A link to the ValueSet if the Extension has a binding, or a link to the Resource / Profile if the Extension has references] ---
ValueSets SHALL have a page within the ‘All ValueSets’ folder with the naming convention “ValueSet [ValueSet id]”, e.g. ValueSet UKCore-EthnicCategory, and you must ensure the pages within the folder are in alphabetical order.
The layout SHALL be in the following format:
--- subject: https://fhir.hl7.org.uk/ValueSet/UKCore-[Name] --- ## UK Core Vaccine Code { {page:Home/Terminology/AllValueSets/ValueSetTemplate.page.md}}
The page SHALL be referenced within table on the ‘ValueSets and Codesystems’ page in all tab indexes.
The page SHALL be referenced within the appropriate profile ‘Bindings (differential)’ table within the profile page.
CodeSystems SHALL have a page within the “All CodeSystems” folder with the naming convention “CodeSystem [CodeSystem id]”, e.g. CodeSystem UKCore-EthnicCategoryEngland, and you must ensure the pages within the folder are in alphabetical order.
The page SHALL be referenced within table on the ‘ValueSets and CodeSystems’ page in the ‘Narrative’ index under the appropriate ValueSet, and the ‘Alphabetical (CodeSystems)’ index.
The layout SHALL be in the following format:
## UK Core [CodeSystem title] <div class="tab"> <button class="tablinks active" onclick="openTab(event, 'HTML View')">HTML View</button> <button class="tablinks" onclick="openTab(event, 'Table View')">Table View</button> <button class="tablinks" onclick="openTab(event, 'XML View')">XML View</button> <button class="tablinks" onclick="openTab(event, 'JSON View')">JSON View</button> </div> <div id="HTML View" class="tabcontent" style="display:block"> <h3>HTML View</h3> { {render:https://fhir.hl7.org.uk/CodeSystem/UKCore-[CodeSystem]}} </div> <div id="Table View" class="tabcontent"> <h3>Table View</h3> { {table:https://fhir.hl7.org.uk/CodeSystem/UKCore-[CodeSystem]}} </div> <div id="XML View" class="tabcontent"> <h3>XML View</h3> { {xml:https://fhir.hl7.org.uk/CodeSystem/UKCore-[CodeSystem]}} </div> <div id="JSON View" class="tabcontent"> <h3>JSON View</h3> { {json:https://fhir.hl7.org.uk/CodeSystem/UKCore-[CodeSystem]}} </div> ---
Each example SHALL have its own page within either the ‘Profile Examples’ or ‘Extension Examples’ folder, listed in alphabetical order. The page SHALL be named ‘Example UKCore-[example name]’.
Each example SHALL be referenced within table on the ‘Examples Index’ page in all tab indexes.
Each example SHALL also be added to the Example tab within the relevant profile and extension table.
The page layout SHALL be as the following:
--- subject: UKCore-[Resource]-[Reason]-Example --- ### An example to illustrate the [reason for example] { {page:Home/Examples/ExampleTemplate.page.md}}
Each Profile SHALL consist of multiple pages, all residing within a folder that SHALL be named Profile-UKCore-[profile]
. This folder SHALL reside withinin the folder 'Profiles and Extensions'.
The pages within the folder SHALL follow the structure:
Unless stated as optional, the index page SHALL have, in order, the following:
A UK Core profile index page should have two YAML headers:
topic
, which allows the page to be referenced using { {pagelink:[topic]}} within the IG.system
, the canonical url for the resource, which allows Simplifier render commands to be used without specifying a urlA YAML header SHALL be the first item on a page, it SHALL be unique, and it SHALL be in the following format:
--- topic: [Section]-[ResourceName] subject: [resource canonical url] ---
Example Topics:
Note: The topic only needs to be added for pages that will be linked to directly, and for pages with non unique names, such as Index
- for uniquely named pages e.g. ValueSet UKCore-[ValuesetName]
, the default generated topic is ok.
The structure definition contains the profile’s description and profile purpose, rendered from the xml file using Firely Query Language (FQL). This contains a short description of the profiles purpose and the profile itself within a table. The profile table reference SHALL be rendered as below, ensuring that each view has the correct profile link.
The tabs and rendered views SHALL be enclosed within a <nocheck>
tag to allow for skipping of the spell checker due to the many spelling mistakes within the base HL7 render.
All examples relating to the profile, including those for extensions in the profile, SHALL be included within the Examples view. A profile SHALL have at least one example.
# StructureDefinition-UKCore-[profile] <div id="transpose"> @ ``` from StructureDefinition where name = 'UKCore[profile name]' select Canonical_URL: url, Current_Version: version, Last_Updated: date, Description: description ``` </div> <br> @ ``` from StructureDefinition where name = 'UKCore[profile name]' select Profile_Purpose: purpose ``` <nocheck> <div class="tab fhirTree"> <button class="tablinks active" onclick="openTab(event, 'Snapshot View')">Snapshot View</button> <button class="tablinks" onclick="openTab(event, 'Differential View')">Differential View</button> <button class="tablinks" onclick="openTab(event, 'Hybrid View')">Hybrid View</button> <button class="tablinks" onclick="openTab(event, 'Table View')">Table View</button> <button class="tablinks" onclick="openTab(event, 'XML View')">XML View</button> <button class="tablinks" onclick="openTab(event, 'JSON View')">JSON View</button> <button class="tablinks" onclick="openTab(event, 'Examples')">Examples</button> </div> <div id="Snapshot View" class="tabcontent" style="display:block"> <h3>Snapshot View</h3> { {tree:https://fhir.hl7.org.uk/StructureDefinition/UKCore-[profile], snapshot}} </div> <div id="Differential View" class="tabcontent"> <h3>Differential View</h3> { {tree:https://fhir.hl7.org.uk/StructureDefinition/UKCore-[profile], diff}} </div> <div id="Hybrid View" class="tabcontent"> <h3>Hybrid View</h3> { {tree:https://fhir.hl7.org.uk/StructureDefinition/UKCore-[profile], hybrid}} </div> <div id="Table View" class="tabcontent"> <h3>Table View</h3> { {table:https://fhir.hl7.org.uk/StructureDefinition/UKCore-[profile], snapshot}} </div> <div id="XML View" class="tabcontent"> <h3>XML View</h3> { {xml:https://fhir.hl7.org.uk/StructureDefinition/UKCore-[profile], snapshot}} </div> <div id="JSON View" class="tabcontent"> <h3>JSON View</h3> { {json:https://fhir.hl7.org.uk/StructureDefinition/UKCore-[profile], snapshot}} </div> <div id="Examples" class="tabcontent"> <h3>Examples</h3> <b>[profile]</b> - An example to illustrate the [reason for example]. <br>{ {pagelink:Example-UKCore-[profile]}} </div> </nocheck>
Profile pages built for STU3 Ballot and beyond, SHALL have a system
within the YAML header, and can replace the snapshot / differential / hybrid tabs, with a single TreeView tab, and utilize the new Simplifier buttons, as these render the page faster. In addition, these should include the new Usage tab.
<nocheck> <div class="tab fhirTree"> <button class="tablinks active" onclick="openTab(event, 'Tree View')">Tree View</button> <button class="tablinks" onclick="openTab(event, 'Table View')">Table View</button> <button class="tablinks" onclick="openTab(event, 'XML View')">XML View</button> <button class="tablinks" onclick="openTab(event, 'JSON View')">JSON View</button> <button class="tablinks" onclick="openTab(event, 'Examples')">Examples</button> <button class="tablinks" onclick="openTab(event, 'Usage')">Usage</button> </div> <div id="Tree View" class="tabcontent" style="display:block"> { {tree, buttons}} </div> <div id="Table View" class="tabcontent"> <h3>Table View</h3> { {table}} </div> <div id="XML View" class="tabcontent"> <h3>XML View</h3> { {xml}} </div> <div id="JSON View" class="tabcontent"> <h3>JSON View</h3> { {json}} </div> <div id="Examples" class="tabcontent"> <h3>Examples</h3> <b>[profile]</b> - An example to illustrate the [reason for example]. <br>{ {pagelink:Example-UKCore-[profile]}} </div> <div id="Usage" class="tabcontent"> <h3>Usage</h3> This Profile has the following derived profiles:<br> <span id="usage"> @ ``` from StructureDefinition select id,baseDefinition,status where baseDefinition = '[resource canonical url]' and status = 'active' ``` </span> <br><br> This Profile is referenced in the following Extensions: <br> <span id="usage"> @ ``` from StructureDefinition where type='Extension' and status = 'active' select id, for differential.element select join type {targetProfile} where targetProfile contains '[resource canonical url]' ``` </span> <br><br> This Profile is referenced in the following Profiles: <br> <span id="usage"> @ ``` from StructureDefinition where type !='Extension' and status = 'active' select id, for differential.element select join type {targetProfile} where targetProfile contains '[resource canonical url]' ``` </span> </div> </nocheck> ---
Any example use cases that are specific to the profile and relevant to the UK Core can be added here. If there are no examples, then this section is not to be added to the page. If there are example, then it SHALL be in the following format:
### Example Usage Scenarios The following are feasible use cases for the UK Core [profile] profile: - [usage scenario]. ---
This contains any relevant information specifically to the profile. Within this page it may contain use cases or the minimum viable content. The title SHALL be added to the index page, but any information below is optional.
## Profile Specific Implementation Guidance: ## [add any specific implementation or use case guidance]
If a profile is derived, it SHALL include a { } to the parent profile as per the examples below:
## Profile Specific Implementation Guidance: ## This is a derived profile of { {pagelink:Profile-Observation,text:UKCore-Observation}} and this page only shows the differences between the two. Refer to the base Profile for more implementation guidance.
or
## Profile Specific Implementation Guidance: ## The UKCore-Observation-VitalSigns-BloodPressure profile further derives from { {pagelink:Profile-Observation-VitalSigns,text:UKCore-Observation-VitalSigns}} and this page only shows the differences between the two. Refer to { {pagelink:Profile-Observation,text:UKCore-Observation}} and { {pagelink:Profile-Observation-VitalSigns,text:UKCore-Observation-VitalSigns}} for more implementation guidance.
The minimum viable content (MVC) is any element in which has information that the provider and consumer systems SHOULD send or collect. Note, if mandatory data elements (e.g. 1..1 or 1..*) are present then these SHALL be included in the MVC.
MVC SHALL be determined by use cases, and by analysis of the MustSupport flags used by other FHIR IG's, such as US Core, Aus Base, Wales DHCW, NHSE IG, HL7 EU Lab.
<h3>Minimum Viable Content</h3> A minimum viable content that all provider and consumer systems SHALL support are the following elements. <table class="assets" title="Minimum Viable Content list"> <tr> <th class="width30">Element</th> <th class="width70">Reason</th> </tr> <tr> <td><code>[element]</code></td> <td>[reason].</td> </tr> </table> ---
If a profile is derived, it SHALL include a { } to the parent profile as per the examples below:
### Minimum Viable Content The minimum viable content that all provider and consumer systems SHALL support are the elements within the corresponding { {pagelink:Profile-Observation,text:UKCore-Observation}} table.
or
### Minimum Viable Content The minimum viable content that all provider and consumer systems SHALL support are the elements within the corresponding { {pagelink:Profile-Observation,text:UKCore-Observation}} table, along with the following.
or
###M inimum Viable Content The minimum viable content that all provider and consumer systems SHALL support are the elements within the corresponding { {pagelink:Profile-Observation,text:UKCore-Observation}} and { {pagelink:Profile-Observation-VitalSigns,text:UKCore-Observation-VitalSigns}} tables, along with the following.
Any extension referenced within the profile SHALL be added to the Extensions page and table, along with the element in which it is to be used and a link to the extension page within the IG.
If no information on the use of any extensions is needed, then the page SHALL be in the following format:
## Extensions More information about the extensions can be found using the links below. <table class="assets" title="Extension list"> <tr> <th class="width20">Extension</th> <th class="width20">Context</th> <th class="width30">Link</th> <th class="width30">Comment</th> </tr> <tr> <td>[extension name]</td> <td>[context of use]</td> <td>{ {pagelink:Extension-UKCore-[extension]}}</td> <td>[information on the use of the extension]</td> </tr> </table> ---
Any coding / CodeableConcept element within the profile or within an extension within the profile, that is bound to a UKCore ValueSet, SHALL be added to the Bindings (differential) page and table, via a listing of the element in which it is to be used, the binding strength and a link to the ValueSet page within the IG.
## Bindings (differential) More information about the bindings to UK Core ValueSets can be found below. <table class="assets" title="Bindings list"> <tr> <th class="width30">Context</th> <th class="width20">Strength</th> <th class="width50">Link</th> </tr> <tr> <td>[context of use]</td> <td>[strength]</td> <td>{ {pagelink:ValueSet-UKCore-[ValueSet]}}</td> </tr> </table> ---
Any profile or profile element that has an additional constraint applied SHALL be added to the Constraints (differential) table, via a listing of the key, strength, expression and description of the constraint.
## Constraints (differential) More information about the constraints on the <code>UKCore-[profile]</code> profile can be found below. <table class="assets" title="Constraints list"> <tr> <th class="width15">Key</th> <th class="width15">Severity</th> <th class="width30">Expression</th> <th class="width40">Human Description</th> </tr> <tr> <td>[constraint key]</td> <td>[strength]</td> <td>[fhirpath criteria to be valid] </td> <td>[human readable description of valid criteria].</td> </tr> </table> ---
Elements in the expression SHALL be enclosed in <code>
tags, e.g.
<code>effective</code>.exists() or (<code>effective</code>.empty() and (<code>status</code> in ('partial' | 'preliminary' | 'final' | 'amended' | 'corrected' | 'appended')).not())
Where the severity is a warning, the Human Description will say SHOULD, where the severity is error, it will say SHALL.
Any profile element that has information relevant to the UKCore and is different to HL7 SHALL be documented on its own page. The name of the page SHALL be the element naming in camelCase. If the binding to the element differs from HL7 then it SHALL be referenced here, along with the relevant page link.
The words ‘optional’ or ‘mandatory’ relating to the element are no longer needed as this has been deemed as duplication of either the element cardinality or MVC.
The page SHALL use the following format:
## `{ {page-title}}` [information] ---
All Binding references within a profile SHALL be explicitly shown via the relevant element page, apart from the element identifier.assigner
.
Links to active UKCore profiles SHALL be done using pagelink
Links to draft profiles SHALL be written as
<a href="https://simplifier.net/hl7fhirukcorer4/ukcore[profile]">Profile UKCore-[Profile]</a>
Links to HL7 resources SHALL be written as:
<a href="https://hl7.org/fhir/R4/[Resource].html">[Resource] Resource</a>
Referencing all profiles SHALL be done using the following sentences:
The resource being referenced SHALL conform to { {pagelink:Profile-[profile]}}.
The resource being referenced SHALL conform to one of the following: - { {pagelink:Profile-[profile]}} - { {pagelink:Profile-[profile]}}
Resource
:Where a UK Core profile exists the resource being referenced SHALL conform to the profile.
If there are no recognised business identifiers, then do not create a page for identifier
.
If an element has a slice, this SHOULD be identified in the text, for example:
The slice `ServiceRequest.category:genomicsWholeCaseSequencing` has been added to aid in identifying the category of service request for Genomics use cases.
If an element has an extension, this SHOULD be identified in the text, for example:
`ServiceRequest.priority` has the UKCore extension { {pagelink:Extension-UKCore-PriorityReason}}.
Guidance for a sub element, e.g. [Resource].[element].[subelement], SHALL be written on a page at the element level.
For example:
## <code>performer</code> The resource referenced in `Procedure.performer.actor` SHALL conform to one the following: - { {pagelink:Profile-Organization}} - { {pagelink:Profile-Patient}} - { {pagelink:Profile-Practitioner}} - { {pagelink:Profile-PractitionerRole}} - { {pagelink:Profile-RelatedPerson}} The resource referenced in `Procedure.performer.onBehalfOf` SHALL conform to { {pagelink:Profile-Organization}}. ---
If there is an inline example to be rendered, to provide an example of the usage of a specific resource element, the example SHOULD be prefixed with a fully qualified description of the usage:
#### Example of `Immunization.vaccineCode` usage:
And the inline example SHALL be in the following format:
<div class="tab"> <button class="tablinks active" onclick="openTab(event, 'Table View')">Table View</button> <button class="tablinks" onclick="openTab(event, 'XML View')">XML View</button> <button class="tablinks" onclick="openTab(event, 'JSON View')">JSON View</button> </div> <div id="Table View" class="tabcontent" style="display:block"> <h3>Table View</h3> { {table:UKCore-Immunization-Sn-AstraZenecaVaccine-Example}} </div> <div id="XML View" class="tabcontent"> <h3>XML View</h3> { {xml:UKCore-Immunization-Sn-AstraZenecaVaccine-Example}} </div> <div id="JSON View" class="tabcontent"> <h3>JSON View</h3> { {json:UKCore-Immunization-Sn-AstraZenecaVaccine-Example}} </div>
If a profile element contains more than one inline example they SHALL each be contained within their own parent div.
Where an element contains a heading for specific guidance, such as Display / Propogation / Consumer / Provider, with the same name as is used on another element, this guidance must have an unique id attribute, based on the element and heading:
<h3 id="clinical-codes-display">Display</h3> <h3 id="original-term-text-display">Display</h3>