Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

fda-database

openFDA APIを通じて、医薬品・医療機器・有害事象・リコール・規制申請(510k、PMA)・物質識別(UNII)などのデータを照会できます。FDA規制データの分析や安全性調査に活用できます。

description の原文を見る

Query openFDA API for drugs, devices, adverse events, recalls, regulatory submissions (510k, PMA), substance identification (UNII), for FDA regulatory data analysis and safety research.

SKILL.md 本文

FDA データベース アクセス

概要

openFDA を通じて包括的な FDA 規制データにアクセスします。openFDA は FDA が公開データセット用の開放 API を提供するイニシアチブです。Python を使用して、医薬品、医療機器、食品、動物用/獣医用製品、および物質に関する情報を標準化されたインターフェースでクエリします。

主な機能:

  • 医薬品、医療機器、食品、獣医用製品の有害事象をクエリ
  • 製品ラベリング、承認、規制申請にアクセス
  • リコールと取締処置を監視
  • 医薬品コード(NDC)および物質識別子(UNII)を検索
  • 医療機器の分類とクリアランス(510k、PMA)を分析
  • 医薬品不足と供給問題を追跡
  • 化学構造と物質関係を研究

このスキルを使用する場合

このスキルは以下の作業をするときに使用してください:

  • 医薬品研究: 安全性プロファイル、有害事象、ラベリング、承認、不足
  • 医療機器監視: 有害事象、リコール、510(k)クリアランス、PMA承認
  • 食品安全: リコール、アレルゲン追跡、有害事象、栄養補助食品
  • 獣医学: 種および犬種別の動物用医薬品有害事象
  • 化学/物質データ: UNII検索、CAS番号マッピング、分子構造
  • 規制分析: 承認経路、取締処置、コンプライアンス追跡
  • ファーマコビジランス: 市販後監視、安全シグナル検出
  • 科学研究: 医薬品相互作用、比較安全性、疫学研究

クイックスタート

1. 基本的なセットアップ

from scripts.fda_query import FDAQuery

# 初期化(API キーはオプションですが推奨)
fda = FDAQuery(api_key="YOUR_API_KEY")

# 医薬品有害事象をクエリ
events = fda.query_drug_events("aspirin", limit=100)

# 医薬品ラベリングを取得
label = fda.query_drug_label("Lipitor", brand=True)

# 医療機器リコールを検索
recalls = fda.query("device", "enforcement",
                   search="classification:Class+I",
                   limit=50)

2. API キーのセットアップ

API はキーなしで動作しますが、登録するとレート制限が増加します:

  • キーなし: 1分あたり 240 リクエスト、1日あたり 1,000 件
  • キーあり: 1分あたり 240 リクエスト、1日あたり 120,000 件

登録: https://open.fda.gov/apis/authentication/

環境変数として設定:

export FDA_API_KEY="your_key_here"

3. 例の実行

# 包括的な例を実行
python scripts/fda_examples.py

# これは以下をデモンストレーション:
# - 医薬品安全性プロファイル
# - 医療機器監視
# - 食品リコール監視
# - 物質検索
# - 医薬品比較分析
# - 獣医用医薬品分析

FDA データベース カテゴリー

医薬品

承認から市販後監視まで、医薬品ライフサイクル全体をカバーする 6 つの医薬品関連エンドポイントにアクセスします。

エンドポイント:

  1. 有害事象 - 副作用、エラー、治療失敗のレポート
  2. 製品ラベリング - 処方情報、警告、適応症
  3. NDC ディレクトリ - 医薬品コード製品情報
  4. 取締レポート - 医薬品リコールと安全対策
  5. Drugs@FDA - 1939 年以来の歴史的承認データ
  6. 医薬品不足 - 現在および解決済みの供給問題

一般的なユースケース:

# 安全シグナル検出
fda.count_by_field("drug", "event",
                  search="patient.drug.medicinalproduct:metformin",
                  field="patient.reaction.reactionmeddrapt")

# 処方情報を取得
label = fda.query_drug_label("Keytruda", brand=True)

# リコールを確認
recalls = fda.query_drug_recalls(drug_name="metformin")

# 不足を監視
shortages = fda.query("drug", "drugshortages",
                     search="status:Currently+in+Shortage")

参照: 詳細なドキュメントについては references/drugs.md を参照してください

医療機器

医療機器の安全性、承認、および登録をカバーする 9 つの医療機器関連エンドポイントにアクセスします。

エンドポイント:

  1. 有害事象 - 医療機器の故障、傷害、死亡
  2. 510(k)クリアランス - 市販前通知
  3. 分類 - 医療機器カテゴリーとリスク階級
  4. 取締レポート - 医療機器リコール
  5. リコール - 詳細なリコール情報
  6. PMA - クラスIII医療機器の市販前承認データ
  7. 登録とリスティング - 製造施設データ
  8. UDI - 医療機器一意識別子データベース
  9. COVID-19 血清学 - 抗体検査性能データ

