Files
medical_training/apps/case/admin.py
T

51 lines
1.6 KiB
Python

from django.contrib import admin
from .models import (
CaseBase, TraditionalCase, ScriptCase,
TeachingCase, CaseStage, ScoringRule
)
@admin.register(CaseBase)
class CaseBaseAdmin(admin.ModelAdmin):
list_display = [
'id', 'title', 'case_type', 'difficulty',
'department', 'patient_age', 'patient_gender',
'osce_enabled', 'publish_status', 'status', 'created_at'
]
list_filter = ['case_type', 'difficulty', 'publish_status', 'status', 'osce_enabled']
search_fields = ['title', 'chief_complaint', 'tags', 'icd_codes']
ordering = ['-created_at']
@admin.register(TraditionalCase)
class TraditionalCaseAdmin(admin.ModelAdmin):
list_display = ['id', 'case']
search_fields = ['case__title']
@admin.register(ScriptCase)
class ScriptCaseAdmin(admin.ModelAdmin):
list_display = ['id', 'case', 'emotional_state', 'cultural_level']
search_fields = ['case__title']
@admin.register(TeachingCase)
class TeachingCaseAdmin(admin.ModelAdmin):
list_display = ['id', 'case']
search_fields = ['case__title']
@admin.register(CaseStage)
class CaseStageAdmin(admin.ModelAdmin):
list_display = ['id', 'case', 'stage_name', 'stage_type', 'stage_mode', 'sort_order', 'timeout_seconds']
list_filter = ['stage_type', 'stage_mode']
search_fields = ['case__title', 'stage_name']
ordering = ['case', 'sort_order']
@admin.register(ScoringRule)
class ScoringRuleAdmin(admin.ModelAdmin):
list_display = ['id', 'case', 'dimension', 'competency_dimension', 'score_weight', 'ai_auto_score']
list_filter = ['ai_auto_score', 'osce_dimension']
search_fields = ['case__title', 'dimension']