def setUp(self):

        from bhp066.apps.bcpp.app_configuration.classes import BcppAppConfiguration

        self.household_structure = None
        self.registered_subject = None
        self.representative_eligibility = None
        self.study_site = None
        self.intervention = None

        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        BcppAppConfiguration().prepare()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()

        self.survey1 = Survey.objects.get(survey_name='BCPP Year 2')  # see app_configuration
        plot = PlotFactory(community='digawana', household_count=1, status='residential_habitable')
        household = Household.objects.get(plot=plot)
        self.household_structure = HouseholdStructure.objects.get(household=household, survey=self.survey1)
        self.representative_eligibility = RepresentativeEligibilityFactory(household_structure=self.household_structure)
        self.study_site = StudySite.objects.get(site_code=site_mappers.get_current_mapper().map_code)
        self.intervention = site_mappers.get_registry(settings.CURRENT_COMMUNITY)().intervention
Esempio n. 2
0
 def setUp(self):
     try:
         site_lab_profiles.register(MpepuMaternalProfile())
     except AlreadyRegistered:
         pass
     MpepuAppConfiguration().prepare()
     site_lab_tracker.autodiscover()
     site_visit_schedules.autodiscover()
     site_visit_schedules.build_all()
     study_site = StudySiteFactory()
     MaternalConsent.objects.all().delete()
     self.maternal_consent1 = MaternalConsentFactory(study_site=study_site)
     print "Maternal Consent: {}".format(self.maternal_consent1)
     self.registered_subject1 = RegisteredSubject.objects.get(
         subject_identifier=self.maternal_consent1.subject_identifier)
     self.post_elibility1 = MaternalEligibilityPostFactory(
         maternal_consent=self.maternal_consent1,
         registered_subject=self.registered_subject1)
     self.maternal_consent2 = MaternalConsentFactory(study_site=study_site)
     print "Maternal Consent: {}".format(self.maternal_consent2)
     self.registered_subject2 = RegisteredSubject.objects.get(
         subject_identifier=self.maternal_consent2.subject_identifier)
     self.post_elibility2 = MaternalEligibilityPostFactory(
         maternal_consent=self.maternal_consent2,
         registered_subject=self.registered_subject2)
     self.maternal_consent3 = MaternalConsentFactory(study_site=study_site)
     print "Maternal Consent: {}".format(self.maternal_consent3)
     self.registered_subject3 = RegisteredSubject.objects.get(
         subject_identifier=self.maternal_consent3.subject_identifier)
     self.post_elibility3 = MaternalEligibilityPostFactory(
         maternal_consent=self.maternal_consent3,
         registered_subject=self.registered_subject3)
Esempio n. 3
0
 def setUp(self):
     try:
         site_lab_profiles.register(BcppSubjectProfile())
     except AlreadyRegisteredLabProfile:
         pass
     BcppAppConfiguration()
     site_lab_tracker.autodiscover()
     BcppSubjectVisitSchedule().build()
 def setUp(self):
     try:
         site_lab_profiles.register(ClinicSubjectProfile())
     except AlreadyRegisteredLabProfile:
         pass
     site_mappers.autodiscover()
     BcppAppConfiguration().prepare()
     site_lab_tracker.autodiscover()
     BcppClinicVisitSchedule().build()
 def startup(self):
     try:
         site_lab_profiles.register(TestLabProfile())
     except AlreadyRegisteredLabProfile:
         pass
     TestAppConfiguration()
     site_lab_tracker.autodiscover()
     TestVisitSchedule().build()
     self.study_site = StudySite.objects.all()[0]
 def setUp(self):
     try:
         site_lab_profiles.register(MpepuMaternalProfile())
     except AlreadyRegistered:
         pass
     MpepuAppConfiguration().prepare()
     site_lab_tracker.autodiscover()
     site_visit_schedules.autodiscover()
     site_visit_schedules.build_all()
 def startup(self):
     from bhp066.apps.bcpp.app_configuration.classes import BcppAppConfiguration
     try:
         site_lab_profiles.register(BcppSubjectProfile())
     except AlreadyRegisteredLabProfile:
         pass
     BcppAppConfiguration()
     site_lab_tracker.autodiscover()
     BcppSubjectVisitSchedule().build()
Esempio n. 8
0
 def setUp(self):
     try:
         site_lab_profiles.register(BcppSubjectProfile())
     except AlreadyRegisteredLabProfile:
         pass
     site_mappers.autodiscover()
     BcppAppConfiguration.confirm_site_code_in_settings = False
     BcppAppConfiguration().prepare()
     site_lab_tracker.autodiscover()
     BcppSubjectVisitSchedule().build()
Esempio n. 9
0
    def setUp(self):
        site_mappers.autodiscover()
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        self.app_config = BcppAppConfiguration()
        self.app_config.prepare()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()
        site_rule_groups.autodiscover()
        self.mapper = site_mappers.get_current_mapper()
#         self.app_config.prep_survey_for_tests()

        self.community = 'test_community'
        plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable')

        survey = Survey.objects.all().order_by('datetime_start')[0]

        self.study_site = StudySite.objects.get(site_code='01')

        self.household_structure = HouseholdStructure.objects.get(household__plot=plot, survey=survey)
        RepresentativeEligibilityFactory(household_structure=self.household_structure)

        self.male_dob = date.today() - relativedelta(years=25)
        self.male_age_in_years = 25
        self.male_first_name = 'ERIK'
        self.male_initials = "EW"

        self.household_member_male_T0 = HouseholdMemberFactory(
            household_structure=self.household_structure, gender='M',
            age_in_years=self.male_age_in_years, first_name=self.male_first_name,
            initials=self.male_initials
        )

        EnrollmentChecklistFactory(
            household_member=self.household_member_male_T0,
            gender='M',
            citizen='Yes',
            dob=self.male_dob,
            guardian='No',
            initials=self.household_member_male_T0.initials,
            part_time_resident='Yes'
        )

        self.subject_consent_male = SubjectConsentFactory(household_member=self.household_member_male_T0, study_site=self.study_site, gender='M', dob=self.male_dob, first_name=self.male_first_name, initials=self.male_initials)

        self.registered_subject_male = RegisteredSubject.objects.get(subject_identifier=self.subject_consent_male.subject_identifier)

        self.appointment_male_T0 = Appointment.objects.get(registered_subject=self.registered_subject_male, visit_definition__code='T0')

        self.subject_visit_male_T0 = SubjectVisitFactory(appointment=self.appointment_male_T0, household_member=self.household_member_male_T0)
        SubjectLocatorFactory(registered_subject=self.subject_visit_male_T0.appointment.registered_subject, subject_visit=self.subject_visit_male_T0)
        self.household_member_T1 = None
        self.update_call_list_class = UpdateCallList()
    def setUp(self):

        site_mappers.autodiscover()

        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        bcpp_app_configuration.prepare()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()
        site_rule_groups.autodiscover()

        self.household_structure = None
        self.registered_subject = None
        self.representative_eligibility = None
        self.study_site = None
        self.intervention = None

        self.community = site_mappers.get_current_mapper().map_area
        self.study_site = StudySite.objects.get(
            site_code=site_mappers.get_current_mapper().map_code)
        self.site_code = self.study_site
        self.intervention = site_mappers.get_current_mapper().intervention
        self.survey1 = Survey.objects.get(
            survey_name='BCPP Year 1')  # see app_configuration
        self.survey2 = Survey.objects.get(
            survey_name='BCPP Year 2')  # see app_configuration
        plot = PlotFactory(community=self.community,
                           household_count=1,
                           status='residential_habitable')
        household = Household.objects.get(plot=plot)
        self.create_baseline(household)

        self.data = {
            'household_member': self.household_member_male.id,
            'report_datetime': datetime.today(),
            'first_name': 'SETS',
            'initials': 'SA',
            'dob': datetime.today() + relativedelta(years=-20),
            'guardian': NO,
            'gender': MALE,
            'has_identity': YES,
            'identity': '317918515',
            'identity_type': 'OMANG',
            'citizen': YES,
            'part_time_resident': YES,
            'literacy': YES,
            'guardian': YES,
            'inability_to_participate': 'N/A',
            'hiv_status': 'NEG',
            'legal_marriage': 'N/A',
            'marriage_certificate': 'N/A'
        }
Esempio n. 11
0
    def setUp(self):
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        BcppAppConfiguration()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()

        self.survey1 = Survey.objects.get(
            survey_name='BCPP Year 1')  # see app_configuration
 def setUp(self):
     try:
         site_lab_profiles.register(HnsccSubjectProfile())
     except AlreadyRegistered:
         pass
     HnsccAppConfiguration().prepare()
     site_lab_tracker.autodiscover()
     site_visit_schedules.autodiscover()
     site_visit_schedules.build_all()
     print "assert appointment is created for enrolled subject"
     self.enrolled_subject = EnrolledSubjectFactory()
     self.appointment = Appointment.objects.get(registered_subject=self.enrolled_subject.registered_subject)
