95 lines
3.1 KiB
Python
95 lines
3.1 KiB
Python
"""
|
|
Django admin configuration for referrals app.
|
|
"""
|
|
|
|
from django.contrib import admin
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from .models import (
|
|
Referral,
|
|
ReferralAutoRule,
|
|
)
|
|
|
|
|
|
@admin.register(Referral)
|
|
class ReferralAdmin(admin.ModelAdmin):
|
|
"""Admin interface for Referral model."""
|
|
|
|
list_display = ['patient', 'from_clinic', 'to_clinic', 'urgency', 'status', 'created_at', 'tenant']
|
|
list_filter = ['urgency', 'status', 'from_clinic', 'to_clinic', 'tenant', 'created_at']
|
|
search_fields = ['patient__mrn', 'patient__first_name_en', 'patient__last_name_en',
|
|
'external_provider_name']
|
|
readonly_fields = ['id', 'is_internal', 'is_external', 'is_pending', 'response_time',
|
|
'created_at', 'updated_at']
|
|
date_hierarchy = 'created_at'
|
|
|
|
fieldsets = (
|
|
(_('Patient & Status'), {
|
|
'fields': ('patient', 'tenant', 'status', 'urgency')
|
|
}),
|
|
(_('Source'), {
|
|
'fields': ('from_clinic', 'from_provider')
|
|
}),
|
|
(_('Destination (Internal)'), {
|
|
'fields': ('to_clinic', 'to_provider'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Destination (External)'), {
|
|
'fields': ('external_provider_name', 'external_provider_contact'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Referral Details'), {
|
|
'fields': ('reason', 'clinical_summary')
|
|
}),
|
|
(_('Response'), {
|
|
'fields': ('response_notes', 'responded_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Additional Information'), {
|
|
'fields': ('notes', 'completed_at')
|
|
}),
|
|
(_('Metadata'), {
|
|
'fields': ('id', 'is_internal', 'is_external', 'is_pending', 'response_time',
|
|
'created_at', 'updated_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|
|
|
|
|
|
@admin.register(ReferralAutoRule)
|
|
class ReferralAutoRuleAdmin(admin.ModelAdmin):
|
|
"""Admin interface for ReferralAutoRule model."""
|
|
|
|
list_display = ['name', 'trigger_clinic', 'target_clinic', 'urgency', 'auto_create',
|
|
'is_active', 'tenant']
|
|
list_filter = ['urgency', 'auto_create', 'is_active', 'trigger_clinic', 'target_clinic', 'tenant']
|
|
search_fields = ['name', 'description', 'target_external_provider']
|
|
readonly_fields = ['id', 'created_at', 'updated_at']
|
|
|
|
fieldsets = (
|
|
(None, {
|
|
'fields': ('name', 'tenant', 'is_active')
|
|
}),
|
|
(_('Description'), {
|
|
'fields': ('description',)
|
|
}),
|
|
(_('Trigger Conditions'), {
|
|
'fields': ('trigger_clinic', 'trigger_keywords')
|
|
}),
|
|
(_('Target (Internal)'), {
|
|
'fields': ('target_clinic',),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Target (External)'), {
|
|
'fields': ('target_external_provider',),
|
|
'classes': ('collapse',)
|
|
}),
|
|
(_('Rule Configuration'), {
|
|
'fields': ('urgency', 'auto_create')
|
|
}),
|
|
(_('Metadata'), {
|
|
'fields': ('id', 'created_at', 'updated_at'),
|
|
'classes': ('collapse',)
|
|
}),
|
|
)
|