一般的なユースケース:

# 医療機器の安全性を監視
events = fda.query_device_events("pacemaker", limit=100)

# 医療機器分類を検索
classification = fda.query_device_classification("DQY")

# 510(k)クリアランスを検索
clearances = fda.query_device_510k(applicant="Medtronic")

# UDI で検索
device_info = fda.query("device", "udi",
                       search="identifiers.id:00884838003019")

参照: 詳細なドキュメントについては references/devices.md を参照してください

食品

安全監視とリコール向けの 2 つの食品関連エンドポイントにアクセスします。

エンドポイント:

  1. 有害事象 - 食品、栄養補助食品、および化粧品の事象
  2. 取締レポート - 食品製品リコール

一般的なユースケース:

# アレルゲンリコールを監視
recalls = fda.query_food_recalls(reason="undeclared peanut")

# 栄養補助食品の事象を追跡
events = fda.query_food_events(
    industry="Dietary Supplements")

# 汚染リコールを検索
listeria = fda.query_food_recalls(
    reason="listeria",
    classification="I")

参照: 詳細なドキュメントについては references/foods.md を参照してください

動物および獣医用

種固有の情報を持つ獣医用医薬品有害事象データにアクセスします。

エンドポイント:

  1. 有害事象 - 種、犬種、および製品別の動物用医薬品副作用

一般的なユースケース:

# 種固有の事象
dog_events = fda.query_animal_events(
    species="Dog",
    drug_name="flea collar")

# 犬種素因分析
breed_query = fda.query("animalandveterinary", "event",
    search="reaction.veddra_term_name:*seizure*+AND+"
           "animal.breed.breed_component:*Labrador*")

参照: 詳細なドキュメントについては references/animal_veterinary.md を参照してください

物質およびその他

UNII コード、化学構造、および関係を持つ分子レベルの物質データにアクセスします。

エンドポイント:

  1. 物質データ - UNII、CAS、化学構造、関係
  2. NSDE - 履歴物質データ(レガシー)

一般的なユースケース:

# UNII から CAS へのマッピング
substance = fda.query_substance_by_unii("R16CO5Y76E")

# 名前で検索
results = fda.query_substance_by_name("acetaminophen")

# 化学構造を取得
structure = fda.query("other", "substance",
    search="names.name:ibuprofen+AND+substanceClass:chemical")

参照: 詳細なドキュメントについては references/other.md を参照してください

一般的なクエリ パターン

パターン 1: 安全性プロファイル分析

複数のデータソースを組み合わせた包括的な安全性プロファイルを作成:

def drug_safety_profile(fda, drug_name):
    """完全な安全性プロファイルを生成."""

    # 1. 総有害事象数
    events = fda.query_drug_events(drug_name, limit=1)
    total = events["meta"]["results"]["total"]

    # 2. 最も一般的な反応
    reactions = fda.count_by_field(
        "drug", "event",
        search=f"patient.drug.medicinalproduct:*{drug_name}*",
        field="patient.reaction.reactionmeddrapt",
        exact=True
    )

    # 3. 重篤な事象
    serious = fda.query("drug", "event",
        search=f"patient.drug.medicinalproduct:*{drug_name}*+AND+serious:1",
        limit=1)

    # 4. 最近のリコール
    recalls = fda.query_drug_recalls(drug_name=drug_name)

    return {
        "total_events": total,
        "top_reactions": reactions["results"][:10],
        "serious_events": serious["meta"]["results"]["total"],
        "recalls": recalls["results"]
    }

パターン 2: 時間的トレンド分析

日付範囲を使用して時間経過によるトレンドを分析:

from datetime import datetime, timedelta

def get_monthly_trends(fda, drug_name, months=12):
    """月次有害事象トレンドを取得."""
    trends = []

    for i in range(months):
        end = datetime.now() - timedelta(days=30*i)
        start = end - timedelta(days=30)

        date_range = f"[{start.strftime('%Y%m%d')}+TO+{end.strftime('%Y%m%d')}]"
        search = f"patient.drug.medicinalproduct:*{drug_name}*+AND+receivedate:{date_range}"

        result = fda.query("drug", "event", search=search, limit=1)
        count = result["meta"]["results"]["total"] if "meta" in result else 0

        trends.append({
            "month": start.strftime("%Y-%m"),
            "events": count
        })

    return trends

パターン 3: 比較分析

複数の製品を並べて比較:

def compare_drugs(fda, drug_list):
    """複数の医薬品の安全性プロファイルを比較."""
    comparison = {}

    for drug in drug_list:
        # 総イベント数
        events = fda.query_drug_events(drug, limit=1)
        total = events["meta"]["results"]["total"] if "meta" in events else 0

        # 重篤なイベント
        serious = fda.query("drug", "event",
            search=f"patient.drug.medicinalproduct:*{drug}*+AND+serious:1",
            limit=1)
        serious_count = serious["meta"]["results"]["total"] if "meta" in serious else 0

        comparison[drug] = {
            "total_events": total,
            "serious_events": serious_count,
            "serious_rate": (serious_count/total*100) if total > 0 else 0
        }

    return comparison