Esempio n. 13
0
 def setUp(self):
     try:
         site_lab_profiles.register(MpepuInfantProfile())
     except AlreadyRegistered:
         pass
     MpepuAppConfiguration().prepare()
     site_lab_tracker.autodiscover()
     site_visit_schedules.autodiscover()
     site_visit_schedules.build_all()
     study_site = StudySiteFactory()
     content_type_map = ContentTypeMap.objects.get(
         model='maternalconsent', app_label='mpepu_maternal')
     consent_catalogue = ConsentCatalogueFactory(
         content_type_map=content_type_map)
     consent_catalogue.add_for_app = 'mpepu_infant'
     consent_catalogue.save()
     delivery_days_ago = 20
     self.delivery_datetime = datetime.today() - timedelta(
         days=delivery_days_ago - 3)
     print "Consent a mother"
     self.maternal_consent = MaternalConsentFactory(
         study_site=study_site,
         consent_datetime=datetime.today() -
         timedelta(days=delivery_days_ago))
     print "Consent: {}".format(self.maternal_consent)
     m_registered_subject = RegisteredSubject.objects.get(
         subject_identifier=self.maternal_consent.subject_identifier)
     print 'check if mother is eligible'
     self.maternal_eligibility = MaternalEligibilityPostFactory(
         maternal_consent=self.maternal_consent,
         registered_subject=m_registered_subject,
         registration_datetime=datetime.today() -
         timedelta(days=delivery_days_ago))
     print 'get the 2000M visit'
     self.m_appointment = Appointment.objects.get(
         registered_subject=m_registered_subject,
         visit_definition__code='2000M')
     print 'create a maternal visit for the 2000M visit'
     self.maternal_visit = MaternalVisitFactory(
         appointment=self.m_appointment,
         report_datetime=datetime.today() -
         timedelta(days=delivery_days_ago))
     print 'create a maternal_lab_del registering 2 of 2 infants'
     self.maternal_lab_del = MaternalLabDelFactory(
         maternal_visit=self.maternal_visit,
         live_infants=1,
         live_infants_to_register=1,
         delivery_datetime=self.delivery_datetime,
         has_ga='Yes',
         ga=37,
     )
     print 'maternal lab del: {}'.format(self.maternal_lab_del)
Esempio n. 14
0
    def setUp(self):
#         content_type_map_helper = ContentTypeMapHelper()
#         content_type_map_helper.populate()
#         content_type_map_helper.sync()

        try:
            site_lab_profiles.register(TestLabProfile())
        except AlreadyRegisteredLabProfile:
            pass
        TestAppConfiguration()

        self.test_visit_schedule = TestVisitSchedule()
        self.test_visit_schedule.build()
Esempio n. 15
0
 def setUp(self):
     try:
         site_lab_profiles.register(MpepuInfantProfile())
     except AlreadyRegistered:
         pass
     MpepuAppConfiguration().prepare()
     site_lab_tracker.autodiscover()
     site_visit_schedules.autodiscover()
     site_visit_schedules.build_all()
     self.study_site = StudySiteFactory()
     content_type_map = ContentTypeMap.objects.get(model='maternalconsent', app_label='mpepu_maternal')
     consent_catalogue = ConsentCatalogueFactory(content_type_map=content_type_map)
     consent_catalogue.add_for_app = 'mpepu_infant'
     consent_catalogue.save()
    def setUp(self):

        try:
            site_lab_profiles.register(TestLabProfile())
        except AlreadyRegisteredLabProfile:
            pass
        TestAppConfiguration()
        site_lab_tracker.autodiscover()
        TestVisitSchedule().build()

        class TestRuleGroupConsent(RuleGroup):
            test_rule = RequisitionRule(
                logic=Logic(
                    predicate=(('may_store_samples', 'equals', NO)),
                    consequence='not_required',
                    alternative='new'),
                target_model=['testrequisition'],
                target_requisition_panels=['research blood draw'])

            class Meta:
                app_label = 'testing'
                source_fk = (RegisteredSubject, 'registered_subject')
                source_model = TestConsentWithMixin
        site_rule_groups.register(TestRuleGroupConsent)

        class TestRuleGroupSched(RuleGroup):
            test_rule = RequisitionRule(
                logic=Logic(
                    predicate=(('f1', 'equals', NO)),
                    consequence='not_required',
                    alternative='new'),
                target_model=['testrequisition'],
                target_requisition_panels=['microtube', 'viral load'])

            class Meta:
                app_label = 'testing'
                source_fk = (TestVisit, 'test_visit')
                source_model = TestScheduledModel1
        site_rule_groups.register(TestRuleGroupSched)

        self.test_rule_group_sched_cls = TestRuleGroupSched

        self.test_visit_factory = TestVisitFactory

        self.visit_definition = VisitDefinition.objects.get(code='1000')

        self.test_consent = TestConsentWithMixinFactory(gender='M', study_site=StudySite.objects.all()[0], may_store_samples=YES)

        self.registered_subject = RegisteredSubject.objects.get(subject_identifier=self.test_consent.subject_identifier)
        self.appointment = Appointment.objects.get(registered_subject=self.registered_subject)
Esempio n. 17
0
 def setUp(self):
     self.test_visit_factory = TestVisitFactory
     try:
         site_lab_profiles.register(TestLabProfile())
     except AlreadyRegisteredLabProfile:
         pass
     TestAppConfiguration()
     site_lab_tracker.autodiscover()
     TestVisitSchedule().rebuild()
     study_site = StudySite.objects.all()[0]
     subject_consent = TestConsentWithMixinFactory(study_site=study_site)
     self.registered_subject = RegisteredSubject.objects.get(subject_identifier=subject_consent.subject_identifier)
     self.consent = TestConsentWithMixin.objects.get(registered_subject=self.registered_subject)
     appointment = Appointment.objects.get(registered_subject=self.registered_subject)
     self.test_visit = TestVisitFactory(appointment=appointment)
Esempio n. 18
0
    def setUp(self):
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        BcppAppConfiguration()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()

        self.survey1 = Survey.objects.get(
            survey_name='BCPP Year 1')  # see app_configuration
        plot = PlotFactory(community='test_community3',
                           household_count=1,
                           status='residential_habitable')
        household = Household.objects.get(plot=plot)
        self.household_structure = HouseholdStructure.objects.get(
            household=household, survey=self.survey1)
    def setUp(self):
        try:
            site_lab_profiles.register(TestLabProfile())
        except AlreadyRegisteredLabProfile:
            pass
        site_lab_tracker.autodiscover()

        TestAppConfiguration()

        TestVisitSchedule().rebuild()

        self.test_visit_factory = TestVisitFactory
        self.study_site = StudySite.objects.all()[0]
        self.visit_definition = VisitDefinition.objects.get(code='1000')
        self.test_consent = TestConsentWithMixinFactory(gender='M', study_site=self.study_site)
        self.registered_subject = RegisteredSubject.objects.get(subject_identifier=self.test_consent.subject_identifier)
        self.appointment_count = VisitDefinition.objects.all().count()
        self.appointment = Appointment.objects.get(registered_subject=self.registered_subject, visit_definition__code='1000')
    def startup(self):

        site_mappers.autodiscover()

        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        bcpp_app_configuration.prepare()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()
        site_rule_groups.autodiscover()
        #         site_visit_schedules.autodiscover()
        #         site_visit_schedules.build_all()

        self.household_structure = None
        self.registered_subject = None
        self.representative_eligibility = None
        self.study_site = None
        self.intervention = None
        #         try:
        #             site_lab_profiles.register(BcppSubjectProfile())
        #         except AlreadyRegisteredLabProfile:
        #             pass
        #         BcppAppConfiguration()
        #         site_lab_tracker.autodiscover()
        #         BcppSubjectVisitSchedule().build()

        self.community = site_mappers.get_current_mapper().map_area
        self.study_site = StudySite.objects.get(
            site_code=site_mappers.get_current_mapper().map_code)
        self.site_code = self.study_site
        self.intervention = site_mappers.get_current_mapper().intervention
        self.survey1 = Survey.objects.get(
            survey_name='BCPP Year 1')  # see app_configuration
        self.survey2 = Survey.objects.get(
            survey_name='BCPP Year 2')  # see app_configuration
        plot = PlotFactory(community=self.community,
                           household_count=1,
                           status='residential_habitable')
        household = Household.objects.get(plot=plot)
        self.create_baseline(household)
        self.create_annual(household)
