diff --git a/src/views/AiCaseGenerateView.vue b/src/views/AiCaseGenerateView.vue
index 1abc714a..eb67a7eb 100644
--- a/src/views/AiCaseGenerateView.vue
+++ b/src/views/AiCaseGenerateView.vue
@@ -186,19 +186,24 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
@@ -280,9 +285,10 @@ interface CaseDraftForm {
traditional_standard_diagnosis: string
traditional_standard_treatment: string
traditional_guideline_reference: string
- teaching_learning_objectives: string
- teaching_key_points: string
- teaching_reference_answer: string
+ teaching_goal: string
+ discussion_questions: string
+ teacher_guide: string
+ scoring_focus: string
scoring_rules: ScoringRuleForm[]
exam_items: ExamItemForm[]
}
@@ -316,9 +322,10 @@ const draftForm = reactive({
traditional_standard_diagnosis: '',
traditional_standard_treatment: '',
traditional_guideline_reference: '',
- teaching_learning_objectives: '',
- teaching_key_points: '',
- teaching_reference_answer: '',
+ teaching_goal: '',
+ discussion_questions: '',
+ teacher_guide: '',
+ scoring_focus: '',
scoring_rules: [{ dimension: '', score_weight: 1, ai_auto_score: true, scoring_standard: '' }],
exam_items: []
})
@@ -332,7 +339,7 @@ const draftRules: FormRules = {
title: [{ required: true, message: '请输入病例标题', trigger: 'blur' }],
case_type: [{ required: true, message: '请选择病例类型', trigger: 'change' }],
traditional_standard_diagnosis: [{ required: true, message: '请输入标准诊断', trigger: 'blur' }],
- teaching_learning_objectives: [{ required: true, message: '请输入教学目标', trigger: 'blur' }]
+ teaching_goal: [{ required: true, message: '请输入教学目标', trigger: 'blur' }]
}
const isContentAdmin = computed(() => appStore.user.role === 'content-admin')
@@ -455,9 +462,10 @@ function resetDraftForm() {
draftForm.traditional_standard_diagnosis = ''
draftForm.traditional_standard_treatment = ''
draftForm.traditional_guideline_reference = ''
- draftForm.teaching_learning_objectives = ''
- draftForm.teaching_key_points = ''
- draftForm.teaching_reference_answer = ''
+ draftForm.teaching_goal = ''
+ draftForm.discussion_questions = ''
+ draftForm.teacher_guide = ''
+ draftForm.scoring_focus = ''
draftForm.scoring_rules = [{ dimension: '', score_weight: 1, ai_auto_score: true, scoring_standard: '' }]
draftForm.exam_items = []
}
@@ -501,14 +509,15 @@ function buildDraftPayload(): CreateCaseDraftPayload {
function buildCaseStructure(): Record {
if (draftForm.case_type === 'teaching') {
- if (!draftForm.teaching_learning_objectives.trim()) {
+ if (!draftForm.teaching_goal.trim()) {
throw new Error('请输入教学目标')
}
return {
- learning_objectives: draftForm.teaching_learning_objectives.trim(),
- ...(draftForm.teaching_key_points.trim() ? { key_points: draftForm.teaching_key_points.trim() } : {}),
- ...(draftForm.teaching_reference_answer.trim() ? { reference_answer: draftForm.teaching_reference_answer.trim() } : {})
+ teaching_goal: draftForm.teaching_goal.trim(),
+ ...(draftForm.discussion_questions.trim() ? { discussion_questions: draftForm.discussion_questions.trim() } : {}),
+ ...(draftForm.teacher_guide.trim() ? { teacher_guide: draftForm.teacher_guide.trim() } : {}),
+ ...(draftForm.scoring_focus.trim() ? { scoring_focus: draftForm.scoring_focus.trim() } : {})
}
}
@@ -620,15 +629,18 @@ function fillDraftFormFromGenerated(generatedResult: AiGenerateCaseResult) {
draftForm.traditional_guideline_reference =
getGeneratedString(traditional, ['guideline_reference', 'guidelineReference']) ||
getGeneratedString(record, ['guideline_reference', 'guidelineReference'])
- draftForm.teaching_learning_objectives =
- getGeneratedString(teaching, ['learning_objectives', 'learningObjectives']) ||
- getGeneratedString(record, ['learning_objectives', 'learningObjectives'])
- draftForm.teaching_key_points =
- getGeneratedString(teaching, ['key_points', 'keyPoints']) ||
- getGeneratedString(record, ['key_points', 'keyPoints'])
- draftForm.teaching_reference_answer =
- getGeneratedString(teaching, ['reference_answer', 'referenceAnswer']) ||
- getGeneratedString(record, ['reference_answer', 'referenceAnswer'])
+ draftForm.teaching_goal =
+ getGeneratedString(teaching, ['teaching_goal', 'teachingGoal']) ||
+ getGeneratedString(record, ['teaching_goal', 'teachingGoal'])
+ draftForm.discussion_questions =
+ getGeneratedString(teaching, ['discussion_questions', 'discussionQuestions']) ||
+ getGeneratedString(record, ['discussion_questions', 'discussionQuestions'])
+ draftForm.teacher_guide =
+ getGeneratedString(teaching, ['teacher_guide', 'teacherGuide']) ||
+ getGeneratedString(record, ['teacher_guide', 'teacherGuide'])
+ draftForm.scoring_focus =
+ getGeneratedString(teaching, ['scoring_focus', 'scoringFocus']) ||
+ getGeneratedString(record, ['scoring_focus', 'scoringFocus'])
draftForm.scoring_rules = scoringRules.length
? scoringRules
: [{ dimension: '', score_weight: 1, ai_auto_score: true, scoring_standard: '' }]
diff --git a/src/views/CaseReviewView.vue b/src/views/CaseReviewView.vue
index a1e7ace4..3e09e40f 100644
--- a/src/views/CaseReviewView.vue
+++ b/src/views/CaseReviewView.vue
@@ -197,19 +197,24 @@
-
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
@@ -299,9 +304,10 @@ interface ReviewCaseDetailForm {
traditional_standard_diagnosis: string
traditional_standard_treatment: string
traditional_guideline_reference: string
- teaching_learning_objectives: string
- teaching_key_points: string
- teaching_reference_answer: string
+ teaching_goal: string
+ discussion_questions: string
+ teacher_guide: string
+ scoring_focus: string
scoring_rules: ScoringRuleForm[]
exam_items: ExamItemForm[]
}
@@ -331,9 +337,10 @@ const detailForm = reactive({
traditional_standard_diagnosis: '',
traditional_standard_treatment: '',
traditional_guideline_reference: '',
- teaching_learning_objectives: '',
- teaching_key_points: '',
- teaching_reference_answer: '',
+ teaching_goal: '',
+ discussion_questions: '',
+ teacher_guide: '',
+ scoring_focus: '',
scoring_rules: [],
exam_items: []
})
@@ -463,9 +470,10 @@ function resetReviewDetailForm() {
detailForm.traditional_standard_diagnosis = ''
detailForm.traditional_standard_treatment = ''
detailForm.traditional_guideline_reference = ''
- detailForm.teaching_learning_objectives = ''
- detailForm.teaching_key_points = ''
- detailForm.teaching_reference_answer = ''
+ detailForm.teaching_goal = ''
+ detailForm.discussion_questions = ''
+ detailForm.teacher_guide = ''
+ detailForm.scoring_focus = ''
detailForm.scoring_rules = []
detailForm.exam_items = []
}
@@ -495,9 +503,10 @@ function fillDetailForm(row: CaseListItem, fullData: unknown) {
detailForm.traditional_standard_diagnosis = getString(traditional, ['standard_diagnosis', 'standardDiagnosis'])
detailForm.traditional_standard_treatment = getString(traditional, ['standard_treatment', 'standardTreatment'])
detailForm.traditional_guideline_reference = getString(traditional, ['guideline_reference', 'guidelineReference'])
- detailForm.teaching_learning_objectives = getString(teaching, ['learning_objectives', 'learningObjectives'])
- detailForm.teaching_key_points = getString(teaching, ['key_points', 'keyPoints'])
- detailForm.teaching_reference_answer = getString(teaching, ['reference_answer', 'referenceAnswer'])
+ detailForm.teaching_goal = getString(teaching, ['teaching_goal', 'teachingGoal'])
+ detailForm.discussion_questions = getString(teaching, ['discussion_questions', 'discussionQuestions'])
+ detailForm.teacher_guide = getString(teaching, ['teacher_guide', 'teacherGuide'])
+ detailForm.scoring_focus = getString(teaching, ['scoring_focus', 'scoringFocus'])
detailForm.scoring_rules = scoringRules
detailForm.exam_items = examItems
}
diff --git a/src/views/CasesView.vue b/src/views/CasesView.vue
index bf9f6046..e1ce88f7 100644
--- a/src/views/CasesView.vue
+++ b/src/views/CasesView.vue
@@ -255,19 +255,24 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
@@ -531,19 +536,24 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
@@ -659,9 +669,10 @@ interface CaseDraftForm {
traditional_standard_diagnosis: string
traditional_standard_treatment: string
traditional_guideline_reference: string
- teaching_learning_objectives: string
- teaching_key_points: string
- teaching_reference_answer: string
+ teaching_goal: string
+ discussion_questions: string
+ teacher_guide: string
+ scoring_focus: string
scoring_rules: ScoringRuleForm[]
exam_items: ExamItemForm[]
}
@@ -735,9 +746,10 @@ const caseForm = reactive({
traditional_standard_diagnosis: '',
traditional_standard_treatment: '',
traditional_guideline_reference: '',
- teaching_learning_objectives: '',
- teaching_key_points: '',
- teaching_reference_answer: '',
+ teaching_goal: '',
+ discussion_questions: '',
+ teacher_guide: '',
+ scoring_focus: '',
scoring_rules: [{ dimension: '', score_weight: 1, ai_auto_score: true, scoring_standard: '' }],
exam_items: []
})
@@ -760,9 +772,10 @@ const detailForm = reactive({
traditional_standard_diagnosis: '',
traditional_standard_treatment: '',
traditional_guideline_reference: '',
- teaching_learning_objectives: '',
- teaching_key_points: '',
- teaching_reference_answer: '',
+ teaching_goal: '',
+ discussion_questions: '',
+ teacher_guide: '',
+ scoring_focus: '',
scoring_rules: [{ dimension: '', score_weight: 1, ai_auto_score: true, scoring_standard: '' }],
exam_items: []
})
@@ -785,7 +798,7 @@ const caseRules: FormRules = {
title: [{ required: true, message: '请输入病例标题', trigger: 'blur' }],
case_type: [{ required: true, message: '请选择病例类型', trigger: 'change' }],
traditional_standard_diagnosis: [{ required: true, message: '请输入标准诊断', trigger: 'blur' }],
- teaching_learning_objectives: [{ required: true, message: '请输入教学目标', trigger: 'blur' }]
+ teaching_goal: [{ required: true, message: '请输入教学目标', trigger: 'blur' }]
}
const isContentAdmin = computed(() => appStore.user.role === 'content-admin')
@@ -907,9 +920,10 @@ function resetDraftForm(form: CaseDraftForm) {
form.traditional_standard_diagnosis = ''
form.traditional_standard_treatment = ''
form.traditional_guideline_reference = ''
- form.teaching_learning_objectives = ''
- form.teaching_key_points = ''
- form.teaching_reference_answer = ''
+ form.teaching_goal = ''
+ form.discussion_questions = ''
+ form.teacher_guide = ''
+ form.scoring_focus = ''
form.scoring_rules = [{ dimension: '', score_weight: 1, ai_auto_score: true, scoring_standard: '' }]
form.exam_items = []
}
@@ -1119,14 +1133,15 @@ function buildSaveDraftPayload(form: CaseDraftForm): SaveCaseDraftPayload {
function buildCaseStructure(form: CaseDraftForm): Record {
if (form.case_type === 'teaching') {
- if (!form.teaching_learning_objectives.trim()) {
+ if (!form.teaching_goal.trim()) {
throw new Error('请输入教学目标')
}
return {
- learning_objectives: form.teaching_learning_objectives.trim(),
- ...(form.teaching_key_points.trim() ? { key_points: form.teaching_key_points.trim() } : {}),
- ...(form.teaching_reference_answer.trim() ? { reference_answer: form.teaching_reference_answer.trim() } : {})
+ teaching_goal: form.teaching_goal.trim(),
+ ...(form.discussion_questions.trim() ? { discussion_questions: form.discussion_questions.trim() } : {}),
+ ...(form.teacher_guide.trim() ? { teacher_guide: form.teacher_guide.trim() } : {}),
+ ...(form.scoring_focus.trim() ? { scoring_focus: form.scoring_focus.trim() } : {})
}
}
@@ -1143,14 +1158,15 @@ function buildCaseStructure(form: CaseDraftForm): Record {
function buildEditableCaseStructure(form: CaseDraftForm): Record {
if (form.case_type === 'teaching') {
- if (!form.teaching_learning_objectives.trim()) {
+ if (!form.teaching_goal.trim()) {
throw new Error('请输入教学目标')
}
return {
- learning_objectives: form.teaching_learning_objectives.trim(),
- key_points: form.teaching_key_points.trim(),
- reference_answer: form.teaching_reference_answer.trim()
+ teaching_goal: form.teaching_goal.trim(),
+ discussion_questions: form.discussion_questions.trim(),
+ teacher_guide: form.teacher_guide.trim(),
+ scoring_focus: form.scoring_focus.trim()
}
}
@@ -1520,9 +1536,10 @@ function fillCaseFormFromImportedPdf(result: ImportCasePdfResult) {
caseForm.traditional_standard_diagnosis = getImportString(traditional, ['standard_diagnosis', 'standardDiagnosis'])
caseForm.traditional_standard_treatment = getImportString(traditional, ['standard_treatment', 'standardTreatment'])
caseForm.traditional_guideline_reference = getImportString(traditional, ['guideline_reference', 'guidelineReference'])
- caseForm.teaching_learning_objectives = getImportString(teaching, ['learning_objectives', 'learningObjectives'])
- caseForm.teaching_key_points = getImportString(teaching, ['key_points', 'keyPoints'])
- caseForm.teaching_reference_answer = getImportString(teaching, ['reference_answer', 'referenceAnswer'])
+ caseForm.teaching_goal = getImportString(teaching, ['teaching_goal', 'teachingGoal'])
+ caseForm.discussion_questions = getImportString(teaching, ['discussion_questions', 'discussionQuestions'])
+ caseForm.teacher_guide = getImportString(teaching, ['teacher_guide', 'teacherGuide'])
+ caseForm.scoring_focus = getImportString(teaching, ['scoring_focus', 'scoringFocus'])
caseForm.scoring_rules = scoringRules.length
? scoringRules
: [{ dimension: '', score_weight: 1, ai_auto_score: true, scoring_standard: '' }]
@@ -1556,9 +1573,10 @@ function fillDetailForm(row: CaseListItem, fullData: unknown) {
detailForm.traditional_standard_diagnosis = getImportString(traditional, ['standard_diagnosis', 'standardDiagnosis'])
detailForm.traditional_standard_treatment = getImportString(traditional, ['standard_treatment', 'standardTreatment'])
detailForm.traditional_guideline_reference = getImportString(traditional, ['guideline_reference', 'guidelineReference'])
- detailForm.teaching_learning_objectives = getImportString(teaching, ['learning_objectives', 'learningObjectives'])
- detailForm.teaching_key_points = getImportString(teaching, ['key_points', 'keyPoints'])
- detailForm.teaching_reference_answer = getImportString(teaching, ['reference_answer', 'referenceAnswer'])
+ detailForm.teaching_goal = getImportString(teaching, ['teaching_goal', 'teachingGoal'])
+ detailForm.discussion_questions = getImportString(teaching, ['discussion_questions', 'discussionQuestions'])
+ detailForm.teacher_guide = getImportString(teaching, ['teacher_guide', 'teacherGuide'])
+ detailForm.scoring_focus = getImportString(teaching, ['scoring_focus', 'scoringFocus'])
detailForm.scoring_rules = scoringRules.length
? scoringRules
: [{ dimension: '', score_weight: 1, ai_auto_score: true, scoring_standard: '' }]