Skip to content

Commit e830df8

Browse files
committed
Updated create_custom_subject to account for leap years as this was sometimes creating a subject with the wrong age
1 parent 2884cfd commit e830df8

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

utils/oracle/subject_creation_util.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from datetime import date, timedelta
33
from typing import Optional
44
import random
5+
from classes import subject
56
from utils.oracle.oracle import OracleDB
67
from utils.nhs_number_tools import NHSNumberTools
78
from classes.region_type import RegionType
@@ -12,6 +13,7 @@
1213
from classes.repositories.subject_repository import SubjectRepository
1314
from classes.repositories.user_repository import UserRepository
1415
from classes.user_role_type import UserRoleType
16+
from dateutil.relativedelta import relativedelta
1517

1618

1719
class CreateSubjectSteps:
@@ -227,7 +229,7 @@ def create_custom_subject(self, subject_requirements: dict) -> Optional[str]:
227229
logging.debug(f"date of birth updated = {subject.birth_date}")
228230
elif key_lower == "age (y/d)":
229231
years, days = map(int, value.split("/"))
230-
birth_date = date.today() - timedelta(days=years * 365 + days)
232+
birth_date = date.today() - relativedelta(years=years, days=days)
231233
subject.birth_date = birth_date
232234
logging.debug(f"date of birth updated = {subject.birth_date}")
233235
elif key_lower == "gp practice":

0 commit comments

Comments
 (0)