feat: update medical training case and auth modules
This commit is contained in:
@@ -183,3 +183,37 @@ class ScoringRule(BaseModel):
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.case.title} - {self.dimension}"
|
||||
|
||||
|
||||
class CaseExamItem(BaseModel):
|
||||
"""病例检查/检验项目表(与 consultation 库 case_exam_item 同构)"""
|
||||
case = models.ForeignKey(
|
||||
CaseBase, on_delete=models.CASCADE,
|
||||
related_name='exam_items', db_column='case_id',
|
||||
verbose_name='病例',
|
||||
)
|
||||
item_code = models.CharField('检查项目编码', max_length=64)
|
||||
item_name = models.CharField('检查项目名称', max_length=128)
|
||||
item_type = models.CharField('项目类型', max_length=32)
|
||||
category = models.CharField('项目分类', max_length=64, blank=True, default='')
|
||||
result_text = models.TextField('结果文本')
|
||||
result_structured = models.JSONField('结构化结果', null=True, blank=True, default=None)
|
||||
is_key = models.BooleanField('是否关键检查', default=False)
|
||||
is_abnormal = models.BooleanField('是否异常', default=False)
|
||||
score_weight = models.DecimalField('评分权重', max_digits=5, decimal_places=2, default=1.00)
|
||||
display_order = models.IntegerField('展示顺序', default=0)
|
||||
|
||||
class Meta:
|
||||
db_table = 'case_exam_item'
|
||||
verbose_name = '病例检查项'
|
||||
verbose_name_plural = '病例检查项'
|
||||
ordering = ['display_order', 'id']
|
||||
constraints = [
|
||||
models.UniqueConstraint(
|
||||
fields=['case', 'item_code'],
|
||||
name='uk_case_exam_item_code',
|
||||
),
|
||||
]
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.case_id}:{self.item_code}"
|
||||
|
||||
Reference in New Issue
Block a user