feat: update cms case api

This commit is contained in:
2026-06-12 17:19:23 +08:00
parent 2fab2be0a1
commit 8fecaeeb54
14 changed files with 1375 additions and 237 deletions
+13 -12
View File
@@ -43,11 +43,11 @@ def _dim(name, score, mx):
return {'dimension': name, 'score': score, 'max_score': mx}
# 两条记录的维度评分(得分率:见注释
DIMS_98 = [_dim('信息获取', 20, 25), _dim('体格检查', 8, 10), _dim('检查决策', 9, 10),
_dim('诊断推理', 18, 20), _dim('治疗决策', 8, 10), _dim('医患沟通', 7, 10)] # 80/80/90/90/80/70
DIMS_80 = [_dim('信息获取', 20, 25), _dim('体格检查', 8, 10), _dim('检查决策', 8, 10),
_dim('诊断推理', 16, 20), _dim('治疗决策', 8, 10), _dim('医患沟通', 8, 10)] # 80/80/80/80/80/80
# 两条记录的维度评分(标准 5 维;检查利用→处置决策 用于验证归并)。得分率见行尾注释
DIMS_98 = [_dim('信息获取', 20, 25), _dim('分析推理', 18, 20), _dim('检查利用', 9, 10),
_dim('沟通人文', 7, 10), _dim('临床整合', 8, 10)] # 信息80/分析90/处置90/沟通70/整合80
DIMS_80 = [_dim('信息获取', 20, 25), _dim('分析推理', 16, 20), _dim('处置决策', 8, 10),
_dim('沟通人文', 8, 10), _dim('临床整合', 8, 10)] # 信息80/分析80/处置80/沟通80/整合80
class TrainingStatsTest(TransactionTestCase):
@@ -147,13 +147,14 @@ class TrainingStatsTest(TransactionTestCase):
d = resp.json()
self.assertEqual(d['current_score'], 89.0)
radar = {x['dimension']: x['score'] for x in d['radar']}
self.assertEqual(set(radar), {'病史采集', '查体能力', '检查决策', '诊断能力', '治疗决策', '医患沟通'})
self.assertEqual(radar['病史采集'], 80) # avg(80,80)
self.assertEqual(radar['检查决策'], 85) # avg(90,80)
self.assertEqual(radar['诊断能力'], 85) # 诊断推理 avg(90,80)
self.assertEqual(radar['医患沟通'], 75) # avg(70,80) → 最低
self.assertEqual(d['weak_dimensions'], ['医患沟通'])
self.assertIn('医患沟通', d['comment']) # 强/弱不同 → 走对比文案
self.assertEqual(set(radar), {'信息获取', '分析推理', '处置决策', '沟通人文', '临床整合'})
self.assertEqual(radar['信息获取'], 80) # avg(80,80)
self.assertEqual(radar['分析推理'], 85) # avg(90,80)
self.assertEqual(radar['处置决策'], 85) # 检查利用90 + 处置决策80 → avg
self.assertEqual(radar['临床整合'], 80) # avg(80,80)
self.assertEqual(radar['沟通人文'], 75) # avg(70,80) → 最低
self.assertEqual(d['weak_dimensions'], ['沟通人文'])
self.assertIn('沟通人文', d['comment']) # 强/弱不同 → 走对比文案
self.assertIn('突出', d['comment'])
def test_analysis_balanced_single_record(self):