From 8a90c8afee77e16bf2714b92172426e71edacc0d Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Thu, 30 Oct 2025 10:09:54 +0000
Subject: [PATCH 01/14] NPA-5537: Add Default Legal Basis
---
...ip Service Sandbox.postman_collection.json | 63 +++++++++++++++----
1 file changed, 51 insertions(+), 12 deletions(-)
diff --git a/postman/Validated Relationship Service Sandbox.postman_collection.json b/postman/Validated Relationship Service Sandbox.postman_collection.json
index c560b14b..d405901f 100644
--- a/postman/Validated Relationship Service Sandbox.postman_collection.json
+++ b/postman/Validated Relationship Service Sandbox.postman_collection.json
@@ -8772,6 +8772,11 @@
" \"display\": \"Parent\",",
" \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\"",
" }",
+ " {",
+ " \"code\": \"unknown\",",
+ " \"display\": \"Unknown\",",
+ " \"system\": \"https://fhir.nhs.uk/CodeSystem/proxy-legal-basis\"",
+ " }",
" ]",
" }",
" }",
@@ -8870,17 +8875,10 @@
" \"start\": \"2020-01-01\",",
" \"end\": \"2021-12-31\"",
" },",
- " \"given\": [",
- " \"Jane Marie Anne\"",
- " ],",
+ " \"given\": [\"Jane Marie Anne\"],",
" \"family\": \"Smith\",",
- " \"prefix\": [",
- " \"Mrs\"",
- " ],",
- " \"suffix\": [",
- " \"MBE\",",
- " \"PhD\"",
- " ]",
+ " \"prefix\": [\"Mrs\"],",
+ " \"suffix\": [\"MBE\",\"PhD\"]",
" }",
" ],",
" \"birthDate\": \"2022-10-22\",",
@@ -8946,7 +8944,38 @@
" \"authority\": \"https://www.england.nhs.uk\",",
" \"uri\": \"REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD\"",
" }",
- " ]",
+ " ],",
+ " \"provision\": {",
+ " \"actor\": [",
+ " {",
+ " \"reference\": {",
+ " \"identifier\": {",
+ " \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",",
+ " \"value\": \"9000000019\"",
+ " },",
+ " \"type\": \"RelatedPerson\"",
+ " },",
+ " \"role\": {",
+ " \"coding\": [",
+ " {",
+ " \"code\": \"PRN\",",
+ " \"display\": \"Parent\",",
+ " \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\"",
+ " },",
+ " {",
+ " \"code\": \"unknown\",",
+ " \"display\": \"Unknown\",",
+ " \"system\": \"https://fhir.nhs.uk/CodeSystem/proxy-legal-basis\"",
+ " }",
+ " ]",
+ " }",
+ " }",
+ " ],",
+ " \"period\": {",
+ " \"start\": \"2025-02-11\",",
+ " \"end\": \"2026-02-11\"",
+ " }",
+ " }",
" },",
" \"search\": {",
" \"mode\": \"match\"",
@@ -9044,6 +9073,11 @@
" \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\",",
" \"code\": \"MTH\",",
" \"display\": \"mother\"",
+ " },",
+ " {",
+ " \"system\": \"https://fhir.nhs.uk/CodeSystem/proxy-legal-basis\",",
+ " \"code\": \"unknown\",",
+ " \"display\": \"Unknown\"",
" }",
" ]",
" }",
@@ -9328,6 +9362,11 @@
" \"display\": \"Parent\",",
" \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\"",
" }",
+ " {",
+ " \"code\": \"unknown\",",
+ " \"display\": \"Unknown\",",
+ " \"system\": \"https://fhir.nhs.uk/CodeSystem/proxy-legal-basis\"",
+ " }",
" ]",
" }",
" }",
@@ -10251,4 +10290,4 @@
"value": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4"
}
]
-}
\ No newline at end of file
+}
From f8bbe3b01e4d53cb2c10e284f20e92460f239ef4 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Mon, 3 Nov 2025 09:39:05 +0000
Subject: [PATCH 02/14] NPA-5537: Add new legal basis specs
---
...ip Service Sandbox.postman_collection.json | 61 ++-------
sandbox/api/constants.py | 12 ++
sandbox/api/get_consent.py | 15 ++-
sandbox/api/tests/test_get_consent.py | 30 +++++
...p-unknown-legal-basis-include-patient.yaml | 81 ++++++++++++
...legal-basis-include-performer-patient.yaml | 117 ++++++++++++++++++
...unknown-legal-basis-include-performer.yaml | 66 ++++++++++
...hild-relationship-unknown-legal-basis.yaml | 63 ++++++++++
8 files changed, 394 insertions(+), 51 deletions(-)
create mode 100644 specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml
create mode 100644 specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml
create mode 100644 specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml
create mode 100644 specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml
diff --git a/postman/Validated Relationship Service Sandbox.postman_collection.json b/postman/Validated Relationship Service Sandbox.postman_collection.json
index d405901f..c8344783 100644
--- a/postman/Validated Relationship Service Sandbox.postman_collection.json
+++ b/postman/Validated Relationship Service Sandbox.postman_collection.json
@@ -8772,11 +8772,6 @@
" \"display\": \"Parent\",",
" \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\"",
" }",
- " {",
- " \"code\": \"unknown\",",
- " \"display\": \"Unknown\",",
- " \"system\": \"https://fhir.nhs.uk/CodeSystem/proxy-legal-basis\"",
- " }",
" ]",
" }",
" }",
@@ -8875,10 +8870,17 @@
" \"start\": \"2020-01-01\",",
" \"end\": \"2021-12-31\"",
" },",
- " \"given\": [\"Jane Marie Anne\"],",
+ " \"given\": [",
+ " \"Jane Marie Anne\"",
+ " ],",
" \"family\": \"Smith\",",
- " \"prefix\": [\"Mrs\"],",
- " \"suffix\": [\"MBE\",\"PhD\"]",
+ " \"prefix\": [",
+ " \"Mrs\"",
+ " ],",
+ " \"suffix\": [",
+ " \"MBE\",",
+ " \"PhD\"",
+ " ]",
" }",
" ],",
" \"birthDate\": \"2022-10-22\",",
@@ -8944,38 +8946,7 @@
" \"authority\": \"https://www.england.nhs.uk\",",
" \"uri\": \"REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD\"",
" }",
- " ],",
- " \"provision\": {",
- " \"actor\": [",
- " {",
- " \"reference\": {",
- " \"identifier\": {",
- " \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",",
- " \"value\": \"9000000019\"",
- " },",
- " \"type\": \"RelatedPerson\"",
- " },",
- " \"role\": {",
- " \"coding\": [",
- " {",
- " \"code\": \"PRN\",",
- " \"display\": \"Parent\",",
- " \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\"",
- " },",
- " {",
- " \"code\": \"unknown\",",
- " \"display\": \"Unknown\",",
- " \"system\": \"https://fhir.nhs.uk/CodeSystem/proxy-legal-basis\"",
- " }",
- " ]",
- " }",
- " }",
- " ],",
- " \"period\": {",
- " \"start\": \"2025-02-11\",",
- " \"end\": \"2026-02-11\"",
- " }",
- " }",
+ " ]",
" },",
" \"search\": {",
" \"mode\": \"match\"",
@@ -9073,11 +9044,6 @@
" \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\",",
" \"code\": \"MTH\",",
" \"display\": \"mother\"",
- " },",
- " {",
- " \"system\": \"https://fhir.nhs.uk/CodeSystem/proxy-legal-basis\",",
- " \"code\": \"unknown\",",
- " \"display\": \"Unknown\"",
" }",
" ]",
" }",
@@ -9362,11 +9328,6 @@
" \"display\": \"Parent\",",
" \"system\": \"http://terminology.hl7.org/CodeSystem/v3-RoleCode\"",
" }",
- " {",
- " \"code\": \"unknown\",",
- " \"display\": \"Unknown\",",
- " \"system\": \"https://fhir.nhs.uk/CodeSystem/proxy-legal-basis\"",
- " }",
" ]",
" }",
" }",
diff --git a/sandbox/api/constants.py b/sandbox/api/constants.py
index 5d044316..b078d621 100644
--- a/sandbox/api/constants.py
+++ b/sandbox/api/constants.py
@@ -71,6 +71,18 @@
GET_CONSENT__MULTIPLE_RELATIONSHIPS_SINGLE_PATIENT_INCLUDE_BOTH = (
f"{GET_CONSENT__DIRECTORY}multiple-relationships-single-patient-include-performer-patient.yaml"
)
+GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS = (
+ f"{GET_CONSENT__DIRECTORY}single-mother-child-relationship-unknown-legal-basis.yaml"
+)
+GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_BOTH = (
+ f"{GET_CONSENT__DIRECTORY}single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml"
+)
+GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PATIENT = (
+ f"{GET_CONSENT__DIRECTORY}single-mother-child-relationship-unknown-legal-basis-include-patient.yaml"
+)
+GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PERFORMER = (
+ f"{GET_CONSENT__DIRECTORY}single-mother-child-relationship-unknown-legal-basis-include-performer.yaml"
+)
# GET Consent by ID
GET_CONSENT_BY_ID__INVALID_ID_ERROR = f"{GET_CONSENT__DIRECTORY}ID/errors/invalid-id.yaml"
diff --git a/sandbox/api/get_consent.py b/sandbox/api/get_consent.py
index df34839d..0ff7eaee 100644
--- a/sandbox/api/get_consent.py
+++ b/sandbox/api/get_consent.py
@@ -21,7 +21,10 @@
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP,
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_BOTH,
INTERNAL_SERVER_ERROR_EXAMPLE,
- INVALIDATED_RESOURCE,
+ INVALIDATED_RESOURCE, GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS,
+ GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_BOTH,
+ GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PATIENT,
+ GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PERFORMER,
)
from .utils import (
check_for_consent_filtering,
@@ -65,6 +68,16 @@ def get_consent_response() -> Union[dict, tuple]:
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP,
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_BOTH,
)
+ # Single mother-child relationship with unknown legal basis
+ elif performer_identifier == "9000000999" or patient_identifier == "9000000998":
+ return check_for_consent_include_params(
+ _include,
+ GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS,
+ GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_BOTH,
+ GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PATIENT,
+ GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PERFORMER,
+ )
+
elif patient_identifier == "9000000100":
return check_for_consent_include_params(
_include,
diff --git a/sandbox/api/tests/test_get_consent.py b/sandbox/api/tests/test_get_consent.py
index c027b4d9..b36f02a1 100644
--- a/sandbox/api/tests/test_get_consent.py
+++ b/sandbox/api/tests/test_get_consent.py
@@ -168,6 +168,36 @@ def test_get_consent_returns_expected_responses__mocked_get_consent(
"./api/examples/GET_Consent/multiple-relationships-single-patient-include-performer-patient.yaml",
200,
),
+ (
+ "performer:identifier=9000000999",
+ "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml",
+ 200,
+ ),
+ (
+ "patient:identifier=9000000998",
+ "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml",
+ 200,
+ ),
+ (
+ "performer:identifier=9000000999&patient:identifier=9000000998",
+ "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml",
+ 200,
+ ),
+ (
+ "performer:identifier=9000000999&_include=Consent:patient",
+ "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml",
+ 200,
+ ),
+ (
+ "performer:identifier=9000000999&_include=Consent:performer",
+ "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml",
+ 200,
+ ),
+ (
+ "performer:identifier=9000000999&_include=Consent:performer&_include=Consent:patient",
+ "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml",
+ 200,
+ ),
(
"performer:identifier=9000000017&status=test", # Invalid status parameter error
"./api/examples/GET_Consent/errors/invalid-status-parameter.yaml",
diff --git a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml
new file mode 100644
index 00000000..18d064f9
--- /dev/null
+++ b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml
@@ -0,0 +1,81 @@
+ConsentSingleAdultChildRelationshipUnknownLegalBasisIncludePatientBundle:
+ summary: Single adult-child proxy relationship with patient details and unknown legal basis
+ description: A Bundle containing a single proxy relationship between an adult and child including the patient details where the legal basis is unknown.
+ value:
+ resourceType: Bundle
+ timestamp: "2020-08-26T14:00:00+00:00"
+ total: 1
+ type: searchset
+ link:
+ - relation: self
+ url: https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000999&_include=Consent:patient
+ entry:
+ - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Patient/A3CC6799
+ resource:
+ resourceType: Patient
+ id: A3CC6799
+ meta:
+ security:
+ - system: "https://fhir.nhs.uk/England/CodeSystem/England-NHSIdentityProofingLevel"
+ code: "P9"
+ display: "High level verification (P9)"
+ identifier:
+ - system: "https://fhir.nhs.uk/Id/nhs-number"
+ value: "9000000998"
+ - system: "https://placeholder.fhir.nhs.uk/Id/local-gp-patient-identifier"
+ value: ABC9999999
+ name:
+ - id: "123457"
+ use: usual
+ period:
+ start: "2020-01-01"
+ end: "2021-12-31"
+ given:
+ - Jane Marie Anne
+ family: Smith
+ prefix:
+ - Mrs
+ suffix:
+ - MBE
+ - PhD
+ birthDate: "2022-10-22"
+ generalPractitioner:
+ - type: Organization
+ identifier:
+ value: ODS99999
+ system: "https://fhir.nhs.uk/Id/ods-organization-code"
+ search:
+ mode: include
+ - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/UNKNOWN_LB_BBCC6799
+ resource:
+ resourceType: Consent
+ id: UNKNOWN_LB_BBCC6799
+ status: active
+ scope:
+ coding:
+ - system: "http://terminology.hl7.org/CodeSystem/consentscope"
+ code: patient-privacy
+ display: Privacy Consent
+ text: Patient Privacy Consent
+ category:
+ - coding:
+ - system: "http://terminology.hl7.org/CodeSystem/v3-ActCode"
+ code: INFA
+ display: Information Access
+ text: Information Access Consent
+ patient:
+ identifier:
+ system: "https://fhir.nhs.uk/Id/nhs-number"
+ value: "9000000998"
+ dateTime: "2024-07-21T17:32:28Z"
+ performer:
+ - identifier:
+ system: "https://fhir.nhs.uk/Id/nhs-number"
+ value: "9000000999"
+ policy:
+ - authority: https://www.england.nhs.uk
+ uri: REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD
+ code: unknown
+ display: Unknown legal basis
+ search:
+ mode: match
diff --git a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml
new file mode 100644
index 00000000..ecc241ce
--- /dev/null
+++ b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml
@@ -0,0 +1,117 @@
+ConsentSingleAdultChildRelationshipUnknownLegalBasisIncludePerformerPatientBundle:
+ summary: Single adult-child proxy relationship with performer and patient details and unknown legal basis
+ description: A Bundle containing a single proxy relationship between an adult and child including both the performer and patient details where the legal basis is unknown.
+ value:
+ resourceType: Bundle
+ timestamp: "2020-08-26T14:00:00+00:00"
+ total: 1
+ type: searchset
+ link:
+ - relation: self
+ url: https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000999&_include=Consent:performer&_include=Consent:patient
+ entry:
+ - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson/BE974799
+ resource:
+ resourceType: RelatedPerson
+ id: BE974799
+ identifier:
+ - system: "https://fhir.nhs.uk/Id/nhs-number"
+ value: "9000000999"
+ - system: "https://placeholder.fhir.nhs.uk/Id/local-gp-patient-identifier"
+ value: ABC9999998
+ patient:
+ type: Patient
+ identifier:
+ system: "https://fhir.nhs.uk/Id/nhs-number"
+ value: "9000000998"
+ relationship:
+ - coding:
+ - system: "http://terminology.hl7.org/CodeSystem/v3-RoleCode"
+ code: PRN
+ display: parent
+ search:
+ mode: include
+ - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Patient/A3CC6799
+ resource:
+ resourceType: Patient
+ id: A3CC6799
+ meta:
+ security:
+ - system: "https://fhir.nhs.uk/England/CodeSystem/England-NHSIdentityProofingLevel"
+ code: "P9"
+ display: "High level verification (P9)"
+ identifier:
+ - system: "https://fhir.nhs.uk/Id/nhs-number"
+ value: "9000000998"
+ - system: "https://placeholder.fhir.nhs.uk/Id/local-gp-patient-identifier"
+ value: ABC9999999
+ name:
+ - id: "123457"
+ use: usual
+ period:
+ start: "2020-01-01"
+ end: "2021-12-31"
+ given:
+ - Jane Marie Anne
+ family: Smith
+ prefix:
+ - Mrs
+ suffix:
+ - MBE
+ - PhD
+ birthDate: "2022-10-22"
+ generalPractitioner:
+ - type: Organization
+ identifier:
+ value: ODS99999
+ system: "https://fhir.nhs.uk/Id/ods-organization-code"
+ search:
+ mode: include
+ - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/UNKNOWN_LB_BBCC6799
+ resource:
+ resourceType: Consent
+ id: UNKNOWN_LB_BBCC6799
+ status: active
+ scope:
+ coding:
+ - system: "http://terminology.hl7.org/CodeSystem/consentscope"
+ code: patient-privacy
+ display: Privacy Consent
+ text: Patient Privacy Consent
+ category:
+ - coding:
+ - system: "http://terminology.hl7.org/CodeSystem/v3-ActCode"
+ code: INFA
+ display: Information Access
+ text: Information Access Consent
+ patient:
+ identifier:
+ system: "https://fhir.nhs.uk/Id/nhs-number"
+ value: "9000000998"
+ dateTime: "2024-07-21T17:32:28Z"
+ performer:
+ - identifier:
+ system: "https://fhir.nhs.uk/Id/nhs-number"
+ value: "9000000999"
+ policy:
+ - authority: https://www.england.nhs.uk
+ uri: REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD
+ code: unknown
+ display: Unknown legal basis
+ provision:
+ actor:
+ - reference:
+ identifier:
+ system: https://fhir.nhs.uk/Id/nhs-number"
+ value: "9000000999"
+ type: RelatedPerson
+ role:
+ coding:
+ - code: PRN
+ display: Parent
+ system: http://terminology.hl7.org/CodeSystem/v3-RoleCode
+ period:
+ end: "2026-02-11"
+ start: "2025-02-11"
+ search:
+ mode: match
diff --git a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml
new file mode 100644
index 00000000..a2876131
--- /dev/null
+++ b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml
@@ -0,0 +1,66 @@
+ConsentSingleAdultChildRelationshipUnknownLegalBasisIncludePerformerBundle:
+ summary: Single adult-child proxy relationship with performer details and unknown legal basis
+ description: A Bundle containing a single proxy relationship between an adult and child including the performer details where the legal basis is unknown.
+ value:
+ resourceType: Bundle
+ timestamp: '2020-08-26T14:00:00+00:00'
+ total: 1
+ type: searchset
+ link:
+ - relation: self
+ url: https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000999&_include=Consent:performer
+ entry:
+ - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson/BE974799
+ resource:
+ resourceType: RelatedPerson
+ id: BE974799
+ identifier:
+ - system: 'https://fhir.nhs.uk/Id/nhs-number'
+ value: '9000000999'
+ - system: 'https://placeholder.fhir.nhs.uk/Id/local-gp-patient-identifier'
+ value: ABC9999998
+ patient:
+ type: Patient
+ identifier:
+ system: 'https://fhir.nhs.uk/Id/nhs-number'
+ value: '9000000998'
+ relationship:
+ - coding:
+ - system: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode'
+ code: PRN
+ display: parent
+ search:
+ mode: include
+ - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/UNKNOWN_LB_BBCC6799
+ resource:
+ resourceType: Consent
+ id: UNKNOWN_LB_BBCC6799
+ status: active
+ scope:
+ coding:
+ - system: 'http://terminology.hl7.org/CodeSystem/consentscope'
+ code: patient-privacy
+ display: Privacy Consent
+ text: Patient Privacy Consent
+ category:
+ - coding:
+ - system: 'http://terminology.hl7.org/CodeSystem/v3-ActCode'
+ code: INFA
+ display: Information Access
+ text: Information Access Consent
+ patient:
+ identifier:
+ system: 'https://fhir.nhs.uk/Id/nhs-number'
+ value: '9000000998'
+ dateTime: '2024-07-21T17:32:28Z'
+ performer:
+ - identifier:
+ system: 'https://fhir.nhs.uk/Id/nhs-number'
+ value: '9000000999'
+ policy:
+ - authority: https://www.england.nhs.uk
+ uri: REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD
+ code: unknown
+ display: Unknown legal basis
+ search:
+ mode: match
diff --git a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml
new file mode 100644
index 00000000..f24b9048
--- /dev/null
+++ b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml
@@ -0,0 +1,63 @@
+ConsentSingleAdultChildRelationshipUnknownLegalBasisBundle:
+ summary: Single adult-child proxy relationship with unknown legal basis
+ description: A Bundle containing a single proxy relationship between an adult and child where the legal basis is unknown
+ value:
+ resourceType: Bundle
+ timestamp: '2020-08-26T14:00:00+00:00'
+ total: 1
+ type: searchset
+ link:
+ - relation: self
+ url: https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000999
+ entry:
+ - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/UNKNOWN_LB_12345
+ resource:
+ resourceType: Consent
+ id: UNKNOWN_LB_12345
+ status: active
+ scope:
+ coding:
+ - system: 'http://terminology.hl7.org/CodeSystem/consentscope'
+ code: patient-privacy
+ display: Privacy Consent
+ text: Patient Privacy Consent
+ category:
+ - coding:
+ - system: 'http://terminology.hl7.org/CodeSystem/v3-ActCode'
+ code: INFA
+ display: Information Access
+ text: Information Access Consent
+ patient:
+ identifier:
+ system: 'https://fhir.nhs.uk/Id/nhs-number'
+ value: '9000000998'
+ dateTime: '2024-07-21T17:32:28Z'
+ performer:
+ - identifier:
+ system: 'https://fhir.nhs.uk/Id/nhs-number'
+ value: '9000000999'
+ policy:
+ - authority: https://www.england.nhs.uk
+ uri: REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD
+ code: unknown
+ display: Unknown legal basis
+ provision:
+ actor:
+ - reference:
+ identifier:
+ system: https://fhir.nhs.uk/Id/nhs-number'
+ value: '9000000999'
+ type: RelatedPerson
+ role:
+ coding:
+ - code: PRN
+ display: Parent
+ system: http://terminology.hl7.org/CodeSystem/v3-RoleCode
+ - code: unknown
+ display: Unknown
+ system: https://fhir.nhs.uk/CodeSystem/proxy-legal-basis
+ period:
+ start: '2025-02-11'
+ end: '2026-02-11'
+ search:
+ mode: match
From bc396be33c6c2db01dff6273e1769dfd37f8788e Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Mon, 3 Nov 2025 09:41:56 +0000
Subject: [PATCH 03/14] NPA-5537: Sandbox formatting
---
sandbox/api/get_consent.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sandbox/api/get_consent.py b/sandbox/api/get_consent.py
index 0ff7eaee..b1f2f28c 100644
--- a/sandbox/api/get_consent.py
+++ b/sandbox/api/get_consent.py
@@ -21,7 +21,8 @@
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP,
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_BOTH,
INTERNAL_SERVER_ERROR_EXAMPLE,
- INVALIDATED_RESOURCE, GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS,
+ INVALIDATED_RESOURCE,
+ GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS,
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_BOTH,
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PATIENT,
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PERFORMER,
From 9438ef678b3a4e16430edfada018d462fb4ce399 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Mon, 3 Nov 2025 09:45:18 +0000
Subject: [PATCH 04/14] NPA-5537: Test formatting
---
sandbox/api/tests/test_get_consent.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sandbox/api/tests/test_get_consent.py b/sandbox/api/tests/test_get_consent.py
index b36f02a1..c8acc168 100644
--- a/sandbox/api/tests/test_get_consent.py
+++ b/sandbox/api/tests/test_get_consent.py
@@ -195,7 +195,7 @@ def test_get_consent_returns_expected_responses__mocked_get_consent(
),
(
"performer:identifier=9000000999&_include=Consent:performer&_include=Consent:patient",
- "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml",
+ "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml", # noqa: E501
200,
),
(
From 24f7d7cf84a4346586c7733b680744b3d40c7cb2 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Mon, 3 Nov 2025 13:16:00 +0000
Subject: [PATCH 05/14] NPA-5537: Removed excess scenarios
---
sandbox/api/constants.py | 9 --
sandbox/api/get_consent.py | 6 -
sandbox/api/tests/test_get_consent.py | 15 ---
...p-unknown-legal-basis-include-patient.yaml | 81 ------------
...legal-basis-include-performer-patient.yaml | 117 ------------------
...unknown-legal-basis-include-performer.yaml | 66 ----------
.../validated-relationships-service-api.yaml | 1 +
7 files changed, 1 insertion(+), 294 deletions(-)
delete mode 100644 specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml
delete mode 100644 specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml
delete mode 100644 specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml
diff --git a/sandbox/api/constants.py b/sandbox/api/constants.py
index b078d621..9c700c07 100644
--- a/sandbox/api/constants.py
+++ b/sandbox/api/constants.py
@@ -74,15 +74,6 @@
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS = (
f"{GET_CONSENT__DIRECTORY}single-mother-child-relationship-unknown-legal-basis.yaml"
)
-GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_BOTH = (
- f"{GET_CONSENT__DIRECTORY}single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml"
-)
-GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PATIENT = (
- f"{GET_CONSENT__DIRECTORY}single-mother-child-relationship-unknown-legal-basis-include-patient.yaml"
-)
-GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PERFORMER = (
- f"{GET_CONSENT__DIRECTORY}single-mother-child-relationship-unknown-legal-basis-include-performer.yaml"
-)
# GET Consent by ID
GET_CONSENT_BY_ID__INVALID_ID_ERROR = f"{GET_CONSENT__DIRECTORY}ID/errors/invalid-id.yaml"
diff --git a/sandbox/api/get_consent.py b/sandbox/api/get_consent.py
index b1f2f28c..6513e433 100644
--- a/sandbox/api/get_consent.py
+++ b/sandbox/api/get_consent.py
@@ -23,9 +23,6 @@
INTERNAL_SERVER_ERROR_EXAMPLE,
INVALIDATED_RESOURCE,
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS,
- GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_BOTH,
- GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PATIENT,
- GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PERFORMER,
)
from .utils import (
check_for_consent_filtering,
@@ -74,9 +71,6 @@ def get_consent_response() -> Union[dict, tuple]:
return check_for_consent_include_params(
_include,
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS,
- GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_BOTH,
- GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PATIENT,
- GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS_INCLUDE_PERFORMER,
)
elif patient_identifier == "9000000100":
diff --git a/sandbox/api/tests/test_get_consent.py b/sandbox/api/tests/test_get_consent.py
index c8acc168..39068ffa 100644
--- a/sandbox/api/tests/test_get_consent.py
+++ b/sandbox/api/tests/test_get_consent.py
@@ -183,21 +183,6 @@ def test_get_consent_returns_expected_responses__mocked_get_consent(
"./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml",
200,
),
- (
- "performer:identifier=9000000999&_include=Consent:patient",
- "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml",
- 200,
- ),
- (
- "performer:identifier=9000000999&_include=Consent:performer",
- "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml",
- 200,
- ),
- (
- "performer:identifier=9000000999&_include=Consent:performer&_include=Consent:patient",
- "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml", # noqa: E501
- 200,
- ),
(
"performer:identifier=9000000017&status=test", # Invalid status parameter error
"./api/examples/GET_Consent/errors/invalid-status-parameter.yaml",
diff --git a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml
deleted file mode 100644
index 18d064f9..00000000
--- a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-patient.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-ConsentSingleAdultChildRelationshipUnknownLegalBasisIncludePatientBundle:
- summary: Single adult-child proxy relationship with patient details and unknown legal basis
- description: A Bundle containing a single proxy relationship between an adult and child including the patient details where the legal basis is unknown.
- value:
- resourceType: Bundle
- timestamp: "2020-08-26T14:00:00+00:00"
- total: 1
- type: searchset
- link:
- - relation: self
- url: https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000999&_include=Consent:patient
- entry:
- - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Patient/A3CC6799
- resource:
- resourceType: Patient
- id: A3CC6799
- meta:
- security:
- - system: "https://fhir.nhs.uk/England/CodeSystem/England-NHSIdentityProofingLevel"
- code: "P9"
- display: "High level verification (P9)"
- identifier:
- - system: "https://fhir.nhs.uk/Id/nhs-number"
- value: "9000000998"
- - system: "https://placeholder.fhir.nhs.uk/Id/local-gp-patient-identifier"
- value: ABC9999999
- name:
- - id: "123457"
- use: usual
- period:
- start: "2020-01-01"
- end: "2021-12-31"
- given:
- - Jane Marie Anne
- family: Smith
- prefix:
- - Mrs
- suffix:
- - MBE
- - PhD
- birthDate: "2022-10-22"
- generalPractitioner:
- - type: Organization
- identifier:
- value: ODS99999
- system: "https://fhir.nhs.uk/Id/ods-organization-code"
- search:
- mode: include
- - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/UNKNOWN_LB_BBCC6799
- resource:
- resourceType: Consent
- id: UNKNOWN_LB_BBCC6799
- status: active
- scope:
- coding:
- - system: "http://terminology.hl7.org/CodeSystem/consentscope"
- code: patient-privacy
- display: Privacy Consent
- text: Patient Privacy Consent
- category:
- - coding:
- - system: "http://terminology.hl7.org/CodeSystem/v3-ActCode"
- code: INFA
- display: Information Access
- text: Information Access Consent
- patient:
- identifier:
- system: "https://fhir.nhs.uk/Id/nhs-number"
- value: "9000000998"
- dateTime: "2024-07-21T17:32:28Z"
- performer:
- - identifier:
- system: "https://fhir.nhs.uk/Id/nhs-number"
- value: "9000000999"
- policy:
- - authority: https://www.england.nhs.uk
- uri: REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD
- code: unknown
- display: Unknown legal basis
- search:
- mode: match
diff --git a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml
deleted file mode 100644
index ecc241ce..00000000
--- a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer-patient.yaml
+++ /dev/null
@@ -1,117 +0,0 @@
-ConsentSingleAdultChildRelationshipUnknownLegalBasisIncludePerformerPatientBundle:
- summary: Single adult-child proxy relationship with performer and patient details and unknown legal basis
- description: A Bundle containing a single proxy relationship between an adult and child including both the performer and patient details where the legal basis is unknown.
- value:
- resourceType: Bundle
- timestamp: "2020-08-26T14:00:00+00:00"
- total: 1
- type: searchset
- link:
- - relation: self
- url: https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000999&_include=Consent:performer&_include=Consent:patient
- entry:
- - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson/BE974799
- resource:
- resourceType: RelatedPerson
- id: BE974799
- identifier:
- - system: "https://fhir.nhs.uk/Id/nhs-number"
- value: "9000000999"
- - system: "https://placeholder.fhir.nhs.uk/Id/local-gp-patient-identifier"
- value: ABC9999998
- patient:
- type: Patient
- identifier:
- system: "https://fhir.nhs.uk/Id/nhs-number"
- value: "9000000998"
- relationship:
- - coding:
- - system: "http://terminology.hl7.org/CodeSystem/v3-RoleCode"
- code: PRN
- display: parent
- search:
- mode: include
- - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Patient/A3CC6799
- resource:
- resourceType: Patient
- id: A3CC6799
- meta:
- security:
- - system: "https://fhir.nhs.uk/England/CodeSystem/England-NHSIdentityProofingLevel"
- code: "P9"
- display: "High level verification (P9)"
- identifier:
- - system: "https://fhir.nhs.uk/Id/nhs-number"
- value: "9000000998"
- - system: "https://placeholder.fhir.nhs.uk/Id/local-gp-patient-identifier"
- value: ABC9999999
- name:
- - id: "123457"
- use: usual
- period:
- start: "2020-01-01"
- end: "2021-12-31"
- given:
- - Jane Marie Anne
- family: Smith
- prefix:
- - Mrs
- suffix:
- - MBE
- - PhD
- birthDate: "2022-10-22"
- generalPractitioner:
- - type: Organization
- identifier:
- value: ODS99999
- system: "https://fhir.nhs.uk/Id/ods-organization-code"
- search:
- mode: include
- - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/UNKNOWN_LB_BBCC6799
- resource:
- resourceType: Consent
- id: UNKNOWN_LB_BBCC6799
- status: active
- scope:
- coding:
- - system: "http://terminology.hl7.org/CodeSystem/consentscope"
- code: patient-privacy
- display: Privacy Consent
- text: Patient Privacy Consent
- category:
- - coding:
- - system: "http://terminology.hl7.org/CodeSystem/v3-ActCode"
- code: INFA
- display: Information Access
- text: Information Access Consent
- patient:
- identifier:
- system: "https://fhir.nhs.uk/Id/nhs-number"
- value: "9000000998"
- dateTime: "2024-07-21T17:32:28Z"
- performer:
- - identifier:
- system: "https://fhir.nhs.uk/Id/nhs-number"
- value: "9000000999"
- policy:
- - authority: https://www.england.nhs.uk
- uri: REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD
- code: unknown
- display: Unknown legal basis
- provision:
- actor:
- - reference:
- identifier:
- system: https://fhir.nhs.uk/Id/nhs-number"
- value: "9000000999"
- type: RelatedPerson
- role:
- coding:
- - code: PRN
- display: Parent
- system: http://terminology.hl7.org/CodeSystem/v3-RoleCode
- period:
- end: "2026-02-11"
- start: "2025-02-11"
- search:
- mode: match
diff --git a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml
deleted file mode 100644
index a2876131..00000000
--- a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis-include-performer.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-ConsentSingleAdultChildRelationshipUnknownLegalBasisIncludePerformerBundle:
- summary: Single adult-child proxy relationship with performer details and unknown legal basis
- description: A Bundle containing a single proxy relationship between an adult and child including the performer details where the legal basis is unknown.
- value:
- resourceType: Bundle
- timestamp: '2020-08-26T14:00:00+00:00'
- total: 1
- type: searchset
- link:
- - relation: self
- url: https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000999&_include=Consent:performer
- entry:
- - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson/BE974799
- resource:
- resourceType: RelatedPerson
- id: BE974799
- identifier:
- - system: 'https://fhir.nhs.uk/Id/nhs-number'
- value: '9000000999'
- - system: 'https://placeholder.fhir.nhs.uk/Id/local-gp-patient-identifier'
- value: ABC9999998
- patient:
- type: Patient
- identifier:
- system: 'https://fhir.nhs.uk/Id/nhs-number'
- value: '9000000998'
- relationship:
- - coding:
- - system: 'http://terminology.hl7.org/CodeSystem/v3-RoleCode'
- code: PRN
- display: parent
- search:
- mode: include
- - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/UNKNOWN_LB_BBCC6799
- resource:
- resourceType: Consent
- id: UNKNOWN_LB_BBCC6799
- status: active
- scope:
- coding:
- - system: 'http://terminology.hl7.org/CodeSystem/consentscope'
- code: patient-privacy
- display: Privacy Consent
- text: Patient Privacy Consent
- category:
- - coding:
- - system: 'http://terminology.hl7.org/CodeSystem/v3-ActCode'
- code: INFA
- display: Information Access
- text: Information Access Consent
- patient:
- identifier:
- system: 'https://fhir.nhs.uk/Id/nhs-number'
- value: '9000000998'
- dateTime: '2024-07-21T17:32:28Z'
- performer:
- - identifier:
- system: 'https://fhir.nhs.uk/Id/nhs-number'
- value: '9000000999'
- policy:
- - authority: https://www.england.nhs.uk
- uri: REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD
- code: unknown
- display: Unknown legal basis
- search:
- mode: match
diff --git a/specification/validated-relationships-service-api.yaml b/specification/validated-relationships-service-api.yaml
index 3c4c25af..facdfae9 100644
--- a/specification/validated-relationships-service-api.yaml
+++ b/specification/validated-relationships-service-api.yaml
@@ -563,6 +563,7 @@ paths:
| A single proxy relationship between consenting adults including details | `performer:identifier=9000000010` and/or `patient:identifier=9000000005&_include=Consent:patient&_include=Consent:proxy` | HTTP Status 200 Bundle containing a single proxy relationship including performer and patient details |
| A single proxy relationship between a mother and child | `performer:identifier=9000000019` and/or `patient:identifier=9000000009` | HTTP Status 200 Bundle containing a single proxy relationship |
| A single proxy relationship between a mother and child including details | `performer:identifier=9000000019` and/or `patient:identifier=9000000009&_include=Consent:patient&_include=Consent:proxy` | HTTP Status 200 Bundle containing a single proxy relationship including performer and patient details |
+ | A single proxy relationship between a mother and child with legal basis unknown | `performer:identifier=9000000999` and/or `patient:identifier=9000000998` | HTTP Status 200 Bundle containing a single proxy relationship with legal basis unknown |
| Invalid status parameter | `performer:identifier=9000000019` and/or `patient:identifier=9000000009&status=test` | HTTP Status 422 and INVALID_PARAMETER error response |
| Invalid include parameter | `performer:identifier=9000000019` and/or `patient:identifier=9000000009&_include=test` | HTTP Status 422 and INVALID_PARAMETER error response |
| Missing identifier | `patient:identifier=9000000009` | HTTP Status 400 and MISSING_IDENTIFIER_VALUE error response |
From be584fb0c39c8f502e1644b55dcc96ba554ee38a Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Mon, 3 Nov 2025 14:03:06 +0000
Subject: [PATCH 06/14] NPA-5537: Updated postman spec
---
...ip Service Sandbox.postman_collection.json | 139 +++++++++++++-----
sandbox/api/get_consent.py | 2 +-
sandbox/api/tests/test_get_consent.py | 12 +-
sandbox/api/utils.py | 2 +-
...hild-relationship-unknown-legal-basis.yaml | 15 +-
5 files changed, 114 insertions(+), 56 deletions(-)
diff --git a/postman/Validated Relationship Service Sandbox.postman_collection.json b/postman/Validated Relationship Service Sandbox.postman_collection.json
index 1e1637a0..539772af 100644
--- a/postman/Validated Relationship Service Sandbox.postman_collection.json
+++ b/postman/Validated Relationship Service Sandbox.postman_collection.json
@@ -1,11 +1,10 @@
{
"info": {
- "_postman_id": "e45a02c2-af60-4d4c-b790-c6708ae0f214",
- "name": "Validated Relationship Service Sandbox 03/11/25",
+ "_postman_id": "a8bd4249-4a47-46b9-9224-bc83d112b161",
+ "name": "Validated Relationship Service Sandbox 04/11/25",
"description": "This Postman collection includes example scenarios for each of the Validated Relationship Service (VRS) API endpoints, covering both valid and invalid request scenarios.\n\nThe collection is pointed towards the VRS sandbox environment, which will return a specific example response based on the request sent. All data shown in the requests or responses is test data.\n\nOur sandbox environment only covers the scenarios listed in the Postman collection and is open access. It does not allow you to test authorisation or any scenarios beyond the ones documented.\n\nFull specification is available at [https://digital.nhs.uk/developer/api-catalogue/validated-relationship-service](https://digital.nhs.uk/developer/api-catalogue/validated-relationship-service)",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
- "_exporter_id": "44536620",
- "_collection_link": "https://l44444-2379.postman.co/workspace/aac72fed-09cc-4a02-a0b4-9429fb546dba/collection/44536620-e45a02c2-af60-4d4c-b790-c6708ae0f214?action=share&source=collection_link&creator=44536620"
+ "_exporter_id": "26376766"
},
"item": [
{
@@ -7352,50 +7351,119 @@
"response": []
},
{
- "name": "No performer record found",
+ "name": "Single mother-child relationship unknown legal basis",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const expectedResponseBody = {",
- " \"resourceType\": \"OperationOutcome\",",
- " \"issue\": [",
- " { ",
- " \"code\": \"processing\",",
- " \"details\": {",
- " \"coding\": [",
+ " \"resourceType\": \"Bundle\",",
+ " \"timestamp\": \"2020-08-26T14:00:00+00:00\",",
+ " \"total\": 1,",
+ " \"type\": \"searchset\",",
+ " \"link\": [",
+ " {",
+ " \"relation\": \"self\",",
+ " \"url\": \"https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000111\"",
+ " }",
+ " ],",
+ " \"entry\": [",
+ " {",
+ " \"fullUrl\": \"https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/AF974742\",",
+ " \"resource\": {",
+ " \"resourceType\": \"Consent\",",
+ " \"id\": \"AF974742\",",
+ " \"status\": \"active\",",
+ " \"scope\": {",
+ " \"coding\": [",
+ " {",
+ " \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\",",
+ " \"code\": \"patient-privacy\",",
+ " \"display\": \"Privacy Consent\"",
+ " }",
+ " ],",
+ " \"text\": \"Patient Privacy Consent\"",
+ " },",
+ " \"category\": [",
" {",
- " \"system\": \"https://fhir.nhs.uk/R4/CodeSystem/ValidatedRelationships-ErrorOrWarningCode\",",
- " \"version\": \"1\",",
- " \"code\": \"INVALIDATED_RESOURCE\",",
- " \"display\": \"Resource that has been marked as invalid was requested - invalid resources cannot be retrieved\"",
+ " \"coding\": [",
+ " {",
+ " \"system\": \"http://terminology.hl7.org/CodeSystem/v3-ActCode\",",
+ " \"code\": \"INFA\",",
+ " \"display\": \"Information Access\"",
+ " }",
+ " ],",
+ " \"text\": \"Information Access Consent\"",
" }",
- " ]",
+ " ],",
+ " \"patient\": {",
+ " \"identifier\": {",
+ " \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",",
+ " \"value\": \"9000000119\"",
+ " }",
+ " },",
+ " \"dateTime\": \"2024-07-21T17:32:28Z\",",
+ " \"performer\": [",
+ " {",
+ " \"identifier\": {",
+ " \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",",
+ " \"value\": \"9000000111\"",
+ " }",
+ " }",
+ " ],",
+ " \"policy\": [",
+ " {",
+ " \"authority\": \"https://www.england.nhs.uk\",",
+ " \"uri\": \"REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD\",",
+ " \"code\": \"unknown\",",
+ " \"display\": \"Unknown legal basis\"",
+ " }",
+ " ],",
+ " \"provision\": {",
+ " \"actor\": [",
+ " {",
+ " \"reference\": {",
+ " \"identifier\": {",
+ " \"system\": \"https://fhir.nhs.uk/Id/nhs-number'\",",
+ " \"value\": \"9000000111\"",
+ " },",
+ " \"type\": \"RelatedPerson\"",
+ " },",
+ " \"role\": {",
+ " \"coding\": [",
+ " {",
+ " \"code\": \"unknown\",",
+ " \"display\": \"Unknown\",",
+ " \"system\": \"https://fhir.nhs.uk/CodeSystem/proxy-legal-basis\"",
+ " }",
+ " ]",
+ " }",
+ " }",
+ " ],",
+ " \"period\": {",
+ " \"start\": \"2025-02-11\",",
+ " \"end\": \"2026-02-11\"",
+ " }",
+ " }",
" },",
- " \"diagnostics\": \"Resource that has been marked as invalid was requested - invalid resources cannot be retrieved\",",
- " \"severity\": \"error\",",
- " ",
+ " \"search\": {",
+ " \"mode\": \"match\"",
+ " }",
" }",
" ]",
"}",
"",
- "const responseJson = pm.response.json();",
- "",
- "pm.test(\"Status code is 404\", function () {",
- " pm.response.to.have.status(404);",
- "});",
- "",
- "pm.test(\"Should have correct error response\", () => {",
- " pm.expect(responseJson.issue[0].details.coding[0].code).to.eql(\"INVALIDATED_RESOURCE\");",
+ "pm.test(\"Status code is 200\", function () {",
+ " pm.response.to.have.status(200);",
"});",
"",
"pm.test(\"Should have correct response body\", () => {",
+ " const responseJson = pm.response.json();",
" pm.expect(responseJson).to.eql(expectedResponseBody);",
"});"
],
- "type": "text/javascript",
- "packages": {}
+ "type": "text/javascript"
}
}
],
@@ -7403,7 +7471,7 @@
"method": "GET",
"header": [],
"url": {
- "raw": "{{api_base_url}}/Consent?performer:identifier=9000000999",
+ "raw": "{{api_base_url}}/Consent?performer:identifier=9000000111",
"host": [
"{{api_base_url}}"
],
@@ -7413,7 +7481,7 @@
"query": [
{
"key": "performer:identifier",
- "value": "9000000999"
+ "value": "9000000111"
}
]
}
@@ -10166,7 +10234,6 @@
"listen": "prerequest",
"script": {
"type": "text/javascript",
- "packages": {},
"exec": [
""
]
@@ -10176,7 +10243,6 @@
"listen": "test",
"script": {
"type": "text/javascript",
- "packages": {},
"exec": [
"pm.test(\"Response has FHIR content type\", () => {",
" pm.expect(pm.response.headers.get('Content-Type')).to.include('application/fhir+json');",
@@ -10189,6 +10255,11 @@
{
"key": "api_base_url",
"value": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4"
+ },
+ {
+ "value": "",
+ "type": "string",
+ "disabled": true
}
]
-}
+}
\ No newline at end of file
diff --git a/sandbox/api/get_consent.py b/sandbox/api/get_consent.py
index 6513e433..68cee8de 100644
--- a/sandbox/api/get_consent.py
+++ b/sandbox/api/get_consent.py
@@ -67,7 +67,7 @@ def get_consent_response() -> Union[dict, tuple]:
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_INCLUDE_BOTH,
)
# Single mother-child relationship with unknown legal basis
- elif performer_identifier == "9000000999" or patient_identifier == "9000000998":
+ elif performer_identifier == "9000000111" or patient_identifier == "9000000119":
return check_for_consent_include_params(
_include,
GET_CONSENT__SINGLE_MOTHER_CHILD_RELATIONSHIP_UNKNOWN_LEGAL_BASIS,
diff --git a/sandbox/api/tests/test_get_consent.py b/sandbox/api/tests/test_get_consent.py
index 39068ffa..17a1b2e3 100644
--- a/sandbox/api/tests/test_get_consent.py
+++ b/sandbox/api/tests/test_get_consent.py
@@ -169,17 +169,7 @@ def test_get_consent_returns_expected_responses__mocked_get_consent(
200,
),
(
- "performer:identifier=9000000999",
- "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml",
- 200,
- ),
- (
- "patient:identifier=9000000998",
- "./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml",
- 200,
- ),
- (
- "performer:identifier=9000000999&patient:identifier=9000000998",
+ "performer:identifier=9000000111&patient:identifier=9000000119",
"./api/examples/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml",
200,
),
diff --git a/sandbox/api/utils.py b/sandbox/api/utils.py
index 563f5a9f..1c8f1b5e 100644
--- a/sandbox/api/utils.py
+++ b/sandbox/api/utils.py
@@ -229,7 +229,7 @@ def generate_response_from_example(example_path: str, status_code: int, headers:
def check_for_consent_include_params(
_include: List[str],
include_none_response_yaml: str,
- include_both_response_yaml: str,
+ include_both_response_yaml: str = None,
include_patient_response_yaml: str = None,
include_performer_response_yaml: str = None,
) -> Response:
diff --git a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml
index f24b9048..e744d308 100644
--- a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml
+++ b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml
@@ -8,12 +8,12 @@ ConsentSingleAdultChildRelationshipUnknownLegalBasisBundle:
type: searchset
link:
- relation: self
- url: https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000999
+ url: https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Consent?performer:identifier=9000000111
entry:
- - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/UNKNOWN_LB_12345
+ - fullUrl: https://api.service.nhs.uk/validated-relationships/FHIR/R4/Consent/AF974742
resource:
resourceType: Consent
- id: UNKNOWN_LB_12345
+ id: AF974742
status: active
scope:
coding:
@@ -30,12 +30,12 @@ ConsentSingleAdultChildRelationshipUnknownLegalBasisBundle:
patient:
identifier:
system: 'https://fhir.nhs.uk/Id/nhs-number'
- value: '9000000998'
+ value: '9000000119'
dateTime: '2024-07-21T17:32:28Z'
performer:
- identifier:
system: 'https://fhir.nhs.uk/Id/nhs-number'
- value: '9000000999'
+ value: '9000000111'
policy:
- authority: https://www.england.nhs.uk
uri: REPLACE_WITH_LINK_TO_PUBLISHED_NATIONAL_PROXY_STANDARD
@@ -46,13 +46,10 @@ ConsentSingleAdultChildRelationshipUnknownLegalBasisBundle:
- reference:
identifier:
system: https://fhir.nhs.uk/Id/nhs-number'
- value: '9000000999'
+ value: '9000000111'
type: RelatedPerson
role:
coding:
- - code: PRN
- display: Parent
- system: http://terminology.hl7.org/CodeSystem/v3-RoleCode
- code: unknown
display: Unknown
system: https://fhir.nhs.uk/CodeSystem/proxy-legal-basis
From a7866933f3dffad01f31614981fe78d069346276 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Tue, 4 Nov 2025 07:59:15 +0000
Subject: [PATCH 07/14] NPA-5537: removed error speech mark
---
...ip Service Sandbox.postman_collection.json | 4 ++--
...hild-relationship-unknown-legal-basis.yaml | 20 +++++++++----------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/postman/Validated Relationship Service Sandbox.postman_collection.json b/postman/Validated Relationship Service Sandbox.postman_collection.json
index 539772af..2f236ae8 100644
--- a/postman/Validated Relationship Service Sandbox.postman_collection.json
+++ b/postman/Validated Relationship Service Sandbox.postman_collection.json
@@ -7425,7 +7425,7 @@
" {",
" \"reference\": {",
" \"identifier\": {",
- " \"system\": \"https://fhir.nhs.uk/Id/nhs-number'\",",
+ " \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",",
" \"value\": \"9000000111\"",
" },",
" \"type\": \"RelatedPerson\"",
@@ -10262,4 +10262,4 @@
"disabled": true
}
]
-}
\ No newline at end of file
+}
diff --git a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml
index e744d308..94afa36a 100644
--- a/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml
+++ b/specification/examples/responses/GET_Consent/single-mother-child-relationship-unknown-legal-basis.yaml
@@ -43,16 +43,16 @@ ConsentSingleAdultChildRelationshipUnknownLegalBasisBundle:
display: Unknown legal basis
provision:
actor:
- - reference:
- identifier:
- system: https://fhir.nhs.uk/Id/nhs-number'
- value: '9000000111'
- type: RelatedPerson
- role:
- coding:
- - code: unknown
- display: Unknown
- system: https://fhir.nhs.uk/CodeSystem/proxy-legal-basis
+ - reference:
+ identifier:
+ system: https://fhir.nhs.uk/Id/nhs-number
+ value: '9000000111'
+ type: RelatedPerson
+ role:
+ coding:
+ - code: unknown
+ display: Unknown
+ system: https://fhir.nhs.uk/CodeSystem/proxy-legal-basis
period:
start: '2025-02-11'
end: '2026-02-11'
From e8e1c6aa38c48696f1b243cf0ee4fd3803936e47 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Tue, 4 Nov 2025 08:06:42 +0000
Subject: [PATCH 08/14] NPA-5537: removed error speech mark and ran tests
---
...dated Relationship Service Sandbox.postman_collection.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/postman/Validated Relationship Service Sandbox.postman_collection.json b/postman/Validated Relationship Service Sandbox.postman_collection.json
index 2f236ae8..1d2dbf9c 100644
--- a/postman/Validated Relationship Service Sandbox.postman_collection.json
+++ b/postman/Validated Relationship Service Sandbox.postman_collection.json
@@ -1,6 +1,6 @@
{
"info": {
- "_postman_id": "a8bd4249-4a47-46b9-9224-bc83d112b161",
+ "_postman_id": "b87cf1d9-a219-47e6-8cad-b359d2b63174",
"name": "Validated Relationship Service Sandbox 04/11/25",
"description": "This Postman collection includes example scenarios for each of the Validated Relationship Service (VRS) API endpoints, covering both valid and invalid request scenarios.\n\nThe collection is pointed towards the VRS sandbox environment, which will return a specific example response based on the request sent. All data shown in the requests or responses is test data.\n\nOur sandbox environment only covers the scenarios listed in the Postman collection and is open access. It does not allow you to test authorisation or any scenarios beyond the ones documented.\n\nFull specification is available at [https://digital.nhs.uk/developer/api-catalogue/validated-relationship-service](https://digital.nhs.uk/developer/api-catalogue/validated-relationship-service)",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
@@ -10262,4 +10262,4 @@
"disabled": true
}
]
-}
+}
\ No newline at end of file
From b33c38516dcc4ed4a97ab81e517f14ddee4f1501 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Tue, 4 Nov 2025 13:02:26 +0000
Subject: [PATCH 09/14] NPA-5537: EB comments
---
sandbox/api/utils.py | 2 +-
specification/validated-relationships-service-api.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sandbox/api/utils.py b/sandbox/api/utils.py
index 1c8f1b5e..51bb8300 100644
--- a/sandbox/api/utils.py
+++ b/sandbox/api/utils.py
@@ -238,7 +238,7 @@ def check_for_consent_include_params(
Args:
_include (List[str]): The include parameters supplied to the request
include_none_response_yaml (str): Bundle to return when include params are empty
- include_both_response_yaml (str): Bundle to return when include param is Consent:performer,Consent:patient
+ include_both_response_yaml (str): (optional) Bundle to return when include param is Consent:performer,Consent:patient
include_patient_response_yaml (str): (optional) Bundle to return when include param is Consent:patient
include_performer_response_yaml (str): (optional) Bundle to return when include param is Consent:performer
diff --git a/specification/validated-relationships-service-api.yaml b/specification/validated-relationships-service-api.yaml
index b3ca75fc..163983b7 100644
--- a/specification/validated-relationships-service-api.yaml
+++ b/specification/validated-relationships-service-api.yaml
@@ -563,7 +563,7 @@ paths:
| A single proxy relationship between consenting adults including details | `performer:identifier=9000000010` and/or `patient:identifier=9000000005&_include=Consent:patient&_include=Consent:proxy` | HTTP Status 200 Bundle containing a single proxy relationship including performer and patient details |
| A single proxy relationship between a mother and child | `performer:identifier=9000000019` and/or `patient:identifier=9000000009` | HTTP Status 200 Bundle containing a single proxy relationship |
| A single proxy relationship between a mother and child including details | `performer:identifier=9000000019` and/or `patient:identifier=9000000009&_include=Consent:patient&_include=Consent:proxy` | HTTP Status 200 Bundle containing a single proxy relationship including performer and patient details |
- | A single proxy relationship between a mother and child with legal basis unknown | `performer:identifier=9000000999` and/or `patient:identifier=9000000998` | HTTP Status 200 Bundle containing a single proxy relationship with legal basis unknown |
+ | A single proxy relationship between a mother and child with legal basis unknown | `performer:identifier=9000000111` and/or `patient:identifier=9000000119` | HTTP Status 200 Bundle containing a single proxy relationship with legal basis unknown |
| Invalid status parameter | `performer:identifier=9000000019` and/or `patient:identifier=9000000009&status=test` | HTTP Status 422 and INVALID_PARAMETER error response |
| Invalid include parameter | `performer:identifier=9000000019` and/or `patient:identifier=9000000009&_include=test` | HTTP Status 422 and INVALID_PARAMETER error response |
| Missing identifier | `patient:identifier=9000000009` | HTTP Status 400 and MISSING_IDENTIFIER_VALUE error response |
From 9979552119f6ce943b671c9b5ec6af582cb952a3 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Tue, 4 Nov 2025 13:05:30 +0000
Subject: [PATCH 10/14] NPA-5537: EB comments 2
---
sandbox/api/utils.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sandbox/api/utils.py b/sandbox/api/utils.py
index 51bb8300..d5c5b6eb 100644
--- a/sandbox/api/utils.py
+++ b/sandbox/api/utils.py
@@ -238,7 +238,8 @@ def check_for_consent_include_params(
Args:
_include (List[str]): The include parameters supplied to the request
include_none_response_yaml (str): Bundle to return when include params are empty
- include_both_response_yaml (str): (optional) Bundle to return when include param is Consent:performer,Consent:patient
+ include_both_response_yaml (str): (optional) Bundle to return when include param
+ is Consent:performer,Consent:patient
include_patient_response_yaml (str): (optional) Bundle to return when include param is Consent:patient
include_performer_response_yaml (str): (optional) Bundle to return when include param is Consent:performer
From 14e09608f20eeaa9856f03416069ca43f1c5e604 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Tue, 4 Nov 2025 13:37:17 +0000
Subject: [PATCH 11/14] NPA-5537: add block back in
---
...ip Service Sandbox.postman_collection.json | 71 ++++++++++++++++++-
1 file changed, 70 insertions(+), 1 deletion(-)
diff --git a/postman/Validated Relationship Service Sandbox.postman_collection.json b/postman/Validated Relationship Service Sandbox.postman_collection.json
index 1d2dbf9c..119cb83d 100644
--- a/postman/Validated Relationship Service Sandbox.postman_collection.json
+++ b/postman/Validated Relationship Service Sandbox.postman_collection.json
@@ -7488,6 +7488,75 @@
},
"response": []
},
+ {
+ "name": "No performer record found",
+ "event": [
+ {
+ "listen": "test",
+ "script": {
+ "exec": [
+ "const expectedResponseBody = {",
+ " \"resourceType\": \"OperationOutcome\",",
+ " \"issue\": [",
+ " { ",
+ " \"code\": \"processing\",",
+ " \"details\": {",
+ " \"coding\": [",
+ " {",
+ " \"system\": \"https://fhir.nhs.uk/R4/CodeSystem/ValidatedRelationships-ErrorOrWarningCode\",",
+ " \"version\": \"1\",",
+ " \"code\": \"INVALIDATED_RESOURCE\",",
+ " \"display\": \"Resource that has been marked as invalid was requested - invalid resources cannot be retrieved\"",
+ " }",
+ " ]",
+ " },",
+ " \"diagnostics\": \"Resource that has been marked as invalid was requested - invalid resources cannot be retrieved\",",
+ " \"severity\": \"error\",",
+ " ",
+ " }",
+ " ]",
+ "}",
+ "",
+ "const responseJson = pm.response.json();",
+ "",
+ "pm.test(\"Status code is 404\", function () {",
+ " pm.response.to.have.status(404);",
+ "});",
+ "",
+ "pm.test(\"Should have correct error response\", () => {",
+ " pm.expect(responseJson.issue[0].details.coding[0].code).to.eql(\"INVALIDATED_RESOURCE\");",
+ "});",
+ "",
+ "pm.test(\"Should have correct response body\", () => {",
+ " pm.expect(responseJson).to.eql(expectedResponseBody);",
+ "});"
+ ],
+ "type": "text/javascript",
+ "packages": {}
+ }
+ }
+ ],
+ "request": {
+ "method": "GET",
+ "header": [],
+ "url": {
+ "raw": "{{api_base_url}}/Consent?performer:identifier=9000000999",
+ "host": [
+ "{{api_base_url}}"
+ ],
+ "path": [
+ "Consent"
+ ],
+ "query": [
+ {
+ "key": "performer:identifier",
+ "value": "9000000999"
+ }
+ ]
+ }
+ },
+ "response": []
+ },
{
"name": "Invalid performer identifier",
"event": [
@@ -10262,4 +10331,4 @@
"disabled": true
}
]
-}
\ No newline at end of file
+}
From 078c031b034bcd2b381b79ce3ebeac12a4259a56 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Tue, 4 Nov 2025 13:40:41 +0000
Subject: [PATCH 12/14] NPA-5537: update button
---
...dated Relationship Service Sandbox.postman_collection.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/postman/Validated Relationship Service Sandbox.postman_collection.json b/postman/Validated Relationship Service Sandbox.postman_collection.json
index 119cb83d..36172052 100644
--- a/postman/Validated Relationship Service Sandbox.postman_collection.json
+++ b/postman/Validated Relationship Service Sandbox.postman_collection.json
@@ -1,6 +1,6 @@
{
"info": {
- "_postman_id": "b87cf1d9-a219-47e6-8cad-b359d2b63174",
+ "_postman_id": "b017be6f-f855-4e05-80f7-7768aad8cb3e",
"name": "Validated Relationship Service Sandbox 04/11/25",
"description": "This Postman collection includes example scenarios for each of the Validated Relationship Service (VRS) API endpoints, covering both valid and invalid request scenarios.\n\nThe collection is pointed towards the VRS sandbox environment, which will return a specific example response based on the request sent. All data shown in the requests or responses is test data.\n\nOur sandbox environment only covers the scenarios listed in the Postman collection and is open access. It does not allow you to test authorisation or any scenarios beyond the ones documented.\n\nFull specification is available at [https://digital.nhs.uk/developer/api-catalogue/validated-relationship-service](https://digital.nhs.uk/developer/api-catalogue/validated-relationship-service)",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
@@ -10331,4 +10331,4 @@
"disabled": true
}
]
-}
+}
\ No newline at end of file
From f95b059f14baf00d81a88a4587c51b4ba80652de Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Tue, 4 Nov 2025 13:47:11 +0000
Subject: [PATCH 13/14] NPA-5537: update button link
---
...lidated Relationship Service Sandbox.postman_collection.json | 2 +-
specification/validated-relationships-service-api.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/postman/Validated Relationship Service Sandbox.postman_collection.json b/postman/Validated Relationship Service Sandbox.postman_collection.json
index 36172052..55e673a0 100644
--- a/postman/Validated Relationship Service Sandbox.postman_collection.json
+++ b/postman/Validated Relationship Service Sandbox.postman_collection.json
@@ -1,6 +1,6 @@
{
"info": {
- "_postman_id": "b017be6f-f855-4e05-80f7-7768aad8cb3e",
+ "_postman_id": "4fd91043-1337-4f8b-92c9-96c597b343c8",
"name": "Validated Relationship Service Sandbox 04/11/25",
"description": "This Postman collection includes example scenarios for each of the Validated Relationship Service (VRS) API endpoints, covering both valid and invalid request scenarios.\n\nThe collection is pointed towards the VRS sandbox environment, which will return a specific example response based on the request sent. All data shown in the requests or responses is test data.\n\nOur sandbox environment only covers the scenarios listed in the Postman collection and is open access. It does not allow you to test authorisation or any scenarios beyond the ones documented.\n\nFull specification is available at [https://digital.nhs.uk/developer/api-catalogue/validated-relationship-service](https://digital.nhs.uk/developer/api-catalogue/validated-relationship-service)",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
diff --git a/specification/validated-relationships-service-api.yaml b/specification/validated-relationships-service-api.yaml
index 163983b7..f9eab0ba 100644
--- a/specification/validated-relationships-service-api.yaml
+++ b/specification/validated-relationships-service-api.yaml
@@ -141,7 +141,7 @@ info:
* only covers a limited set of scenarios
* is open access, so does not allow you to test authorisation
- [
](https://app.getpostman.com/run-collection/44536620-e45a02c2-af60-4d4c-b790-c6708ae0f214?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D44536620-e45a02c2-af60-4d4c-b790-c6708ae0f214%26entityType%3Dcollection%26workspaceId%3D65d46c77-2ee2-4fb0-92de-2ec03857a9e6)
+ [
](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/26376766-4fd91043-1337-4f8b-92c9-96c597b343c8?action=collection%2Ffork&collection-url=entityId%3D26376766-4fd91043-1337-4f8b-92c9-96c597b343c8%26entityType%3Dcollection%26workspaceId%3D8fc7bffa-055c-43e2-b94b-da0fdce3aa4b)
### Integration testing
From 4041444a771bc1619a4960f91371d29c05767a53 Mon Sep 17 00:00:00 2001
From: LeoKHoward <38526889+LeoKHoward@users.noreply.github.com>
Date: Tue, 4 Nov 2025 13:49:42 +0000
Subject: [PATCH 14/14] NPA-5537: update button link again
---
specification/validated-relationships-service-api.yaml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/specification/validated-relationships-service-api.yaml b/specification/validated-relationships-service-api.yaml
index f9eab0ba..83dcd84f 100644
--- a/specification/validated-relationships-service-api.yaml
+++ b/specification/validated-relationships-service-api.yaml
@@ -141,8 +141,7 @@ info:
* only covers a limited set of scenarios
* is open access, so does not allow you to test authorisation
- [
](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/26376766-4fd91043-1337-4f8b-92c9-96c597b343c8?action=collection%2Ffork&collection-url=entityId%3D26376766-4fd91043-1337-4f8b-92c9-96c597b343c8%26entityType%3Dcollection%26workspaceId%3D8fc7bffa-055c-43e2-b94b-da0fdce3aa4b)
-
+ [
](https://app.getpostman.com/run-collection/26376766-4fd91043-1337-4f8b-92c9-96c597b343c8?action=collection%2Ffork&collection-url=entityId%3D26376766-4fd91043-1337-4f8b-92c9-96c597b343c8%26entityType%3Dcollection%26workspaceId%3D8fc7bffa-055c-43e2-b94b-da0fdce3aa4b)
### Integration testing
Our [integration test environment](https://digital.nhs.uk/developer/guides-and-documentation/testing#integration-testing)