def setUpTestData(cls): site_randomizers._registry = {} site_randomizers.register(Randomizer) site_randomizers.register(CustomRandomizer) site_auths.initialize() import_module("edc_navbar.auths") import_module("edc_dashboard.auths") import_module("edc_review_dashboard.auths") import_module("edc_randomization.auths")
def test_cannot_overwrite(self): site_randomizers._registry = {} site_randomizers.register(MyRandomizer) make_test_list( full_path=MyRandomizer.get_randomization_list_fullpath(), site_names=self.site_names, count=5, ) randomizer = site_randomizers.get(MyRandomizer.name) randomizer.import_list() self.assertRaises(RandomizationListImportError, randomizer.import_list)
def setUpClass(cls): super().setUpClass() site_randomizers._registry = {} site_randomizers.register(Randomizer) add_or_update_django_sites( apps=django_apps, sites=ambition_sites, fqdn=fqdn, verbose=False ) if cls.import_randomization_list: RandomizationListImporter(name="ambition", verbose=False) import_holidays(test=True)
def test_invalid_assignment(self): site_randomizers._registry = {} site_randomizers.register(MyRandomizer) MyRandomizer.get_randomization_list_fullpath() make_test_list( full_path=MyRandomizer.get_randomization_list_fullpath(), site_names=self.site_names, # change to a different assignments assignments=[100, 101], count=5, ) self.assertRaises(InvalidAssignment, MyRandomizer.import_list)
def test_can_overwrite_explicit(self): site_randomizers._registry = {} site_randomizers.register(MyRandomizer) make_test_list( full_path=MyRandomizer.get_randomization_list_fullpath(), site_names=self.site_names, count=5, ) randomizer = site_randomizers.get(MyRandomizer.name) try: randomizer.import_list(overwrite=True) except RandomizationListImportError: self.fail("RandomizationListImportError unexpectedly raised")
def setUpTestData(cls): SiteProfile.objects.all().delete() Site.objects.all().delete() for site_id, site_name in sites.items(): Site.objects.create(id=site_id, name=site_name, domain=f"{site_name}.example.com") site_randomizers._registry = {} site_randomizers.register(Randomizer) site_randomizers.register(CustomRandomizer) site_auths.initialize() import_module("edc_navbar.auths") import_module("edc_dashboard.auths") import_module("edc_review_dashboard.auths") import_module("edc_randomization.auths")
""" The randomisation of the 32 health facilities will be stratified by country and type of health facility (defined by the infrastructure available) and by size of health facility. Within each stratum, we will randomise in a 1:1 ratio to either immediate or deferred using a computer-generated randomisation list. As mentioned above, the 32 facilities chosen will be chosen purposely such that their catchment populations are separated by natural barriers so as to minimise contamination (e.g. persons living in control areas travelling to intervention facilities for health care). """ from edc_constants.constants import INTERVENTION, CONTROL from edc_randomization.randomizer import Randomizer as Base from edc_randomization.site_randomizers import site_randomizers class Randomizer(Base): assignment_map = {INTERVENTION: 1, CONTROL: 2} is_blinded_trial = False site_randomizers.register(Randomizer)
def setUp(self): super().setUp() add_or_update_django_sites(sites=all_sites) site_randomizers._registry = {} site_randomizers.register(Randomizer)
def test_for_sites(self): """Assert that allocates by site correctly.""" site_randomizers._registry = {} site_randomizers.register(MyRandomizer) model_cls = MyRandomizer.model_cls() model_cls.objects.all().delete() self.populate_list(randomizer_name=MyRandomizer.name, site_names=self.site_names, per_site=5) site_names = [obj.site_name for obj in model_cls.objects.all()] shuffle(site_names) self.assertEqual(len(site_names), len(self.site_names * 5)) # consent and randomize 5 for each site for index, site_name in enumerate(site_names): site = Site.objects.get(name=site_name) subject_consent = SubjectConsent.objects.create( subject_identifier=f"12345{index}", site=site, user_created="erikvw") MyRandomizer( subject_identifier=subject_consent.subject_identifier, report_datetime=subject_consent.consent_datetime, site=subject_consent.site, user=subject_consent.user_created, ) # assert consented subjects were allocated SIDs in the # correct order per site. for site_name in site_names: randomized_subjects = [ (obj.subject_identifier, str(obj.sid)) for obj in model_cls.objects.filter( allocated_site__name=site_name, subject_identifier__isnull=False).order_by("sid") ] for index, obj in enumerate( SubjectConsent.objects.filter( site__name=site_name).order_by("consent_datetime")): rs = RegisteredSubject.objects.get( subject_identifier=obj.subject_identifier) self.assertEqual(obj.subject_identifier, randomized_subjects[index][0]) self.assertEqual(rs.sid, randomized_subjects[index][1]) # clear out any unallocated model_cls.objects.filter(subject_identifier__isnull=True).delete() # assert raises on next attempt to randomize subject_consent = SubjectConsent.objects.create( subject_identifier="ABCDEF", site=site, user_created="erikvw", user_modified="erikvw", ) self.assertRaises( AllocationError, MyRandomizer, subject_identifier=subject_consent.subject_identifier, report_datetime=subject_consent.consent_datetime, site=subject_consent.site, user=subject_consent.user_modified, )
def setUp(self): super().setUp() site_randomizers._registry = {} site_randomizers.register(Randomizer)