195 lines
6.9 KiB
Python
195 lines
6.9 KiB
Python
"""
|
|
Django admin configuration for slp app.
|
|
"""
|
|
|
|
from django.contrib import admin
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from .models import (
|
|
SLPConsult,
|
|
SLPAssessment,
|
|
SLPIntervention,
|
|
SLPTarget,
|
|
SLPProgressReport,
|
|
)
|
|
|
|
|
|
@admin.register(SLPConsult)
|
|
class SLPConsultAdmin(admin.ModelAdmin):
|
|
"""Admin interface for SLPConsult model."""
|
|
|
|
list_display = ['patient', 'consultation_date', 'consult_variant', 'type_of_service', 'provider',
|
|
'signed_by', 'tenant']
|
|
list_filter = ['consultation_date', 'consult_variant', 'type_of_service', 'tenant', 'signed_at']
|
|
search_fields = ['patient__mrn', 'patient__first_name_en', 'patient__last_name_en',
|
|
'primary_concern']
|
|
readonly_fields = ['id', 'created_at', 'updated_at']
|
|
date_hierarchy = 'consultation_date'
|
|
|
|
fieldsets = (
|
|
(_('Patient & Provider'), {
|
|
'fields': ('patient', 'tenant', 'consultation_date', 'consult_variant', 'type_of_service',
|
|
'provider', 'appointment')
|
|
}),
|
|
(_('Consultation Details'), {
|
|
'fields': ('primary_concern', 'suspected_areas', 'communication_modes', 'screen_time_hours')
|
|
}),
|
|
(_('Variant Questionnaire'), {
|
|
'fields': ('variant_questionnaire',),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Skills & Screening'), {
|
|
'fields': ('skills_to_observe', 'oral_motor_screening'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Recommendations'), {
|
|
'fields': ('recommendations',)
|
|
}),
|
|
(_('Signature'), {
|
|
'fields': ('signed_by', 'signed_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Metadata'), {
|
|
'fields': ('id', 'created_at', 'updated_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|
|
|
|
|
|
@admin.register(SLPAssessment)
|
|
class SLPAssessmentAdmin(admin.ModelAdmin):
|
|
"""Admin interface for SLPAssessment model."""
|
|
|
|
list_display = ['patient', 'assessment_date', 'provider', 'signed_by', 'signed_at', 'tenant']
|
|
list_filter = ['assessment_date', 'tenant', 'signed_at']
|
|
search_fields = ['patient__mrn', 'patient__first_name_en', 'patient__last_name_en']
|
|
readonly_fields = ['id', 'created_at', 'updated_at']
|
|
date_hierarchy = 'assessment_date'
|
|
|
|
fieldsets = (
|
|
(_('Patient & Provider'), {
|
|
'fields': ('patient', 'tenant', 'assessment_date', 'provider', 'appointment')
|
|
}),
|
|
(_('Diagnosis & History'), {
|
|
'fields': ('diagnosis_statement', 'case_history')
|
|
}),
|
|
(_('History Sections'), {
|
|
'fields': ('prenatal_history', 'perinatal_history', 'postnatal_history',
|
|
'developmental_history', 'medical_status'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Speech/Language & Test Scores'), {
|
|
'fields': ('speech_language_detail', 'gfta3_score', 'jat_score', 'ssi_score')
|
|
}),
|
|
(_('Assessments'), {
|
|
'fields': ('oral_mechanism', 'rossetti_domains', 'joint_attention_skills'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Summary & Plan'), {
|
|
'fields': ('clinical_summary', 'recommendations', 'frequency_per_week',
|
|
'session_duration_minutes', 'referral_rules')
|
|
}),
|
|
(_('Signature'), {
|
|
'fields': ('signed_by', 'signed_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Metadata'), {
|
|
'fields': ('id', 'created_at', 'updated_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|
|
|
|
|
|
@admin.register(SLPIntervention)
|
|
class SLPInterventionAdmin(admin.ModelAdmin):
|
|
"""Admin interface for SLPIntervention model."""
|
|
|
|
list_display = ['patient', 'session_number', 'session_date', 'provider', 'signed_by', 'signed_at', 'tenant']
|
|
list_filter = ['session_date', 'tenant', 'signed_at']
|
|
search_fields = ['patient__mrn', 'patient__first_name_en', 'patient__last_name_en']
|
|
readonly_fields = ['id', 'created_at', 'updated_at']
|
|
date_hierarchy = 'session_date'
|
|
|
|
fieldsets = (
|
|
(_('Patient & Provider'), {
|
|
'fields': ('patient', 'tenant', 'appointment', 'session_number', 'session_date',
|
|
'session_time', 'provider', 'previous_session')
|
|
}),
|
|
(_('Intervention Targets (JSON)'), {
|
|
'fields': ('intervention_targets_json',),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Signature'), {
|
|
'fields': ('signed_by', 'signed_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Metadata'), {
|
|
'fields': ('id', 'created_at', 'updated_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|
|
|
|
|
|
@admin.register(SLPTarget)
|
|
class SLPTargetAdmin(admin.ModelAdmin):
|
|
"""Admin interface for SLPTarget model."""
|
|
|
|
list_display = ['intervention', 'target_number', 'subjective', 'assessment']
|
|
list_filter = ['intervention__patient', 'intervention__session_date']
|
|
search_fields = ['subjective', 'intervention__patient__mrn']
|
|
readonly_fields = ['id']
|
|
|
|
fieldsets = (
|
|
(None, {
|
|
'fields': ('intervention', 'target_number')
|
|
}),
|
|
(_('SOAP Format'), {
|
|
'fields': ('subjective', 'objective', 'assessment', 'plan')
|
|
}),
|
|
(_('Prompt Strategies'), {
|
|
'fields': ('prompt_strategies',),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Metadata'), {
|
|
'fields': ('id',),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|
|
|
|
|
|
@admin.register(SLPProgressReport)
|
|
class SLPProgressReportAdmin(admin.ModelAdmin):
|
|
"""Admin interface for SLPProgressReport model."""
|
|
|
|
list_display = ['patient', 'report_date', 'provider', 'signed_by', 'signed_at', 'tenant']
|
|
list_filter = ['report_date', 'tenant', 'signed_at', 'reassessment_needed']
|
|
search_fields = ['patient__mrn', 'patient__first_name_en', 'patient__last_name_en']
|
|
readonly_fields = ['id', 'created_at', 'updated_at', 'attendance_rate']
|
|
date_hierarchy = 'report_date'
|
|
|
|
fieldsets = (
|
|
(_('Patient & Provider'), {
|
|
'fields': ('patient', 'tenant', 'report_date', 'provider')
|
|
}),
|
|
(_('Session Summary'), {
|
|
'fields': ('sessions_scheduled', 'sessions_attended', 'attendance_rate')
|
|
}),
|
|
(_('Diagnosis & Progress'), {
|
|
'fields': ('final_diagnosis', 'objectives_progress', 'plan_details')
|
|
}),
|
|
(_('Progress Summary'), {
|
|
'fields': ('overall_progress', 'participation_level', 'carryover_level', 'prognosis')
|
|
}),
|
|
(_('Recommendations'), {
|
|
'fields': ('recommendations', 'package_sessions_count', 'reassessment_needed')
|
|
}),
|
|
(_('Signature'), {
|
|
'fields': ('signed_by', 'signed_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Metadata'), {
|
|
'fields': ('id', 'created_at', 'updated_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|