Example #1
0
class NeurorehabilitationCardAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': ((
                'patient',
                'leading_people',
                'date',
            ), )
        }),
        (txt('Excercise'), {
            'fields':
            (('excercise_signature', 'load', 'repetitions', 'sets'), )
        }),
        (txt('Environment'), {
            'fields':
            (('starting_position', 'nature_of_load', 'motion_range'), )
        }),
        (txt('Results'), {
            'fields': (('time', 'frequency'), )
        }),
        (txt('Additionals'), {
            'fields': ('additional_notes', ),
        }),
    )
    list_display = ('patient', 'date', 'excercise_signature', 'load',
                    'repetitions', 'sets', 'time', 'frequency')
Example #2
0
class GaitReeducationCardCardAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': ((
                'leading_people',
                'patient',
                'date',
            ), )
        }),
        (txt('Helpers'), {
            'fields': (('tool', 'left_orthosis', 'right_orthosis'), )
        }),
        (txt('Environment'), {
            'fields': (
                ('distance', 'gait_time', 'vertical_load', 'horizontal_load'),
                ('assurance_type', 'displacement_type'),
            )
        }),
        (txt('Results'), {
            'fields':
            (('accented_traits', 'gait_coefficients', 'akson_gait_index'), )
        }),
        (txt('Additionals'), {
            'fields': ('additional_notes', )
        }),
    )
    list_display = ('patient', 'date', 'distance', 'gait_time')
    labels = ('leading_people', 'date', 'tool', 'left_orthosis',
              'right_orthosis', 'distance', 'gait_time', 'tool',
              'akson_gait_index')
Example #3
0
class TimeSpreadCardAdmin(AksonCardAdmin):
    fieldsets = ((txt('Time spreads'), {
        'fields': (
            (
                'leading_doctors',
                'patient',
            ),
            (
                'begin',
                'end',
            ),
        )
    }), (txt('Coefficients'), {
        'fields': (('asia', 'icd10', 'ashworth'), )
    }), (txt('Diagnosis'), {
        'fields': (
            ('diagnosis', ),
            ('contraindicators', ),
            ('levels_of_injury', ),
            ('injury_unit', ),
        )
    }), (txt('Treatment'), {
        'fields': (('date_of_agreement', 'rehabilitation_at_home'), )
    }))
    list_display = ('patient', 'begin', 'end')
Example #4
0
class TrackGaitTrainingCardAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': ((
                'leading_people',
                'patient',
                'date',
            ), )
        }),
        (txt('Blood pressure at rest'), {
            'fields': (('blood_pressure_hr_rest', 'blood_pressure_rr_sys',
                        'blood_pressure_rr_dia'), )
        }),
        (txt('Helpers'), {
            'fields': (('support_type', 'left_orthosis', 'right_orthosis'), )
        }),
        (txt('Results'), {
            'fields': (('restoration_time', 'gait_speed', 'gait_time',
                        'distance', 'fixation_location', 'load'), )
        }),
        (txt('Additionals'), {
            'fields': ('additional_notes', )
        }),
    )
    list_display = ('patient', 'date', 'restoration_time', 'gait_speed')
Example #5
0
class UpperLimbTherapyCardAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'),
         {'fields': (
             ('therapist', 'patient', 'date',),
         )}),
        (txt('Therapy info'),
         {'fields': (('therapy_detailed_target', 'left_area', 'right_area', 'used_methods_techniques'),
                     )}),
        (txt('Additionals'),
         {'fields': ('additional_notes',
                     )}),
    )
    list_display = ('patient', 'date',)
Example #6
0
class PhysiotherapyCardCardAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'),
         {'fields': (
             ('leading_people', 'patient', 'date',),
         )}),
        (txt('Treatment'),
         {'fields': (('treatment_type', 'area', 'parameters'),
                     )}),
        (txt('Additionals'),
         {'fields': ('additional_notes',
                     )}),
    )
    list_display = ('patient', 'date')
Example #7
0
 def asia(self, obj):
     timespreads = obj.timespread_set.order_by('-begin')
     if len(timespreads) > 0:
         asias = timespreads[0].asia.all()
         if len(asias) > 0:
             return ', '.join([asia.name for asia in asias])
     return txt('None')
Example #8
0
 def levels_of_injury(self, obj):
     timespreads = obj.timespread_set.order_by('-begin')
     if len(timespreads) > 0:
         levels_of_injurys = timespreads[0].levels_of_injury.all()
         if len(levels_of_injurys) > 0:
             return ', '.join([injury.name for injury in levels_of_injurys])
     return txt('None')
Example #9
0
class DietAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': ((
                'orderer',
                'patient',
                'date',
            ), )
        }),
        (txt('Recommendations'), {
            'fields': (('recommendations', ), )
        }),
        (txt('Additionals'), {
            'fields': ('additional_notes', )
        }),
    )
    list_display = ('patient', 'date', 'recommendations')
