iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0

前言

昨天完成了副作用警示功能,讓查詢結果更貼近實際使用場景。
不過在臨床或日常用藥中,另一個很重要的問題是藥品交互作用
有些藥單吃沒事,但兩種一起吃就會出問題,例如:

  • 布洛芬 + 阿斯匹靈:會增加腸胃出血的風險

  • 普拿疼 + 酒精:增加肝臟損傷風險

所以今天要做的,就是讓系統能偵測同時輸入的兩種藥物,並提醒使用者是否可能有交互作用。

實作過程

新增一張 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")

測試成果

查詢 布洛芬 + 阿斯匹靈:

⚠️ 警示:布洛芬 與 阿斯匹靈 -> 同時使用可能增加腸胃道出血風險

查詢 普拿疼 + 酒精:

⚠️ 警示:普拿疼 與 酒精 -> 同時使用可能增加肝臟負擔與損傷

上一篇
Day 23:加入副作用警示功能
下一篇
Day 25:藥品劑量與用法建議
系列文
AI 藥師助手:打造人人都看得懂的藥品查詢系統27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言