Esempio n. 21
0
    def setUp(self):

        from bhp066.apps.bcpp.app_configuration.classes import BcppAppConfiguration

        self.household_structure = None
        self.registered_subject = None
        self.representative_eligibility = None
        self.study_site = None
        self.intervention = None

        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        site_mappers.autodiscover()
        # set current community manually (not from settings)
        site_mappers.current_community = 'test_community'
        BcppAppConfiguration.study_start_datetime = datetime.today(
        ) + relativedelta(days=-2)
        BcppAppConfiguration.study_end_datetime = datetime.today(
        ) + relativedelta(days=45)
        bcpp_app_configuration = BcppAppConfiguration()
        # bypass any check of site_code and community against settings
        bcpp_app_configuration.confirm_site_code_in_settings = False
        bcpp_app_configuration.confirm_community_in_settings = False
        bcpp_app_configuration.prepare()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()

        self.survey1 = Survey.objects.get(
            survey_name='BCPP Year 1')  # see app_configuration
        plot = PlotFactory(community='test_community',
                           household_count=1,
                           status='residential_habitable')
        household = Household.objects.get(plot=plot)
        self.household_structure = HouseholdStructure.objects.get(
            household=household, survey=self.survey1)
        self.representative_eligibility = RepresentativeEligibilityFactory(
            household_structure=self.household_structure)
        self.study_site = StudySite.objects.get(
            site_code=site_mappers.get_current_mapper().map_code)
        self.intervention = site_mappers.get_current_mapper().intervention
Esempio n. 22
0
    def setUp(self):
        self.household_member = None
        self.subject_consent = None
        self.registered_subject = None
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        bcpp_app_configuration.prepare()
        site_lab_tracker.autodiscover()
        site_visit_schedules.autodiscover()
        site_visit_schedules.build_all()

        self.survey = Survey.objects.current_survey()
        self.plot = PlotFactory(community='oodi', household_count=1, status='bcpp_clinic')
        self.household = HouseholdFactory(plot=self.plot)
        self.household_structure = HouseholdStructure.objects.get(household=self.household, survey=self.survey)
        self.study_site = StudySite.objects.get(site_code=site_mappers.get_current_mapper().map_code)
        self.intervention = site_mappers.get_current_mapper().intervention
        site_mappers.get_current_mapper().verify_survey_dates()
Esempio n. 23
0
    def setUp(self):
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        BcppAppConfiguration()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()
        self.survey1 = Survey.objects.get(survey_name='BCPP Year 1')  # see app_configuration
        site_mappers.autodiscover()
        mapper = site_mappers.get(site_mappers.get_as_list()[0])
        self.community = mapper().get_map_area()
        gps_degrees_s, gps_minutes_s, gps_degrees_e, gps_minutes_e = mapper().test_location
        self.plot = PlotFactory(community=self.community,
                                gps_degrees_s=gps_degrees_s,
                                gps_minutes_s=gps_minutes_s,
                                gps_degrees_e=gps_degrees_e,
                                gps_minutes_e=gps_minutes_e,
                                household_count=2,
                                status='residential_habitable')
        self.household1 = Household.objects.filter(plot=self.plot).order_by('created')[0]
        self.household_structure1 = HouseholdStructure.objects.get(household=self.household1, survey=self.survey1)
        self.household2 = Household.objects.filter(plot=self.plot).order_by('created')[1]
        self.household_member1 = HouseholdMemberFactory(household_structure=self.household_structure1,
                                                        age_in_years=26,
                                                        present_today='Yes',
                                                        member_status='RESEARCH')
        self.household_member2 = HouseholdMemberFactory(household_structure=self.household_structure1, age_in_years=36, present_today='Yes')
        self.household_member3 = HouseholdMemberFactory(household_structure=self.household_structure1, age_in_years=12, present_today='Yes')
        self.household_member4 = HouseholdMemberFactory(household_structure=self.household_structure1, age_in_years=99, present_today='Yes')
        self.dashboard_type = 'household'
        self.dashboard_model = 'household'
        self.dashboard_id = self.household1.pk

        self.household_member1.eligible_subject = True

        self.subject_consent = SubjectConsentFactory(
            household_member=self.household_member1,
            first_name=self.household_member1.first_name,
            initials=self.household_member1.initials,
            registered_subject=self.household_member1.registered_subject)
Esempio n. 24
0
 def setUp(self):
     try:
         site_lab_profiles.register(MpepuMaternalProfile())
     except AlreadyRegistered:
         pass
     MpepuAppConfiguration().prepare()
     site_lab_tracker.autodiscover()
     site_visit_schedules.autodiscover()
     site_visit_schedules.build_all()
     study_site = StudySiteFactory()
     print "Consenting a mother"
     MaternalConsent.objects.all().delete()
     self.maternal_consent = MaternalConsentFactory(study_site=study_site)
     print "Maternal Consent: {}".format(self.maternal_consent)
     print 'get maternal registered subject'
     self.registered_subject = RegisteredSubject.objects.get(
         subject_identifier=self.maternal_consent.subject_identifier)
     print "check if mother is eligible"
     self.post_elibility = MaternalEligibilityPostFactory(
         maternal_consent=self.maternal_consent,
         registered_subject=self.maternal_consent.registered_subject)
Esempio n. 25
0
    def setUp(self):
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        BcppAppConfiguration().prepare()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()
        site_rule_groups.autodiscover()
        self.study_site = StudySite.objects.get(site_code='01')
        self.survey = Survey.objects.all()[0]
        plot = PlotFactory(community=self.community,
                           household_count=1,
                           status='residential_habitable')
        survey = Survey.objects.all().order_by('datetime_start')[0]
        next_survey = Survey.objects.all().order_by('datetime_start')[1]

        self.household_structure = HouseholdStructure.objects.get(
            household__plot=plot, survey=survey)
        self.household_structure_y2 = HouseholdStructure.objects.get(
            household__plot=plot, survey=next_survey)
        RepresentativeEligibilityFactory(
            household_structure=self.household_structure)
        RepresentativeEligibilityFactory(
            household_structure=self.household_structure_y2)

        self.female_dob = date(1989, 10, 10)
        self.female_age_in_years = relativedelta(date.today(),
                                                 self.female_dob).years
        self.female_first_name = 'ERIKA'
        self.female_last_name = 'WAXON'
        self.female_initials = "EW"

        self.household_member_female_T0 = HouseholdMemberFactory(
            household_structure=self.household_structure,
            gender='F',
            age_in_years=self.female_age_in_years,
            first_name=self.female_first_name,
            initials=self.female_initials)
        self.household_member_female_T0.member_status = 'BHS_SCREEN'
        self.household_member_female_T0.save()
        self.assertEqual(self.household_member_female_T0.member_status,
                         'BHS_SCREEN')
        self.enrollment_checklist_female = EnrollmentChecklistFactory(
            household_member=self.household_member_female_T0,
            gender='F',
            citizen='Yes',
            dob=self.female_dob,
            guardian='No',
            initials=self.household_member_female_T0.initials,
            part_time_resident='Yes')
        self.subject_consent_female = SubjectConsentFactory(
            household_member=self.household_member_female_T0,
            study_site=self.study_site,
            gender='F',
            dob=self.female_dob,
            first_name=self.female_first_name,
            last_name=self.female_last_name,
            initials=self.female_initials)
        self.registered_subject_female = RegisteredSubject.objects.get(
            subject_identifier=self.subject_consent_female.subject_identifier)

        enumeration_helper = EnumerationHelper(
            self.household_structure.household, survey, next_survey)
        self.household_member_female = enumeration_helper.create_member_on_target(
            self.household_member_female_T0)
        self.appointment_female = Appointment.objects.get(
            registered_subject=self.registered_subject_female,
            visit_definition__code='T1')
        self.appointment_female_T0 = Appointment.objects.get(
            registered_subject=self.registered_subject_female,
            visit_definition__code='T0')
        self.subject_visit_female_T0 = SubjectVisitFactory(
            appointment=self.appointment_female_T0,
            household_member=self.household_member_female_T0)
        self.subject_visit_female = SubjectVisitFactory(
            appointment=self.appointment_female,
            household_member=self.household_member_female)
        self.locator_female_T0 = SubjectLocatorFactory(
            subject_visit=self.subject_visit_female_T0,
            registered_subject=self.registered_subject_female)
        self.residency_mobility_female_T0 = ResidencyMobilityFactory(
            subject_visit=self.subject_visit_female_T0)
        microtube_panel = Panel.objects.get(name='Microtube')
        aliquot_type = AliquotType.objects.all()[0]
        self.subject_requisition_T0 = SubjectRequisitionFactory(
            subject_visit=self.subject_visit_female_T0,
            panel=microtube_panel,
            aliquot_type=aliquot_type)
        self.hiv_result_today_T0 = HivResultFactory(
            subject_visit=self.subject_visit_female_T0, hiv_result=NEG)
Esempio n. 26
0
 def setUp(self):
     try:
         site_lab_profiles.register(BcppSubjectProfile())
     except AlreadyRegisteredLabProfile:
         pass