Example #10
0
class NeurorehabilitationAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': ((
                'orderer',
                'patient',
                'date',
            ), )
        }),
        (txt('Recommendations'), {
            'fields': (('procedure_types', 'program_description',
                        'excercise_signatures'), )
        }),
        (txt('Additionals'), {
            'fields': ('additional_notes', )
        }),
    )
    list_display = ('patient', 'date', 'procedure_types',
                    'program_description')
Example #11
0
class MedicalConsultationAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': ((
                'orderer',
                'patient',
                'date',
                'diagnosis',
            ), )
        }),
        (txt('Recommendations'), {
            'fields': (('pharmacology_phytotherapy', 'commissioned_study'), )
        }),
        (txt('Additionals'), {
            'fields': ('additional_notes', )
        }),
    )
    list_display = ('patient', 'date', 'pharmacology_phytotherapy',
                    'commissioned_study')
Example #12
0
class MassageReflexologyCardCardAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': ((
                'therapist',
                'patient',
                'date',
            ), )
        }),
        (txt('Info'), {
            'fields':
            (('massage_reflexology_treatment', 'massage_reflexology_area'), )
        }),
        (txt('Additionals'), {
            'fields': ('additional_notes', )
        }),
    )
    list_display = (
        'patient',
        'date',
    )
Example #13
0
class TreatmentRecordCardAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': ((
                'leading_people',
                'patient',
                'treatment_date',
            ), )
        }),
        (txt('Info'), {
            'fields': ((
                'category',
                'description',
            ), ('document', ))
        }),
    )
    list_display = ('patient', 'treatment_date')

    class Media:
        from django.conf import settings
        static_url = getattr(settings, 'STATIC_URL', '/static/')
Example #14
0
class NeurophysiologicalStudyAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'),
         {'fields': (('patient', 'examiners', 'date'),
                     )}),
        (txt('Environment'),
         {'fields': (('mass', 'muscle', 'study_position'),
                     )}),
        (txt('Results'),
         {'fields': (('MVIC', 'relative_MVIC'),
                     ('max_EMG', 'max_relative_EMG'),
                     ('average_EMG', 'average_relative_EMG'),
                     ('EMG_surface_area', 'EMG_relative_surface_area'),
                     ('EMG_standard_deviation',),
                     ('WNM',),
                     )}),
        (txt('Additionals'),
         {'fields': ('additional_notes', ),
          }),
    )
    list_display = ('patient', 'date', 'mass', 'WNM')
Example #15
0
class MassageReflexologyAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': ((
                'orderer',
                'patient',
                'date',
            ), )
        }),
        (txt('Recommendations'), {
            'fields': ((
                'treatment_type',
                'area',
                'quantity',
            ), )
        }),
        (txt('Additionals'), {
            'fields': ('additional_notes', )
        }),
    )
    list_display = ('patient', 'date', 'quantity')
Example #16
0
class DynamometryCardAdmin(AksonCardAdmin):
    fieldsets = (
        (txt('General'), {
            'fields': (('patient', 'examiners', 'date'), )
        }),
        (txt('Environment'), {
            'fields': (('muscle', 'study_position', 'duration'), )
        }),
        (txt('Results'), {
            'fields': (
                ('max', 'max_relative'),
                ('average', 'average_relative'),
                ('surface_area', 'relative_surface_area'),
                ('standard_deviation', ),
                ('to_max', 'relative_to_max'),
                ('to_zero', 'relative_to_zero'),
            )
        }),
        (txt('Additionals'), {
            'fields': ('additional_notes', ),
        }),
    )
    list_display = ('patient', 'date', 'muscle', 'duration')
