Skip to content

Commit acfaa49

Browse files
authored
chore(diagrams): FTRS-2825 Update diagrams from read and write proxy to DoS Ingest, DoS Search (#869)
1 parent 9d6e9aa commit acfaa49

File tree

18 files changed

+107
-90
lines changed

18 files changed

+107
-90
lines changed

architecture/backend/apim/model.c4

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ model {
77
color muted
88
}
99

10-
apigeeproxy dosReadProxy "DoS Read Proxy" {
11-
description 'Proxy to read data from DoS'
10+
apigeeproxy dosSearchProxy "DoS Search Proxy" {
11+
description 'Proxy for external consumers to search DoS data'
1212
}
1313

14-
apigeeproxy dosWriteProxy "DoS Write Proxy" {
15-
description 'Proxy to write data to DoS'
14+
apigeeproxy dosIngestProxy "DoS Ingest Proxy" {
15+
description 'Proxy for ingesting and querying data in the DoS'
1616
}
1717
}
1818
}

architecture/backend/crud-apis/healthcare-service/model.c4

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ model {
3232
}
3333
}
3434

35-
apim.dosReadProxy -> healthcareServiceAPI.getHealthcareService "Routes requests to"
36-
apim.dosReadProxy -> healthcareServiceAPI.getHealthcareServices "Routes requests to"
37-
apim.dosWriteProxy -> healthcareServiceAPI.deleteHealthcareService "Routes requests to"
38-
apim.dosWriteProxy -> healthcareServiceAPI.createHealthcareServices "Routes requests to"
39-
apim.dosWriteProxy -> healthcareServiceAPI.updateHealthcareService "Routes requests to"
35+
apim.dosIngestProxy -> healthcareServiceAPI.getHealthcareService "Routes requests to"
36+
apim.dosIngestProxy -> healthcareServiceAPI.getHealthcareServices "Routes requests to"
37+
apim.dosIngestProxy -> healthcareServiceAPI.deleteHealthcareService "Routes requests to"
38+
apim.dosIngestProxy -> healthcareServiceAPI.createHealthcareServices "Routes requests to"
39+
apim.dosIngestProxy -> healthcareServiceAPI.updateHealthcareService "Routes requests to"
4040

4141

4242

architecture/backend/crud-apis/healthcare-service/views.c4

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ views {
77
and to retrieve data for the Healthcare Service dashboard
88
'
99
include *
10-
include apim.dosReadProxy
11-
include apim.dosWriteProxy
10+
include apim
11+
include apim.dosIngestProxy
1212
include healthcareServiceAPI
1313
include healthcareServiceAPI.getHealthcareService
1414
include healthcareServiceAPI.getHealthcareServices

architecture/backend/crud-apis/location/model.c4

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ model {
3232
}
3333
}
3434

35-
apim.dosReadProxy -> locationAPI.getById "Routes requests to"
36-
apim.dosReadProxy -> locationAPI.getAllLocations "Routes requests to"
37-
apim.dosWriteProxy -> locationAPI.createLocation "Routes requests to"
38-
apim.dosWriteProxy -> locationAPI.updateLocation "Routes requests to"
39-
apim.dosWriteProxy -> locationAPI.deleteLocation "Routes requests to"
35+
apim.dosIngestProxy -> locationAPI.getById "Routes requests to"
36+
apim.dosIngestProxy -> locationAPI.getAllLocations "Routes requests to"
37+
apim.dosIngestProxy -> locationAPI.createLocation "Routes requests to"
38+
apim.dosIngestProxy -> locationAPI.updateLocation "Routes requests to"
39+
apim.dosIngestProxy -> locationAPI.deleteLocation "Routes requests to"
4040

4141
getById -> ftrs.db.locationTable "Queries data from"
4242
getAllLocations -> ftrs.db.locationTable "Queries data from"

architecture/backend/crud-apis/organisation/model.c4

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ model {
3131
}
3232
}
3333

34-
apim.dosReadProxy -> organizationAPI.orgByOdsCode "Routes requests to"
35-
apim.dosReadProxy -> organizationAPI.getByOrganizationId "Routes requests to"
36-
apim.dosWriteProxy -> organizationAPI.addOrg "Routes requests to"
37-
apim.dosWriteProxy -> organizationAPI.updateOrg "Routes requests to"
38-
apim.dosWriteProxy -> organizationAPI.deleteOrg "Routes requests to"
34+
apim.dosIngestProxy -> organizationAPI.orgByOdsCode "Routes requests to"
35+
apim.dosIngestProxy -> organizationAPI.getByOrganizationId "Routes requests to"
36+
apim.dosIngestProxy -> organizationAPI.addOrg "Routes requests to"
37+
apim.dosIngestProxy -> organizationAPI.updateOrg "Routes requests to"
38+
apim.dosIngestProxy -> organizationAPI.deleteOrg "Routes requests to"
3939

