Пример #1
0
 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")
Пример #6
0
 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")
Пример #7
0
"""
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,
        )
Пример #10
0
 def setUp(self):
     super().setUp()
     site_randomizers._registry = {}
     site_randomizers.register(Randomizer)