Example #17
0
class PatientCardAdmin(AksonBaseAdmin):
    change_form_template = 'patient.html'
    model = Patient
    therapy_program_inlines = [
        ProgramNeurorehabilitationInline,
        ProgramMedicalConsultationInline,
        ProgramPhysiotherapyInline,
        ProgramMassageReflexologyInline,
        ProgramDietInline,
    ]
    cards_inlines = [
        TimeSpreadInline,
        GaitReeducationCardInline,
        TrackGaitTrainingInline,
        NeurorehabilitationCardInline,
        PhysiotherapyCardInline,
        MetricCardInline,
        UpperLimbStudyInline,
        UpperLimbTherapyInline,
        MassageReflexologyCardInline,
        NeurophysiologicalStudyInline,
        DynamometryCardInline,
        TreatmentRecordInline,
        #            # AsiaCardInline,
    ]
    inlines = cards_inlines + therapy_program_inlines

    fieldsets = ((txt('Private'), {
        'fields': (
            ('first_name', 'last_name'),
            ('gender', 'blood_type'),
            ('pesel', 'birth_date'),
        )
    }), (txt('Address data'), {
        'fields': (('country', 'city', 'address'), )
    }), (txt('Mailing address'), {
        'fields': (('mailing_country', 'mailing_city', 'mailing_address'), )
    }), (txt('Work'), {
        'fields': (('job', 'workplace'), )
    }), (txt('Contact'), {
        'fields': (('cell_phone', 'landline_phone', 'email'), )
    }), (txt('Injury info'), {
        'fields': ((
            'date_of_injury',
            'time_of_injury',
        ), (
            'date_of_operation',
            'time_of_operation',
        ), ('additional_notes', ))
    }))

    # TODO ogarnac, bo duzo sqlowych zapytan robi
    def levels_of_injury(self, obj):
        timespreads = obj.timespread_set.order_by('-begin')
        if len(timespreads) > 0:
            levels_of_injurys = timespreads[0].levels_of_injury.all()
            if len(levels_of_injurys) > 0:
                return ', '.join([injury.name for injury in levels_of_injurys])
        return txt('None')

    levels_of_injury.short_description = txt('levels_of_injury')

    def asia(self, obj):
        timespreads = obj.timespread_set.order_by('-begin')
        if len(timespreads) > 0:
            asias = timespreads[0].asia.all()
            if len(asias) > 0:
                return ', '.join([asia.name for asia in asias])
        return txt('None')

    asia.short_description = txt('asia')

    list_display = ('last_name', 'first_name', 'birth_date', 'date_of_injury',
                    'levels_of_injury', 'asia')
    search_fields = ['last_name', 'first_name']

    def change_view(self, request, object_id, form_url='', extra_context=None):
        extra_context = extra_context or {}
        extra_context['therapy_program_inlines'] = dict([
            (inline.model._meta.verbose_name, inline)
            for inline in self.therapy_program_inlines
        ])

        return super(PatientCardAdmin,
                     self).change_view(request,
                                       object_id=object_id,
                                       form_url=form_url,
                                       extra_context=extra_context)

    def has_delete_permission(self, request, obj=None):
        return False
