diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0ce85313a..243ffef4a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -52,8 +52,8 @@ updates: - "/backend" - "/batch_processor_filter" - "/delta_backend" - - "/e2e" - - "/e2e_batch" + - "/tests/e2e" + - "/tests/e2e_batch" - "/filenameprocessor" - "/mesh_processor" - "/recordprocessor" diff --git a/.github/workflows/create-release-tag.yml b/.github/workflows/create-release-tag.yml index 5d990883b..f6784cf8d 100644 --- a/.github/workflows/create-release-tag.yml +++ b/.github/workflows/create-release-tag.yml @@ -29,7 +29,7 @@ jobs: run: pip install semver - name: Set SPEC_VERSION env var - run: echo ::set-env name=SPEC_VERSION::$(python scripts/calculate_version.py) + run: echo ::set-env name=SPEC_VERSION::$(python utilities/scripts/calculate_version.py) env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true diff --git a/Makefile b/Makefile index 1247fec75..ca52701ee 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ SHELL=/usr/bin/env bash -euo pipefail PYTHON_PROJECT_DIRS_WITH_UNIT_TESTS = backend batch_processor_filter delta_backend filenameprocessor mesh_processor recordprocessor lambdas/ack_backend lambdas/redis_sync lambdas/id_sync lambdas/mns_subscription lambdas/shared -PYTHON_PROJECT_DIRS = e2e e2e_batch $(PYTHON_PROJECT_DIRS_WITH_UNIT_TESTS) +PYTHON_PROJECT_DIRS = tests/e2e tests/e2e_batch $(PYTHON_PROJECT_DIRS_WITH_UNIT_TESTS) #Installs dependencies using poetry. install-python: @@ -14,7 +14,7 @@ install-node: #Configures Git Hooks, which are scripts that run given a specified event. .git/hooks/pre-commit: - cp scripts/pre-commit .git/hooks/pre-commit + cp utilities/scripts/pre-commit .git/hooks/pre-commit #Condensed Target to run all targets above. install: install-node install-python .git/hooks/pre-commit @@ -33,16 +33,16 @@ clean: publish: clean mkdir -p build npm run publish 2> /dev/null - cp build/immunisation-fhir-api.json sandbox/ - cp -r specification sandbox/specification + cp build/immunisation-fhir-api.json utilities/sandbox/ + cp -r utilities/specification utilities/sandbox/specification #Runs build proxy script build-proxy: - scripts/build_proxy.sh + utilities/scripts/build_proxy.sh #Files to loop over in release # VED-811: remove everything except for proxy related files as we move to Github Actions for backend deployment -_dist_include="pytest.ini poetry.lock poetry.toml pyproject.toml Makefile build/. specification sandbox terraform scripts" +_dist_include="pytest.ini poetry.lock poetry.toml pyproject.toml Makefile build/. utilities/specification utilities/sandbox terraform utilities/scripts" #Create /dist/ sub-directory and copy files into directory @@ -90,7 +90,7 @@ test-prod: --junitxml=test-report.xml \ setup-python-envs: - scripts/setup-python-envs.sh + utilities/scripts/setup-python-envs.sh initialise-all-python-venvs: for dir in $(PYTHON_PROJECT_DIRS); do ( \ diff --git a/README.specification.md b/README.specification.md index e5dfb7bd2..2a748f595 100644 --- a/README.specification.md +++ b/README.specification.md @@ -4,9 +4,9 @@ This is a specification for the *immunisation-fhir-api* API. -* `specification/` This [Open API Specification](https://swagger.io/docs/specification/about/) describes the endpoints, methods and messages exchanged by the API. Use it to generate interactive documentation; the contract between the API and its consumers. -* `sandbox/` This NodeJS application implements a mock implementation of the service. Use it as a back-end service to the interactive documentation to illustrate interactions and concepts. It is not intended to provide an exhaustive/faithful environment suitable for full development and testing. -* `scripts/` Utilities helpful to developers of this specification. +* `utilities/specification/` This [Open API Specification](https://swagger.io/docs/specification/about/) describes the endpoints, methods and messages exchanged by the API. Use it to generate interactive documentation; the contract between the API and its consumers. +* `utilities/sandbox/` This NodeJS application implements a mock implementation of the service. Use it as a back-end service to the interactive documentation to illustrate interactions and concepts. It is not intended to provide an exhaustive/faithful environment suitable for full development and testing. +* `utilities/scripts/` Utilities helpful to developers of this specification. * `proxies/` Live (connecting to another service) and sandbox (using the sandbox container) Apigee API Proxy definitions. Consumers of the API will find developer documentation on the [NHS Digital Developer Hub](https://digital.nhs.uk/developer). diff --git a/azure/templates/build.yml b/azure/templates/build.yml index edc2981c6..1cfad295f 100644 --- a/azure/templates/build.yml +++ b/azure/templates/build.yml @@ -2,9 +2,9 @@ steps: - bash: | mkdir -p build npm run publish 2> /dev/null - cp build/immunisation-fhir-api.json sandbox/ + cp build/immunisation-fhir-api.json utilities/sandbox/ - cd sandbox + cd utilities/sandbox docker build -t sandbox . displayName: Build sandbox image workingDirectory: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)" diff --git a/azure/templates/post-deploy.yml b/azure/templates/post-deploy.yml index 44e0578fa..bd4d89176 100644 --- a/azure/templates/post-deploy.yml +++ b/azure/templates/post-deploy.yml @@ -191,7 +191,7 @@ steps: echo "running: $test_cmd -v -c" $test_cmd -v -c fi - workingDirectory: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/e2e" + workingDirectory: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/tests/e2e" displayName: Run Full Test Suite - bash: | @@ -224,7 +224,7 @@ steps: fi displayName: Run full batch test suite - workingDirectory: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/e2e_batch" + workingDirectory: "$(Pipeline.Workspace)/s/$(SERVICE_NAME)/$(SERVICE_ARTIFACT_NAME)/tests/e2e_batch" - task: PublishTestResults@2 displayName: 'Publish test results' diff --git a/ecs-proxies-containers.yml b/ecs-proxies-containers.yml index 360c0e1c1..07662a64d 100644 --- a/ecs-proxies-containers.yml +++ b/ecs-proxies-containers.yml @@ -1,4 +1,4 @@ docker_containers: - name: sandbox - dockerfile: "sandbox/Dockerfile" - path: "sandbox" + dockerfile: "utilities/sandbox/Dockerfile" + path: "utilities/sandbox" diff --git a/immunisation-fhir-api.code-workspace b/immunisation-fhir-api.code-workspace index 70e325df8..08f02504b 100644 --- a/immunisation-fhir-api.code-workspace +++ b/immunisation-fhir-api.code-workspace @@ -19,10 +19,10 @@ "path": "mesh_processor" }, { - "path": "e2e" + "path": "tests/e2e" }, { - "path": "e2e_batch" + "path": "tests/e2e_batch" }, { "path": "lambdas/ack_backend" diff --git a/package.json b/package.json index a5c1903b9..178208c89 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "0.0.1", "description": "OAS (Swagger v3) API Definition for Template API", "scripts": { - "lint": "redocly lint --skip-rule=security-defined specification/immunisation-fhir-api.yaml", - "publish": "redocly bundle specification/immunisation-fhir-api.yaml --remove-unused-components --ext json -o build/immunisation-fhir-api.json", + "lint": "redocly lint --skip-rule=security-defined utilities/specification/immunisation-fhir-api.yaml", + "publish": "redocly bundle utilities/specification/immunisation-fhir-api.yaml --remove-unused-components --ext json -o build/immunisation-fhir-api.json", "check-licenses": "node_modules/.bin/license-checker --failOn GPL --failOn LGPL" }, "author": "NHS Digital", diff --git a/sandbox/immunisation-fhir-api.json b/sandbox/immunisation-fhir-api.json deleted file mode 100644 index 2c4e08f5d..000000000 --- a/sandbox/immunisation-fhir-api.json +++ /dev/null @@ -1,7418 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "title": "Immunization-fhir-api", - "version": "Computed and injected at build time by `scripts/set_version.py`", - "description": "## Overview\n \nUse this API to access a patient's immunisation record. It is part of the [Vaccinations Data Flow Management](https://digital.nhs.uk/services/vaccinations-data-flow-management). It is intended to extend and replace [Immunisation History - FHIR API](https://digital.nhs.uk/developer/api-catalogue/immunisation-history-fhir) and existing [Vaccination](https://digital.nhs.uk/developer/api-catalogue/vaccination) flows. \n\n### You can:\n \n- create and record a patient immunisation \n- search for a patient's immunisation records\n- get the details of an immunisation record\n- update an immunisation record \n- identify an immunisation record as entered in error \n \n### You cannot use this API to:\n \n- retrieve the immunisation record of multiple patients at once\n- record or update a patient's demographic details\n> To get demographic details from the [Personal Demographics Service](https://digital.nhs.uk/services/personal-demographics-service), use the Personal Demographics FHIR API.\n \nYou can create, read, update and delete:\n \n- Vaccination events for the disease types found in this list {To be confirm}\n \n### Data availability, timing and quality\n\nThis is a real time service, constrained by the time taken for providers to transfer vaccination events. In most cases the latest a record will be available is within 48 hours of the immunisation event.\n\nThe API search interaction will only return immunisation records based on a traced NHS number. Other interactions require the immunisation ID assigned by the API to interact with individual records for read, update and delete.\n\nThe vaccination events for all disease types are limited to vaccinations administered on behalf of NHS England.\n\nThere is a limited scope of data validation upon receipt of the data. Whilst the data is generally of a good, reliable quality, consumers must be aware data is shared as received and users should consider the risk of potential absences or inaccuracies of the data. \n\n \n## Who can use this API \nThis API can only be used where there is a commercial, legal and clinical basis to do so. Make sure you have a valid use case before you go too far with your development.\n\nYou must demonstrate you have a valid use case as part of digital onboarding. As this service is disease type agnostic, there is also a shortened onboarding process for each disease type, to explain the legal, commercial and clinical justifications. \n\nYou must do this before you can go live refer to the [Onboarding](https://digital.nhs.uk/developer/api-catalogue/immunisation-fhir-api#overview--onboarding).\n\n## Who can access immunisation event records\n \nHealth and care organisations in England can access immunisation records.\n\nLegitimate direct care examples include NHS organisations delivering healthcare, local authorities delivering care, third sector and private sector health and care organisations, and developers delivering systems to health and care organisations.\n\nA future capability will be to enable patients who receive health and social care or make use of NHS services in England to access their vaccination records.\n\nThe immunisation event records captured via the API are used for a number of purposes including (some uses include distribution of the data by means other than this API)\n \n- supporting a patient getting a vaccination\n- supporting patient managing their immunisation health\n- identifying those to be invited to vaccination nationally\n- identifying those to be invited to vaccination locally\n- supporting the booking of a vaccination appointment\n- supporting the payment reconciliation process on behalf of NHS England / NHS Business Services Authority\n- supporting measuring the overall success of a vaccination campaign to help inform the success of the [NHS Vaccination Strategy](https://www.england.nhs.uk/long-read/nhs-vaccination-strategy/)\n\n## API status and roadmap\nThis API is [in development](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#statuses).\n \nTo see our roadmap, or to suggest, comment or vote on features for this API, see our [interactive product backlog](https://nhs-digital-api-management.featureupvote.com/?tag=immunisation).\n \nIf you have any other queries, [contact us](https://digital.nhs.uk/developer/help-and-support).\n \n## Service level\nThis API will be a platinum service, meaning it is operational and supported 24 x 7 x 365.\n \nFor more details, see [service levels](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#service-levels).\n \n## Technology\n \nThis API is [RESTful](https://digital.nhs.uk/developer/guides-and-documentation/our-api-technologies#basic-rest).\n \nIt 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.\n \nIt includes some country-specific FHIR extensions, which conform to [FHIR UK Core](https://digital.nhs.uk/services/fhir-uk-core), specifically [fhir.r4.ukcore.stu2](https://simplifier.net/packages/fhir.r4.ukcore.stu2).\n \nYou do not need to know much about FHIR to use this API - FHIR APIs are just RESTful APIs that follow specific rules.\nIn particular:\n- resource names are capitalised and singular, and use US spellings, for example `/Immunization` not `/immunisations`\n- array names are singular, for example `entry` not `entries` for address lines\n- data items that are country-specific and thus not included in the FHIR global base resources are usually wrapped in an `extension` object\n \nThere are [libraries and SDKs available](https://digital.nhs.uk/developer/guides-and-documentation/api-technologies-at-nhs-digital#fhir-libraries-and-sdks) to help with FHIR API integration.\n \n## Network access\nThis 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).\n \nFor more details see [Network access for APIs](https://digital.nhs.uk/developer/guides-and-documentation/network-access-for-apis).\n \n## Security and authorisation\n \nThis API has a single access mode:\n- application-restricted access\n\nIn the future we intend to offer user-restricted access. \n \n### Application-restricted access\n \nThis access mode 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.\n \nTo use this access mode, use the following security pattern:\n- [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)\n\nAccess may be restricted to certain functionality based on your user need\n \ncontact:\n \n name: Immunization-fhir-api API Support\n \n url: 'https://digital.nhs.uk/developer/help-and-support'\n \n email: api.management@nhs.net\n\n## Errors\nWe use standard HTTP status codes to show whether an API request succeeded or not. They are usually in the range:\n\n* 200 to 299 if it succeeded, including code 202 if it was accepted by an API that needs to wait for further action\n* 400 to 499 if it failed because of a client error by your application\n* 500 to 599 if it failed because of an error on our server\n\nErrors 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.\n\n## Open source\n\nYou might find the following [open source](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#open-source) resources useful:\n\n| Resource | Description | Links |\n|---------------------------|----------------------------------------------------------------------|--------------------------------------------------------------------------------|\n| Immunisation FHIR API | Source code for the API proxy, sandbox and specification. | [GitHub repo](https://github.dev/NHSDigital/immunisation-fhir-api/) |\n| FHIR libraries and SDKs | Various open source libraries for integrating with FHIR APIs. | [FHIR libraries and SDKs](https://digital.nhs.uk/developer/guides-and-documentation/api-technologies-at-nhs-digital#fhir-libraries-and-sdks) |\n| nhs-number | Python package containing utilities for NHS numbers including validity checks, normalisation and generation. | [GitHub repo](https://github.com/uk-fci/nhs-number) \\| [Python Package index](https://pypi.org/project/nhs-number/) \\| [Docs](https://nhs-number.uk-fci.tech/) |\n\nWe currently don't have any open source client libraries or sample code for this API. If you think this would be useful, you can [upvote the suggestion on our Interactive Product Backlog](https://nhs-digital-api-management.featureupvote.com/suggestions/107439/client-libraries-and-reference-implementations).\n\nThe source code for the Immunisation FHIR API is not currently in the open. If you think this would be useful, you can [upvote the suggestion on our Interactive Product Backlog](https://nhs-digital-api-management.featureupvote.com/suggestions/466692/open-source-core-spine-including-pds-eps-scr-and-more).\n\n\n## Environments and Testing\n| Environment | Base URL |\n| ----------------- | --------------------------------------------------------------------- |\n| Sandbox | `https://sandbox.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4` |\n| Integration | `https://int.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4` | \n| Production | `https://api.service.nhs.uk/immunisation-fhir-api/FHIR/R4` |\n\n### Sandbox testing\nOur [sandbox environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#sandbox-testing):\n* is for early developer testing\n* only covers a limited set of scenarios\n* is stateless, so does not actually persist any updates\n* is open access, so does not allow you to test authorisation\n\nFor details of sandbox test scenarios, or to try out the sandbox using our 'Try this API' feature, see the documentation for each endpoint.\n\n### Integration testing\nOur [integration test environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing):\n* is for formal integration testing\n* is stateful, so persists updates\n* includes authorisation, with options for user-restricted access (with or without [smartcards](https://digital.nhs.uk/developer/guides-and-documentation/security-and-authorisation/nhs-smartcards-for-developers)) and application-restricted access \n\nFor read-only testing, we will provide an Immunisation records test pack soon.\n\nTo test creating, updating and deleting patient vaccination events, you must set up your own test data.\n\nFor more details see [integration testing with our RESTful APIs](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing-with-our-restful-apis).\n\n## Onboarding\n \nYou need to get your software approved by us before it can go live with this API.\nWe call this onboarding.\nThe onboarding process can sometimes be quite long, so it is worth planning well ahead.\n\nWhilst this API is in Alpha it is not possible to onboard to this API.\nAs part of this process, you need to demonstrate that you can manage risks and that your software conforms technically with the requirements for this API.\nInformation on this page might impact the design of your software.\n\nOnboarding will initially be to a first of type for search and read for RSV vaccination records only. A phased rollout will then release further interactions and types of vaccination records.\n\nTo understand how our online digital onboarding process works, see [digital onboarding](https://digital.nhs.uk/developer/guides-and-documentation/digital-onboarding#using-the-digital-onboarding-portal).\n" - }, - "servers": [ - { - "url": "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4", - "description": "Sandbox Server" - }, - { - "url": "https://int.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4", - "description": "Integration Server" - } - ], - "paths": { - "/Immunization": { - "post": { - "summary": "Record a vaccination given to a patient", - "operationId": "createImmunization", - "description": "## Overview\nUse this interaction to record the administration of a vaccination. The immunization resource must include a targetDisease(s) matching the 'disease types' enabled in this interaction and represented by the correct SNOMED concept(s) for that 'disease type'. See another page for details and disease types and coding. \nYou must be authorised for the create interaction and the disease type associated with the vaccination event in order to submit a new record. \n\n## Sandbox testing\nYou can test the following scenarios in our sandbox environment:\n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n | Record a vaccination event | valid request as per schema | HTTP Status 201 with immunisation id in response header(location) |\n| Bad Request(missing/invalid required element in request body) | Didn't pass `resourceType` in request body | HTTP Status 400 Bad Request |\n", - "parameters": [ - { - "$ref": "#/components/parameters/CorrelationID" - }, - { - "$ref": "#/components/parameters/RequestID" - } - ], - "requestBody": { - "content": { - "application/fhir+json": { - "schema": { - "description": "A FHIR Immunization resource.", - "type": "object", - "required": [ - "resourceType", - "contained", - "extension", - "identifier", - "status", - "vaccineCode", - "patient", - "occurrenceDateTime", - "recorded", - "primarySource", - "location", - "performer", - "protocolApplied" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Immunization`.", - "type": "string", - "example": "Immunization" - }, - "meta": { - "type": "object", - "description": "Metadata about the resource.", - "properties": { - "versionId": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted." - }, - "lastUpdated": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "When the resource last changed - e.g. when the version changed.", - "example": "2017-01-01T00:00:00Z" - }, - "source": { - "type": "string", - "description": "A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc." - }, - "profile": { - "type": "array", - "items": { - "type": "string", - "pattern": "\\S*", - "description": "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)." - } - }, - "security": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure." - } - }, - "tag": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource." - } - } - } - }, - "contained": { - "type": "array", - "description": "Includes any relevant resources as defined within this specification and referenced from within the resource. A patient resource SHALL be included. \nThe schema for Practitioner & Patient are different.", - "minItems": 1, - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "FHIR resource type. Always `Practitioner`.", - "example": "Practitioner" - }, - "id": { - "type": "string", - "description": "Logical id of this artifact" - }, - "name": { - "type": "array", - "description": "The name(s) associated with the practitioner", - "items": { - "type": "object", - "properties": { - "family": { - "type": "string", - "description": "Family name (often called 'Surname')" - }, - "given": { - "type": "array", - "description": "Given names (not always 'first').", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": [ - "resourceType", - "id" - ] - }, - { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "FHIR resource type. Always `Patient`.", - "example": "Patient" - }, - "id": { - "type": "string", - "description": "Logical id of this artifact", - "example": "#Pat1" - }, - "identifier": { - "type": "array", - "description": "An identifier for the patient", - "items": { - "type": "object", - "properties": { - "system": { - "type": "string", - "description": "The namespace for the identifier value" - }, - "value": { - "type": "string", - "description": "The value that is unique" - } - }, - "required": [ - "system", - "value" - ] - } - }, - "name": { - "type": "array", - "description": "Patient name as registered on PDS or as recorded by the user where the record cannot be traced on PDS. \nThere SHOULD be only one instance of name. If more than one name instance is provided additional elements SHOULD be populated only so the current, official name can be determined or otherwise the current, official name SHALL be the first name instance. There SHALL be at least one name instance with both family and given elements populated.", - "items": { - "type": "object", - "properties": { - "family": { - "type": "string", - "description": "Family name (often called 'Surname')" - }, - "given": { - "type": "array", - "description": "Patient Forename. Middle names are not to be included within this field. \nThere SHOULD only be one given name supplied in this element.", - "items": { - "type": "string" - } - } - }, - "required": [ - "family", - "given" - ] - } - }, - "gender": { - "type": "string", - "description": "male | female | other | unknown" - }, - "birthDate": { - "type": "string", - "description": "The date of birth for the individual" - }, - "address": { - "type": "array", - "description": "There SHOULD be only one instance of address with only the postalCode element populated. If more than one address instance is provided the additional elements SHOULD be populated only so the current, home post code can be determined or otherwise the current, home post code SHALL be the first address instance.", - "items": { - "type": "object", - "properties": { - "postalCode": { - "type": "string", - "description": "Patient residential/home postcode. Value should be divided into two parts separated by a single space, e.g. EC1A 1BB \nAs well as actual post codes, the following SHOULD be used in other scenarios. \n *ZZ99 3VZ No Fixed Abode \n *ZZ99 3WZ Address Not Known \n *ZZ99 3CZ (England/UK) Address not otherwise specified \nThe full list is available here: https://www.england.nhs.uk/wp-content/uploads/2020/04/cam-2021-guidance-v2.1.pdf" - } - }, - "required": [ - "postalCode" - ] - } - } - }, - "required": [ - "resourceType", - "id", - "identifier", - "name", - "gender", - "birthDate", - "address" - ] - } - ] - } - }, - "extension": { - "description": "FHIR extension wrapper for the vaccination procedure performed. Always contains exactly one object.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "url", - "valueCodeableConcept" - ], - "properties": { - "url": { - "description": "URI for the type of extension - https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "type": "string", - "example": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure" - }, - "valueCodeableConcept": { - "description": "This SHALL be populated with the appropriate SNOMED CT code (identified by system=http://snomed.info/sct). \nThis relates to the vaccine that was administered, typically in the form of a procedure code. The UK Core IG provides guidance on codes for this extension, but the provider SHALL ensure the appropriate code and term is provided. \nAdditional coding MAY be included provided it is semantically equivalent to the SNOMED concept.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccination procedure coding.", - "type": "array", - "items": { - "type": "object", - "required": [ - "system", - "code" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "A particular code in the system.", - "type": "string", - "example": "1303503001" - }, - "display": { - "description": "Representation defined by the system.", - "type": "string", - "example": "Administration of RSV (respiratory syncytial virus) vaccine" - } - } - } - }, - "text": { - "description": "Plain text representation of the concept.", - "type": "string" - } - } - } - } - } - }, - "identifier": { - "description": "A unique identifier assigned to this immunization record. Only one identifier SHALL be provided.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "use": { - "description": "Identifier use as defined by https://www.hl7.org/fhir/valueset-identifier-use.html.", - "type": "string", - "enum": [ - "usual", - "official", - "temp", - "secondary", - "old" - ], - "example": "official" - }, - "system": { - "description": "A URI for the system that has allocated the vaccination identifier.", - "type": "string", - "example": "https://supplierABC/identifiers/vacc `or` https://supplierABC/ODSCode_NKO41/identifiers/vacc" - }, - "value": { - "description": "A unique identifier value within `system`. Ideally this would be a GUID / UUID. \nThe value in combination with the system SHALL be globally unique.", - "type": "string", - "example": "e2154d29-1ead-4830-a513-0d59705078fa" - } - } - } - }, - "status": { - "description": "Indicates the status of the immunization event. \nOnly administered vaccination records SHALL be supported: status = completed.", - "type": "string", - "enum": [ - "completed" - ], - "example": "completed" - }, - "vaccineCode": { - "description": "Vaccine product administered. \nWhere the vaccine product is known, the dm+d / SNOMED CT concept for the AMP form SHOULD be provided. \nWhere a meaningful vaccine code cannot be provided, use one of the following NullFlavor codes, \n NAVU - `Not available` \n UNC - `Unencoded` \n UNK - `Unknown` \n NA - `Not Applicable` \nFrom http://terminology.hl7.org/CodeSystem/v3-NullFlavor", - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the vaccine product details.", - "type": "array", - "items": { - "type": "object", - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccine product.", - "type": "string", - "example": "42605811000001109" - }, - "display": { - "description": "Description of the vaccine product.", - "type": "string", - "example": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - } - } - } - } - }, - "patient": { - "description": "The patient who received the immunization. \nWhen providing records of a vaccination event (create / update) and reading a record by its ID, this SHALL be a reference to a contained patient resource.", - "type": "object", - "required": [ - "reference" - ], - "properties": { - "reference": { - "description": "Reference of patient from contained section", - "type": "string", - "example": "#Pat1" - } - } - }, - "occurrenceDateTime": { - "description": "A dateTime format SHALL be provided. It SHOULD be to the level of precision as recorded within the source system, subject to the FHIR rules for dateTime. \nOnly positive timezone offsets of '+00:00' (GMT) and '+01:00' (BST) are allowed. Where time zone information is required but is not available in the source system the time zone element can be a hardcoded static value of `+00:00`.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "recorded": { - "description": "The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "primarySource": { - "description": "Set as `TRUE` when the content of the record is based on information from the person performing the vaccine or who has clinical responsibility for the vaccination, and the system can be considered a primary source of the vaccination event. \nSet as `FALSE` when the content of the record is NOT based on information from the person performing the vaccine or who has clinical responsibility for the vaccination and the system should not be treated as a primary source for this record.", - "type": "boolean", - "example": true - }, - "location": { - "type": "object", - "description": "The service delivery location where the vaccine administration occurred.", - "properties": { - "identifier": { - "type": "object", - "description": "An identifier for the service delivery location.", - "properties": { - "system": { - "description": "The system which defines the location. Typically this will be https://fhir.nhs.uk/Id/ods-organization-code for a health setting (ODS use) or https://fhir.hl7.org.uk/Id/urn-school-number for an education setting (URN use). ", - "type": "string", - "example": "https://fhir.nhs.uk/Id/ods-organization-code" - }, - "value": { - "description": "The ODS or URN code of the location where the vaccination was administered. \n1. For occupational health vaccinations administered in a hospital trust by an independent healthcare provider, this SHALL be the ODS code of the hospital trust. \n2. For school vaccinations administered by a School Aged Immunisation Service provider, this SHALL be the URN of the school where the vaccination was administered. \n3. For roving teams on care home visits, this SHALL be the ODS code of the care home, where known. \n4. For any other vaccinations, populate with the same code as provided for `performer` ODS code. \n\nWhere the ODS/URN code is unavailable, a default value of `X99999` MUST be used.", - "type": "string", - "example": "X99999" - } - }, - "required": [ - "system", - "value" - ] - } - } - }, - "manufacturer": { - "description": "Manufacturer of vaccine product. This `SHOULD be populated` where the data is available.", - "type": "object", - "properties": { - "display": { - "description": "The free text name of the vaccine manufacturer. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "AstraZeneca Ltd" - } - } - }, - "lotNumber": { - "description": "Vaccine batch number. This should be captured at source ideally via use of automated scanning technology (GS1 GTIN / NTIN standard). \nThis `SHOULD be populated` where the data is available.", - "type": "string", - "example": "4120Z001" - }, - "expirationDate": { - "description": "Manufacturer expiry date or defrost expiry date of the vaccine, whichever is earliest. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "2021-04-29" - }, - "site": { - "description": "Body site where vaccine was administered. This `SHOULD be populated` where the data is available. \nA SNOMED-CT Concept ID value from UK published reference set Vaccine body site of administration simple reference set (1127941000000100) should be used.", - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the vaccination body site details.", - "type": "array", - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination body site.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination body site.", - "type": "string", - "example": "368208006" - }, - "display": { - "description": "Description of the vaccination body site.", - "type": "string", - "example": "Left upper arm structure (body structure)" - } - } - } - } - } - }, - "route": { - "description": "The path by which the vaccine product is taken into the body. This `SHOULD be populated` where the data is available. \nA SNOMED-CT concept ID value from UK “ePrescribing route of administration simple reference set (foundation metadata concept)” (999000051000001100) should be used.", - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the vaccination route details.", - "type": "array", - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination route.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination route.", - "type": "string", - "example": "78421000" - }, - "display": { - "description": "Description of the vaccination route.", - "type": "string", - "example": "Intramuscular route (qualifier value)" - } - } - } - } - } - }, - "doseQuantity": { - "description": "The quantity of vaccine product that was administered. This `SHOULD be populated` where the data is available. \nA SNOMED-CT Concept ID value representing the unit of measure used SHOULD be provided.", - "type": "object", - "required": [], - "properties": { - "value": { - "description": "The actual value of the dose amount administered. This `SHOULD be populated` where the data is available. \nFor Example, \nComirnaty ® (Pfizer BioNTech): \n Full Dose (Primary Course or booster) = 0.3 \n Fractional Dose (Primary Course) = 0.1", - "type": "number", - "example": 1 - }, - "unit": { - "description": "A human-readable form of the unit. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "milliliter" - }, - "system": { - "description": "The code system from which the provided code is taken. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "http://unitsofmeasure.org" - }, - "code": { - "description": "The code for the unit of measure. SNOMED coded dose units are preferred. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "ml" - } - } - }, - "performer": { - "description": "Details of the organisation that performed the immunisation event. \nThis covers: \n The Commissioned Healthcare Provider who has administered the vaccination \n The professional performing the vaccination \nAt least one performer entry SHALL be provided which includes an actor with an identifier system and value.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "actor" - ], - "properties": { - "actor": { - "description": "When the actor represents the managing organisation for the vaccination this SHALL be populated with `Organization`", - "type": "object", - "properties": { - "type": { - "description": "The type of actor reference provided. This SHALL be populated with `Organization`.", - "type": "string", - "example": "Organisation" - }, - "identifier": { - "description": "When the actor represents the managing organisation for the vaccination this SHALL be populated and the guidance for sub-elements applied.", - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "system": { - "description": "This SHALL be the system from which the supplied code is taken. The code SHOULD be an ODS code which comes from `https://fhir.nhs.uk/Id/ods-organization-code`.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/ods-organization-code" - }, - "value": { - "description": "The ODS code for the Commissioned Healthcare Provider, \n For roving teams on home visits or care home visits, use the ODS code of the responsible site e.g. GP Practice or dedicated vaccination site \n For school vaccinations, use the ODS of code of the School Aged Immunisation Service provider, rather than the URN of the school \nURN codes must not be provided for this data item.", - "type": "string", - "example": "B0C4P" - } - } - }, - "reference": { - "description": "Where practitioner details are being provided, this SHOULD be a reference to a contained practitioner resource. If the actor is the managing organisation, this SHOULD be absent.", - "type": "string", - "example": "#Pract1" - } - } - } - } - } - }, - "reasonCode": { - "description": "A SNOMED-CT Concept representing the clinical indication or reason for administering or recording an historical vaccination. \nThe primary reason for the vaccination SHOULD be either the only reason submitted or the first SNOMED CT coded reason. \nThis `SHOULD be populated` where the data is available.", - "type": "array", - "items": { - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the reason code details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe the reason for administration of vaccine.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccination reason.", - "type": "string", - "example": "443684005" - }, - "display": { - "description": "Description of the vaccination reason.", - "type": "string", - "example": "Disease outbreak (event)" - } - } - } - } - } - } - }, - "protocolApplied": { - "description": "The protocol (set of recommendations) being followed by the provider who administered the dose.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "targetDisease", - "doseNumber[X]" - ], - "properties": { - "targetDisease": { - "type": "array", - "description": "The vaccine preventable disease the dose is being administered against. \nThis SHALL be populated with the appropriate SNOMED CT concept. A code list will be provided for each supported type of vaccination. A valid code or code combination SHALL be provided. \nFor vaccines which provide immunity for more than one target disease there SHALL be one instance of targetDisease for each and no more.", - "items": { - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "type": "array", - "description": "A reference to a code defined by a terminology system.", - "items": { - "type": "object", - "required": [ - "system", - "code" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string" - }, - "code": { - "description": "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system", - "type": "string" - }, - "display": { - "description": "A representation of the meaning of the code in the system, following the rules of the system.", - "type": "string" - } - } - } - } - } - } - }, - "doseNumber[X]": { - "type": "object", - "description": "Nominal position in a series. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available.", - "properties": { - "doseNumberPositiveInt": { - "description": "Nominal position in a course of vaccines. This `SHOULD be populated` where the data is available.", - "type": "integer", - "example": 1 - }, - "doseNumberString": { - "description": "Description of the dose sequence where it is not a numeric or a reason a dose number cannot be provided. \nA string should only be used in cases where an integer is not available.", - "type": "string" - } - } - } - } - } - } - } - }, - "example": { - "resourceType": "Immunization", - "contained": [ - { - "resourceType": "Practitioner", - "id": "Pract1", - "name": [ - { - "family": "Nightingale", - "given": [ - "Florence" - ] - } - ] - }, - { - "resourceType": "Patient", - "id": "Pat1", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449310475" - } - ], - "name": [ - { - "family": "Taylor", - "given": [ - "Sarah" - ] - } - ], - "gender": "unknown", - "birthDate": "1965-02-28", - "address": [ - { - "postalCode": "EC1A 1BB" - } - ] - } - ], - "extension": [ - { - "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1324681000000101", - "display": "Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)" - } - ] - } - } - ], - "identifier": [ - { - "system": "https://supplierABC/identifiers/vacc", - "value": "a7437179-e86e-4855-b68e-24b5jhg3g" - } - ], - "status": "completed", - "vaccineCode": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39114911000001105", - "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd) (product)" - } - ] - }, - "patient": { - "reference": "#Pat1" - }, - "occurrenceDateTime": "2021-02-07T13:28:17.271+00:00", - "recorded": "2021-02-07T13:28:17.271+00:00", - "primarySource": true, - "manufacturer": { - "display": "AstraZeneca Ltd" - }, - "location": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "X99999" - } - }, - "lotNumber": "4120Z001", - "expirationDate": "2021-07-02", - "site": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "368208006", - "display": "Left upper arm structure (body structure)" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "78421000", - "display": "Intramuscular route (qualifier value)" - } - ] - }, - "doseQuantity": { - "value": 0.5, - "unit": "milliliter", - "system": "http://unitsofmeasure.org", - "code": "ml" - }, - "performer": [ - { - "actor": { - "reference": "#Pract1" - } - }, - { - "actor": { - "type": "Organization", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B0C4P" - } - } - } - ], - "reasonCode": [ - { - "coding": [ - { - "code": "443684005", - "system": "http://snomed.info/sct" - } - ] - } - ], - "protocolApplied": [ - { - "targetDisease": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "840539006", - "display": "Disease caused by severe acute respiratory syndrome coronavirus 2 (disorder)" - } - ] - } - ], - "doseNumberPositiveInt": 1 - } - ] - } - } - } - }, - "responses": { - "201": { - "description": "Create Immunization operation successful", - "headers": { - "Location": { - "$ref": "#/components/parameters/Location" - }, - "CorrelationID": { - "$ref": "#/components/parameters/CorrelationID" - }, - "RequestID": { - "$ref": "#/components/parameters/RequestID" - } - } - }, - "4XX": { - "$ref": "#/components/responses/4XX-imms" - } - } - }, - "get": { - "summary": "Search (GET) for a patient's immunisation records", - "operationId": "searchViaGetImmunization", - "description": "## Overview\nUse this interaction to search for a patient's vaccination records using their NHS number and DiseaseType. You can request the patient's vaccination history for one or more specified 'disease types'. You may limit the vaccination records by specifying date criteria, for example if you only need to know about vaccinations administered in the last 12 months. \n Location related data items are included. Patient location sensitivity indicators (such as flags for sensitive patient records) should be obtained by connecting systems from the [Personal Demographics Service (PDS)](https://digital.nhs.uk/services/personal-demographics-service) and used to apply data filtering as appropriate. The response will not include contained resources for patient or practitioner within each immunization resource it returns. A single, separate patient resource will be included in the bundle and referenced by each immunization. \nVaccination events submitted without an NHS Number will not be available for retrieval via this interaction. Also, where a patient has a change of NHS Number some or all records may be unavailable via this interaction for a short period of time whilst records are updated. \nYou must be authorised for the search interaction and the disease type(s) specified in your search in order to access the records. \n\n## Sandbox testing\nYou can test the following scenarios in our sandbox environment:\n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n| Immunisation history found | `patient.identifier`=`https://fhir.nhs.uk/Id/nhs-number\\|9000000009` | HTTP Status 200 with immunisation data in response body |\n| Bad Request | Didn't pass Required fields `patient.identifier` or `-immunization.target` | HTTP Status 400 Bad Request |\n", - "parameters": [ - { - "$ref": "#/components/parameters/CorrelationID" - }, - { - "$ref": "#/components/parameters/RequestID" - }, - { - "$ref": "#/components/parameters/PatientIdentifier" - }, - { - "$ref": "#/components/parameters/ImmunizationTarget" - }, - { - "$ref": "#/components/parameters/DateFrom" - }, - { - "$ref": "#/components/parameters/DateTo" - }, - { - "$ref": "#/components/parameters/Include" - } - ], - "responses": { - "200": { - "description": "Search immunisation operation successful", - "content": { - "application/fhir+json": { - "schema": { - "description": "FHIR Bundle containing the query results - a list of matching immunisations and associated patients.", - "type": "object", - "required": [ - "resourceType", - "type", - "total", - "entry" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Bundle`.", - "type": "string", - "example": "Bundle" - }, - "type": { - "description": "Indicates how the bundle is intended to be used. Always `searchset`.", - "type": "string", - "example": "searchset" - }, - "link": { - "type": "array", - "items": { - "type": "object", - "properties": { - "relation": { - "description": "A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1). Always `Self`.", - "type": "string" - }, - "url": { - "description": "A url representing the search applied by the API to generate the result which may differ from the request if unrecognised or unsupported parameters have been ignored.", - "type": "string" - } - }, - "required": [ - "relation", - "url" - ] - } - }, - "entry": { - "description": "List of matching immunisations and associated patient. If there were no matching immunisations, this is an empty list.", - "type": "array", - "items": { - "type": "object", - "required": [ - "fullUrl", - "resource", - "search" - ], - "properties": { - "fullUrl": { - "description": "URI for the Immunization or Patient resource.", - "type": "string", - "example": "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization/191f288a-17f3-4cd5-a33c-a52aade6473c" - }, - "resource": { - "description": "The Immunization or Patient resource.", - "oneOf": [ - { - "description": "A matching immunisation, formatted as a FHIR Immunization resource.", - "type": "object", - "required": [ - "resourceType", - "extension", - "identifier", - "status", - "vaccineCode", - "patient", - "occurrenceDateTime", - "recorded", - "primarySource", - "location", - "performer", - "protocolApplied" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Immunization`.", - "type": "string", - "example": "Immunization" - }, - "id": { - "description": "Immunization record Id.", - "type": "string", - "example": "191f288a-17f3-4cd5-a33c-a52aade6473c" - }, - "meta": { - "type": "object", - "properties": { - "versionId": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted." - }, - "lastUpdated": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "When the resource last changed - e.g. when the version changed.", - "example": "2017-01-01T00:00:00Z" - }, - "source": { - "type": "string", - "description": "Identifies where the resource comes from." - }, - "profile": { - "type": "array", - "items": { - "type": "string", - "pattern": "\\S*", - "description": "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)." - } - }, - "security": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure." - } - }, - "tag": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource." - } - } - } - }, - "extension": { - "description": "FHIR extension wrapper for the vaccination procedure performed. Always contains exactly one object.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "url", - "valueCodeableConcept" - ], - "properties": { - "url": { - "description": "URI for the type of extension - https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "type": "string", - "example": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure" - }, - "valueCodeableConcept": { - "description": "Wrapper for the vaccination procedure coding.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccination procedure coding.", - "type": "array", - "items": { - "type": "object", - "required": [ - "system", - "code", - "display" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "A particular code in the system.", - "type": "string", - "example": "1303503001" - }, - "display": { - "description": "Representation defined by the system.", - "type": "string", - "example": "Administration of RSV (respiratory syncytial virus) vaccine" - } - } - } - } - } - } - } - } - }, - "identifier": { - "description": "Unique identifier for this immunisation record, as generated by the source system.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "use": { - "description": "Identifier use as defined by https://www.hl7.org/fhir/valueset-identifier-use.html.", - "type": "string", - "enum": [ - "usual", - "official", - "temp", - "secondary", - "old" - ], - "example": "official" - }, - "system": { - "description": "URI of the namespace of this identifier.", - "type": "string", - "example": "https://supplierABC/identifiers/vacc" - }, - "value": { - "description": "Identifier value within `system`.", - "type": "string", - "example": "e2154d29-1ead-4830-a513-0d59705078fa" - } - } - } - }, - "status": { - "description": "Status of the immunisation event. This is *not* an indication of patient immunity, only whether the immunisation was completed or not. Currently we only return details of completed immunisations.", - "type": "string", - "enum": [ - "completed" - ], - "example": "completed" - }, - "vaccineCode": { - "description": "Vaccine product administered.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccine product details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "code", - "display" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccine product.", - "type": "string", - "example": "42605811000001109" - }, - "display": { - "description": "Description of the vaccine product.", - "type": "string", - "example": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - } - } - } - } - }, - "patient": { - "description": "The patient who was immunised.", - "type": "object", - "required": [ - "reference", - "type", - "identifier" - ], - "properties": { - "reference": { - "description": "URI for the associated Patient resource in the bundle.", - "type": "string", - "example": "urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac" - }, - "type": { - "description": "Type of resource this reference refers to. Always `Patient`.", - "type": "string", - "example": "Patient" - }, - "identifier": { - "description": "Business identifier for linked Patient. Always an NHS number.", - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "system": { - "description": "URI of coding system used to identify linked patient. Always https://fhir.nhs.uk/Id/nhs-number", - "type": "string", - "example": "https://fhir.nhs.uk/Id/nhs-number" - }, - "value": { - "description": "Value in coding system representing linked patient.", - "type": "string", - "example": "9000000009" - } - } - } - } - }, - "occurrenceDateTime": { - "description": "Date and time of immunisation.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "recorded": { - "description": "The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "primarySource": { - "description": "An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded.", - "type": "boolean", - "example": true - }, - "location": { - "type": "object", - "description": "The service delivery location where the vaccine administration occurred.", - "properties": { - "identifier": { - "type": "object", - "description": "An identifier for the service delivery location.", - "properties": { - "system": { - "description": "The system which defines the location. Typically this will be https://fhir.nhs.uk/Id/ods-organization-code for a health setting or https://fhir.hl7.org.uk/Id/urn-school-number for an education setting.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/ods-organization-code" - }, - "value": { - "description": "A code from the system to represent the location. An ODS code of X99999 represents a location where a code is not available.", - "type": "string", - "example": "X99999" - } - }, - "required": [ - "system", - "value" - ] - } - }, - "required": [ - "identifier" - ] - }, - "manufacturer": { - "description": "Vaccine manufacturer details.", - "type": "object", - "properties": { - "display": { - "description": "Decsription of the vaccine manufacturer.", - "type": "string", - "example": "AstraZeneca Ltd" - } - } - }, - "lotNumber": { - "description": "Lot number of the vaccine product.", - "type": "string", - "example": "4120Z001" - }, - "expirationDate": { - "description": "Date vaccine batch expires.", - "type": "string", - "example": "2021-04-29" - }, - "site": { - "description": "Body site where vaccine was administered.", - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the vaccination body site details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination body site.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination body site.", - "type": "string", - "example": "368208006" - }, - "display": { - "description": "Description of the vaccination body site.", - "type": "string", - "example": "Left upper arm structure (body structure)" - } - } - } - } - }, - "required": [ - "coding" - ] - }, - "route": { - "description": "The path by which the vaccine product is taken into the body.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccination route details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination route.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination route.", - "type": "string", - "example": "78421000" - }, - "display": { - "description": "Description of the vaccination route.", - "type": "string", - "example": "Intramuscular route (qualifier value)" - } - } - } - } - } - }, - "doseQuantity": { - "description": "The quantity of vaccine product that was administered.", - "type": "object", - "required": [], - "properties": { - "value": { - "description": "Number of units administered.", - "type": "number", - "example": 1 - }, - "unit": { - "description": "Description of unit.", - "type": "string", - "example": "milliliter" - }, - "system": { - "description": "System that defines coded unit form.", - "type": "string", - "example": "http://unitsofmeasure.org" - }, - "code": { - "description": "Code describing the unit.", - "type": "string", - "example": "ml" - } - } - }, - "performer": { - "description": "Details of the organisation that performed the immunisation.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "actor" - ], - "properties": { - "actor": { - "description": "Organisation that performed the immunisation.", - "type": "object", - "required": [ - "type", - "identifier" - ], - "properties": { - "type": { - "description": "Type of actor. Always `Organisation`.", - "type": "string", - "example": "Organisation" - }, - "identifier": { - "description": "Organisation identifier.", - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "system": { - "description": "Coding system used for the organisation identifier. Always `https://fhir.nhs.uk/Id/ods-organization-code`.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/ods-organization-code" - }, - "value": { - "description": "Organisation's ODS code.", - "type": "string", - "example": "B0C4P" - } - } - }, - "display": { - "description": "Organisation that performed the immunisation.", - "type": "string", - "example": "UNIVERSITY HOSPITAL OF WALES" - } - } - } - } - } - }, - "reasonCode": { - "description": "Reasons why the vaccine was administered.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the reason code details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "code", - "display" - ], - "properties": { - "system": { - "description": "Coding system used to describe the reason for administration of vaccine.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccination reason.", - "type": "string", - "example": "443684005" - }, - "display": { - "description": "Description of the vaccination reason.", - "type": "string", - "example": "Disease outbreak (event)" - } - } - } - } - } - } - }, - "protocolApplied": { - "description": "The protocol (set of recommendations) being followed by the provider who administered the dose.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "targetDisease" - ], - "properties": { - "targetDisease": { - "type": "array", - "description": "The vaccine preventable disease the dose is being administered against.", - "items": { - "type": "object", - "properties": { - "coding": { - "type": "array", - "description": "A reference to a code defined by a terminology system.", - "items": { - "type": "object", - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string" - }, - "code": { - "description": "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system", - "type": "string" - }, - "display": { - "description": "A representation of the meaning of the code in the system, following the rules of the system.", - "type": "string" - } - }, - "required": [ - "system", - "code", - "display" - ] - } - } - }, - "required": [ - "coding" - ] - } - }, - "doseNumber[X]": { - "type": "object", - "description": "Dose number within series. Can be an integer or string. Kindly, refer below elements", - "properties": { - "doseNumberPositiveInt": { - "description": "Dose number within a series of doses.", - "type": "integer", - "example": 1 - }, - "doseNumberString": { - "description": "A string should only be used in cases where an integer is not available.", - "type": "string" - } - }, - "required": [ - "doseNumberPositiveInt" - ] - } - } - } - } - } - }, - { - "description": "Demographic information about the patient receiving an immunisation.", - "type": "object", - "required": [ - "resourceType", - "id" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Patient`.", - "type": "string", - "example": "Patient" - }, - "id": { - "description": "Patient ID (NHS Number)", - "type": "string", - "example": "9000000009" - }, - "identifier": { - "description": "Unique identifier for this patient. Always an NHS number.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "system": { - "description": "Coding system used to identify patients.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/nhs-number" - }, - "value": { - "description": "Code identifying the patient.", - "type": "string", - "example": "9000000009" - } - } - } - } - } - } - ] - }, - "search": { - "description": "Search-related information for the Immunization.", - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "description": "Indicates why this resource is in the result set. For Immunization resources this is always `match`.", - "enum": [ - "match", - "include" - ] - } - } - } - } - } - }, - "total": { - "description": "Number of matching immunisations found.", - "type": "integer", - "example": 2 - } - } - }, - "example": { - "resourceType": "Bundle", - "type": "searchset", - "link": [ - { - "relation": "self", - "url": "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization?immunization.target=RSV&_include=Immunization%3Apatient&patient.identifier=https%3A%2F%2Ffhir.nhs.uk%2FId%2Fnhs-number%7C9000000009" - } - ], - "entry": [ - { - "fullUrl": "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization/191f288a-17f3-4cd5-a33c-a52aade6473c", - "resource": { - "resourceType": "Immunization", - "id": "191f288a-17f3-4cd5-a33c-a52aade6473c", - "extension": [ - { - "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1303503001", - "display": "Administration of RSV (respiratory syncytial virus) vaccine" - } - ] - } - } - ], - "identifier": [ - { - "use": "official", - "system": "https://supplierABC/identifiers/vacc", - "value": "e2154d29-1ead-4830-a513-0d59705078fa" - } - ], - "status": "completed", - "vaccineCode": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "42605811000001109", - "display": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - ] - }, - "patient": { - "reference": "urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac", - "type": "Patient", - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9000000009" - } - }, - "occurrenceDateTime": "2021-02-07T13:28:17.271000+00:00", - "recorded": "2021-02-07T13:28:17.271000+00:00", - "primarySource": true, - "location": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "X99999" - } - }, - "manufacturer": { - "display": "AstraZeneca Ltd" - }, - "lotNumber": "4120Z001", - "expirationDate": "2021-07-02", - "site": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "368208006", - "display": "Left upper arm structure (body structure)" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "78421000", - "display": "Intramuscular route (qualifier value)" - } - ] - }, - "doseQuantity": { - "value": 0.5, - "unit": "milliliter", - "system": "http://unitsofmeasure.org", - "code": "ml" - }, - "performer": [ - { - "actor": { - "type": "Organization", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B0C4P" - }, - "display": "UNIVERSITY HOSPITAL OF WALES" - } - } - ], - "reasonCode": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "443684005", - "display": "Disease outbreak (event)" - } - ] - } - ], - "protocolApplied": [ - { - "targetDisease": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "55735004", - "display": "Respiratory syncytial virus infection (disorder)" - } - ] - } - ], - "doseNumberPositiveInt": 1 - } - ] - }, - "search": { - "mode": "match" - } - }, - { - "fullUrl": "urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac", - "resource": { - "resourceType": "Patient", - "id": "9000000009", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9000000009" - } - ] - }, - "search": { - "mode": "include" - } - } - ], - "total": 1 - } - } - } - }, - "4XX": { - "$ref": "#/components/responses/4XX-imms" - } - } - } - }, - "/Immunization/_search": { - "post": { - "summary": "Search (POST) for a patient's immunisation records", - "operationId": "searchViaPOSTImmunization", - "description": "## Overview\nYou may use this interaction as an alternative to a search with the GET verb. A POST search allows you to supply some or all parameters in the body of the request should you need to do so. It offers the same search functionality, see Search (GET) interaction for details.\n\n## Sandbox testing\nYou can test the following scenarios in our sandbox environment:\n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n| Immunisation history found | `patient.identifier`=`https://fhir.nhs.uk/Id/nhs-number\\|9000000009` | HTTP Status 200 with immunisation data in response body |\n| Bad Request | Didn't pass Required fields `patient.identifier` or -immunization.target or _include | HTTP Status 400 Bad Request |\n", - "parameters": [ - { - "$ref": "#/components/parameters/CorrelationID" - }, - { - "$ref": "#/components/parameters/RequestID" - }, - { - "$ref": "#/components/parameters/PatientIdentifier" - }, - { - "$ref": "#/components/parameters/ImmunizationTarget" - }, - { - "$ref": "#/components/parameters/DateFrom" - }, - { - "$ref": "#/components/parameters/DateTo" - }, - { - "$ref": "#/components/parameters/Include" - } - ], - "requestBody": { - "$ref": "#/components/requestBodies/SearchImmunization" - }, - "responses": { - "200": { - "description": "Search immunisation operation successful", - "content": { - "application/fhir+json": { - "schema": { - "description": "FHIR Bundle containing the query results - a list of matching immunisations and associated patients.", - "type": "object", - "required": [ - "resourceType", - "type", - "total", - "entry" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Bundle`.", - "type": "string", - "example": "Bundle" - }, - "type": { - "description": "Indicates how the bundle is intended to be used. Always `searchset`.", - "type": "string", - "example": "searchset" - }, - "link": { - "type": "array", - "items": { - "type": "object", - "properties": { - "relation": { - "description": "A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1). Always `Self`.", - "type": "string" - }, - "url": { - "description": "A url representing the search applied by the API to generate the result which may differ from the request if unrecognised or unsupported parameters have been ignored.", - "type": "string" - } - }, - "required": [ - "relation", - "url" - ] - } - }, - "entry": { - "description": "List of matching immunisations and associated patient. If there were no matching immunisations, this is an empty list.", - "type": "array", - "items": { - "type": "object", - "required": [ - "fullUrl", - "resource", - "search" - ], - "properties": { - "fullUrl": { - "description": "URI for the Immunization or Patient resource.", - "type": "string", - "example": "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization/191f288a-17f3-4cd5-a33c-a52aade6473c" - }, - "resource": { - "description": "The Immunization or Patient resource.", - "oneOf": [ - { - "description": "A matching immunisation, formatted as a FHIR Immunization resource.", - "type": "object", - "required": [ - "resourceType", - "extension", - "identifier", - "status", - "vaccineCode", - "patient", - "occurrenceDateTime", - "recorded", - "primarySource", - "location", - "performer", - "protocolApplied" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Immunization`.", - "type": "string", - "example": "Immunization" - }, - "id": { - "description": "Immunization record Id.", - "type": "string", - "example": "191f288a-17f3-4cd5-a33c-a52aade6473c" - }, - "meta": { - "type": "object", - "properties": { - "versionId": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted." - }, - "lastUpdated": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "When the resource last changed - e.g. when the version changed.", - "example": "2017-01-01T00:00:00Z" - }, - "source": { - "type": "string", - "description": "Identifies where the resource comes from." - }, - "profile": { - "type": "array", - "items": { - "type": "string", - "pattern": "\\S*", - "description": "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)." - } - }, - "security": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure." - } - }, - "tag": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource." - } - } - } - }, - "extension": { - "description": "FHIR extension wrapper for the vaccination procedure performed. Always contains exactly one object.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "url", - "valueCodeableConcept" - ], - "properties": { - "url": { - "description": "URI for the type of extension - https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "type": "string", - "example": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure" - }, - "valueCodeableConcept": { - "description": "Wrapper for the vaccination procedure coding.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccination procedure coding.", - "type": "array", - "items": { - "type": "object", - "required": [ - "system", - "code", - "display" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "A particular code in the system.", - "type": "string", - "example": "1303503001" - }, - "display": { - "description": "Representation defined by the system.", - "type": "string", - "example": "Administration of RSV (respiratory syncytial virus) vaccine" - } - } - } - } - } - } - } - } - }, - "identifier": { - "description": "Unique identifier for this immunisation record, as generated by the source system.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "use": { - "description": "Identifier use as defined by https://www.hl7.org/fhir/valueset-identifier-use.html.", - "type": "string", - "enum": [ - "usual", - "official", - "temp", - "secondary", - "old" - ], - "example": "official" - }, - "system": { - "description": "URI of the namespace of this identifier.", - "type": "string", - "example": "https://supplierABC/identifiers/vacc" - }, - "value": { - "description": "Identifier value within `system`.", - "type": "string", - "example": "e2154d29-1ead-4830-a513-0d59705078fa" - } - } - } - }, - "status": { - "description": "Status of the immunisation event. This is *not* an indication of patient immunity, only whether the immunisation was completed or not. Currently we only return details of completed immunisations.", - "type": "string", - "enum": [ - "completed" - ], - "example": "completed" - }, - "vaccineCode": { - "description": "Vaccine product administered.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccine product details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "code", - "display" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccine product.", - "type": "string", - "example": "42605811000001109" - }, - "display": { - "description": "Description of the vaccine product.", - "type": "string", - "example": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - } - } - } - } - }, - "patient": { - "description": "The patient who was immunised.", - "type": "object", - "required": [ - "reference", - "type", - "identifier" - ], - "properties": { - "reference": { - "description": "URI for the associated Patient resource in the bundle.", - "type": "string", - "example": "urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac" - }, - "type": { - "description": "Type of resource this reference refers to. Always `Patient`.", - "type": "string", - "example": "Patient" - }, - "identifier": { - "description": "Business identifier for linked Patient. Always an NHS number.", - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "system": { - "description": "URI of coding system used to identify linked patient. Always https://fhir.nhs.uk/Id/nhs-number", - "type": "string", - "example": "https://fhir.nhs.uk/Id/nhs-number" - }, - "value": { - "description": "Value in coding system representing linked patient.", - "type": "string", - "example": "9000000009" - } - } - } - } - }, - "occurrenceDateTime": { - "description": "Date and time of immunisation.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "recorded": { - "description": "The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "primarySource": { - "description": "An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded.", - "type": "boolean", - "example": true - }, - "location": { - "type": "object", - "description": "The service delivery location where the vaccine administration occurred.", - "properties": { - "identifier": { - "type": "object", - "description": "An identifier for the service delivery location.", - "properties": { - "system": { - "description": "The system which defines the location. Typically this will be https://fhir.nhs.uk/Id/ods-organization-code for a health setting or https://fhir.hl7.org.uk/Id/urn-school-number for an education setting.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/ods-organization-code" - }, - "value": { - "description": "A code from the system to represent the location. An ODS code of X99999 represents a location where a code is not available.", - "type": "string", - "example": "X99999" - } - }, - "required": [ - "system", - "value" - ] - } - }, - "required": [ - "identifier" - ] - }, - "manufacturer": { - "description": "Vaccine manufacturer details.", - "type": "object", - "properties": { - "display": { - "description": "Decsription of the vaccine manufacturer.", - "type": "string", - "example": "AstraZeneca Ltd" - } - } - }, - "lotNumber": { - "description": "Lot number of the vaccine product.", - "type": "string", - "example": "4120Z001" - }, - "expirationDate": { - "description": "Date vaccine batch expires.", - "type": "string", - "example": "2021-04-29" - }, - "site": { - "description": "Body site where vaccine was administered.", - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the vaccination body site details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination body site.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination body site.", - "type": "string", - "example": "368208006" - }, - "display": { - "description": "Description of the vaccination body site.", - "type": "string", - "example": "Left upper arm structure (body structure)" - } - } - } - } - }, - "required": [ - "coding" - ] - }, - "route": { - "description": "The path by which the vaccine product is taken into the body.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccination route details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination route.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination route.", - "type": "string", - "example": "78421000" - }, - "display": { - "description": "Description of the vaccination route.", - "type": "string", - "example": "Intramuscular route (qualifier value)" - } - } - } - } - } - }, - "doseQuantity": { - "description": "The quantity of vaccine product that was administered.", - "type": "object", - "required": [], - "properties": { - "value": { - "description": "Number of units administered.", - "type": "number", - "example": 1 - }, - "unit": { - "description": "Description of unit.", - "type": "string", - "example": "milliliter" - }, - "system": { - "description": "System that defines coded unit form.", - "type": "string", - "example": "http://unitsofmeasure.org" - }, - "code": { - "description": "Code describing the unit.", - "type": "string", - "example": "ml" - } - } - }, - "performer": { - "description": "Details of the organisation that performed the immunisation.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "actor" - ], - "properties": { - "actor": { - "description": "Organisation that performed the immunisation.", - "type": "object", - "required": [ - "type", - "identifier" - ], - "properties": { - "type": { - "description": "Type of actor. Always `Organisation`.", - "type": "string", - "example": "Organisation" - }, - "identifier": { - "description": "Organisation identifier.", - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "system": { - "description": "Coding system used for the organisation identifier. Always `https://fhir.nhs.uk/Id/ods-organization-code`.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/ods-organization-code" - }, - "value": { - "description": "Organisation's ODS code.", - "type": "string", - "example": "B0C4P" - } - } - }, - "display": { - "description": "Organisation that performed the immunisation.", - "type": "string", - "example": "UNIVERSITY HOSPITAL OF WALES" - } - } - } - } - } - }, - "reasonCode": { - "description": "Reasons why the vaccine was administered.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the reason code details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "code", - "display" - ], - "properties": { - "system": { - "description": "Coding system used to describe the reason for administration of vaccine.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccination reason.", - "type": "string", - "example": "443684005" - }, - "display": { - "description": "Description of the vaccination reason.", - "type": "string", - "example": "Disease outbreak (event)" - } - } - } - } - } - } - }, - "protocolApplied": { - "description": "The protocol (set of recommendations) being followed by the provider who administered the dose.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "targetDisease" - ], - "properties": { - "targetDisease": { - "type": "array", - "description": "The vaccine preventable disease the dose is being administered against.", - "items": { - "type": "object", - "properties": { - "coding": { - "type": "array", - "description": "A reference to a code defined by a terminology system.", - "items": { - "type": "object", - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string" - }, - "code": { - "description": "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system", - "type": "string" - }, - "display": { - "description": "A representation of the meaning of the code in the system, following the rules of the system.", - "type": "string" - } - }, - "required": [ - "system", - "code", - "display" - ] - } - } - }, - "required": [ - "coding" - ] - } - }, - "doseNumber[X]": { - "type": "object", - "description": "Dose number within series. Can be an integer or string. Kindly, refer below elements", - "properties": { - "doseNumberPositiveInt": { - "description": "Dose number within a series of doses.", - "type": "integer", - "example": 1 - }, - "doseNumberString": { - "description": "A string should only be used in cases where an integer is not available.", - "type": "string" - } - }, - "required": [ - "doseNumberPositiveInt" - ] - } - } - } - } - } - }, - { - "description": "Demographic information about the patient receiving an immunisation.", - "type": "object", - "required": [ - "resourceType", - "id" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Patient`.", - "type": "string", - "example": "Patient" - }, - "id": { - "description": "Patient ID (NHS Number)", - "type": "string", - "example": "9000000009" - }, - "identifier": { - "description": "Unique identifier for this patient. Always an NHS number.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "system": { - "description": "Coding system used to identify patients.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/nhs-number" - }, - "value": { - "description": "Code identifying the patient.", - "type": "string", - "example": "9000000009" - } - } - } - } - } - } - ] - }, - "search": { - "description": "Search-related information for the Immunization.", - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "description": "Indicates why this resource is in the result set. For Immunization resources this is always `match`.", - "enum": [ - "match", - "include" - ] - } - } - } - } - } - }, - "total": { - "description": "Number of matching immunisations found.", - "type": "integer", - "example": 2 - } - } - }, - "example": { - "resourceType": "Bundle", - "type": "searchset", - "link": [ - { - "relation": "self", - "url": "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization?immunization.target=RSV&_include=Immunization%3Apatient&patient.identifier=https%3A%2F%2Ffhir.nhs.uk%2FId%2Fnhs-number%7C9000000009" - } - ], - "entry": [ - { - "fullUrl": "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization/191f288a-17f3-4cd5-a33c-a52aade6473c", - "resource": { - "resourceType": "Immunization", - "id": "191f288a-17f3-4cd5-a33c-a52aade6473c", - "extension": [ - { - "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1303503001", - "display": "Administration of RSV (respiratory syncytial virus) vaccine" - } - ] - } - } - ], - "identifier": [ - { - "use": "official", - "system": "https://supplierABC/identifiers/vacc", - "value": "e2154d29-1ead-4830-a513-0d59705078fa" - } - ], - "status": "completed", - "vaccineCode": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "42605811000001109", - "display": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - ] - }, - "patient": { - "reference": "urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac", - "type": "Patient", - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9000000009" - } - }, - "occurrenceDateTime": "2021-02-07T13:28:17.271000+00:00", - "recorded": "2021-02-07T13:28:17.271000+00:00", - "primarySource": true, - "location": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "X99999" - } - }, - "manufacturer": { - "display": "AstraZeneca Ltd" - }, - "lotNumber": "4120Z001", - "expirationDate": "2021-07-02", - "site": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "368208006", - "display": "Left upper arm structure (body structure)" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "78421000", - "display": "Intramuscular route (qualifier value)" - } - ] - }, - "doseQuantity": { - "value": 0.5, - "unit": "milliliter", - "system": "http://unitsofmeasure.org", - "code": "ml" - }, - "performer": [ - { - "actor": { - "type": "Organization", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B0C4P" - }, - "display": "UNIVERSITY HOSPITAL OF WALES" - } - } - ], - "reasonCode": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "443684005", - "display": "Disease outbreak (event)" - } - ] - } - ], - "protocolApplied": [ - { - "targetDisease": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "55735004", - "display": "Respiratory syncytial virus infection (disorder)" - } - ] - } - ], - "doseNumberPositiveInt": 1 - } - ] - }, - "search": { - "mode": "match" - } - }, - { - "fullUrl": "urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac", - "resource": { - "resourceType": "Patient", - "id": "9000000009", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9000000009" - } - ] - }, - "search": { - "mode": "include" - } - } - ], - "total": 1 - } - } - } - }, - "4XX": { - "$ref": "#/components/responses/4XX-imms" - } - } - } - }, - "/Immunization/{id}": { - "get": { - "summary": "Retrieve a record of an immunisation by its unique identifier", - "operationId": "readImmunization", - "description": "## Overview\nThis interaction allows you to retrieve the record of a single vaccination by our assigned id. We will return the full immunization resource as submitted. \nThe response will include an eTag for the version of the record which has been returned. If you intend to update a record, it is recommended that you use this interaction to obtain the latest version (and eTag for the version). \nTo retrieve a full vaccination history for a patient, see the search interaction. \nYou must be authorised for the read interaction and the disease type associated with the vaccination event in order to access the record. \n\n## Sandbox testing\nYou can test the following scenarios in our sandbox environment:\n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n| Immunisation record found | `id`=`12a33650-6f94-4e8f-a971-1c5c41da5b22` | HTTP Status 200 with immunisation data in response body |\n| Bad Request | Didn't pass Required fields `id` | HTTP Status 400 Bad Request |\n", - "parameters": [ - { - "$ref": "#/components/parameters/CorrelationID" - }, - { - "$ref": "#/components/parameters/RequestID" - }, - { - "$ref": "#/components/parameters/Id" - } - ], - "responses": { - "200": { - "description": "Read Immunization operation successful", - "headers": { - "CorrelationID": { - "$ref": "#/components/parameters/CorrelationID" - }, - "RequestID": { - "$ref": "#/components/parameters/RequestID" - }, - "E-Tag": { - "$ref": "#/components/parameters/E-Tag" - } - }, - "content": { - "application/fhir+json": { - "schema": { - "description": "A matching immunisation, formatted as a FHIR Immunization resource.", - "type": "object", - "required": [ - "resourceType", - "contained", - "extension", - "identifier", - "status", - "vaccineCode", - "patient", - "occurrenceDateTime", - "recorded", - "primarySource", - "location", - "performer", - "protocolApplied" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Immunization`.", - "type": "string", - "example": "Immunization" - }, - "id": { - "description": "Immunization record Id.", - "type": "string", - "example": "12a33650-6f94-4e8f-a971-1c5c41da5b22" - }, - "meta": { - "type": "object", - "properties": { - "versionId": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted." - }, - "lastUpdated": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "When the resource last changed - e.g. when the version changed.", - "example": "2017-01-01T00:00:00Z" - }, - "source": { - "type": "string", - "description": "A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc." - }, - "profile": { - "type": "array", - "items": { - "type": "string", - "pattern": "\\S*", - "description": "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)." - } - }, - "security": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure." - } - }, - "tag": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource." - } - } - } - }, - "contained": { - "type": "array", - "description": "The schema for Practitioner & Patient are different. In response both Practitioner & Patient objects will be returned.", - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "FHIR resource type. Always `Practitioner`.", - "example": "Practitioner" - }, - "id": { - "type": "string", - "description": "Logical id of this artifact" - }, - "name": { - "type": "array", - "description": "The name(s) associated with the practitioner", - "items": { - "type": "object", - "properties": { - "family": { - "type": "string", - "description": "Family name (often called 'Surname')" - }, - "given": { - "type": "array", - "description": "Given names (not always 'first').", - "items": { - "type": "string" - } - } - }, - "required": [ - "family", - "given" - ] - } - } - }, - "required": [ - "resourceType", - "id" - ] - }, - { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "FHIR resource type. Always `Patient`.", - "example": "Patient" - }, - "id": { - "type": "string", - "description": "Logical id of this artifact", - "example": "#Pat1" - }, - "identifier": { - "type": "array", - "description": "An identifier for the patient", - "items": { - "type": "object", - "properties": { - "system": { - "type": "string", - "description": "The namespace for the identifier value" - }, - "value": { - "type": "string", - "description": "The value that is unique" - } - }, - "required": [ - "system", - "value" - ] - } - }, - "name": { - "type": "array", - "description": "A name associated with the patient", - "items": { - "type": "object", - "properties": { - "family": { - "type": "string", - "description": "Family name (often called 'Surname')" - }, - "given": { - "type": "array", - "description": "Given names (not always 'first').", - "items": { - "type": "string" - } - } - }, - "required": [ - "family", - "given" - ] - } - }, - "gender": { - "type": "string", - "description": "male | female | other | unknown" - }, - "birthDate": { - "type": "string", - "description": "The date of birth for the individual" - }, - "address": { - "type": "array", - "description": "An address for the individual", - "items": { - "type": "object", - "properties": { - "postalCode": { - "type": "string", - "description": "Postal code for area" - } - }, - "required": [ - "postalCode" - ] - } - } - }, - "required": [ - "resourceType", - "id", - "identifier", - "name", - "gender", - "address" - ] - } - ] - } - }, - "extension": { - "description": "FHIR extension wrapper for the vaccination procedure performed. Always contains exactly one object.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "url", - "valueCodeableConcept" - ], - "properties": { - "url": { - "description": "URI for the type of extension - https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "type": "string", - "example": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure" - }, - "valueCodeableConcept": { - "description": "Wrapper for the vaccination procedure coding.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccination procedure coding.", - "type": "array", - "items": { - "type": "object", - "required": [ - "system", - "code", - "display" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "A particular code in the system.", - "type": "string", - "example": "1303503001" - }, - "display": { - "description": "Representation defined by the system.", - "type": "string", - "example": "Administration of RSV (respiratory syncytial virus) vaccine" - } - } - } - } - } - } - } - } - }, - "identifier": { - "description": "Unique identifier for this immunisation record, as generated by the source system.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "use": { - "description": "Identifier use as defined by https://www.hl7.org/fhir/valueset-identifier-use.html.", - "type": "string", - "enum": [ - "usual", - "official", - "temp", - "secondary", - "old" - ], - "example": "official" - }, - "system": { - "description": "URI of the namespace of this identifier.", - "type": "string", - "example": "https://supplierABC/identifiers/vacc" - }, - "value": { - "description": "Identifier value within `system`.", - "type": "string", - "example": "e2154d29-1ead-4830-a513-0d59705078fa" - } - } - } - }, - "status": { - "description": "Status of the immunisation event. This is *not* an indication of patient immunity, only whether the immunisation was completed or not. Currently we only return details of completed immunisations.", - "type": "string", - "enum": [ - "completed" - ], - "example": "completed" - }, - "vaccineCode": { - "description": "Vaccine product administered.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccine product details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "code", - "display" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccine product.", - "type": "string", - "example": "42605811000001109" - }, - "display": { - "description": "Description of the vaccine product.", - "type": "string", - "example": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - } - } - } - } - }, - "patient": { - "description": "The patient who was immunised.", - "type": "object", - "required": [ - "reference" - ], - "properties": { - "reference": { - "description": "Reference of patient from contained section", - "type": "string", - "example": "#Pat1" - } - } - }, - "occurrenceDateTime": { - "description": "Date and time of immunisation.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "recorded": { - "description": "The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "primarySource": { - "description": "An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded.", - "type": "boolean", - "example": true - }, - "location": { - "type": "object", - "description": "The service delivery location where the vaccine administration occurred.", - "properties": { - "identifier": { - "type": "object", - "description": "An identifier for the service delivery location.", - "properties": { - "system": { - "description": "The system which defines the location. Typically this will be https://fhir.nhs.uk/Id/ods-organization-code for a health setting or https://fhir.hl7.org.uk/Id/urn-school-number for an education setting.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/ods-organization-code" - }, - "value": { - "description": "A code from the system to represent the location. An ODS code of X99999 represents a location where a code is not available.", - "type": "string", - "example": "X99999" - } - }, - "required": [ - "system", - "value" - ] - } - }, - "required": [ - "identifier" - ] - }, - "manufacturer": { - "description": "Vaccine manufacturer details.", - "type": "object", - "properties": { - "display": { - "description": "Decsription of the vaccine manufacturer.", - "type": "string", - "example": "AstraZeneca Ltd" - } - } - }, - "lotNumber": { - "description": "Lot number of the vaccine product.", - "type": "string", - "example": "4120Z001" - }, - "expirationDate": { - "description": "Date vaccine batch expires.", - "type": "string", - "example": "2021-04-29" - }, - "site": { - "description": "Body site where vaccine was administered.", - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the vaccination body site details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination body site.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination body site.", - "type": "string", - "example": "368208006" - }, - "display": { - "description": "Description of the vaccination body site.", - "type": "string", - "example": "Left upper arm structure (body structure)" - } - } - } - } - }, - "required": [ - "coding" - ] - }, - "route": { - "description": "The path by which the vaccine product is taken into the body.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccination route details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination route.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination route.", - "type": "string", - "example": "78421000" - }, - "display": { - "description": "Description of the vaccination route.", - "type": "string", - "example": "Intramuscular route (qualifier value)" - } - } - } - } - } - }, - "doseQuantity": { - "description": "The quantity of vaccine product that was administered.", - "type": "object", - "required": [], - "properties": { - "value": { - "description": "Number of units administered.", - "type": "number", - "example": 1 - }, - "unit": { - "description": "Description of unit.", - "type": "string", - "example": "milliliter" - }, - "system": { - "description": "System that defines coded unit form.", - "type": "string", - "example": "http://unitsofmeasure.org" - }, - "code": { - "description": "Code describing the unit.", - "type": "string", - "example": "ml" - } - } - }, - "performer": { - "description": "Details of the organisation that performed the immunisation.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "actor" - ], - "properties": { - "actor": { - "description": "Organisation that performed the immunisation.", - "type": "object", - "required": [ - "type", - "identifier" - ], - "properties": { - "type": { - "description": "Type of actor. Always `Organisation`.", - "type": "string", - "example": "Organisation" - }, - "identifier": { - "description": "Organisation identifier.", - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "system": { - "description": "Coding system used for the organisation identifier. Always `https://fhir.nhs.uk/Id/ods-organization-code`.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/ods-organization-code" - }, - "value": { - "description": "Organisation's ODS code.", - "type": "string", - "example": "B0C4P" - } - } - }, - "display": { - "description": "Organisation that performed the immunisation.", - "type": "string", - "example": "UNIVERSITY HOSPITAL OF WALES" - } - } - } - } - } - }, - "reasonCode": { - "description": "Reasons why the vaccine was administered.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the reason code details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "code", - "display" - ], - "properties": { - "system": { - "description": "Coding system used to describe the reason for administration of vaccine.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccination reason.", - "type": "string", - "example": "443684005" - }, - "display": { - "description": "Description of the vaccination reason.", - "type": "string", - "example": "Disease outbreak (event)" - } - } - } - } - } - } - }, - "protocolApplied": { - "description": "The protocol (set of recommendations) being followed by the provider who administered the dose.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "targetDisease" - ], - "properties": { - "targetDisease": { - "type": "array", - "description": "The vaccine preventable disease the dose is being administered against.", - "items": { - "type": "object", - "properties": { - "coding": { - "type": "array", - "description": "A reference to a code defined by a terminology system.", - "items": { - "type": "object", - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string" - }, - "code": { - "description": "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system", - "type": "string" - }, - "display": { - "description": "A representation of the meaning of the code in the system, following the rules of the system.", - "type": "string" - } - }, - "required": [ - "system", - "code", - "display" - ] - } - } - }, - "required": [ - "coding" - ] - } - }, - "doseNumber[X]": { - "type": "object", - "description": "Dose number within series. Can be an integer or string. Kindly, refer below elements", - "properties": { - "doseNumberPositiveInt": { - "description": "Dose number within a series of doses.", - "type": "integer", - "example": 1 - }, - "doseNumberString": { - "description": "A string should only be used in cases where an integer is not available.", - "type": "string" - } - }, - "required": [ - "doseNumberPositiveInt" - ] - } - } - } - } - } - }, - "example": { - "resourceType": "Immunization", - "id": "12a33650-6f94-4e8f-a971-1c5c41da5b22", - "contained": [ - { - "resourceType": "Practitioner", - "id": "Pract1", - "name": [ - { - "family": "Owl", - "given": [ - "Barney" - ] - } - ] - }, - { - "resourceType": "Patient", - "id": "Pat1", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449310475" - } - ], - "name": [ - { - "family": "Owler", - "given": [ - "Ozzie" - ] - } - ], - "gender": "unknown", - "birthDate": "1965-02-28", - "address": [ - { - "postalCode": "EC1A 1BB" - } - ] - } - ], - "extension": [ - { - "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1303503001", - "display": "Administration of RSV (respiratory syncytial virus) vaccine" - } - ] - } - } - ], - "identifier": [ - { - "use": "official", - "system": "https://supplierABC/identifiers/vacc", - "value": "e2154d29-1ead-4830-a513-0d59705078fa" - } - ], - "status": "completed", - "vaccineCode": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "42605811000001109", - "display": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - ] - }, - "patient": { - "reference": "#Pat1" - }, - "occurrenceDateTime": "2021-02-07T13:28:17.271000+00:00", - "recorded": "2021-02-07T13:28:17.271000+00:00", - "primarySource": true, - "location": { - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "X99999" - } - }, - "manufacturer": { - "display": "AstraZeneca Ltd" - }, - "lotNumber": "4120Z001", - "expirationDate": "2021-07-02", - "site": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "368208006", - "display": "Left upper arm structure (body structure)" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "78421000", - "display": "Intramuscular route (qualifier value)" - } - ] - }, - "doseQuantity": { - "value": 0.5, - "unit": "milliliter", - "system": "http://unitsofmeasure.org", - "code": "ml" - }, - "performer": [ - { - "actor": { - "reference": "#Pract1" - } - }, - { - "actor": { - "type": "Organization", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B0C4P" - } - } - } - ], - "reasonCode": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "443684005" - } - ] - } - ], - "protocolApplied": [ - { - "targetDisease": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "55735004", - "display": "Respiratory syncytial virus infection (disorder)" - } - ] - } - ], - "doseNumberPositiveInt": 1 - } - ] - } - } - } - }, - "4XX": { - "$ref": "#/components/responses/4XX-imms", - "example": { - "resourceType": "OperationOutcome", - "id": "3d64df5a-b753-49ec-b3df-f45c157941eb", - "issue": [ - { - "severity": "error", - "code": "invalid", - "details": { - "coding": [ - { - "system": "https://fhir.nhs.uk/Codesystem/http-error-codes", - "code": "INVALID" - } - ] - }, - "diagnostics": "The provided event ID is either missing or not in the expected format." - } - ] - } - } - } - }, - "put": { - "summary": "Update a record of vaccination", - "operationId": "updateImmunization", - "description": "## Overview\nThis record allows you to add a new updated record of a vaccination event. Update replaces the full immunization resource, so you must provide all data fields, not just the change (Patch is not currently supported). You may obtain all the current data for the vaccination event using the read interaction, which will also return an eTag for the version. \nYou may use update to re-instate a deleted record, but our update interaction does not support creating a new vaccination event where one does not currently exist. \nYou must not change the identifier when updating a vaccination event. The identifier is used as a primary identifier by downstream systems. \nYou must be authorised for update interaction and the disease type associated with the vaccination event in order to update the record. \n\n## Sandbox testing \n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n| Update a vaccination event | valid request as per schema | HTTP Status 200 |\n| Bad Request(missing/invalid required element in request body) | Didn't pass `E-Tag` in request header | HTTP Status 400 Bad Request |\n", - "parameters": [ - { - "$ref": "#/components/parameters/CorrelationID" - }, - { - "$ref": "#/components/parameters/RequestID" - }, - { - "$ref": "#/components/parameters/Id" - }, - { - "$ref": "#/components/parameters/E-Tag" - } - ], - "requestBody": { - "content": { - "application/fhir+json": { - "schema": { - "description": "A FHIR Immunization resource.", - "type": "object", - "required": [ - "resourceType", - "id", - "contained", - "extension", - "identifier", - "status", - "vaccineCode", - "patient", - "occurrenceDateTime", - "recorded", - "primarySource", - "location", - "performer", - "protocolApplied" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Immunization`.", - "type": "string", - "example": "Immunization" - }, - "id": { - "description": "Immunization record Id.", - "type": "string", - "example": "12a33650-6f94-4e8f-a971-1c5c41da5b22" - }, - "meta": { - "type": "object", - "properties": { - "versionId": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted." - }, - "lastUpdated": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "When the resource last changed - e.g. when the version changed.", - "example": "2017-01-01T00:00:00Z" - }, - "source": { - "type": "string", - "description": "A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc." - }, - "profile": { - "type": "array", - "items": { - "type": "string", - "pattern": "\\S*", - "description": "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)." - } - }, - "security": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure." - } - }, - "tag": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource." - } - } - } - }, - "contained": { - "type": "array", - "description": "Includes any relevant resources as defined within this specification and referenced from within the resource. A patient resource SHALL be included. \nThe schema for Practitioner & Patient are different.", - "minItems": 1, - "items": { - "oneOf": [ - { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "FHIR resource type. Always `Practitioner`.", - "example": "Practitioner" - }, - "id": { - "type": "string", - "description": "Logical id of this artifact" - }, - "name": { - "type": "array", - "description": "The name(s) associated with the practitioner", - "items": { - "type": "object", - "properties": { - "family": { - "type": "string", - "description": "Family name (often called 'Surname')" - }, - "given": { - "type": "array", - "description": "Given names (not always 'first').", - "items": { - "type": "string" - } - } - } - } - } - }, - "required": [ - "resourceType", - "id" - ] - }, - { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "FHIR resource type. Always `Patient`.", - "example": "Patient" - }, - "id": { - "type": "string", - "description": "Logical id of this artifact", - "example": "#Pat1" - }, - "identifier": { - "type": "array", - "description": "An identifier for the patient", - "items": { - "type": "object", - "properties": { - "system": { - "type": "string", - "description": "The namespace for the identifier value" - }, - "value": { - "type": "string", - "description": "The value that is unique" - } - }, - "required": [ - "system", - "value" - ] - } - }, - "name": { - "type": "array", - "description": "Patient name as registered on PDS or as recorded by the user where the record cannot be traced on PDS. \nThere SHOULD be only one instance of name. If more than one name instance is provided additional elements SHOULD be populated only so the current, official name can be determined or otherwise the current, official name SHALL be the first name instance. There SHALL be at least one name instance with both family and given elements populated.", - "items": { - "type": "object", - "properties": { - "family": { - "type": "string", - "description": "Family name (often called 'Surname')" - }, - "given": { - "type": "array", - "description": "Patient Forename. Middle names are not to be included within this field. \nThere SHOULD only be one given name supplied in this element.", - "items": { - "type": "string" - } - } - }, - "required": [ - "family", - "given" - ] - } - }, - "gender": { - "type": "string", - "description": "male | female | other | unknown" - }, - "birthDate": { - "type": "string", - "description": "The date of birth for the individual" - }, - "address": { - "type": "array", - "description": "There SHOULD be only one instance of address with only the postalCode element populated. If more than one address instance is provided the additional elements SHOULD be populated only so the current, home post code can be determined or otherwise the current, home post code SHALL be the first address instance.", - "items": { - "type": "object", - "properties": { - "postalCode": { - "type": "string", - "description": "Patient residential/home postcode. Value should be divided into two parts separated by a single space, e.g. EC1A 1BB \nAs well as actual post codes, the following SHOULD be used in other scenarios. \n *ZZ99 3VZ No Fixed Abode \n *ZZ99 3WZ Address Not Known \n *ZZ99 3CZ (England/UK) Address not otherwise specified \nThe full list is available here: https://www.england.nhs.uk/wp-content/uploads/2020/04/cam-2021-guidance-v2.1.pdf" - } - }, - "required": [ - "postalCode" - ] - } - } - }, - "required": [ - "resourceType", - "id", - "identifier", - "name", - "gender", - "birthDate", - "address" - ] - } - ] - } - }, - "extension": { - "description": "FHIR extension wrapper for the vaccination procedure performed. Always contains exactly one object.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "url", - "valueCodeableConcept" - ], - "properties": { - "url": { - "description": "URI for the type of extension - https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "type": "string", - "example": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure" - }, - "valueCodeableConcept": { - "description": "This SHALL be populated with the appropriate SNOMED CT code (identified by system=http://snomed.info/sct). \nThis relates to the vaccine that was administered, typically in the form of a procedure code. The UK Core IG provides guidance on codes for this extension, but the provider SHALL ensure the appropriate code and term is provided. \nAdditional coding MAY be included provided it is semantically equivalent to the SNOMED concept.", - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "description": "Wrapper for the vaccination procedure coding.", - "type": "array", - "items": { - "type": "object", - "required": [ - "system", - "code" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "A particular code in the system.", - "type": "string", - "example": "1303503001" - }, - "display": { - "description": "Representation defined by the system.", - "type": "string", - "example": "Administration of RSV (respiratory syncytial virus) vaccine" - } - } - } - }, - "text": { - "description": "Plain text representation of the concept.", - "type": "string" - } - } - } - } - } - }, - "identifier": { - "description": "A unique identifier assigned to this immunization record. Only one identifier SHALL be provided.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "use": { - "description": "Identifier use as defined by https://www.hl7.org/fhir/valueset-identifier-use.html.", - "type": "string", - "enum": [ - "usual", - "official", - "temp", - "secondary", - "old" - ], - "example": "official" - }, - "system": { - "description": "A URI for the system that has allocated the vaccination identifier.", - "type": "string", - "example": "https://supplierABC/identifiers/vacc `or` https://supplierABC/ODSCode_NKO41/identifiers/vacc" - }, - "value": { - "description": "A unique identifier value within `system`. Ideally this would be a GUID / UUID. \nThe value in combination with the system SHALL be globally unique.", - "type": "string", - "example": "e2154d29-1ead-4830-a513-0d59705078fa" - } - } - } - }, - "status": { - "description": "Indicates the status of the immunization event. \nOnly administered vaccination records SHALL be supported: status = completed.", - "type": "string", - "enum": [ - "completed" - ], - "example": "completed" - }, - "vaccineCode": { - "description": "Vaccine product administered. \nWhere the vaccine product is known, the dm+d / SNOMED CT concept for the AMP form SHOULD be provided. \nWhere a meaningful vaccine code cannot be provided, use one of the following NullFlavor codes, \n NAVU - `Not available` \n UNC - `Unencoded` \n UNK - `Unknown` \n NA - `Not Applicable` \nFrom http://terminology.hl7.org/CodeSystem/v3-NullFlavor", - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the vaccine product details.", - "type": "array", - "items": { - "type": "object", - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccine product.", - "type": "string", - "example": "42605811000001109" - }, - "display": { - "description": "Description of the vaccine product.", - "type": "string", - "example": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - } - } - } - } - }, - "patient": { - "description": "The patient who received the immunization. \nWhen providing records of a vaccination event (create / update) and reading a record by its ID, this SHALL be a reference to a contained patient resource.", - "type": "object", - "required": [ - "reference" - ], - "properties": { - "reference": { - "description": "Reference of patient from contained section", - "type": "string", - "example": "#Pat1" - } - } - }, - "occurrenceDateTime": { - "description": "A dateTime format SHALL be provided. It SHOULD be to the level of precision as recorded within the source system, subject to the FHIR rules for dateTime. \nOnly positive timezone offsets of '+00:00' (GMT) and '+01:00' (BST) are allowed. Where time zone information is required but is not available in the source system the time zone element can be a hardcoded static value of `+00:00`.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "recorded": { - "description": "The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.", - "type": "string", - "example": "2021-02-07T13:28:17.271000+00:00" - }, - "primarySource": { - "description": "Set as `TRUE` when the content of the record is based on information from the person performing the vaccine or who has clinical responsibility for the vaccination, and the system can be considered a primary source of the vaccination event. \nSet as `FALSE` when the content of the record is NOT based on information from the person performing the vaccine or who has clinical responsibility for the vaccination and the system should not be treated as a primary source for this record.", - "type": "boolean", - "example": true - }, - "location": { - "type": "object", - "description": "The service delivery location where the vaccine administration occurred.", - "properties": { - "identifier": { - "type": "object", - "description": "An identifier for the service delivery location.", - "properties": { - "system": { - "description": "The system which defines the location. Typically this will be https://fhir.nhs.uk/Id/ods-organization-code for a health setting (ODS use) or https://fhir.hl7.org.uk/Id/urn-school-number for an education setting (URN use). ", - "type": "string", - "example": "urn:iso:std:iso:3166" - }, - "value": { - "description": "The ODS or URN code of the location where the vaccination was administered. \n1. For occupational health vaccinations administered in a hospital trust by an independent healthcare provider, this SHALL be the ODS code of the hospital trust. \n2. For school vaccinations administered by a School Aged Immunisation Service provider, this SHALL be the URN of the school where the vaccination was administered. \n3. For roving teams on care home visits, this SHALL be the ODS code of the care home, where known. \n4. For any other vaccinations, populate with the same code as provided for `performer` ODS code. \n\nWhere the ODS/URN code is unavailable, a default value of `X99999` MUST be used.", - "type": "string", - "example": "GB" - } - }, - "required": [ - "system", - "value" - ] - } - } - }, - "manufacturer": { - "description": "Manufacturer of vaccine product. This `SHOULD be populated` where the data is available.", - "type": "object", - "properties": { - "display": { - "description": "The free text name of the vaccine manufacturer. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "AstraZeneca Ltd" - } - } - }, - "lotNumber": { - "description": "Vaccine batch number. This should be captured at source ideally via use of automated scanning technology (GS1 GTIN / NTIN standard). \nThis `SHOULD be populated` where the data is available.", - "type": "string", - "example": "4120Z001" - }, - "expirationDate": { - "description": "Manufacturer expiry date or defrost expiry date of the vaccine, whichever is earliest. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "2021-04-29" - }, - "site": { - "description": "Body site where vaccine was administered. This `SHOULD be populated` where the data is available. \nA SNOMED-CT Concept ID value from UK published reference set Vaccine body site of administration simple reference set (1127941000000100) should be used.", - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the vaccination body site details.", - "type": "array", - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination body site.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination body site.", - "type": "string", - "example": "368208006" - }, - "display": { - "description": "Description of the vaccination body site.", - "type": "string", - "example": "Left upper arm structure (body structure)" - } - } - } - } - } - }, - "route": { - "description": "The path by which the vaccine product is taken into the body. This `SHOULD be populated` where the data is available. \nA SNOMED-CT concept ID value from UK “ePrescribing route of administration simple reference set (foundation metadata concept)” (999000051000001100) should be used.", - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the vaccination route details.", - "type": "array", - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe vaccination route.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "Code for the vaccination route.", - "type": "string", - "example": "78421000" - }, - "display": { - "description": "Description of the vaccination route.", - "type": "string", - "example": "Intramuscular route (qualifier value)" - } - } - } - } - } - }, - "doseQuantity": { - "description": "The quantity of vaccine product that was administered. This `SHOULD be populated` where the data is available. \nA SNOMED-CT Concept ID value representing the unit of measure used SHOULD be provided.", - "type": "object", - "required": [], - "properties": { - "value": { - "description": "The actual value of the dose amount administered. This `SHOULD be populated` where the data is available. \nFor Example, \nComirnaty ® (Pfizer BioNTech): \n Full Dose (Primary Course or booster) = 0.3 \n Fractional Dose (Primary Course) = 0.1", - "type": "number", - "example": 1 - }, - "unit": { - "description": "A human-readable form of the unit. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "milliliter" - }, - "system": { - "description": "The code system from which the provided code is taken. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "http://unitsofmeasure.org" - }, - "code": { - "description": "The code for the unit of measure. SNOMED coded dose units are preferred. This `SHOULD be populated` where the data is available.", - "type": "string", - "example": "ml" - } - } - }, - "performer": { - "description": "Details of the organisation that performed the immunisation event. \nThis covers: \n The Commissioned Healthcare Provider who has administered the vaccination \n The professional performing the vaccination \nAt least one performer entry SHALL be provided which includes an actor with an identifier system and value.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "required": [ - "actor" - ], - "properties": { - "actor": { - "description": "When the actor represents the managing organisation for the vaccination this SHALL be populated with `Organization`", - "type": "object", - "properties": { - "type": { - "description": "The type of actor reference provided. This SHALL be populated with `Organization`.", - "type": "string", - "example": "Organisation" - }, - "identifier": { - "description": "When the actor represents the managing organisation for the vaccination this SHALL be populated and the guidance for sub-elements applied.", - "type": "object", - "required": [ - "system", - "value" - ], - "properties": { - "system": { - "description": "This SHALL be the system from which the supplied code is taken. The code SHOULD be an ODS code which comes from `https://fhir.nhs.uk/Id/ods-organization-code`.", - "type": "string", - "example": "https://fhir.nhs.uk/Id/ods-organization-code" - }, - "value": { - "description": "The ODS code for the Commissioned Healthcare Provider, \n For roving teams on home visits or care home visits, use the ODS code of the responsible site e.g. GP Practice or dedicated vaccination site \n For school vaccinations, use the ODS of code of the School Aged Immunisation Service provider, rather than the URN of the school \nURN codes must not be provided for this data item.", - "type": "string", - "example": "B0C4P" - } - } - }, - "reference": { - "description": "Where practitioner details are being provided, this SHOULD be a reference to a contained practitioner resource. If the actor is the managing organisation, this SHOULD be absent.", - "type": "string", - "example": "#Pract1" - } - } - } - } - } - }, - "reasonCode": { - "description": "A SNOMED-CT Concept representing the clinical indication or reason for administering or recording an historical vaccination. \nThe primary reason for the vaccination SHOULD be either the only reason submitted or the first SNOMED CT coded reason. \nThis `SHOULD be populated` where the data is available.", - "type": "array", - "items": { - "type": "object", - "properties": { - "coding": { - "description": "Wrapper for the reason code details.", - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "system": { - "description": "Coding system used to describe the reason for administration of vaccine.", - "type": "string", - "example": "http://snomed.info/sct" - }, - "code": { - "description": "SNOMED code for the vaccination reason.", - "type": "string", - "example": "443684005" - }, - "display": { - "description": "Description of the vaccination reason.", - "type": "string", - "example": "Disease outbreak (event)" - } - } - } - } - } - } - }, - "protocolApplied": { - "description": "The protocol (set of recommendations) being followed by the provider who administered the dose.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "targetDisease", - "doseNumber[X]" - ], - "properties": { - "targetDisease": { - "type": "array", - "description": "The vaccine preventable disease the dose is being administered against. \nThis SHALL be populated with the appropriate SNOMED CT concept. A code list will be provided for each supported type of vaccination. A valid code or code combination SHALL be provided. \nFor vaccines which provide immunity for more than one target disease there SHALL be one instance of targetDisease for each and no more.", - "items": { - "type": "object", - "required": [ - "coding" - ], - "properties": { - "coding": { - "type": "array", - "description": "A reference to a code defined by a terminology system.", - "items": { - "type": "object", - "required": [ - "system", - "code" - ], - "properties": { - "system": { - "description": "The identification of the code system that defines the meaning of the symbol in the code.", - "type": "string" - }, - "code": { - "description": "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system", - "type": "string" - }, - "display": { - "description": "A representation of the meaning of the code in the system, following the rules of the system.", - "type": "string" - } - } - } - } - } - } - }, - "doseNumber[X]": { - "type": "object", - "description": "Nominal position in a series. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available.", - "properties": { - "doseNumberPositiveInt": { - "description": "Nominal position in a course of vaccines. This `SHOULD be populated` where the data is available.", - "type": "integer", - "example": 1 - }, - "doseNumberString": { - "description": "Description of the dose sequence where it is not a numeric or a reason a dose number cannot be provided. \nA string should only be used in cases where an integer is not available.", - "type": "string" - } - } - } - } - } - } - } - }, - "example": { - "resourceType": "Immunization", - "id": "4ff607e0-c6e9-4fe0-a2b6-3bcd7fdc44c9", - "contained": [ - { - "resourceType": "Practitioner", - "id": "Pract1", - "name": [ - { - "family": "Nightingale", - "given": [ - "Florence" - ] - } - ] - }, - { - "resourceType": "Patient", - "id": "Pat1", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449310475" - } - ], - "name": [ - { - "family": "Taylor", - "given": [ - "Sarah" - ] - } - ], - "gender": "unknown", - "birthDate": "1965-02-28", - "address": [ - { - "postalCode": "EC1A 1BB" - } - ] - } - ], - "extension": [ - { - "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1324681000000101", - "display": "Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)" - } - ] - } - } - ], - "identifier": [ - { - "system": "https://supplierABC/identifiers/vacc", - "value": "a7437179-e86e-4855-b68e-24b5jhg3g" - } - ], - "status": "completed", - "vaccineCode": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "39114911000001105", - "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd) (product)" - } - ] - }, - "patient": { - "reference": "#Pat1" - }, - "occurrenceDateTime": "2021-02-07T13:28:17.271+00:00", - "recorded": "2021-02-07T13:28:17.271+00:00", - "primarySource": true, - "manufacturer": { - "display": "AstraZeneca Ltd" - }, - "location": { - "identifier": { - "value": "X99999", - "system": "https://fhir.nhs.uk/Id/ods-organization-code" - } - }, - "lotNumber": "4120Z001", - "expirationDate": "2021-07-02", - "site": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "368208006", - "display": "Left upper arm structure (body structure)" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "78421000", - "display": "Intramuscular route (qualifier value)" - } - ] - }, - "doseQuantity": { - "value": 0.5, - "unit": "milliliter", - "system": "http://unitsofmeasure.org", - "code": "ml" - }, - "performer": [ - { - "actor": { - "reference": "#Pract1" - } - }, - { - "actor": { - "type": "Organization", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B0C4P" - } - } - } - ], - "reasonCode": [ - { - "coding": [ - { - "code": "443684005", - "system": "http://snomed.info/sct" - } - ] - } - ], - "protocolApplied": [ - { - "targetDisease": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "840539006", - "display": "Disease caused by severe acute respiratory syndrome coronavirus 2 (disorder)" - } - ] - } - ], - "doseNumberPositiveInt": 1 - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Update Immunization operation successful", - "headers": { - "CorrelationID": { - "$ref": "#/components/parameters/CorrelationID" - }, - "RequestID": { - "$ref": "#/components/parameters/RequestID" - } - } - }, - "4XX": { - "$ref": "#/components/responses/4XX-imms" - } - } - }, - "delete": { - "summary": "Mark a record of vaccination as being entered in error", - "operationId": "deleteImmunization", - "description": "## Overview\nThis endpoint allows you to mark a record that has been entered in error.\nDeleted records will continue to be stored for a period of time but are not returned in response to read or search requests.\nA deleted record can be re-instated using the update interaction if it was incorrectly deleted. \n\n## Sandbox testing\n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n| Delete a vaccination event | `id`=`12a33650-6f94-4e8f-a971-1c5c41da5b22` | HTTP Status 204 No Content |\n| Bad Request | Didn't pass Required fields `id` | HTTP Status 400 Bad Request |\n", - "parameters": [ - { - "$ref": "#/components/parameters/CorrelationID" - }, - { - "$ref": "#/components/parameters/RequestID" - }, - { - "$ref": "#/components/parameters/Id" - } - ], - "responses": { - "204": { - "description": "Delete Immunization operation successful" - } - }, - "4XX": { - "$ref": "#/components/responses/4XX-imms" - } - } - } - }, - "components": { - "responses": { - "4XX-imms": { - "description": "Below are examples of potential HTTP status codes and their associated error codes, which could be returned in the event of a fault.\n\n| HTTP status | Error code | Description | Example |\n| ----------- | -------------------------- | --------------------------------------------- |--------------------------------------------------------------------------------------|\n| 400 | INVALID | The provided event ID is either missing or not in the expected format. | {\"resourceType\": \"OperationOutcome\", \"id\": \"6f4ca309-19d7-4f61-90b3-acbd1f2eb8f8\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invalid\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVALID\"}]}, \"diagnostics\": \"the provided event ID is either missing or not in the expected format.\"}]} |\n| 400 | BAD_REQUEST | Search could not be processed or failed basic FHIR validation rules | {\"resourceType\": \"OperationOutcome\", \"id\": \"4ff75db4-6e7d-411d-a490-c55c11f83043\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invalid\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVALID\"}]}, \"diagnostics\": \"patient.identifier must be in the format of \\\"https://fhir.nhs.uk/Id/nhs-number|{NHS number}\\\" e.g. \\\"https://fhir.nhs.uk/Id/nhs-number|9000000009\\\"\"}]} |\n| 401 | UNAUTHORISED | Authorization is required for the interaction that was attempted | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"expired\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender has not provided a token or it has expired or is otherwise invalid.\"}]} |\n| 403 | UNAUTHORISED | The sender does not have permissions to access this resource | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"forbidden\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender does not have permissions to access this resource. Please check your credentials and permissions.\"}]} |\n| 404 | NOT_FOUND | The requested resource was not found. | {\"resourceType\": \"OperationOutcome\", \"id\": \"bc2c3c82-4392-4314-9d6b-a7345f82d923\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"not-found\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"NOT-FOUND\"}]}, \"diagnostics\": \"The requested resource was not found.\"}]} |\n| 405 | NOT_ALLOWED | The requested method is not allowed |\n| 422 | UNPROCESSABLE_ENTITY | The proposed resource violated applicable FHIR profiles or server business rules. This should be accompanied by an OperationOutcome resource providing additional detail |\n", - "content": { - "application/fhir+json": { - "schema": { - "$ref": "#/components/schemas/OperationOutcome" - }, - "example": { - "resourceType": "OperationOutcome", - "id": "3d64df5a-b753-49ec-b3df-f45c157941eb", - "issue": [ - { - "severity": "error", - "code": "invalid", - "details": { - "coding": [ - { - "system": "https://fhir.nhs.uk/Codesystem/http-error-codes", - "code": "INVALID" - } - ] - }, - "diagnostics": "Search parameter patient.identifier/-immunization.target must have one value." - } - ] - } - } - } - } - }, - "requestBodies": { - "Immunization": { - "content": { - "application/fhir+json": { - "schema": { - "$ref": "#/components/schemas/Immunization" - } - } - }, - "required": true - }, - "SearchImmunization": { - "content": { - "application/x-www-form-urlencoded": { - "schema": { - "type": "object", - "properties": { - "patient.identifier": { - "type": "string", - "description": "The patient's NHS number.\nExpressed as `` where`` must be a [valid NHS number](https://www.datadictionary.nhs.uk/attributes/nhs_number.html).\n", - "example": "9000000009" - }, - "-immunization.target": { - "type": "string", - "description": "Specific procedures, disorders, diseases, infections or organisms.\n", - "enum": [ - "COVID19", - "FLU", - "RSV" - ] - }, - "-date.from": { - "type": "string", - "format": "date", - "description": "The earliest date to be included (e.g. 2020-01-01)", - "default": "1900-01-01" - }, - "-date.to": { - "type": "string", - "format": "date", - "description": "The latest date to be included (e.g. 2020-12-31)", - "default": "9999-12-31" - }, - "_include": { - "description": "Specifies other resources to be included in the response along with the immunisations.\nMust be `Immunization:patient`, which will include patient demographic details.", - "type": "string", - "default": "Immunization:patient" - } - } - } - } - } - } - }, - "parameters": { - "Id": { - "in": "path", - "name": "id", - "required": true, - "description": "A required ID which you can use to identify an Immunization event object.\n\nMirrored back in a response header.\n", - "schema": { - "type": "string", - "example": "29dc4e84-7e72-11ee-b962-0242ac120002" - } - }, - "CorrelationID": { - "in": "header", - "name": "X-Correlation-ID", - "required": false, - "description": "An optional ID which you can use to track transactions across multiple systems. It can take any value, but we recommend avoiding `.` characters.\n\nMirrored back in a response header.\n", - "schema": { - "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", - "example": "60E0B220-8136-4CA5-AE46-1D97EF59D068" - } - }, - "RequestID": { - "in": "header", - "name": "X-Request-ID", - "required": false, - "description": "A globally unique identifier (GUID) for the request, which we use to de-duplicate repeated requests and to trace the request if you contact our helpdesk.\n\nMust be a universally unique identifier (UUID) (ideally version 4).\n\nMirrored back in a response header.\n\nIf you re-send a failed request, use the same value in this header.\n", - "schema": { - "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", - "example": "60E0B220-8136-4CA5-AE46-1D97EF59D068" - } - }, - "PatientIdentifier": { - "in": "query", - "name": "patient.identifier", - "description": "The patient's NHS number.\nExpressed as `|` where `` must be `https://fhir.nhs.uk/Id/nhs-number` and `` must be a [valid NHS number](https://www.datadictionary.nhs.uk/attributes/nhs_number.html).\n", - "required": true, - "schema": { - "type": "string", - "example": "https://fhir.nhs.uk/Id/nhs-number|9000000009" - } - }, - "ImmunizationTarget": { - "in": "query", - "name": "-immunization.target", - "description": "Specific procedures, disorders, diseases, infections or organisms.\n", - "required": true, - "schema": { - "type": "string", - "enum": [ - "COVID19", - "FLU", - "RSV" - ] - } - }, - "DateFrom": { - "in": "query", - "name": "-date.from", - "description": "The earliest date to be included (e.g. 2020-01-01)", - "schema": { - "type": "string", - "format": "date", - "default": "1900-01-01" - } - }, - "DateTo": { - "in": "query", - "name": "-date.to", - "description": "The latest date to be included (e.g. 2020-12-31)", - "schema": { - "type": "string", - "format": "date", - "default": "9999-12-31" - } - }, - "Include": { - "in": "query", - "name": "_include", - "description": "Specifies other resources to be included in the response along with the immunisations.\nMust be `Immunization:patient`, which will include patient demographic details.", - "required": false, - "schema": { - "type": "string", - "default": "Immunization:patient" - } - }, - "Location": { - "in": "header", - "name": "location", - "required": true, - "description": "The location of newly created Immunization record. It contains resouce ID at the end.", - "schema": { - "type": "string", - "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", - "example": "60E0B220-8136-4CA5-AE46-1D97EF59D068" - } - }, - "E-Tag": { - "in": "header", - "name": "E-Tag", - "required": true, - "description": "Indicaes the current version of Immunization resource", - "schema": { - "type": "integer", - "example": 1 - } - } - }, - "schemas": { - "Resource": { - "type": "object", - "discriminator": { - "propertyName": "resourceType" - }, - "properties": { - "resourceType": { - "type": "string", - "enum": [ - "Resource", - "DomainResource", - "Account", - "ActivityDefinition", - "AdverseEvent", - "AllergyIntolerance", - "Appointment", - "AppointmentResponse", - "AuditEvent", - "Basic", - "Binary", - "BiologicallyDerivedProduct", - "BodyStructure", - "Bundle", - "CapabilityStatement", - "CarePlan", - "CareTeam", - "CatalogEntry", - "ChargeItem", - "ChargeItemDefinition", - "Claim", - "ClaimResponse", - "ClinicalImpression", - "CodeSystem", - "Communication", - "CommunicationRequest", - "CompartmentDefinition", - "Composition", - "ConceptMap", - "Condition", - "Consent", - "Contract", - "Coverage", - "CoverageEligibilityRequest", - "CoverageEligibilityResponse", - "DetectedIssue", - "Device", - "DeviceDefinition", - "DeviceMetric", - "DeviceRequest", - "DeviceUseStatement", - "DiagnosticReport", - "DocumentManifest", - "DocumentReference", - "EffectEvidenceSynthesis", - "Encounter", - "Endpoint", - "EnrollmentRequest", - "EnrollmentResponse", - "EpisodeOfCare", - "EventDefinition", - "Evidence", - "EvidenceVariable", - "ExampleScenario", - "ExplanationOfBenefit", - "FamilyMemberHistory", - "Flag", - "Goal", - "GraphDefinition", - "Group", - "GuidanceResponse", - "HealthcareService", - "ImagingStudy", - "Immunization", - "ImmunizationEvaluation", - "ImmunizationRecommendation", - "ImplementationGuide", - "InsurancePlan", - "Invoice", - "Library", - "Linkage", - "List", - "Location", - "Measure", - "MeasureReport", - "Media", - "Medication", - "MedicationAdministration", - "MedicationDispense", - "MedicationKnowledge", - "MedicationRequest", - "MedicationStatement", - "MedicinalProduct", - "MedicinalProductAuthorization", - "MedicinalProductContraindication", - "MedicinalProductIndication", - "MedicinalProductIngredient", - "MedicinalProductInteraction", - "MedicinalProductManufactured", - "MedicinalProductPackaged", - "MedicinalProductPharmaceutical", - "MedicinalProductUndesirableEffect", - "MessageDefinition", - "MessageHeader", - "MolecularSequence", - "NamingSystem", - "NutritionOrder", - "Observation", - "ObservationDefinition", - "OperationDefinition", - "OperationOutcome", - "Organization", - "OrganizationAffiliation", - "Parameters", - "Patient", - "PaymentNotice", - "PaymentReconciliation", - "Person", - "PlanDefinition", - "Practitioner", - "PractitionerRole", - "Procedure", - "Provenance", - "Questionnaire", - "QuestionnaireResponse", - "RelatedPerson", - "RequestGroup", - "ResearchDefinition", - "ResearchElementDefinition", - "ResearchStudy", - "ResearchSubject", - "RiskAssessment", - "RiskEvidenceSynthesis", - "Schedule", - "SearchParameter", - "ServiceRequest", - "Slot", - "Specimen", - "SpecimenDefinition", - "StructureDefinition", - "StructureMap", - "Subscription", - "Substance", - "SubstanceNucleicAcid", - "SubstancePolymer", - "SubstanceProtein", - "SubstanceReferenceInformation", - "SubstanceSourceMaterial", - "SubstanceSpecification", - "SupplyDelivery", - "SupplyRequest", - "Task", - "TerminologyCapabilities", - "TestReport", - "TestScript", - "ValueSet", - "VerificationResult", - "VisionPrescription" - ] - }, - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes." - }, - "meta": { - "$ref": "#/components/schemas/Meta", - "description": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource." - }, - "implicitRules": { - "type": "string", - "pattern": "\\S*", - "description": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc." - }, - "language": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The base language in which the resource is written." - } - }, - "required": [ - "resourceType" - ] - }, - "DomainResource": { - "type": "object", - "properties": { - "text": { - "$ref": "#/components/schemas/Narrative", - "description": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety." - }, - "contained": { - "type": "array", - "items": { - "description": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.", - "type": "object", - "discriminator": { - "propertyName": "resourceType" - }, - "properties": { - "resourceType": { - "type": "string", - "enum": [ - "Resource", - "DomainResource", - "Account", - "ActivityDefinition", - "AdverseEvent", - "AllergyIntolerance", - "Appointment", - "AppointmentResponse", - "AuditEvent", - "Basic", - "Binary", - "BiologicallyDerivedProduct", - "BodyStructure", - "Bundle", - "CapabilityStatement", - "CarePlan", - "CareTeam", - "CatalogEntry", - "ChargeItem", - "ChargeItemDefinition", - "Claim", - "ClaimResponse", - "ClinicalImpression", - "CodeSystem", - "Communication", - "CommunicationRequest", - "CompartmentDefinition", - "Composition", - "ConceptMap", - "Condition", - "Consent", - "Contract", - "Coverage", - "CoverageEligibilityRequest", - "CoverageEligibilityResponse", - "DetectedIssue", - "Device", - "DeviceDefinition", - "DeviceMetric", - "DeviceRequest", - "DeviceUseStatement", - "DiagnosticReport", - "DocumentManifest", - "DocumentReference", - "EffectEvidenceSynthesis", - "Encounter", - "Endpoint", - "EnrollmentRequest", - "EnrollmentResponse", - "EpisodeOfCare", - "EventDefinition", - "Evidence", - "EvidenceVariable", - "ExampleScenario", - "ExplanationOfBenefit", - "FamilyMemberHistory", - "Flag", - "Goal", - "GraphDefinition", - "Group", - "GuidanceResponse", - "HealthcareService", - "ImagingStudy", - "Immunization", - "ImmunizationEvaluation", - "ImmunizationRecommendation", - "ImplementationGuide", - "InsurancePlan", - "Invoice", - "Library", - "Linkage", - "List", - "Location", - "Measure", - "MeasureReport", - "Media", - "Medication", - "MedicationAdministration", - "MedicationDispense", - "MedicationKnowledge", - "MedicationRequest", - "MedicationStatement", - "MedicinalProduct", - "MedicinalProductAuthorization", - "MedicinalProductContraindication", - "MedicinalProductIndication", - "MedicinalProductIngredient", - "MedicinalProductInteraction", - "MedicinalProductManufactured", - "MedicinalProductPackaged", - "MedicinalProductPharmaceutical", - "MedicinalProductUndesirableEffect", - "MessageDefinition", - "MessageHeader", - "MolecularSequence", - "NamingSystem", - "NutritionOrder", - "Observation", - "ObservationDefinition", - "OperationDefinition", - "OperationOutcome", - "Organization", - "OrganizationAffiliation", - "Parameters", - "Patient", - "PaymentNotice", - "PaymentReconciliation", - "Person", - "PlanDefinition", - "Practitioner", - "PractitionerRole", - "Procedure", - "Provenance", - "Questionnaire", - "QuestionnaireResponse", - "RelatedPerson", - "RequestGroup", - "ResearchDefinition", - "ResearchElementDefinition", - "ResearchStudy", - "ResearchSubject", - "RiskAssessment", - "RiskEvidenceSynthesis", - "Schedule", - "SearchParameter", - "ServiceRequest", - "Slot", - "Specimen", - "SpecimenDefinition", - "StructureDefinition", - "StructureMap", - "Subscription", - "Substance", - "SubstanceNucleicAcid", - "SubstancePolymer", - "SubstanceProtein", - "SubstanceReferenceInformation", - "SubstanceSourceMaterial", - "SubstanceSpecification", - "SupplyDelivery", - "SupplyRequest", - "Task", - "TerminologyCapabilities", - "TestReport", - "TestScript", - "ValueSet", - "VerificationResult", - "VisionPrescription" - ] - }, - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes." - }, - "meta": { - "$ref": "#/components/schemas/Meta", - "description": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource." - }, - "implicitRules": { - "type": "string", - "pattern": "\\S*", - "description": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc." - }, - "language": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The base language in which the resource is written." - } - }, - "required": [ - "resourceType" - ] - } - }, - "extension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." - } - }, - "modifierExtension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)." - } - } - } - }, - "Immunization": { - "type": "object", - "required": [ - "status", - "vaccineCode", - "patient" - ], - "properties": { - "text": { - "$ref": "#/components/schemas/Narrative", - "description": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety." - }, - "contained": { - "type": "array", - "items": { - "description": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.", - "type": "object", - "discriminator": { - "propertyName": "resourceType" - }, - "properties": { - "resourceType": { - "type": "string", - "example": "Immunization" - }, - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes." - }, - "meta": { - "$ref": "#/components/schemas/Meta", - "description": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource." - }, - "implicitRules": { - "type": "string", - "pattern": "\\S*", - "description": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc." - }, - "language": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The base language in which the resource is written." - } - }, - "required": [ - "resourceType" - ] - } - }, - "extension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." - } - }, - "modifierExtension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)." - } - }, - "identifier": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Identifier", - "description": "A unique identifier assigned to this immunization record." - } - }, - "status": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Indicates the current status of the immunization event." - }, - "statusReason": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Indicates the reason the immunization event was not performed." - }, - "vaccineCode": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Vaccine that was administered or was to be administered." - }, - "patient": { - "$ref": "#/components/schemas/Reference", - "description": "The patient who either received or did not receive the immunization." - }, - "encounter": { - "$ref": "#/components/schemas/Reference", - "description": "The visit or admission or other contact between patient and health care provider the immunization was performed as part of." - }, - "occurrenceDateTime": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "Date vaccine administered or was to be administered." - }, - "occurrenceString": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Date vaccine administered or was to be administered." - }, - "recorded": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event." - }, - "primarySource": { - "type": "boolean", - "description": "An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded." - }, - "reportOrigin": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "The source of the data when the report of the immunization event is not based on information from the person who administered the vaccine." - }, - "location": { - "$ref": "#/components/schemas/Reference", - "description": "The service delivery location where the vaccine administration occurred." - }, - "manufacturer": { - "$ref": "#/components/schemas/Reference", - "description": "Name of vaccine manufacturer." - }, - "lotNumber": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Lot number of the vaccine product." - }, - "expirationDate": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", - "description": "Date vaccine batch expires." - }, - "site": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Body site where vaccine was administered." - }, - "route": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "The path by which the vaccine product is taken into the body." - }, - "doseQuantity": { - "$ref": "#/components/schemas/SimpleQuantity", - "description": "The quantity of vaccine product that was administered." - }, - "performer": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Immunization_Performer", - "description": "Indicates who performed the immunization event." - } - }, - "note": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Annotation", - "description": "Extra information about the immunization that is not conveyed by the other attributes." - } - }, - "reasonCode": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Reasons why the vaccine was administered." - } - }, - "reasonReference": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Reference", - "description": "Condition, Observation or DiagnosticReport that supports why the immunization was administered." - } - }, - "isSubpotent": { - "type": "boolean", - "description": "Indication if a dose is considered to be subpotent. By default, a dose should be considered to be potent." - }, - "subpotentReason": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Reason why a dose is considered to be subpotent." - } - }, - "education": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Immunization_Education", - "description": "Educational material presented to the patient (or guardian) at the time of vaccine administration." - } - }, - "programEligibility": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Indicates a patient's eligibility for a funding program." - } - }, - "fundingSource": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Indicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered)." - }, - "reaction": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Immunization_Reaction", - "description": "Categorical data indicating that an adverse event is associated in time to an immunization." - } - }, - "protocolApplied": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Immunization_ProtocolApplied", - "description": "The protocol (set of recommendations) being followed by the provider who administered the dose." - } - } - }, - "example": { - "resourceType": "Immunization", - "id": "12a33650-6f94-4e8f-a971-1c5c41da5b22", - "contained": [ - { - "resourceType": "Practitioner", - "id": "Pract1", - "name": [ - { - "family": "Owl", - "given": [ - "Barney" - ] - } - ] - }, - { - "resourceType": "Patient", - "id": "Pat1", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449310475" - } - ], - "name": [ - { - "family": "Owler", - "given": [ - "Ozzie" - ] - } - ], - "gender": "unknown", - "birthDate": "1965-02-28", - "address": [ - { - "postalCode": "ZZ99 3CZ" - } - ] - } - ], - "extension": [ - { - "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1303503001", - "display": "Administration of RSV (respiratory syncytial virus) vaccine" - } - ] - } - } - ], - "status": "completed", - "vaccineCode": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "42605811000001109", - "display": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - ] - }, - "patient": { - "reference": "#Pat1" - }, - "occurrenceDateTime": "2021-02-07T13:28:17.271000+00:00", - "recorded": "2021-02-07T13:28:17.271000+00:00", - "primarySource": true, - "location": { - "identifier": { - "system": "urn:iso:std:iso:3166", - "value": "GB" - } - }, - "manufacturer": { - "display": "AstraZeneca Ltd" - }, - "lotNumber": "4120Z001", - "expirationDate": "2021-07-02", - "site": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "368208006", - "display": "Left upper arm structure (body structure)" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "78421000", - "display": "Intramuscular route (qualifier value)" - } - ] - }, - "doseQuantity": { - "value": 0.5, - "unit": "milliliter", - "system": "http://unitsofmeasure.org", - "code": "ml" - }, - "performer": [ - { - "actor": { - "reference": "#Pract1" - } - }, - { - "actor": { - "type": "Organization", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "N2N9I" - } - } - } - ], - "reasonCode": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "443684005" - } - ] - } - ], - "protocolApplied": [ - { - "targetDisease": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "55735004", - "display": "Respiratory syncytial virus infection (disorder)" - } - ] - } - ], - "doseNumberPositiveInt": 1 - } - ] - } - }, - "Bundle": { - "description": "FHIR Bundle containing the query results - a list of matching immunisations and associated patients.", - "type": "object", - "required": [ - "resourceType", - "type" - ], - "properties": { - "resourceType": { - "description": "FHIR resource type. Always `Bundle`.", - "type": "string", - "example": "Bundle" - }, - "type": { - "description": "Indicates how the bundle is intended to be used. Always `searchset`.", - "type": "string", - "example": "searchset" - }, - "link": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Bundle_Link", - "description": "A series of links that provide context to this bundle." - } - }, - "entry": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Bundle_Entry", - "description": "An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only)." - } - }, - "total": { - "type": "integer", - "format": "int32", - "description": "If a set of search matches, this is the total number of entries of type 'match' across all pages in the search. It does not include search.mode = 'include' or 'outcome' entries and it does not provide a count of the number of entries in the Bundle." - } - }, - "example": { - "resourceType": "Bundle", - "type": "searchset", - "link": [ - { - "relation": "self", - "url": "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization?immunization.target=COVID19&_include=Immunization%3Apatient&patient.identifier=https%3A%2F%2Ffhir.nhs.uk%2FId%2Fnhs-number%7C9449306206" - } - ], - "entry": [ - { - "fullUrl": "https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization/191f288a-17f3-4cd5-a33c-a52aade6473c", - "resource": { - "resourceType": "Immunization", - "id": "191f288a-17f3-4cd5-a33c-a52aade6473c", - "extension": [ - { - "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure", - "valueCodeableConcept": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "1303503001", - "display": "Administration of RSV (respiratory syncytial virus) vaccine" - } - ] - } - } - ], - "identifier": [ - { - "use": "official", - "system": "https://supplierABC/identifiers/vacc", - "value": "e2154d29-1ead-4830-a513-0d59705078fa" - } - ], - "status": "completed", - "vaccineCode": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "42605811000001109", - "display": "Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)" - } - ] - }, - "patient": { - "reference": "urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac", - "type": "Patient", - "identifier": { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449306206" - } - }, - "occurrenceDateTime": "2021-02-07T13:28:17.271000+00:00", - "recorded": "2021-02-07T13:28:17.271000+00:00", - "primarySource": true, - "location": { - "identifier": { - "system": "urn:iso:std:iso:3166", - "value": "GB" - } - }, - "manufacturer": { - "display": "AstraZeneca Ltd" - }, - "lotNumber": "4120Z001", - "expirationDate": "2021-07-02", - "site": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "368208006", - "display": "Left upper arm structure (body structure)" - } - ] - }, - "route": { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "78421000", - "display": "Intramuscular route (qualifier value)" - } - ] - }, - "doseQuantity": { - "value": 0.5, - "unit": "milliliter", - "system": "http://unitsofmeasure.org", - "code": "ml" - }, - "performer": [ - { - "actor": { - "type": "Organization", - "identifier": { - "system": "https://fhir.nhs.uk/Id/ods-organization-code", - "value": "B0C4P" - }, - "display": "UNIVERSITY HOSPITAL OF WALES" - } - } - ], - "reasonCode": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "443684005", - "display": "Disease outbreak (event)" - } - ] - } - ], - "protocolApplied": [ - { - "targetDisease": [ - { - "coding": [ - { - "system": "http://snomed.info/sct", - "code": "55735004", - "display": "Respiratory syncytial virus infection (disorder)" - } - ] - } - ], - "doseNumberPositiveInt": 1 - } - ] - }, - "search": { - "mode": "match" - } - }, - { - "fullUrl": "urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac", - "resource": { - "resourceType": "Patient", - "id": "9449306206", - "identifier": [ - { - "system": "https://fhir.nhs.uk/Id/nhs-number", - "value": "9449306206" - } - ], - "birthDate": "2014-03-25" - }, - "search": { - "mode": "include" - } - } - ], - "total": 1 - } - }, - "OperationOutcome": { - "type": "object", - "properties": { - "text": { - "$ref": "#/components/schemas/Narrative", - "description": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety." - }, - "contained": { - "type": "array", - "items": { - "description": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.", - "type": "object", - "discriminator": { - "propertyName": "resourceType" - }, - "properties": { - "resourceType": { - "type": "string", - "example": "OperationOutcome" - }, - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes." - }, - "meta": { - "$ref": "#/components/schemas/Meta", - "description": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource." - }, - "issue": { - "type": "array", - "items": { - "type": "object", - "properties": { - "severity": { - "type": "string" - }, - "code": { - "type": "string" - }, - "details": { - "type": "object", - "properties": { - "coding": { - "type": "array", - "items": { - "type": "object", - "properties": { - "system": { - "type": "string" - }, - "code": { - "type": "string" - } - } - } - } - } - }, - "diagnostics": { - "type": "string" - } - } - } - } - }, - "required": [ - "resourceType" - ] - } - }, - "extension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." - } - }, - "modifierExtension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)." - } - }, - "issue": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OperationOutcome_Issue", - "description": "An error, warning, or information message that results from a system action." - }, - "minItems": 1 - } - }, - "required": [ - "issue" - ], - "example": { - "resourceType": "OperationOutcome", - "meta": { - "versionId": "BnpJOa5-Sb", - "lastUpdated": "2021-04-12T14:34:36.061-05:00", - "source": "BCL3d5NERb", - "profile": [ - "xSempdez3Y" - ], - "security": [ - { - "system": "tczS7uP8XL", - "version": "IXKbCw05qO", - "code": "NvDP1hL64Y", - "display": "_r1z5oJld1", - "userSelected": true - } - ], - "tag": [ - { - "system": "2qqXHsE1Mx", - "version": "lybFyQ1tBj", - "code": "Q9w075fYd3", - "display": "Nm2QqbYibP", - "userSelected": true - }, - { - "code": "ibm/complete-mock" - } - ] - }, - "implicitRules": "l8KHk6qOt4", - "language": "en-US", - "text": { - "status": "additional", - "div": "
" - }, - "issue": [ - { - "severity": "warning", - "code": "business-rule", - "details": { - "coding": [ - { - "system": "eQgFofRHmJ", - "version": "T524HDk5Za", - "code": "tC_7iQg31j", - "display": "s0bLc4W5KE", - "userSelected": true - } - ], - "text": "BfBVppHmsh" - }, - "diagnostics": "EcvPDGbK0q", - "location": [ - "GK5ihTmfe6" - ], - "expression": [ - "Uidx_swV4Z" - ] - } - ] - } - }, - "Bundle_Entry": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "link": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Bundle_Link", - "description": "A series of links that provide context to this entry." - } - }, - "fullUrl": { - "type": "string", - "pattern": "\\S*", - "description": "The Absolute URL for the resource. The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: \n* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)\n* Results from operations might involve resources that are not identified." - }, - "resource": { - "description": "The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type." - }, - "resourceType": { - "type": "string", - "example": "Immunization" - }, - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes." - }, - "meta": { - "$ref": "#/components/schemas/Meta", - "description": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource." - }, - "implicitRules": { - "type": "string", - "pattern": "\\S*", - "description": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc." - }, - "language": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The base language in which the resource is written." - }, - "search": { - "$ref": "#/components/schemas/Bundle_Entry_Search", - "description": "Information about the search process that lead to the creation of this entry." - }, - "request": { - "$ref": "#/components/schemas/Bundle_Entry_Request", - "description": "Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry." - }, - "response": { - "$ref": "#/components/schemas/Bundle_Entry_Response", - "description": "Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history." - } - } - } - ] - }, - "Bundle_Entry_Response": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "status": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code." - }, - "location": { - "type": "string", - "pattern": "\\S*", - "description": "The location header created by processing this operation, populated if the operation returns a location." - }, - "etag": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency))." - }, - "lastModified": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "The date/time that the resource was modified on the server." - }, - "outcome": { - "$ref": "#/components/schemas/Resource", - "description": "An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction." - } - }, - "required": [ - "status" - ] - } - ] - }, - "Bundle_Entry_Request": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "method": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "In a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred." - }, - "url": { - "type": "string", - "pattern": "\\S*", - "description": "The URL for this entry, relative to the root (the address to which the request is posted)." - }, - "ifNoneMatch": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "If the ETag values match, return a 304 Not Modified status. See the API documentation for [\"Conditional Read\"](http.html#cread)." - }, - "ifModifiedSince": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread)." - }, - "ifMatch": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency)." - }, - "ifNoneExist": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\"Conditional Create\"](http.html#ccreate). This is just the query portion of the URL - what follows the \"?\" (not including the \"?\")." - } - }, - "required": [ - "method", - "url" - ] - } - ] - }, - "Bundle_Entry_Search": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "mode": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Why this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process." - }, - "score": { - "type": "number", - "description": "When searching, the server's search ranking score for the entry." - } - } - } - ] - }, - "Bundle_Link": { - "allOf": [ - { - "type": "object", - "properties": { - "relation": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1)." - }, - "url": { - "type": "string", - "pattern": "\\S*", - "description": "The reference details for the link." - } - }, - "required": [ - "relation", - "url" - ] - } - ] - }, - "Immunization_ProtocolApplied": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "series": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "One possible path to achieve presumed immunity against a disease - within the context of an authority." - }, - "authority": { - "$ref": "#/components/schemas/Reference", - "description": "Indicates the authority who published the protocol (e.g. ACIP) that is being followed." - }, - "targetDisease": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "The vaccine preventable disease the dose is being administered against." - } - }, - "doseNumberPositiveInt": { - "type": "integer", - "format": "int32", - "description": "Nominal position in a series." - }, - "doseNumberString": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Nominal position in a series." - }, - "seriesDosesPositiveInt": { - "type": "integer", - "format": "int32", - "description": "The recommended number of doses to achieve immunity." - }, - "seriesDosesString": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The recommended number of doses to achieve immunity." - } - } - } - ] - }, - "Immunization_Reaction": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "date": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "Date of reaction to the immunization." - }, - "detail": { - "$ref": "#/components/schemas/Reference", - "description": "Details of the reaction." - }, - "reported": { - "type": "boolean", - "description": "Self-reported indicator." - } - } - } - ] - }, - "Immunization_Education": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "documentType": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Identifier of the material presented to the patient." - }, - "reference": { - "type": "string", - "pattern": "\\S*", - "description": "Reference pointer to the educational material given to the patient if the information was on line." - }, - "publicationDate": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "Date the educational material was published." - }, - "presentationDate": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "Date the educational material was given to the patient." - } - } - } - ] - }, - "Immunization_Performer": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "function": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Describes the type of performance (e.g. ordering provider, administering provider, etc.)." - }, - "actor": { - "$ref": "#/components/schemas/Reference", - "description": "The practitioner or organization who performed the action." - } - }, - "required": [ - "actor" - ] - } - ] - }, - "OperationOutcome_Issue": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "severity": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Indicates whether the issue indicates a variation from successful processing." - }, - "code": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element." - }, - "details": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Additional details about the error. This may be a text description of the error or a system code that identifies the error." - }, - "diagnostics": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Additional diagnostic information about the issue." - }, - "location": { - "type": "array", - "items": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "This element is deprecated because it is XML specific. It is replaced by issue.expression, which is format independent, and simpler to parse. \n\nFor resource issues, this will be a simple XPath limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised. For HTTP errors, will be \"http.\" + the parameter name." - } - }, - "expression": { - "type": "array", - "items": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised." - } - } - }, - "required": [ - "severity", - "code" - ] - } - ] - }, - "Element": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." - }, - "extension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." - }, - "example": [ - { - "url": "http://example.com", - "valueString": "text value" - } - ] - } - } - }, - "BackboneElement": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." - }, - "extension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." - } - }, - "modifierExtension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)." - } - } - } - }, - "Address": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "use": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The purpose of this address." - }, - "type": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both." - }, - "text": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts." - }, - "line": { - "type": "array", - "items": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information." - } - }, - "city": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The name of the city, town, suburb, village or other community or delivery center." - }, - "district": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The name of the administrative area (county)." - }, - "state": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes)." - }, - "postalCode": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A postal code designating a region defined by the postal service." - }, - "country": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Country - a nation as commonly understood or generally accepted." - }, - "period": { - "$ref": "#/components/schemas/Period", - "description": "Time period when address was/is in use." - } - } - } - ] - }, - "Age": { - "allOf": [ - { - "$ref": "#/components/schemas/Quantity" - }, - { - "type": "object", - "properties": {} - } - ] - }, - "Annotation": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "authorReference": { - "$ref": "#/components/schemas/Reference", - "description": "The individual responsible for making the annotation." - }, - "authorString": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The individual responsible for making the annotation." - }, - "time": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "Indicates when this particular annotation was made." - }, - "text": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The text of the annotation in markdown format." - } - }, - "required": [ - "text" - ] - } - ] - }, - "Attachment": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "contentType": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate." - }, - "language": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The human language of the content. The value can be any valid value according to BCP 47." - }, - "data": { - "type": "string", - "pattern": "(\\s*([0-9a-zA-Z\\+/=]){4}\\s*)+", - "description": "The actual data of the attachment - a sequence of bytes, base64 encoded." - }, - "url": { - "type": "string", - "pattern": "\\S*", - "description": "A location where the data can be accessed." - }, - "size": { - "type": "integer", - "format": "int32", - "description": "The number of bytes of data that make up this attachment (before base64 encoding, if that is done)." - }, - "hash": { - "type": "string", - "pattern": "(\\s*([0-9a-zA-Z\\+/=]){4}\\s*)+", - "description": "The calculated hash of the data using SHA-1. Represented using base64." - }, - "title": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A label or set of text to display in place of the data." - }, - "creation": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "The date that the attachment was first created." - } - } - } - ] - }, - "CodeableConcept": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." - }, - "extension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." - } - }, - "coding": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "A reference to a code defined by a terminology system." - } - }, - "text": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user." - } - } - }, - "Coding": { - "type": "object", - "properties": { - "system": { - "type": "string", - "pattern": "\\S*", - "description": "The identification of the code system that defines the meaning of the symbol in the code." - }, - "version": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged." - }, - "code": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination)." - }, - "display": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A representation of the meaning of the code in the system, following the rules of the system." - }, - "userSelected": { - "type": "boolean", - "description": "Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays)." - } - } - }, - "ContactPoint": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "system": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Telecommunications form for contact point - what communications system is required to make use of the contact." - }, - "value": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address)." - }, - "use": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Identifies the purpose for the contact point." - }, - "rank": { - "type": "integer", - "format": "int32", - "description": "Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values." - }, - "period": { - "$ref": "#/components/schemas/Period", - "description": "Time period when the contact point was/is in use." - } - } - } - ] - }, - "Count": { - "allOf": [ - { - "$ref": "#/components/schemas/Quantity" - }, - { - "type": "object", - "properties": {} - } - ] - }, - "Distance": { - "allOf": [ - { - "$ref": "#/components/schemas/Quantity" - }, - { - "type": "object", - "properties": {} - } - ] - }, - "Duration": { - "allOf": [ - { - "$ref": "#/components/schemas/Quantity" - }, - { - "type": "object", - "properties": {} - } - ] - }, - "HumanName": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "use": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Identifies the purpose for this name." - }, - "text": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts." - }, - "family": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father." - }, - "given": { - "type": "array", - "items": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Given name." - } - }, - "prefix": { - "type": "array", - "items": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name." - } - }, - "suffix": { - "type": "array", - "items": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name." - } - }, - "period": { - "$ref": "#/components/schemas/Period", - "description": "Indicates the period of time when this name was valid for the named person." - } - } - } - ] - }, - "Identifier": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." - }, - "extension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." - } - }, - "use": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The purpose of this identifier." - }, - "type": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose." - }, - "system": { - "type": "string", - "pattern": "\\S*", - "description": "Establishes the namespace for the value - that is, a URL that describes a set values that are unique." - }, - "value": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The portion of the identifier typically relevant to the user and which is unique within the context of the system." - }, - "period": { - "$ref": "#/components/schemas/Period", - "description": "Time period during which identifier is/was valid for use." - }, - "assigner": { - "$ref": "#/components/schemas/Reference", - "description": "Organization that issued/manages the identifier.", - "example": { - "reference": "Organization/123", - "type": "Organization", - "display": "The Assigning Organization" - } - } - } - }, - "Money": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "value": { - "type": "number", - "description": "Numerical value (with implicit precision)." - }, - "currency": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "ISO 4217 Currency Code." - } - } - } - ] - }, - "MoneyQuantity": { - "allOf": [ - { - "$ref": "#/components/schemas/Quantity" - }, - { - "type": "object", - "properties": {} - } - ] - }, - "Period": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "start": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "The start of the period. The boundary is inclusive." - }, - "end": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time." - } - } - } - ] - }, - "Quantity": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "value": { - "type": "number", - "description": "The value of the measured amount. The value includes an implicit precision in the presentation of the value." - }, - "comparator": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value." - }, - "unit": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A human-readable form of the unit." - }, - "system": { - "type": "string", - "pattern": "\\S*", - "description": "The identification of the system that provides the coded form of the unit." - }, - "code": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "A computer processable form of the unit in some unit representation system." - } - } - } - ] - }, - "Range": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "low": { - "$ref": "#/components/schemas/SimpleQuantity", - "description": "The low limit. The boundary is inclusive." - }, - "high": { - "$ref": "#/components/schemas/SimpleQuantity", - "description": "The high limit. The boundary is inclusive." - } - } - } - ] - }, - "Ratio": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "numerator": { - "$ref": "#/components/schemas/Quantity", - "description": "The value of the numerator." - }, - "denominator": { - "$ref": "#/components/schemas/Quantity", - "description": "The value of the denominator." - } - } - } - ] - }, - "Reference": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." - }, - "extension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." - } - }, - "reference": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources." - }, - "type": { - "type": "string", - "pattern": "\\S*", - "description": "The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources)." - }, - "identifier": { - "$ref": "#/components/schemas/Identifier", - "description": "An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference." - }, - "display": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Plain text narrative that identifies the resource in addition to the resource reference." - } - } - }, - "SampledData": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "origin": { - "$ref": "#/components/schemas/SimpleQuantity", - "description": "The base quantity that a measured value of zero represents. In addition, this provides the units of the entire measurement series." - }, - "period": { - "type": "number", - "description": "The length of time between sampling times, measured in milliseconds." - }, - "factor": { - "type": "number", - "description": "A correction factor that is applied to the sampled data points before they are added to the origin." - }, - "lowerLimit": { - "type": "number", - "description": "The lower limit of detection of the measured points. This is needed if any of the data points have the value \"L\" (lower than detection limit)." - }, - "upperLimit": { - "type": "number", - "description": "The upper limit of detection of the measured points. This is needed if any of the data points have the value \"U\" (higher than detection limit)." - }, - "dimensions": { - "type": "integer", - "format": "int32", - "description": "The number of sample points at each time point. If this value is greater than one, then the dimensions will be interlaced - all the sample points for a point in time will be recorded at once." - }, - "data": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A series of data points which are decimal values separated by a single space (character u20). The special values \"E\" (error), \"L\" (below detection limit) and \"U\" (above detection limit) can also be used in place of a decimal value." - } - }, - "required": [ - "origin", - "period", - "dimensions" - ] - } - ] - }, - "SimpleQuantity": { - "allOf": [ - { - "$ref": "#/components/schemas/Quantity" - }, - { - "type": "object", - "properties": {} - } - ] - }, - "Signature": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "type": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "An indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document." - }, - "minItems": 1 - }, - "when": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "When the digital signature was signed." - }, - "who": { - "$ref": "#/components/schemas/Reference", - "description": "A reference to an application-usable description of the identity that signed (e.g. the signature used their private key)." - }, - "onBehalfOf": { - "$ref": "#/components/schemas/Reference", - "description": "A reference to an application-usable description of the identity that is represented by the signature." - }, - "targetFormat": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "A mime type that indicates the technical format of the target resources signed by the signature." - }, - "sigFormat": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "A mime type that indicates the technical format of the signature. Important mime types are application/signature+xml for X ML DigSig, application/jose for JWS, and image/* for a graphical image of a signature, etc." - }, - "data": { - "type": "string", - "pattern": "(\\s*([0-9a-zA-Z\\+/=]){4}\\s*)+", - "description": "The base64 encoding of the Signature content. When signature is not recorded electronically this element would be empty." - } - }, - "required": [ - "type", - "when", - "who" - ] - } - ] - }, - "Timing": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "event": { - "type": "array", - "items": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "Identifies specific times when the event occurs." - } - }, - "repeat": { - "$ref": "#/components/schemas/Timing_Repeat", - "description": "A set of rules that describe when the event is scheduled." - }, - "code": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "A code for the timing schedule (or just text in code.text). Some codes such as BID are ubiquitous, but many institutions define their own additional codes. If a code is provided, the code is understood to be a complete statement of whatever is specified in the structured timing data, and either the code or the data may be used to interpret the Timing, with the exception that .repeat.bounds still applies over the code (and is not contained in the code)." - } - } - } - ] - }, - "Timing_Repeat": { - "allOf": [ - { - "$ref": "#/components/schemas/BackboneElement" - }, - { - "type": "object", - "properties": { - "boundsDuration": { - "$ref": "#/components/schemas/Duration", - "description": "Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule." - }, - "boundsRange": { - "$ref": "#/components/schemas/Range", - "description": "Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule." - }, - "boundsPeriod": { - "$ref": "#/components/schemas/Period", - "description": "Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "A total count of the desired number of repetitions across the duration of the entire timing specification. If countMax is present, this element indicates the lower bound of the allowed range of count values." - }, - "countMax": { - "type": "integer", - "format": "int32", - "description": "If present, indicates that the count is a range - so to perform the action between [count] and [countMax] times." - }, - "duration": { - "type": "number", - "description": "How long this thing happens for when it happens. If durationMax is present, this element indicates the lower bound of the allowed range of the duration." - }, - "durationMax": { - "type": "number", - "description": "If present, indicates that the duration is a range - so to perform the action between [duration] and [durationMax] time length." - }, - "durationUnit": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The units of time for the duration, in UCUM units." - }, - "frequency": { - "type": "integer", - "format": "int32", - "description": "The number of times to repeat the action within the specified period. If frequencyMax is present, this element indicates the lower bound of the allowed range of the frequency." - }, - "frequencyMax": { - "type": "integer", - "format": "int32", - "description": "If present, indicates that the frequency is a range - so to repeat between [frequency] and [frequencyMax] times within the period or period range." - }, - "period": { - "type": "number", - "description": "Indicates the duration of time over which repetitions are to occur; e.g. to express \"3 times per day\", 3 would be the frequency and \"1 day\" would be the period. If periodMax is present, this element indicates the lower bound of the allowed range of the period length." - }, - "periodMax": { - "type": "number", - "description": "If present, indicates that the period is a range from [period] to [periodMax], allowing expressing concepts such as \"do this once every 3-5 days." - }, - "periodUnit": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The units of time for the period in UCUM units." - }, - "dayOfWeek": { - "type": "array", - "items": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "If one or more days of week is provided, then the action happens only on the specified day(s)." - } - }, - "timeOfDay": { - "type": "array", - "items": { - "type": "string", - "pattern": "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?", - "description": "Specified time of day for action to take place." - } - }, - "when": { - "type": "array", - "items": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "An approximate time period during the day, potentially linked to an event of daily living that indicates when the action should occur." - } - }, - "offset": { - "type": "integer", - "format": "int32", - "description": "The number of minutes from the event. If the event code does not indicate whether the minutes is before or after the event, then the offset is assumed to be after the event." - } - } - } - ] - }, - "ContactDetail": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "name": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "The name of an individual to contact." - }, - "telecom": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ContactPoint", - "description": "The contact details for the individual (if a name was provided) or the organization." - } - } - } - } - ] - }, - "RelatedArtifact": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The type of relationship to the related artifact." - }, - "label": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A short label that can be used to reference the citation from elsewhere in the containing artifact, such as a footnote index." - }, - "display": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A brief description of the document or knowledge resource being referenced, suitable for display to a consumer." - }, - "citation": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format." - }, - "url": { - "type": "string", - "pattern": "\\S*", - "description": "A url for the artifact that can be followed to access the actual content." - }, - "document": { - "$ref": "#/components/schemas/Attachment", - "description": "The document being referenced, represented as an attachment. This is exclusive with the resource element." - }, - "resource": { - "type": "string", - "pattern": "\\S*", - "description": "The related resource, such as a library, value set, profile, or other knowledge resource." - } - }, - "required": [ - "type" - ] - } - ] - }, - "UsageContext": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "code": { - "$ref": "#/components/schemas/Coding", - "description": "A code that identifies the type of context being specified by this usage context." - }, - "valueCodeableConcept": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "A value that defines the context specified in this context of use. The interpretation of the value is defined by the code." - }, - "valueQuantity": { - "$ref": "#/components/schemas/Quantity", - "description": "A value that defines the context specified in this context of use. The interpretation of the value is defined by the code." - }, - "valueRange": { - "$ref": "#/components/schemas/Range", - "description": "A value that defines the context specified in this context of use. The interpretation of the value is defined by the code." - }, - "valueReference": { - "$ref": "#/components/schemas/Reference", - "description": "A value that defines the context specified in this context of use. The interpretation of the value is defined by the code." - } - }, - "required": [ - "code" - ] - } - ] - }, - "Meta": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "versionId": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted." - }, - "lastUpdated": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "When the resource last changed - e.g. when the version changed." - }, - "source": { - "type": "string", - "pattern": "\\S*", - "description": "A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc." - }, - "profile": { - "type": "array", - "items": { - "type": "string", - "pattern": "\\S*", - "description": "A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)." - } - }, - "security": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure." - } - }, - "tag": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Coding", - "description": "Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource." - } - } - } - } - ] - }, - "Narrative": { - "allOf": [ - { - "$ref": "#/components/schemas/Element" - }, - { - "type": "object", - "properties": { - "status": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data." - }, - "div": { - "type": "string", - "description": "The actual narrative content, a stripped down version of XHTML." - } - }, - "required": [ - "status", - "div" - ] - } - ] - }, - "Extension": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." - }, - "extension": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Extension", - "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." - } - }, - "url": { - "type": "string", - "pattern": "\\S*", - "description": "Source of the definition for the extension code - a logical name or a URL." - }, - "valueBase64Binary": { - "type": "string", - "pattern": "(\\s*([0-9a-zA-Z\\+/=]){4}\\s*)+", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueBoolean": { - "type": "boolean", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueCanonical": { - "type": "string", - "pattern": "\\S*", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueCode": { - "type": "string", - "pattern": "[^\\s]+(\\s[^\\s]+)*", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueDate": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueDateTime": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueDecimal": { - "type": "number", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueId": { - "type": "string", - "pattern": "[A-Za-z0-9\\-\\.]{1,64}", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueInstant": { - "type": "string", - "pattern": "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueInteger": { - "type": "integer", - "format": "int32", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueMarkdown": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueOid": { - "type": "string", - "pattern": "urn:oid:[0-2](\\.(0|[1-9][0-9]*))+", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valuePositiveInt": { - "type": "integer", - "format": "int32", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueString": { - "type": "string", - "pattern": "[ \\r\\n\\t\\S]+", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueTime": { - "type": "string", - "pattern": "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueUnsignedInt": { - "type": "integer", - "format": "int32", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueUri": { - "type": "string", - "pattern": "\\S*", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueUrl": { - "type": "string", - "pattern": "\\S*", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueUuid": { - "type": "string", - "pattern": "urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueAddress": { - "$ref": "#/components/schemas/Address", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueAge": { - "$ref": "#/components/schemas/Age", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueAnnotation": { - "$ref": "#/components/schemas/Annotation", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueAttachment": { - "$ref": "#/components/schemas/Attachment", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueCodeableConcept": { - "$ref": "#/components/schemas/CodeableConcept", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueCoding": { - "$ref": "#/components/schemas/Coding", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueContactPoint": { - "$ref": "#/components/schemas/ContactPoint", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueCount": { - "$ref": "#/components/schemas/Count", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueDistance": { - "$ref": "#/components/schemas/Distance", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueDuration": { - "$ref": "#/components/schemas/Duration", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueHumanName": { - "$ref": "#/components/schemas/HumanName", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueIdentifier": { - "$ref": "#/components/schemas/Identifier", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueMoney": { - "$ref": "#/components/schemas/Money", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valuePeriod": { - "$ref": "#/components/schemas/Period", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueQuantity": { - "$ref": "#/components/schemas/Quantity", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueRange": { - "$ref": "#/components/schemas/Range", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueRatio": { - "$ref": "#/components/schemas/Ratio", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueReference": { - "$ref": "#/components/schemas/Reference", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueSampledData": { - "$ref": "#/components/schemas/SampledData", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueSignature": { - "$ref": "#/components/schemas/Signature", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueTiming": { - "$ref": "#/components/schemas/Timing", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueContactDetail": { - "$ref": "#/components/schemas/ContactDetail", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueRelatedArtifact": { - "$ref": "#/components/schemas/RelatedArtifact", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueUsageContext": { - "$ref": "#/components/schemas/UsageContext", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - }, - "valueMeta": { - "$ref": "#/components/schemas/Meta", - "description": "Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)." - } - }, - "required": [ - "url" - ] - } - } - } - } \ No newline at end of file diff --git a/sonar-project.properties b/sonar-project.properties index c44de3cb9..89d610d4c 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -3,7 +3,7 @@ sonar.projectKey=NHSDigital_immunisation-fhir-api sonar.organization=nhsdigital sonar.host.url=https://sonarcloud.io sonar.python.version=3.11 -sonar.exclusions=**/e2e/**,**/e2e_batch/**,**/temporary_sandbox/**,**/devtools/**,**/proxies/**,**/scripts/**,**/terraform/**,**/tests/** +sonar.exclusions=**/e2e/**,**/e2e_batch/**,**/temporary_sandbox/**,**/devtools/**,**/proxies/**,**/utilities/scripts/**,**/terraform/**,**/tests/** sonar.python.coverage.reportPaths=backend-coverage.xml,delta-coverage.xml,ack-lambda-coverage.xml,filenameprocessor-coverage.xml,recordforwarder-coverage.xml,recordprocessor-coverage.xml,mesh_processor-coverage.xml,redis_sync-coverage.xml,mns_subscription-coverage.xml,id_sync-coverage.xml,shared-coverage.xml,batchprocessorfilter-coverage.xml sonar.cpd.exclusions=**/cache.py,**/authentication.py,**/test_cache.py,**/test_authentication.py,**/mns_service.py,**/errors.py,**/Dockerfile,lambdas/shared/src/common/**,filenameprocessor/src/logging_decorator.py,backend/src/fhir_service.py sonar.issue.ignore.multicriteria=exclude_snomed_urls,exclude_hl7_urls diff --git a/e2e/.env.default b/tests/e2e/.env.default similarity index 100% rename from e2e/.env.default rename to tests/e2e/.env.default diff --git a/e2e/.gitignore b/tests/e2e/.gitignore similarity index 100% rename from e2e/.gitignore rename to tests/e2e/.gitignore diff --git a/e2e/Makefile b/tests/e2e/Makefile similarity index 100% rename from e2e/Makefile rename to tests/e2e/Makefile diff --git a/e2e/README.md b/tests/e2e/README.md similarity index 100% rename from e2e/README.md rename to tests/e2e/README.md diff --git a/devtools/__init__.py b/tests/e2e/__init__.py similarity index 100% rename from devtools/__init__.py rename to tests/e2e/__init__.py diff --git a/e2e/__init__.py b/tests/e2e/lib/__init__.py similarity index 100% rename from e2e/__init__.py rename to tests/e2e/lib/__init__.py diff --git a/e2e/lib/apigee.py b/tests/e2e/lib/apigee.py similarity index 100% rename from e2e/lib/apigee.py rename to tests/e2e/lib/apigee.py diff --git a/e2e/lib/authentication.py b/tests/e2e/lib/authentication.py similarity index 100% rename from e2e/lib/authentication.py rename to tests/e2e/lib/authentication.py diff --git a/e2e/lib/env.py b/tests/e2e/lib/env.py similarity index 100% rename from e2e/lib/env.py rename to tests/e2e/lib/env.py diff --git a/e2e/lib/jwks.py b/tests/e2e/lib/jwks.py similarity index 100% rename from e2e/lib/jwks.py rename to tests/e2e/lib/jwks.py diff --git a/e2e/poetry.lock b/tests/e2e/poetry.lock similarity index 100% rename from e2e/poetry.lock rename to tests/e2e/poetry.lock diff --git a/e2e/pyproject.toml b/tests/e2e/pyproject.toml similarity index 100% rename from e2e/pyproject.toml rename to tests/e2e/pyproject.toml diff --git a/e2e/test_authorization.py b/tests/e2e/test_authorization.py similarity index 100% rename from e2e/test_authorization.py rename to tests/e2e/test_authorization.py diff --git a/e2e/test_create_immunization.py b/tests/e2e/test_create_immunization.py similarity index 100% rename from e2e/test_create_immunization.py rename to tests/e2e/test_create_immunization.py diff --git a/e2e/test_delete_immunization.py b/tests/e2e/test_delete_immunization.py similarity index 100% rename from e2e/test_delete_immunization.py rename to tests/e2e/test_delete_immunization.py diff --git a/e2e/test_delta_immunization.py b/tests/e2e/test_delta_immunization.py similarity index 100% rename from e2e/test_delta_immunization.py rename to tests/e2e/test_delta_immunization.py diff --git a/e2e/test_deployment.py b/tests/e2e/test_deployment.py similarity index 100% rename from e2e/test_deployment.py rename to tests/e2e/test_deployment.py diff --git a/e2e/test_get_immunization.py b/tests/e2e/test_get_immunization.py similarity index 100% rename from e2e/test_get_immunization.py rename to tests/e2e/test_get_immunization.py diff --git a/e2e/test_proxy.py b/tests/e2e/test_proxy.py similarity index 100% rename from e2e/test_proxy.py rename to tests/e2e/test_proxy.py diff --git a/e2e/test_search_by_identifier_immunization.py b/tests/e2e/test_search_by_identifier_immunization.py similarity index 100% rename from e2e/test_search_by_identifier_immunization.py rename to tests/e2e/test_search_by_identifier_immunization.py diff --git a/e2e/test_search_identifier_elements_immunization.py b/tests/e2e/test_search_identifier_elements_immunization.py similarity index 100% rename from e2e/test_search_identifier_elements_immunization.py rename to tests/e2e/test_search_identifier_elements_immunization.py diff --git a/e2e/test_search_immunization.py b/tests/e2e/test_search_immunization.py similarity index 100% rename from e2e/test_search_immunization.py rename to tests/e2e/test_search_immunization.py diff --git a/e2e/test_sqs_dlq.py b/tests/e2e/test_sqs_dlq.py similarity index 100% rename from e2e/test_sqs_dlq.py rename to tests/e2e/test_sqs_dlq.py diff --git a/e2e/test_update_immunization.py b/tests/e2e/test_update_immunization.py similarity index 100% rename from e2e/test_update_immunization.py rename to tests/e2e/test_update_immunization.py diff --git a/e2e/lib/__init__.py b/tests/e2e/utils/__init__.py similarity index 100% rename from e2e/lib/__init__.py rename to tests/e2e/utils/__init__.py diff --git a/e2e/utils/authorization.py b/tests/e2e/utils/authorization.py similarity index 100% rename from e2e/utils/authorization.py rename to tests/e2e/utils/authorization.py diff --git a/e2e/utils/base_test.py b/tests/e2e/utils/base_test.py similarity index 100% rename from e2e/utils/base_test.py rename to tests/e2e/utils/base_test.py diff --git a/e2e/utils/batch.py b/tests/e2e/utils/batch.py similarity index 100% rename from e2e/utils/batch.py rename to tests/e2e/utils/batch.py diff --git a/e2e/utils/constants.py b/tests/e2e/utils/constants.py similarity index 100% rename from e2e/utils/constants.py rename to tests/e2e/utils/constants.py diff --git a/e2e/utils/delete_sqs_messages.py b/tests/e2e/utils/delete_sqs_messages.py similarity index 100% rename from e2e/utils/delete_sqs_messages.py rename to tests/e2e/utils/delete_sqs_messages.py diff --git a/e2e/utils/factories.py b/tests/e2e/utils/factories.py similarity index 100% rename from e2e/utils/factories.py rename to tests/e2e/utils/factories.py diff --git a/e2e/utils/get_sqs_url.py b/tests/e2e/utils/get_sqs_url.py similarity index 100% rename from e2e/utils/get_sqs_url.py rename to tests/e2e/utils/get_sqs_url.py diff --git a/e2e/utils/immunisation_api.py b/tests/e2e/utils/immunisation_api.py similarity index 100% rename from e2e/utils/immunisation_api.py rename to tests/e2e/utils/immunisation_api.py diff --git a/e2e/utils/mappings.py b/tests/e2e/utils/mappings.py similarity index 100% rename from e2e/utils/mappings.py rename to tests/e2e/utils/mappings.py diff --git a/e2e/utils/resource.py b/tests/e2e/utils/resource.py similarity index 98% rename from e2e/utils/resource.py rename to tests/e2e/utils/resource.py index 4c236c758..45a30733c 100644 --- a/e2e/utils/resource.py +++ b/tests/e2e/utils/resource.py @@ -14,7 +14,7 @@ def load_example(path: str) -> dict: - with open(f"{current_directory}/../../specification/components/examples/{path}") as f: + with open(f"{current_directory}/../../../specification/components/examples/{path}") as f: return json.load(f, parse_float=Decimal) diff --git a/e2e_batch/Makefile b/tests/e2e_batch/Makefile similarity index 100% rename from e2e_batch/Makefile rename to tests/e2e_batch/Makefile diff --git a/e2e_batch/README.md b/tests/e2e_batch/README.md similarity index 100% rename from e2e_batch/README.md rename to tests/e2e_batch/README.md diff --git a/e2e_batch/clear_dynamodb.py b/tests/e2e_batch/clear_dynamodb.py similarity index 100% rename from e2e_batch/clear_dynamodb.py rename to tests/e2e_batch/clear_dynamodb.py diff --git a/e2e_batch/clients.py b/tests/e2e_batch/clients.py similarity index 100% rename from e2e_batch/clients.py rename to tests/e2e_batch/clients.py diff --git a/e2e_batch/constants.py b/tests/e2e_batch/constants.py similarity index 100% rename from e2e_batch/constants.py rename to tests/e2e_batch/constants.py diff --git a/e2e_batch/errors.py b/tests/e2e_batch/errors.py similarity index 100% rename from e2e_batch/errors.py rename to tests/e2e_batch/errors.py diff --git a/e2e_batch/poetry.lock b/tests/e2e_batch/poetry.lock similarity index 100% rename from e2e_batch/poetry.lock rename to tests/e2e_batch/poetry.lock diff --git a/e2e_batch/pr-NNN.env b/tests/e2e_batch/pr-NNN.env similarity index 100% rename from e2e_batch/pr-NNN.env rename to tests/e2e_batch/pr-NNN.env diff --git a/e2e_batch/pyproject.toml b/tests/e2e_batch/pyproject.toml similarity index 100% rename from e2e_batch/pyproject.toml rename to tests/e2e_batch/pyproject.toml diff --git a/e2e_batch/scenarios.py b/tests/e2e_batch/scenarios.py similarity index 100% rename from e2e_batch/scenarios.py rename to tests/e2e_batch/scenarios.py diff --git a/e2e_batch/test_e2e_batch.py b/tests/e2e_batch/test_e2e_batch.py similarity index 100% rename from e2e_batch/test_e2e_batch.py rename to tests/e2e_batch/test_e2e_batch.py diff --git a/e2e_batch/utils.py b/tests/e2e_batch/utils.py similarity index 100% rename from e2e_batch/utils.py rename to tests/e2e_batch/utils.py diff --git a/e2e_batch/vax_suppliers.py b/tests/e2e_batch/vax_suppliers.py similarity index 100% rename from e2e_batch/vax_suppliers.py rename to tests/e2e_batch/vax_suppliers.py diff --git a/tests/test_crud_immunisation_api.py b/tests/tests/test_crud_immunisation_api.py similarity index 100% rename from tests/test_crud_immunisation_api.py rename to tests/tests/test_crud_immunisation_api.py diff --git a/devtools/.gitignore b/utilities/devtools/.gitignore similarity index 100% rename from devtools/.gitignore rename to utilities/devtools/.gitignore diff --git a/devtools/.terraform.lock.hcl b/utilities/devtools/.terraform.lock.hcl similarity index 100% rename from devtools/.terraform.lock.hcl rename to utilities/devtools/.terraform.lock.hcl diff --git a/devtools/Makefile b/utilities/devtools/Makefile similarity index 100% rename from devtools/Makefile rename to utilities/devtools/Makefile diff --git a/devtools/README.md b/utilities/devtools/README.md similarity index 100% rename from devtools/README.md rename to utilities/devtools/README.md diff --git a/e2e/utils/__init__.py b/utilities/devtools/__init__.py similarity index 100% rename from e2e/utils/__init__.py rename to utilities/devtools/__init__.py diff --git a/devtools/dynamodb.tf b/utilities/devtools/dynamodb.tf similarity index 100% rename from devtools/dynamodb.tf rename to utilities/devtools/dynamodb.tf diff --git a/devtools/generate_data.py b/utilities/devtools/generate_data.py similarity index 100% rename from devtools/generate_data.py rename to utilities/devtools/generate_data.py diff --git a/devtools/img/relational-model.png b/utilities/devtools/img/relational-model.png similarity index 100% rename from devtools/img/relational-model.png rename to utilities/devtools/img/relational-model.png diff --git a/devtools/localstack-compose.yml b/utilities/devtools/localstack-compose.yml similarity index 100% rename from devtools/localstack-compose.yml rename to utilities/devtools/localstack-compose.yml diff --git a/devtools/pytest.ini b/utilities/devtools/pytest.ini similarity index 100% rename from devtools/pytest.ini rename to utilities/devtools/pytest.ini diff --git a/devtools/requirements.txt b/utilities/devtools/requirements.txt similarity index 100% rename from devtools/requirements.txt rename to utilities/devtools/requirements.txt diff --git a/devtools/sample_event.json b/utilities/devtools/sample_event.json similarity index 100% rename from devtools/sample_event.json rename to utilities/devtools/sample_event.json diff --git a/devtools/sample_imms.json b/utilities/devtools/sample_imms.json similarity index 100% rename from devtools/sample_imms.json rename to utilities/devtools/sample_imms.json diff --git a/devtools/seed.py b/utilities/devtools/seed.py similarity index 100% rename from devtools/seed.py rename to utilities/devtools/seed.py diff --git a/sandbox/.gitignore b/utilities/sandbox/.gitignore similarity index 100% rename from sandbox/.gitignore rename to utilities/sandbox/.gitignore diff --git a/sandbox/Dockerfile b/utilities/sandbox/Dockerfile similarity index 100% rename from sandbox/Dockerfile rename to utilities/sandbox/Dockerfile diff --git a/sandbox/HealthStatusEndpoint.json b/utilities/sandbox/HealthStatusEndpoint.json similarity index 100% rename from sandbox/HealthStatusEndpoint.json rename to utilities/sandbox/HealthStatusEndpoint.json diff --git a/sandbox/Makefile b/utilities/sandbox/Makefile similarity index 100% rename from sandbox/Makefile rename to utilities/sandbox/Makefile diff --git a/sandbox/__init__.py b/utilities/sandbox/__init__.py similarity index 100% rename from sandbox/__init__.py rename to utilities/sandbox/__init__.py diff --git a/scripts/build_proxy.sh b/utilities/scripts/build_proxy.sh similarity index 100% rename from scripts/build_proxy.sh rename to utilities/scripts/build_proxy.sh diff --git a/scripts/calculate_version.py b/utilities/scripts/calculate_version.py similarity index 100% rename from scripts/calculate_version.py rename to utilities/scripts/calculate_version.py diff --git a/scripts/destroy_unused_workspaces.py b/utilities/scripts/destroy_unused_workspaces.py similarity index 100% rename from scripts/destroy_unused_workspaces.py rename to utilities/scripts/destroy_unused_workspaces.py diff --git a/scripts/pre-commit b/utilities/scripts/pre-commit similarity index 100% rename from scripts/pre-commit rename to utilities/scripts/pre-commit diff --git a/scripts/set_version.py b/utilities/scripts/set_version.py similarity index 100% rename from scripts/set_version.py rename to utilities/scripts/set_version.py diff --git a/scripts/setup-python-envs.sh b/utilities/scripts/setup-python-envs.sh similarity index 100% rename from scripts/setup-python-envs.sh rename to utilities/scripts/setup-python-envs.sh diff --git a/scripts/yaml2json.py b/utilities/scripts/yaml2json.py similarity index 100% rename from scripts/yaml2json.py rename to utilities/scripts/yaml2json.py diff --git a/specification/components/examples/Immunization/GET-Immunization.json b/utilities/specification/components/examples/Immunization/GET-Immunization.json similarity index 100% rename from specification/components/examples/Immunization/GET-Immunization.json rename to utilities/specification/components/examples/Immunization/GET-Immunization.json diff --git a/specification/components/examples/Immunization/completed_covid19_immunization_event.json b/utilities/specification/components/examples/Immunization/completed_covid19_immunization_event.json similarity index 100% rename from specification/components/examples/Immunization/completed_covid19_immunization_event.json rename to utilities/specification/components/examples/Immunization/completed_covid19_immunization_event.json diff --git a/specification/components/examples/Immunization/completed_covid19_immunization_event_filtered_for_read.json b/utilities/specification/components/examples/Immunization/completed_covid19_immunization_event_filtered_for_read.json similarity index 100% rename from specification/components/examples/Immunization/completed_covid19_immunization_event_filtered_for_read.json rename to utilities/specification/components/examples/Immunization/completed_covid19_immunization_event_filtered_for_read.json diff --git a/specification/components/examples/Immunization/completed_covid19_immunization_event_filtered_for_search.json b/utilities/specification/components/examples/Immunization/completed_covid19_immunization_event_filtered_for_search.json similarity index 100% rename from specification/components/examples/Immunization/completed_covid19_immunization_event_filtered_for_search.json rename to utilities/specification/components/examples/Immunization/completed_covid19_immunization_event_filtered_for_search.json diff --git a/specification/components/examples/Immunization/completed_covid19_immunization_event_mandatory_fields_only.json b/utilities/specification/components/examples/Immunization/completed_covid19_immunization_event_mandatory_fields_only.json similarity index 100% rename from specification/components/examples/Immunization/completed_covid19_immunization_event_mandatory_fields_only.json rename to utilities/specification/components/examples/Immunization/completed_covid19_immunization_event_mandatory_fields_only.json diff --git a/specification/components/examples/Immunization/completed_flu_immunization_event.json b/utilities/specification/components/examples/Immunization/completed_flu_immunization_event.json similarity index 100% rename from specification/components/examples/Immunization/completed_flu_immunization_event.json rename to utilities/specification/components/examples/Immunization/completed_flu_immunization_event.json diff --git a/specification/components/examples/Immunization/completed_hpv_immunization_event.json b/utilities/specification/components/examples/Immunization/completed_hpv_immunization_event.json similarity index 100% rename from specification/components/examples/Immunization/completed_hpv_immunization_event.json rename to utilities/specification/components/examples/Immunization/completed_hpv_immunization_event.json diff --git a/specification/components/examples/Immunization/completed_mmr_immunization_event.json b/utilities/specification/components/examples/Immunization/completed_mmr_immunization_event.json similarity index 100% rename from specification/components/examples/Immunization/completed_mmr_immunization_event.json rename to utilities/specification/components/examples/Immunization/completed_mmr_immunization_event.json diff --git a/specification/components/examples/Immunization/completed_rsv_immunization_event.json b/utilities/specification/components/examples/Immunization/completed_rsv_immunization_event.json similarity index 100% rename from specification/components/examples/Immunization/completed_rsv_immunization_event.json rename to utilities/specification/components/examples/Immunization/completed_rsv_immunization_event.json diff --git a/specification/components/examples/Immunization/completed_rsv_immunization_event_filtered_for_read.json b/utilities/specification/components/examples/Immunization/completed_rsv_immunization_event_filtered_for_read.json similarity index 100% rename from specification/components/examples/Immunization/completed_rsv_immunization_event_filtered_for_read.json rename to utilities/specification/components/examples/Immunization/completed_rsv_immunization_event_filtered_for_read.json diff --git a/specification/components/examples/OperationOutcome/400-invalid.json b/utilities/specification/components/examples/OperationOutcome/400-invalid.json similarity index 100% rename from specification/components/examples/OperationOutcome/400-invalid.json rename to utilities/specification/components/examples/OperationOutcome/400-invalid.json diff --git a/specification/components/examples/OperationOutcome/401-invalid_access_token.json b/utilities/specification/components/examples/OperationOutcome/401-invalid_access_token.json similarity index 100% rename from specification/components/examples/OperationOutcome/401-invalid_access_token.json rename to utilities/specification/components/examples/OperationOutcome/401-invalid_access_token.json diff --git a/specification/components/examples/OperationOutcome/404-not_found.json b/utilities/specification/components/examples/OperationOutcome/404-not_found.json similarity index 100% rename from specification/components/examples/OperationOutcome/404-not_found.json rename to utilities/specification/components/examples/OperationOutcome/404-not_found.json diff --git a/specification/components/schemas/GetResponse.yaml b/utilities/specification/components/schemas/GetResponse.yaml similarity index 100% rename from specification/components/schemas/GetResponse.yaml rename to utilities/specification/components/schemas/GetResponse.yaml diff --git a/specification/components/schemas/Location.yaml b/utilities/specification/components/schemas/Location.yaml similarity index 100% rename from specification/components/schemas/Location.yaml rename to utilities/specification/components/schemas/Location.yaml diff --git a/specification/components/schemas/OperationOutcome.yaml b/utilities/specification/components/schemas/OperationOutcome.yaml similarity index 100% rename from specification/components/schemas/OperationOutcome.yaml rename to utilities/specification/components/schemas/OperationOutcome.yaml diff --git a/specification/components/schemas/XCorrelationId.yaml b/utilities/specification/components/schemas/XCorrelationId.yaml similarity index 100% rename from specification/components/schemas/XCorrelationId.yaml rename to utilities/specification/components/schemas/XCorrelationId.yaml diff --git a/specification/immunisation-fhir-api.json b/utilities/specification/immunisation-fhir-api.json similarity index 98% rename from specification/immunisation-fhir-api.json rename to utilities/specification/immunisation-fhir-api.json index fea524bbb..d9575e9ce 100644 --- a/specification/immunisation-fhir-api.json +++ b/utilities/specification/immunisation-fhir-api.json @@ -2,7 +2,7 @@ "openapi": "3.0.0", "info": { "title": "Immunization-fhir-api", - "version": "Computed and injected at build time by `scripts/set_version.py`", + "version": "Computed and injected at build time by `utilities/scripts/set_version.py`", "description": "## Overview\n \nUse this API to access a patient's immunisation record. It is part of the [Vaccinations Data Flow Management](https://digital.nhs.uk/services/vaccinations-data-flow-management). It is intended to extend and replace [Immunisation History - FHIR API](https://digital.nhs.uk/developer/api-catalogue/immunisation-history-fhir) and existing [Vaccination](https://digital.nhs.uk/developer/api-catalogue/vaccination) flows. \n\nYou can use this API to:\n \n- create and record a patient immunisation \n- search for a patient's immunisation records\n- get the details of an immunisation record\n- update an immunisation record \n- identify an immunisation record as entered in error \n \nYou cannot use this API to:\n \n- retrieve the immunisation record of multiple patients at once \n- record or update a patient's demographic details\n \nYou can create, read, update and delete events for the following vaccination types:\n \n- coronavirus (`COVID19`)\n- influenza (`FLU`)\n- measles, mumps and rubella (`MMR`)\n- human papillomavirus (`HPV`)\n- tetanus, diphtheria and polio (`3IN1`)\n- meningococcal infectious disease (`MENACWY`)\n- respiratory syncytial virus infection (`RSV`)\n \n### Data availability, timing and quality\n\nThis is a real-time service, constrained by the time taken for providers to transfer vaccination events. In most cases, a record will become available within 48 hours of the immunisation event.\n\nThe API search interaction will only return immunisation records based on a traced NHS number. Other interactions require the use of the immunisation ID assigned by the API to interact with individual records for read, update and delete.\n\nThe vaccination events for all disease types are limited to vaccinations administered on behalf of NHS England.\n\nThere is a limited scope of data validation upon receipt of the data. Whilst the data is generally of a good, reliable quality, consumers must be aware that data is shared as received, and users should consider the risk of potential absences or inaccuracies of the data. \n\n \n## Who can use this API \nThis API can only be used where there is a commercial, legal and clinical basis to do so. Make sure you have a valid use case before you go too far with your development.\n\nYou must demonstrate you have a valid use case as part of digital onboarding. \n\nYou must do this before you can go live (see [Onboarding](https://digital.nhs.uk/developer/api-catalogue/immunisation-fhir-api#overview--onboarding) below).\n\n### Who can access immunisation event records\n \nHealth and care organisations in England can access immunisation event records.\n\nLegitimate direct care examples include NHS organisations delivering healthcare, local authorities delivering care, third sector and private sector health and care organisations, and developers delivering systems to health and care organisations.\n\n## API status and roadmap\nThe current roadmap includes enhancements to support all vaccines covered by the national Section 7a immunisation programme.\n \nThis API is in [Beta](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#statuses) for the following vaccine types:\n \n- respiratory syncytial virus (RSV)\n- influenza\n- human papillomavirus (HPV)\n\nThis API is in development for the following vaccine types:\n \n- Measles, Mumps and Rubella (MMR)\n- MenACWY\n- diphtheria, tetanus and polio (3-in-1)\n \nThis API will be configured to support all other section 7a vaccines from early 2026 onwards, adding support for the following vaccine types:\n \n- pneumococcal\n- shingles\n- pertussis\n- coronavirus (COVID-19) vaccinations\n- MMRV\n- diphtheria / tetanus / acellular pertussis / inactivated polio vaccine / haemophilus influenzae type b / hepatitis B (6-in-1)\n- rotavirus\n- meningococcal (MenB)\n- diphtheria / tetanus / acellular pertussis / inactivated polio vaccine (4-in-1)\n- haemophilus influenzae type b / meningococcal group C (Hib/MenC)\n- Bacillus Calmette-Guérin (BCG)\n- hepatitis B\n \nTo suggest new features, comment, or if you have any other queries, [contact us](https://digital.nhs.uk/developer/help-and-support).\n \n## Service level\nThis API will be a platinum service, meaning it is operational and supported 24 x 7 x 365.\n \nFor more details, see [service levels](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#service-levels).\n \n## Technology\n \nThis API is [RESTful](https://digital.nhs.uk/developer/guides-and-documentation/our-api-technologies#basic-rest).\n \nIt 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.\n \nIt includes some country-specific FHIR extensions, which conform to [FHIR UK Core](https://digital.nhs.uk/services/fhir-uk-core), specifically [fhir.r4.ukcore.stu2](https://simplifier.net/packages/fhir.r4.ukcore.stu2).\n \nYou do not need to know much about FHIR to use this API - FHIR APIs are just RESTful APIs that follow specific rules.\nIn particular:\n- resource names are capitalised and singular, and use US spellings, for example `/Immunization` not `/immunisations`\n- array names are singular, for example `entry` not `entries` for address lines\n- data items that are country-specific and thus not included in the FHIR global base resources are usually wrapped in an `extension` object\n \nThere are [libraries and SDKs available](https://digital.nhs.uk/developer/guides-and-documentation/api-technologies-at-nhs-digital#fhir-libraries-and-sdks) to help with FHIR API integration.\n \n## Network access\nThis 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).\n \nFor more details see [Network access for APIs](https://digital.nhs.uk/developer/guides-and-documentation/network-access-for-apis).\n \n## Security and authorisation\n \nThis API currently has a single access mode: [application-restricted access](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.\n \nTo use this access mode, use the following security pattern:\n- [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) \n\n## Errors\nWe use standard HTTP status codes to show whether an API request succeeded or not. They are usually in the range:\n\n* 200 to 299 if it succeeded, including code 202 if it was accepted by an API that needs to wait for further action\n* 400 to 499 if it failed because of a client error by your application\n* 500 to 599 if it failed because of an error on our server\n\nErrors 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.\n\n## Open source\n\nYou might find the following [open source](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#open-source) resources useful:\n\n| Resource | Description | Links |\n|---------------------------|----------------------------------------------------------------------|--------------------------------------------------------------------------------|\n| Immunisation FHIR API | Source code for the API proxy, sandbox and specification. | [GitHub repo](https://github.dev/NHSDigital/immunisation-fhir-api/) |\n| FHIR libraries and SDKs | Various open source libraries for integrating with FHIR APIs. | [FHIR libraries and SDKs](https://digital.nhs.uk/developer/guides-and-documentation/api-technologies-at-nhs-digital#fhir-libraries-and-sdks) |\n| nhs-number | Python package containing utilities for NHS numbers including validity checks, normalisation and generation. | [GitHub repo](https://github.com/uk-fci/nhs-number) \\| [Python Package index](https://pypi.org/project/nhs-number/) \\| [Docs](https://nhs-number.uk-fci.tech/) |\n\n## Environments and Testing\n| Environment | Base URL |\n| ----------------- | --------------------------------------------------------------------- |\n| Sandbox | `https://sandbox.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4` |\n| Integration | `https://int.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4` | \n| Production | `https://api.service.nhs.uk/immunisation-fhir-api/FHIR/R4` |\n\n### Sandbox testing\nOur [sandbox environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#sandbox-testing):\n* is for early developer testing\n* only covers a limited set of scenarios\n* is stateless, so does not actually persist any updates\n* is open access, so does not allow you to test authorisation\n\nFor details of sandbox test scenarios, or to try out the sandbox using our 'Try this API' feature, see the documentation for each endpoint.\n\n### Integration testing\nOur [integration test environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing):\n* is for formal integration testing\n* is stateful, so persists updates\n* includes authorisation, with options for application-restricted access \n\nFor read-only testing, we will provide an Immunisation records test pack soon.\n\nTo test creating, updating and deleting patient vaccination events, you must set up your own test data.\n\nFor more details see [integration testing with our RESTful APIs](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing-with-our-restful-apis).\n\n## Onboarding\n \nYou need to get your software approved by us before it can go live with this API.\nWe call this onboarding.\nThe onboarding process can sometimes be quite long, so it's worth planning well ahead.\n\nThis API is currently in private Beta, but we expect to open it to new consumers soon. As part of this process, you need to demonstrate that you can manage risks and that your software conforms technically with the requirements for this API. Information on this page might impact the design of your software.\n\nTo understand how our online digital onboarding process works, see [digital onboarding](https://digital.nhs.uk/developer/guides-and-documentation/digital-onboarding#using-the-digital-onboarding-portal).\n\n## Related APIs\n\nThe following APIs are related to this API:\n\n### Immunisation History - FHIR API\nUse the [Immunisation History - FHIR API](https://digital.nhs.uk/developer/api-catalogue/immunisation-history-fhir) if you want to access vaccination records that are not yet available on this API.\n\n## Contact us\nFor 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). \n" }, "servers": [ diff --git a/utilities/specification/immunisation-fhir-api.minified.json b/utilities/specification/immunisation-fhir-api.minified.json new file mode 100644 index 000000000..83163e052 --- /dev/null +++ b/utilities/specification/immunisation-fhir-api.minified.json @@ -0,0 +1 @@ +{"openapi":"3.0.0","info":{"title":"Immunization-fhir-api","version":"Computed and injected at build time by `utilities/scripts/set_version.py`","description":"## Overview\n \nUse this API to access a patient's immunisation record. It is part of the [Vaccinations Data Flow Management](https://digital.nhs.uk/services/vaccinations-data-flow-management). It is intended to extend and replace [Immunisation History - FHIR API](https://digital.nhs.uk/developer/api-catalogue/immunisation-history-fhir) and existing [Vaccination](https://digital.nhs.uk/developer/api-catalogue/vaccination) flows. \n\nYou can use this API to:\n \n- create and record a patient immunisation \n- search for a patient's immunisation records\n- get the details of an immunisation record\n- update an immunisation record \n- identify an immunisation record as entered in error \n \nYou cannot use this API to:\n \n- retrieve the immunisation record of multiple patients at once \n- record or update a patient's demographic details\n \nYou can create, read, update and delete events for the following vaccination types:\n \n- coronavirus (`COVID19`)\n- influenza (`FLU`)\n- measles, mumps and rubella (`MMR`)\n- human papillomavirus (`HPV`)\n- tetanus, diphtheria and polio (`3IN1`)\n- meningococcal infectious disease (`MENACWY`)\n- respiratory syncytial virus infection (`RSV`)\n \n### Data availability, timing and quality\n\nThis is a real-time service, constrained by the time taken for providers to transfer vaccination events. In most cases, a record will become available within 48 hours of the immunisation event.\n\nThe API search interaction will only return immunisation records based on a traced NHS number. Other interactions require the use of the immunisation ID assigned by the API to interact with individual records for read, update and delete.\n\nThe vaccination events for all disease types are limited to vaccinations administered on behalf of NHS England.\n\nThere is a limited scope of data validation upon receipt of the data. Whilst the data is generally of a good, reliable quality, consumers must be aware that data is shared as received, and users should consider the risk of potential absences or inaccuracies of the data. \n\n \n## Who can use this API \nThis API can only be used where there is a commercial, legal and clinical basis to do so. Make sure you have a valid use case before you go too far with your development.\n\nYou must demonstrate you have a valid use case as part of digital onboarding. \n\nYou must do this before you can go live (see [Onboarding](https://digital.nhs.uk/developer/api-catalogue/immunisation-fhir-api#overview--onboarding) below).\n\n### Who can access immunisation event records\n \nHealth and care organisations in England can access immunisation event records.\n\nLegitimate direct care examples include NHS organisations delivering healthcare, local authorities delivering care, third sector and private sector health and care organisations, and developers delivering systems to health and care organisations.\n\n## API status and roadmap\nThe current roadmap includes enhancements to support all vaccines covered by the national Section 7a immunisation programme.\n \nThis API is in [Beta](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#statuses) for the following vaccine types:\n \n- respiratory syncytial virus (RSV)\n- influenza\n- human papillomavirus (HPV)\n\nThis API is in development for the following vaccine types:\n \n- Measles, Mumps and Rubella (MMR)\n- MenACWY\n- diphtheria, tetanus and polio (3-in-1)\n \nThis API will be configured to support all other section 7a vaccines from early 2026 onwards, adding support for the following vaccine types:\n \n- pneumococcal\n- shingles\n- pertussis\n- coronavirus (COVID-19) vaccinations\n- MMRV\n- diphtheria / tetanus / acellular pertussis / inactivated polio vaccine / haemophilus influenzae type b / hepatitis B (6-in-1)\n- rotavirus\n- meningococcal (MenB)\n- diphtheria / tetanus / acellular pertussis / inactivated polio vaccine (4-in-1)\n- haemophilus influenzae type b / meningococcal group C (Hib/MenC)\n- Bacillus Calmette-Guérin (BCG)\n- hepatitis B\n \nTo suggest new features, comment, or if you have any other queries, [contact us](https://digital.nhs.uk/developer/help-and-support).\n \n## Service level\nThis API will be a platinum service, meaning it is operational and supported 24 x 7 x 365.\n \nFor more details, see [service levels](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#service-levels).\n \n## Technology\n \nThis API is [RESTful](https://digital.nhs.uk/developer/guides-and-documentation/our-api-technologies#basic-rest).\n \nIt 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.\n \nIt includes some country-specific FHIR extensions, which conform to [FHIR UK Core](https://digital.nhs.uk/services/fhir-uk-core), specifically [fhir.r4.ukcore.stu2](https://simplifier.net/packages/fhir.r4.ukcore.stu2).\n \nYou do not need to know much about FHIR to use this API - FHIR APIs are just RESTful APIs that follow specific rules.\nIn particular:\n- resource names are capitalised and singular, and use US spellings, for example `/Immunization` not `/immunisations`\n- array names are singular, for example `entry` not `entries` for address lines\n- data items that are country-specific and thus not included in the FHIR global base resources are usually wrapped in an `extension` object\n \nThere are [libraries and SDKs available](https://digital.nhs.uk/developer/guides-and-documentation/api-technologies-at-nhs-digital#fhir-libraries-and-sdks) to help with FHIR API integration.\n \n## Network access\nThis 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).\n \nFor more details see [Network access for APIs](https://digital.nhs.uk/developer/guides-and-documentation/network-access-for-apis).\n \n## Security and authorisation\n \nThis API currently has a single access mode: [application-restricted access](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.\n \nTo use this access mode, use the following security pattern:\n- [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) \n\n## Errors\nWe use standard HTTP status codes to show whether an API request succeeded or not. They are usually in the range:\n\n* 200 to 299 if it succeeded, including code 202 if it was accepted by an API that needs to wait for further action\n* 400 to 499 if it failed because of a client error by your application\n* 500 to 599 if it failed because of an error on our server\n\nErrors 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.\n\n## Open source\n\nYou might find the following [open source](https://digital.nhs.uk/developer/guides-and-documentation/reference-guide#open-source) resources useful:\n\n| Resource | Description | Links |\n|---------------------------|----------------------------------------------------------------------|--------------------------------------------------------------------------------|\n| Immunisation FHIR API | Source code for the API proxy, sandbox and specification. | [GitHub repo](https://github.dev/NHSDigital/immunisation-fhir-api/) |\n| FHIR libraries and SDKs | Various open source libraries for integrating with FHIR APIs. | [FHIR libraries and SDKs](https://digital.nhs.uk/developer/guides-and-documentation/api-technologies-at-nhs-digital#fhir-libraries-and-sdks) |\n| nhs-number | Python package containing utilities for NHS numbers including validity checks, normalisation and generation. | [GitHub repo](https://github.com/uk-fci/nhs-number) \\| [Python Package index](https://pypi.org/project/nhs-number/) \\| [Docs](https://nhs-number.uk-fci.tech/) |\n\n## Environments and Testing\n| Environment | Base URL |\n| ----------------- | --------------------------------------------------------------------- |\n| Sandbox | `https://sandbox.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4` |\n| Integration | `https://int.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4` | \n| Production | `https://api.service.nhs.uk/immunisation-fhir-api/FHIR/R4` |\n\n### Sandbox testing\nOur [sandbox environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#sandbox-testing):\n* is for early developer testing\n* only covers a limited set of scenarios\n* is stateless, so does not actually persist any updates\n* is open access, so does not allow you to test authorisation\n\nFor details of sandbox test scenarios, or to try out the sandbox using our 'Try this API' feature, see the documentation for each endpoint.\n\n### Integration testing\nOur [integration test environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing):\n* is for formal integration testing\n* is stateful, so persists updates\n* includes authorisation, with options for application-restricted access \n\nFor read-only testing, we will provide an Immunisation records test pack soon.\n\nTo test creating, updating and deleting patient vaccination events, you must set up your own test data.\n\nFor more details see [integration testing with our RESTful APIs](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing-with-our-restful-apis).\n\n## Onboarding\n \nYou need to get your software approved by us before it can go live with this API.\nWe call this onboarding.\nThe onboarding process can sometimes be quite long, so it's worth planning well ahead.\n\nThis API is currently in private Beta, but we expect to open it to new consumers soon. As part of this process, you need to demonstrate that you can manage risks and that your software conforms technically with the requirements for this API. Information on this page might impact the design of your software.\n\nTo understand how our online digital onboarding process works, see [digital onboarding](https://digital.nhs.uk/developer/guides-and-documentation/digital-onboarding#using-the-digital-onboarding-portal).\n\n## Related APIs\n\nThe following APIs are related to this API:\n\n### Immunisation History - FHIR API\nUse the [Immunisation History - FHIR API](https://digital.nhs.uk/developer/api-catalogue/immunisation-history-fhir) if you want to access vaccination records that are not yet available on this API.\n\n## Contact us\nFor 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). \n"},"servers":[{"url":"https://sandbox.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4","description":"Sandbox Server"},{"url":"https://int.api.service.nhs.uk/immunisation-fhir-api/FHIR/R4","description":"Integration Server"}],"paths":{"/Immunization":{"post":{"summary":"Record a vaccination given to a patient","operationId":"createImmunization","description":"## Overview\nUse this interaction to record the administration of a vaccination. The immunization resource must include a targetDisease(s) matching the disease types enabled in this interaction and represented by the correct SNOMED concept(s) for that disease type. A [code list](https://digital.nhs.uk/developer/guides-and-documentation/building-healthcare-software/vaccinations/coding-for-vaccination-disease-types#how-this-applies-to-vaccinations-submitted-to-the-api) is provided for supported disease types. \nYou must be authorised for the create interaction and the disease type associated with the vaccination event in order to submit a new record. \n\n## Sandbox testing\nYou can test the following scenarios in our sandbox environment:\n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n | Record a vaccination event | Valid request as per schema | HTTP Status 201 with immunisation id in response header (location) |\n| Bad Request (missing/invalid required element in request body) | Didn't pass `resourceType` in request body | HTTP Status 400 Bad Request |\n","parameters":[{"$ref":"#/components/parameters/CorrelationID"},{"$ref":"#/components/parameters/RequestID"}],"requestBody":{"content":{"application/fhir+json":{"schema":{"description":"A FHIR Immunization resource.","type":"object","required":["resourceType","contained","extension","identifier","status","vaccineCode","patient","occurrence[X]","recorded","primarySource","location","performer","protocolApplied"],"properties":{"resourceType":{"description":"FHIR resource type. Always `Immunization`.","type":"string","example":"Immunization"},"meta":{"type":"object","description":"Metadata about the resource.","properties":{"versionId":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted."},"lastUpdated":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))","description":"When the resource last changed - e.g. when the version changed.","example":"2017-01-01T00:00:00Z"},"source":{"type":"string","description":"A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc."},"profile":{"type":"array","items":{"type":"string","pattern":"\\S*","description":"A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)."}},"security":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure."}},"tag":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource."}}}},"contained":{"type":"array","description":"Includes any relevant resources as defined within this specification and referenced from within the resource. A patient resource SHALL be included. \nThe schema for Practitioner & Patient are different.","minItems":1,"items":{"oneOf":[{"type":"object","properties":{"resourceType":{"type":"string","description":"FHIR resource type. Always `Practitioner`.","example":"Practitioner"},"id":{"type":"string","description":"Logical id of this artifact"},"name":{"type":"array","description":"The name(s) associated with the practitioner","items":{"type":"object","properties":{"family":{"type":"string","description":"Family name (often called 'Surname')"},"given":{"type":"array","description":"Given names (not always 'first').","items":{"type":"string"}}}}}},"required":["resourceType","id"]},{"type":"object","properties":{"resourceType":{"type":"string","description":"FHIR resource type. Always `Patient`.","example":"Patient"},"id":{"type":"string","description":"Logical id of this artifact","example":"#Pat1"},"identifier":{"type":"array","description":"An identifier for the patient","items":{"type":"object","properties":{"system":{"type":"string","description":"The namespace for the identifier value"},"value":{"type":"string","description":"The value that is unique. \nThis SHALL be populated if `system` is https://fhir.nhs.uk/Id/nhs-number."}}}},"name":{"type":"array","description":"Patient name as registered, or as recorded by the user where the patient record cannot be traced. \nThere SHOULD be only one instance of name. If more than one name instance is provided additional elements SHOULD be populated only so the current, official name can be determined or otherwise the current, official name SHALL be the first name instance. There SHALL be at least one name instance with both family and given elements populated.","items":{"type":"object","properties":{"family":{"type":"string","description":"Family name (often called 'Surname')"},"given":{"type":"array","description":"Patient Forename. Middle names are not to be included within this field. \nThere SHOULD only be one given name supplied in this element.","items":{"type":"string"}}},"required":["family","given"]}},"gender":{"type":"string","description":"male | female | other | unknown"},"birthDate":{"type":"string","description":"The date of birth for the individual"},"address":{"type":"array","description":"There SHOULD be only one instance of address with only the postalCode element populated. If more than one address instance is provided the additional elements SHOULD be populated only so the current, home post code can be determined or otherwise the current, home post code SHALL be the first address instance.","items":{"type":"object","properties":{"postalCode":{"type":"string","description":"Patient residential/home postcode. Value should be divided into two parts separated by a single space, e.g. EC1A 1BB \nAs well as actual post codes, the following SHOULD be used in other scenarios. \n *ZZ99 3VZ No Fixed Abode \n *ZZ99 3WZ Address Not Known \n *ZZ99 3CZ (England/UK) Address not otherwise specified \nThe full list is available here: https://www.england.nhs.uk/wp-content/uploads/2020/04/cam-2021-guidance-v2.1.pdf"}},"required":["postalCode"]}}},"required":["resourceType","id","name","gender","birthDate","address"]}]}},"extension":{"description":"FHIR extension wrapper for the vaccination procedure performed. Always contains exactly one object.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["url","valueCodeableConcept"],"properties":{"url":{"description":"URI for the type of extension - https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","type":"string","example":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure"},"valueCodeableConcept":{"description":"This SHALL be populated with the appropriate SNOMED CT code (identified by system=http://snomed.info/sct). \nThis relates to the vaccine that was administered, typically in the form of a procedure code. The UK Core IG provides guidance on codes for this extension, but the provider SHALL ensure the appropriate code and term is provided. \nAdditional coding MAY be included provided it is semantically equivalent to the SNOMED concept.","type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the vaccination procedure coding.","type":"array","items":{"type":"object","required":["system","code"],"properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"A particular code in the system.","type":"string","example":"1303503001"},"display":{"description":"Representation defined by the system.","type":"string","example":"Administration of RSV (respiratory syncytial virus) vaccine"}}}},"text":{"description":"Plain text representation of the concept.","type":"string"}}}}}},"identifier":{"description":"A unique identifier assigned to this immunization record. Only one identifier SHALL be provided.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["system","value"],"properties":{"use":{"description":"Identifier use as defined by https://www.hl7.org/fhir/valueset-identifier-use.html.","type":"string","enum":["usual","official","temp","secondary","old"],"example":"official"},"system":{"description":"A URI for the system that has allocated the vaccination identifier.","type":"string","example":"https://supplierABC/identifiers/vacc `or` https://supplierABC/ODSCode_NKO41/identifiers/vacc"},"value":{"description":"A unique identifier value within `system`. Ideally this would be a GUID / UUID. \nThe value in combination with the system SHALL be globally unique.","type":"string","example":"e2154d29-1ead-4830-a513-0d59705078fa"}}}},"status":{"description":"Indicates the status of the immunization event. \nOnly administered vaccination records SHALL be supported: status = completed.","type":"string","enum":["completed"],"example":"completed"},"vaccineCode":{"description":"Vaccine product administered. \nWhere the vaccine product is known, the dm+d / SNOMED CT concept for the AMP form SHOULD be provided. \nWhere a meaningful vaccine code cannot be provided, use one of the following NullFlavor codes, \n NAVU - `Not available` \n UNC - `Unencoded` \n UNK - `Unknown` \n NA - `Not Applicable` \nFrom http://terminology.hl7.org/CodeSystem/v3-NullFlavor","type":"object","properties":{"coding":{"description":"Wrapper for the vaccine product details.","type":"array","items":{"type":"object","properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"SNOMED code for the vaccine product.","type":"string","example":"42605811000001109"},"display":{"description":"Description of the vaccine product.","type":"string","example":"Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)"}}}}}},"patient":{"description":"The patient who received the immunization. \nWhen providing records of a vaccination event (create / update) and reading a record by its ID, this SHALL be a reference to a contained patient resource.","type":"object","required":["reference"],"properties":{"reference":{"description":"Reference of patient from contained section","type":"string","example":"#Pat1"}}},"occurrence[X]":{"type":"object","description":"When immunizations are given a specific date and time should always be known. The string data type for this element is not supported. Only occurrenceDateTime SHALL be used.","properties":{"occurrenceDateTime":{"description":"A dateTime format SHALL be provided. It SHOULD be to the level of precision as recorded within the source system, subject to the FHIR rules for dateTime. \n Only positive timezone offsets of '+00:00' (GMT) and '+01:00' (BST) are allowed. Where time zone information is required but is not available in the source system the time zone element can be a hardcoded static value of `+00:00`.","type":"string","example":"2021-02-07T13:28:17.271000+00:00"}},"required":["occurrenceDateTime"]},"recorded":{"description":"The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.","type":"string","example":"2021-02-07T13:28:17.271000+00:00"},"primarySource":{"description":"Set as `TRUE` when the content of the record is based on information from the person performing the vaccine or who has clinical responsibility for the vaccination, and the system can be considered a primary source of the vaccination event. \nSet as `FALSE` when the content of the record is NOT based on information from the person performing the vaccine or who has clinical responsibility for the vaccination and the system should not be treated as a primary source for this record.","type":"boolean","example":true},"location":{"type":"object","description":"The service delivery location where the vaccine administration occurred.","properties":{"identifier":{"type":"object","description":"An identifier for the service delivery location.","properties":{"system":{"description":"The system which defines the location. Typically this will be https://fhir.nhs.uk/Id/ods-organization-code for a health setting (ODS use) or https://fhir.hl7.org.uk/Id/urn-school-number for an education setting (URN use). ","type":"string","example":"https://fhir.nhs.uk/Id/ods-organization-code"},"value":{"description":"The ODS or URN code of the location where the vaccination was administered. \n1. For occupational health vaccinations administered in a hospital trust by an independent healthcare provider, this SHALL be the ODS code of the hospital trust. \n2. For school vaccinations administered by a School Aged Immunisation Service provider, this SHALL be the URN of the school where the vaccination was administered. \n3. For roving teams on care home visits, this SHALL be the ODS code of the care home, where known. \n4. For any other vaccinations, populate with the same code as provided for `performer` ODS code. \n\nWhere the ODS/URN code is unavailable, a default value of `X99999` MUST be used.","type":"string","example":"X99999"}},"required":["system","value"]}}},"manufacturer":{"description":"Manufacturer of vaccine product. This `SHOULD be populated` where the data is available.","type":"object","properties":{"display":{"description":"The free text name of the vaccine manufacturer. This `SHOULD be populated` where the data is available.","type":"string","example":"AstraZeneca Ltd"}}},"lotNumber":{"description":"Vaccine batch number. This should be captured at source ideally via use of automated scanning technology (GS1 GTIN / NTIN standard). \nThis `SHOULD be populated` where the data is available.","type":"string","example":"4120Z001"},"expirationDate":{"description":"Manufacturer expiry date or defrost expiry date of the vaccine, whichever is earliest. This `SHOULD be populated` where the data is available.","type":"string","example":"2021-04-29"},"site":{"description":"Body site where vaccine was administered. This `SHOULD be populated` where the data is available. \nA SNOMED-CT Concept ID value from UK published reference set Vaccine body site of administration simple reference set (1127941000000100) should be used.","type":"object","properties":{"coding":{"description":"Wrapper for the vaccination body site details.","type":"array","items":{"type":"object","properties":{"system":{"description":"Coding system used to describe vaccination body site.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"Code for the vaccination body site.","type":"string","example":"368208006"},"display":{"description":"Description of the vaccination body site.","type":"string","example":"Left upper arm structure (body structure)"}}}}}},"route":{"description":"The path by which the vaccine product is taken into the body. This `SHOULD be populated` where the data is available. \nA SNOMED-CT concept ID value from UK “ePrescribing route of administration simple reference set (foundation metadata concept)” (999000051000001100) should be used.","type":"object","properties":{"coding":{"description":"Wrapper for the vaccination route details.","type":"array","items":{"type":"object","properties":{"system":{"description":"Coding system used to describe vaccination route.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"Code for the vaccination route.","type":"string","example":"78421000"},"display":{"description":"Description of the vaccination route.","type":"string","example":"Intramuscular route (qualifier value)"}}}}}},"doseQuantity":{"description":"The quantity of vaccine product that was administered. This `SHOULD be populated` where the data is available. \nA SNOMED-CT Concept ID value representing the unit of measure used SHOULD be provided.","type":"object","properties":{"value":{"description":"The actual value of the dose amount administered. This `SHOULD be populated` where the data is available. \nFor Example, \nComirnaty ® (Pfizer BioNTech): \n Full Dose (Primary Course or booster) = 0.3 \n Fractional Dose (Primary Course) = 0.1","type":"number","example":1},"unit":{"description":"A human-readable form of the unit. This `SHOULD be populated` where the data is available.","type":"string","example":"milliliter"},"system":{"description":"The code system from which the provided code is taken. This `SHOULD be populated` where the data is available.","type":"string","example":"http://unitsofmeasure.org"},"code":{"description":"The code for the unit of measure. SNOMED coded dose units are preferred. This `SHOULD be populated` where the data is available.","type":"string","example":"ml"}}},"performer":{"description":"Details of the organisation that performed the immunisation event. \nThis covers: \n The Commissioned Healthcare Provider who has administered the vaccination \n The professional performing the vaccination \nAt least one performer entry SHALL be provided which includes an actor with an identifier system and value.","type":"array","minItems":1,"items":{"type":"object","required":["actor"],"properties":{"actor":{"description":"When the actor represents the managing organisation for the vaccination this SHALL be populated with `Organization`","type":"object","properties":{"type":{"description":"The type of actor reference provided. This SHALL be populated with `Organization`.","type":"string","example":"Organisation"},"identifier":{"description":"When the actor represents the managing organisation for the vaccination this SHALL be populated and the guidance for sub-elements applied.","type":"object","required":["system","value"],"properties":{"system":{"description":"This SHALL be the system from which the supplied code is taken. The code SHOULD be an ODS code which comes from `https://fhir.nhs.uk/Id/ods-organization-code`.","type":"string","example":"https://fhir.nhs.uk/Id/ods-organization-code"},"value":{"description":"The ODS code for the Commissioned Healthcare Provider, \n For roving teams on home visits or care home visits, use the ODS code of the responsible site e.g. GP Practice or dedicated vaccination site \n For school vaccinations, use the ODS of code of the School Aged Immunisation Service provider, rather than the URN of the school \nURN codes must not be provided for this data item.","type":"string","example":"B0C4P"}}},"reference":{"description":"Where practitioner details are being provided, this SHOULD be a reference to a contained practitioner resource. If the actor is the managing organisation, this SHOULD be absent.","type":"string","example":"#Pract1"}}}}}},"reasonCode":{"description":"A SNOMED-CT Concept representing the clinical indication or reason for administering or recording an historical vaccination. \nThe primary reason for the vaccination SHOULD be either the only reason submitted or the first SNOMED CT coded reason. \nThis `SHOULD be populated` where the data is available.","type":"array","items":{"type":"object","properties":{"coding":{"description":"Wrapper for the reason code details.","type":"array","minItems":1,"items":{"type":"object","properties":{"system":{"description":"Coding system used to describe the reason for administration of vaccine.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"SNOMED code for the vaccination reason.","type":"string","example":"443684005"},"display":{"description":"Description of the vaccination reason.","type":"string","example":"Disease outbreak (event)"}}}}}}},"protocolApplied":{"description":"The protocol (set of recommendations) being followed by the provider who administered the dose.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["targetDisease","doseNumber[X]"],"properties":{"targetDisease":{"type":"array","description":"The vaccine preventable disease the dose is being administered against. \nThis SHALL be populated with the appropriate SNOMED CT concept. See the provided [code list](https://digital.nhs.uk/developer/guides-and-documentation/building-healthcare-software/vaccinations/coding-for-vaccination-disease-types#how-this-applies-to-vaccinations-submitted-to-the-api) for each supported type of vaccination. A valid code or code combination SHALL be provided. \nFor vaccines which provide immunity for more than one target disease there SHALL be one instance of targetDisease for each and no more.","items":{"type":"object","required":["coding"],"properties":{"coding":{"type":"array","description":"A reference to a code defined by a terminology system.","items":{"type":"object","required":["system","code"],"properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string"},"code":{"description":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system","type":"string"},"display":{"description":"A representation of the meaning of the code in the system, following the rules of the system.","type":"string"}}}}}}},"doseNumber[X]":{"type":"object","description":"Nominal position in a series. This SHALL be provided but may be populated using either of the dataTypes available: PositiveInt or String. The use of an integer is preferred. Maximum value is 9.","properties":{"doseNumberPositiveInt":{"description":"Nominal position in a course of vaccines. This `SHOULD be populated` where the data is available.. Maximum value is 9.","type":"integer","maximum":9,"example":1},"doseNumberString":{"description":"Description of the dose sequence where it is not a numeric or a reason a dose number cannot be provided. \nA string should only be used in cases where an integer is not available.","type":"string"}}}}}}}},"example":{"resourceType":"Immunization","contained":[{"resourceType":"Practitioner","id":"Pract1","name":[{"family":"Nightingale","given":["Florence"]}]},{"resourceType":"Patient","id":"Pat1","identifier":[{"system":"https://fhir.nhs.uk/Id/nhs-number","value":"9449310475"}],"name":[{"family":"Taylor","given":["Sarah"]}],"gender":"unknown","birthDate":"1965-02-28","address":[{"postalCode":"EC1A 1BB"}]}],"extension":[{"url":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","valueCodeableConcept":{"coding":[{"system":"http://snomed.info/sct","code":"1324681000000101","display":"Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)"}]}}],"identifier":[{"system":"https://supplierABC/identifiers/vacc","value":"a7437179-e86e-4855-b68e-24b5jhg3g"}],"status":"completed","vaccineCode":{"coding":[{"system":"http://snomed.info/sct","code":"39114911000001105","display":"COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd) (product)"}]},"patient":{"reference":"#Pat1"},"occurrenceDateTime":"2021-02-07T13:28:17.271+00:00","recorded":"2021-02-07T13:28:17.271+00:00","primarySource":true,"manufacturer":{"display":"AstraZeneca Ltd"},"location":{"identifier":{"system":"https://fhir.nhs.uk/Id/ods-organization-code","value":"X99999"}},"lotNumber":"4120Z001","expirationDate":"2021-07-02","site":{"coding":[{"system":"http://snomed.info/sct","code":"368208006","display":"Left upper arm structure (body structure)"}]},"route":{"coding":[{"system":"http://snomed.info/sct","code":"78421000","display":"Intramuscular route (qualifier value)"}]},"doseQuantity":{"value":0.5,"unit":"milliliter","system":"http://unitsofmeasure.org","code":"ml"},"performer":[{"actor":{"reference":"#Pract1"}},{"actor":{"type":"Organization","identifier":{"system":"https://fhir.nhs.uk/Id/ods-organization-code","value":"B0C4P"}}}],"reasonCode":[{"coding":[{"code":"443684005","system":"http://snomed.info/sct"}]}],"protocolApplied":[{"targetDisease":[{"coding":[{"system":"http://snomed.info/sct","code":"840539006","display":"Disease caused by severe acute respiratory syndrome coronavirus 2 (disorder)"}]}],"doseNumberPositiveInt":1}]}}}},"responses":{"201":{"description":"Create Immunization operation successful","headers":{"Location":{"$ref":"#/components/headers/Location"},"CorrelationID":{"$ref":"#/components/headers/CorrelationID"},"RequestID":{"$ref":"#/components/headers/RequestID"}}},"4XX":{"$ref":"#/components/responses/4XX-imms-create"}}},"get":{"summary":"Search for a patient's immunisation records","operationId":"searchImmunization","description":"## Overview\nUse this interaction to search for a patient's vaccination records using their NHS number and DiseaseType. You can request the patient's vaccination history for one or more specified 'disease types'. You may limit the vaccination records by specifying date criteria, for example if you only need to know about vaccinations administered in the last 12 months. \n Location related data items are included. Patient location sensitivity indicators (such as flags for sensitive patient records) should be used to apply data filtering as appropriate. The response will not include contained resources for patient or practitioner within each immunization resource it returns. A single, separate patient resource will be included in the bundle and referenced by each immunization. \nVaccination events submitted without an NHS Number will not be available for retrieval via this interaction. Also, where a patient has a change of NHS Number some or all records may be unavailable via this interaction for a short period of time while records are updated. \nYou must be authorised for the search interaction and the disease type(s) specified in your search in order to access the records. \n \n### Search using POST\n \nA POST search interaction is supported in accordance with [FHIR guidance](https://digital.nhs.uk/developer/guides-and-documentation/our-api-technologies#fhir) as an alternative to a search with the GET verb. A POST search allows you to supply some or all parameters in the body of the request should you need to do so. It offers the same search functionality as the GET search interaction. \n\nNote that the API call for the POST search is different: \n\n`POST /Immunization/_search`\n\n## Sandbox testing\nYou can test the following scenarios in our sandbox environment:\n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n| Immunisation history found | `patient.identifier`=https://fhir.nhs.uk/Id/nhs-number|9000000009 | HTTP Status 200 with immunisation data in response body |\n| Bad Request | Didn't pass required fields `patient.identifier` or `-immunization.target` | HTTP Status 400 Bad Request |\n","parameters":[{"$ref":"#/components/parameters/CorrelationID"},{"$ref":"#/components/parameters/RequestID"},{"$ref":"#/components/parameters/PatientIdentifier"},{"$ref":"#/components/parameters/ImmunizationTarget"},{"$ref":"#/components/parameters/DateFrom"},{"$ref":"#/components/parameters/DateTo"},{"$ref":"#/components/parameters/Include"}],"responses":{"200":{"description":"Search immunisation operation successful","content":{"application/fhir+json":{"schema":{"description":"FHIR Bundle containing the query results - a list of matching immunisations and associated patients.","type":"object","required":["resourceType","type","total","entry"],"properties":{"resourceType":{"description":"FHIR resource type. Always `Bundle`.","type":"string","example":"Bundle"},"type":{"description":"Indicates how the bundle is intended to be used. Always `searchset`.","type":"string","example":"searchset"},"link":{"type":"array","items":{"type":"object","properties":{"relation":{"description":"A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1). Always `Self`.","type":"string"},"url":{"description":"A url representing the search applied by the API to generate the result which may differ from the request if unrecognised or unsupported parameters have been ignored.","type":"string"}},"required":["relation","url"]}},"entry":{"description":"List of matching immunisations and associated patient. If there were no matching immunisations, this is an empty list.","type":"array","items":{"type":"object","required":["fullUrl","resource","search"],"properties":{"fullUrl":{"description":"URI for the Immunization or Patient resource.","type":"string","example":"https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization/191f288a-17f3-4cd5-a33c-a52aade6473c"},"resource":{"description":"The Immunization or Patient resource.","oneOf":[{"description":"A matching immunisation, formatted as a FHIR Immunization resource.","type":"object","required":["resourceType","extension","identifier","status","vaccineCode","patient","occurrence[X]","recorded","primarySource","location","performer","protocolApplied"],"properties":{"resourceType":{"description":"FHIR resource type. Always `Immunization`.","type":"string","example":"Immunization"},"id":{"description":"Immunization record Id.","type":"string","example":"191f288a-17f3-4cd5-a33c-a52aade6473c"},"meta":{"type":"object","properties":{"versionId":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted."},"lastUpdated":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))","description":"When the resource last changed - e.g. when the version changed.","example":"2017-01-01T00:00:00Z"},"source":{"type":"string","description":"Identifies where the resource comes from."},"profile":{"type":"array","items":{"type":"string","pattern":"\\S*","description":"A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)."}},"security":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure."}},"tag":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource."}}},"required":["versionId"]},"extension":{"description":"FHIR extension wrapper for the vaccination procedure performed. Always contains exactly one object.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["url","valueCodeableConcept"],"properties":{"url":{"description":"URI for the type of extension - https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","type":"string","example":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure"},"valueCodeableConcept":{"description":"Wrapper for the vaccination procedure coding.","type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the vaccination procedure coding.","type":"array","items":{"type":"object","required":["system","code","display"],"properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"A particular code in the system.","type":"string","example":"1303503001"},"display":{"description":"Representation defined by the system.","type":"string","example":"Administration of RSV (respiratory syncytial virus) vaccine"}}}}}}}}},"identifier":{"description":"Unique identifier for this immunisation record, as generated by the source system.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["system","value"],"properties":{"use":{"description":"Identifier use as defined by https://www.hl7.org/fhir/valueset-identifier-use.html.","type":"string","enum":["usual","official","temp","secondary","old"],"example":"official"},"system":{"description":"URI of the namespace of this identifier.","type":"string","example":"https://supplierABC/identifiers/vacc"},"value":{"description":"Identifier value within `system`.","type":"string","example":"e2154d29-1ead-4830-a513-0d59705078fa"}}}},"status":{"description":"Status of the immunisation event. This is *not* an indication of patient immunity, only whether the immunisation was completed or not. Currently we only return details of completed immunisations.","type":"string","enum":["completed"],"example":"completed"},"vaccineCode":{"description":"Vaccine product administered.","type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the vaccine product details.","type":"array","minItems":1,"items":{"type":"object","required":["system","code","display"],"properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"SNOMED code for the vaccine product.","type":"string","example":"42605811000001109"},"display":{"description":"Description of the vaccine product.","type":"string","example":"Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)"}}}}}},"patient":{"description":"The patient who was immunised.","type":"object","required":["reference","type","identifier"],"properties":{"reference":{"description":"URI for the associated Patient resource in the bundle.","type":"string","example":"urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac"},"type":{"description":"Type of resource this reference refers to. Always `Patient`.","type":"string","example":"Patient"},"identifier":{"description":"Business identifier for linked Patient. Always an NHS number.","type":"object","required":["system","value"],"properties":{"system":{"description":"URI of coding system used to identify linked patient. Always https://fhir.nhs.uk/Id/nhs-number","type":"string","example":"https://fhir.nhs.uk/Id/nhs-number"},"value":{"description":"Value in coding system representing linked patient.","type":"string","example":"9000000009"}}}}},"occurrence[X]":{"type":"object","description":"When immunizations are given a specific date and time should always be known. The string data type for this element is not supported. Only occurrenceDateTime SHALL be used.","properties":{"occurrenceDateTime":{"description":"Date and time of immunisation.","type":"string","example":"2021-02-07T13:28:17.271000+00:00"}},"required":["occurrenceDateTime"]},"recorded":{"description":"The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.","type":"string","example":"2021-02-07T13:28:17.271000+00:00"},"primarySource":{"description":"An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded.","type":"boolean","example":true},"location":{"type":"object","description":"The service delivery location where the vaccine administration occurred.","properties":{"identifier":{"type":"object","description":"An identifier for the service delivery location.","properties":{"system":{"description":"The system which defines the location. Typically this will be https://fhir.nhs.uk/Id/ods-organization-code for a health setting or https://fhir.hl7.org.uk/Id/urn-school-number for an education setting.","type":"string","example":"https://fhir.nhs.uk/Id/ods-organization-code"},"value":{"description":"A code from the system to represent the location. An ODS code of X99999 represents a location where a code is not available.","type":"string","example":"X99999"}},"required":["system","value"]}},"required":["identifier"]},"manufacturer":{"description":"Vaccine manufacturer details.","type":"object","properties":{"display":{"description":"Decsription of the vaccine manufacturer.","type":"string","example":"AstraZeneca Ltd"}}},"lotNumber":{"description":"Lot number of the vaccine product.","type":"string","example":"4120Z001"},"expirationDate":{"description":"Date vaccine batch expires.","type":"string","example":"2021-04-29"},"site":{"description":"Body site where vaccine was administered.","type":"object","properties":{"coding":{"description":"Wrapper for the vaccination body site details.","type":"array","minItems":1,"items":{"type":"object","properties":{"system":{"description":"Coding system used to describe vaccination body site.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"Code for the vaccination body site.","type":"string","example":"368208006"},"display":{"description":"Description of the vaccination body site.","type":"string","example":"Left upper arm structure (body structure)"}}}}},"required":["coding"]},"route":{"description":"The path by which the vaccine product is taken into the body.","type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the vaccination route details.","type":"array","minItems":1,"items":{"type":"object","properties":{"system":{"description":"Coding system used to describe vaccination route.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"Code for the vaccination route.","type":"string","example":"78421000"},"display":{"description":"Description of the vaccination route.","type":"string","example":"Intramuscular route (qualifier value)"}}}}}},"doseQuantity":{"description":"The quantity of vaccine product that was administered.","type":"object","properties":{"value":{"description":"Number of units administered.","type":"number","example":1},"unit":{"description":"Description of unit.","type":"string","example":"milliliter"},"system":{"description":"System that defines coded unit form.","type":"string","example":"http://unitsofmeasure.org"},"code":{"description":"Code describing the unit.","type":"string","example":"ml"}}},"performer":{"description":"Details of the organisation that performed the immunisation.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["actor"],"properties":{"actor":{"description":"Organisation that performed the immunisation.","type":"object","required":["type","identifier"],"properties":{"type":{"description":"Type of actor. Always `Organisation`.","type":"string","example":"Organisation"},"identifier":{"description":"Organisation identifier.","type":"object","required":["system","value"],"properties":{"system":{"description":"Coding system used for the organisation identifier. Always `https://fhir.nhs.uk/Id/ods-organization-code`.","type":"string","example":"https://fhir.nhs.uk/Id/ods-organization-code"},"value":{"description":"Organisation's ODS code.","type":"string","example":"B0C4P"}}},"display":{"description":"Organisation that performed the immunisation.","type":"string","example":"UNIVERSITY HOSPITAL OF WALES"}}}}}},"reasonCode":{"description":"Reasons why the vaccine was administered.","type":"array","minItems":1,"items":{"type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the reason code details.","type":"array","minItems":1,"items":{"type":"object","required":["system","code","display"],"properties":{"system":{"description":"Coding system used to describe the reason for administration of vaccine.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"SNOMED code for the vaccination reason.","type":"string","example":"443684005"},"display":{"description":"Description of the vaccination reason.","type":"string","example":"Disease outbreak (event)"}}}}}}},"protocolApplied":{"description":"The protocol (set of recommendations) being followed by the provider who administered the dose.","type":"array","minItems":1,"items":{"type":"object","required":["targetDisease","doseNumber[X]"],"properties":{"targetDisease":{"type":"array","description":"The vaccine preventable disease the dose is being administered against.","items":{"type":"object","properties":{"coding":{"type":"array","description":"A reference to a code defined by a terminology system.","items":{"type":"object","properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string"},"code":{"description":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system","type":"string"},"display":{"description":"A representation of the meaning of the code in the system, following the rules of the system.","type":"string"}},"required":["system","code","display"]}}},"required":["coding"]}},"doseNumber[X]":{"type":"object","description":"Nominal position in a series. This SHALL be provided but may be populated using either of the dataTypes available: PositiveInt or String. The use of an integer is preferred. Maximum value is 9.","properties":{"doseNumberPositiveInt":{"description":"Nominal position in a course of vaccines. This `SHOULD be populated` where the data is available. Maximum value is 9.","type":"integer","maximum":9,"example":1},"doseNumberString":{"description":"Description of the dose sequence where it is not a numeric or a reason a dose number cannot be provided. \nA string should only be used in cases where an integer is not available.","type":"string"}}}}}}}},{"description":"Demographic information about the patient receiving an immunisation.","type":"object","required":["resourceType","id"],"properties":{"resourceType":{"description":"FHIR resource type. Always `Patient`.","type":"string","example":"Patient"},"id":{"description":"Patient ID (NHS Number)","type":"string","example":"9000000009"},"identifier":{"description":"Unique identifier for this patient. Always an NHS number.","type":"array","minItems":1,"items":{"type":"object","required":["system","value"],"properties":{"system":{"description":"Coding system used to identify patients.","type":"string","example":"https://fhir.nhs.uk/Id/nhs-number"},"value":{"description":"Code identifying the patient.","type":"string","example":"9000000009"}}}}}}]},"search":{"description":"Search-related information for the Immunization.","type":"object","required":["mode"],"properties":{"mode":{"description":"Indicates why this resource is in the result set. For Immunization resources this is always `match`.","enum":["match","include"]}}}}}},"total":{"description":"Number of matching immunisations found.","type":"integer","example":2}}},"example":{"resourceType":"Bundle","type":"searchset","link":[{"relation":"self","url":"https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization?immunization.target=RSV&_include=Immunization%3Apatient&patient.identifier=https%3A%2F%2Ffhir.nhs.uk%2FId%2Fnhs-number%7C9000000009"}],"entry":[{"fullUrl":"https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization/191f288a-17f3-4cd5-a33c-a52aade6473c","resource":{"resourceType":"Immunization","id":"191f288a-17f3-4cd5-a33c-a52aade6473c","meta":{"versionId":"1"},"extension":[{"url":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","valueCodeableConcept":{"coding":[{"system":"http://snomed.info/sct","code":"1303503001","display":"Administration of RSV (respiratory syncytial virus) vaccine"}]}}],"identifier":[{"use":"official","system":"https://supplierABC/identifiers/vacc","value":"e2154d29-1ead-4830-a513-0d59705078fa"}],"status":"completed","vaccineCode":{"coding":[{"system":"http://snomed.info/sct","code":"42605811000001109","display":"Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)"}]},"patient":{"reference":"urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac","type":"Patient","identifier":{"system":"https://fhir.nhs.uk/Id/nhs-number","value":"9000000009"}},"occurrenceDateTime":"2021-02-07T13:28:17.271000+00:00","recorded":"2021-02-07T13:28:17.271000+00:00","primarySource":true,"location":{"identifier":{"system":"https://fhir.nhs.uk/Id/ods-organization-code","value":"X99999"}},"manufacturer":{"display":"AstraZeneca Ltd"},"lotNumber":"4120Z001","expirationDate":"2021-07-02","site":{"coding":[{"system":"http://snomed.info/sct","code":"368208006","display":"Left upper arm structure (body structure)"}]},"route":{"coding":[{"system":"http://snomed.info/sct","code":"78421000","display":"Intramuscular route (qualifier value)"}]},"doseQuantity":{"value":0.5,"unit":"milliliter","system":"http://unitsofmeasure.org","code":"ml"},"performer":[{"actor":{"type":"Organization","identifier":{"system":"https://fhir.nhs.uk/Id/ods-organization-code","value":"B0C4P"},"display":"UNIVERSITY HOSPITAL OF WALES"}}],"reasonCode":[{"coding":[{"system":"http://snomed.info/sct","code":"443684005","display":"Disease outbreak (event)"}]}],"protocolApplied":[{"targetDisease":[{"coding":[{"system":"http://snomed.info/sct","code":"55735004","display":"Respiratory syncytial virus infection (disorder)"}]}],"doseNumberPositiveInt":1}]},"search":{"mode":"match"}},{"fullUrl":"urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac","resource":{"resourceType":"Patient","id":"9000000009","identifier":[{"system":"https://fhir.nhs.uk/Id/nhs-number","value":"9000000009"}]},"search":{"mode":"include"}}],"total":1}}}},"4XX":{"$ref":"#/components/responses/4XX-imms-search"}}}},"/Immunization/{id}":{"get":{"summary":"Retrieve a record of an immunisation by its unique identifier","operationId":"readImmunization","description":"## Overview\nThis interaction allows you to retrieve the record of a single vaccination by our assigned id. We will return the full immunization resource as submitted. \nThe response will include an eTag for the version of the record which has been returned. If you intend to update a record, it is recommended that you use this interaction to obtain the latest version (and eTag for the version). \nTo retrieve a full vaccination history for a patient, see the search interaction. \nYou must be authorised for the read interaction and the disease type associated with the vaccination event in order to access the record. \n\n## Sandbox testing\nYou can test the following scenarios in our sandbox environment:\n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n| Immunisation record found | `id`=`12a33650-6f94-4e8f-a971-1c5c41da5b22` | HTTP Status 200 with immunisation data in response body |\n| Bad Request | Didn't pass required fields `id` | HTTP Status 400 Bad Request |\n","parameters":[{"$ref":"#/components/parameters/CorrelationID"},{"$ref":"#/components/parameters/RequestID"},{"$ref":"#/components/parameters/Id"}],"responses":{"200":{"description":"Read Immunization operation successful","headers":{"CorrelationID":{"$ref":"#/components/headers/CorrelationID"},"RequestID":{"$ref":"#/components/headers/RequestID"},"E-Tag":{"$ref":"#/components/headers/E-Tag"}},"content":{"application/fhir+json":{"schema":{"description":"A matching immunisation, formatted as a FHIR Immunization resource.","type":"object","required":["resourceType","contained","extension","identifier","status","vaccineCode","patient","occurrence[X]","recorded","primarySource","location","performer","protocolApplied"],"properties":{"resourceType":{"description":"FHIR resource type. Always `Immunization`.","type":"string","example":"Immunization"},"id":{"description":"Immunization record Id.","type":"string","example":"12a33650-6f94-4e8f-a971-1c5c41da5b22"},"meta":{"type":"object","properties":{"versionId":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted."},"lastUpdated":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))","description":"When the resource last changed - e.g. when the version changed.","example":"2017-01-01T00:00:00Z"},"source":{"type":"string","description":"A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc."},"profile":{"type":"array","items":{"type":"string","pattern":"\\S*","description":"A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)."}},"security":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure."}},"tag":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource."}}}},"contained":{"type":"array","description":"The schema for Practitioner & Patient are different. In response both Practitioner & Patient objects will be returned.","items":{"oneOf":[{"type":"object","properties":{"resourceType":{"type":"string","description":"FHIR resource type. Always `Practitioner`.","example":"Practitioner"},"id":{"type":"string","description":"Logical id of this artifact"},"name":{"type":"array","description":"The name(s) associated with the practitioner","items":{"type":"object","properties":{"family":{"type":"string","description":"Family name (often called 'Surname')"},"given":{"type":"array","description":"Given names (not always 'first').","items":{"type":"string"}}},"required":["family","given"]}}},"required":["resourceType","id"]},{"type":"object","properties":{"resourceType":{"type":"string","description":"FHIR resource type. Always `Patient`.","example":"Patient"},"id":{"type":"string","description":"Logical id of this artifact","example":"#Pat1"},"identifier":{"type":"array","description":"An identifier for the patient","items":{"type":"object","properties":{"system":{"type":"string","description":"The namespace for the identifier value"},"value":{"type":"string","description":"The value that is unique. \nThis SHALL be populated if `system` is https://fhir.nhs.uk/Id/nhs-number."}}}},"name":{"type":"array","description":"A name associated with the patient","items":{"type":"object","properties":{"family":{"type":"string","description":"Family name (often called 'Surname')"},"given":{"type":"array","description":"Given names (not always 'first').","items":{"type":"string"}}},"required":["family","given"]}},"gender":{"type":"string","description":"male | female | other | unknown"},"birthDate":{"type":"string","description":"The date of birth for the individual"},"address":{"type":"array","description":"An address for the individual","items":{"type":"object","properties":{"postalCode":{"type":"string","description":"Postal code for area"}},"required":["postalCode"]}}},"required":["resourceType","id","name","gender","address"]}]}},"extension":{"description":"FHIR extension wrapper for the vaccination procedure performed. Always contains exactly one object.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["url","valueCodeableConcept"],"properties":{"url":{"description":"URI for the type of extension - https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","type":"string","example":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure"},"valueCodeableConcept":{"description":"Wrapper for the vaccination procedure coding.","type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the vaccination procedure coding.","type":"array","items":{"type":"object","required":["system","code","display"],"properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"A particular code in the system.","type":"string","example":"1303503001"},"display":{"description":"Representation defined by the system.","type":"string","example":"Administration of RSV (respiratory syncytial virus) vaccine"}}}}}}}}},"identifier":{"description":"Unique identifier for this immunisation record, as generated by the source system.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["system","value"],"properties":{"use":{"description":"Identifier use as defined by https://www.hl7.org/fhir/valueset-identifier-use.html.","type":"string","enum":["usual","official","temp","secondary","old"],"example":"official"},"system":{"description":"URI of the namespace of this identifier.","type":"string","example":"https://supplierABC/identifiers/vacc"},"value":{"description":"Identifier value within `system`.","type":"string","example":"e2154d29-1ead-4830-a513-0d59705078fa"}}}},"status":{"description":"Status of the immunisation event. This is *not* an indication of patient immunity, only whether the immunisation was completed or not. Currently we only return details of completed immunisations.","type":"string","enum":["completed"],"example":"completed"},"vaccineCode":{"description":"Vaccine product administered.","type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the vaccine product details.","type":"array","minItems":1,"items":{"type":"object","required":["system","code","display"],"properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"SNOMED code for the vaccine product.","type":"string","example":"42605811000001109"},"display":{"description":"Description of the vaccine product.","type":"string","example":"Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)"}}}}}},"patient":{"description":"The patient who was immunised.","type":"object","required":["reference"],"properties":{"reference":{"description":"Reference of patient from contained section","type":"string","example":"#Pat1"}}},"occurrence[X]":{"type":"object","description":"When immunizations are given a specific date and time should always be known. The string data type for this element is not supported. Only occurrenceDateTime SHALL be used.","properties":{"occurrenceDateTime":{"description":"Date and time of immunisation.","type":"string","example":"2021-02-07T13:28:17.271000+00:00"}},"required":["occurrenceDateTime"]},"recorded":{"description":"The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.","type":"string","example":"2021-02-07T13:28:17.271000+00:00"},"primarySource":{"description":"An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded.","type":"boolean","example":true},"location":{"type":"object","description":"The service delivery location where the vaccine administration occurred.","properties":{"identifier":{"type":"object","description":"An identifier for the service delivery location.","properties":{"system":{"description":"The system which defines the location. Typically this will be https://fhir.nhs.uk/Id/ods-organization-code for a health setting or https://fhir.hl7.org.uk/Id/urn-school-number for an education setting.","type":"string","example":"https://fhir.nhs.uk/Id/ods-organization-code"},"value":{"description":"A code from the system to represent the location. An ODS code of X99999 represents a location where a code is not available.","type":"string","example":"X99999"}},"required":["system","value"]}},"required":["identifier"]},"manufacturer":{"description":"Vaccine manufacturer details.","type":"object","properties":{"display":{"description":"Decsription of the vaccine manufacturer.","type":"string","example":"AstraZeneca Ltd"}}},"lotNumber":{"description":"Lot number of the vaccine product.","type":"string","example":"4120Z001"},"expirationDate":{"description":"Date vaccine batch expires.","type":"string","example":"2021-04-29"},"site":{"description":"Body site where vaccine was administered.","type":"object","properties":{"coding":{"description":"Wrapper for the vaccination body site details.","type":"array","minItems":1,"items":{"type":"object","properties":{"system":{"description":"Coding system used to describe vaccination body site.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"Code for the vaccination body site.","type":"string","example":"368208006"},"display":{"description":"Description of the vaccination body site.","type":"string","example":"Left upper arm structure (body structure)"}}}}},"required":["coding"]},"route":{"description":"The path by which the vaccine product is taken into the body.","type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the vaccination route details.","type":"array","minItems":1,"items":{"type":"object","properties":{"system":{"description":"Coding system used to describe vaccination route.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"Code for the vaccination route.","type":"string","example":"78421000"},"display":{"description":"Description of the vaccination route.","type":"string","example":"Intramuscular route (qualifier value)"}}}}}},"doseQuantity":{"description":"The quantity of vaccine product that was administered.","type":"object","properties":{"value":{"description":"Number of units administered.","type":"number","example":1},"unit":{"description":"Description of unit.","type":"string","example":"milliliter"},"system":{"description":"System that defines coded unit form.","type":"string","example":"http://unitsofmeasure.org"},"code":{"description":"Code describing the unit.","type":"string","example":"ml"}}},"performer":{"description":"Details of the organisation that performed the immunisation.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["actor"],"properties":{"actor":{"description":"Organisation that performed the immunisation.","type":"object","required":["type","identifier"],"properties":{"type":{"description":"Type of actor. Always `Organisation`.","type":"string","example":"Organisation"},"identifier":{"description":"Organisation identifier.","type":"object","required":["system","value"],"properties":{"system":{"description":"Coding system used for the organisation identifier. Always `https://fhir.nhs.uk/Id/ods-organization-code`.","type":"string","example":"https://fhir.nhs.uk/Id/ods-organization-code"},"value":{"description":"Organisation's ODS code.","type":"string","example":"B0C4P"}}},"display":{"description":"Organisation that performed the immunisation.","type":"string","example":"UNIVERSITY HOSPITAL OF WALES"}}}}}},"reasonCode":{"description":"Reasons why the vaccine was administered.","type":"array","minItems":1,"items":{"type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the reason code details.","type":"array","minItems":1,"items":{"type":"object","required":["system","code","display"],"properties":{"system":{"description":"Coding system used to describe the reason for administration of vaccine.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"SNOMED code for the vaccination reason.","type":"string","example":"443684005"},"display":{"description":"Description of the vaccination reason.","type":"string","example":"Disease outbreak (event)"}}}}}}},"protocolApplied":{"description":"The protocol (set of recommendations) being followed by the provider who administered the dose.","type":"array","minItems":1,"items":{"type":"object","required":["targetDisease","doseNumber[X]"],"properties":{"targetDisease":{"type":"array","description":"The vaccine preventable disease the dose is being administered against.","items":{"type":"object","properties":{"coding":{"type":"array","description":"A reference to a code defined by a terminology system.","items":{"type":"object","properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string"},"code":{"description":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system","type":"string"},"display":{"description":"A representation of the meaning of the code in the system, following the rules of the system.","type":"string"}},"required":["system","code","display"]}}},"required":["coding"]}},"doseNumber[X]":{"type":"object","description":"Nominal position in a series. This SHALL be provided but may be populated using either of the dataTypes available: PositiveInt or String. The use of an integer is preferred. Maximum value is 9.","properties":{"doseNumberPositiveInt":{"description":"Nominal position in a course of vaccines. This `SHOULD be populated` where the data is available. Maximum value is 9.","type":"integer","maximum":9,"example":1},"doseNumberString":{"description":"Description of the dose sequence where it is not a numeric or a reason a dose number cannot be provided. \nA string should only be used in cases where an integer is not available.","type":"string"}}}}}}}},"example":{"resourceType":"Immunization","id":"12a33650-6f94-4e8f-a971-1c5c41da5b22","contained":[{"resourceType":"Practitioner","id":"Pract1","name":[{"family":"Owl","given":["Barney"]}]},{"resourceType":"Patient","id":"Pat1","identifier":[{"system":"https://fhir.nhs.uk/Id/nhs-number","value":"9449310475"}],"name":[{"family":"Owler","given":["Ozzie"]}],"gender":"unknown","birthDate":"1965-02-28","address":[{"postalCode":"EC1A 1BB"}]}],"extension":[{"url":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","valueCodeableConcept":{"coding":[{"system":"http://snomed.info/sct","code":"1303503001","display":"Administration of RSV (respiratory syncytial virus) vaccine"}]}}],"identifier":[{"use":"official","system":"https://supplierABC/identifiers/vacc","value":"e2154d29-1ead-4830-a513-0d59705078fa"}],"status":"completed","vaccineCode":{"coding":[{"system":"http://snomed.info/sct","code":"42605811000001109","display":"Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)"}]},"patient":{"reference":"#Pat1"},"occurrenceDateTime":"2021-02-07T13:28:17.271000+00:00","recorded":"2021-02-07T13:28:17.271000+00:00","primarySource":true,"location":{"identifier":{"system":"https://fhir.nhs.uk/Id/ods-organization-code","value":"X99999"}},"manufacturer":{"display":"AstraZeneca Ltd"},"lotNumber":"4120Z001","expirationDate":"2021-07-02","site":{"coding":[{"system":"http://snomed.info/sct","code":"368208006","display":"Left upper arm structure (body structure)"}]},"route":{"coding":[{"system":"http://snomed.info/sct","code":"78421000","display":"Intramuscular route (qualifier value)"}]},"doseQuantity":{"value":0.5,"unit":"milliliter","system":"http://unitsofmeasure.org","code":"ml"},"performer":[{"actor":{"reference":"#Pract1"}},{"actor":{"type":"Organization","identifier":{"system":"https://fhir.nhs.uk/Id/ods-organization-code","value":"B0C4P"}}}],"reasonCode":[{"coding":[{"system":"http://snomed.info/sct","code":"443684005"}]}],"protocolApplied":[{"targetDisease":[{"coding":[{"system":"http://snomed.info/sct","code":"55735004","display":"Respiratory syncytial virus infection (disorder)"}]}],"doseNumberPositiveInt":1}]}}}},"4XX":{"$ref":"#/components/responses/4XX-imms-read"}}},"put":{"summary":"Update a record of vaccination","operationId":"updateImmunization","description":"## Overview\nThis interaction allows you to add a new updated record of a vaccination event. Update replaces the full immunization resource, so you must provide all data fields, not just the change (Patch is not currently supported). You may obtain all the current data for the vaccination event using the read interaction, which will also return an eTag for the version. \nYou may use update to re-instate a deleted record, but our update interaction does not support creating a new vaccination event where one does not currently exist. \nYou must not change the identifier when updating a vaccination event. The identifier is used as a primary identifier by downstream systems. \nYou must be authorised for update interaction and the disease type associated with the vaccination event in order to update the record. \n\n## Sandbox testing \n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n| Update a vaccination event | Valid request as per schema | HTTP Status 200 |\n| Bad Request (missing/invalid required element in request body) | Didn't pass `E-Tag` in request header | HTTP Status 400 Bad Request |\n","parameters":[{"$ref":"#/components/parameters/CorrelationID"},{"$ref":"#/components/parameters/RequestID"},{"$ref":"#/components/parameters/Id"},{"$ref":"#/components/parameters/E-Tag"}],"requestBody":{"content":{"application/fhir+json":{"schema":{"description":"A FHIR Immunization resource.","type":"object","required":["resourceType","id","contained","extension","identifier","status","vaccineCode","patient","occurrence[X]","recorded","primarySource","location","performer","protocolApplied"],"properties":{"resourceType":{"description":"FHIR resource type. Always `Immunization`.","type":"string","example":"Immunization"},"id":{"description":"Immunization record Id.","type":"string","example":"12a33650-6f94-4e8f-a971-1c5c41da5b22"},"meta":{"type":"object","properties":{"versionId":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted."},"lastUpdated":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))","description":"When the resource last changed - e.g. when the version changed.","example":"2017-01-01T00:00:00Z"},"source":{"type":"string","description":"A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc."},"profile":{"type":"array","items":{"type":"string","pattern":"\\S*","description":"A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)."}},"security":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure."}},"tag":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource."}}}},"contained":{"type":"array","description":"Includes any relevant resources as defined within this specification and referenced from within the resource. A patient resource SHALL be included. \nThe schema for Practitioner & Patient are different.","minItems":1,"items":{"oneOf":[{"type":"object","properties":{"resourceType":{"type":"string","description":"FHIR resource type. Always `Practitioner`.","example":"Practitioner"},"id":{"type":"string","description":"Logical id of this artifact"},"name":{"type":"array","description":"The name(s) associated with the practitioner","items":{"type":"object","properties":{"family":{"type":"string","description":"Family name (often called 'Surname')"},"given":{"type":"array","description":"Given names (not always 'first').","items":{"type":"string"}}}}}},"required":["resourceType","id"]},{"type":"object","properties":{"resourceType":{"type":"string","description":"FHIR resource type. Always `Patient`.","example":"Patient"},"id":{"type":"string","description":"Logical id of this artifact","example":"#Pat1"},"identifier":{"type":"array","description":"An identifier for the patient","items":{"type":"object","properties":{"system":{"type":"string","description":"The namespace for the identifier value"},"value":{"type":"string","description":"The value that is unique. \nThis SHALL be populated if `system` is https://fhir.nhs.uk/Id/nhs-number."}}}},"name":{"type":"array","description":"Patient name as registered, or as recorded by the user where the patient record cannot be traced. \nThere SHOULD be only one instance of name. If more than one name instance is provided additional elements SHOULD be populated only so the current, official name can be determined or otherwise the current, official name SHALL be the first name instance. There SHALL be at least one name instance with both family and given elements populated.","items":{"type":"object","properties":{"family":{"type":"string","description":"Family name (often called 'Surname')"},"given":{"type":"array","description":"Patient Forename. Middle names are not to be included within this field. \nThere SHOULD only be one given name supplied in this element.","items":{"type":"string"}}},"required":["family","given"]}},"gender":{"type":"string","description":"male | female | other | unknown"},"birthDate":{"type":"string","description":"The date of birth for the individual"},"address":{"type":"array","description":"There SHOULD be only one instance of address with only the postalCode element populated. If more than one address instance is provided the additional elements SHOULD be populated only so the current, home post code can be determined or otherwise the current, home post code SHALL be the first address instance.","items":{"type":"object","properties":{"postalCode":{"type":"string","description":"Patient residential/home postcode. Value should be divided into two parts separated by a single space, e.g. EC1A 1BB \nAs well as actual post codes, the following SHOULD be used in other scenarios. \n *ZZ99 3VZ No Fixed Abode \n *ZZ99 3WZ Address Not Known \n *ZZ99 3CZ (England/UK) Address not otherwise specified \nThe full list is available here: https://www.england.nhs.uk/wp-content/uploads/2020/04/cam-2021-guidance-v2.1.pdf"}},"required":["postalCode"]}}},"required":["resourceType","id","name","gender","birthDate","address"]}]}},"extension":{"description":"FHIR extension wrapper for the vaccination procedure performed. Always contains exactly one object.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["url","valueCodeableConcept"],"properties":{"url":{"description":"URI for the type of extension - https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","type":"string","example":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure"},"valueCodeableConcept":{"description":"This SHALL be populated with the appropriate SNOMED CT code (identified by system=http://snomed.info/sct). \nThis relates to the vaccine that was administered, typically in the form of a procedure code. The UK Core IG provides guidance on codes for this extension, but the provider SHALL ensure the appropriate code and term is provided. \nAdditional coding MAY be included provided it is semantically equivalent to the SNOMED concept.","type":"object","required":["coding"],"properties":{"coding":{"description":"Wrapper for the vaccination procedure coding.","type":"array","items":{"type":"object","required":["system","code"],"properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"A particular code in the system.","type":"string","example":"1303503001"},"display":{"description":"Representation defined by the system.","type":"string","example":"Administration of RSV (respiratory syncytial virus) vaccine"}}}},"text":{"description":"Plain text representation of the concept.","type":"string"}}}}}},"identifier":{"description":"A unique identifier assigned to this immunization record. Only one identifier SHALL be provided.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["system","value"],"properties":{"use":{"description":"Identifier use as defined by https://www.hl7.org/fhir/valueset-identifier-use.html.","type":"string","enum":["usual","official","temp","secondary","old"],"example":"official"},"system":{"description":"A URI for the system that has allocated the vaccination identifier.","type":"string","example":"https://supplierABC/identifiers/vacc `or` https://supplierABC/ODSCode_NKO41/identifiers/vacc"},"value":{"description":"A unique identifier value within `system`. Ideally this would be a GUID / UUID. \nThe value in combination with the system SHALL be globally unique.","type":"string","example":"e2154d29-1ead-4830-a513-0d59705078fa"}}}},"status":{"description":"Indicates the status of the immunization event. \nOnly administered vaccination records SHALL be supported: status = completed.","type":"string","enum":["completed"],"example":"completed"},"vaccineCode":{"description":"Vaccine product administered. \nWhere the vaccine product is known, the dm+d / SNOMED CT concept for the AMP form SHOULD be provided. \nWhere a meaningful vaccine code cannot be provided, use one of the following NullFlavor codes, \n NAVU - `Not available` \n UNC - `Unencoded` \n UNK - `Unknown` \n NA - `Not Applicable` \nFrom http://terminology.hl7.org/CodeSystem/v3-NullFlavor","type":"object","properties":{"coding":{"description":"Wrapper for the vaccine product details.","type":"array","items":{"type":"object","properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"SNOMED code for the vaccine product.","type":"string","example":"42605811000001109"},"display":{"description":"Description of the vaccine product.","type":"string","example":"Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)"}}}}}},"patient":{"description":"The patient who received the immunization. \nWhen providing records of a vaccination event (create / update) and reading a record by its ID, this SHALL be a reference to a contained patient resource.","type":"object","required":["reference"],"properties":{"reference":{"description":"Reference of patient from contained section","type":"string","example":"#Pat1"}}},"occurrence[X]":{"type":"object","description":"When immunizations are given a specific date and time should always be known. The string data type for this element is not supported. Only occurrenceDateTime SHALL be used.","properties":{"occurrenceDateTime":{"description":"A dateTime format SHALL be provided. It SHOULD be to the level of precision as recorded within the source system, subject to the FHIR rules for dateTime. \n Only positive timezone offsets of '+00:00' (GMT) and '+01:00' (BST) are allowed. Where time zone information is required but is not available in the source system the time zone element can be a hardcoded static value of `+00:00`.","type":"string","example":"2021-02-07T13:28:17.271000+00:00"}},"required":["occurrenceDateTime"]},"recorded":{"description":"The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.","type":"string","example":"2021-02-07T13:28:17.271000+00:00"},"primarySource":{"description":"Set as `TRUE` when the content of the record is based on information from the person performing the vaccine or who has clinical responsibility for the vaccination, and the system can be considered a primary source of the vaccination event. \nSet as `FALSE` when the content of the record is NOT based on information from the person performing the vaccine or who has clinical responsibility for the vaccination and the system should not be treated as a primary source for this record.","type":"boolean","example":true},"location":{"type":"object","description":"The service delivery location where the vaccine administration occurred.","properties":{"identifier":{"type":"object","description":"An identifier for the service delivery location.","properties":{"system":{"description":"The system which defines the location. Typically this will be https://fhir.nhs.uk/Id/ods-organization-code for a health setting (ODS use) or https://fhir.hl7.org.uk/Id/urn-school-number for an education setting (URN use). ","type":"string","example":"urn:iso:std:iso:3166"},"value":{"description":"The ODS or URN code of the location where the vaccination was administered. \n1. For occupational health vaccinations administered in a hospital trust by an independent healthcare provider, this SHALL be the ODS code of the hospital trust. \n2. For school vaccinations administered by a School Aged Immunisation Service provider, this SHALL be the URN of the school where the vaccination was administered. \n3. For roving teams on care home visits, this SHALL be the ODS code of the care home, where known. \n4. For any other vaccinations, populate with the same code as provided for `performer` ODS code. \n\nWhere the ODS/URN code is unavailable, a default value of `X99999` MUST be used.","type":"string","example":"GB"}},"required":["system","value"]}}},"manufacturer":{"description":"Manufacturer of vaccine product. This `SHOULD be populated` where the data is available.","type":"object","properties":{"display":{"description":"The free text name of the vaccine manufacturer. This `SHOULD be populated` where the data is available.","type":"string","example":"AstraZeneca Ltd"}}},"lotNumber":{"description":"Vaccine batch number. This should be captured at source ideally via use of automated scanning technology (GS1 GTIN / NTIN standard). \nThis `SHOULD be populated` where the data is available.","type":"string","example":"4120Z001"},"expirationDate":{"description":"Manufacturer expiry date or defrost expiry date of the vaccine, whichever is earliest. This `SHOULD be populated` where the data is available.","type":"string","example":"2021-04-29"},"site":{"description":"Body site where vaccine was administered. This `SHOULD be populated` where the data is available. \nA SNOMED-CT Concept ID value from UK published reference set Vaccine body site of administration simple reference set (1127941000000100) should be used.","type":"object","properties":{"coding":{"description":"Wrapper for the vaccination body site details.","type":"array","items":{"type":"object","properties":{"system":{"description":"Coding system used to describe vaccination body site.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"Code for the vaccination body site.","type":"string","example":"368208006"},"display":{"description":"Description of the vaccination body site.","type":"string","example":"Left upper arm structure (body structure)"}}}}}},"route":{"description":"The path by which the vaccine product is taken into the body. This `SHOULD be populated` where the data is available. \nA SNOMED-CT concept ID value from UK “ePrescribing route of administration simple reference set (foundation metadata concept)” (999000051000001100) should be used.","type":"object","properties":{"coding":{"description":"Wrapper for the vaccination route details.","type":"array","items":{"type":"object","properties":{"system":{"description":"Coding system used to describe vaccination route.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"Code for the vaccination route.","type":"string","example":"78421000"},"display":{"description":"Description of the vaccination route.","type":"string","example":"Intramuscular route (qualifier value)"}}}}}},"doseQuantity":{"description":"The quantity of vaccine product that was administered. This `SHOULD be populated` where the data is available. \nA SNOMED-CT Concept ID value representing the unit of measure used SHOULD be provided.","type":"object","properties":{"value":{"description":"The actual value of the dose amount administered. This `SHOULD be populated` where the data is available. \nFor Example, \nComirnaty ® (Pfizer BioNTech): \n Full Dose (Primary Course or booster) = 0.3 \n Fractional Dose (Primary Course) = 0.1","type":"number","example":1},"unit":{"description":"A human-readable form of the unit. This `SHOULD be populated` where the data is available.","type":"string","example":"milliliter"},"system":{"description":"The code system from which the provided code is taken. This `SHOULD be populated` where the data is available.","type":"string","example":"http://unitsofmeasure.org"},"code":{"description":"The code for the unit of measure. SNOMED coded dose units are preferred. This `SHOULD be populated` where the data is available.","type":"string","example":"ml"}}},"performer":{"description":"Details of the organisation that performed the immunisation event. \nThis covers: \n The Commissioned Healthcare Provider who has administered the vaccination \n The professional performing the vaccination \nAt least one performer entry SHALL be provided which includes an actor with an identifier system and value.","type":"array","minItems":1,"items":{"type":"object","required":["actor"],"properties":{"actor":{"description":"When the actor represents the managing organisation for the vaccination this SHALL be populated with `Organization`","type":"object","properties":{"type":{"description":"The type of actor reference provided. This SHALL be populated with `Organization`.","type":"string","example":"Organisation"},"identifier":{"description":"When the actor represents the managing organisation for the vaccination this SHALL be populated and the guidance for sub-elements applied.","type":"object","required":["system","value"],"properties":{"system":{"description":"This SHALL be the system from which the supplied code is taken. The code SHOULD be an ODS code which comes from `https://fhir.nhs.uk/Id/ods-organization-code`.","type":"string","example":"https://fhir.nhs.uk/Id/ods-organization-code"},"value":{"description":"The ODS code for the Commissioned Healthcare Provider, \n For roving teams on home visits or care home visits, use the ODS code of the responsible site e.g. GP Practice or dedicated vaccination site \n For school vaccinations, use the ODS of code of the School Aged Immunisation Service provider, rather than the URN of the school \nURN codes must not be provided for this data item.","type":"string","example":"B0C4P"}}},"reference":{"description":"Where practitioner details are being provided, this SHOULD be a reference to a contained practitioner resource. If the actor is the managing organisation, this SHOULD be absent.","type":"string","example":"#Pract1"}}}}}},"reasonCode":{"description":"A SNOMED-CT Concept representing the clinical indication or reason for administering or recording an historical vaccination. \nThe primary reason for the vaccination SHOULD be either the only reason submitted or the first SNOMED CT coded reason. \nThis `SHOULD be populated` where the data is available.","type":"array","items":{"type":"object","properties":{"coding":{"description":"Wrapper for the reason code details.","type":"array","minItems":1,"items":{"type":"object","properties":{"system":{"description":"Coding system used to describe the reason for administration of vaccine.","type":"string","example":"http://snomed.info/sct"},"code":{"description":"SNOMED code for the vaccination reason.","type":"string","example":"443684005"},"display":{"description":"Description of the vaccination reason.","type":"string","example":"Disease outbreak (event)"}}}}}}},"protocolApplied":{"description":"The protocol (set of recommendations) being followed by the provider who administered the dose.","type":"array","minItems":1,"maxItems":1,"items":{"type":"object","required":["targetDisease","doseNumber[X]"],"properties":{"targetDisease":{"type":"array","description":"The vaccine preventable disease the dose is being administered against. \nThis SHALL be populated with the appropriate SNOMED CT concept. See the provided [code list](https://digital.nhs.uk/developer/guides-and-documentation/building-healthcare-software/vaccinations/coding-for-vaccination-disease-types#how-this-applies-to-vaccinations-submitted-to-the-api) for each supported type of vaccination. A valid code or code combination SHALL be provided. \nFor vaccines which provide immunity for more than one target disease there SHALL be one instance of targetDisease for each and no more.","items":{"type":"object","required":["coding"],"properties":{"coding":{"type":"array","description":"A reference to a code defined by a terminology system.","items":{"type":"object","required":["system","code"],"properties":{"system":{"description":"The identification of the code system that defines the meaning of the symbol in the code.","type":"string"},"code":{"description":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system","type":"string"},"display":{"description":"A representation of the meaning of the code in the system, following the rules of the system.","type":"string"}}}}}}},"doseNumber[X]":{"type":"object","description":"Nominal position in a series. This SHALL be provided but may be populated using either of the dataTypes available: PositiveInt or String. The use of an integer is preferred. Maximum value is 9.","properties":{"doseNumberPositiveInt":{"description":"Nominal position in a course of vaccines. This `SHOULD be populated` where the data is available. Maximum value is 9.","type":"integer","maximum":9,"example":1},"doseNumberString":{"description":"Description of the dose sequence where it is not a numeric or a reason a dose number cannot be provided. \nA string should only be used in cases where an integer is not available.","type":"string"}}}}}}}},"example":{"resourceType":"Immunization","id":"4ff607e0-c6e9-4fe0-a2b6-3bcd7fdc44c9","contained":[{"resourceType":"Practitioner","id":"Pract1","name":[{"family":"Nightingale","given":["Florence"]}]},{"resourceType":"Patient","id":"Pat1","identifier":[{"system":"https://fhir.nhs.uk/Id/nhs-number","value":"9449310475"}],"name":[{"family":"Taylor","given":["Sarah"]}],"gender":"unknown","birthDate":"1965-02-28","address":[{"postalCode":"EC1A 1BB"}]}],"extension":[{"url":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","valueCodeableConcept":{"coding":[{"system":"http://snomed.info/sct","code":"1324681000000101","display":"Administration of first dose of severe acute respiratory syndrome coronavirus 2 vaccine (procedure)"}]}}],"identifier":[{"system":"https://supplierABC/identifiers/vacc","value":"a7437179-e86e-4855-b68e-24b5jhg3g"}],"status":"completed","vaccineCode":{"coding":[{"system":"http://snomed.info/sct","code":"39114911000001105","display":"COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd) (product)"}]},"patient":{"reference":"#Pat1"},"occurrenceDateTime":"2021-02-07T13:28:17.271+00:00","recorded":"2021-02-07T13:28:17.271+00:00","primarySource":true,"manufacturer":{"display":"AstraZeneca Ltd"},"location":{"identifier":{"value":"X99999","system":"https://fhir.nhs.uk/Id/ods-organization-code"}},"lotNumber":"4120Z001","expirationDate":"2021-07-02","site":{"coding":[{"system":"http://snomed.info/sct","code":"368208006","display":"Left upper arm structure (body structure)"}]},"route":{"coding":[{"system":"http://snomed.info/sct","code":"78421000","display":"Intramuscular route (qualifier value)"}]},"doseQuantity":{"value":0.5,"unit":"milliliter","system":"http://unitsofmeasure.org","code":"ml"},"performer":[{"actor":{"reference":"#Pract1"}},{"actor":{"type":"Organization","identifier":{"system":"https://fhir.nhs.uk/Id/ods-organization-code","value":"B0C4P"}}}],"reasonCode":[{"coding":[{"code":"443684005","system":"http://snomed.info/sct"}]}],"protocolApplied":[{"targetDisease":[{"coding":[{"system":"http://snomed.info/sct","code":"840539006","display":"Disease caused by severe acute respiratory syndrome coronavirus 2 (disorder)"}]}],"doseNumberPositiveInt":1}]}}}},"responses":{"200":{"description":"Update Immunization operation successful","headers":{"CorrelationID":{"$ref":"#/components/headers/CorrelationID"},"RequestID":{"$ref":"#/components/headers/RequestID"}}},"4XX":{"$ref":"#/components/responses/4XX-imms-update"}}},"delete":{"summary":"Mark a record of vaccination as being entered in error","operationId":"deleteImmunization","description":"## Overview\nThis interaction allows you to mark a record that has been entered in error.\nDeleted records will continue to be stored for a period of time but are not returned in response to read or search requests.\nA deleted record can be re-instated using the update interaction if it was incorrectly deleted. \n\n## Sandbox testing\n\n| Scenario | Request | Response |\n| ----------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------|\n| | | |\n| Delete a vaccination event | `id`=`12a33650-6f94-4e8f-a971-1c5c41da5b22` | HTTP Status 204 No Content |\n| Bad Request | Didn't pass required fields `id` | HTTP Status 400 Bad Request |\n","parameters":[{"$ref":"#/components/parameters/CorrelationID"},{"$ref":"#/components/parameters/RequestID"},{"$ref":"#/components/parameters/Id"}],"responses":{"204":{"description":"Delete Immunization operation successful"},"4XX":{"$ref":"#/components/responses/4XX-imms-delete"}}}}},"components":{"responses":{"4XX-imms-create":{"description":"Below are examples of potential HTTP status codes and their associated error codes, which could be returned in the event of a fault.\n\n| HTTP status | Error code | Description | Example |\n| ----------- | -------------------------- | --------------------------------------------- |--------------------------------------------------------------------------------------|\n| 400 | Bad Request | Invalid resourceType in body | {\"resourceType\": \"OperationOutcome\", \"id\": \"a7dc58e7-4033-43e6-b34e-cf7ee7bbc567\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: This service only accepts FHIR Immunization Resources (i.e. resourceType must equal 'Immunization')\"}]} |\n| 400 | Bad Request | Invalid resourceType within contained | {\"resourceType\": \"OperationOutcome\", \"id\": \"ffda54b5-21a7-4e4c-9ca5-0a4e510d7467\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: contained must contain only Patient and Practitioner resources\"}]} |\n| 400 | Bad Request | Invalid status value | {\"resourceType\": \"OperationOutcome\", \"id\": \"12a9f94c-df00-4e87-aefa-2c76f9065367\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: status must be one of the following: completed\"}]} |\n| 400 | Bad Request | Invalid value for a datetime (string) field e.g. occurrenceDateTime.
Note : The error format will remain same for any datetime (string) field; only the field name will change under diagnostics. | {\"resourceType\": \"OperationOutcome\", \"id\": \"e02e3254-c1b3-4afd-a8ca-84091d7d272c\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: occurrenceDateTime must be a valid datetime in the format 'YYYY-MM-DDThh:mm:ss+zz:zz' (where time element is optional, timezone must be given if and only if time is given, and milliseconds can be optionally included after the seconds). Note that partial dates are not allowed for occurrenceDateTime for this service.\"}]} |\n| 400 | Bad Request | Invalid value for a string field e.g. postalCode
Note : The error format will remain same for any string field; only the field location will change under diagnostics. | {\"resourceType\": \"OperationOutcome\", \"id\": \"0df23485-4690-41ab-8b24-8b28584ec2eb\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: contained[?(@.resourceType=='Patient')].address[0].postalCode must be a non-empty string\"}]} |\n| 400 | Bad Request | Invalid value for an integer field e.g. doseNumberPositiveInt
Note : The error format will remain same for any integer field; only the field location will change under diagnostics. | {\"resourceType\": \"OperationOutcome\", \"id\": \"dda6b6cd-af06-47ea-a4d4-f0f8cdf83085\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: protocolApplied[0].doseNumberPositiveInt must be a positive integer\"}]} |\n| 400 | Bad Request | Invalid top level element e.g. test | {\"resourceType\": \"OperationOutcome\", \"id\": \"fd60f75c-d2cb-4c77-b3e9-ba8c3e0379e6\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: \"test\" is not an allowed element of the Immunization resource for this service\"}]} |\n| 400 | Bad Request | Missing mandatory field e.g. contained
Note : The error format will remain same for any mandatory field; only the field name will change under diagnostics. | {\"resourceType\": \"OperationOutcome\", \"id\": \"72eee803-c8bf-4728-a15b-5d9a10bb645c\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"contained is a mandatory field\"}]} |\n| 401 | Unauthorized | Authorization is required for the interaction that was attempted | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"expired\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender has not provided a token or it has expired or is otherwise invalid.\"}]} |\n| 403 | Forbidden | The sender does not have permissions to access this resource | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"forbidden\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender does not have permissions to access this resource. Please check your credentials and permissions.\"}]} |\n| 403 | Forbidden | The sender does not have permission for the specific operation or vaccine type | {\"resourceType\": \"OperationOutcome\", \"id\": \"1b7eec0a-316f-4f6e-a342-4b37f6705050\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"forbidden\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"FORBIDDEN\"}]}, \"diagnostics\": \"Unauthorized request for vaccine type\"}]} |\n| 422 | Unprocessable Entity | Duplicate Identifier value | {\"resourceType\": \"OperationOutcome\", \"id\": \"b82adf54-1844-4354-a5dd-09bfc34dd569\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"duplicate\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"DUPLICATE\"}]}, \"diagnostics\": \"The provided identifier: https://supplierABC/identifiers/vacc#a7437179-e86e-4855-b68e-xxxxx is duplicated\"}]} |\n","content":{"application/fhir+json":{"schema":{"$ref":"#/components/schemas/OperationOutcome"},"example":{"resourceType":"OperationOutcome","id":"a5abca2a-4eda-41da-b2cc-95d48c6b791d","meta":{"profile":["https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome"]},"issue":[{"severity":"error","code":"expired","details":{"coding":[{"system":"https://fhir.nhs.uk/Codesystem/http-error-codes","code":"SEND_UNAUTHORIZED"}]},"diagnostics":"The sender has not provided a token or it has expired or is otherwise invalid."}]}}}},"4XX-imms-search":{"description":"Below are examples of potential HTTP status codes and their associated error codes, which could be returned in the event of a fault.\n\n| HTTP status | Error code | Description | Example |\n| ----------- | -------------------------- | --------------------------------------------- |--------------------------------------------------------------------------------------|\n| 400 | Bad Request | Search parameter immunization.target is either missing or not in the expected format. | {\"resourceType\":\"OperationOutcome\",\"id\":\"0f985bbd-a25e-4644-bcab-e11ac9f1cf3a\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"invalid\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"INVALID\"}]},\"diagnostics\":\"Search parameter -immunization.target must have one or more values.\"}]} |\n| 400 | Bad Request | Search parameter patient.identifier is either missing or not in the expected format. | {\"resourceType\":\"OperationOutcome\",\"id\":\"ee3ce747-95dc-40e9-be2e-404edf203444\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"invalid\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"INVALID\"}]},\"diagnostics\":\"Search parameter patient.identifier must have one value.\"}]} |\n| 400 | Bad Request | Invalid value for patient.identifier | {\"resourceType\":\"OperationOutcome\",\"id\":\"ec7f1d44-6658-42cc-bffb-af790beba382\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"invalid\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"INVALID\"}]},\"diagnostics\":\"patient.identifier must be in the format of \\\"https://fhir.nhs.uk/Id/nhs-number|{NHS number}\\\" e.g. \\\"https://fhir.nhs.uk/Id/nhs-number|9000000009\\\"\"}]} |\n| 400 | Bad Request | Invalid date.to/date.from format | {\"resourceType\": \"OperationOutcome\", \"id\": \"ad3d7881-6f2e-418f-ae13-75a07d7269d7\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invalid\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVALID\"}]}, \"diagnostics\": \"Search parameter -date.to must be in format: YYYY-MM-DD\"}]} |\n| 400 | Bad Request | Invalid value for \"-immunization.target\" | {\"resourceType\": \"OperationOutcome\", \"id\": \"f1753822-5667-4562-a288-1544a0b66d00\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invalid\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVALID\"}]}, \"diagnostics\": \"immunization-target must be one or more of the following: COVID19,FLU,HPV,MMR,3IN1,MENACWY,RSV\"}]} |\n| 401 | Unauthorized | Authorization is required for the interaction that was attempted | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"expired\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender has not provided a token or it has expired or is otherwise invalid.\"}]} |\n| 403 | Forbidden | The sender does not have permissions to access this resource | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"forbidden\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender does not have permissions to access this resource. Please check your credentials and permissions.\"}]} |\n| 403 | Forbidden | The sender does not have permission for the specific operation or vaccine type | {\"resourceType\": \"OperationOutcome\", \"id\": \"1b7eec0a-316f-4f6e-a342-4b37f6705050\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"forbidden\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"FORBIDDEN\"}]}, \"diagnostics\": \"Unauthorized request for vaccine type\"}]} |\n","content":{"application/fhir+json":{"schema":{"$ref":"#/components/schemas/OperationOutcome"},"example":{"resourceType":"OperationOutcome","id":"a5abca2a-4eda-41da-b2cc-95d48c6b791d","meta":{"profile":["https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome"]},"issue":[{"severity":"error","code":"expired","details":{"coding":[{"system":"https://fhir.nhs.uk/Codesystem/http-error-codes","code":"SEND_UNAUTHORIZED"}]},"diagnostics":"The sender has not provided a token or it has expired or is otherwise invalid."}]}}}},"4XX-imms-read":{"description":"Below are examples of potential HTTP status codes and their associated error codes, which could be returned in the event of a fault.\n\n| HTTP status | Error code | Description | Example |\n| ----------- | -------------------------- | --------------------------------------------- |--------------------------------------------------------------------------------------|\n| 400 | Bad Request | Missing immunization event identifier (id) | {\"resourceType\": \"OperationOutcome\", \"id\": \"438f5c0d-f89d-46ec-b4ba-c08dc5a44ff3\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invalid\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVALID\"}]}, \"diagnostics\": \"the provided event ID is either missing or not in the expected format.\"}]} |\n| 401 | Unauthorized | Authorization is required for the interaction that was attempted | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"expired\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender has not provided a token or it has expired or is otherwise invalid.\"}]} |\n| 403 | Forbidden | The sender does not have permissions to access this resource | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"forbidden\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender does not have permissions to access this resource. Please check your credentials and permissions.\"}]} |\n| 403 | Forbidden | The sender does not have permission for the specific operation or vaccine type | {\"resourceType\": \"OperationOutcome\", \"id\": \"1b7eec0a-316f-4f6e-a342-4b37f6705050\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"forbidden\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"FORBIDDEN\"}]}, \"diagnostics\": \"Unauthorized request for vaccine type\"}]} |\n| 404 | Not Found | Unrecognized immunization event identifier (id) | {\"resourceType\": \"OperationOutcome\", \"id\": \"5b51e331-5f9c-442f-a4c3-b5f52a1ba83e\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"not-found\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"NOT-FOUND\"}]}, \"diagnostics\": \"The requested resource was not found.\"}]} |\n","content":{"application/fhir+json":{"schema":{"$ref":"#/components/schemas/OperationOutcome"},"example":{"resourceType":"OperationOutcome","id":"a5abca2a-4eda-41da-b2cc-95d48c6b791d","meta":{"profile":["https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome"]},"issue":[{"severity":"error","code":"expired","details":{"coding":[{"system":"https://fhir.nhs.uk/Codesystem/http-error-codes","code":"SEND_UNAUTHORIZED"}]},"diagnostics":"The sender has not provided a token or it has expired or is otherwise invalid."}]}}}},"4XX-imms-update":{"description":"Below are examples of potential HTTP status codes and their associated error codes, which could be returned in the event of a fault.\n\n| HTTP status | Error code | Description | Example |\n| ----------- | -------------------------- | --------------------------------------------- |--------------------------------------------------------------------------------------|\n| 400 | Bad Request | All validation errors & mandatory field errors from the Record scenario | All validation errors & mandatory field errors from POST /Immunization |\n| 400 | Bad Request | Missing id in request parameter | {\"resourceType\": \"OperationOutcome\", \"id\": \"05ef00c0-18ae-4a88-93ca-9dc1b0532ea1\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invalid\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVALID\"}]}, \"diagnostics\": \"the provided event ID is either missing or not in the expected format.\"}]} |\n| 400 | Bad Request | Missing id parameter in request body
or
mismatch between id provided within request body and request parameter | {\"resourceType\": \"OperationOutcome\", \"id\": \"ddf659ac-1a34-4ca2-b11a-77b9a8febeec\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: The provided immunization id:16ec10f2-afef-4c0b-9467-xxxx doesn't match with the content of the request body\"}]} |\n| 400 | Bad Request | Mismatch between identifier value and stored event | {\"resourceType\": \"OperationOutcome\", \"id\": \"ac43b4a6-7ceb-4ff8-a246-d7ceacdab058\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: identifier[0].value doesn't match with the stored content\"}]} |\n| 400 | Bad Request | Missing E-Tag (version) header | {\"resourceType\": \"OperationOutcome\", \"id\": \"715d5e23-4621-4719-8902-e80faf6539fd\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: Immunization resource version not specified in the request headers\"}]} |\n| 400 | Bad Request | Wrong version number passed in E-Tag header
e.g. passing version no. > 1 in case of first-time update | {\"resourceType\": \"OperationOutcome\", \"id\": \"7cf8b2e1-f069-4cce-9b48-5201f64a50a9\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: The requested immunization resource 5a64fa79-9114-49bb-97c9-d455b0276475 version is inconsistent with the existing version.\"}]} |\n| 400 | Bad Request | Empty value for E-Tag header | {\"resourceType\": \"OperationOutcome\", \"id\": \"6eda36fc-777a-472a-b3a3-3e1627eca980\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: Immunization resource version: in the request headers is invalid.\"}]} |\n| 400 | Bad Request | E-Tag value <= current stored value | {\"resourceType\": \"OperationOutcome\", \"id\": \"06e3086a-61b5-4dfc-b0ff-10e2658268f5\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invariant\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVARIANT\"}]}, \"diagnostics\": \"Validation errors: The requested immunization resource 5a64fa79-9114-49bb-97c9-d455b0276475 has changed since the last retrieve.\"}]} |\n| 401 | Unauthorized | Authorization is required for the interaction that was attempted | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"expired\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender has not provided a token or it has expired or is otherwise invalid.\"}]} |\n| 403 | Forbidden | The sender does not have permissions to access this resource | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"forbidden\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender does not have permissions to access this resource. Please check your credentials and permissions.\"}]} |\n| 403 | Forbidden | The sender does not have permission for the specific operation or vaccine type | {\"resourceType\": \"OperationOutcome\", \"id\": \"1b7eec0a-316f-4f6e-a342-4b37f6705050\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"forbidden\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"FORBIDDEN\"}]}, \"diagnostics\": \"Unauthorized request for vaccine type\"}]} |\n| 404 | Not Found | Provided id not available | {\"resourceType\": \"OperationOutcome\", \"id\": \"c86be3de-bcbb-4ba5-902e-9acf55187dc5\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"not-found\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"NOT-FOUND\"}]}, \"diagnostics\": \"Validation errors: The requested immunization resource with id:16ec10f2-afef-4c0b-9467-80434a7a0e26 was not found.\"}]} |\n","content":{"application/fhir+json":{"schema":{"$ref":"#/components/schemas/OperationOutcome"},"example":{"resourceType":"OperationOutcome","id":"a5abca2a-4eda-41da-b2cc-95d48c6b791d","meta":{"profile":["https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome"]},"issue":[{"severity":"error","code":"expired","details":{"coding":[{"system":"https://fhir.nhs.uk/Codesystem/http-error-codes","code":"SEND_UNAUTHORIZED"}]},"diagnostics":"The sender has not provided a token or it has expired or is otherwise invalid."}]}}}},"4XX-imms-delete":{"description":"Below are examples of potential HTTP status codes and their associated error codes, which could be returned in the event of a fault.\n\n| HTTP status | Error code | Description | Example |\n| ----------- | -------------------------- | --------------------------------------------- |--------------------------------------------------------------------------------------|\n| 400 | Bad Request | Missing or invalid id | {\"resourceType\": \"OperationOutcome\", \"id\": \"f400ad2c-62d9-4f98-bc35-a146caf14dee\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"invalid\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"INVALID\"}]}, \"diagnostics\": \"the provided event ID is either missing or not in the expected format.\"}]} |\n| 401 | Unauthorized | Authorization is required for the interaction that was attempted | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"expired\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender has not provided a token or it has expired or is otherwise invalid.\"}]} |\n| 403 | Forbidden | The sender does not have permissions to access this resource | {\"resourceType\":\"OperationOutcome\",\"id\":\"a5abca2a-4eda-41da-b2cc-95d48c6b791d\",\"meta\":{\"profile\":[\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]},\"issue\":[{\"severity\":\"error\",\"code\":\"forbidden\",\"details\":{\"coding\":[{\"system\":\"https://fhir.nhs.uk/Codesystem/http-error-codes\",\"code\":\"SEND_UNAUTHORIZED\"}]},\"diagnostics\":\"The sender does not have permissions to access this resource. Please check your credentials and permissions.\"}]} |\n| 403 | Forbidden | The sender does not have permission for the specific operation or vaccine type | {\"resourceType\": \"OperationOutcome\", \"id\": \"1b7eec0a-316f-4f6e-a342-4b37f6705050\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"forbidden\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"FORBIDDEN\"}]}, \"diagnostics\": \"Unauthorized request for vaccine type\"}]} |\n| 404 | Not Found | Non existing id in query parameter
or
Trying to deleted an already deleted record | {\"resourceType\": \"OperationOutcome\", \"id\": \"f772ee3e-3baf-4934-a07a-a13f70b1a50e\", \"meta\": {\"profile\": [\"https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome\"]}, \"issue\": [{\"severity\": \"error\", \"code\": \"not-found\", \"details\": {\"coding\": [{\"system\": \"https://fhir.nhs.uk/Codesystem/http-error-codes\", \"code\": \"NOT-FOUND\"}]}, \"diagnostics\": \"Immunization resource does not exist. ID: 5a64fa79-9114-49bb-97c9-xxxxxxxx\"}]} |\n","content":{"application/fhir+json":{"schema":{"$ref":"#/components/schemas/OperationOutcome"},"example":{"resourceType":"OperationOutcome","id":"a5abca2a-4eda-41da-b2cc-95d48c6b791d","meta":{"profile":["https://simplifier.net/guide/UKCoreDevelopment2/ProfileUKCore-OperationOutcome"]},"issue":[{"severity":"error","code":"expired","details":{"coding":[{"system":"https://fhir.nhs.uk/Codesystem/http-error-codes","code":"SEND_UNAUTHORIZED"}]},"diagnostics":"The sender has not provided a token or it has expired or is otherwise invalid."}]}}}}},"requestBodies":{"Immunization":{"content":{"application/fhir+json":{"schema":{"$ref":"#/components/schemas/Immunization"}}},"required":true},"SearchImmunization":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"patient.identifier":{"type":"string","description":"The patient's NHS number.\nExpressed as `` where`` must be a [valid NHS number](https://www.datadictionary.nhs.uk/attributes/nhs_number.html).\n","example":"9000000009"},"-immunization.target":{"type":"string","description":"Specific procedures, disorders, diseases, infections or organisms.\n","enum":["COVID19","FLU","MMR","HPV","3IN1","MENACWY","RSV"]},"-date.from":{"type":"string","format":"date","description":"The earliest date to be included (e.g. 2020-01-01)","default":"1900-01-01"},"-date.to":{"type":"string","format":"date","description":"The latest date to be included (e.g. 2020-12-31)","default":"9999-12-31"},"_include":{"description":"Specifies other resources to be included in the response along with the immunisations.\nMust be `Immunization:patient`, which will include patient demographic details.","type":"string","default":"Immunization:patient"}}}}}}},"headers":{"CorrelationID":{"required":false,"description":"An optional ID which you can use to track transactions across multiple systems. It can take any value, but we recommend avoiding `.` characters.\n\nMirrored back in a response header.\n","schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","example":"60E0B220-8136-4CA5-AE46-1D97EF59D068"}},"RequestID":{"required":false,"description":"A globally unique identifier (GUID) for the request, which we use to de-duplicate repeated requests and to trace the request if you contact our helpdesk.\n\nMust be a universally unique identifier (UUID) (ideally version 4).\n\nMirrored back in a response header.\n\nIf you re-send a failed request, use the same value in this header.\n","schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","example":"60E0B220-8136-4CA5-AE46-1D97EF59D068"}},"Location":{"required":true,"description":"The location of the newly created Immunization record. It contains the resource ID at the end.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","example":"60E0B220-8136-4CA5-AE46-1D97EF59D068"}},"E-Tag":{"required":true,"description":"Indicates the current version of an Immunization resource","schema":{"type":"integer","example":1}}},"parameters":{"Id":{"in":"path","name":"id","required":true,"description":"A required ID which you can use to identify an Immunization event object.\n\nMirrored back in a response header.\n","schema":{"type":"string","example":"29dc4e84-7e72-11ee-b962-0242ac120002"}},"CorrelationID":{"in":"header","name":"X-Correlation-ID","required":false,"description":"An optional ID which you can use to track transactions across multiple systems. It can take any value, but we recommend avoiding `.` characters.\n\nMirrored back in a response header.\n","schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","example":"60E0B220-8136-4CA5-AE46-1D97EF59D068"}},"RequestID":{"in":"header","name":"X-Request-ID","required":false,"description":"A globally unique identifier (GUID) for the request, which we use to de-duplicate repeated requests and to trace the request if you contact our helpdesk.\n\nMust be a universally unique identifier (UUID) (ideally version 4).\n\nMirrored back in a response header.\n\nIf you re-send a failed request, use the same value in this header.\n","schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","example":"60E0B220-8136-4CA5-AE46-1D97EF59D068"}},"PatientIdentifier":{"in":"query","name":"patient.identifier","description":"The patient's NHS number.\nExpressed as `|` where `` must be `https://fhir.nhs.uk/Id/nhs-number` and `` must be a [valid NHS number](https://www.datadictionary.nhs.uk/attributes/nhs_number.html).\n","required":true,"schema":{"type":"string","example":"https://fhir.nhs.uk/Id/nhs-number|9000000009"}},"ImmunizationTarget":{"in":"query","name":"-immunization.target","description":"Specific procedures, disorders, diseases, infections or organisms.\n","required":true,"schema":{"type":"string","enum":["COVID19","FLU","MMR","HPV","3IN1","MENACWY","RSV"]}},"DateFrom":{"in":"query","name":"-date.from","description":"The earliest date to be included (e.g. 2020-01-01)","schema":{"type":"string","format":"date","default":"1900-01-01"}},"DateTo":{"in":"query","name":"-date.to","description":"The latest date to be included (e.g. 2020-12-31)","schema":{"type":"string","format":"date","default":"9999-12-31"}},"Include":{"in":"query","name":"_include","description":"Specifies other resources to be included in the response along with the immunisations.\nMust be `Immunization:patient`, which will include patient demographic details.","required":false,"schema":{"type":"string","default":"Immunization:patient"}},"E-Tag":{"in":"header","name":"E-Tag","required":true,"description":"Indicates the current version of an Immunization resource","schema":{"type":"integer","example":1}}},"schemas":{"Resource":{"type":"object","discriminator":{"propertyName":"resourceType"},"properties":{"resourceType":{"type":"string","enum":["Resource","DomainResource","Account","ActivityDefinition","AdverseEvent","AllergyIntolerance","Appointment","AppointmentResponse","AuditEvent","Basic","Binary","BiologicallyDerivedProduct","BodyStructure","Bundle","CapabilityStatement","CarePlan","CareTeam","CatalogEntry","ChargeItem","ChargeItemDefinition","Claim","ClaimResponse","ClinicalImpression","CodeSystem","Communication","CommunicationRequest","CompartmentDefinition","Composition","ConceptMap","Condition","Consent","Contract","Coverage","CoverageEligibilityRequest","CoverageEligibilityResponse","DetectedIssue","Device","DeviceDefinition","DeviceMetric","DeviceRequest","DeviceUseStatement","DiagnosticReport","DocumentManifest","DocumentReference","EffectEvidenceSynthesis","Encounter","Endpoint","EnrollmentRequest","EnrollmentResponse","EpisodeOfCare","EventDefinition","Evidence","EvidenceVariable","ExampleScenario","ExplanationOfBenefit","FamilyMemberHistory","Flag","Goal","GraphDefinition","Group","GuidanceResponse","HealthcareService","ImagingStudy","Immunization","ImmunizationEvaluation","ImmunizationRecommendation","ImplementationGuide","InsurancePlan","Invoice","Library","Linkage","List","Location","Measure","MeasureReport","Media","Medication","MedicationAdministration","MedicationDispense","MedicationKnowledge","MedicationRequest","MedicationStatement","MedicinalProduct","MedicinalProductAuthorization","MedicinalProductContraindication","MedicinalProductIndication","MedicinalProductIngredient","MedicinalProductInteraction","MedicinalProductManufactured","MedicinalProductPackaged","MedicinalProductPharmaceutical","MedicinalProductUndesirableEffect","MessageDefinition","MessageHeader","MolecularSequence","NamingSystem","NutritionOrder","Observation","ObservationDefinition","OperationDefinition","OperationOutcome","Organization","OrganizationAffiliation","Parameters","Patient","PaymentNotice","PaymentReconciliation","Person","PlanDefinition","Practitioner","PractitionerRole","Procedure","Provenance","Questionnaire","QuestionnaireResponse","RelatedPerson","RequestGroup","ResearchDefinition","ResearchElementDefinition","ResearchStudy","ResearchSubject","RiskAssessment","RiskEvidenceSynthesis","Schedule","SearchParameter","ServiceRequest","Slot","Specimen","SpecimenDefinition","StructureDefinition","StructureMap","Subscription","Substance","SubstanceNucleicAcid","SubstancePolymer","SubstanceProtein","SubstanceReferenceInformation","SubstanceSourceMaterial","SubstanceSpecification","SupplyDelivery","SupplyRequest","Task","TerminologyCapabilities","TestReport","TestScript","ValueSet","VerificationResult","VisionPrescription"]},"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."},"meta":{"$ref":"#/components/schemas/Meta","description":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource."},"implicitRules":{"type":"string","pattern":"\\S*","description":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc."},"language":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The base language in which the resource is written."}},"required":["resourceType"]},"DomainResource":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/Narrative","description":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety."},"contained":{"type":"array","items":{"description":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","type":"object","discriminator":{"propertyName":"resourceType"},"properties":{"resourceType":{"type":"string","enum":["Resource","DomainResource","Account","ActivityDefinition","AdverseEvent","AllergyIntolerance","Appointment","AppointmentResponse","AuditEvent","Basic","Binary","BiologicallyDerivedProduct","BodyStructure","Bundle","CapabilityStatement","CarePlan","CareTeam","CatalogEntry","ChargeItem","ChargeItemDefinition","Claim","ClaimResponse","ClinicalImpression","CodeSystem","Communication","CommunicationRequest","CompartmentDefinition","Composition","ConceptMap","Condition","Consent","Contract","Coverage","CoverageEligibilityRequest","CoverageEligibilityResponse","DetectedIssue","Device","DeviceDefinition","DeviceMetric","DeviceRequest","DeviceUseStatement","DiagnosticReport","DocumentManifest","DocumentReference","EffectEvidenceSynthesis","Encounter","Endpoint","EnrollmentRequest","EnrollmentResponse","EpisodeOfCare","EventDefinition","Evidence","EvidenceVariable","ExampleScenario","ExplanationOfBenefit","FamilyMemberHistory","Flag","Goal","GraphDefinition","Group","GuidanceResponse","HealthcareService","ImagingStudy","Immunization","ImmunizationEvaluation","ImmunizationRecommendation","ImplementationGuide","InsurancePlan","Invoice","Library","Linkage","List","Location","Measure","MeasureReport","Media","Medication","MedicationAdministration","MedicationDispense","MedicationKnowledge","MedicationRequest","MedicationStatement","MedicinalProduct","MedicinalProductAuthorization","MedicinalProductContraindication","MedicinalProductIndication","MedicinalProductIngredient","MedicinalProductInteraction","MedicinalProductManufactured","MedicinalProductPackaged","MedicinalProductPharmaceutical","MedicinalProductUndesirableEffect","MessageDefinition","MessageHeader","MolecularSequence","NamingSystem","NutritionOrder","Observation","ObservationDefinition","OperationDefinition","OperationOutcome","Organization","OrganizationAffiliation","Parameters","Patient","PaymentNotice","PaymentReconciliation","Person","PlanDefinition","Practitioner","PractitionerRole","Procedure","Provenance","Questionnaire","QuestionnaireResponse","RelatedPerson","RequestGroup","ResearchDefinition","ResearchElementDefinition","ResearchStudy","ResearchSubject","RiskAssessment","RiskEvidenceSynthesis","Schedule","SearchParameter","ServiceRequest","Slot","Specimen","SpecimenDefinition","StructureDefinition","StructureMap","Subscription","Substance","SubstanceNucleicAcid","SubstancePolymer","SubstanceProtein","SubstanceReferenceInformation","SubstanceSourceMaterial","SubstanceSpecification","SupplyDelivery","SupplyRequest","Task","TerminologyCapabilities","TestReport","TestScript","ValueSet","VerificationResult","VisionPrescription"]},"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."},"meta":{"$ref":"#/components/schemas/Meta","description":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource."},"implicitRules":{"type":"string","pattern":"\\S*","description":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc."},"language":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The base language in which the resource is written."}},"required":["resourceType"]}},"extension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."}},"modifierExtension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."}}}},"Immunization":{"type":"object","required":["status","vaccineCode","patient"],"properties":{"text":{"$ref":"#/components/schemas/Narrative","description":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety."},"contained":{"type":"array","items":{"description":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","type":"object","discriminator":{"propertyName":"resourceType"},"properties":{"resourceType":{"type":"string","example":"Immunization"},"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."},"meta":{"$ref":"#/components/schemas/Meta","description":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource."},"implicitRules":{"type":"string","pattern":"\\S*","description":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc."},"language":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The base language in which the resource is written."}},"required":["resourceType"]}},"extension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."}},"modifierExtension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."}},"identifier":{"type":"array","items":{"$ref":"#/components/schemas/Identifier","description":"A unique identifier assigned to this immunization record."}},"status":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Indicates the current status of the immunization event."},"statusReason":{"$ref":"#/components/schemas/CodeableConcept","description":"Indicates the reason the immunization event was not performed."},"vaccineCode":{"$ref":"#/components/schemas/CodeableConcept","description":"Vaccine that was administered or was to be administered."},"patient":{"$ref":"#/components/schemas/Reference","description":"The patient who either received or did not receive the immunization."},"encounter":{"$ref":"#/components/schemas/Reference","description":"The visit or admission or other contact between patient and health care provider the immunization was performed as part of."},"occurrenceDateTime":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"Date vaccine administered or was to be administered."},"occurrenceString":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Date vaccine administered or was to be administered."},"recorded":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event."},"primarySource":{"type":"boolean","description":"An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded."},"reportOrigin":{"$ref":"#/components/schemas/CodeableConcept","description":"The source of the data when the report of the immunization event is not based on information from the person who administered the vaccine."},"location":{"$ref":"#/components/schemas/Reference","description":"The service delivery location where the vaccine administration occurred."},"manufacturer":{"$ref":"#/components/schemas/Reference","description":"Name of vaccine manufacturer."},"lotNumber":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Lot number of the vaccine product."},"expirationDate":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?","description":"Date vaccine batch expires."},"site":{"$ref":"#/components/schemas/CodeableConcept","description":"Body site where vaccine was administered."},"route":{"$ref":"#/components/schemas/CodeableConcept","description":"The path by which the vaccine product is taken into the body."},"doseQuantity":{"$ref":"#/components/schemas/SimpleQuantity","description":"The quantity of vaccine product that was administered."},"performer":{"type":"array","items":{"$ref":"#/components/schemas/Immunization_Performer","description":"Indicates who performed the immunization event."}},"note":{"type":"array","items":{"$ref":"#/components/schemas/Annotation","description":"Extra information about the immunization that is not conveyed by the other attributes."}},"reasonCode":{"type":"array","items":{"$ref":"#/components/schemas/CodeableConcept","description":"Reasons why the vaccine was administered."}},"reasonReference":{"type":"array","items":{"$ref":"#/components/schemas/Reference","description":"Condition, Observation or DiagnosticReport that supports why the immunization was administered."}},"isSubpotent":{"type":"boolean","description":"Indication if a dose is considered to be subpotent. By default, a dose should be considered to be potent."},"subpotentReason":{"type":"array","items":{"$ref":"#/components/schemas/CodeableConcept","description":"Reason why a dose is considered to be subpotent."}},"education":{"type":"array","items":{"$ref":"#/components/schemas/Immunization_Education","description":"Educational material presented to the patient (or guardian) at the time of vaccine administration."}},"programEligibility":{"type":"array","items":{"$ref":"#/components/schemas/CodeableConcept","description":"Indicates a patient's eligibility for a funding program."}},"fundingSource":{"$ref":"#/components/schemas/CodeableConcept","description":"Indicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered)."},"reaction":{"type":"array","items":{"$ref":"#/components/schemas/Immunization_Reaction","description":"Categorical data indicating that an adverse event is associated in time to an immunization."}},"protocolApplied":{"type":"array","items":{"$ref":"#/components/schemas/Immunization_ProtocolApplied","description":"The protocol (set of recommendations) being followed by the provider who administered the dose."}}},"example":{"resourceType":"Immunization","id":"12a33650-6f94-4e8f-a971-1c5c41da5b22","contained":[{"resourceType":"Practitioner","id":"Pract1","name":[{"family":"Owl","given":["Barney"]}]},{"resourceType":"Patient","id":"Pat1","identifier":[{"system":"https://fhir.nhs.uk/Id/nhs-number","value":"9449310475"}],"name":[{"family":"Owler","given":["Ozzie"]}],"gender":"unknown","birthDate":"1965-02-28","address":[{"postalCode":"ZZ99 3CZ"}]}],"extension":[{"url":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","valueCodeableConcept":{"coding":[{"system":"http://snomed.info/sct","code":"1303503001","display":"Administration of RSV (respiratory syncytial virus) vaccine"}]}}],"status":"completed","vaccineCode":{"coding":[{"system":"http://snomed.info/sct","code":"42605811000001109","display":"Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)"}]},"patient":{"reference":"#Pat1"},"occurrenceDateTime":"2021-02-07T13:28:17.271000+00:00","recorded":"2021-02-07T13:28:17.271000+00:00","primarySource":true,"location":{"identifier":{"system":"urn:iso:std:iso:3166","value":"GB"}},"manufacturer":{"display":"AstraZeneca Ltd"},"lotNumber":"4120Z001","expirationDate":"2021-07-02","site":{"coding":[{"system":"http://snomed.info/sct","code":"368208006","display":"Left upper arm structure (body structure)"}]},"route":{"coding":[{"system":"http://snomed.info/sct","code":"78421000","display":"Intramuscular route (qualifier value)"}]},"doseQuantity":{"value":0.5,"unit":"milliliter","system":"http://unitsofmeasure.org","code":"ml"},"performer":[{"actor":{"reference":"#Pract1"}},{"actor":{"type":"Organization","identifier":{"system":"https://fhir.nhs.uk/Id/ods-organization-code","value":"N2N9I"}}}],"reasonCode":[{"coding":[{"system":"http://snomed.info/sct","code":"443684005"}]}],"protocolApplied":[{"targetDisease":[{"coding":[{"system":"http://snomed.info/sct","code":"55735004","display":"Respiratory syncytial virus infection (disorder)"}]}],"doseNumberPositiveInt":1}]}},"Bundle":{"description":"FHIR Bundle containing the query results - a list of matching immunisations and associated patients.","type":"object","required":["resourceType","type"],"properties":{"resourceType":{"description":"FHIR resource type. Always `Bundle`.","type":"string","example":"Bundle"},"type":{"description":"Indicates how the bundle is intended to be used. Always `searchset`.","type":"string","example":"searchset"},"link":{"type":"array","items":{"$ref":"#/components/schemas/Bundle_Link","description":"A series of links that provide context to this bundle."}},"entry":{"type":"array","items":{"$ref":"#/components/schemas/Bundle_Entry","description":"An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only)."}},"total":{"type":"integer","format":"int32","description":"If a set of search matches, this is the total number of entries of type 'match' across all pages in the search. It does not include search.mode = 'include' or 'outcome' entries and it does not provide a count of the number of entries in the Bundle."}},"example":{"resourceType":"Bundle","type":"searchset","link":[{"relation":"self","url":"https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization?immunization.target=COVID19&_include=Immunization%3Apatient&patient.identifier=https%3A%2F%2Ffhir.nhs.uk%2FId%2Fnhs-number%7C9449306206"}],"entry":[{"fullUrl":"https://sandbox.api.service.nhs.uk/immunisation-fhir-api/Immunization/191f288a-17f3-4cd5-a33c-a52aade6473c","resource":{"resourceType":"Immunization","id":"191f288a-17f3-4cd5-a33c-a52aade6473c","meta":{"versionId":"1"},"extension":[{"url":"https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure","valueCodeableConcept":{"coding":[{"system":"http://snomed.info/sct","code":"1303503001","display":"Administration of RSV (respiratory syncytial virus) vaccine"}]}}],"identifier":[{"use":"official","system":"https://supplierABC/identifiers/vacc","value":"e2154d29-1ead-4830-a513-0d59705078fa"}],"status":"completed","vaccineCode":{"coding":[{"system":"http://snomed.info/sct","code":"42605811000001109","display":"Abrysvo vaccine powder and solvent for solution for injection 0.5ml vials (Pfizer Ltd)"}]},"patient":{"reference":"urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac","type":"Patient","identifier":{"system":"https://fhir.nhs.uk/Id/nhs-number","value":"9449306206"}},"occurrenceDateTime":"2021-02-07T13:28:17.271000+00:00","recorded":"2021-02-07T13:28:17.271000+00:00","primarySource":true,"location":{"identifier":{"system":"urn:iso:std:iso:3166","value":"GB"}},"manufacturer":{"display":"AstraZeneca Ltd"},"lotNumber":"4120Z001","expirationDate":"2021-07-02","site":{"coding":[{"system":"http://snomed.info/sct","code":"368208006","display":"Left upper arm structure (body structure)"}]},"route":{"coding":[{"system":"http://snomed.info/sct","code":"78421000","display":"Intramuscular route (qualifier value)"}]},"doseQuantity":{"value":0.5,"unit":"milliliter","system":"http://unitsofmeasure.org","code":"ml"},"performer":[{"actor":{"type":"Organization","identifier":{"system":"https://fhir.nhs.uk/Id/ods-organization-code","value":"B0C4P"},"display":"UNIVERSITY HOSPITAL OF WALES"}}],"reasonCode":[{"coding":[{"system":"http://snomed.info/sct","code":"443684005","display":"Disease outbreak (event)"}]}],"protocolApplied":[{"targetDisease":[{"coding":[{"system":"http://snomed.info/sct","code":"55735004","display":"Respiratory syncytial virus infection (disorder)"}]}],"doseNumberPositiveInt":1}]},"search":{"mode":"match"}},{"fullUrl":"urn:uuid:a7a5bc28-5831-4158-8a73-0d3e6e43c1ac","resource":{"resourceType":"Patient","id":"9449306206","identifier":[{"system":"https://fhir.nhs.uk/Id/nhs-number","value":"9449306206"}],"birthDate":"2014-03-25"},"search":{"mode":"include"}}],"total":1}},"OperationOutcome":{"type":"object","properties":{"text":{"$ref":"#/components/schemas/Narrative","description":"A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety."},"contained":{"type":"array","items":{"description":"These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.","type":"object","discriminator":{"propertyName":"resourceType"},"properties":{"resourceType":{"type":"string","example":"OperationOutcome"},"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."},"meta":{"$ref":"#/components/schemas/Meta","description":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource."},"issue":{"type":"array","items":{"type":"object","properties":{"severity":{"type":"string"},"code":{"type":"string"},"details":{"type":"object","properties":{"coding":{"type":"array","items":{"type":"object","properties":{"system":{"type":"string"},"code":{"type":"string"}}}}}},"diagnostics":{"type":"string"}}}}},"required":["resourceType"]}},"extension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."}},"modifierExtension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."}},"issue":{"type":"array","items":{"$ref":"#/components/schemas/OperationOutcome_Issue","description":"An error, warning, or information message that results from a system action."},"minItems":1}},"required":["issue"],"example":{"resourceType":"OperationOutcome","meta":{"versionId":"BnpJOa5-Sb","lastUpdated":"2021-04-12T14:34:36.061-05:00","source":"BCL3d5NERb","profile":["xSempdez3Y"],"security":[{"system":"tczS7uP8XL","version":"IXKbCw05qO","code":"NvDP1hL64Y","display":"_r1z5oJld1","userSelected":true}],"tag":[{"system":"2qqXHsE1Mx","version":"lybFyQ1tBj","code":"Q9w075fYd3","display":"Nm2QqbYibP","userSelected":true},{"code":"ibm/complete-mock"}]},"implicitRules":"l8KHk6qOt4","language":"en-US","text":{"status":"additional","div":"
"},"issue":[{"severity":"warning","code":"business-rule","details":{"coding":[{"system":"eQgFofRHmJ","version":"T524HDk5Za","code":"tC_7iQg31j","display":"s0bLc4W5KE","userSelected":true}],"text":"BfBVppHmsh"},"diagnostics":"EcvPDGbK0q","location":["GK5ihTmfe6"],"expression":["Uidx_swV4Z"]}]}},"Bundle_Entry":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"link":{"type":"array","items":{"$ref":"#/components/schemas/Bundle_Link","description":"A series of links that provide context to this entry."}},"fullUrl":{"type":"string","pattern":"\\S*","description":"The Absolute URL for the resource. The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: \n* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)\n* Results from operations might involve resources that are not identified."},"resource":{"description":"The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type."},"resourceType":{"type":"string","example":"Immunization"},"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."},"meta":{"$ref":"#/components/schemas/Meta","description":"The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource."},"implicitRules":{"type":"string","pattern":"\\S*","description":"A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc."},"language":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The base language in which the resource is written."},"search":{"$ref":"#/components/schemas/Bundle_Entry_Search","description":"Information about the search process that lead to the creation of this entry."},"request":{"$ref":"#/components/schemas/Bundle_Entry_Request","description":"Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry."},"response":{"$ref":"#/components/schemas/Bundle_Entry_Response","description":"Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history."}}}]},"Bundle_Entry_Response":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"status":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code."},"location":{"type":"string","pattern":"\\S*","description":"The location header created by processing this operation, populated if the operation returns a location."},"etag":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency))."},"lastModified":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))","description":"The date/time that the resource was modified on the server."},"outcome":{"$ref":"#/components/schemas/Resource","description":"An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction."}},"required":["status"]}]},"Bundle_Entry_Request":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"method":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"In a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred."},"url":{"type":"string","pattern":"\\S*","description":"The URL for this entry, relative to the root (the address to which the request is posted)."},"ifNoneMatch":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"If the ETag values match, return a 304 Not Modified status. See the API documentation for [\"Conditional Read\"](http.html#cread)."},"ifModifiedSince":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))","description":"Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread)."},"ifMatch":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency)."},"ifNoneExist":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\"Conditional Create\"](http.html#ccreate). This is just the query portion of the URL - what follows the \"?\" (not including the \"?\")."}},"required":["method","url"]}]},"Bundle_Entry_Search":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"mode":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Why this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process."},"score":{"type":"number","description":"When searching, the server's search ranking score for the entry."}}}]},"Bundle_Link":{"allOf":[{"type":"object","properties":{"relation":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1)."},"url":{"type":"string","pattern":"\\S*","description":"The reference details for the link."}},"required":["relation","url"]}]},"Immunization_ProtocolApplied":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"series":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"One possible path to achieve presumed immunity against a disease - within the context of an authority."},"authority":{"$ref":"#/components/schemas/Reference","description":"Indicates the authority who published the protocol (e.g. ACIP) that is being followed."},"targetDisease":{"type":"array","items":{"$ref":"#/components/schemas/CodeableConcept","description":"The vaccine preventable disease the dose is being administered against."}},"doseNumberPositiveInt":{"type":"integer","format":"int32","description":"Nominal position in a series."},"doseNumberString":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Nominal position in a series."},"seriesDosesPositiveInt":{"type":"integer","format":"int32","description":"The recommended number of doses to achieve immunity."},"seriesDosesString":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The recommended number of doses to achieve immunity."}}}]},"Immunization_Reaction":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"date":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"Date of reaction to the immunization."},"detail":{"$ref":"#/components/schemas/Reference","description":"Details of the reaction."},"reported":{"type":"boolean","description":"Self-reported indicator."}}}]},"Immunization_Education":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"documentType":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Identifier of the material presented to the patient."},"reference":{"type":"string","pattern":"\\S*","description":"Reference pointer to the educational material given to the patient if the information was on line."},"publicationDate":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"Date the educational material was published."},"presentationDate":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"Date the educational material was given to the patient."}}}]},"Immunization_Performer":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"function":{"$ref":"#/components/schemas/CodeableConcept","description":"Describes the type of performance (e.g. ordering provider, administering provider, etc.)."},"actor":{"$ref":"#/components/schemas/Reference","description":"The practitioner or organization who performed the action."}},"required":["actor"]}]},"OperationOutcome_Issue":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"severity":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Indicates whether the issue indicates a variation from successful processing."},"code":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element."},"details":{"$ref":"#/components/schemas/CodeableConcept","description":"Additional details about the error. This may be a text description of the error or a system code that identifies the error."},"diagnostics":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Additional diagnostic information about the issue."},"location":{"type":"array","items":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"This element is deprecated because it is XML specific. It is replaced by issue.expression, which is format independent, and simpler to parse. \n\nFor resource issues, this will be a simple XPath limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised. For HTTP errors, will be \"http.\" + the parameter name."}},"expression":{"type":"array","items":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised."}}},"required":["severity","code"]}]},"Element":{"type":"object","properties":{"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."},"extension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."},"example":[{"url":"http://example.com","valueString":"text value"}]}}},"BackboneElement":{"type":"object","properties":{"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."},"extension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."}},"modifierExtension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."}}}},"Address":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"use":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The purpose of this address."},"type":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both."},"text":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts."},"line":{"type":"array","items":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information."}},"city":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The name of the city, town, suburb, village or other community or delivery center."},"district":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The name of the administrative area (county)."},"state":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes)."},"postalCode":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A postal code designating a region defined by the postal service."},"country":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Country - a nation as commonly understood or generally accepted."},"period":{"$ref":"#/components/schemas/Period","description":"Time period when address was/is in use."}}}]},"Age":{"allOf":[{"$ref":"#/components/schemas/Quantity"},{"type":"object","properties":{}}]},"Annotation":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"authorReference":{"$ref":"#/components/schemas/Reference","description":"The individual responsible for making the annotation."},"authorString":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The individual responsible for making the annotation."},"time":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"Indicates when this particular annotation was made."},"text":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The text of the annotation in markdown format."}},"required":["text"]}]},"Attachment":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"contentType":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate."},"language":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The human language of the content. The value can be any valid value according to BCP 47."},"data":{"type":"string","pattern":"(\\s*([0-9a-zA-Z\\+/=]){4}\\s*)+","description":"The actual data of the attachment - a sequence of bytes, base64 encoded."},"url":{"type":"string","pattern":"\\S*","description":"A location where the data can be accessed."},"size":{"type":"integer","format":"int32","description":"The number of bytes of data that make up this attachment (before base64 encoding, if that is done)."},"hash":{"type":"string","pattern":"(\\s*([0-9a-zA-Z\\+/=]){4}\\s*)+","description":"The calculated hash of the data using SHA-1. Represented using base64."},"title":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A label or set of text to display in place of the data."},"creation":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"The date that the attachment was first created."}}}]},"CodeableConcept":{"type":"object","properties":{"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."},"extension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."}},"coding":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"A reference to a code defined by a terminology system."}},"text":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user."}}},"Coding":{"type":"object","properties":{"system":{"type":"string","pattern":"\\S*","description":"The identification of the code system that defines the meaning of the symbol in the code."},"version":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged."},"code":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination)."},"display":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A representation of the meaning of the code in the system, following the rules of the system."},"userSelected":{"type":"boolean","description":"Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays)."}}},"ContactPoint":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"system":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Telecommunications form for contact point - what communications system is required to make use of the contact."},"value":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address)."},"use":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Identifies the purpose for the contact point."},"rank":{"type":"integer","format":"int32","description":"Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values."},"period":{"$ref":"#/components/schemas/Period","description":"Time period when the contact point was/is in use."}}}]},"Count":{"allOf":[{"$ref":"#/components/schemas/Quantity"},{"type":"object","properties":{}}]},"Distance":{"allOf":[{"$ref":"#/components/schemas/Quantity"},{"type":"object","properties":{}}]},"Duration":{"allOf":[{"$ref":"#/components/schemas/Quantity"},{"type":"object","properties":{}}]},"HumanName":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"use":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Identifies the purpose for this name."},"text":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Specifies the entire name as it should be displayed e.g. on an application UI. This may be provided instead of or as well as the specific parts."},"family":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father."},"given":{"type":"array","items":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Given name."}},"prefix":{"type":"array","items":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name."}},"suffix":{"type":"array","items":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name."}},"period":{"$ref":"#/components/schemas/Period","description":"Indicates the period of time when this name was valid for the named person."}}}]},"Identifier":{"type":"object","properties":{"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."},"extension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."}},"use":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The purpose of this identifier."},"type":{"$ref":"#/components/schemas/CodeableConcept","description":"A coded type for the identifier that can be used to determine which identifier to use for a specific purpose."},"system":{"type":"string","pattern":"\\S*","description":"Establishes the namespace for the value - that is, a URL that describes a set values that are unique."},"value":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The portion of the identifier typically relevant to the user and which is unique within the context of the system."},"period":{"$ref":"#/components/schemas/Period","description":"Time period during which identifier is/was valid for use."},"assigner":{"$ref":"#/components/schemas/Reference","description":"Organization that issued/manages the identifier.","example":{"reference":"Organization/123","type":"Organization","display":"The Assigning Organization"}}}},"Money":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"value":{"type":"number","description":"Numerical value (with implicit precision)."},"currency":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"ISO 4217 Currency Code."}}}]},"MoneyQuantity":{"allOf":[{"$ref":"#/components/schemas/Quantity"},{"type":"object","properties":{}}]},"Period":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"start":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"The start of the period. The boundary is inclusive."},"end":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"The end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time."}}}]},"Quantity":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"value":{"type":"number","description":"The value of the measured amount. The value includes an implicit precision in the presentation of the value."},"comparator":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is \"<\" , then the real value is < stated value."},"unit":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A human-readable form of the unit."},"system":{"type":"string","pattern":"\\S*","description":"The identification of the system that provides the coded form of the unit."},"code":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"A computer processable form of the unit in some unit representation system."}}}]},"Range":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"low":{"$ref":"#/components/schemas/SimpleQuantity","description":"The low limit. The boundary is inclusive."},"high":{"$ref":"#/components/schemas/SimpleQuantity","description":"The high limit. The boundary is inclusive."}}}]},"Ratio":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"numerator":{"$ref":"#/components/schemas/Quantity","description":"The value of the numerator."},"denominator":{"$ref":"#/components/schemas/Quantity","description":"The value of the denominator."}}}]},"Reference":{"type":"object","properties":{"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."},"extension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."}},"reference":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources."},"type":{"type":"string","pattern":"\\S*","description":"The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources)."},"identifier":{"$ref":"#/components/schemas/Identifier","description":"An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference."},"display":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Plain text narrative that identifies the resource in addition to the resource reference."}}},"SampledData":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"origin":{"$ref":"#/components/schemas/SimpleQuantity","description":"The base quantity that a measured value of zero represents. In addition, this provides the units of the entire measurement series."},"period":{"type":"number","description":"The length of time between sampling times, measured in milliseconds."},"factor":{"type":"number","description":"A correction factor that is applied to the sampled data points before they are added to the origin."},"lowerLimit":{"type":"number","description":"The lower limit of detection of the measured points. This is needed if any of the data points have the value \"L\" (lower than detection limit)."},"upperLimit":{"type":"number","description":"The upper limit of detection of the measured points. This is needed if any of the data points have the value \"U\" (higher than detection limit)."},"dimensions":{"type":"integer","format":"int32","description":"The number of sample points at each time point. If this value is greater than one, then the dimensions will be interlaced - all the sample points for a point in time will be recorded at once."},"data":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A series of data points which are decimal values separated by a single space (character u20). The special values \"E\" (error), \"L\" (below detection limit) and \"U\" (above detection limit) can also be used in place of a decimal value."}},"required":["origin","period","dimensions"]}]},"SimpleQuantity":{"allOf":[{"$ref":"#/components/schemas/Quantity"},{"type":"object","properties":{}}]},"Signature":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"type":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"An indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document."},"minItems":1},"when":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))","description":"When the digital signature was signed."},"who":{"$ref":"#/components/schemas/Reference","description":"A reference to an application-usable description of the identity that signed (e.g. the signature used their private key)."},"onBehalfOf":{"$ref":"#/components/schemas/Reference","description":"A reference to an application-usable description of the identity that is represented by the signature."},"targetFormat":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"A mime type that indicates the technical format of the target resources signed by the signature."},"sigFormat":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"A mime type that indicates the technical format of the signature. Important mime types are application/signature+xml for X ML DigSig, application/jose for JWS, and image/* for a graphical image of a signature, etc."},"data":{"type":"string","pattern":"(\\s*([0-9a-zA-Z\\+/=]){4}\\s*)+","description":"The base64 encoding of the Signature content. When signature is not recorded electronically this element would be empty."}},"required":["type","when","who"]}]},"Timing":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"event":{"type":"array","items":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"Identifies specific times when the event occurs."}},"repeat":{"$ref":"#/components/schemas/Timing_Repeat","description":"A set of rules that describe when the event is scheduled."},"code":{"$ref":"#/components/schemas/CodeableConcept","description":"A code for the timing schedule (or just text in code.text). Some codes such as BID are ubiquitous, but many institutions define their own additional codes. If a code is provided, the code is understood to be a complete statement of whatever is specified in the structured timing data, and either the code or the data may be used to interpret the Timing, with the exception that .repeat.bounds still applies over the code (and is not contained in the code)."}}}]},"Timing_Repeat":{"allOf":[{"$ref":"#/components/schemas/BackboneElement"},{"type":"object","properties":{"boundsDuration":{"$ref":"#/components/schemas/Duration","description":"Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule."},"boundsRange":{"$ref":"#/components/schemas/Range","description":"Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule."},"boundsPeriod":{"$ref":"#/components/schemas/Period","description":"Either a duration for the length of the timing schedule, a range of possible length, or outer bounds for start and/or end limits of the timing schedule."},"count":{"type":"integer","format":"int32","description":"A total count of the desired number of repetitions across the duration of the entire timing specification. If countMax is present, this element indicates the lower bound of the allowed range of count values."},"countMax":{"type":"integer","format":"int32","description":"If present, indicates that the count is a range - so to perform the action between [count] and [countMax] times."},"duration":{"type":"number","description":"How long this thing happens for when it happens. If durationMax is present, this element indicates the lower bound of the allowed range of the duration."},"durationMax":{"type":"number","description":"If present, indicates that the duration is a range - so to perform the action between [duration] and [durationMax] time length."},"durationUnit":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The units of time for the duration, in UCUM units."},"frequency":{"type":"integer","format":"int32","description":"The number of times to repeat the action within the specified period. If frequencyMax is present, this element indicates the lower bound of the allowed range of the frequency."},"frequencyMax":{"type":"integer","format":"int32","description":"If present, indicates that the frequency is a range - so to repeat between [frequency] and [frequencyMax] times within the period or period range."},"period":{"type":"number","description":"Indicates the duration of time over which repetitions are to occur; e.g. to express \"3 times per day\", 3 would be the frequency and \"1 day\" would be the period. If periodMax is present, this element indicates the lower bound of the allowed range of the period length."},"periodMax":{"type":"number","description":"If present, indicates that the period is a range from [period] to [periodMax], allowing expressing concepts such as \"do this once every 3-5 days."},"periodUnit":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The units of time for the period in UCUM units."},"dayOfWeek":{"type":"array","items":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"If one or more days of week is provided, then the action happens only on the specified day(s)."}},"timeOfDay":{"type":"array","items":{"type":"string","pattern":"([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?","description":"Specified time of day for action to take place."}},"when":{"type":"array","items":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"An approximate time period during the day, potentially linked to an event of daily living that indicates when the action should occur."}},"offset":{"type":"integer","format":"int32","description":"The number of minutes from the event. If the event code does not indicate whether the minutes is before or after the event, then the offset is assumed to be after the event."}}}]},"ContactDetail":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"name":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"The name of an individual to contact."},"telecom":{"type":"array","items":{"$ref":"#/components/schemas/ContactPoint","description":"The contact details for the individual (if a name was provided) or the organization."}}}}]},"RelatedArtifact":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"type":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The type of relationship to the related artifact."},"label":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A short label that can be used to reference the citation from elsewhere in the containing artifact, such as a footnote index."},"display":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A brief description of the document or knowledge resource being referenced, suitable for display to a consumer."},"citation":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format."},"url":{"type":"string","pattern":"\\S*","description":"A url for the artifact that can be followed to access the actual content."},"document":{"$ref":"#/components/schemas/Attachment","description":"The document being referenced, represented as an attachment. This is exclusive with the resource element."},"resource":{"type":"string","pattern":"\\S*","description":"The related resource, such as a library, value set, profile, or other knowledge resource."}},"required":["type"]}]},"UsageContext":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"code":{"$ref":"#/components/schemas/Coding","description":"A code that identifies the type of context being specified by this usage context."},"valueCodeableConcept":{"$ref":"#/components/schemas/CodeableConcept","description":"A value that defines the context specified in this context of use. The interpretation of the value is defined by the code."},"valueQuantity":{"$ref":"#/components/schemas/Quantity","description":"A value that defines the context specified in this context of use. The interpretation of the value is defined by the code."},"valueRange":{"$ref":"#/components/schemas/Range","description":"A value that defines the context specified in this context of use. The interpretation of the value is defined by the code."},"valueReference":{"$ref":"#/components/schemas/Reference","description":"A value that defines the context specified in this context of use. The interpretation of the value is defined by the code."}},"required":["code"]}]},"Meta":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"versionId":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted."},"lastUpdated":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))","description":"When the resource last changed - e.g. when the version changed."},"source":{"type":"string","pattern":"\\S*","description":"A uri that identifies the source system of the resource. This provides a minimal amount of [Provenance](provenance.html#) information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc."},"profile":{"type":"array","items":{"type":"string","pattern":"\\S*","description":"A list of profiles (references to [StructureDefinition](structuredefinition.html#) resources) that this resource claims to conform to. The URL is a reference to [StructureDefinition.url](structuredefinition-definitions.html#StructureDefinition.url)."}},"security":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure."}},"tag":{"type":"array","items":{"$ref":"#/components/schemas/Coding","description":"Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource."}}},"required":["versionId"]}]},"Narrative":{"allOf":[{"$ref":"#/components/schemas/Element"},{"type":"object","properties":{"status":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data."},"div":{"type":"string","description":"The actual narrative content, a stripped down version of XHTML."}},"required":["status","div"]}]},"Extension":{"type":"object","properties":{"id":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."},"extension":{"type":"array","items":{"$ref":"#/components/schemas/Extension","description":"May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."}},"url":{"type":"string","pattern":"\\S*","description":"Source of the definition for the extension code - a logical name or a URL."},"valueBase64Binary":{"type":"string","pattern":"(\\s*([0-9a-zA-Z\\+/=]){4}\\s*)+","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueBoolean":{"type":"boolean","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueCanonical":{"type":"string","pattern":"\\S*","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueCode":{"type":"string","pattern":"[^\\s]+(\\s[^\\s]+)*","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueDate":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueDateTime":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueDecimal":{"type":"number","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueId":{"type":"string","pattern":"[A-Za-z0-9\\-\\.]{1,64}","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueInstant":{"type":"string","pattern":"([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueInteger":{"type":"integer","format":"int32","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueMarkdown":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueOid":{"type":"string","pattern":"urn:oid:[0-2](\\.(0|[1-9][0-9]*))+","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valuePositiveInt":{"type":"integer","format":"int32","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueString":{"type":"string","pattern":"[ \\r\\n\\t\\S]+","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueTime":{"type":"string","pattern":"([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueUnsignedInt":{"type":"integer","format":"int32","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueUri":{"type":"string","pattern":"\\S*","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueUrl":{"type":"string","pattern":"\\S*","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueUuid":{"type":"string","pattern":"urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueAddress":{"$ref":"#/components/schemas/Address","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueAge":{"$ref":"#/components/schemas/Age","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueAnnotation":{"$ref":"#/components/schemas/Annotation","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueAttachment":{"$ref":"#/components/schemas/Attachment","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueCodeableConcept":{"$ref":"#/components/schemas/CodeableConcept","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueCoding":{"$ref":"#/components/schemas/Coding","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueContactPoint":{"$ref":"#/components/schemas/ContactPoint","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueCount":{"$ref":"#/components/schemas/Count","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueDistance":{"$ref":"#/components/schemas/Distance","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueDuration":{"$ref":"#/components/schemas/Duration","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueHumanName":{"$ref":"#/components/schemas/HumanName","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueIdentifier":{"$ref":"#/components/schemas/Identifier","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueMoney":{"$ref":"#/components/schemas/Money","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valuePeriod":{"$ref":"#/components/schemas/Period","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueQuantity":{"$ref":"#/components/schemas/Quantity","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueRange":{"$ref":"#/components/schemas/Range","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueRatio":{"$ref":"#/components/schemas/Ratio","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueReference":{"$ref":"#/components/schemas/Reference","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueSampledData":{"$ref":"#/components/schemas/SampledData","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueSignature":{"$ref":"#/components/schemas/Signature","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueTiming":{"$ref":"#/components/schemas/Timing","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueContactDetail":{"$ref":"#/components/schemas/ContactDetail","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueRelatedArtifact":{"$ref":"#/components/schemas/RelatedArtifact","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueUsageContext":{"$ref":"#/components/schemas/UsageContext","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."},"valueMeta":{"$ref":"#/components/schemas/Meta","description":"Value of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list)."}},"required":["url"]}}}} \ No newline at end of file diff --git a/specification/immunisation-fhir-api.yaml b/utilities/specification/immunisation-fhir-api.yaml similarity index 99% rename from specification/immunisation-fhir-api.yaml rename to utilities/specification/immunisation-fhir-api.yaml index 99f57597a..1b0eb1909 100644 --- a/specification/immunisation-fhir-api.yaml +++ b/utilities/specification/immunisation-fhir-api.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: Immunization-fhir-api - version: Computed and injected at build time by `scripts/set_version.py` + version: Computed and injected at build time by `utilities/scripts/set_version.py` description: | ## Overview