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
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)
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()
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()
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' }
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)
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)
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()
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)
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)
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)
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
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()
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)
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)
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)
def setUp(self): try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass
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 }
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)
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')
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)
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')
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)
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)
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)