1. 儀表板架構規劃
我們先定義 Dashboard 的版面結構:
━━━━━━━━━━━━━━━━━━━━━━━
標題:癌症資料智慧分析總覽
━━━━━━━━━━━━━━━━━━━━━━━
區塊一:病人統計資訊
區塊二:AI 模型準確度
區塊三:警報與異常追蹤
區塊四:資料更新狀態
區塊五:AI 健康摘要(最新)
━━━━━━━━━━━━━━━━━━━━━━━
2. 區塊一:病人統計資訊
目標: 顯示目前總病人數、活躍病人數、平均 AFP / ALT。
SQL 查詢範例:
SELECT
COUNT(DISTINCT patient_id) AS total_patients,
ROUND(AVG(afp), 1) AS avg_afp,
ROUND(AVG(alt), 1) AS avg_alt
FROM cancer_patients;
在 Grafana:
使用 Stat Panel
顯示三個指標:總病人數、平均 AFP、平均 ALT
3. 區塊二:AI 模型準確度
從昨天建立的 model_evaluation 表中讀取:
SELECT
mae_afp, mape_afp, mae_alt, mape_alt
FROM model_evaluation
ORDER BY eval_date DESC
LIMIT 1;
在 Grafana:
(1) 使用 Gauge Panel (儀表圖)
(2) 顯示:
● AFP 模型準確率 = 100 - MAPE_AFP
● ALT 模型準確率 = 100 - MAPE_ALT
(3) 設定顏色區間:
🟢 > 90% 良好
🟡 80–90% 可接受
🔴 < 80% 需重訓
4. 區塊三:警報與異常追蹤
從前面記錄的警報表或預測結果中,抓出異常事件:
SELECT
patient_id,
record_date,
afp,
afp_pred,
afp - afp_pred AS diff
FROM cancer_patients
WHERE ABS(afp - afp_pred) > 100
ORDER BY record_date DESC
LIMIT 10;
Grafana Panel:
● 使用 Table Panel
● 標題:「近期異常預測記錄」
● 顯示病人ID、日期、AFP實際 vs 預測差異
● 可搭配顏色條件:
🔴 > 100:明顯異常
🟡 50–100:輕微異常
5. 區塊四:資料更新狀態
讓系統管理者知道資料更新是否正常。
SELECT
MAX(record_date) AS last_update
FROM cancer_patients;
● 使用 Stat Panel
● 顯示「最後資料更新時間」
● 設定閾值顏色:
🟢 24 小時內:正常
🟡 24–48 小時:需注意
🔴 超過 2 天:可能中斷
6. 區塊五:AI 健康摘要(最新)
我們在前幾天有把 ai_summary 存入資料庫。
現在取出最新一筆報告顯示:
SELECT
patient_id,
ai_summary
FROM cancer_patients
ORDER BY record_date DESC
LIMIT 1;
Grafana Panel:
● 使用 Text Panel
● 標題:「最新 AI 健康報告摘要」
● 顯示自然語言報告內容,例如:
病人 AFP 指標持續上升,建議2週內複檢並追蹤影像報告。
ALT 維持穩定,暫無急性變化。
7. 儀表板完成圖 (概念)
━━━━━━━━━━━━━━━━━━━━━━━
癌症資料智慧分析總覽
━━━━━━━━━━━━━━━━━━━━━━━
病人統計資訊 AI 模型準確度
━━━━━━━━━━━━━━━━━━━━━━━
最近異常預測記錄 資料更新狀態
━━━━━━━━━━━━━━━━━━━━━━━
最新 AI 健康摘要報告
━━━━━━━━━━━━━━━━━━━━━━━