Esempio n. 27
0
    def setUp(self):
        site_mappers.autodiscover()

        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        mapper = site_mappers._registry_by_code.get('01')
        mapper.survey_dates = {
            'bcpp-year-1':
            SurveyDatesTuple(name='bhs',
                             start_date=date.today() +
                             relativedelta(years=-1) + relativedelta(days=-89),
                             full_enrollment_date=date.today() +
                             relativedelta(years=-1) + relativedelta(days=60),
                             end_date=date.today() + relativedelta(years=-1) +
                             relativedelta(days=89),
                             smc_start_date=date.today() +
                             relativedelta(years=-1) + relativedelta(days=89)),
            'bcpp-year-2':
            SurveyDatesTuple(name='t1',
                             start_date=date.today() + relativedelta(years=0) +
                             relativedelta(days=-89),
                             full_enrollment_date=date.today() +
                             relativedelta(years=0) + relativedelta(days=60),
                             end_date=date.today() + relativedelta(years=0) +
                             relativedelta(days=89),
                             smc_start_date=date.today() +
                             relativedelta(years=0) + relativedelta(days=89)),
        }

        bcpp_app_configuration.survey_setup = {
            'bcpp-year-1': {
                'survey_name':
                'BCPP Year 1',
                'survey_slug':
                'bcpp-year-1',
                'datetime_start':
                datetime.today() + relativedelta(years=-1) +
                relativedelta(days=-30),
                'datetime_end':
                datetime.today() + relativedelta(years=-1) +
                relativedelta(days=30)
            },
            'bcpp-year-2': {
                'survey_name': 'BCPP Year 2',
                'survey_slug': 'bcpp-year-2',
                'datetime_start': datetime.today() + relativedelta(days=-90),
                'datetime_end': datetime.today() + relativedelta(days=90)
            },
            'bcpp-year-3': {
                'survey_name':
                'BCPP Year 3',
                'survey_slug':
                'bcpp-year-3',
                'datetime_start':
                datetime.today() + relativedelta(years=1) +
                relativedelta(days=-30),
                'datetime_end':
                datetime.today() + relativedelta(years=1) +
                relativedelta(days=30)
            },
        }

        bcpp_app_configuration.prepare()
        site_lab_tracker.autodiscover()
        site_visit_schedules.autodiscover()
        site_visit_schedules.build_all()

        self.survey2 = Survey.objects.current_survey()
        self.survey1 = Survey.objects.previous_survey()
        plot = PlotFactory(community='test_community',
                           household_count=1,
                           status='residential_habitable')
        self.household = Household.objects.get(plot=plot)
        self.source_household_structure = HouseholdStructure.objects.get(
            household=self.household, survey=self.survey1)
        self.target_household_structure = HouseholdStructure.objects.get(
            household=self.household, survey=self.survey2)
        self.representative_eligibility = RepresentativeEligibilityFactory(
            household_structure=self.source_household_structure)
        self.study_site = StudySite.objects.get(
            site_code=site_mappers.get_current_mapper().map_code)
        self.intervention = site_mappers.get_current_mapper().intervention

        # add members to source
        HouseholdMemberFactory(
            household_structure=self.source_household_structure)
        HouseholdMemberFactory(
            household_structure=self.source_household_structure)
        HouseholdMemberFactory(
            household_structure=self.source_household_structure)
        HouseholdMemberFactory(
            household_structure=self.source_household_structure)
        HouseholdMemberFactory(
            household_structure=self.source_household_structure)
    def setUp(self):
        site_mappers.autodiscover()
        from bhp066.apps.bcpp_subject.visit_schedule import BcppSubjectVisitSchedule
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        self.app_config = BcppAppConfiguration()
        self.app_config.prepare()
        self.app_config.prep_survey_for_tests()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()
        site_rule_groups.autodiscover()

        plot = PlotFactory(community=self.community,
                           household_count=1,
                           status='residential_habitable')

        self.survey_bhs = Survey.objects.get(survey_slug='bcpp-year-1')

        self.survey_ahs = Survey.objects.get(survey_slug='bcpp-year-2')

        self.study_site = StudySite.objects.get(site_code='01')

        self.household_structure_bhs = HouseholdStructure.objects.get(
            household__plot=plot, survey=self.survey_bhs)
        self.household_structure_ahs = HouseholdStructure.objects.get(
            household__plot=plot, survey=self.survey_ahs)
        self.create_household_log_entry(self.household_structure_bhs)

        RepresentativeEligibilityFactory(
            household_structure=self.household_structure_bhs)

        self.male_dob = date.today() - relativedelta(years=25)
        self.male_age_in_years = 25
        self.male_first_name = 'ERIK'
        self.male_last_name = 'HIEWAI'
        self.male_initials = "EW"

        self.household_member_male_T0 = HouseholdMemberFactory(
            household_structure=self.household_structure_bhs,
            gender='M',
            age_in_years=self.male_age_in_years,
            first_name=self.male_first_name,
            initials=self.male_initials)
        HeadHouseholdEligibilityFactory(
            household_member=self.household_member_male_T0,
            household_structure=self.household_structure_bhs)
        self.household_member_male_T0.eligible_hoh = True
        self.household_member_male_T0.save()

        HouseholdInfoFactory(household_member=self.household_member_male_T0,
                             household_structure=self.household_structure_bhs,
                             registered_subject=self.household_member_male_T0.
                             registered_subject)

        self.enrollment = EnrollmentChecklistFactory(
            household_member=self.household_member_male_T0,
            gender='M',
            citizen='Yes',
            dob=self.male_dob,
            guardian='No',
            initials=self.household_member_male_T0.initials,
            part_time_resident='Yes')
        self.subject_consent_male = SubjectConsentFactory(
            household_member=self.household_member_male_T0,
            confirm_identity='101119811',
            identity='101119811',
            study_site=self.study_site,
            gender='M',
            dob=self.male_dob,
            first_name=self.male_first_name,
            initials=self.male_initials)
        self.data = {
            'last_name':
            'WIZZY',
            'is_minor':
            'No',
            'witness_name':
            None,
            'is_literate':
            'Yes',
            'subject_type':
            'subject',
            'consent_copy':
            'Yes',
            'is_verified':
            False,
            'consent_signature':
            None,
            'first_name':
            'ERIK',
            'dm_comment':
            None,
            'is_dob_estimated':
            None,
            'verified_by':
            None,
            'user_modified':
            u'',
            'is_signed':
            True,
            'is_verified_datetime':
            None,
            'subject_identifier_aka':
            None,
            'version':
            u'4',
            'citizen':
            'Yes',
            'legal_marriage':
            u'N/A',
            'assessment_score':
            'Yes',
            'is_incarcerated':
            'No',
            'consent_reviewed':
            'Yes',
            'study_questions':
            'Yes',
            'sid':
            None,
            'study_site_id':
            self.study_site.id,
            'may_store_samples':
            YES,
            'consent_version_recent':
            None,
            'subject_identifier':
            self.household_member_male_T0.registered_subject.
            subject_identifier,
            'subject_identifier_as_pk':
            self.household_member_male_T0.registered_subject.id,
            'community':
            u'test_community',
            'using':
            'default',
            'marriage_certificate_no':
            None,
            'identity':
            '317918515',
            'confirm_identity':
            '317918515',
            'registered_subject_id':
            self.household_member_male_T0.registered_subject.id,
            'identity_type':
            'OMANG',
            'language':
            u'not specified',
            'guardian_name':
            None,
            'gender':
            'M',
            'household_member':
            self.household_member_male_T0.id,
            'marriage_certificate':
            u'N/A',
            'dob':
            self.male_dob,
            'study_site':
            self.study_site.id,
            'initials':
            'EW',
            'language':
            'en',
            'is_dob_estimated':
            '-',
            'consent_signature':
            YES,
            'consent_datetime':
            datetime.today(),
            'version':
            1
        }
Esempio n. 29
0
class BaseBcppProfile(LabProfile):
    aliquot_model = Aliquot
    aliquot_type_model = AliquotType
    profile_model = AliquotProfile
    profile_item_model = AliquotProfileItem
    receive_model = Receive
    panel_model = Panel


class BcppSubjectProfile(BaseBcppProfile):
    requisition_model = SubjectRequisition
    name = SubjectRequisition._meta.object_name


site_lab_profiles.register(BcppSubjectProfile)


class BaseClinicProfile(LabProfile):
    aliquot_model = Aliquot
    aliquot_type_model = AliquotType
    profile_model = AliquotProfile
    profile_item_model = AliquotProfileItem
    receive_model = Receive
    panel_model = Panel


class ClinicSubjectProfile(BaseClinicProfile):
    requisition_model = ClinicRequisition
    name = ClinicRequisition._meta.object_name
from edc.lab.lab_profile.classes import site_lab_profiles

from edc.lab.lab_profile.classes import LabProfile

from .models import (Aliquot, AliquotType, Receive, HnsccRequisition,
                     AliquotProfile, AliquotProfileItem, Panel)


class BaseHnsccProfile(LabProfile):
    aliquot_model = Aliquot
    aliquot_type_model = AliquotType
    profile_model = AliquotProfile
    profile_item_model = AliquotProfileItem
    receive_model = Receive
    panel_model = Panel


