Search loading...

API Hub

Explore and Make use of Nationally Defined Messaging APIs

 

Select ServiceDefinition Interaction

Select a ServiceDefinition interaction

Select ServiceDefinition Interaction

This action is performed by the Encounter Management System (EMS) in order to select a ServiceDefinition from a Clinical Decision Support System (CDSS).

When the CDSS publishes a ServiceDefinition, the ServiceDefinition will have elements which describe how the ServiceDefinition can be used, for example the ServiceDefinition.useContext element could carry the setting in which the ServiceDefinition is valid.
Note: It is the responsibility of the EMS to set the Service Type context and useContext at the start of the triage and only consume ServiceDefinitions which are appropriate for the current context. The description of where in the clinical process a ServiceDefinition sits is described in the ServiceDefinition.trigger. This element will hold all the data conditions which need to be satisfied for the ServiceDefinition to be chosen.

The ServiceDefinition.trigger will typically be defined through Observation resources which MUST be satisfied in order for the ServiceDefinition to be suitable for evaluation. For a given CDSS, these will typically be aligned to the ServiceDefinition.dataRequirements of a prior ServiceDefinition.

Each CDSS SHOULD provide a ServiceDefinition where the trigger is NULL (i.e. no information is required).

During a given patient journey, there may be points where there is more than one ServiceDefinition available. Any one CDSS should avoid this situation, but if a provider has more than one CDSS available, there may be situations where more than one CDSS can provide an appropriate ServiceDefinition. In this case, it will be up to local providers on how to choose between the available ServiceDefinitions.

Request Headers

The following HTTP request headers are supported for this interaction:

Header Value Conformance
Accept The Accept header indicates the format of the response the client is able to understand, this will be one of the following application/fhir+json or application/fhir+xml. See the RESTful API Content types section. MAY
Authorization The Authorization header MUST carry a base64url encoded JSON web token. See the RESTful API Security section. MAY

Get ServiceDefinition

The EMS will select a preferred ServiceDefinition using chosen parameter(s).
The interaction is performed by the FHIR RESTful search interaction as shown:

Search Parameters and Responses

Detailed guidance relating to searching for FHIR resources can be viewed.

Searching for a ServiceDefinition using a named query

A second scenario would occur when an EMS needs to search for a ServiceDefinition which corresponds to selected search criteria. This would require a search using a customised search profile. Such advanced search operations of this type are specified by the _query parameter. The parameters can be used independently or in combination to help refine the search results returned. This Guidance specifies a named query “triage”, defined below:

The _query parameter is used as follows:

The _query parameter will define additional named parameters to be used with the named query (triage) and these will be used in combination where criteria for all of them must be satisfied.

A CDS MUST implement the additional parameters for a ServiceDefinition triage query as outlined below:

Name Type Description Conformance Path Matching Guidance
status token The status of this service definition SHOULD ServiceDefinition.status Exact This will normally be active in live operation. If not supplied, this will be taken as a NULL value and match to any value.
experimental token For testing purposes, not real usage SHOULD ServiceDefinition.experimental Exact This will normally be false in live operation. If not supplied, this will be taken as a NULL value and match to any value.
jurisdiction token Intended jurisdiction for service definition (if applicable) SHOULD ServiceDefinition.jurisdiction Exact The geographical jurisdiction for the current triage journey. If not supplied, this will be taken as a NULL value and match to any value.
searchDateTime date Point in time at which the search is being executed SHOULD ServiceDefinition.effectivePeriod Exact The date and time at the start of the Encounter.periodcurrent date time. This will match all ServiceDefinitions where the supplied date time falls within the effectivePeriod.
trigger-type-code-value-effective token A combination token for identifying the trigger where the value of the DataRequirement is a coded value SHOULD ServiceDefinition.trigger.eventData.type
ServiceDefinition.trigger.eventData.codeFilter.Path
ServiceDefinition.trigger.eventData.codeFilter.value
ServiceDefinition.trigger.eventData.dateFilter.path
ServiceDefinition.trigger.eventData.dateFilter.value
Partial A trigger (expressed as a DataRequirement). This combination token will specify the type of the target resource (normally Observation), the code of the Observation, and the value of the Observation. This is used where the targeted value is a codeable item. The .value can be of type code, or Coding, or CodeableConcept. The dateFilter path will always be .effective
trigger-type-date token A combination token for identifying the trigger where the value of the DataRequirement is a date value COULD ServiceDefinition.trigger.eventData.type
ServiceDefinition.trigger.eventData.dateFilter.path
ServiceDefinition.trigger.eventData.dateFilter.value
Partial A trigger (expressed as a DataRequirement). This combination token will specify the type of the target resource (normally Observation), the code of the Observation, and the value of the Observation. This is used where the targeted value is of type dateTime. The value must be a point in time (cannot be a period)
useContext-code-value token A combination token for identifying the useContext SHOULD ServiceDefinition.useContext.code
ServiceDefinition.useContext.value
Exact A useContext code-value pair. This combination token will specify the type of context (the code) and the value of the context.

Example of triage search parameters

An example of the triage named query is shown below:

Filtering and Partial matches

The behaviour of the CDS search response differs slightly depending on the parameter. For most parameters, an exact match is required. However, for triggers, it is possible that the currently known set of triggers is not an exact match for any single ServiceDefinition. In this case, the search

Search Response

Success

  • MUST return a 200 OK HTTP status code on successful execution of the interaction.
  • MUST return a Bundle of type searchset, containing either:
    • One ServiceDefinition resource
    • A ‘0’ (zero) total value indicating no record was matched e.g. an empty Bundle.

Failure

The following errors can be triggered when performing this operation:

Tags: rest fhir api

All content is available under the Open Government Licence v3.0, except where otherwise stated