01 تصميم Dashboards
لوحات المعلومات توفر نظرة شاملة على البيانات.
Class MyApp.KPI.SalesKPI Extends %DeepSee.KPI {
XData KPI {
}
}لوحات المعلومات توفر نظرة شاملة على البيانات.
Class MyApp.KPI.SalesKPI Extends %DeepSee.KPI {
XData KPI {
}
}إنشاء مؤشرات أداء رئيسية (KPIs) مخصصة.
// KPI مخصص لمراقبة المبيعات
Class MyApp.KPI.SalesKPI Extends %DeepSee.KPI {
Property CurrentMonth As %Numeric;
Property LastMonth As %Numeric;
Method OnLoadKPI() As %Status {
&sql(SELECT SUM(Amount) INTO :current FROM Sales WHERE Month = MONTH(CURRENT_DATE))
&sql(SELECT SUM(Amount) INTO :last FROM Sales WHERE Month = MONTH(CURRENT_DATE) - 1)
Set ..CurrentMonth = current
Set ..LastMonth = last
// حساب نسبة النمو
Set growth = ((current - last) / last) * 100
Set ..%Data("Growth") = growth
Set ..%Data("CurrentSales") = current
Set ..%Data("Target") = 100000
Set ..%Data("Achievement") = (current / 100000) * 100
Return $$$OK
}
}تحديث بيانات Dashboard ديناميكياً باستخدام JavaScript.
// API لتوفير بيانات Dashboard
Class Hospital.Dashboard.API Extends %CSP.REST
{
XData UrlMap
{
}
ClassMethod GetMetrics() As %Status
{
Set %response.ContentType = "application/json"
Set metrics = {}
Set metrics.revenue = ..GetRevenue()
Set metrics.patients = ..GetPatientCount()
Set metrics.satisfaction = ..GetSatisfaction()
Set metrics.occupancy = ..GetOccupancy()
Write metrics.%ToJSON()
Quit $$$OK
}
ClassMethod GetKPI(name As %String) As %Status
{
Set %response.ContentType = "application/json"
Set kpi = {}
If name = "revenue" {
Set kpi.value = ..GetRevenue()
Set kpi.target = 1000000
Set kpi.unit = "ريال"
} ElseIf name = "satisfaction" {
Set kpi.value = ..GetSatisfaction()
Set kpi.target = 4.5
Set kpi.unit = "/5"
}
Write kpi.%ToJSON()
Quit $$$OK
}
}
إنشاء مؤشرات أداء رئيسية (KPIs) مخصصة ل.monitoring.
// KPI مخصص لمراقبة المبيعات
Class MyApp.KPI.SalesKPI Extends %DeepSee.KPI {
Property CurrentMonth As %Numeric;
Property LastMonth As %Numeric;
Method OnLoadKPI() As %Status {
&sql(SELECT SUM(Amount) INTO :current FROM Sales WHERE Month = MONTH(CURRENT_DATE))
&sql(SELECT SUM(Amount) INTO :last FROM Sales WHERE Month = MONTH(CURRENT_DATE) - 1)
Set ..CurrentMonth = current
Set ..LastMonth = last
// حساب نسبة النمو
Set growth = ((current - last) / last) * 100
Set ..%Data("Growth") = growth
Set ..%Data("CurrentSales") = current
Set ..%Data("Target") = 100000
Set ..%Data("Achievement") = (current / 100000) * 100
Return $$$OK
}
}
// Widget مخصص للDashboard
Class MyApp.Dashboard.SalesWidget Extends %DeepSee.Component.Widget {
XData Contents {
}
}
مبادئ تصميم لوحات المعلومات الفعالة لاتخاذ قرارات سريعة.
// Dashboard مع فلاتر
Class MyApp.Dashboard.Executive Extends %DeepSee.Component.Page {
XData Contents {
}
}
1. ما هو الهدف من Dashboard؟
عرض معلومات شاملة لاتخاذ قرارات سريعة
ما هو KPI؟
KPI (Key Performance Indicator) هو مؤشر أداء رئيسي يقيس مدى تحقيق الأهداف
الألوان المتناسقة مع تباين كافٍ تضمن وضوح المعلومات وسهولة القراءة