use axum::extract::{Extension, FromRef, State}; use axum::Json; use erp_core::error::AppError; use erp_core::rbac::require_permission; use erp_core::types::{ApiResponse, TenantContext}; use crate::dto::dialysis_stats_dto::DialysisStatisticsResp; use crate::service::dialysis_stats_service; use crate::state::DialysisState; pub async fn get_dialysis_stats( State(state): State, Extension(ctx): Extension, ) -> Result>, AppError> where DialysisState: FromRef, S: Clone + Send + Sync + 'static, { require_permission(&ctx, "health.dialysis.list")?; let dialysis_state = DialysisState::from_ref(&state); let stats = dialysis_stats_service::get_dialysis_statistics(&dialysis_state, ctx.tenant_id).await?; Ok(Json(ApiResponse::ok(stats))) }