usage_examples.py•8.61 kB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
中西藥交互作用查詢系統使用範例
展示如何使用MCP工具進行各種查詢操作
"""
import json
import asyncio
from pathlib import Path
# 假設我們有可用的MCP工具
def demo_basic_search():
"""演示基礎搜尋功能"""
print("=== 基礎搜尋功能演示 ===\n")
# 搜尋中藥範例
print("1. 搜尋中藥 - 人參")
print("搜尋關鍵字:人參")
print("預期結果:找到人參的詳細資訊,包括性味歸經、功效主治等")
print()
print("2. 搜尋中藥 - 補氣藥")
print("搜尋關鍵字:補氣")
print("預期結果:找到所有補氣類中藥")
print()
# 搜尋西藥範例
print("3. 搜尋西藥 - 阿斯匹靈")
print("搜尋關鍵字:阿斯匹靈")
print("預期結果:找到阿斯匹靈的詳細資訊")
print()
print("4. 搜尋西藥 - 心血管藥物")
print("搜尋關鍵字:心血管")
print("預期結果:找到所有心血管類西藥")
print()
def demo_interaction_check():
"""演示交互作用檢查功能"""
print("=== 交互作用檢查功能演示 ===\n")
print("1. 檢查已知的危險交互作用")
print("中藥:人參")
print("西藥:warfarin")
print("預期結果:發現重度交互作用,增加出血風險")
print()
print("2. 檢查致命交互作用")
print("中藥:人參")
print("西藥:地高辛")
print("預期結果:發現致命交互作用,增加心律不整風險")
print()
print("3. 檢查安全的藥物組合")
print("中藥:紅棗")
print("西藥:威而鋼")
print("預期結果:未發現已知交互作用,但仍需謹慎使用")
print()
def demo_batch_check():
"""演示批次檢查功能"""
print("=== 批次檢查功能演示 ===\n")
print("1. 檢查多個中藥與多個西藥的交互作用")
print("中藥列表:人參,當歸,甘草")
print("西藥列表:阿斯匹靈,warfarin,胰島素")
print("預期結果:檢查6個組合,返回所有發現的交互作用")
print()
print("2. 檢查中藥方劑與西藥的交互作用")
print("中藥列表:人參,黃耆,白朮,茯苓")
print("西藥列表:ACE抑制劑,β阻斷劑,利尿劑")
print("預期結果:檢查12個組合,提供安全建議")
print()
def demo_detailed_analysis():
"""演示詳細分析功能"""
print("=== 詳細分析功能演示 ===\n")
print("1. 分析特定中藥的所有交互作用")
print("中藥:人參")
print("分析內容:")
print(" - 總交互作用數量")
print(" - 嚴重程度分布")
print(" - 高風險交互作用清單")
print(" - 專業建議")
print()
print("2. 分析特定西藥的所有交互作用")
print("西藥:warfarin")
print("分析內容:")
print(" - 與哪些中藥有交互作用")
print(" - 交互作用的嚴重程度")
print(" - 出血風險評估")
print(" - 監測建議")
print()
def demo_clinical_scenarios():
"""演示臨床使用情境"""
print("=== 臨床使用情境演示 ===\n")
print("情境1:老年患者用藥安全評估")
print("患者資訊:75歲男性,高血壓、糖尿病、心房顫動")
print("用藥清單:中藥(人參、黃耆、丹參)、西藥(ACE抑制劑、胰島素、warfarin)")
print("分析重點:")
print(" - 多重用藥的交互作用風險")
print(" - 年齡相關的用藥調整")
print(" - 出血風險評估")
print()
print("情境2:中風康復期患者用藥檢查")
print("患者資訊:60歲女性,中風康復期")
print("用藥清單:中藥(丹參、三七、川芎)、西藥(阿斯匹靈、抗凝血藥)")
print("分析重點:")
print(" - 活血化瘀藥與抗凝血藥的交互作用")
print(" - 出血風險")
print(" - 替代方案建議")
print()
print("情境3:腫瘤患者化療期間中醫輔助治療檢查")
print("患者資訊:50歲女性,乳癌化療期間")
print("用藥清單:中藥(人參、黃耆、白朮)、西藥(化療藥物、止吐藥)")
print("分析重點:")
print(" - 中藥對化療效果的影響")
print(" - 免疫系統交互作用")
print(" - 化療副作用緩解")
print()
def demo_api_examples():
"""演示API使用範例"""
print("=== API使用範例 ===\n")
print("範例1:基礎搜尋API調用")
print("```json")
print('{"keyword": "人參", "limit": 20}')
print("```")
print()
print("範例2:交互作用檢查API調用")
print("```json")
print('{"chinese_medicine": "人參", "western_medicine": "warfarin"}')
print("```")
print()
print("範例3:批次檢查API調用")
print("```json")
print('{')
print(' "chinese_medicines": ["人參", "當歸", "甘草"],')
print(' "western_medicines": ["阿斯匹靈", "warfarin", "胰島素"]')
print('}')
print("```")
print()
def demo_error_handling():
"""演示錯誤處理"""
print("=== 錯誤處理演示 ===\n")
print("1. 搜尋不存在的藥物")
print("輸入:keyword='不存在的藥物'")
print("輸出:{'success': True, 'message': '未找到包含xxx的中藥', 'data': []}")
print()
print("2. 檢查不匹配的藥物名稱")
print("輸入:chinese_medicine='不存在的藥物', western_medicine='阿斯匹靈'")
print("輸出:{'success': False, 'error': '未找到中藥: 不存在的藥物'}")
print()
print("3. 空參數處理")
print("輸入:keyword=''")
print("輸出:{'success': False, 'error': '請提供搜尋關鍵字'}")
print()
def demo_data_statistics():
"""演示資料統計"""
print("=== 資料統計 ===\n")
print("目前資料庫包含:")
print("- 中藥:21種(涵蓋補氣、補血、活血化瘀、補陰、補陽等分類)")
print("- 西藥:15種(涵蓋心血管、抗凝血、內分泌、抗感染等分類)")
print("- 交互作用:30+個真實案例")
print()
print("嚴重程度分布:")
print("- 致命交互作用:3個(人參+地高辛、丹參+warfarin、銀杏+warfarin)")
print("- 重度交互作用:8個(如三七+warfarin、銀杏+阿斯匹靈等)")
print("- 中度交互作用:12個")
print("- 輕度交互作用:7個")
print()
def demo_recommendations():
"""演示專業建議"""
print("=== 專業建議與注意事項 ===\n")
print("高風險藥物組合(禁忌同時使用):")
print("1. 人參 + 地高辛(致命)")
print("2. 丹參 + warfarin(致命)")
print("3. 銀杏 + warfarin(致命)")
print("4. 三七 + warfarin(致命)")
print()
print("需要密切監測的組合:")
print("1. 人參 + warfarin(重度)")
print("2. 當歸 + 阿斯匹靈(中度)")
print("3. 甘草 + 利尿劑(中度)")
print()
print("用藥安全建議:")
print("1. 任何中藥與抗凝血藥物的組合都需要謹慎")
print("2. 補氣類中藥可能增強心血管藥物效果")
print("3. 活血化瘀類中藥與抗血小板藥物有協同作用")
print("4. 建議在醫師指導下使用任何藥物")
print()
def main():
"""主函數:執行所有演示"""
print("=" * 60)
print("中西藥交互作用查詢系統 - 使用範例演示")
print("=" * 60)
print()
demo_basic_search()
input("按Enter鍵繼續...")
print("\n" + "="*60 + "\n")
demo_interaction_check()
input("按Enter鍵繼續...")
print("\n" + "="*60 + "\n")
demo_batch_check()
input("按Enter鍵繼續...")
print("\n" + "="*60 + "\n")
demo_detailed_analysis()
input("按Enter鍵繼續...")
print("\n" + "="*60 + "\n")
demo_clinical_scenarios()
input("按Enter鍵繼續...")
print("\n" + "="*60 + "\n")
demo_api_examples()
input("按Enter鍵繼續...")
print("\n" + "="*60 + "\n")
demo_error_handling()
input("按Enter鍵繼續...")
print("\n" + "="*60 + "\n")
demo_data_statistics()
input("按Enter鍵繼續...")
print("\n" + "="*60 + "\n")
demo_recommendations()
print("\n" + "="*60)
print("演示完成!")
print("="*60)
if __name__ == "__main__":
main()