Skip to content

Commit bada5cb

Browse files
authored
CCM-12605 pdm diagrams (#43)
* CCM-12605: Added PDM Component diagrams * CCM-12605: Added PDM sequence diagrams * CCM-12605: Changed CommunicationRequest to DocumentReference
1 parent 1509463 commit bada5cb

File tree

8 files changed

+160
-19
lines changed

8 files changed

+160
-19
lines changed

docs/architecture/c4/notifhir/mesh/index.md

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,45 @@ parent: NotiFHIR - C4 Container
55
nav_order: 6
66
has_children: true
77
is_not_draft: false
8-
last_modified_date: 2024-05-28
9-
owner: Ross Buggins
10-
author: Ross Buggins
8+
last_modified_date: 2024-10-13
9+
owner: Tom D'Roza
10+
author: Tom D'Roza
1111
---
12+
13+
## MESH Poller
14+
15+
```mermaid
16+
architecture-beta
17+
group meshPoller(cloud)[MeshPoller]
18+
service meshDownloaded(logos:aws-eventbridge)[Scheduled Poll Event]
19+
service pdmSaved(logos:aws-eventbridge)[MESHFileAvailable Event]
20+
service meshPollQueue(logos:aws-sqs)[MeshPoll Queue] in meshPoller
21+
service meshPollLambda(logos:aws-lambda)[MeshPoll] in meshPoller
22+
service mesh(server)[MESH]
23+
24+
25+
meshDownloaded:R -- L:meshPollQueue
26+
meshPollQueue:R --> L:meshPollLambda
27+
meshPollLambda:T --> B:mesh
28+
meshPollLambda:R --> L:pdmSaved
29+
```
30+
31+
## MESH Retriever
32+
33+
```mermaid
34+
architecture-beta
35+
group meshRetriever(cloud)[MeshRetriever]
36+
service meshDownloaded(logos:aws-eventbridge)[MESHFileAvailable Event]
37+
service pdmSaved(logos:aws-eventbridge)[SavedToPDM Event]
38+
service meshDownloadQueue(logos:aws-sqs)[MeshDownload Queue] in meshRetriever
39+
service meshDownloadLambda(logos:aws-lambda)[MeshDownload] in meshRetriever
40+
service mesh(server)[MESH]
41+
service s3(logos:aws-s3)[S3 Bucket] in meshRetriever
42+
43+
44+
meshDownloaded:R -- L:meshDownloadQueue
45+
meshDownloadQueue:R --> L:meshDownloadLambda
46+
meshDownloadLambda:T --> B:mesh
47+
meshDownloadLambda:B --> T:s3
48+
meshDownloadLambda:R --> L:pdmSaved
49+
```

docs/architecture/c4/notifhir/mesh/poller/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ parent: MESH - C4 Component
55
nav_order: 1
66
has_children: true
77
is_not_draft: false
8-
last_modified_date: 2024-05-28
9-
owner: Ross Buggins
10-
author: Ross Buggins
8+
last_modified_date: 2024-10-13
9+
owner: Tom D'Roza
10+
author: Tom D'Roza
1111
---

docs/architecture/c4/notifhir/pdm/index.md

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,41 @@ parent: NotiFHIR - C4 Container
55
nav_order: 6
66
has_children: true
77
is_not_draft: false
8-
last_modified_date: 2024-05-28
9-
owner: Ross Buggins
10-
author: Ross Buggins
8+
last_modified_date: 2024-10-13
9+
owner: Tom D'Roza
10+
author: Tom D'Roza
1111
---
12+
13+
```mermaid
14+
architecture-beta
15+
service meshDownloaded(logos:aws-eventbridge)[MESHFileDownloaded Event]
16+
service pdmSaved(logos:aws-eventbridge)[SavedToPDM Event]
17+
group uploadToPdm(cloud)[UploadToPDM]
18+
service uploadQueue(logos:aws-sqs)[UploadToPDM Queue] in uploadToPdm
19+
service uploadLambda(logos:aws-lambda)[UploadToPDM] in uploadToPdm
20+
service s3(logos:aws-s3)[S3 Bucket] in uploadToPdm
21+
service pdm(server)[PDM]
22+
23+
24+
meshDownloaded:R -- L:uploadQueue
25+
uploadQueue:R --> L:uploadLambda
26+
uploadLambda:B --> T:s3
27+
uploadLambda:T --> L:pdmSaved
28+
uploadLambda:R --> L:pdm
29+
30+
```
31+
32+
```mermaid
33+
architecture-beta
34+
service eventBus(logos:aws-eventbridge)[SavedToPDM Event]
35+
service pdmReady(logos:aws-eventbridge)[PDMDocumentReadyEvent]
36+
group checkPdm(cloud)[PDMPoller]
37+
service pollPdmQueue(logos:aws-sqs)[PollPDM Queue] in checkPdm
38+
service pollPdmLambda(logos:aws-lambda)[PollPDM] in checkPdm
39+
service pdm(server)[PDM]
40+
41+
eventBus:R -- L:pollPdmQueue
42+
pollPdmQueue:R --> L:pollPdmLambda
43+
pollPdmLambda:B --> L:pdmReady
44+
pollPdmLambda:R --> L:pdm
45+
```

docs/architecture/c4/ttl/manage-ttl.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ architecture-beta
2020
service printTTLExpired(logos:aws-eventbridge)[PrintTTLExpired] in manageTTL
2121
2222
manageLambda:R -- L:manageDb
23-
manageDb:B -- T:ttlStream
24-
ttlStream:R -- L:manageTtlExpiry
23+
manageDb:R -- L:ttlStream
24+
ttlStream:B -- T:manageTtlExpiry
2525
manageTtlExpiry:R -- L:printTTLExpired
2626
```

docs/diagrams/digital-letters-sequence.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ author: Tom D'Roza
2020
## Decisions
2121

2222
1. Out of scope for MVP: Virus checking of PDF received from Trust
23-
2. Don't check `CommunicationRequest` filesize. Attempt to upload all `CommunicationRequest`s to PDM. Those exceeding APIM size limit will fail.
23+
2. Don't check `DocumentReference` filesize. Attempt to upload all `DocumentReference`s to PDM. Those exceeding APIM size limit will fail.
2424
3. No PDS check by Digital Letters component of Date-of-Death, S-flag, RFR codes. Rely on Trusts having performed these checks.
2525

2626
```mermaid
@@ -36,22 +36,22 @@ sequenceDiagram
3636
participant nhsapp as NHSApp
3737
3838
39-
trust ->> notify-letters: MESH (CommunicationRequest)
39+
trust ->> notify-letters: MESH (DocumentReference)
4040
activate notify-letters
4141
notify-letters ->> trust: MESH Ack
4242
deactivate notify-letters
43-
notify-letters ->> notify-letters: Store CommunicationRequest (S3)
43+
notify-letters ->> notify-letters: Store DocumentReference (S3)
4444
notify-letters ->> notify-letters: Create SendLetter TTL
45-
notify-letters ->> pdm: POST /CommunicationRequest
45+
notify-letters ->> pdm: POST /DocumentReference
4646
activate pdm
4747
pdm -) ndr: SFTP
4848
pdm -->> notify-letters: 200 OK
4949
deactivate pdm
5050
Loop Interval & Duration TBC
51-
notify-letters ->> pdm: GET /CommunicationRequest/<id>
52-
pdm ->> notify-letters: 200 OK (CommunicationRequest)
51+
notify-letters ->> pdm: GET /DocumentReference/<id>
52+
pdm ->> notify-letters: 200 OK (DocumentReference)
5353
end
54-
rect rgba(5, 26, 46, 1)
54+
rect rgba(92, 145, 196, 0.3)
5555
note over notify-letters,nhsapp: Existing Notify behaviour
5656
notify-letters ->> notify-core: post /v1/messages (NHSApp)
5757
activate notify-core