4040
orgByOdsCode -> ftrs.db.orgTable "Queries data from"
4141
getByOrganizationId -> ftrs.db.orgTable "Queries data from"

architecture/backend/crudApis/model.c4

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,5 @@ model {
105105
ftrs.crudApis.locationApi -> ftrs.db.locationTable "Reads/Writes"
106106

107107
// External access via APIM
108-
apim.dosReadProxy -> ftrs.apiGateway "Proxies read requests"
109-
apim.dosWriteProxy -> ftrs.apiGateway "Proxies write requests"
108+
apim.dosIngestProxy -> ftrs.apiGateway "Proxies CRUD requests"
110109
}

architecture/backend/crudApis/views.c4

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ views {
2020
include ftrs.db.orgTable
2121
include ftrs.db.healthCareServiceTable
2222
include ftrs.db.locationTable
23-
include apim.dosReadProxy
24-
include apim.dosWriteProxy
23+
include apim
24+
include apim.dosIngestProxy
2525

2626
autoLayout LeftRight 70 77
2727
}
@@ -36,8 +36,8 @@ views {
3636
include *
3737
include ftrs.apiGateway
3838
include ftrs.db.orgTable
39-
include apim.dosReadProxy
40-
include apim.dosWriteProxy
39+
include apim
40+
include apim.dosIngestProxy
4141

4242
autoLayout LeftRight 70 77
4343
}
@@ -51,8 +51,8 @@ views {
5151
include *
5252
include ftrs.apiGateway
5353
include ftrs.db.healthCareServiceTable
54-
include apim.dosReadProxy
55-
include apim.dosWriteProxy
54+
include apim
55+
include apim.dosIngestProxy
5656

5757
autoLayout LeftRight 70 77
5858
}
@@ -66,8 +66,8 @@ views {
6666
include *
6767
include ftrs.apiGateway
6868
include ftrs.db.locationTable
69-
include apim.dosReadProxy
70-
include apim.dosWriteProxy
69+
include apim
70+
include apim.dosIngestProxy
7171

7272
autoLayout LeftRight 70 77
7373
}
@@ -78,12 +78,14 @@ views {
7878
Sequence showing the read path through the CRUD APIs
7979
'
8080

81-
apim.dosReadProxy -> ftrs.apiGateway "1. GET request via APIM"
81+
include apim
82+
83+
apim.dosIngestProxy -> ftrs.apiGateway "1. GET request via DoS Ingest Proxy"
8284
ftrs.apiGateway -> ftrs.crudApis.organisationApi "2. Route to Organisation API Lambda"
8385
ftrs.crudApis.organisationApi -> ftrs.db.orgTable "3. Query DynamoDB"
8486
ftrs.db.orgTable -> ftrs.crudApis.organisationApi "4. Return data"
8587
ftrs.crudApis.organisationApi -> ftrs.apiGateway "5. FHIR response"
86-
ftrs.apiGateway -> apim.dosReadProxy "6. Return to APIM"
88+
ftrs.apiGateway -> apim.dosIngestProxy "6. Return to DoS Ingest Proxy"
8789

8890
autoLayout TopBottom
8991
}
@@ -94,12 +96,14 @@ views {
9496
Sequence showing the write path through the CRUD APIs
9597
'
9698

97-
apim.dosWriteProxy -> ftrs.apiGateway "1. POST/PUT/DELETE request via APIM"
99+
include apim
100+
101+
apim.dosIngestProxy -> ftrs.apiGateway "1. POST/PUT/DELETE request via DoS Ingest Proxy"
98102
ftrs.apiGateway -> ftrs.crudApis.organisationApi "2. Route to Organisation API Lambda"
99103
ftrs.crudApis.organisationApi -> ftrs.db.orgTable "3. Update DynamoDB"
100104
ftrs.db.orgTable -> ftrs.crudApis.organisationApi "4. Confirm write"
101105
ftrs.crudApis.organisationApi -> ftrs.apiGateway "5. FHIR response"
102-
ftrs.apiGateway -> apim.dosWriteProxy "6. Return to APIM"
106+
ftrs.apiGateway -> apim.dosIngestProxy "6. Return to DoS Ingest Proxy"
103107

104108
autoLayout TopBottom
105109
}

