Notice
- Important: This guidance is under active development by NHS England and content may be added or updated on a regular basis.
- This Implementation Guide is currently in Draft and SHOULD NOT be used for development or active implementation without express direction from the NHS England Genomics Unit.
Read
From initial design work, it is expected the main use case will be labs and requesting systems polling the central service for test orders and reports, including associated clinical information, as well as polling the system for the current state of Tasks and Task update history, through associated AuditEvents and Provenance resources.
Retrieval of sets of resources using GraphDefinitions are also planned. The complete set of resources/operations supported are listed within the Instance page. All resources are expected to be compliant with UK Core FHIR R4.
Search
Supported Functionality
The search parameters to be supported by the Genomic Order Management system are defined within the Instance page. Custom search parameters defined within SearchParameters will also be supported, such as a search parameter for supporting retrieval of supporting-info on ServiceRequests.
Multiple _include/_revinclude parameters will be supported within a single URL search string. The :iterate modifier will also be supported to enable traversal of multiple levels of references in searches e.g.
GET [base]/MedicationDispense?_include=Medication:prescription&_include:iterate=MedicationRequest:requester&criteria...
.The
_history
and_lastUpdated
parameters will be supported as part of history and audit provenance needs. The_history
parameter will only be supported on instance level reads, i.e. history will not be retrievable at the resource type or base levels.Token type searching for coded values based on system and/or code e.g. http://snomed.info/sct%7C3738000 will be supported, to enable unambiguous searching of codes.
Date and number based prefixes, such as
eq
,gr
,lt
will be supported, to enable retrieval of resources based on date/time and quantity ranges.Chaining, e.g.
ServiceRequest?subject:Patient.name
will be supported to aid building of complex search criteria.Search result modifiers such as
_count
,_total
and_sort
will be supported to allow clients to tailor search results.The
:not
operator will be supported to allow organizations visibility of tests outside their region, e.g. for home GLHs which want to see tests from within their patch routed to labs outside their region. An example of the query to support this would be:
GET [base]/ServiceRequest?requester:PractitionerRole.organization={ODS_codes_in_my_patch}&performer:not={my_GLH_code}
- The
:identifier
modifier will be supported on SearchParameters of type reference, where identifiers are used within the referencing resource, in preference over inclusion of full resources, e.g. references using practitioner or organization identifiers, as the resources containing the relevant information logically sit within other NHS England services, e.g. SPINE SDS or ODS respectively.
Unsupported Functionality
Inclusion of external references (resources not hosted on the server) through the _include parameter will not be supported as there will be no guarantee they resolve or that they will return valid FHIR. While this may mean clients will need to perform multiple calls to construct a complete set of data, this ensures consistency of the responses from the broker. Within this Implementation Guide we expect a test requester to submit all relevant information for a test order to the broker so there should be very few instances where an external reference is used.
No use cases requiring use of
_query
or$operation
type searches have been elaborated so these are not planned to be supported as of the time of publication. Equally, usage of tags to encode data, and use of the_tag
parameter will not be supported until use cases detailing their need are elaborated.Search modifiers such as
:contains
,:missing
,:not-in
, etc. will not be supported as there are currently no use cases for supporting text-based/fuzzy searching.