The 111 adaptor enables GP Practices to receive NHS 111 Report messages from NHS 111, for example into a GP system, following a patient's call to the free NHS 111 service.
You can receive and route a “post event message” to their GP when NHS 111 requests:
The NHS 111 Report adaptor can receive messages from the NHS 111 service and post them to the mailbox of the relevant GP practice.
The main objective of the 111 Adaptor is to hide complex legacy standards and instead present a simple and consistent interface aligned to current NHSD national standards. The adaptor receives ITK 2.2 wrapped Clinical Document Architecture (CDA) XML documents over web services, and converts them into structured FHIR messages before posting them onto the GP system's inbound event queue.
The 111 adaptor consists of two docker images:proxy and adaptor, you must deploy it within your own environment.
The following diagram illustrates the NHS 111 Report adaptor:
The adaptor reads its configuration from environment variables. The following sections describe the environment variables used to configure the adaptor.
The post event messages (PEM) handled by the adaptor are sent to the Active Message Queue within the GP supplier's own environment and are not stored within the NHS 111 adaptor itself.
You need to configure the following environment variables to enable the version 1-0-0 protocol this:
If using RabbitMQ protocol 0-9-1 then the following variables need to be set:
true
and false
ODS code and DOS Service ID from ITK addresslist.address
are validated against list of supported values.
Supported ODS codes and DOS Service ID's should be separated with comma, for example PEM111_ITK_ODS_CODE_LIST=RSHSO14A,20000729
Values should be set in the following env variables:
Alternatively you can configure the adaptor to fetch the ODS codes/DOS Ids from external server. Adaptor will read the configuration and reload it without any downtime. Following variables can be used to set up configuration service URL and the poll interval.
Configuration service has to expose a single GET endpoint returning application/json data in matching the following schema:
{
"type": "object",
"required": ["odsCodes", "dosIds"],
"properties": {
"odsCodes": {
"type": "array",
"items": {
"type": "string"
}
},
"dosIds": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
Example:
{
"odsCodes": [
"EM396",
"5L399"
],
"dosIds": [
"26428",
"96465",
"48583"
]
}
PEM111_ITK_ODS_CODE_LIST
, PEM111_ITK_DOS_ID_LIST
, PEM111_ITK_EXTERNAL_CONFIGURATION_URL
has to be set. Adaptor will fail to start if none is provided.Nginx proxy is used to handle TLS MA. In order to configure it you need to set the following env variables:
Even though the adaptor removes this complexity, the FHIR field mappings have been documented here for information.
docker
./start-local-environment.sh
The above script builds the necessary docker images and starts the SpringBoot service and ActiveMQ
localhost:10001
localhost:5672
service
./gradlew test
service
./gradlew integrationTest
encounter-report
amqp://activemq:5672
The ITK Testbench provided by NHS Digital has an essential tool for ITK interface development and conformance. This tool provides resources that will allow you to adequately test the 111 adaptor within your own environment.
Our testing pack as well our test harness can be found inside the test-suite directory Test-Suite