class HnsccSubjectProfile(BaseHnsccProfile):
    requisition_model = HnsccRequisition
    name = HnsccRequisition._meta.object_name
site_lab_profiles.register(HnsccSubjectProfile)
Esempio n. 31
0
    def test_p1(self):
        try:
            site_lab_profiles.register(MpepuMaternalProfile())
        except AlreadyRegistered:
            pass
        MpepuAppConfiguration().prepare()
        site_lab_tracker.autodiscover()
        StudySpecificFactory()
        study_site = StudySiteFactory()
        MpepuAppConfiguration().prepare()
        content_type_map_helper = ContentTypeMapHelper()
        content_type_map_helper.populate()
        content_type_map_helper.sync()
        print 'setup the consent catalogue for app {0}'.format(self.app_label)
        content_type_map = ContentTypeMap.objects.get(
            content_type__model=self.subject_consent._meta.object_name.lower())
        consent_catalogue = ConsentCatalogueFactory(
            name=self.consent_catalogue_name,
            content_type_map=content_type_map)
        consent_catalogue.add_for_app = self.app_label
        consent_catalogue.save()

        print 'setup bhp_visit'
        content_type_map = ContentTypeMap.objects.get(
            content_type__model=MaternalEligibilityAnte._meta.object_name.
            lower())
        membership_form = MembershipFormFactory(
            content_type_map=content_type_map)
        schedule_group = ScheduleGroupFactory(
            membership_form=membership_form,
            group_name='Maternal Ante Natal Reg',
            grouping_key='ELIGIBILITY')
        visit_definition = VisitDefinitionFactory(
            code='1000M',
            title='Maternal Ante Natal Registration',
            grouping='maternal')
        visit_definition.schedule_group.add(schedule_group)

        content_type_map = ContentTypeMap.objects.get(
            content_type__model=MaternalEligibilityPost._meta.object_name.
            lower())
        membership_form = MembershipFormFactory(
            content_type_map=content_type_map)
        schedule_group = ScheduleGroupFactory(
            membership_form=membership_form,
            group_name='Maternal Post Partum Reg',
            grouping_key='ELIGIBILITY')
        visit_definition = VisitDefinitionFactory(
            code='2000M',
            title='Maternal Post Natal Registration',
            grouping='maternal')
        visit_definition.schedule_group.add(schedule_group)

        content_type_map = ContentTypeMap.objects.get(
            content_type__model=MaternalPostReg._meta.object_name.lower())
        membership_form = MembershipFormFactory(
            content_type_map=content_type_map)
        schedule_group = ScheduleGroupFactory(
            membership_form=membership_form,
            group_name='Post Partum Follow-up')
        visit_definition = VisitDefinitionFactory(code='2010M',
                                                  title='Infant Randomization',
                                                  grouping='maternal')
        visit_definition.schedule_group.add(schedule_group)

        print 'consent a mother (2 days ago)'
        maternal_consent = MaternalConsentFactory(
            study_site=study_site,
            consent_datetime=datetime.today() - timedelta(days=2))
        print maternal_consent.subject_identifier
        print 'get maternal registered subject'
        registered_subject = RegisteredSubject.objects.get(
            subject_identifier=maternal_consent.subject_identifier)
        print 'take mother off study (1 day ago)'
        maternal_off_study = MaternalOffStudyFactory(
            registered_subject=registered_subject,
            offstudy_date=date.today() - timedelta(days=1))
        print 'Off study: {0}'.format(maternal_off_study)
        print 'confirm cannot add a registration form today'
        self.assertRaises(SubjectOffStudyError,
                          MaternalEligibilityAnteFactory,
                          maternal_consent=maternal_consent,
                          registered_subject=registered_subject,
                          registration_datetime=datetime.today() -
                          timedelta(days=0))

        print 'consent a mother (3 days ago)'
        maternal_consent = MaternalConsentFactory(
            study_site=study_site,
            consent_datetime=datetime.today() - timedelta(days=3))
        print maternal_consent.subject_identifier
        print 'get maternal registered subject'
        registered_subject = RegisteredSubject.objects.get(
            subject_identifier=maternal_consent.subject_identifier)
        print 'add a registration form 2 days ago'
        maternal_eligibility = MaternalEligibilityAnteFactory(
            maternal_consent=maternal_consent,
            registered_subject=registered_subject,
            registration_datetime=datetime.today() - timedelta(days=2))
        print 'confirm appointments'
        appointment = Appointment.objects.get(
            registered_subject=registered_subject,
            visit_definition__code='1000M')
        print 'Appointment {0} {1}'.format(appointment,
                                           appointment.appt_datetime)
        print 'take mother off study (1 day ago)'
        maternal_off_study = MaternalOffStudyFactory(
            registered_subject=registered_subject,
            offstudy_date=appointment.appt_datetime - timedelta(days=1))
        print 'Off study: {0} offstudy_datetime={1}'.format(
            maternal_off_study,
            date.today() - timedelta(days=1))
        print 'confirm appointments deleted'
        self.assertEquals(
            Appointment.objects.filter(registered_subject=registered_subject,
                                       visit_definition__code='1000M').count(),
            0)

        print 'consent a mother (4 days ago)'
        maternal_consent = MaternalConsentFactory(
            study_site=study_site,
            consent_datetime=datetime.today() - timedelta(days=4))
        print maternal_consent.subject_identifier
        print 'get maternal registered subject'
        registered_subject = RegisteredSubject.objects.get(
            subject_identifier=maternal_consent.subject_identifier)
        print 'add a registration form 3 days ago'
        maternal_eligibility = MaternalEligibilityAnteFactory(
            maternal_consent=maternal_consent,
            registered_subject=registered_subject,
            registration_datetime=datetime.today() - timedelta(days=3))
        print 'confirm appointments'
        appointment = Appointment.objects.get(
            registered_subject=registered_subject,
            visit_definition__code='1000M')
        print 'add a visit form 2 days ago'
        appointment = Appointment.objects.get(
            registered_subject=registered_subject,
            visit_definition__code='1000M')
        maternal_visit = MaternalVisitFactory(
            appointment=appointment,
            report_datetime=datetime.today() - timedelta(days=2))
        print 'confirm cannot take mother off study (3 day ago)'
        self.assertRaises(SubjectOffStudyDateError,
                          MaternalOffStudyFactory,
                          registered_subject=registered_subject,
                          offstudy_date=date.today() - timedelta(days=3))
        print 'confirm can take mother off study (2 day ago)'
        maternal_off_study = MaternalOffStudyFactory(
            registered_subject=registered_subject,
            offstudy_date=date.today() - timedelta(days=2))
        print 'Off study: {0}'.format(maternal_off_study)
        print 'confirm appointments not deleted'
        self.assertEquals(
            Appointment.objects.filter(registered_subject=registered_subject,
                                       visit_definition__code='1000M').count(),
            1)
    def setUp(self):
        try:
            site_lab_profiles.register(MpepuInfantProfile())
        except AlreadyRegistered:
            pass
        MpepuAppConfiguration().prepare()
        site_lab_tracker.autodiscover()
        site_visit_schedules.autodiscover()
        site_visit_schedules.build_all()
        admin.autodiscover()
        study_site = StudySiteFactory()
        content_type_map = ContentTypeMap.objects.get(
            model='maternalconsent', app_label='mpepu_maternal')
        consent_catalogue = ConsentCatalogueFactory(
            content_type_map=content_type_map)
        consent_catalogue.add_for_app = 'mpepu_infant'
        consent_catalogue.save()

        self.delivery_days_ago = 20
        self.delivery_datetime = datetime.today() - timedelta(
            days=self.delivery_days_ago - 3)
        print "Consent a mother"
        self.maternal_consent = MaternalConsentFactory(
            study_site=study_site,
            consent_datetime=datetime.today() -
            timedelta(days=self.delivery_days_ago))
        print "Consent: {}".format(self.maternal_consent)
        registered_subject = RegisteredSubject.objects.get(
            subject_identifier=self.maternal_consent.subject_identifier)
        print 'check if mother is eligible'
        maternal_eligibility = MaternalEligibilityPostFactory(
            maternal_consent=self.maternal_consent,
            registered_subject=registered_subject,
            registration_datetime=datetime.today() -
            timedelta(days=self.delivery_days_ago))
        print 'get the 2000M visit'
        appointment = Appointment.objects.get(
            registered_subject=registered_subject,
            visit_definition__code='2000M')
        print 'create a maternal visit for the 2000M visit'
        maternal_visit = MaternalVisitFactory(
            appointment=appointment,
            report_datetime=datetime.today() -
            timedelta(days=self.delivery_days_ago))
        print 'create a maternal_lab_del registering 2 of 2 infants'
        self.maternal_lab_del = MaternalLabDelFactory(
            maternal_visit=maternal_visit,
            live_infants=2,
            live_infants_to_register=2,
            delivery_datetime=self.delivery_datetime,
            has_ga='Yes',
            ga=37,
        )
        print 'maternal lab del: {}'.format(self.maternal_lab_del)
        print 'get registered subject of the first infant'
        self.registered_subject1 = RegisteredSubject.objects.filter(
            relative_identifier=self.maternal_consent.subject_identifier
        ).order_by('subject_identifier')[0]
        print 'first registered subject {}'.format(self.registered_subject1)
        self.infant_birth1 = InfantBirthFactory(
            registered_subject=self.registered_subject1,
            maternal_lab_del=self.maternal_lab_del,
            dob=self.delivery_datetime.date())
        print 'first infant birth {}'.format(self.infant_birth1)
        appointment1 = Appointment.objects.get(
            registered_subject=self.registered_subject1,
            visit_definition__code='2000')
        infant_visit1 = InfantVisitFactory(appointment=appointment1,
                                           report_datetime=datetime.today(),
                                           reason='scheduled',
                                           study_status='onstudy notrando')
        print 'get registered subject of the second infant'
        self.registered_subject2 = RegisteredSubject.objects.filter(
            relative_identifier=self.maternal_consent.subject_identifier
        ).order_by('subject_identifier')[1]
        print 'second registered subject {}'.format(self.registered_subject2)
        self.infant_birth2 = InfantBirthFactory(
            registered_subject=self.registered_subject2,
            maternal_lab_del=self.maternal_lab_del,
            dob=self.delivery_datetime.date())
        print 'second infant birth {}'.format(self.infant_birth2)
        appointment2 = Appointment.objects.get(
            registered_subject=self.registered_subject2,
            visit_definition__code='2000')
        infant_visit2 = InfantVisitFactory(appointment=appointment2,
                                           report_datetime=datetime.today(),
                                           reason='scheduled',
                                           study_status='onstudy notrando')
