Пример #1
0
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',
            }),
        )
    ]
Пример #4
0
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',
                 }),
        )]
Пример #5
0
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'
            }),
        )
    ]
Пример #6
0
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',
            }),
        )
    ]
Пример #7
0
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)
Пример #8
0
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)
Пример #12
0
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'
            }),
        )
    ]
Пример #13
0
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',
            }),
        )
    ]
Пример #14
0
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',
            }),
        )
    ]
Пример #15
0
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)
Пример #18
0
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)
Пример #20
0
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)
Пример #21
0
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'
            }),
        )
    ]
Пример #23
0
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',
            }),
        )
    ]
Пример #24
0
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)
Пример #25
0
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)
Пример #26
0
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',
                 }),
        )]
Пример #30
0
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',
                 }),
        )]