finalize medical consultation agent backend

This commit is contained in:
刘金宝
2026-06-03 15:51:46 +08:00
parent 93d9e1c6a5
commit eb43573a44
33 changed files with 1063 additions and 281 deletions
+5 -18
View File
@@ -20,7 +20,6 @@ from app.models import (
ScoringRule,
TeachingCase,
TraditionalCase,
User,
)
@@ -35,8 +34,7 @@ def init_database() -> None:
def seed_demo_data(db) -> None:
"""病例导入:写入儿科支气管肺炎病例、检查项目、评分规则和提示词元数据。"""
department = _get_or_create_department(db)
user = _get_or_create_seed_user(db)
case = _get_or_create_case_base(db, department.id, user.id)
case = _get_or_create_case_base(db, department.id)
_seed_traditional_case(db, case.id)
_seed_teaching_case(db, case.id)
_seed_exam_items(db, case.id)
@@ -47,27 +45,16 @@ def seed_demo_data(db) -> None:
def _get_or_create_department(db) -> Department:
"""科室种子:写入儿科科室。"""
department = db.scalar(select(Department).where(Department.code == "PEDIATRICS"))
department = db.scalar(select(Department).where(Department.name == "儿科"))
if department:
return department
department = Department(name="儿科", code="PEDIATRICS", sort_order=1, is_active=True)
department = Department(name="儿科", category="clinical", institution_id=1)
db.add(department)
db.flush()
return department
def _get_or_create_seed_user(db) -> User:
"""用户占位:写入系统种子用户,不承担登录职责。"""
user = db.scalar(select(User).where(User.external_user_id == "system_seed"))
if user:
return user
user = User(external_user_id="system_seed", display_name="系统种子数据")
db.add(user)
db.flush()
return user
def _get_or_create_case_base(db, department_id: int, user_id: int) -> CaseBase:
def _get_or_create_case_base(db, department_id: int) -> CaseBase:
"""病例主表种子:以 case_base 作为病例唯一主表。"""
case = db.scalar(select(CaseBase).where(CaseBase.title == "支气管肺炎 - 6岁男性患儿"))
if case:
@@ -99,7 +86,7 @@ def _get_or_create_case_base(db, department_id: int, user_id: int) -> CaseBase:
vector_status=0,
publish_status=1,
status=1,
created_by_id=user_id,
created_by_id=None,
department_id=department_id,
)
db.add(case)