Esempio n. 33
0
from edc.lab.lab_profile.classes import site_lab_profiles

from edc.lab.lab_profile.classes import LabProfile

from .models import Aliquot, AliquotType, Receive, MaternalRequisition, InfantRequisition, AliquotProfile, AliquotProfileItem, Panel


class BaseMpepuProfile(LabProfile):
    aliquot_model = Aliquot
    aliquot_type_model = AliquotType
    panel_model = Panel
    receive_model = Receive
    profile_model = AliquotProfile
    profile_item_model = AliquotProfileItem


class MpepuMaternalProfile(BaseMpepuProfile):
    requisition_model = MaternalRequisition
    name = MaternalRequisition._meta.object_name


site_lab_profiles.register(MpepuMaternalProfile)


class MpepuInfantProfile(BaseMpepuProfile):
    requisition_model = InfantRequisition
    name = InfantRequisition._meta.object_name


site_lab_profiles.register(MpepuInfantProfile)
Esempio n. 34
0
    def setUp(self):
        try:
            site_lab_profiles.register(MpepuInfantProfile())
        except AlreadyRegistered:
            pass
        MpepuAppConfiguration().prepare()
        site_lab_tracker.autodiscover()
        site_visit_schedules.autodiscover()
        site_visit_schedules.build_all()
        study_site = StudySiteFactory()
        content_type_map = ContentTypeMap.objects.get(
            model='maternalconsent', app_label='mpepu_maternal')
        consent_catalogue = ConsentCatalogueFactory(
            content_type_map=content_type_map)
        consent_catalogue.add_for_app = 'mpepu_infant'
        consent_catalogue.save()

        delivery_days_ago = 20
        delivery_datetime = datetime.today() - timedelta(
            days=delivery_days_ago - 3)
        #         print "Consent a mother"
        self.maternal_consent = MaternalConsentFactory(
            study_site=study_site,
            consent_datetime=datetime.today() -
            timedelta(days=delivery_days_ago))
        #         print "Consent: {}".format(self.maternal_consent)
        self.registered_subject = RegisteredSubject.objects.get(
            subject_identifier=self.maternal_consent.subject_identifier)
        #         print 'check if mother is eligible'
        self.maternal_eligibility = MaternalEligibilityPostFactory(
            maternal_consent=self.maternal_consent,
            registered_subject=self.registered_subject,
            registration_datetime=datetime.today() -
            timedelta(days=delivery_days_ago))
        #         print 'get the 2000M visit'
        self.m_appointment = Appointment.objects.get(
            registered_subject=self.registered_subject,
            visit_definition__code='2000M')
        #         print 'create a maternal visit for the 2000M visit'
        self.maternal_visit = MaternalVisitFactory(
            appointment=self.m_appointment,
            report_datetime=datetime.today() -
            timedelta(days=delivery_days_ago))
        #         print 'create a maternal_lab_del registering 2 of 2 infants'
        self.maternal_lab_del = MaternalLabDelFactory(
            maternal_visit=self.maternal_visit,
            live_infants=1,
            live_infants_to_register=1,
            delivery_datetime=delivery_datetime,
            has_ga='Yes',
            ga=37,
        )
        #         print 'maternal lab del: {}'.format(self.maternal_lab_del)
        #         print 'get registered subject of the infant'
        self.registered_subject = RegisteredSubject.objects.filter(
            relative_identifier=self.maternal_consent.subject_identifier
        ).order_by('subject_identifier')[0]
        print 'infant registered subject {}'.format(self.registered_subject)
        self.infant_birth = InfantBirthFactory(
            registered_subject=self.registered_subject,
            maternal_lab_del=self.maternal_lab_del,
            dob=delivery_datetime.date())
        #         print 'infant birth {}'.format(self.infant_birth)
        self.appointment = Appointment.objects.get(
            registered_subject=self.registered_subject,
            visit_definition__code='2000')
        self.infant_visit = InfantVisitFactory(
            appointment=self.appointment,
            report_datetime=datetime.today(),
            reason='scheduled',
            study_status='onstudy notrando')
        self.infant_eligibility = InfantEligibilityFactory(
            infant_birth=self.infant_birth,
            registered_subject=self.registered_subject)
        #         print 'infant eligibility {}'.format(self.infant_eligibility)
        self.app_2010 = Appointment.objects.get(
            registered_subject=self.registered_subject,
            visit_definition__code='2010')
        self.visit_2010 = InfantVisitFactory(
            appointment=self.app_2010,
            report_datetime=datetime.today(),
            reason='scheduled',
            study_status='onstudy rando today')
        self.app_2020 = Appointment.objects.get(
            registered_subject=self.registered_subject,
            visit_definition__code='2020')
        self.visit_2020 = InfantVisitFactory(
            appointment=self.app_2020,
            report_datetime=datetime.today(),
            reason='scheduled',
            study_status='onstudy rando ondrug')
        self.app_2030 = Appointment.objects.get(
            registered_subject=self.registered_subject,
            visit_definition__code='2030')
        self.visit_2030 = InfantVisitFactory(
            appointment=self.app_2030,
            report_datetime=datetime.today(),
            reason='scheduled',
            study_status='onstudy rando ondrug')
