Skip to content

Commit 351ed4d

Browse files
NPA-1736: Expanded sandbox sample data
Expanded sandbox sample data, added postman collection
2 parents 320867e + 42025d5 commit 351ed4d

13 files changed

+453
-139
lines changed

sandbox/api/app.py

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from flask import Flask, request
55

6-
from .utils import check_for_errors, get_response
6+
import sandbox.api.utils as utils
77

88
app = Flask(__name__)
99
basicConfig(level=INFO, format="%(asctime)s - %(message)s")
@@ -31,38 +31,48 @@ def get_related_persons() -> Union[dict, tuple]:
3131

3232
try:
3333
# Check Headers
34-
if errors := check_for_errors(request):
34+
if errors := utils.check_for_errors(request):
3535
return errors
3636

37+
identifier = request.args.get("identifier")
38+
patient_identifier = request.args.get("patient:identifier")
39+
include = request.args.get("_include")
40+
41+
if empty := utils.check_for_empty(identifier, patient_identifier):
42+
return empty
43+
3744
# Successful request, select response
38-
if (
39-
request.args.get("identifier")
40-
and request.args.get("patient")
41-
and request.args.get("_include") == "RelatedPerson:patient"
45+
if zero_nine := utils.check_for_validate(
46+
"9000000009",
47+
identifier,
48+
patient_identifier,
49+
include,
50+
utils.VALIDATE_RELATIONSHIP_009,
51+
utils.VALIDATE_RELATIONSHIP_INCLUDE_009,
52+
):
53+
return zero_nine
54+
55+
if two_five := utils.check_for_validate(
56+
"9000000025",
57+
identifier,
58+
patient_identifier,
59+
include,
60+
utils.VALIDATE_RELATIONSHIP_025,
61+
utils.VALIDATE_RELATIONSHIP_INCLUDE_025,
4262
):
43-
# Request with identifier, patient and _include=patient
44-
return get_response(
45-
"./api/responses/GET_RelatedPerson/identifier_and_patient_identifier_include.json"
46-
)
47-
elif request.args.get("identifier") and request.args.get("patient"):
48-
# Request with identifier and patient
49-
return get_response(
50-
"./api/responses/GET_RelatedPerson/identifier_and_patient_identifier.json"
51-
)
52-
elif (
53-
request.args.get("identifier")
54-
and request.args.get("_include") == "RelatedPerson:patient"
63+
return two_five
64+
65+
if one_seven := utils.check_for_list(
66+
"9000000017",
67+
identifier,
68+
include,
69+
utils.LIST_RELATIONSHIP,
70+
utils.LIST_RELATIONSHIP_INCLUDE,
5571
):
56-
# Request with identifier and _include=patient
57-
return get_response(
58-
"./api/responses/GET_RelatedPerson/identifier_include.json"
59-
)
60-
elif request.args.get("identifier"):
61-
# Request with identifier
62-
return get_response("./api/responses/GET_RelatedPerson/identifier.json")
63-
else:
64-
raise ValueError("Invalid request")
72+
return one_seven
73+
74+
raise ValueError("Invalid request")
6575

6676
except Exception as e:
6777
logger.error(e)
68-
return get_response("./api/responses/internal_server_error.json"), 500
78+
return utils.generate_response(utils.load_json_file(utils.ERROR_RESPONSE), 500)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"link": [
3+
{
4+
"relation": "self",
5+
"url": "https://sandbox.api.service.nhs.uk/validated-relationships-service-api/FHIR/R4/RelatedPerson?identifier=9000000033"
6+
}
7+
],
8+
"timestamp": "2024-01-01T00:00:00+00:00",
9+
"total": 0,
10+
"type": "searchset",
11+
"resourceType": "Bundle"
12+
}

sandbox/api/responses/GET_RelatedPerson/identifier_and_patient_identifier.json renamed to sandbox/api/responses/GET_RelatedPerson/list_relationship_9000000017.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
"identifier": [
88
{
99
"system": "https://fhir.nhs.uk/Id/nhs-number",
10-
"value": "4567891012"
10+
"value": "9000000017"
1111
}
1212
],
1313
"patient": {
1414
"identifier": {
1515
"system": "https://fhir.nhs.uk/Id/nhs-number",
16-
"value": "3456789101"
16+
"value": "9000000009"
1717
},
1818
"type": "Patient"
1919
},
@@ -39,13 +39,13 @@
3939
"identifier": [
4040
{
4141
"system": "https://fhir.nhs.uk/Id/nhs-number",
42-
"value": "4567891012"
42+
"value": "9000000017"
4343
}
4444
],
4545
"patient": {
4646
"identifier": {
4747
"system": "https://fhir.nhs.uk/Id/nhs-number",
48-
"value": "5678910123"
48+
"value": "9000000025"
4949
},
5050
"type": "Patient"
5151
},
@@ -68,11 +68,11 @@
6868
"link": [
6969
{
7070
"relation": "self",
71-
"url": "sandbox"
71+
"url": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson?identifier=9000000017"
7272
}
7373
],
74-
"timestamp": "2024-00-00T00:00:00+00:00",
74+
"timestamp": "2024-01-01T00:00:00+00:00",
7575
"total": 2,
7676
"type": "searchset",
7777
"resourceType": "Bundle"
78-
}
78+
}

