Skip to content

Commit 285c6ae

Browse files
committed
Remove unique constraint on NHS number
At p5 level NHS login identities are only "claimed" identities. For pilot we will mainatin multiple that multiple NHS numbers may exist. We should review post pilot and have a view to how to handle NHS number duplicates for national launch
1 parent cf754d7 commit 285c6ae

3 files changed

Lines changed: 24 additions & 11 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 6.0.3 on 2026-03-26 15:10
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('questions', '0008_alter_genderresponse_value'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='sexatbirthresponse',
15+
name='value',
16+
field=models.CharField(choices=[('F', 'Female'), ('M', 'Male')], max_length=1),
17+
),
18+
migrations.AlterField(
19+
model_name='user',
20+
name='nhs_number',
21+
field=models.CharField(max_length=10),
22+
),
23+
]

lung_cancer_screening/questions/models/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def create_user(self, sub, **extra_fields):
2020

2121
class User(AbstractBaseUser):
2222
sub = models.CharField(max_length=255, unique=True)
23-
nhs_number = models.CharField(max_length=10, unique=True)
23+
nhs_number = models.CharField(max_length=10)
2424
given_name = models.CharField(max_length=255)
2525
family_name = models.CharField(max_length=255)
2626
email = models.EmailField()

lung_cancer_screening/questions/tests/unit/models/test_user.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,6 @@ def test_is_invalid_without_nhs_number(self):
8686
)
8787

8888

89-
def test_raises_a_validation_error_if_nhs_number_is_duplicate(self):
90-
with self.assertRaises(ValidationError) as context:
91-
UserFactory(nhs_number=self.user.nhs_number)
92-
93-
self.assertIn(
94-
"User with this Nhs number already exists.",
95-
context.exception.messages
96-
)
97-
98-
9989
def test_nhs_number_has_a_max_length_of_10(self):
10090
self.user.nhs_number = "1"*11
10191

0 commit comments

Comments
 (0)