Esempio n. 35
0
    def setUp(self):
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        BcppAppConfiguration().prepare()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()
        site_rule_groups.autodiscover()

        plot = PlotFactory(community=self.community,
                           household_count=1,
                           status='residential_habitable')

        survey = Survey.objects.all().order_by('datetime_start')[0]

        self.study_site = StudySite.objects.get(site_code='14')

        self.household_structure = HouseholdStructure.objects.get(
            household__plot=plot, survey=survey)
        RepresentativeEligibilityFactory(
            household_structure=self.household_structure)
        HouseholdMemberFactory(household_structure=self.household_structure)

        self.male_dob = date.today() - relativedelta(years=25)
        self.male_age_in_years = 25
        self.male_first_name = 'ERIK'
        self.male_initials = "EW"
        female_dob = date.today() - relativedelta(years=35)
        female_age_in_years = 35
        female_first_name = 'ERIKA'
        female_initials = "EW"

        self.household_member_female_T0 = HouseholdMemberFactory(
            household_structure=self.household_structure,
            gender='F',
            age_in_years=female_age_in_years,
            first_name=female_first_name,
            initials=female_initials)
        self.household_member_male_T0 = HouseholdMemberFactory(
            household_structure=self.household_structure,
            gender='M',
            age_in_years=self.male_age_in_years,
            first_name=self.male_first_name,
            initials=self.male_initials)

        EnrollmentChecklistFactory(
            household_member=self.household_member_male_T0,
            gender='M',
            citizen='Yes',
            dob=self.male_dob,
            guardian='No',
            initials=self.household_member_male_T0.initials,
            part_time_resident='Yes')

        EnrollmentChecklistFactory(
            household_member=self.household_member_female_T0,
            gender='F',
            citizen='Yes',
            dob=female_dob,
            guardian='No',
            initials=self.household_member_female_T0.initials,
            part_time_resident='Yes')

        subject_consent_female = SubjectConsentFactory(
            household_member=self.household_member_female_T0,
            study_site=self.study_site,
            gender='F',
            dob=female_dob,
            first_name=female_first_name,
            initials=female_initials)
        self.subject_consent_male = SubjectConsentFactory(
            household_member=self.household_member_male_T0,
            study_site=self.study_site,
            gender='M',
            dob=self.male_dob,
            first_name=self.male_first_name,
            initials=self.male_initials)

        self.registered_subject_male = RegisteredSubject.objects.get(
            subject_identifier=self.subject_consent_male.subject_identifier)
        self.registered_subject_female = RegisteredSubject.objects.get(
            subject_identifier=subject_consent_female.subject_identifier)

        self.appointment_male_T0 = Appointment.objects.get(
            registered_subject=self.registered_subject_male,
            visit_definition__code='T0')
        self.appointment_female_T0 = Appointment.objects.get(
            registered_subject=self.registered_subject_female,
            visit_definition__code='T0')

        self.subject_visit_male_T0 = SubjectVisitFactory(
            appointment=self.appointment_male_T0,
            household_member=self.household_member_male_T0)
        self.subject_visit_female_T0 = SubjectVisitFactory(
            appointment=self.appointment_female_T0,
            household_member=self.household_member_female_T0)

        Quota.objects.create(app_label='bcpp_subject',
                             model_name='PimaVl',
                             target=1,
                             expires_datetime=timezone.now() +
                             timedelta(days=1))
        self.assertEqual(1, Quota.objects.all().count())
    def setUp(self):
        site_mappers.autodiscover()
        from bhp066.apps.bcpp_subject.visit_schedule import BcppSubjectVisitSchedule
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        self.app_config = BcppAppConfiguration()
        self.app_config.prepare()
        self.app_config.prep_survey_for_tests()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()
        site_rule_groups.autodiscover()

        plot = PlotFactory(community=self.community,
                           household_count=1,
                           status='residential_habitable')

        self.survey_bhs = Survey.objects.get(survey_slug='bcpp-year-1')

        self.survey_ahs = Survey.objects.get(survey_slug='bcpp-year-2')

        self.study_site = StudySite.objects.get(site_code='01')

        self.household_structure_bhs = HouseholdStructure.objects.get(
            household__plot=plot, survey=self.survey_bhs)
        self.household_structure_ahs = HouseholdStructure.objects.get(
            household__plot=plot, survey=self.survey_ahs)
        self.create_household_log_entry(self.household_structure_bhs)

        RepresentativeEligibilityFactory(
            household_structure=self.household_structure_bhs)

        self.male_dob = date.today() - relativedelta(years=25)
        self.male_age_in_years = 25
        self.male_first_name = 'ERIK'
        self.male_last_name = 'HIEWAI'
        self.male_initials = "EW"

        self.household_member_male_T0 = HouseholdMemberFactory(
            household_structure=self.household_structure_bhs,
            gender='M',
            age_in_years=self.male_age_in_years,
            first_name=self.male_first_name,
            initials=self.male_initials)
        HeadHouseholdEligibilityFactory(
            household_member=self.household_member_male_T0,
            household_structure=self.household_structure_bhs)
        self.household_member_male_T0.eligible_hoh = True
        self.household_member_male_T0.save()

        HouseholdInfoFactory(household_member=self.household_member_male_T0,
                             household_structure=self.household_structure_bhs,
                             registered_subject=self.household_member_male_T0.
                             registered_subject)

        self.enrollment = EnrollmentChecklistFactory(
            household_member=self.household_member_male_T0,
            gender='M',
            citizen='Yes',
            dob=self.male_dob,
            guardian='No',
            initials=self.household_member_male_T0.initials,
            part_time_resident='Yes')
        self.subject_consent_male = SubjectConsentFactory(
            household_member=self.household_member_male_T0,
            confirm_identity='101119811',
            identity='101119811',
            study_site=self.study_site,
            gender='M',
            dob=self.male_dob,
            first_name=self.male_first_name,
            initials=self.male_initials)
        self.appointment = Appointment.objects.get(
            registered_subject=self.household_member_male_T0.
            registered_subject,
            visit_definition__code='T0')

        self.subject_visit = SubjectVisitFactory(
            household_member=self.household_member_male_T0,
            appointment=self.appointment)

        self.registered_subject = RegisteredSubject.objects.get(
            subject_identifier=self.subject_consent_male.subject_identifier)

        self.sexual_data = {
            'subject_visit': self.subject_visit.id,
            'alcohol_sex': 'Myself',
            'report_datetime': datetime.today(),
            'condom': NO,
            'more_sex': NO,
            'ever_sex': YES,
            'first_sex': 20,
            'last_year_partners': None,
            'lifetime_sex_partners': 1,
            'more_sex': None,
            'subject_visit_id': None,
            'user_modified': u'',
        }
        self.data = {
            'subject_visit': self.subject_visit.id,
            'concurrent': NO,
            'first_partner_live': None,
            'first_condom_freq': u'Sometimes',
            'first_disclose': u'Yes',
            'first_exchange': u'30-39',
            'first_first_sex': u'Years',
            'first_first_sex_calc': 3L,
            'first_haart': None,
            'first_partner_arm': None,
            'first_partner_cp': u'No',
            'first_partner_hiv': u'not_sure',
            'first_relationship': u'Long-term partner',
            'first_sex_current': u'Yes',
            'first_sex_freq': None,
            'goods_exchange': u'No',
            'partner_hiv_test': u'not_sure',
            'past_year_sex_freq': u'About once a month',
            'report_datetime': datetime.today(),
            'sex_partner_community': u'N/A',
            'subject_visit_id': None,
            'third_last_sex': u'Days',
            'third_last_sex_calc': 7L,
            'user_modified': u''
        }
    def setUp(self):
        try:
            site_lab_profiles.register(BcppSubjectProfile())
        except AlreadyRegisteredLabProfile:
            pass
        BcppAppConfiguration().prepare()
        site_lab_tracker.autodiscover()
        BcppSubjectVisitSchedule().build()
        site_rule_groups.autodiscover()

        plot = PlotFactory(community=self.community,
                           household_count=1,
                           status='residential_habitable')

        survey_T0 = Survey.objects.get(survey_slug='bcpp-year-1')
        survey_T1 = Survey.objects.get(survey_slug='bcpp-year-2')
        survey_T2 = Survey.objects.get(survey_slug='bcpp-year-3')

        self.study_site = StudySite.objects.get(site_code='01')

        self.household_structure = HouseholdStructure.objects.get(
            household__plot=plot, survey=survey_T0)
        self.household_structure_y2 = HouseholdStructure.objects.get(
            household__plot=plot, survey=survey_T1)
        self.household_structure_y3 = HouseholdStructure.objects.get(
            household__plot=plot, survey=survey_T2)
        RepresentativeEligibilityFactory(
            household_structure=self.household_structure)
        RepresentativeEligibilityFactory(
            household_structure=self.household_structure_y2)
        RepresentativeEligibilityFactory(
            household_structure=self.household_structure_y3)
        HouseholdMemberFactory(household_structure=self.household_structure)
        #HouseholdMemberFactory(household_structure=self.household_structure)
        #HouseholdMemberFactory(household_structure=self.household_structure)

        male_dob = date.today() - relativedelta(years=25)
        male_age_in_years = 25
        male_first_name = 'ERIK'
        male_initials = "EW"
        female_dob = date.today() - relativedelta(years=35)
        female_age_in_years = 35
        female_first_name = 'ERIKA'
        female_initials = "EW"
        registered_subject = RegisteredSubjectFactory(
            registration_identifier='123456467')
        self.household_member_female_T0 = HouseholdMemberFactory(
            household_structure=self.household_structure,
            gender='F',
            age_in_years=female_age_in_years,
            first_name=female_first_name,
            initials=female_initials,
            registered_subject=registered_subject)
        registered_subject = RegisteredSubjectFactory(
            registration_identifier='123456468')
        self.household_member_male_T0 = HouseholdMemberFactory(
            household_structure=self.household_structure,
            gender='M',
            age_in_years=male_age_in_years,
            first_name=male_first_name,
            initials=male_initials,
            registered_subject=registered_subject)
        self.household_member_female_T0.member_status = 'BHS_SCREEN'
        self.household_member_male_T0.member_status = 'BHS_SCREEN'
        self.household_member_female_T0.save()
        self.household_member_male_T0.save()
        EnrollmentChecklistFactory(
            household_member=self.household_member_female_T0,
            gender='F',
            citizen=YES,
            dob=female_dob,
            guardian=NO,
            initials=self.household_member_female_T0.initials,
            part_time_resident=YES)
        EnrollmentChecklistFactory(
            household_member=self.household_member_male_T0,
            gender='M',
            citizen=YES,
            dob=male_dob,
            guardian=NO,
            initials=self.household_member_male_T0.initials,
            part_time_resident=YES)
        subject_consent_female = SubjectConsentFactory(
            household_member=self.household_member_female_T0,
            confirm_identity='101129811',
            identity='101129811',
            study_site=self.study_site,
            gender='F',
            dob=female_dob,
            first_name=female_first_name,
            initials=female_initials)
        subject_consent_male = SubjectConsentFactory(
            household_member=self.household_member_male_T0,
            confirm_identity='101119811',
            identity='101119811',
            study_site=self.study_site,
            gender='M',
            dob=male_dob,
            first_name=male_first_name,
            initials=male_initials)
        self.assertEqual(
            HouseholdStructure.objects.filter(
                household=self.household_structure.household,
                survey=survey_T0,
                enumerated=True,
                enrolled=True).count(), 1)

        enumeration_helper_T2 = EnumerationHelper(
            self.household_structure.household, survey_T0, survey_T1)
        enumeration_helper_T2.add_members_from_survey()
        self.household_member_female = HouseholdMember.objects.get(
            internal_identifier=self.household_member_female_T0.
            internal_identifier,
            household_structure__survey=survey_T1)
        self.household_member_male = HouseholdMember.objects.get(
            internal_identifier=self.household_member_male_T0.
            internal_identifier,
            household_structure__survey=survey_T1)
        self.assertEqual(
            HouseholdStructure.objects.filter(
                household=self.household_structure_y2.household,
                survey=survey_T1,
                enumerated=True,
                enrolled=True).count(), 1)

        enumeration_helper_T3 = EnumerationHelper(
            self.household_structure.household, survey_T1, survey_T2)
        enumeration_helper_T3.add_members_from_survey()
        self.household_member_female_T2 = HouseholdMember.objects.get(
            internal_identifier=self.household_member_female.
            internal_identifier,
            household_structure__survey=survey_T2)
        self.household_member_male_T2 = HouseholdMember.objects.get(
            internal_identifier=self.household_member_male.internal_identifier,
            household_structure__survey=survey_T2)
        self.assertEqual(
            HouseholdStructure.objects.filter(
                household=self.household_structure_y3.household,
                survey=survey_T2,
                enumerated=True,
                enrolled=True).count(), 1)

        self.registered_subject_female = RegisteredSubject.objects.get(
            subject_identifier=subject_consent_female.subject_identifier)
        self.registered_subject_male = RegisteredSubject.objects.get(
            subject_identifier=subject_consent_male.subject_identifier)
        self.appointment_female = Appointment.objects.get(
            registered_subject=self.registered_subject_female,
            visit_definition__code='T1')
        self.appointment_female_T0 = Appointment.objects.get(
            registered_subject=self.registered_subject_female,
            visit_definition__code='T0')
        self.appointment_female_T2 = Appointment.objects.get(
            registered_subject=self.registered_subject_female,
            visit_definition__code='T2')
        self.subject_visit_female_T0 = SubjectVisitFactory(
            appointment=self.appointment_female_T0,
            household_member=self.household_member_female_T0)
        self.subject_visit_female = SubjectVisitFactory(
            appointment=self.appointment_female,
            household_member=self.household_member_female)
        self.subject_visit_female_T2 = SubjectVisitFactory(
            appointment=self.appointment_female_T2,
            household_member=self.household_member_female_T2)
        self.appointment_male = Appointment.objects.get(
            registered_subject=self.registered_subject_male,
            visit_definition__code='T1')
        self.appointment_male_T0 = Appointment.objects.get(
            registered_subject=self.registered_subject_male,
            visit_definition__code='T0')
        self.appointment_male_T2 = Appointment.objects.get(
            registered_subject=self.registered_subject_male,
            visit_definition__code='T2')
        self.subject_visit_male_T0 = SubjectVisitFactory(
            appointment=self.appointment_male_T0,
            household_member=self.household_member_male_T0)
        self.subject_visit_male = SubjectVisitFactory(
            appointment=self.appointment_male,
            household_member=self.household_member_male)
        self.subject_visit_male_T2 = SubjectVisitFactory(
            appointment=self.appointment_male_T2,
            household_member=self.household_member_male_T2)
