""" 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',) }), )