This section details the development and release cycles, including associated processes used for the UK Core Implementation Guides.
Simplifier is the chosen platform for UK Core development. Further information about Simplifier can be found on the Simplifier homepage.
The UK Core consists of a collection of projects and Implementation Guides. These are developed and released using the Simplifier platform in an organisation account owned by HL7 UK. There are two projects used for the UK Core and related Implementation Guides.
There is also another HL7 UK project:
There are a number of UK Core Implementation Guides, and these will increase over time as more releases are released. Below is a snapshot of the current guides as an illustration of the type of guides that are contained in the UK Core project.
The FHIR Community Assets project currently only contains the UK Naming Systems Implementation Guide.
This section gives a brief overview of how GitHub is used with Simplifier for version control of the UK Core FHIR assets. Simplifier has the functionally of linking a project with a GitHub repository. The components of a UK Core Implementation Guide are managed in either GitHub or Simplifier. The Simplifier Project will contain all components but will not be the master for many. The current approach is illustrated below:
Simplifier will synchronise the project every time a commit(change) is detected in the master branch of the GitHub repository, this is standard behaviour and is not detailed in this guide but further information is contained in the Firely documentation.
This section details the version management approach used with the UK Core Implementation Guides, UK Core packages and FHIR assets. The approach differs for each of these items and so is documented in separate sections.
All profiles produced for the UK Core will be versioned during development using Git and will follow the standard GitFlow model.
The versioning for published assets will use the Semantic Versioning Standard. The major and minor versions will be visible, and the patch version MAY also be exposed.
Version numbers held in profiles and resource instances MUST therefore be in one of the following forms:-
There is no real way to determine whether a UK Core change is breaking or not unless you can get agreement with every implementer of the UK Core. This is practically impossible to do, so the following sections are to give a brief overview of the sort of changes that might be seen as breaking changes and should not be seen as definitive.
This is a breaking change, and as such, implementers will need to understand the changes that have been made in the new version, and make changes to their implementations, if required, as such a change is not backwards compatible. An example could be :-
A minor change is defined as a backwards compatible change which is not expected to break existing implementations. Examples include :-
This is defined as a version in which backwards compatible bug fixes are made. An example could be :-
The UK Core is released as a pre-release for comment before an actual release, this will be with full change history for the changes applied so that implementers can agree the versioning that has been applied to the FHIR assets.
Version data will be carried in the version element for all assets.
These assets are :-
The version information is maintained by the UK Core Development team in line with the Semantic Versioning Standard outlined above. Thus, for a StructureDefinition, this could read:
<StructureDefinition xmlns="http://hl7.org/fhir"> <id value="UKCore-Patient" /> <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient" /> <version value="2.1.0" />
For a ValueSet, this could read:
<ValueSet xmlns="http://hl7.org/fhir"> <id value="UKCore-MedicationForm"/> <url value="https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationForm"/> <version value="2.0.0"/>
Further information about both FHIR asset creation and maintenance is available.
For some information flows, there is a requirement to identify which UK Core profile(s) an instance being exchanged between healthcare IT systems conforms to. This could be for the purpose of validation of the instance against the profile definition and/or for conformance testing. This profile conformance is declared using the profile.meta element. The element carries the profile URL appended with the version information.
The format is: 'URL' "|" 'version' For example:
https://fhir.nhs.uk/R4/StructureDefinition/UKCore-RelatedPerson|1.1.0
This is illustrated below:
<RelatedPerson xmlns="http://hl7.org/fhir"> <id value="RP123" /> <meta> <profile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-RelatedPerson|1.1.0" /> </meta>
The versioning approach to the UK Core Implementation Guide releases are based on the FHIR Standard and is summarised below.
There are three numbers used with the versioning in the format n.n.n for example 0.3.0. The following rules apply:
The version number will formally be agreed for each release by the UK Core Development Team in consultation with HL7 UK.
The UK Core uses similar release sequences as the FHIR standard, these are:
This is for when FHIR assets are in development this status is only used in the HL7 FHIR® Draft UK Core Profiles (Draft) Simplifier project.
This is used for early development of the UK Core
This is the sequence used for the UK Core release when its ready for the HL7 ballot process. This version of the release is relatively stable because it has been though the Clinical and Technical Assurance process and all known/raised issues resolved and agreed. The HL7 UK Ballot process is the final endorsement of the release of the UK Core. There will be a number of releases of the STU sequence which will be denoted by the number STU1, STU2, STU3 etc...
This is the final status of the UK Core release which has passed the HL7 UK ballot process and has been proven by multiple implementations of the UK Core.
Each of the sequences will have a major release number to indicate the release within the sequence for example:-
The release aligns with the HL7 UK Ballot process, and the major version number of the Implementation Guide reflects this. There is only one major release per sequence and likewise only one HL7 UK Ballot. There will be multiple minor releases and maybe some patch releases.
For the full details of FHIR release see the FHIR Standard.
This section details a change control process for use with the UK Core standard. The change control process is part of the overall configuration management.
All requests for a change to the UK Core standard must be made using the create issue option in Simplifier. Requests may be from an individual or group/organisation looking to use the UK Core for an implementation or for an issue reported by a member of the development team. The same approach is used to feedback on issues by participants in the Clinical and Technical Assurance process.
The UK Core uses Simplifier for issue tracking and maintenance. Although the UK Core is in the public domain, you will need to create an account and login to raise issues. Creating a Simplifier account is done by going to https://simplifier.net/ and using the sign-up option on the top right of the page. An email address and a chosen password are the only details needed to set up an account.
Logging in to your Simplifier account is required to raise issues. Browse to https://simplifier.net/ and use the login option on the top right of the page, then enter the chosen credentials.
The UK Core project is located here in Simplifier.
When the change request is for a change to an existing UK Core FHIR asset, the preferred approach is to raise the issue at the level of the relevant asset.
It is acknowledged that not everyone will have enough knowledge of FHIR Implementation Guides or Simplifier to log an issue to the correct Simplifier resource, therefore logging at the project level is allowable, if this is the case. However, issue logging at asset level is the preferred approach, as it makes triage of issues easier.
Note: Simplifier refers to everything as a resource whether it’s an image, example or FHIR profile and provides a mechanism to filter on type.
How to search and filter in Simplifier illustration
To search for a particular asset, for example to find the Patient profile, filter by resource category "Profiles" (tick the box alongside Profiles), add the word "Patient" in the search box and hit return. This will bring up a link to the Patient profile which will take you to a page with a view of the Patient profile.
Once the required Simplifier resource page is found, the last tab on the page is the issues tab. Clicking on this will bring up a page where a new issue should be raised by clicking the New Issue button.
This will only require a title and the details of the issue or comment. All other issues logged for this Simplifier resource will be available from this page and you can check these or find out whether this issue has already been logged, if required.
New issue information required illustration
If you cannot locate the Simplifier resource, or it is not appropriate to log an issue at the Simplifier resource level, then you should raise an issue at the project level. In this case, the title and/or issue text should identify which part of the UK Core Implementation is the subject of the issue being raised. See the Creating a Simplifier Issue at Project Level section for how to do this.
Issues for new UK Core FHIR assets should be raised at the UK Core project level the issue must indicate the use case or details of the requirement as to why the new asset is needed.
To create a issue at the project level, navigate to the project. Once you are in the project, click on the issues tab and then the create button to create the issue.
Issues will be triaged by the UK Core Development Team and any change other than a minor issue (for example a typo or a bug fix) will be referred to a Senior Technical lead from the SLT Technical Subgroup or discussed at the UK FHIR Delivery Board for further appraisal.
If the issue raised does not have a solution suggested, then the triage will include further analysis to establish a solution which may include several proposed technical options. If the requester has provided a proposed solution, this will need to be validated, which may result in alternative or other solutions being proposed.
The response time for issues to be initially triaged does not have a formal service level agreement in place but should be responded to in a timely manner. This is managed by NHS Digital as part of its role in the UK Core Development Team using the Interoperability Team's mailbox, which receives auto-notifications from Simplifier on a daily basis. The mailbox is monitored daily by the NHS Digital Interoperability Team and initial triage will be done within a day or two, except when the issue has been raised as part of the Clinical and Technical Assurance process.
Note: The triage of issues raised as part of Clinical and Technical Assurance process (which has a three-week review period) is done at the end of the Clinical and Technical Assurance process as a batch. This enables more efficient triage of issues and the identification of dependencies and issue duplication.
The triage process for issues is not something that is a tightly defined process, but more of a discussion forum of SMEs where a consensus of agreement is reached about the issue and any proposed solution. The following are examples of criteria or areas that will be discussed:
The Simplifier issue will be updated with any information that will inform the requester of progress, etc.
The triage process for issues raised as part of the Clinical and Technical Assurance process is done as a batch process by the UK Core Development team at the end of the process. The issues raised are filtered to remove duplicates or minor issues such as typos or minor technical errors. The remaining issues are taken forward to the Clinical and Technical Assurance follow up meeting for discussion, agreement and resolution.
The Simplifier issue will be updated with any information that will inform the requester of progress etc.
Once a change request is accepted, the issue is added to the UK Core Backlog. The requester will be notified via Simplifier by update of the issue. The issue will not be closed at this point, only when the development work has been completed.
If a request for change is rejected, then the Simplifier issue is updated with all the information required to inform the requester why it was rejected. Further calls or emails may also be used to explain the reason for rejection, if required, depending on the complexity of the issue.
The UK Core backlog is where all the development work items are recorded and tracked. The work items are maintained using a tool called JIRA. All the work items in JIRA will be traceable back to Simplifier. The development is carried out using an agile type of methodology and managed on a Kanban board. The UK Core backlog is an internal process which only the UK Core Development team have access to, however this information is mirrored in the Simplifier issues for consumption by the FHIR community. The requester will be emailed whenever there is an update to the Simplifier issue.
The UK Core development is driven by requests for change which can come from many sources. The Change control section gives details about how this is managed.
This diagram shows the process used to develop the UK Core FHIR assets.
The development cycle is feed from three main sources:
See the Change Control page for full details on the change control process.
The first part of the development cycle is to identify the type of FHIR asset(s) and any dependencies, for example if the change is to create a new profile then there will be a need to identify any related resources required such as extensions, examples, ValueSets guide pages etc. This is required to size of the development so that resources and timescales can be planned. The required changes are then added to a JIRA backlog which is used by the UK Core Development Team to schedule the development work.
The changes will be added to either:
Which Implementation Guide the changes appear in depends on many factors for example:
The Simplifier Platform Structure page gives further information about Implementation Guide types.
Once the change has been done the UK Core Development Team will carry out an internal review and rework as necessary until the development is of the quality required. The page on FHIR Assets gives more information on the principles and design of FHIR assets which are used during internal review.
There is no external review until the changes are included in a release as part of the C&TA or the Ballot process but as all development is done in the public domain and therefore feedback on any change is always possible via Simplifier.
The section details the UK Core release cycle and how the various versions are defined.
The diagram below illustrates how the UK Core Release cycle works and is an abstract view of the way it is released. This is an evolving process, and the diagram only shows one release cycle of a sequence of a repeating process.
This diagram shows current release cycle of the STU sequence of the UK Core. The STU1 indicates it is release 1 of the sequence STU (Standard for Trial Use). The next HL7 UK Ballot will start the STU2 release sequence.
The UK Core uses Simplifier NPM packages to release the FHIR Conformance Assets.
The UK Core Packages are located with the Project Packages area.
Further information on Packages is available in the Simplifier documentation.
These packages may be used to validate conformance of an implementation of FHIR against a particular version or versions of the UK Core. For more information on conformance to UK Core see the Claiming Conformance to UK Core .
The Simplifier NPM pages are released as part of a UK Core release. The release is normally an Implementation Guide and a NPM Package. The NPM package is named based on a seven-item string (1_2_3_4_5_6_7) which is described below:
fhir
"fhir version"ukcore
"sequence_release""major version"_"minor version"_patch version"`
fhir
ukcore
For example fhir.r4.ukcore.stu1 0.1.0