Esempio n. 38
0
    def setUp(self):

        try:
            site_lab_profiles.register(TestLabProfile())
        except AlreadyRegisteredLabProfile:
            pass
        TestAppConfiguration()
        site_lab_tracker.autodiscover()
        TestVisitSchedule().build()

        # a test rule group where the source model is RegisteredSubject
        # the rules in this rule group will be only evaluated when the visit instance
        # is created or saved. Note source_fk is None.
        class TestRuleGroupRs(RuleGroup):
            test_rule = ScheduledDataRule(
                logic=Logic(
                    predicate=(('gender', 'equals', 'M')),
                    consequence='not_required',
                    alternative='new'),
                target_model=['testscheduledmodel1'])

            class Meta:
                app_label = 'testing'
                source_fk = None
                source_model = RegisteredSubject
        site_rule_groups.register(TestRuleGroupRs)

        # a test rule group where the source model is a scheduled model.
        # a scheduled model has a FK to the visit instance (source_fk).
        # the rules in this rule group will be evaluated when the source instance
        # is created or saved.
        class TestRuleGroupSched(RuleGroup):
            test_rule = ScheduledDataRule(
                logic=Logic(
                    predicate=(('f1', 'equals', NO)),
                    consequence='not_required',
                    alternative='new'),
                target_model=['testscheduledmodel2'])

            class Meta:
                app_label = 'testing'
                source_fk = (TestVisit, 'test_visit')
                source_model = TestScheduledModel1
        site_rule_groups.register(TestRuleGroupSched)

        # a test rule group where the source model is a consent or membership model.
        # these models have a FK to registered subject (source_fk).
        # the rules in this rule group will only evaluated when the visit instance
        # is created or saved.
        class TestRuleGroupConsent(RuleGroup):
            test_rule = ScheduledDataRule(
                logic=Logic(
                    predicate=(('may_store_samples', 'equals', NO)),
                    consequence='not_required',
                    alternative='new'),
                target_model=['testscheduledmodel3'])

            class Meta:
                app_label = 'testing'
                source_fk = (RegisteredSubject, 'registered_subject')
                source_model = TestConsentWithMixin
        site_rule_groups.register(TestRuleGroupConsent)

        class TestRuleGroupConsentFunc(RuleGroup):
            test_rule = ScheduledDataRule(
                logic=Logic(
                    predicate=func_condition_true,
                    consequence='not_required',
                    alternative='new'),
                target_model=['testscheduledmodel3'])

            class Meta:
                app_label = 'testing'
                source_fk = (RegisteredSubject, 'registered_subject')
                source_model = TestConsentWithMixin
#         site_rule_groups.register(TestRuleGroupConsentFunc)

#         class TestRuleGroupConsentFunc2(RuleGroup):
#             test_rule = ScheduledDataRule(
#                 logic=Logic(
#                     predicate=func_condition_false,
#                     consequence='not_required',
#                     alternative='new'),
#                 target_model=['testscheduledmodel3'])
#
#             class Meta:
#                 app_label = 'testing'
#                 source_fk = (RegisteredSubject, 'registered_subject')
#                 source_model = TestConsentWithMixin
#         site_rule_groups.register(TestRuleGroupConsentFunc2)

        self.test_rule_group_rs_cls = TestRuleGroupRs
        self.test_rule_group_sched_cls = TestRuleGroupSched
        self.test_rule_group_consent_cls = TestRuleGroupConsent
        self.test_rule_group_consent_func_cls = TestRuleGroupConsentFunc
#         self.test_rule_group_consent_func2_cls = TestRuleGroupConsentFunc2

        self.test_visit_factory = TestVisitFactory

        self.visit_definition = VisitDefinition.objects.get(code='1000')

        self.test_consent = TestConsentWithMixinFactory(gender='M', study_site=StudySite.objects.all()[0], may_store_samples=NO)

        self.registered_subject = RegisteredSubject.objects.get(subject_identifier=self.test_consent.subject_identifier)
        self.appointment = Appointment.objects.get(registered_subject=self.registered_subject)
Esempio n. 39
0
from edc.lab.lab_profile.classes import site_lab_profiles

from edc.lab.lab_profile.classes import LabProfile

from .models import Aliquot, AliquotType, Receive, MaternalRequisition, InfantRequisition, AliquotProfile, AliquotProfileItem, Panel


class BaseEitProfile(LabProfile):
    aliquot_model = Aliquot
    aliquot_type_model = AliquotType
    panel_model = Panel
    receive_model = Receive
    profile_model = AliquotProfile
    profile_item_model = AliquotProfileItem


class EitMaternalProfile(BaseEitProfile):
    requisition_model = MaternalRequisition
    name = MaternalRequisition._meta.object_name
site_lab_profiles.register(EitMaternalProfile)


class EitInfantProfile(BaseEitProfile):
    requisition_model = InfantRequisition
    name = InfantRequisition._meta.object_name
site_lab_profiles.register(EitInfantProfile)