昨天完成了副作用警示功能,讓查詢結果更貼近實際使用場景。
不過在臨床或日常用藥中,另一個很重要的問題是藥品交互作用。
有些藥單吃沒事,但兩種一起吃就會出問題,例如:
布洛芬 + 阿斯匹靈:會增加腸胃出血的風險
普拿疼 + 酒精:增加肝臟損傷風險
所以今天要做的,就是讓系統能偵測同時輸入的兩種藥物,並提醒使用者是否可能有交互作用。
新增一張 interactions 表並插入一些常見案例:
CREATE TABLE interactions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
drug1 TEXT NOT NULL,
drug2 TEXT NOT NULL,
effect TEXT NOT NULL
);
INSERT INTO interactions (drug1, drug2, effect)
VALUES
('布洛芬', '阿斯匹靈', '同時使用可能增加腸胃道出血風險'),
('普拿疼', '酒精', '同時使用可能增加肝臟負擔與損傷'),
('抗組織胺', '酒精', '可能造成過度嗜睡與注意力下降');
撰寫一個簡單的交互作用查詢函式:
import sqlite3
def check_interaction(drug1, drug2):
conn = sqlite3.connect("medicine.db")
cursor = conn.cursor()
# 先查 drug1 + drug2
cursor.execute("""
SELECT effect FROM interactions
WHERE (drug1 = ? AND drug2 = ?)
OR (drug1 = ? AND drug2 = ?)
""", (drug1, drug2, drug2, drug1))
result = cursor.fetchone()
if result:
print(f"⚠️ 警示:{drug1} 與 {drug2} -> {result[0]}")
else:
print(f"{drug1} 與 {drug2} 目前未發現已知交互作用")
conn.close()
# 測試
check_interaction("布洛芬", "阿斯匹靈")
check_interaction("普拿疼", "酒精")
check_interaction("普拿疼", "維他命C")
查詢 布洛芬 + 阿斯匹靈:
⚠️ 警示:布洛芬 與 阿斯匹靈 -> 同時使用可能增加腸胃道出血風險
查詢 普拿疼 + 酒精:
⚠️ 警示:普拿疼 與 酒精 -> 同時使用可能增加肝臟負擔與損傷