パターン 4: クロスデータベース検索

複数のエンドポイント間でデータをリンク:

def comprehensive_device_lookup(fda, device_name):
    """すべての関連データベースで医療機器を検索."""

    return {
        "adverse_events": fda.query_device_events(device_name, limit=10),
        "510k_clearances": fda.query_device_510k(device_name=device_name),
        "recalls": fda.query("device", "enforcement",
                           search=f"product_description:*{device_name}*"),
        "udi_info": fda.query("device", "udi",
                            search=f"brand_name:*{device_name}*")
    }

結果を使用する

レスポンス構造

すべての API レスポンスは以下の構造に従います:

{
    "meta": {
        "disclaimer": "...",
        "results": {
            "skip": 0,
            "limit": 100,
            "total": 15234
        }
    },
    "results": [
        # 結果オブジェクトの配列
    ]
}

エラーハンドリング

常に潜在的なエラーを処理:

result = fda.query_drug_events("aspirin", limit=10)

if "error" in result:
    print(f"Error: {result['error']}")
elif "results" not in result or len(result["results"]) == 0:
    print("No results found")
else:
    # 結果を処理
    for event in result["results"]:
        # イベントデータを処理
        pass

ページネーション

大規模な結果セットにはページネーションを使用:

# 自動ページネーション
all_results = fda.query_all(
    "drug", "event",
    search="patient.drug.medicinalproduct:aspirin",
    max_results=5000
)

# 手動ページネーション
for skip in range(0, 1000, 100):
    batch = fda.query("drug", "event",
                     search="...",
                     limit=100,
                     skip=skip)
    # バッチを処理

ベストプラクティス

1. 具体的な検索を使用

すべき:

# 具体的なフィールド検索
search="patient.drug.medicinalproduct:aspirin"

すべきでない:

# 過度に広いワイルドカード
search="*aspirin*"

2. レート制限を実装

FDAQuery クラスは自動的にレート制限を処理しますが、制限に注意:

  • 1分あたり 240 リクエスト
  • 1日あたり 120,000 リクエスト(API キー使用時)

3. 頻繁にアクセスされるデータをキャッシュ

FDAQuery クラスには組み込みのキャッシング(デフォルトで有効)が含まれます:

# キャッシングは自動
fda = FDAQuery(api_key=api_key, use_cache=True, cache_ttl=3600)

4. カウント/集計には完全一致を使用

カウントまたは集計するときは .exact サフィックスを使用:

# 完全フレーズをカウント
fda.count_by_field("drug", "event",
                  search="...",
                  field="patient.reaction.reactionmeddrapt",
                  exact=True)  # 自動的に .exact を追加

5. 入力データを検証

検索語を整理して検証:

def clean_drug_name(name):
    """医薬品名をクエリ用にクリーン."""
    return name.strip().replace('"', '\\"')

drug_name = clean_drug_name(user_input)

API リファレンス

詳細情報:

  • 認証とレート制限references/api_basics.md を参照
  • 医薬品データベースreferences/drugs.md を参照
  • 医療機器データベースreferences/devices.md を参照
  • 食品データベースreferences/foods.md を参照
  • 動物/獣医用データベースreferences/animal_veterinary.md を参照
  • 物質データベースreferences/other.md を参照

スクリプト

scripts/fda_query.py

FDAQuery クラスを提供するメインクエリモジュール:

  • すべての FDA エンドポイントへの統一インターフェース
  • 自動レート制限とキャッシング
  • エラーハンドリングと再試行ロジック
  • 一般的なクエリパターン

scripts/fda_examples.py

以下をデモンストレーションする包括的な例:

  • 医薬品安全性プロファイル分析
  • 医療機器監視
  • 食品リコール追跡
  • 物質検索
  • 医薬品比較分析
  • 獣医用医薬品分析

例を実行:

python scripts/fda_examples.py

追加リソース

サポートとトラブルシューティング

一般的な問題

問題: レート制限を超過

  • 解決策: API キーを使用、遅延を実装、またはリクエスト頻度を低減

問題: 結果が見つからない

  • 解決策: より広い検索語を試す、スペルを確認、ワイルドカードを使用

問題: 無効なクエリ構文

  • 解決策: references/api_basics.md のクエリ構文を確認

問題: 結果にフィールドが欠落

  • 解決策: すべてのレコードにすべてのフィールドが含まれるわけではありません。常にフィールドの存在を確認

ヘルプの取得

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
davila7
リポジトリ
davila7/claude-code-templates
ライセンス
MIT
最終更新
不明

Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: davila7 · davila7/claude-code-templates · ライセンス: MIT