Skip to content

Commit d9c4f0a

Browse files
Generate NHS numbers starting with 999 that are guaranteed not to be real
1 parent 9a41f17 commit d9c4f0a

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

app/lib/generators/participant-generator.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,14 @@ const generateSXNumber = (bsuAbbreviation) => {
4545

4646
// NHS Number Generator
4747
const generateNHSNumber = () => {
48-
// Generate 9 random digits
49-
const baseNumber = Array.from({ length: 9 }, () =>
48+
// Generate 6 random digits
49+
// NHS numbers starting with 999 are never issued.
50+
// https://digital.nhs.uk/services/e-referral-service/document-library/synthetic-data-in-live-environments#synthetic-data-naming-convention
51+
const baseNumber = '999' + Array.from({ length: 6 }, () =>
5052
faker.number.int(9)
5153
).join('');
5254

5355
// Calculate check digit
54-
// NHS number validation: multiply each digit by (11 - position)
5556
let sum = 0;
5657
for (let i = 0; i < 9; i++) {
5758
sum += parseInt(baseNumber[i]) * (11 - (i + 1));

0 commit comments

Comments
 (0)