sandbox/api/responses/GET_RelatedPerson/identifier_and_patient_identifier_include.json renamed to sandbox/api/responses/GET_RelatedPerson/list_relationship_include_9000000017.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
22
"entry": [
33
{
4-
"fullUrl": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Patient/3456789101",
4+
"fullUrl": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Patient/9000000009",
55
"resource": {
6-
"id": "3456789101",
6+
"id": "9000000009",
77
"birthDate": "2017-09-23",
88
"identifier": [
99
{
1010
"system": "https://fhir.nhs.uk/Id/nhs-number",
11-
"value": "3456789101"
11+
"value": "9000000009"
1212
}
1313
],
1414
"name": [
@@ -32,13 +32,13 @@
3232
"identifier": [
3333
{
3434
"system": "https://fhir.nhs.uk/Id/nhs-number",
35-
"value": "4567891012"
35+
"value": "9000000017"
3636
}
3737
],
3838
"patient": {
3939
"identifier": {
4040
"system": "https://fhir.nhs.uk/Id/nhs-number",
41-
"value": "3456789101"
41+
"value": "9000000009"
4242
},
4343
"type": "Patient"
4444
},
@@ -57,15 +57,16 @@
5757
},
5858
"search": { "mode": "match" }
5959
},
60+
6061
{
61-
"fullUrl": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Patient/5678910123",
62+
"fullUrl": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/Patient/9000000025",
6263
"resource": {
63-
"id": "5678910123",
64+
"id": "9000000025",
6465
"birthDate": "2018-04-27",
6566
"identifier": [
6667
{
6768
"system": "https://fhir.nhs.uk/Id/nhs-number",
68-
"value": "5678910123"
69+
"value": "9000000025"
6970
}
7071
],
7172
"name": [
@@ -89,13 +90,13 @@
8990
"identifier": [
9091
{
9192
"system": "https://fhir.nhs.uk/Id/nhs-number",
92-
"value": "4567891012"
93+
"value": "9000000017"
9394
}
9495
],
9596
"patient": {
9697
"identifier": {
9798
"system": "https://fhir.nhs.uk/Id/nhs-number",
98-
"value": "5678910123"
99+
"value": "9000000025"
99100
},
100101
"type": "Patient"
101102
},
@@ -118,10 +119,10 @@
118119
"link": [
119120
{
120121
"relation": "self",
121-
"url": "sandbox"
122+
"url": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson?identifier=9000000017&_include=RelatedPerson:patient"
122123
}
123124
],
124-
"timestamp": "2024-00-00T00:00:00+00:00",
125+
"timestamp": "2024-01-01T00:00:00+00:00",
125126
"total": 4,
126127
"type": "searchset",
127128
"resourceType": "Bundle"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"issue": [
3+
{
4+
"code": "processing",
5+
"details": {
6+
"coding": [
7+
{
8+
"code": "INVALIDATED_RESOURCE",
9+
"display": "Resource that has been marked as invalid was requested - invalid resources cannot be retrieved",
10+
"system": "https://fhir.nhs.uk/R4/CodeSystem/ValidatedRelationships-ErrorOrWarningCode",
11+
"version": "1"
12+
}
13+
]
14+
},
15+
"severity": "error"
16+
}
17+
],
18+
"resourceType": "OperationOutcome"
19+
}

sandbox/api/responses/GET_RelatedPerson/identifier.json renamed to sandbox/api/responses/GET_RelatedPerson/verify_relationship_9000000009.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
{
22
"entry": [
33
{
4-
"fullUrl": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson/ABCD1234",
4+
"fullUrl": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson/BE974742",
55
"resource": {
6-
"id": "ABCD1234",
6+
"id": "BE974742",
77
"identifier": [
88
{
99
"system": "https://fhir.nhs.uk/Id/nhs-number",
10-
"value": "1234567890"
10+
"value": "9000000017"
1111
}
1212
],
1313
"patient": {
1414
"identifier": {
1515
"system": "https://fhir.nhs.uk/Id/nhs-number",
16-
"value": "0987654321"
16+
"value": "9000000009"
1717
},
1818
"type": "Patient"
1919
},
@@ -36,10 +36,10 @@
3636
"link": [
3737
{
3838
"relation": "self",
39-
"url": "sandbox"
39+
"url": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson?patient:identifier=9000000009&identifier=9000000017"
4040
}
4141
],
42-
"timestamp": "2024-00-00T00:00:00+00:00",
42+
"timestamp": "2024-01-01T00:00:00+00:00",
4343
"total": 1,
4444
"type": "searchset",
4545
"resourceType": "Bundle"
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"entry": [
3+
{
4+
"fullUrl": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson/A3CC67E2",
5+
"resource": {
6+
"id": "A3CC67E2",
7+
"identifier": [
8+
{
9+
"system": "https://fhir.nhs.uk/Id/nhs-number",
10+
"value": "9000000017"
11+
}
12+
],
13+
"patient": {
14+
"identifier": {
15+
"system": "https://fhir.nhs.uk/Id/nhs-number",
16+
"value": "9000000025"
17+
},
18+
"type": "Patient"
19+
},
20+
"relationship": [
21+
{
22+
"coding": [
23+
{
24+
"code": "MTH",
25+
"display": "mother",
26+
"system": "http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype"
27+
}
28+
]
29+
}
30+
],
31+
"resourceType": "RelatedPerson"
32+
},
33+
"search": { "mode": "match" }
34+
}
35+
],
36+
"link": [
37+
{
38+
"relation": "self",
39+
"url": "https://sandbox.api.service.nhs.uk/validated-relationships/FHIR/R4/RelatedPerson?patient:identifier=9000000025&identifier=9000000017"
40+
}
41+
],
42+
"timestamp": "2024-01-01T00:00:00+00:00",
43+
"total": 1,
44+
"type": "searchset",
45+
"resourceType": "Bundle"
46+
}

0 commit comments

Comments
 (0)