精简后端功能模块并补充教学互动
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from app.schemas.evaluation import EvaluationResponse
|
||||
|
||||
|
||||
class TeachingVideo(BaseModel):
|
||||
"""教学视频:题目解析关联的视频资源。"""
|
||||
|
||||
title: str = ""
|
||||
url: str = ""
|
||||
|
||||
|
||||
class TeachingOption(BaseModel):
|
||||
"""教学选项:单选题或多选题的选项结构。"""
|
||||
|
||||
key: str
|
||||
text: str
|
||||
|
||||
|
||||
class TeachingQuestion(BaseModel):
|
||||
"""教学题目:从 teaching_case 解析出的互动题目。"""
|
||||
|
||||
question_id: str
|
||||
question_type: str = "single_choice"
|
||||
stem: str
|
||||
options: list[TeachingOption] = Field(default_factory=list)
|
||||
answer: str | list[str]
|
||||
analysis: str = ""
|
||||
video: TeachingVideo | None = None
|
||||
knowledge_points: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class TeachingCaseSummary(BaseModel):
|
||||
"""教学病例摘要:教学互动页面展示的病例基础信息。"""
|
||||
|
||||
case_id: int
|
||||
title: str
|
||||
department_id: int | None = None
|
||||
difficulty: str
|
||||
chief_complaint: str
|
||||
description: str
|
||||
patient_age: int | None = None
|
||||
patient_gender: str | None = None
|
||||
knowledge_points: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class TeachingItemsResponse(BaseModel):
|
||||
"""教学列表响应:病例、教学目标、题目、答案、解析文本和视频。"""
|
||||
|
||||
case: TeachingCaseSummary
|
||||
teaching_goal: str
|
||||
teacher_guide: str
|
||||
scoring_focus: str
|
||||
questions: list[TeachingQuestion]
|
||||
|
||||
|
||||
class TeachingAnswer(BaseModel):
|
||||
"""教学作答:前端提交的单题选择结果。"""
|
||||
|
||||
question_id: str = Field(min_length=1, max_length=64)
|
||||
selected_answer: str | list[str]
|
||||
|
||||
|
||||
class CreateTeachingEvaluationRequest(BaseModel):
|
||||
"""教学评价入参:提交教学互动题目作答并生成评价。"""
|
||||
|
||||
case_id: int
|
||||
answers: list[TeachingAnswer] = Field(min_length=1)
|
||||
score_type: str = Field(default="percentage", pattern="^(percentage|five_point)$")
|
||||
|
||||
|
||||
class TeachingEvaluationResponse(EvaluationResponse):
|
||||
"""教学评价响应:复用训练评价结构,并返回教学会话 ID。"""
|
||||
|
||||
session_id: int
|
||||
Reference in New Issue
Block a user