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
+10 -5
View File
@@ -1,10 +1,10 @@
from django.db import models
from apps.common.models import BaseModel
from apps.common.models import BaseModel, SoftDeleteModel
from apps.user.models import User
class CaseBase(BaseModel):
"""病例主表"""
class CaseBase(SoftDeleteModel):
"""病例主表(软删除:`is_deleted=1` 即「已下架」;`objects` 默认过滤已删)。"""
CASE_TYPE_CHOICES = [
('traditional', '传统病例'),
('script', '剧本病例'),
@@ -15,10 +15,11 @@ class CaseBase(BaseModel):
(0, '禁用'),
(1, '正常'),
]
# 病例状态机:草稿 →[提交]→ 正常 →[医院管理员发布]→ 已发布;下架 = 软删除(is_deleted=1
PUBLISH_STATUS_CHOICES = [
(0, '草稿'),
(1, '已发布'),
(2, '下架'),
(1, '正常'),
(2, '发布'),
]
id = models.BigAutoField(primary_key=True)
@@ -26,6 +27,10 @@ class CaseBase(BaseModel):
case_type = models.CharField('病例类型', max_length=30, choices=CASE_TYPE_CHOICES)
difficulty = models.CharField('难度', max_length=20, blank=True)
difficulty_score = models.IntegerField('AI难度评分', null=True, blank=True)
institution = models.ForeignKey(
'user.Institution', on_delete=models.SET_NULL,
null=True, blank=True, related_name='cases', verbose_name='所属机构'
)
department = models.ForeignKey(
'user.Department', on_delete=models.SET_NULL,
null=True, blank=True, verbose_name='所属科室'