Skip to content

Commit 3347afd

Browse files
committed
CCM-13475: Added PrintLetterAnalysed data schema
1 parent cea7b26 commit 3347afd

File tree

7 files changed

+89
-28
lines changed

7 files changed

+89
-28
lines changed

docs/collections/_diagrams/c4code-printer-scanner.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@ architecture-beta
1010
service itemDequeued(aws:res-amazon-eventbridge-event)[ItemDequeued Event]
1111
service analyseQueue(logos:aws-sqs)[Analyse Queue] in printScanner
1212
service analyseLambda(logos:aws-lambda)[PrintScanner] in printScanner
13+
service moveLambda(logos:aws-lambda)[MoveLetters] in printScanner
1314
service docRefBucket(logos:aws-s3)[DocumentReference] in printScanner
14-
service lettersBucket(logos:aws-s3)[DigitalLetters] in printScanner
15+
service unscannedBucket(logos:aws-s3)[UnscannedLetters] in printScanner
16+
service processingBucket(logos:aws-s3)[ProcessingLetters] in printScanner
1517
service quarantineBucket(logos:aws-s3)[QuarantinedLetters] in printScanner
1618
service safeBucket(logos:aws-s3)[SafeLetters] in printScanner
1719
service guardDuty(aws:arch-amazon-guardduty)[GuardDuty] in printScanner
20+
service scanComplete(aws:res-amazon-eventbridge-event)[ScanComplete Event]
1821
service safeLetter(aws:res-amazon-eventbridge-event)[PrintLetterSafe Event]
1922
service quarantinedLetter(aws:res-amazon-eventbridge-event)[PrintLetterQuarantined Event]
2023
junction j1 in printScanner
@@ -24,15 +27,18 @@ architecture-beta
2427
itemDequeued:R --> L:analyseQueue
2528
docRefBucket:T --> B:analyseLambda
2629
analyseQueue:R --> L:analyseLambda
27-
analyseLambda:T --> B:lettersBucket
28-
lettersBucket:R --> L:guardDuty
29-
guardDuty:R -- L:j1
30+
analyseLambda:T --> B:unscannedBucket
31+
unscannedBucket:R --> L:guardDuty
32+
guardDuty:R --> L:processingBucket
33+
guardDuty:T --> B:scanComplete
34+
scanComplete:R --> L:moveLambda
35+
moveLambda:B <--> T:processingBucket
36+
moveLambda:R --> L:j1
3037
j1:T -- B:j2
3138
j1:B -- T:j3
3239
j2:R --> L:quarantineBucket
33-
quarantineBucket:R --> L:quarantinedLetter
3440
j3:R --> L:safeBucket
41+
quarantineBucket:R --> L:quarantinedLetter
3542
safeBucket:R --> L:safeLetter
3643
37-
3844
```
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: print-letter-analysed
3+
type: uk.nhs.notify.digital.letters.print.letter.analysed.v1
4+
nice_name: PrintLetterAnalysed
5+
service: Print Supplier Services
6+
schema_envelope: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.letter.analysed.v1.schema.json
7+
schema_data: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letters-print-letter-analysed-data.schema.json
8+
---
9+
10+
This event is published when a PDF letter has been analysed in preparation for sending to print. In addition to the standard metadata fields relating to the message request, the event payload also contains a count of the number of pages in the letter and a SHA256 has of the file. This information can be used by the Print Supplier API to verify the integrity of the letter before it is printed.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
$schema: https://json-schema.org/draft/2020-12/schema
2+
title: PrintLetterAnalysed Data
3+
description: Data payload of the PrintLetterAnalysed event
4+
type: object
5+
additionalProperties: false
6+
properties:
7+
messageReference:
8+
$ref: ../defs/requests.schema.yaml#/properties/messageReference
9+
senderId:
10+
$ref: ../defs/requests.schema.yaml#/properties/senderId
11+
messageUri:
12+
$ref: ../defs/requests.schema.yaml#/properties/messageUri
13+
pageCount:
14+
$ref: ../defs/print.schema.yaml#/properties/pageCount
15+
sha256Hash:
16+
$ref: ../defs/print.schema.yaml#/properties/sha256Hash
17+
required:
18+
- messageReference
19+
- senderId
20+
- messageUri
21+
- pageCount
22+
- sha256Hash

src/cloudevents/domains/digital-letters/2025-10-draft/defs/message-status.schema.yaml

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/cloudevents/domains/digital-letters/2025-10-draft/defs/print.schema.yaml

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,14 @@ type: object
55
properties:
66
status:
77
type: string
8-
minimum: 1
9-
description: Number of times that PDM has been polled while waiting for document processing to complete
10-
enum: [
11-
"ACCEPTED",
12-
"REJECTED",
13-
"PRINTED",
14-
"DISPATCHED",
15-
"FAILED",
16-
"RETURNED"
17-
]
8+
description: Current status of the letter request
9+
enum:
10+
- "ACCEPTED"
11+
- "REJECTED"
12+
- "PRINTED"
13+
- "DISPATCHED"
14+
- "FAILED"
15+
- "RETURNED"
1816
examples:
1917
- ACCEPTED
2018
- DISPATCHED
@@ -24,3 +22,16 @@ properties:
2422
description: Identifier of the print supplier handling the print job
2523
examples:
2624
- "supplier-12345"
25+
pageCount:
26+
type: integer
27+
description: The number of pages in the analysed letter PDF.
28+
examples:
29+
- 1
30+
- 3
31+
sha256Hash:
32+
type: string
33+
description: The SHA256 hash of the analysed letter PDF.
34+
pattern: '^[A-Fa-f0-9]{64}$'
35+
examples:
36+
- 3a7bd3e2360a3d80c4d4e8b1e3e5e6e7e8e9e0e1e2e3e4e5e6e7e8e9e0e1e2e3
37+
abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
$schema: https://json-schema.org/draft/2020-12/schema
2+
title: PrintLetterAnalysed
3+
type: object
4+
allOf:
5+
- $ref: ../digital-letters-print-profile.schema.yaml
6+
properties:
7+
type:
8+
type: string
9+
const: uk.nhs.notify.digital.letters.print.letter.analysed.v1
10+
description: Concrete versioned event type string for this event (.vN suffix).
11+
source:
12+
type: string
13+
pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/data-plane/digitalletters/print
14+
description: Event source for digital letters.
15+
16+
dataschema:
17+
type: string
18+
const: ../data/digital-letters-print-letter-analysed-data.schema.yaml
19+
description: Canonical URI of the event's data schema.
20+
examples:
21+
- digital-letters-print-letter-analysed-data.schema.yaml
22+
data:
23+
$ref: ../data/digital-letters-print-letter-analysed-data.schema.yaml

src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.print.letter.transitioned.v1.schema.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
$schema: https://json-schema.org/draft/2020-12/schema
22
title: PrintLetterTransitioned
3+
34
type: object
45
allOf:
56
- $ref: ../digital-letters-print-profile.schema.yaml

0 commit comments

Comments
 (0)