from sqlalchemy import select from sqlalchemy.orm import Session from app.models.department import Department from app.models.source_case import ScoringRule class SourceCaseRepository: """病例辅助只读仓储:读取科室名称和病例评分规则。""" def __init__(self, db: Session) -> None: self.db = db def get_department_name(self, department_id: int | None) -> str: """科室名称:按 department 表读取当前病例所属科室名称。""" if not department_id: return "" department = self.db.scalar(select(Department).where(Department.id == department_id)) return department.name if department else "" def get_scoring_rules(self, case_id: int) -> list[ScoringRule]: """评分规则:读取当前病例对应的基础评分细则。""" stmt = select(ScoringRule).where(ScoringRule.case_id == case_id).order_by(ScoringRule.id) return list(self.db.scalars(stmt).all())