完善训练链路接口与PDF下载
This commit is contained in:
@@ -39,11 +39,11 @@ class OrderService:
|
||||
|
||||
def create_physical_exam_order(self, session_id: int, user_id: str, item_code: str) -> CreateOrderResponse:
|
||||
"""体格检查结果:复用检查申请逻辑,结果仍只来自数据库。"""
|
||||
return self.create_order(session_id, user_id, item_code)
|
||||
return self._create_order(session_id, user_id, item_code, require_physical=True)
|
||||
|
||||
def create_auxiliary_exam_order(self, session_id: int, user_id: str, item_code: str) -> CreateOrderResponse:
|
||||
"""辅助检查结果:复用检查申请逻辑,结果仍只来自数据库。"""
|
||||
return self.create_order(session_id, user_id, item_code)
|
||||
return self._create_order(session_id, user_id, item_code, require_physical=False)
|
||||
|
||||
def _items_response(self, items) -> OrderItemsResponse:
|
||||
"""检查列表响应:把 ORM 检查项转换成前端列表结构。"""
|
||||
@@ -64,6 +64,10 @@ class OrderService:
|
||||
|
||||
def create_order(self, session_id: int, user_id: str, item_code: str) -> CreateOrderResponse:
|
||||
"""检查申请:从数据库读取检查结果并写入当前会话记录。"""
|
||||
return self._create_order(session_id, user_id, item_code)
|
||||
|
||||
def _create_order(self, session_id: int, user_id: str, item_code: str, require_physical: bool | None = None) -> CreateOrderResponse:
|
||||
"""检查申请:统一校验会话、项目类型和幂等逻辑,检查结果只来自数据库。"""
|
||||
session = self._get_session(session_id, user_id)
|
||||
if session.status not in {"inquiry", "diagnosis", "treatment"}:
|
||||
raise AppError("SESSION_STATUS_INVALID", "current session does not allow ordering", 400)
|
||||
@@ -71,6 +75,8 @@ class OrderService:
|
||||
item = self.case_repo.get_exam_item(session.case_id, item_code)
|
||||
if not item:
|
||||
raise AppError("ORDER_ITEM_NOT_FOUND", "order item not found for current case", 404)
|
||||
if require_physical is not None and self._is_physical_item(item) != require_physical:
|
||||
raise AppError("ORDER_ITEM_TYPE_MISMATCH", "order item type does not match current exam endpoint", 400)
|
||||
|
||||
existing_order = self.session_repo.get_order_by_item(session.id, item.item_code)
|
||||
if existing_order:
|
||||
|
||||
Reference in New Issue
Block a user