Example #18
0
class MetricCardCardAdmin(AksonCardAdmin):
    add_form_template = 'metric_card.html'

    fieldsets = (
        (txt('General'), {
            'fields': (('patient', 'examiners', 'date'), )
        }),
        (txt('Basic metrics'), {
            'fields': (('height', 'weight'), )
        }),
        # part
        ('Upper limb', {
            'description':
            'Limbs measures',
            'fields': (
                ('length_left_upper_limb_relative',
                 'length_right_upper_limb_relative'),
                ('length_left_upper_limb_absolute',
                 'length_right_upper_limb_absolute'),
                ('length_left_upper_limb_real_absolute',
                 'length_right_upper_limb_real_absolute'),
                ('length_left_upper_limb_arm', 'length_right_upper_limb_arm'),
                ('length_left_upper_limb_forearm',
                 'length_right_upper_limb_forearm'),
                ('length_left_upper_limb_hand',
                 'length_right_upper_limb_hand'),
                ('width_left_upper_limb_hand', 'width_right_upper_limb_hand'),
                ('length_left_upper_limb_finger',
                 'length_right_upper_limb_finger'),
                ('circuit_left_upper_limb_axillary_folds',
                 'circuit_right_upper_limb_axillary_folds'),
                ('circuit_left_upper_limb_15_cm_above_the_olecranon',
                 'circuit_right_upper_limb_15_cm_above_the_olecranon'),
                ('circuit_left_upper_limb_elbow',
                 'circuit_right_upper_limb_elbow'),
                ('circuit_left_upper_limb_10_cm_below_the_olecranon',
                 'circuit_right_upper_limb_10_cm_below_the_olecranon'),
                ('circuit_left_upper_limb_radial_carpal_joint',
                 'circuit_right_upper_limb_radial_carpal_joint'),
            )
        }),
        ('Lower limb', {
            'fields': (
                ('length_left_lower_limb_relative',
                 'length_right_lower_limb_relative'),
                ('length_left_lower_limb_absolute',
                 'length_right_lower_limb_absolute'),
                ('length_left_lower_limb_real_absolute',
                 'length_right_lower_limb_real_absolute'),
                ('length_left_lower_limb_thigh',
                 'length_right_lower_limb_thigh'),
                ('length_left_lower_limb_shank',
                 'length_right_lower_limb_shank'),
                ('length_left_lower_limb_foot',
                 'length_right_lower_limb_foot'),
                ('width_left_lower_limb_foot', 'width_right_lower_limb_foot'),
                ('circuit_left_lower_limb_gluteal_fold',
                 'circuit_right_lower_limb_gluteal_fold'),
                ('circuit_left_lower_limb_20_cm_above_the_patella',
                 'circuit_right_lower_limb_20_cm_above_the_patella'),
                ('circuit_left_lower_limb_10_cm_above_the_patella',
                 'circuit_right_lower_limb_10_cm_above_the_patella'),
                ('circuit_left_lower_limb_knee_joint',
                 'circuit_right_lower_limb_knee_joint'),
                ('circuit_left_lower_limb_15_cm_below_the_patella',
                 'circuit_right_lower_limb_15_cm_below_the_patella'),
                ('circuit_left_lower_limb_ankle',
                 'circuit_right_lower_limb_ankle'),
            )
        }),
        # part
        ('Shoulder joint', {
            'description':
            'Upper limb motion and strength',
            'fields': (
                ('range_left_active_motion_shoulder_joint_straightening',
                 'range_left_passive_motion_shoulder_joint_straightening',
                 'range_left_musc_str_shoulder_joint_straightening',
                 'range_right_active_motion_shoulder_joint_straightening',
                 'range_right_passive_motion_shoulder_joint_straightening',
                 'range_right_musc_str_shoulder_joint_straightening'),
                ('range_left_active_motion_shoulder_joint_bending',
                 'range_left_passive_motion_shoulder_joint_bending',
                 'range_left_musc_str_shoulder_joint_bending',
                 'range_right_active_motion_shoulder_joint_bending',
                 'range_right_passive_motion_shoulder_joint_bending',
                 'range_right_musc_str_shoulder_joint_bending'),
                ('range_left_active_motion_shoulder_joint_abduction',
                 'range_left_passive_motion_shoulder_joint_abduction',
                 'range_left_musc_str_shoulder_joint_abduction',
                 'range_right_active_motion_shoulder_joint_abduction',
                 'range_right_passive_motion_shoulder_joint_abduction',
                 'range_right_musc_str_shoulder_joint_abduction'),
                ('range_left_active_motion_shoulder_joint_adduction',
                 'range_left_passive_motion_shoulder_joint_adduction',
                 'range_left_musc_str_shoulder_joint_adduction',
                 'range_right_active_motion_shoulder_joint_adduction',
                 'range_right_passive_motion_shoulder_joint_adduction',
                 'range_right_musc_str_shoulder_joint_adduction'),
                ('range_left_active_motion_shoulder_joint_internal_rotation',
                 'range_left_passive_motion_shoulder_joint_internal_rotation',
                 'range_left_musc_str_shoulder_joint_internal_rotation',
                 'range_right_active_motion_shoulder_joint_internal_rotation',
                 'range_right_passive_motion_shoulder_joint_internal_rotation',
                 'range_right_musc_str_shoulder_joint_internal_rotation'),
                ('range_left_active_motion_shoulder_joint_external_rotation',
                 'range_left_passive_motion_shoulder_joint_external_rotation',
                 'range_left_musc_str_shoulder_joint_external_rotation',
                 'range_right_active_motion_shoulder_joint_external_rotation',
                 'range_right_passive_motion_shoulder_joint_external_rotation',
                 'range_right_musc_str_shoulder_joint_external_rotation'),
            )
        }),
        # part
        ('elbow_joint', {
            'fields': (
                ('range_left_active_motion_elbow_joint_straightening',
                 'range_left_passive_motion_elbow_joint_straightening',
                 'range_left_musc_str_elbow_joint_straightening',
                 'range_right_active_motion_elbow_joint_straightening',
                 'range_right_passive_motion_elbow_joint_straightening',
                 'range_right_musc_str_elbow_joint_straightening'),
                ('range_left_active_motion_elbow_joint_bending',
                 'range_left_passive_motion_elbow_joint_bending',
                 'range_left_musc_str_elbow_joint_bending',
                 'range_right_active_motion_elbow_joint_bending',
                 'range_right_passive_motion_elbow_joint_bending',
                 'range_right_musc_str_elbow_joint_bending'),
            )
        }),
        # part
        ('radial_ulnar_joint', {
            'fields': (
                ('range_left_active_motion_radial_ulnar_joint_reverse',
                 'range_left_passive_motion_radial_ulnar_joint_reverse',
                 'range_left_musc_str_radial_ulnar_joint_reverse',
                 'range_right_active_motion_radial_ulnar_joint_reverse',
                 'range_right_passive_motion_radial_ulnar_joint_reverse',
                 'range_right_musc_str_radial_ulnar_joint_reverse'),
                ('range_left_active_motion_radial_ulnar_joint_convert',
                 'range_left_passive_motion_radial_ulnar_joint_convert',
                 'range_left_musc_str_radial_ulnar_joint_convert',
                 'range_right_active_motion_radial_ulnar_joint_convert',
                 'range_right_passive_motion_radial_ulnar_joint_convert',
                 'range_right_musc_str_radial_ulnar_joint_convert'),
            )
        }),
        # part
        ('radial_carpal_joint', {
            'fields': (
                ('range_left_active_motion_radial_carpal_joint_extension_dorsal',
                 'range_left_passive_motion_radial_carpal_joint_extension_dorsal',
                 'range_left_musc_str_radial_carpal_joint_extension_dorsal',
                 'range_right_active_motion_radial_carpal_joint_extension_dorsal',
                 'range_right_passive_motion_radial_carpal_joint_extension_dorsal',
                 'range_right_musc_str_radial_carpal_joint_extension_dorsal'),
                ('range_left_active_motion_radial_carpal_joint_palmar_flexion',
                 'range_left_passive_motion_radial_carpal_joint_palmar_flexion',
                 'range_left_musc_str_radial_carpal_joint_palmar_flexion',
                 'range_right_active_motion_radial_carpal_joint_palmar_flexion',
                 'range_right_passive_motion_radial_carpal_joint_palmar_flexion',
                 'range_right_musc_str_radial_carpal_joint_palmar_flexion'),
                ('range_left_active_motion_radial_carpal_joint_radial_abduction',
                 'range_left_passive_motion_radial_carpal_joint_radial_abduction',
                 'range_left_musc_str_radial_carpal_joint_radial_abduction',
                 'range_right_active_motion_radial_carpal_joint_radial_abduction',
                 'range_right_passive_motion_radial_carpal_joint_radial_abduction',
                 'range_right_musc_str_radial_carpal_joint_radial_abduction'),
                ('range_left_active_motion_radial_carpal_joint_urnal_abduction',
                 'range_left_passive_motion_radial_carpal_joint_urnal_abduction',
                 'range_left_musc_str_radial_carpal_joint_urnal_abduction',
                 'range_right_active_motion_radial_carpal_joint_urnal_abduction',
                 'range_right_passive_motion_radial_carpal_joint_urnal_abduction',
                 'range_right_musc_str_radial_carpal_joint_urnal_abduction'),
            )
        }),
        # part
        ('finger_joint', {
            'fields': (
                ('range_left_active_motion_finger_joint_straightening',
                 'range_left_passive_motion_finger_joint_straightening',
                 'range_left_musc_str_finger_joint_straightening',
                 'range_right_active_motion_finger_joint_straightening',
                 'range_right_passive_motion_finger_joint_straightening',
                 'range_right_musc_str_finger_joint_straightening'),
                ('range_left_active_motion_finger_joint_bending',
                 'range_left_passive_motion_finger_joint_bending',
                 'range_left_musc_str_finger_joint_bending',
                 'range_right_active_motion_finger_joint_bending',
                 'range_right_passive_motion_finger_joint_bending',
                 'range_right_musc_str_finger_joint_bending'),
            )
        }),

        # part
        ('Hip joint', {
            'description':
            'Lower limb motion and strength',
            'fields': (
                ('range_left_active_motion_hip_joint_straightening',
                 'range_left_passive_motion_hip_joint_straightening',
                 'range_left_musc_str_hip_joint_straightening',
                 'range_right_active_motion_hip_joint_straightening',
                 'range_right_passive_motion_hip_joint_straightening',
                 'range_right_musc_str_hip_joint_straightening'),
                ('range_left_active_motion_hip_joint_bending',
                 'range_left_passive_motion_hip_joint_bending',
                 'range_left_musc_str_hip_joint_bending',
                 'range_right_active_motion_hip_joint_bending',
                 'range_right_passive_motion_hip_joint_bending',
                 'range_right_musc_str_hip_joint_bending'),
                ('range_left_active_motion_hip_joint_abduction',
                 'range_left_passive_motion_hip_joint_abduction',
                 'range_left_musc_str_hip_joint_abduction',
                 'range_right_active_motion_hip_joint_abduction',
                 'range_right_passive_motion_hip_joint_abduction',
                 'range_right_musc_str_hip_joint_abduction'),
                ('range_left_active_motion_hip_joint_adduction',
                 'range_left_passive_motion_hip_joint_adduction',
                 'range_left_musc_str_hip_joint_adduction',
                 'range_right_active_motion_hip_joint_adduction',
                 'range_right_passive_motion_hip_joint_adduction',
                 'range_right_musc_str_hip_joint_adduction'),
                ('range_left_active_motion_hip_joint_internal_rotation',
                 'range_left_passive_motion_hip_joint_internal_rotation',
                 'range_left_musc_str_hip_joint_internal_rotation',
                 'range_right_active_motion_hip_joint_internal_rotation',
                 'range_right_passive_motion_hip_joint_internal_rotation',
                 'range_right_musc_str_hip_joint_internal_rotation'),
                ('range_left_active_motion_hip_joint_external_rotation',
                 'range_left_passive_motion_hip_joint_external_rotation',
                 'range_left_musc_str_hip_joint_external_rotation',
                 'range_right_active_motion_hip_joint_external_rotation',
                 'range_right_passive_motion_hip_joint_external_rotation',
                 'range_right_musc_str_hip_joint_external_rotation'),
                (
                    'range_left_active_motion_hip_joint_thomas_test',
                    'range_right_active_motion_hip_joint_thomas_test',
                ),
            )
        }),
        # part
        ('knee_joint', {
            'fields': (
                ('range_left_active_motion_knee_joint_straightening',
                 'range_left_passive_motion_knee_joint_straightening',
                 'range_left_musc_str_knee_joint_straightening',
                 'range_right_active_motion_knee_joint_straightening',
                 'range_right_passive_motion_knee_joint_straightening',
                 'range_right_musc_str_knee_joint_straightening'),
                ('range_left_active_motion_knee_joint_bending',
                 'range_left_passive_motion_knee_joint_bending',
                 'range_left_musc_str_knee_joint_bending',
                 'range_right_active_motion_knee_joint_bending',
                 'range_right_passive_motion_knee_joint_bending',
                 'range_right_musc_str_knee_joint_bending'),
            )
        }),
        # part
        ('upper_ankle_joint', {
            'fields': (
                ('range_left_active_motion_upper_ankle_joint_extension_dorsal',
                 'range_left_passive_motion_upper_ankle_joint_extension_dorsal',
                 'range_left_musc_str_upper_ankle_joint_extension_dorsal',
                 'range_right_active_motion_upper_ankle_joint_extension_dorsal',
                 'range_right_passive_motion_upper_ankle_joint_extension_dorsal',
                 'range_right_musc_str_upper_ankle_joint_extension_dorsal'),
                ('range_left_active_motion_upper_ankle_joint_plantar_flexion',
                 'range_left_passive_motion_upper_ankle_joint_plantar_flexion',
                 'range_left_musc_str_upper_ankle_joint_plantar_flexion',
                 'range_right_active_motion_upper_ankle_joint_plantar_flexion',
                 'range_right_passive_motion_upper_ankle_joint_plantar_flexion',
                 'range_right_musc_str_upper_ankle_joint_plantar_flexion'),
            )
        }),
        # part
        ('lower_ankle_joint', {
            'fields': (
                ('range_left_active_motion_lower_ankle_joint_convert',
                 'range_left_passive_motion_lower_ankle_joint_convert',
                 'range_left_musc_str_lower_ankle_joint_convert',
                 'range_right_active_motion_lower_ankle_joint_convert',
                 'range_right_passive_motion_lower_ankle_joint_convert',
                 'range_right_musc_str_lower_ankle_joint_convert'),
                ('range_left_active_motion_lower_ankle_joint_reverse',
                 'range_left_passive_motion_lower_ankle_joint_reverse',
                 'range_left_musc_str_lower_ankle_joint_reverse',
                 'range_right_active_motion_lower_ankle_joint_reverse',
                 'range_right_passive_motion_lower_ankle_joint_reverse',
                 'range_right_musc_str_lower_ankle_joint_reverse'),
            )
        }),
        # part
        ('cervical_sftr', {
            'description':
            'SFTR measures',
            'fields': (
                ('sftr_S_cervical_sftr_extension',
                 'sftr_S_cervical_sftr_bend'),
                ('sftr_F_cervical_sftr_left_slope',
                 'sftr_F_cervical_sftr_right_slope'),
                ('sftr_R_cervical_sftr_left_rotation',
                 'sftr_R_cervical_sftr_right_rotation'),
            )
        }),
        ('thoraco_lumbar_sftr', {
            'fields': (
                ('sftr_S_thoraco_lumbar_sftr_extension',
                 'sftr_S_thoraco_lumbar_sftr_bend'),
                ('sftr_F_thoraco_lumbar_sftr_left_slope',
                 'sftr_F_thoraco_lumbar_sftr_right_slope'),
                ('sftr_R_thoraco_lumbar_sftr_left_rotation',
                 'sftr_R_thoraco_lumbar_sftr_right_rotation'),
            )
        }),
        ('shoulder_sftr', {
            'fields': (
                ('sftr_S_shoulder_sftr_extension',
                 'sftr_S_shoulder_sftr_bend'),
                ('sftr_F_shoulder_sftr_abduction',
                 'sftr_F_shoulder_sftr_adduction'),
                ('sftr_T_shoulder_sftr_horizontal_plane_extension',
                 'sftr_T_shoulder_sftr_horizontal_plane_bend'),
                ('sftr_RF0_shoulder_sftr_outter_rotation',
                 'sftr_RF0_shoulder_sftr_inner_rotation'),
                ('sftr_RF90_shoulder_sftr_outter_rotation',
                 'sftr_RF90_shoulder_sftr_inner_rotation'),
            )
        }),
        ('elbow_sftr', {
            'fields':
            (('sftr_S_elbow_sftr_extension', 'sftr_S_elbow_sftr_bend'), )
        }),
        ('radial_ulnar_nearer_and_further_sftr', {
            'fields':
            (('sftr_R_radial_ulnar_nearer_and_further_sftr_reverse',
              'sftr_R_radial_ulnar_nearer_and_further_sftr_convert'), )
        }),
        ('radial_carpal_sftr', {
            'fields': (
                ('sftr_S_radial_carpal_sftr_extension',
                 'sftr_S_radial_carpal_sftr_bend'),
                ('sftr_F_radial_carpal_sftr_radial_abduction',
                 'sftr_F_radial_carpal_sftr_elbow_abduction'),
            )
        }),
        ('carpo_metacarpal_sftr', {
            'fields': (
                ('sftr_VF_carpo_metacarpal_sftr_inradial_abduction',
                 'sftr_VF_carpo_metacarpal_sftr_inelbow_adduction'),
                ('sftr_VS_carpo_metacarpal_sftr_hand_abduction',
                 'sftr_VS_carpo_metacarpal_sftr_hand_adduction'),
                ('sftr_CR_carpo_metacarpal_sftr_guided',
                 'sftr_CR_carpo_metacarpal_sftr_enclose'),
            )
        }),
        ('metacarpal_finger1_sftr', {
            'fields': (('sftr_S_metacarpal_finger1_sftr_extension',
                        'sftr_S_metacarpal_finger1_sftr_bend'), )
        }),
        ('metacarpal_finger2_sftr', {
            'fields': (
                ('sftr_S_metacarpal_finger2_sftr_extension',
                 'sftr_S_metacarpal_finger2_sftr_bend'),
                ('sftr_F_metacarpal_finger2_sftr_abduction',
                 'sftr_F_metacarpal_finger2_sftr_adduction'),
            )
        }),
        ('interphalangeal_sftr', {
            'fields': (('sftr_S_interphalangeal_sftr_extension',
                        'sftr_S_interphalangeal_sftr_bend'), )
        }),
        ('interphalangeal_nearer_sftr', {
            'fields': (('sftr_S_interphalangeal_nearer_sftr_extension',
                        'sftr_S_interphalangeal_nearer_sftr_bend'), )
        }),
        ('interphalangeal_further_sftr', {
            'fields': (('sftr_S_interphalangeal_further_sftr_extension',
                        'sftr_S_interphalangeal_further_sftr_bend'), )
        }),
        ('hip_sftr', {
            'fields': (
                ('sftr_S_hip_sftr_extension', 'sftr_S_hip_sftr_bend'),
                ('sftr_F_hip_sftr_abduction', 'sftr_F_hip_sftr_adduction'),
                ('sftr_RS90_hip_sftr_outter_rotation',
                 'sftr_RS90_hip_sftr_inner_rotation'),
                ('sftr_RS0_hip_sftr_outter_rotation',
                 'sftr_RS0_hip_sftr_inner_rotation'),
            )
        }),
        ('knee_sftr', {
            'fields':
            (('sftr_S_knee_sftr_extension', 'sftr_S_knee_sftr_bend'), )
        }),
        ('angle_upper_and_lower_sftr', {
            'fields': (
                ('sftr_S_angle_upper_and_lower_sftr_extension',
                 'sftr_S_angle_upper_and_lower_sftr_bend'),
                ('sftr_R_angle_upper_and_lower_sftr_convert',
                 'sftr_R_angle_upper_and_lower_sftr_reverse'),
            )
        }),
        (txt('Additionals'), {
            'fields': (('additional_notes', ), )
        }),
    )

    list_display = (
        'patient',
        'date',
    )
