全局中文化

This commit is contained in:
Cheng Zhou
2026-01-12 11:14:04 +08:00
parent 9021c7fe2b
commit 1338fa7e2b
103 changed files with 2443 additions and 1533 deletions
+9 -9
View File
@@ -15,7 +15,7 @@ router = APIRouter()
async def _ensure_subject(db: AsyncSession, study_id: uuid.UUID, subject_id: uuid.UUID):
subject = await subject_crud.get_subject(db, subject_id)
if not subject or subject.study_id != study_id:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Subject not found")
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="受试者不存在")
return subject
@@ -49,7 +49,7 @@ async def create_visit(
) -> VisitRead:
subject = await _ensure_subject(db, study_id, subject_id)
if visit_in.subject_id != subject_id:
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="Subject mismatch")
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="受试者不匹配")
visit = await visit_crud.create_visit(
db,
study_id=study_id,
@@ -65,7 +65,7 @@ async def create_visit(
entity_type="visit",
entity_id=visit.id,
action="CREATE_VISIT",
detail=f"Visit {visit.visit_code} created",
detail=f"访视 {visit.visit_code} 已创建",
operator_id=current_user.id,
operator_role=current_user.role,
)
@@ -88,20 +88,20 @@ async def update_visit(
await _ensure_subject(db, study_id, subject_id)
visit = await visit_crud.get_visit(db, visit_id)
if not visit or visit.subject_id != subject_id or visit.study_id != study_id:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Visit not found")
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="访视不存在")
if visit_in.status == "DONE" and not visit_in.actual_date:
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="actual_date required when DONE")
raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="状态为已完成时必须填写实际日期")
updated = await visit_crud.update_visit(db, visit, visit_in)
detail = None
if visit_in.status:
detail = f"visit {visit.visit_code} {visit.status} -> {visit_in.status}"
detail = f"访视 {visit.visit_code} {visit.status} -> {visit_in.status}"
await audit_crud.log_action(
db,
study_id=study_id,
entity_type="visit",
entity_id=visit_id,
action="VISIT_STATUS_CHANGE" if detail else "UPDATE_VISIT",
detail=detail or "Visit updated",
detail=detail or "访视已更新",
operator_id=current_user.id,
operator_role=current_user.role,
)
@@ -123,7 +123,7 @@ async def delete_visit(
await _ensure_subject(db, study_id, subject_id)
visit = await visit_crud.get_visit(db, visit_id)
if not visit or visit.subject_id != subject_id or visit.study_id != study_id:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Visit not found")
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="访视不存在")
await visit_crud.delete_visit(db, visit)
await audit_crud.log_action(
db,
@@ -131,7 +131,7 @@ async def delete_visit(
entity_type="visit",
entity_id=visit_id,
action="DELETE_VISIT",
detail=f"Visit {visit_id} deleted",
detail=f"访视 {visit_id} 已删除",
operator_id=current_user.id,
operator_role=current_user.role,
)