docs/diagrams/mesh-sequence.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ sequenceDiagram
2222
participant meshRetrieve as Lambda<br/>MESHRetrieve
2323
participant s3 as S3<br/>DigitalLettersBucket
2424
25-
trust ->> meshMailbox: MESH (CommunicationRequest)
25+
trust ->> meshMailbox: MESH (DocumentReference)
2626
activate meshMailbox
2727
meshMailbox ->> trust: MESH Ack
2828
deactivate meshMailbox

docs/diagrams/pdm-poll.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
layout: page
3+
title: PDM Poll
4+
nav_order: 5
5+
parent: Diagrams
6+
has_children: false
7+
child_nav_order: reversed
8+
is_not_draft: false
9+
last_modified_date: 2025-10-13
10+
owner: Tom D'Roza
11+
author: Tom D'Roza
12+
---
13+
14+
```mermaid
15+
16+
sequenceDiagram
17+
participant eventBus as EventBridge
18+
participant pdmPollerQueue as Queue<br/>PDMPollerQueue
19+
participant pdmPoller as Lambda<br/>PDMPoller
20+
participant pdm as PDM
21+
22+
eventBus -) pdmPollerQueue: SavedToPDM Event(meshFileId)
23+
activate pdmPollerQueue
24+
pdmPollerQueue ->> pdmPoller:
25+
deactivate pdmPollerQueue
26+
loop Until resource contains payload
27+
pdmPoller ->> pdm: GetSpecificResource(ID)
28+
activate pdm
29+
pdm -->> pdmPoller: DocumentReference
30+
deactivate pdm
31+
end
32+
pdmPoller -) eventBus: PDMDocumentReadyEvent(meshFileId)
33+
```

docs/diagrams/pdm-upload.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
layout: page
3+
title: PDM Upload
4+
nav_order: 4
5+
parent: Diagrams
6+
has_children: false
7+
child_nav_order: reversed
8+
is_not_draft: false
9+
last_modified_date: 2025-10-13
10+
owner: Tom D'Roza
11+
author: Tom D'Roza
12+
---
13+
14+
```mermaid
15+
16+
sequenceDiagram
17+
participant eventBus as EventBridge
18+
participant pdmUploadQueue as Queue<br/>PDMUploadQueue
19+
participant pdmUpload as Lambda<br/>PDMUpload
20+
participant s3 as S3
21+
participant pdm as PDM
22+
23+
eventBus -) pdmUploadQueue: MESHFileAvailable Event
24+
activate pdmUploadQueue
25+
pdmUploadQueue ->> pdmUpload:
26+
deactivate pdmUploadQueue
27+
activate pdmUpload
28+
pdmUpload ->> s3: Get file from S3
29+
s3 -->> pdmUpload: DocumentReference
30+
pdmUpload ->> pdm: CreateResource(DocumentReference)
31+
activate pdm
32+
pdm -->> pdmUpload: 200 OK
33+
deactivate pdm
34+
pdmUpload -) eventBus: SavedToPDM Event(meshFileId)
35+
deactivate pdmUpload
36+
```

0 commit comments

Comments
 (0)