Example #19
0
class Patient(models.Model):
    # private
    first_name = models.CharField(max_length=80)
    last_name = models.CharField(max_length=80)
    GENDER = ((txt('M'), txt('male')), (txt('F'), txt('female')))
    gender = models.CharField(max_length=1, choices=GENDER)
    BLOOD_TYPE = (
        (txt('0Rh-'), txt('0Rh-')),
        (txt('0Rh+'), txt('0Rh+')),
        (txt('ARh-'), txt('ARh-')),
        (txt('ARh+'), txt('ARh+')),
        (txt('BRh-'), txt('BRh-')),
        (txt('BRh+'), txt('BRh+')),
        (txt('ABR-'), txt('ABRh-')),
        (txt('ABR+'), txt('ABRh+')),
    )
    blood_type = models.CharField(max_length=4,
                                  choices=BLOOD_TYPE,
                                  blank=True,
                                  null=True)
    birth_date = models.DateField()
    pesel = PESELField()

    # address
    country = models.CharField(max_length=80, default="Polska")
    city = models.CharField(max_length=80)
    address = models.CharField(max_length=80, blank=True, null=True)

    # mailing_address
    mailing_country = models.CharField(max_length=80, blank=True, null=True)
    mailing_city = models.CharField(max_length=80, blank=True, null=True)
    mailing_address = models.CharField(max_length=80, blank=True, null=True)

    # work
    job = models.CharField(max_length=80, blank=True, null=True)
    workplace = models.CharField(max_length=80, blank=True, null=True)

    # contact
    cell_phone = models.CharField(max_length=80, blank=True, null=True)
    landline_phone = models.CharField(max_length=80, blank=True, null=True)
    email = models.EmailField(blank=True, null=True)

    # injury info
    date_of_injury = models.DateField()
    time_of_injury = models.TimeField(blank=True, null=True)
    date_of_operation = models.DateField(blank=True, null=True)
    time_of_operation = models.TimeField(blank=True, null=True)
    additional_notes = AdditionalNotesField(blank=True, null=True)

    def __str__(self):
        return "{0} {1}".format(self.first_name, self.last_name)

    class Meta:
        ordering = ('last_name', 'first_name')