architecture/backend/dosSearch/model.c4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ model {
3838
ftrs.dosSearch.ftrsService -> ftrs.db.orgTable "Queries organisation by ODS code"
3939

4040
// External access via APIM
41-
apim.dosReadProxy -> ftrs.apiGateway "Proxies search requests"
41+
apim.dosSearchProxy -> ftrs.apiGateway "Proxies search requests"
4242
ftrs.apiGateway -> ftrs.dosSearch.getOrganizationByOds "Routes GET /Organization requests"
4343
}

architecture/backend/dosSearch/views.c4

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ views {
1616
include *
1717
include ftrs.apiGateway
1818
include ftrs.db.orgTable
19-
include apim.dosReadProxy
19+
include apim
20+
include apim.dosSearchProxy
2021

2122
autoLayout TopBottom 70 77
2223
}
@@ -27,7 +28,7 @@ views {
2728
Sequence showing the data flow through DoS Search service
2829
'
2930

30-
apim.dosReadProxy -> ftrs.apiGateway "1. GET /Organization?identifier=https://fhir.nhs.uk/Id/ods-organization-code|{code}"
31+
apim.dosSearchProxy -> ftrs.apiGateway "1. GET /Organization?identifier=https://fhir.nhs.uk/Id/ods-organization-code|{code}"
3132
ftrs.apiGateway -> ftrs.dosSearch.getOrganizationByOds "2. Route to Lambda"
3233
ftrs.dosSearch.getOrganizationByOds -> ftrs.dosSearch.ftrsService "3. Call service"
3334
ftrs.dosSearch.ftrsService -> ftrs.db.orgTable "4. Query by ODS code"

architecture/backend/etlOds/model.c4

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ model {
5858
odsTerminologyApi = system "ODS Data Terminology API" {
5959
description 'ODS holds information for many different types of organisation related to health and social care'
6060
technology 'External NHS API'
61+
style {
62+
color muted
63+
}
6164
}
6265

6366
// ========================================
@@ -70,26 +73,21 @@ model {
7073
// Data flow: Transform stage
7174
// ========================================
7275
ftrs.etlOds.transformQueue -> ftrs.etlOds.odsTransformer "Triggers Lambda (SQS event, batch size 10)"
73-
ftrs.etlOds.odsTransformer -> apim.dosReadProxy "Fetches organisation UUIDs by ODS code"
76+
ftrs.etlOds.odsTransformer -> apim.dosIngestProxy "Fetches organisation UUIDs by ODS code - GET /Organization"
7477
ftrs.etlOds.odsTransformer -> ftrs.etlOds.loadQueue "Sends transformed FHIR payloads"
7578

7679
// ========================================
7780
// Data flow: Load stage
7881
// ========================================
7982
ftrs.etlOds.loadQueue -> ftrs.etlOds.odsLoader "Triggers Lambda (SQS event, batch size 10)"
80-
ftrs.etlOds.odsLoader -> apim.dosWriteProxy "PUT /Organization/{uuid} updates"
83+
ftrs.etlOds.odsLoader -> apim.dosIngestProxy "PUT /Organization/{uuid} updates"
8184

8285
// ========================================
83-
// Data flow: Through CRUD APIs (write path)
86+
// Data flow: Through CRUD APIs
8487
// ========================================
85-
apim.dosWriteProxy -> ftrs.apiGateway "Proxies PUT request"
88+
apim.dosIngestProxy -> ftrs.apiGateway "Proxies GET/PUT requests"
89+
ftrs.apiGateway -> ftrs.crudApis.organisationApi.getOrgByOdsCode "Routes to query handler (UUID lookup)"
90+
ftrs.crudApis.organisationApi.getOrgByOdsCode -> ftrs.db.orgTable "Queries organisation by ODS code"
8691
ftrs.apiGateway -> ftrs.crudApis.organisationApi.updateOrg "Routes to update handler"
8792
ftrs.crudApis.organisationApi.updateOrg -> ftrs.db.orgTable "Persists organisation data"
88-
89-
// ========================================
90-
// Data flow: Through CRUD APIs (read path for UUID lookup)
91-
// ========================================
92-
apim.dosReadProxy -> ftrs.apiGateway "Proxies GET request"
93-
ftrs.apiGateway -> ftrs.crudApis.organisationApi.getOrgByOdsCode "Routes to query handler"
94-
ftrs.crudApis.organisationApi.getOrgByOdsCode -> ftrs.db.orgTable "Queries organisation by ODS code"
9593
}

0 commit comments

Comments
 (0)