class InfantCrfModel(CrfModelMixin, SyncModelMixin, OffStudyMixin, ExportTrackingFieldsMixin, BaseUuidModel): """ A model completed by the user on the infant's scheduled visit. """ off_study_model = ('td_infant', 'InfantOffStudy') infant_visit = models.OneToOneField(InfantVisit) history = SyncHistoricalRecords() objects = InfantVisitCrfManager() entry_meta_data_manager = CrfMetaDataManager(InfantVisit) def __str__(self): return "{}: {}".format( self.__class__._meta.model_name, self.infant_visit.appointment. registered_subject.subject_identifier) def get_consenting_subject_identifier(self): """Returns mother's identifier.""" return self.get_visit( ).appointment.registered_subject.relative_identifier class Meta: abstract = True
class MaternalCrfModel(SyncModelMixin, CrfModelMixin, ExportTrackingFieldsMixin, OffStudyMixin, RequiresConsentMixin, BaseUuidModel): """ Base model for all scheduled models (adds key to :class:`MaternalVisit`). """ consent_model = MaternalConsent visit_model_attr = 'maternal_visit' off_study_model = ('td_maternal', 'MaternalOffStudy') maternal_visit = models.OneToOneField(MaternalVisit) history = SyncHistoricalRecords() objects = VisitCrfModelManager() entry_meta_data_manager = CrfMetaDataManager(MaternalVisit) def __str__(self): return "{}: {}".format( self.__class__._meta.model_name, self.maternal_visit.appointment. registered_subject.subject_identifier) def natural_key(self): return self.maternal_visit.natural_key() class Meta: abstract = True
class InfantOffStudy(CrfModelMixin, SyncModelMixin, OffStudyModelMixin, ExportTrackingFieldsMixin, BaseUuidModel): """ A model completed by the user when the infant is taken off study. """ infant_visit = models.OneToOneField(InfantVisit) entry_meta_data_manager = CrfMetaDataManager(InfantVisit) history = AuditTrail() class Meta: app_label = 'mb_infant' verbose_name = "Infant Off-Study" verbose_name_plural = "Infant Off-Study"
class MaternalOffStudy(OffStudyModelMixin, CrfModelMixin, SyncModelMixin, RequiresConsentMixin, ExportTrackingFieldsMixin, BaseUuidModel): """ A model completed by the user on the visit when the mother is taken off-study. """ consent_model = MaternalConsent maternal_visit = models.OneToOneField(MaternalVisit) history = AuditTrail() entry_meta_data_manager = CrfMetaDataManager(MaternalVisit) class Meta: app_label = 'mb_maternal' verbose_name = "Maternal Off Study"
class MaternalCrfModel(CrfModelMixin, ExportTrackingFieldsMixin, SyncModelMixin, OffStudyMixin, RequiresConsentMixin, BaseUuidModel): """ Base model for all scheduled models (adds key to :class:`MaternalVisit`). """ consent_model = MaternalConsent off_study_model = ('mb_maternal', 'MaternalOffStudy') maternal_visit = models.OneToOneField(MaternalVisit) history = AuditTrail() entry_meta_data_manager = CrfMetaDataManager(MaternalVisit) class Meta: abstract = True
class MaternalDeathReport(CrfModelMixin, SyncModelMixin, DeathReportModelMixin, ExportTrackingFieldsMixin, BaseUuidModel): """ A model completed by the user on the mother's death. """ maternal_visit = models.OneToOneField(MaternalVisit) # history = AuditTrail() entry_meta_data_manager = CrfMetaDataManager(MaternalVisit) def natural_key(self): return self.maternal_visit.natural_key() natural_key.dependencies = ['td_maternal.maternalvisit'] class Meta: app_label = 'td_maternal' verbose_name = "Maternal Death Report"
class InfantCrfModel( CrfModelMixin, SyncModelMixin, OffStudyMixin, ExportTrackingFieldsMixin, BaseUuidModel): """ A model completed by the user on the infant's scheduled visit. """ off_study_model = ('mb_infant', 'InfantOffStudy') infant_visit = models.OneToOneField(InfantVisit) history = AuditTrail() entry_meta_data_manager = CrfMetaDataManager(InfantVisit) def get_consenting_subject_identifier(self): """Returns mother's identifier.""" return self.get_visit().appointment.registered_subject.relative_identifier class Meta: abstract = True