Skip to content

Commit

Permalink
Merge branch 'release/0.3.2' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
erikvw committed Jan 24, 2024
2 parents 396f39c + d941e13 commit 9995ff9
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 26 deletions.
16 changes: 16 additions & 0 deletions edc_glucose/tests/consents.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from edc_consent.consent_definition import ConsentDefinition
from edc_consent.site_consents import site_consents
from edc_constants.constants import FEMALE, MALE
from edc_protocol import Protocol

consent_v1 = ConsentDefinition(
"edc_glucose.subjectconsent",
version="1",
start=Protocol().study_open_datetime,
end=Protocol().study_close_datetime,
age_min=18,
age_is_adult=18,
age_max=64,
gender=[MALE, FEMALE],
)
site_consents.register(consent_v1)
39 changes: 39 additions & 0 deletions edc_glucose/tests/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
from datetime import date

from django.db import models
from edc_identifier.model_mixins import NonUniqueSubjectIdentifierFieldMixin
from edc_model.models import BaseUuidModel
from edc_registration.model_mixins import UpdatesOrCreatesRegistrationModelMixin
from edc_sites.model_mixins import SiteModelMixin
from edc_utils import get_utcnow


class SubjectScreening(
SiteModelMixin,
NonUniqueSubjectIdentifierFieldMixin,
BaseUuidModel,
):
screening_identifier = models.CharField(max_length=50)

screening_datetime = models.DateTimeField(default=get_utcnow)

report_datetime = models.DateTimeField(default=get_utcnow)

age_in_years = models.IntegerField(default=25)


class SubjectConsent(
SiteModelMixin,
NonUniqueSubjectIdentifierFieldMixin,
UpdatesOrCreatesRegistrationModelMixin,
BaseUuidModel,
):
consent_datetime = models.DateTimeField(default=get_utcnow)

version = models.CharField(max_length=25, default="1")

identity = models.CharField(max_length=25)

confirm_identity = models.CharField(max_length=25)

dob = models.DateField(default=date(1995, 1, 1))
59 changes: 36 additions & 23 deletions edc_glucose/tests/tests/test_glucose_form_validator.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from _decimal import Decimal
from django.core.exceptions import ValidationError
from django.test import TestCase, override_settings
from edc_appointment.constants import SCHEDULED_APPT
from edc_appointment.models import Appointment
from edc_appointment.tests.helper import Helper as BaseHelper
from edc_consent import site_consents
from edc_constants.constants import NOT_APPLICABLE, YES
from edc_lab.constants import EQ
from edc_reportable import MILLIMOLES_PER_LITER
Expand All @@ -12,46 +12,59 @@
from edc_visit_tracking.models import SubjectVisit

from edc_glucose.form_validators import GlucoseFormValidator
from edc_glucose.tests.visit_schedules import visit_schedule

from ..consents import consent_v1
from ..models import SubjectScreening
from ..visit_schedules import visit_schedule


class Helper(BaseHelper):
@property
def screening_model_cls(self):
return SubjectScreening


@override_settings(SITE_ID=10)
class TestGlucose(TestCase):
helper_cls = Helper

def setUp(self):
SubjectScreening.objects.create(
screening_identifier="ABCD",
screening_datetime=get_utcnow(),
subject_identifier="12345",
)
self.subject_identifier = "12345"
site_consents.registry = {}
site_consents.register(consent_v1)
site_visit_schedules._registry = {}
site_visit_schedules.register(visit_schedule)
self.subject_identifier = "1234"
appointment = Appointment.objects.create(
site_visit_schedules.register(visit_schedule=visit_schedule)
self.helper = self.helper_cls(
subject_identifier=self.subject_identifier,
visit_code="1000",
visit_code_sequence=0,
)
self.helper.consent_and_put_on_schedule(
visit_schedule_name="visit_schedule",
schedule_name="schedule",
timepoint=Decimal("0.0"),
appt_datetime=get_utcnow(),
appt_reason=SCHEDULED_APPT,
)

appointment_baseline = Appointment.objects.all().order_by(
"timepoint", "visit_code_sequence"
)[0]

self.subject_visit_baseline = SubjectVisit.objects.create(
appointment=appointment,
appointment=appointment_baseline,
subject_identifier=self.subject_identifier,
visit_code=1000,
visit_code_sequence=0,
visit_schedule_name="visit_schedule",
schedule_name="schedule",
reason=SCHEDULED,
)
appointment = Appointment.objects.create(
subject_identifier=self.subject_identifier,
visit_code="2000",
visit_code_sequence=0,
visit_schedule_name="visit_schedule",
schedule_name="schedule",
timepoint=Decimal("1.0"),
appt_datetime=get_utcnow(),
appt_reason=SCHEDULED_APPT,
)
appointment_followup = Appointment.objects.all().order_by(
"timepoint", "visit_code_sequence"
)[1]
self.subject_visit_followup = SubjectVisit.objects.create(
appointment=appointment,
appointment=appointment_followup,
subject_identifier=self.subject_identifier,
visit_code="2000",
visit_code_sequence=0,
Expand Down
8 changes: 5 additions & 3 deletions edc_glucose/tests/visit_schedules.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from dateutil.relativedelta import relativedelta
from edc_visit_schedule.schedule import Schedule
from edc_visit_schedule.visit import Crf, FormsCollection, Visit
from edc_visit_schedule.visit import Crf, CrfCollection, Visit
from edc_visit_schedule.visit_schedule import VisitSchedule

crfs = FormsCollection(Crf(show_order=1, model="visit_schedule_app.CrfOne", required=True))
from edc_glucose.tests.consents import consent_v1

crfs = CrfCollection(Crf(show_order=1, model="visit_schedule_app.CrfOne", required=True))

visit0 = Visit(
code="1000",
Expand Down Expand Up @@ -50,7 +52,7 @@
onschedule_model="visit_schedule_app.onschedule",
offschedule_model="visit_schedule_app.offschedule",
appointment_model="edc_appointment.appointment",
consent_model="visit_schedule_app.subjectconsent",
consent_definitions=[consent_v1],
)

schedule.add_visit(visit0)
Expand Down

0 comments on commit 9995ff9

Please sign in to comment.