iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
AI & Data

用 Grafana 打造癌症資料視覺化平台:從資料清洗到AI預測呈現系列 第 21

打造「多病人切換」的互動式 Dashboard

  • 分享至 

  • xImage
  •  

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)的樣貌


上一篇
自動化預測排程(Cron Job / n8n 實作)
系列文
用 Grafana 打造癌症資料視覺化平台:從資料清洗到AI預測呈現21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言