Example #20
0
class UpperLimbStudyCardAdmin(AksonCardAdmin):
    add_form_template = 'upper_limb_study.html'

    fieldsets = (
        (txt('General'),
         {'fields': (('patient', 'examiners', 'date'),
                     )}),
        # part
        ('surface_sense',
         {'fields': (
             ('surface_sense_left_flexor_arm_side', 'surface_sense_right_flexor_arm_side'),
             ('surface_sense_left_rectifier_arm_side', 'surface_sense_right_rectifier_arm_side'),
             ('surface_sense_left_flexor_forearm_side', 'surface_sense_right_flexor_forearm_side'),
             ('surface_sense_left_rectifier_forearm_side', 'surface_sense_right_rectifier_forearm_side'),
             ('surface_sense_left_palmar_hand_side', 'surface_sense_right_palmar_hand_side'),
             ('surface_sense_left_dorsal_hand_side', 'surface_sense_right_dorsal_hand_side'),
             ('surface_sense_left_thumb', 'surface_sense_right_thumb'),
             ('surface_sense_left_index_finger', 'surface_sense_right_index_finger'),
             ('surface_sense_left_finger_3', 'surface_sense_right_finger_3'),
             ('surface_sense_left_ring_finger', 'surface_sense_right_ring_finger'),
             ('surface_sense_left_small_finger', 'surface_sense_right_small_finger'),
         )}),
        ('feeling_limbs_pose',
         {'fields': (
             ('feeling_limbs_pose_left', 'feeling_limbs_pose_right'),
         )}),
        # part
        ('feeling_vibration',
         {'fields': (
             ('feeling_vibration_left_arm', 'feeling_vibration_right_arm'),
             ('feeling_vibration_left_forearm', 'feeling_vibration_right_forearm'),
             ('feeling_vibration_left_hand', 'feeling_vibration_right_hand'),
         )}),
        # part
        ('feeling_pain',
         {'fields': (
             ('feeling_pain_left_arm', 'feeling_pain_right_arm'),
             ('feeling_pain_left_forearm', 'feeling_pain_right_forearm'),
             ('feeling_pain_left_hand', 'feeling_pain_right_hand'),
         )}),
        # part
        ('feeling_cold',
         {'fields': (
             ('feeling_cold_left', 'feeling_cold_right'),
         )}),
        # part
        ('feeling_hot',
         {'fields': (
             ('feeling_hot_left', 'feeling_hot_right'),
         )}),
        # part
        ('feeling_temperature_change',
         {'fields': (
             ('feeling_temperature_change_left', 'feeling_temperature_change_right'),
         )}),
        # part
        ('grip_study',
         {'fields': (
             ('grip_study_left_cylinders_diameter', 'grip_study_right_cylinders_diameter'),
             ('grip_study_left_weight', 'grip_study_right_weight'),
         )}),
        # part
        ('test_reflexes',
         {'fields': (
             ('test_reflexes_left_radial', 'test_reflexes_right_radial'),
             ('test_reflexes_left_cubital', 'test_reflexes_right_cubital'),
             ('test_reflexes_left_bicephalous', 'test_reflexes_right_bicephalous'),
             ('test_reflexes_left_triceps', 'test_reflexes_right_triceps'),
         )}),

        (txt('Additionals'),
         {'fields': (
             ('additional_notes',),
         )}),
    )

    list_display = ('patient', 'date',)