diff --git a/project/npda/forms/visit_form.py b/project/npda/forms/visit_form.py index 97f6ca12..e5dd6203 100644 --- a/project/npda/forms/visit_form.py +++ b/project/npda/forms/visit_form.py @@ -422,10 +422,12 @@ def clean_albumin_creatinine_ratio(self): if albumin_creatinine_ratio: if albumin_creatinine_ratio < 0: + albumin_creatinine_ratio = 0 raise ValidationError( "Urinary Albumin Level (ACR) out of range. Cannot be negative" ) elif albumin_creatinine_ratio > 999: + albumin_creatinine_ratio = 999 raise ValidationError( "Urinary Albumin Level (ACR) out of range. Cannot be above 999 mg/mmol" ) diff --git a/project/npda/migrations/0025_alter_visit_hospital_admission_reason.py b/project/npda/migrations/0025_alter_visit_hospital_admission_reason.py new file mode 100644 index 00000000..3c07c9a7 --- /dev/null +++ b/project/npda/migrations/0025_alter_visit_hospital_admission_reason.py @@ -0,0 +1,36 @@ +# Generated by Django 5.1.5 on 2025-02-09 23:02 + +import project.npda.models.categorised_formfield_mixin +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("npda", "0024_alter_patient_unique_reference_number"), + ] + + operations = [ + migrations.AlterField( + model_name="visit", + name="hospital_admission_reason", + field=project.npda.models.categorised_formfield_mixin.CategorisedPositiveSmallIntegerField( + blank=True, + choices=[ + (1, "Stabilisation of Diabetes"), + (2, "DKA"), + (3, "Ketosis without Acidosis"), + (4, "Hypoglycaemia"), + (5, "Surgical Procedures"), + (6, "Other causes"), + ], + default=None, + help_text={ + "label": "Use option 1: Stabilisation of diabetes for new patients admitted without DKA or other admissions where the purpose was to stabilise blood glucose such as recurrent hyperglycaemia without acidosis.", + "reference": "Important to know why a child is admitted to hospital for reasons of having diabetes but not related to DKA or hypoglycaemia. Also to record incidence of DKA and hypoglycaemia complications. With Best Practice Tariff it is envisaged that this type of admission will decrease and this is of interest to commissioners. Please only record diabetes-related admissions.", + }, + null=True, + verbose_name="Reason for admission", + ), + ), + ] diff --git a/project/npda/tests/form_tests/test_visit_form.py b/project/npda/tests/form_tests/test_visit_form.py index e1440e48..05ca7bf8 100644 --- a/project/npda/tests/form_tests/test_visit_form.py +++ b/project/npda/tests/form_tests/test_visit_form.py @@ -795,7 +795,7 @@ def test_urine_albumin_value_below_range_form_fails_validation(): # Trigger the cleaners assert ( form.is_valid() == False - ), f"Form should be invalid as albuminuria < 3, passed" + ), f"Form should be invalid as albuminuria < 0, passed" @pytest.mark.django_db diff --git a/project/npda/tests/test_csv_upload.py b/project/npda/tests/test_csv_upload.py index ec18cfc6..ed1df91e 100644 --- a/project/npda/tests/test_csv_upload.py +++ b/project/npda/tests/test_csv_upload.py @@ -1625,8 +1625,8 @@ def test_urine_albumin_value_below_range_form_fails_validation( visit = Visit.objects.first() assert visit.albumin_creatinine_ratio == Decimal( - "0.1" - ), f"Saved urine albumin should be 0.1, but was {visit.albumin_creatinine_ratio}" + "-10" + ), f"Saved urine albumin should be -10, but was {visit.albumin_creatinine_ratio}" assert ( visit.albuminuria_stage == 1 ), f"Saved urine albumin stage should be 1 (Normal), but was {visit.albuminuria_stage}" @@ -1655,8 +1655,8 @@ def test_urine_albumin_value_above_range_form_fails_validation( visit = Visit.objects.first() assert ( - visit.albumin_creatinine_ratio == 100 - ), f"Saved urine albumin should be 100, but was {visit.albumin_creatinine_ratio}" + visit.albumin_creatinine_ratio == 1000 + ), f"Saved urine albumin should be 1000, but was {visit.albumin_creatinine_ratio}" assert ( visit.albuminuria_stage == 1 ), f"Saved urine albumin stage should be 1 (Normal), but was {visit.albuminuria_stage}"