openapi: 3.0.0 info: version: v1.0.98-alpha title: Ambulance Data Submission - FHIR API description: | ## Overview Use this API to submit ambulance data to our Data Processing Service (DPS) so that it can be made available for analysis and review by NHS England and ambulance trusts. Ambulance data is information relating to emergency calls (999, 111 and others), received at an Emergency Operations Centre (EOC) and processed into a Computer Aided Despatch (CAD) system, including: - call details - response details - including response times and episode outcome times patient - contact details - including patient demographics, patient response details, patient information, injury information, patient assessment, medication, observations, diagnoses, conveying outcome, safeguarding and public health information You can: - post ambulance data individually or in batches You cannot: - read any of the records stored in DPS The API is asynchronous - when you submit data, it acknowledges receipt without validating or processing the data first. To receive error notifications, you need to use [MESH](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh). The following diagram illustrates the end-to-end process: ![Ambulance Overview](https://github.com/NHSDigital/ambulance-analytics-api/blob/master/specification/diagrams/ADSOverview2.svg?raw=true) The following describes the end-to-end process: 1. The ambulance trust system sends the ambulance data to the Ambulance Data Submission API. 2. The Ambulance Data Submission (ADS) API forwards the ambulance data to our Data Processing System (DPS). 3. If there is an error, DPS sends an error notification to MESH. 4. The ambulance trust system retrieves the error notification from MESH. 5. An ADS User views the ambulance data in our ADS Dashboards. 6. The ADS Dashboards get the ambulance data from DPS. ## Who can use this API This API can only be used where there is a legal basis to do so. Make sure you have a valid use case before you go too far with your development. You must do this before you can go live (see ‘Onboarding’ below). ## Related APIs The following API is related to this one: * [Messaging Exchange for Social care and Health (MESH)](https://digital.nhs.uk/services/message-exchange-for-social-care-and-health-mesh) - use this API to receive error notifications from DPS ## API status and roadmap This API is [in production](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#statuses). ## Service level This API is a bronze service, meaning it is operational and supported only during business hours (8am to 6pm), Monday to Friday excluding bank holidays. For more details, see [service levels](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#service-levels). ## Technology This API is [RESTful](https://digital.nhs.uk/developer/guides-and-documentation/our-api-technologies#basic-rest) and uses HTTP POST to submit data. It conforms to the [FHIR](https://digital.nhs.uk/developer/guides-and-documentation/our-api-technologies#fhir) global standard for health care data exchange, specifically to [FHIR R4 (v4.0.1)](https://hl7.org/fhir/r4/), except that it does not support the [capabilities](http://hl7.org/fhir/R4/http.html#capabilities) interaction. It includes some country-specific FHIR extensions, which are built against [FHIR UK Core](https://digital.nhs.uk/services/fhir-uk-core), specifically [UK.core.r4.v2/2.0.8](https://simplifier.net/packages/uk.core.r4.v2/2.0.8). For details of FHIR message payload, see the [Ambulance Data Set FHIR Implementation Guide](https://simplifier.net/guide/ambulancedatasetadsfhirbundleimplementationguide?version=current). ## Network access This API is available on the internet and, indirectly, on the [Health and Social Care Network (HSCN)](https://digital.nhs.uk/services/health-and-social-care-network). For more details, see [Network access for APIs](https://digital.nhs.uk/developer/guides-and-documentation/network-access-for-apis). ## Security and authorisation ### Application-restricted access This API is [application-restricted](https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation#application-restricted-apis), meaning we authenticate the calling application but not the end user. You can use this access mode as follows: * unattended (end user not present), for example periodically submit ambulance data from ambulance trust systems to DPS To use this access mode, use the following security pattern: * [Application-restricted RESTful API - signed JWT authentication](https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation/application-restricted-restful-apis-signed-jwt-authentication) ## Environments and testing ### Sandbox testing |Environment | Base URL | | ----------------- | -------------------------------------------------------------------| | Sandbox | `https://sandbox.api.service.nhs.uk/ambulance-data-submission/` | | Integration test | `https://int.api.service.nhs.uk/ambulance-data-submission/` | Our [sandbox environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#sandbox-testing): - is for early developer testing - only covers a limited set of scenarios - is stateless, so it does not actually persist any updates - is open access, so does not allow you to test authorisation For more details on sandbox testing, or to try out the sandbox using our "Try this API" feature, see the documentation for each endpoint. ### Integration testing Our [integration test environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing): - is for formal integration testing - is for receiving data quality reports of test data ## Onboarding You need to get your software approved by us before it can go live with this API. We call this onboarding. The onboarding process can sometimes be quite long, so it’s worth planning well ahead. To onboard for this API, follow the [Supplier Conformance Assessment List](https://digital.nhs.uk/developer/guides-and-documentation/onboarding-process#onboard-using-the-supplier-conformance-assessment-list-scal-process) (SCAL) process. When following the SCAL process, note that: * In step 8: you need to review and complete the ADS API risk log to show that you have understood and mitigated the various risks. You might be asked to provide some evidence to prove that controls have been put in place. You’ll find the risk log embedded within the ADS API tab in the SCAL. * In step 10: when you complete the Service Desk Registration Form, send it to [ssd.nationalservicedesk@nhs.net](mailto:ssd.nationalservicedesk@nhs.net). * In step 11: submit your completed SCAL to [ssd.nationalservicedesk@nhs.net](mailto:ssd.nationalservicedesk@nhs.net). * In step 14: to request production access, contact us at [ssd.nationalservicedesk@nhs.net](mailto:ssd.nationalservicedesk@nhs.net). ## Errors We use standard HTTP status codes to show whether an API request succeeded or not. They are usually in the range: * 200 to 299 if it succeeded, including code 202 if it was accepted by an API that needs to wait for further action * 400 to 499 if it failed because of a client error by your application * 500 to 599 if it failed because of an error on our server Errors specific to each API are shown in the Endpoints section, under Response. See our [reference guide](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#http-status-codes) for more on errors. ## Contact us For help and support connecting to our APIs and to join our developer community, see [Help and support building healthcare software](https://digital.nhs.uk/developer/help-and-support). contact: name: API Management Support email: ssd.nationalservicedesk@nhs.net servers: - url: 'https://sandbox.api.service.nhs.uk/ambulance-data-submission' description: Sandbox environment. paths: /$process-message: post: summary: Submit Ambulance Data operationId: postData description: | ## Overview Use this endpoint to submit ambulance data to DPS. ## Request This endpoint does not validate the submitted payload, it only acknowledges receipt of the payload. See the [FHIR implementation guide](https://simplifier.net/guide/ambulancedatasetadsfhirbundleimplementationguide?version=current) for how to structure the payload data. responses: '200': description: Data received and sent to DPS. content: application/json: schema: type: object properties: message: type: string description: The submission ID for the message you sent. examples: Example: value: message: 6eeec54e-3d39-4bc4-a1d9-57615d258fpq parameters: [] parameters: [] components: schemas: {} securitySchemes: {}