1. 準備多個病人資料
在 PostgreSQL 裡插入幾位病人的測試資料:
INSERT INTO cancer_patients (patient_id, record_date, afp, alt, afp_pred, alt_pred) VALUES
('001', '2025-09-01', 300, 60, 320, 62),
('001', '2025-09-15', 400, 80, 420, 83),
('002', '2025-09-01', 180, 40, 200, 43),
('002', '2025-09-15', 260, 55, 270, 58),
('003', '2025-09-01', 90, 25, 95, 28),
('003', '2025-09-15', 110, 30, 115, 33);
這樣就有三位不同病人可供選擇。
2. 在 Grafana 建立「變數 (Variables)」
進入 Grafana Dashboard → 點右上角 ⚙️ → 選擇「Variables」。
新增變數設定:
● Name:patient_id
● Type:Query
● Data source:選你的 PostgreSQL
● Query:
SELECT DISTINCT patient_id FROM cancer_patients ORDER BY patient_id;
● Sort:Alphabetical
按下「Preview」會顯示 001, 002, 003
按「Save」
3. 修改查詢語法
在你的 AFP / ALT 折線圖的查詢裡,把病人 ID 改成變數方式:
SELECT
record_date AS "time",
afp AS "AFP Actual",
afp_pred AS "AFP Predicted"
FROM cancer_patients
WHERE patient_id = '$patient_id'
ORDER BY record_date;
Grafana 會自動把 $patient_id 替換成你選的病人代碼。
4. 測試互動效果
回到 Dashboard 頁面,
你會看到上方出現一個 下拉選單(顯示病人代碼)。
切換不同的病人:
● 圖表的折線會即時更新
● 能比較每位病人的 AFP / ALT 趨勢與 AI 預測差異
額外技巧:可以再加入一個變數,例如 @date_range,讓醫師可以切換觀察週期(例如「最近 3 個月」、「半年」、「一年」)。
5. 成果展示
現在的 Dashboard 已經具備以下特性:
● 支援多病人切換(patient_id 變數)
● 每個病人的資料與預測自動更新
● Grafana 自動刷新(每 5 分鐘更新)
● 平台更接近臨床決策支援系統(CDSS)的樣貌