class InfantVisitAdmin(VisitAdminMixin, MembershipBaseModelAdmin): form = InfantVisitForm dashboard_type = INFANT requisition_model = InfantRequisition visit_attr = 'infant_visit' actions = [ export_as_csv_action( description="CSV Export of Infant Visits", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'appointment__registered_subject__subject_identifier', 'gender': 'appointment__registered_subject__gender', 'dob': 'appointment__registered_subject__dob', 'registered': 'appointment__registered_subject__registration_datetime', 'visit_datetime': 'infant_visit__report_datetime', 'visit_reason': 'infant_visit__reason', 'study_status': 'infant_visit__study_status', 'reason_missed': 'infant_visit__reason_missed', 'info_source': 'infant_visit__info_source', 'survival_status': 'infant_visit__survival_status', 'last_alive_date': 'infant_visit__last_alive_date', 'comments': 'infant_visit__comments' }), ) ]
class MaternalArvPostAdhAdmin(BaseMaternalModelAdmin): form = MaternalArvPostAdhForm fields = ("maternal_visit", "missed_doses", "missed_days", "missed_days_discnt", "comment") actions = [ export_as_csv_action( description="CSV Export of Maternal ARVs Post: Adherence", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'maternal_visit__appointment__registered_subject__subject_identifier', 'gender': 'maternal_visit__appointment__registered_subject__gender', 'dob': 'maternal_visit__appointment__registered_subject__dob', 'registered': 'maternal_visit__appointment__registered_subject__registration_datetime' }), ) ]
class InfantFuNewMedItemsAdmin(BaseModelAdmin): form = InfantFuNewMedItemsForm search_fields = [ 'infant_fu_med__infant_visit__appointment__registered_subject__subject_identifier', 'infant_fu_med__infant_visit__appointment__registered_subject__initials', ] actions = [ export_as_csv_action( description="CSV Export of Followup New Medications with meds list", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'infant_fu_med__infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_fu_med__infant_visit__appointment__registered_subject__gender', 'dob': 'infant_fu_med__infant_visit__appointment__registered_subject__dob', 'new_medications': 'infant_fu_med__new_medications', }), ) ]
class InfantOffStudyAdmin(BaseModelAdmin): form = InfantOffStudyForm dashboard_type = INFANT visit_model_name = 'infantvisit' fields = ( 'infant_visit', 'report_datetime', 'offstudy_date', 'reason', 'reason_other', 'comment', ) list_display = ( 'infant_visit', 'offstudy_date', 'reason') actions = [ export_as_csv_action( description="CSV Export of Infant Off Study", fields=[], delimiter=',', exclude=['created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified'], extra_fields=OrderedDict( {'subject_identifier': 'infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_visit__appointment__registered_subject__gender', 'dob': 'infant_visit__appointment__registered_subject__dob', }), )]
class MaternalBreastHealthAdmin(BaseMaternalModelAdmin): form = MaternalBreastHealthForm radio_fields = { "breast_feeding": admin.VERTICAL, "has_mastitis": admin.VERTICAL, "mastitis": admin.VERTICAL, "has_lesions": admin.VERTICAL, "lesions": admin.VERTICAL, "advised_stop_bf": admin.VERTICAL, } actions = [ export_as_csv_action( description="CSV Export of Maternal Breast Health", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'maternal_visit__appointment__registered_subject__subject_identifier', 'gender': 'maternal_visit__appointment__registered_subject__gender', 'dob': 'maternal_visit__appointment__registered_subject__dob', 'registered': 'maternal_visit__appointment__registered_subject__registration_datetime' }), ) ]
class InfantFacialDefectAdmin(BaseInfantScheduleModelAdmin): form = InfantFacialDefectForm list_display = ('congenital_anomalies', ) radio_fields = { 'facial_defect': admin.VERTICAL, 'abnormality_status': admin.VERTICAL } search_fields = [ 'congenital_anomalies__infant_visit__appointment__registered_subject__subject_identifier', 'congenital_anomalies__infant_visit__appointment__registered_subject__initials', ] actions = [ export_as_csv_action( description="CSV Export of Infant Facial Defect abnormality", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'congenital_anomalies__infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'congenital_anomalies__infant_visit__appointment__registered_subject__gender', 'dob': 'congenital_anomalies__infant_visit__appointment__registered_subject__dob', }), ) ]
class AntenatalEnrollmentLossAdmin(BaseModelAdmin): form = AntenatalEnrollmentLossForm fields = ('antenatal_enrollment', 'report_datetime', 'reason_unenrolled') list_display = ('antenatal_enrollment', 'report_datetime', 'reason_unenrolled') actions = [ export_as_csv_action( description="CSV Export of Antenatal Enrollment Loss", fields=[], delimiter=',', exclude=[ 'user_created', 'user_modified', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'antenatal_enrollment__registered_subject__subject_identifier', 'report_datetime': 'report_datetime', 'reason_unenrolled': 'reason_unenrolled', }), ) ] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "antenatal_enrollment": if request.GET.get('antenatal_enrollment'): kwargs["queryset"] = AntenatalEnrollmentLoss.objects.filter( antenatal_enrollment=request.GET.get( 'antenatal_enrollment')) return super(AntenatalEnrollmentLossAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class InfantFuDxAdmin(BaseInfantScheduleModelAdmin): inlines = [ InfantFuDxItemsInline, ] actions = [ export_as_csv_action( description="CSV Export of Infant Followup Diagnosis", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_visit__appointment__registered_subject__gender', 'dob': 'infant_visit__appointment__registered_subject__dob', }), ) ] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "infant_visit": kwargs["queryset"] = InfantVisit.objects.filter( id=request.GET.get('infant_visit')) return super(InfantFuDxAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class BaseMaternalModelAdmin(BaseModelAdmin): dashboard_type = 'maternal' visit_model_name = 'maternalvisit' def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "maternal_visit": if request.GET.get('maternal_visit'): kwargs["queryset"] = MaternalVisit.objects.filter(id=request.GET.get('maternal_visit')) return super(BaseMaternalModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) actions = [ export_as_csv_action( description="Export to CSV file", fields=[], delimiter=',', exclude=['maternal_visit', 'user_created', 'user_modified', 'hostname_created', 'hostname_modified'], extra_fields=OrderedDict( {'subject_identifier': 'maternal_visit__appointment__registered_subject__subject_identifier', 'gender': 'maternal_visit__appointment__registered_subject__gender', 'dob': 'maternal_visit__appointment__registered_subject__dob', 'screened': 'maternal_visit__appointment__registered_subject__screening_datetime', 'registered': 'maternal_visit__appointment__registered_subject__registration_datetime', 'visit_code': 'maternal_visit__appointment__visit_definition__code', 'visit_reason': 'maternal_visit__reason', 'visit_study_status': 'maternal_visit__study_status'}), )]
class InfantBirthDataAdmin(BaseInfantScheduleModelAdmin): form = InfantBirthDataForm fields = ("infant_visit", "weight_kg", "infant_length", "head_circumference", "apgar_score", "apgar_score_min_1", "apgar_score_min_5", "apgar_score_min_10", "congenital_anomalities", "other_birth_info") radio_fields = { "apgar_score": admin.VERTICAL, "congenital_anomalities": admin.VERTICAL } actions = [ export_as_csv_action( description="CSV Export of Infant Birth Record: Data", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_visit__appointment__registered_subject__gender', 'dob': 'infant_visit__appointment__registered_subject__dob', }), ) ]
class MaternalEligibilityLossAdmin(BaseModelAdmin): form = MaternalEligibilityLossForm fields = ('maternal_eligibility', 'report_datetime', 'reason_ineligible') actions = [ export_as_csv_action( description="CSV Export of Maternal Eligibility", fields=[], delimiter=',', exclude=[ 'user_created', 'user_modified', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'maternal_eligibility__registered_subject__subject_identifier', 'gender': 'maternal_eligibility__registered_subject__gender', 'dob': 'maternal_eligibility__registered_subject__dob', }), ) ] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "maternal_eligibility": if request.GET.get('maternal_eligibility'): kwargs["queryset"] = MaternalEligibility.objects.filter( id=request.GET.get('maternal_eligibility')) return super(MaternalEligibilityLossAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class MaternalArvAdmin(BaseMaternalModelAdmin): form = MaternalArvForm actions = [ export_as_csv_action( description= "CSV Export of Maternal ARV In This Preg: Pregnancy with list", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'maternal_arv_preg__maternal_visit__appointment__registered_subject__subject_identifier', 'gender': 'maternal_arv_preg__maternal_visit__appointment__registered_subject__gender', 'dob': 'maternal_arv_preg__maternal_visit__appointment__registered_subject__dob', 'took_arv': 'maternal_arv_preg__took_arv', 'is_interrupt': 'maternal_arv_preg__is_interrupt', 'interrupt': 'maternal_arv_preg__interrupt', 'interrupt_other': 'maternal_arv_preg__interrupt_other' }), ) ]
class InfantVisitAdmin(VisitAdminMixin, BaseModelAdmin): form = InfantVisitForm dashboard_type = INFANT requisition_model = InfantRequisition visit_attr = 'infant_visit' actions = [ export_as_csv_action( description="CSV Export of Infant Visit", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'appointment__registered_subject__subject_identifier', 'gender': 'appointment__registered_subject__gender', 'dob': 'appointment__registered_subject__dob', }), ) ]
class MaternalArvPregAdmin(BaseMaternalModelAdmin): form = MaternalArvPregForm inlines = [ MaternalArvInlineAdmin, ] list_display = ( 'maternal_visit', 'took_arv', ) list_filter = ('took_arv', ) radio_fields = { 'took_arv': admin.VERTICAL, 'is_interrupt': admin.VERTICAL, 'interrupt': admin.VERTICAL } actions = [ export_as_csv_action( description="CSV Export of Maternal ARV In This Preg: Pregnancy", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'maternal_arv_preg__maternal_visit__appointment__registered_subject__subject_identifier', 'gender': 'maternal_arv_preg__maternal_visit__appointment__registered_subject__gender', 'dob': 'maternal_arv_preg__maternal_visit__appointment__registered_subject__dob', }), ) ]
class InfantArvProphModAdmin(BaseInfantScheduleModelAdmin): form = InfantArvProphModForm list_filter = ('infant_arv_proph', ) actions = [ export_as_csv_action( description="CSV Export of Infant NVP or AZT Proph", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'infant_arv_proph__infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_arv_proph__infant_visit__appointment__registered_subject__gender', 'dob': 'infant_arv_proph__infant_visit__appointment__registered_subject__dob', 'prophylatic_nvp': 'infant_arv_proph__prophylatic_nvp', 'arv_status': 'infant_arv_proph__arv_status', }), ) ]
class MaternalEligibilityAdmin(BaseModelAdmin): form = MaternalEligibilityForm fields = ('eligibility_id', 'report_datetime', 'age_in_years', 'has_omang', 'currently_pregnant', 'recently_delivered') radio_fields = {'currently_pregnant': admin.VERTICAL, 'recently_delivered': admin.VERTICAL, 'has_omang': admin.VERTICAL} readonly_fields = ('eligibility_id',) list_display = ('report_datetime', 'age_in_years', 'is_eligible', 'is_consented', 'currently_pregnant', 'recently_delivered') list_filter = ('report_datetime', 'is_eligible', 'is_consented', 'currently_pregnant', 'recently_delivered') actions = [ export_as_csv_action( description="CSV Export of Maternal Eligibility", fields=[], delimiter=',', exclude=['user_created', 'user_modified', 'hostname_created', 'hostname_modified'], extra_fields=OrderedDict( {'subject_identifier': 'registered_subject__subject_identifier', 'gender': 'registered_subject__gender', 'dob': 'registered_subject__dob', }), )]
class InfantBirthArvAdmin(BaseInfantScheduleModelAdmin): list_display = ( 'infant_visit', 'azt_after_birth', 'azt_dose_date', 'azt_additional_dose', 'sdnvp_after_birth',) list_filter = ('azt_after_birth', 'azt_dose_date', 'azt_additional_dose', 'sdnvp_after_birth',) radio_fields = { 'azt_after_birth': admin.VERTICAL, 'azt_additional_dose': admin.VERTICAL, 'sdnvp_after_birth': admin.VERTICAL, 'azt_discharge_supply': admin.VERTICAL, } actions = [ export_as_csv_action( description="CSV Export of Infant Birth Record: ARV", fields=[], delimiter=',', exclude=['created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified'], extra_fields=OrderedDict( {'subject_identifier': 'infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_visit__appointment__registered_subject__gender', 'dob': 'infant_visit__appointment__registered_subject__dob', }), )] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "infant_visit": kwargs["queryset"] = InfantVisit.objects.filter(id=request.GET.get('infant_visit')) return super(InfantBirthArvAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class MaternalVisitAdmin(VisitAdminMixin, BaseModelAdmin): form = MaternalVisitForm visit_attr = 'maternal_visit' requisition_model = MaternalRequisition dashboard_type = 'maternal' def get_fieldsets(self, request, obj=None): fields = copy(self.fields) fields.remove('information_provider') fields.remove('information_provider_other') return [(None, {'fields': fields})] actions = [ export_as_csv_action( description="CSV Export of Maternal Visit", fields=[], delimiter=',', exclude=['created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified'], extra_fields=OrderedDict( {'subject_identifier': 'appointment__registered_subject__subject_identifier', 'gender': 'appointment__registered_subject__gender', 'dob': 'appointment__registered_subject__dob', }), )]
class SpecimenConsentAdmin(MembershipBaseModelAdmin): dashboard_type = 'maternal' form = SpecimenConsentForm search_fields = [ 'registered_subject__subject_identifier', 'registered_subject__initials' ] fields = ('registered_subject', 'consent_datetime', 'language', 'may_store_samples', 'is_literate', 'witness_name', 'purpose_explained', 'purpose_understood', 'offered_copy') radio_fields = { 'language': admin.VERTICAL, 'may_store_samples': admin.VERTICAL, 'is_literate': admin.VERTICAL, 'purpose_explained': admin.VERTICAL, 'purpose_understood': admin.VERTICAL, 'offered_copy': admin.VERTICAL, } list_display = ('subject_identifier', 'registered_subject', 'is_verified', 'is_verified_datetime', 'consent_datetime', 'created', 'modified', 'user_created', 'user_modified') list_filter = ('language', 'is_verified', 'is_literate') actions = [ flag_as_verified_against_paper, unflag_as_verified_against_paper, export_as_csv_action( description="CSV Export of Specimen Consent", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'registered_subject__subject_identifier', 'gender': 'registered_subject__gender', 'dob': 'registered_subject__dob', 'registered': 'registered_subject__registration_datetime' }), ) ] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "registered_subject": if request.GET.get('registered_subject'): kwargs["queryset"] = RegisteredSubject.objects.filter( id__exact=request.GET.get('registered_subject', 0)) return super(SpecimenConsentAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class InfantBirthAdmin(MembershipBaseModelAdmin): form = InfantBirthForm list_display = ( 'registered_subject', 'maternal_labour_del', 'report_datetime', 'first_name', 'initials', 'dob', 'gender', ) search_fields = [ 'registered_subject__subject_identifier', ] list_display = ('report_datetime', 'first_name', 'maternal_labour_del') list_filter = ('gender', ) radio_fields = {'gender': admin.VERTICAL} actions = [ export_as_csv_action( description="CSV Export of Infant Birth", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified', 'registered_subject', 'first_name', 'initials', 'dob' ], extra_fields=OrderedDict({ 'subject_identifier': 'registered_subject__subject_identifier', 'gender': 'registered_subject__gender', 'dob': 'registered_subject__dob', }), ) ] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "registered_subject": if request.GET.get('registered_subject'): kwargs["queryset"] = RegisteredSubject.objects.filter( id__exact=request.GET.get('registered_subject', 0)) if db_field.name == "maternal_labour_del": if request.GET.get('registered_subject'): maternal_subject_identifier = RegisteredSubject.objects.get( id=request.GET.get( 'registered_subject')).relative_identifier kwargs["queryset"] = MaternalLabourDel.objects.filter( registered_subject__subject_identifier= maternal_subject_identifier) return super(InfantBirthAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class MaternalArvPostModAdmin(BaseMaternalModelAdmin): form = MaternalArvPostMedForm list_display = ('maternal_arv_post', 'arv_code', 'dose_status', 'modification_date', 'modification_code') search_fields = [ 'maternal_arv_post__maternal_visit__appointment__registered_subject__subject_identifier', 'maternal_arv_post__maternal_visit__appointment__registered_subject__initials', ] radio_fields = { "arv_code": admin.VERTICAL, "dose_status": admin.VERTICAL, "modification_code": admin.VERTICAL, } actions = [ export_as_csv_action( description="CSV Export of Maternal ARV Post with list", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'maternal_arv_post__maternal_visit__appointment__registered_subject__subject_identifier', 'gender': 'maternal_arv_post__maternal_visit__appointment__registered_subject__gender', 'dob': 'maternal_arv_post__maternal_visit__appointment__registered_subject__dob', 'on_arv_since': 'maternal_arv_post__on_arv_since', 'on_arv_reason': 'maternal_arv_post__on_arv_reason', 'on_arv_reason_other': 'maternal_arv_post__on_arv_reason_other', 'arv_status': 'maternal_arv_post__arv_status', 'visit_code': 'maternal_arv_post__maternal_visit__appointment__visit_definition__code', 'visit_reason': 'maternal_arv_post__maternal_visit__reason', 'visit_study_status': 'maternal_arv_post__maternal_visit__study_status', }), ) ]
class MaternalPostPartumFuAdmin(BaseMaternalModelAdmin): form = MaternalPostPartumFuForm fields = ('maternal_visit', 'report_datetime', 'new_diagnoses', 'diagnoses', 'diagnoses_other', 'hospitalized', 'hospitalization_reason', 'hospitalization_reason_other', 'hospitalization_days', 'has_who_dx', 'who') list_display = ('maternal_visit', 'new_diagnoses', 'has_who_dx') list_filter = ('new_diagnoses', 'diagnoses', 'has_who_dx') radio_fields = { 'new_diagnoses': admin.VERTICAL, 'hospitalized': admin.VERTICAL, 'has_who_dx': admin.VERTICAL } filter_horizontal = ('who', 'diagnoses', 'hospitalization_reason') actions = [ export_as_csv_action( description="Export to CSV file", fields=[ 'hospitalized', 'new_diagnoses', 'hospitalization_reason_other', 'hospitalization_days', 'diagnoses_other', 'has_who_dx' ], delimiter=',', exclude=[ 'maternal_visit', 'user_created', 'user_modified', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'maternal_visit__appointment__registered_subject__subject_identifier', 'gender': 'maternal_visit__appointment__registered_subject__gender', 'dob': 'maternal_visit__appointment__registered_subject__dob', 'screened': 'maternal_visit__appointment__registered_subject__screening_datetime', 'registered': 'maternal_visit__appointment__registered_subject__registration_datetime', 'visit_code': 'maternal_visit__appointment__visit_definition__code', 'visit_reason': 'maternal_visit__reason', 'visit_study_status': 'maternal_visit__study_status' }), ) ]
class InfantBirthExamAdmin(BaseInfantScheduleModelAdmin): form = InfantBirthExamForm list_display = ( 'infant_visit', 'general_activity', 'physical_exam_result', 'resp_exam', ) list_filter = ( 'general_activity', 'abnormal_activity', 'physical_exam_result', ) radio_fields = { 'general_activity': admin.VERTICAL, 'physical_exam_result': admin.VERTICAL, 'heent_exam': admin.VERTICAL, 'resp_exam': admin.VERTICAL, 'cardiac_exam': admin.VERTICAL, 'abdominal_exam': admin.VERTICAL, 'skin_exam': admin.VERTICAL, 'neurologic_exam': admin.VERTICAL } actions = [ export_as_csv_action( description="CSV Export of Infant Birth Record: Exam", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_visit__appointment__registered_subject__gender', 'dob': 'infant_visit__appointment__registered_subject__dob', }), ) ]
class AntenataVisitMembershipAdmin(MembershipBaseModelAdmin): dashboard_type = 'maternal' form = AntenatalVisitMembershipForm search_fields = [ 'registered_subject__subject_identifier', 'registered_subject__initials' ] radio_fields = {'antenatal_visits': admin.VERTICAL} list_display = ('registered_subject', 'report_datetime', 'antenatal_visits') actions = [ export_as_csv_action( description="CSV Export of Antenatal Enrollment", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'registered_subject__subject_identifier', 'gender': 'registered_subject__gender', 'dob': 'registered_subject__dob', 'registered': 'registered_subject__registration_datetime' }), ) ] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "registered_subject": if request.GET.get('registered_subject'): kwargs["queryset"] = RegisteredSubject.objects.filter( id__exact=request.GET.get('registered_subject', 0)) return super(AntenataVisitMembershipAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class MaternalContactAdmin(BaseModelAdmin): form = MaternalContactForm fields = [ 'registered_subject', 'report_datetime', 'contact_type', 'contact_datetime', 'call_reason', 'call_reason_other', 'contact_success', 'contact_comment'] list_display = [ 'registered_subject', 'contact_type', 'contact_datetime', 'call_reason', 'contact_success'] list_filter = ['contact_type', 'call_reason', 'contact_success'] radio_fields = { 'contact_type': admin.VERTICAL, 'call_reason': admin.VERTICAL, 'contact_success': admin.VERTICAL } actions = [ export_as_csv_action( description="Export to CSV file", fields=[], delimiter=',', exclude=['user_created', 'user_modified', 'hostname_created', 'hostname_modified'], extra_fields=OrderedDict( {'subject_identifier': 'registered_subject__subject_identifier', }), )] search_fields = ['registered_subject__subject_identifier', 'contact_type', 'call_reason', 'contact_success'] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "registered_subject": kwargs["queryset"] = RegisteredSubject.objects.filter( id__exact=request.GET.get('registered_subject')) return super(MaternalContactAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class InfantFuAdmin(BaseInfantScheduleModelAdmin): form = InfantFuForm list_display = ( 'physical_assessment', 'diarrhea_illness', 'has_dx', 'was_hospitalized', 'days_hospitalized', ) radio_fields = { 'physical_assessment': admin.VERTICAL, 'diarrhea_illness': admin.VERTICAL, 'has_dx': admin.VERTICAL, 'was_hospitalized': admin.VERTICAL, } actions = [ export_as_csv_action( description="CSV Export of Infant Followup", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_visit__appointment__registered_subject__gender', 'dob': 'infant_visit__appointment__registered_subject__dob', }), ) ] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "infant_visit": kwargs["queryset"] = InfantVisit.objects.filter( id=request.GET.get('infant_visit')) return super(InfantFuAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class MaternalArvPostAdmin(BaseMaternalModelAdmin): form = MaternalArvPostForm fields = ("maternal_visit", "on_arv_since", "on_arv_reason", "on_arv_reason_other", "arv_status") radio_fields = { "on_arv_since": admin.VERTICAL, "on_arv_reason": admin.VERTICAL, "arv_status": admin.VERTICAL } inlines = [ MaternalArvPostModInlineAdmin, ] actions = [ export_as_csv_action( description="CSV Export of Maternal ARV Post", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified' ], extra_fields=OrderedDict({ 'subject_identifier': 'maternal_visit__appointment__registered_subject__subject_identifier', 'gender': 'maternal_visit__appointment__registered_subject__gender', 'dob': 'maternal_visit__appointment__registered_subject__dob', }), ) ] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "maternal_visit": if request.GET.get('maternal_visit'): kwargs["queryset"] = MaternalVisit.objects.filter( id=request.GET.get('maternal_visit')) return super(MaternalArvPostAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class BaseInfantScheduleModelAdmin(MembershipBaseModelAdmin): search_fields = [ 'infant_visit__appointment__registered_subject__subject_identifier', 'infant_visit__appointment__registered_subject__initials', ] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "infant_visit": if request.GET.get('infant_visit'): kwargs["queryset"] = InfantVisit.objects.filter( id=request.GET.get('infant_visit')) return super(BaseInfantScheduleModelAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) actions = [ export_as_csv_action( description="Export CSV file", fields=[], delimiter=',', exclude=[ 'created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified', 'infant_visit' ], extra_fields=OrderedDict({ 'subject_identifier': 'infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_visit__appointment__registered_subject__gender', 'dob': 'infant_visit__appointment__registered_subject__dob', 'registered': 'infant_visit__appointment__registered_subject__registration_datetime', 'visit_code': 'infant_visit__appointment__visit_definition__code', 'visit_reason': 'infant_visit__reason', 'visit_study_status': 'infant_visit__study_status' }), ) ]
class InfantFuImmunizationsAdmin(BaseInfantScheduleModelAdmin): form = InfantFuImmunizationsForm inlines = [VaccinesReceivedInlineAdmin, VaccinesMissedInlineAdmin, ] radio_fields = {'vaccines_received': admin.VERTICAL, 'vaccines_missed': admin.VERTICAL} actions = [ export_as_csv_action( description="CSV Export of Infant Immunizations", fields=[], delimiter=',', exclude=['created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified'], extra_fields=OrderedDict( {'subject_identifier': 'infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_visit__appointment__registered_subject__gender', 'dob': 'infant_visit__appointment__registered_subject__dob', }), )]
class InfantFuNewMedAdmin(BaseInfantScheduleModelAdmin): radio_fields = {'new_medications': admin.VERTICAL, } inlines = [InfantFuNewMedItemsInline, ] form = InfantFuNewMedForm actions = [ export_as_csv_action( description="CSV Export of Followup New Medications", fields=[], delimiter=',', exclude=['created', 'modified', 'user_created', 'user_modified', 'revision', 'id', 'hostname_created', 'hostname_modified'], extra_fields=OrderedDict( {'subject_identifier': 'infant_visit__appointment__registered_subject__subject_identifier', 'gender': 'infant_visit__appointment__registered_subject__gender', 'dob': 'infant_visit__appointment__registered_subject__dob', }), )]