更新
This commit is contained in:
@@ -335,8 +335,8 @@ class DoctorRepository(Protocol):
|
||||
def get_appointment_detail(self, appointment_id: int) -> dict[str, Any]:
|
||||
"""Return one appointment detail from ``doctor.appointment/detail``."""
|
||||
|
||||
def list_departments(self) -> list[dict[str, Any]]:
|
||||
"""Return the department tree used by appointment list filters."""
|
||||
def list_departments(self, *, apply_data_scope: bool = False) -> list[dict[str, Any]]:
|
||||
"""Return a department tree, optionally scoped to the account's data permissions."""
|
||||
|
||||
def get_diagnosis_detail(self, diagnosis_id: int, *, readonly: bool = False) -> dict[str, Any]:
|
||||
"""Return an editable or permission-aware readonly diagnosis detail."""
|
||||
@@ -976,17 +976,20 @@ class RemoteDoctorRepository:
|
||||
payload = self.client.get("doctor.appointment/detail", {"id": appointment_id})
|
||||
return dict(_require_mapping(payload, "doctor.appointment/detail"))
|
||||
|
||||
def list_departments(self) -> list[dict[str, Any]]:
|
||||
"""Load the department tree through ``dept.dept/all``."""
|
||||
def list_departments(self, *, apply_data_scope: bool = False) -> list[dict[str, Any]]:
|
||||
"""Load ``dept.dept/all`` with optional server-enforced role data scope."""
|
||||
|
||||
payload = self.client.get("dept.dept/all")
|
||||
if isinstance(payload, list):
|
||||
return [dict(row) for row in payload if isinstance(row, Mapping)]
|
||||
if isinstance(payload, Mapping):
|
||||
rows = payload.get("lists", payload.get("data", payload.get("tree")))
|
||||
if isinstance(rows, list):
|
||||
return [dict(row) for row in rows if isinstance(row, Mapping)]
|
||||
return []
|
||||
payload = self.client.get(
|
||||
"dept.dept/all", {"apply_data_scope": 1} if apply_data_scope else None
|
||||
)
|
||||
for _depth in range(5):
|
||||
if isinstance(payload, list):
|
||||
return [dict(row) for row in payload if isinstance(row, Mapping)]
|
||||
if isinstance(payload, Mapping):
|
||||
payload = payload.get("lists", payload.get("data", payload.get("tree")))
|
||||
else:
|
||||
break
|
||||
raise ApiProtocolError("部门数据格式异常,请重试")
|
||||
|
||||
def list_reception_queue(
|
||||
self,
|
||||
@@ -2056,7 +2059,10 @@ class RemoteDoctorRepository:
|
||||
) -> PageResult[Consultation]:
|
||||
"""List diagnosis records using ``tcm.diagnosis/lists``."""
|
||||
|
||||
request_filters = dict(filters)
|
||||
request_filters = dict(filters)
|
||||
department_id = request_filters.pop("department_id", None)
|
||||
if department_id not in (None, ""):
|
||||
request_filters.setdefault("assistant_dept_id", department_id)
|
||||
start_date = str(request_filters.pop("start_date", "") or "").strip()
|
||||
end_date = str(request_filters.pop("end_date", "") or "").strip()
|
||||
if start_date and start_date == end_date:
|
||||
|
||||
Reference in New Issue
Block a user