Files
fastapi/app/repositories/source_case_repository.py
2026-06-04 17:50:22 +08:00

25 lines
985 B
Python

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())