製薬企業のファーマコビジランス(PV)部門では、医薬品の有害事象報告が日常業務の中核を占めています。症例情報を受領してから当局への報告書提出まで、複数の専門的判断と膨大な文書作成が必要となり、担当者の負荷は年々増加しています。私がこれまで複数の製薬企業で導入支援を行ってきた経験から、有害事象報告業務における最大の課題は「情報整理と文書作成に要する時間」と「過去症例との照合作業」であることが分かっています。本記事では、Claude Code を用いて有害事象報告フローの一部を効率化する方法を、実務目線で解説します。

i

本記事の結論: 有害事象報告の情報整理・用語候補提示・類似症例検索などで Claude Code が作業時間短縮に寄与する可能性がある。ただし最終的な因果関係評価・MedDRA符号決定・報告判断は必ず専門家が行う前提で運用する

有害事象報告業務の現状と課題

製薬企業の PV 部門が扱う有害事象報告は、医療機関・患者・文献など多様な情報源から寄せられます。受領した症例情報は通常、以下のフローで処理されます。

1. 症例情報の受領と初期トリアージ — メール・FAX・電話・データベース経由で届く症例を受領し、報告要否を判断

2. 情報の整理と構造化 — 非構造化テキスト(医師のナラティブ記述)から、患者背景・投与情報・事象詳細・検査値などを抽出

3. MedDRA 符号化 — 有害事象名を MedDRA(Medical Dictionary for Regulatory Activities)の標準用語に変換

4. 因果関係評価と重篤性判定 — 製品との因果関係・重篤性・予測可能性を医学的に評価

5. 報告書作成 — CIOMS フォーム・E2B 形式などの規制様式に情報を転記

6. 当局への提出 — PMDA・FDA・EMA などへ期限内に電子提出

現場の担当者が最も時間を要するのは、ステップ2の情報整理とステップ5の報告書作成です。症例ナラティブは医師の自由記述であるため、必要な情報が文中に散在しており、手作業での抽出には1症例あたり30分から1時間を要することもあります。また、ステップ3の MedDRA 符号化では、数万語に及ぶ辞書から適切な用語を選ぶ作業に専門知識と経験が求められます。

これらの課題に対し、Claude Code は「情報抽出の自動化支援」と「候補用語の提示」によって、作業時間の短縮に寄与する可能性があります。ただし、医学的判断や規制判断を AI に委ねることはできないため、最終的な決定は必ず専門家が行う運用設計が前提となります。

Claude Code による症例ナラティブの構造化

有害事象報告で最初に直面する作業は、医師が記述した症例ナラティブから必要情報を抽出し、データベースや報告様式に転記することです。以下は典型的なナラティブ例です。

70歳男性。高血圧・糖尿病の既往あり。本剤(製品A 10mg)を2023年4月1日より開始。
4月15日夜、突然の呼吸困難と発熱(38.5℃)が出現し、翌日救急外来受診。
胸部CTにて間質性肺炎の所見を認め、即日入院。本剤は中止し、ステロイドパルス療法を開始。
4月20日には症状改善し、4月28日に退院。現在は外来経過観察中。

この文章から抽出すべき構造化情報は、患者背景(年齢・性別・既往歴)、投与情報(製品名・用量・開始日・中止日)、事象情報(発現日・症状・重篤性・転帰)、処置(入院・併用薬)などです。Claude Code を用いると、以下のような Python スクリプトでこれらを抽出できます。

import anthropic
import os

client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

narrative = """
70歳男性。高血圧・糖尿病の既往あり。本剤(製品A 10mg)を2023年4月1日より開始。
4月15日夜、突然の呼吸困難と発熱(38.5℃)が出現し、翌日救急外来受診。
胸部CTにて間質性肺炎の所見を認め、即日入院。本剤は中止し、ステロイドパルス療法を開始。
4月20日には症状改善し、4月28日に退院。現在は外来経過観察中。
"""

response = client.messages.create(
    model="claude-3-7-sonnet-20250219",
    max_tokens=2000,
    messages=[{
        "role": "user",
        "content": f"""以下の症例ナラティブから、有害事象報告に必要な情報を構造化して抽出してください。
出力は JSON 形式で、以下のフィールドを含めてください:
- patient: age, gender, medical_history
- drug: product_name, dose, start_date, stop_date
- event: onset_date, description, seriousness, outcome

ナラティブ:
{narrative}"""
    }]
)

print(response.content[0].text)

このスクリプトを実行すると、Claude は以下のような JSON を出力します(実際の出力は多少異なる場合があります)。

{
  "patient": {
    "age": "70歳",
    "gender": "男性",
    "medical_history": ["高血圧", "糖尿病"]
  },
  "drug": {
    "product_name": "製品A",
    "dose": "10mg",
    "start_date": "2023-04-01",
    "stop_date": "2023-04-16"
  },
  "event": {
    "onset_date": "2023-04-15",
    "description": "呼吸困難、発熱(38.5℃)、間質性肺炎",
    "seriousness": "重篤(入院を要した)",
    "outcome": "回復"
  }
}

この JSON を既存の症例管理システムや報告書作成ツールに連携することで、手作業での転記時間を削減できます。ただし、抽出結果は必ず担当者が目視確認し、誤抽出や欠落がないかを検証する必要があります。Claude は文脈から推測して情報を補完する場合があるため、原文に明記されていない情報が混入していないかの確認が重要です。

MedDRA 符号化候補の提示

有害事象名を MedDRA 用語に変換する符号化作業は、PV 担当者の専門性が最も問われる工程です。MedDRA は階層構造(SOC → HLGT → HLT → PT → LLT)を持ち、同一の症状でも複数の PT(Preferred Term)候補が存在することがあります。例えば「間質性肺炎」の場合、“Interstitial lung disease” や “Pneumonitis” などの候補があり、症例の文脈に応じて適切な用語を選択する必要があります。

Claude Code を用いると、症例情報を基に MedDRA 用語の候補を提示させることができます。以下は候補提示の例です。

event_description = "呼吸困難、発熱(38.5℃)、間質性肺炎"

response = client.messages.create(
    model="claude-3-7-sonnet-20250219",
    max_tokens=1500,
    messages=[{
        "role": "user",
        "content": f"""以下の有害事象について、MedDRA 符号化の候補となる PT(Preferred Term)を3つ提示してください。
各候補について、選択理由も簡潔に記載してください。

事象: {event_description}"""
    }]
)

print(response.content[0].text)

出力例:

1. Interstitial lung disease
   理由: 画像所見で間質性肺炎が確認されており、最も直接的な用語

2. Pneumonitis
   理由: 肺の炎症性病変を包括的に表現する用語。薬剤性肺障害でよく用いられる

3. Dyspnoea
   理由: 呼吸困難は主要な臨床症状であり、PT として独立して符号化可能

この候補提示により、担当者は MedDRA ブラウザで全用語を検索する時間を短縮できます。ただし、最終的な PT 選択は担当者が MedDRA のガイドラインと社内 SOP に従って判断する必要があります。Claude が提示する候補はあくまで「検討の出発点」であり、確定判断ではありません。

なお、MedDRA 辞書そのものは著作権保護されており、Claude の学習データに含まれている範囲は限定的です。正確な符号化には、最新版の MedDRA ブラウザを併用する必要があります。

過去類似症例の検索と参照

有害事象評価では、過去に同様の症例が報告されているかを確認することが重要です。類似症例があれば、因果関係評価や重篤性判定の参考になり、報告書作成時の記述も効率化できます。従来は症例データベースで手作業で検索条件を設定していましたが、Claude Code を用いると自然言語での類似症例検索が可能になります。

以下は、症例データベース(CSV 形式)から類似症例を抽出する例です。

import pandas as pd

# 症例データベース(仮想例)
cases_df = pd.DataFrame({
    "case_id": ["C001", "C002", "C003", "C004"],
    "narrative": [
        "65歳女性。本剤開始2週間後に間質性肺炎を発現。入院治療後回復。",
        "72歳男性。本剤投与中に発熱と呼吸困難。肺炎と診断され抗菌薬投与。",
        "58歳男性。本剤開始1ヶ月後に薬疹が出現。本剤中止で改善。",
        "68歳女性。本剤投与開始3週間後に間質性肺障害。ステロイド治療で回復。"
    ]
})

current_case = "70歳男性。本剤開始2週間後に間質性肺炎。入院治療。"

# 類似症例の検索
search_prompt = f"""以下の症例データベースから、現在の症例と類似する症例を2つ選び、
case_id と類似理由を記載してください。

現在の症例: {current_case}

データベース:
{cases_df.to_string(index=False)}"""

response = client.messages.create(
    model="claude-3-7-sonnet-20250219",
    max_tokens=1500,
    messages=[{"role": "user", "content": search_prompt}]
)

print(response.content[0].text)

出力例:

類似症例:
1. C001 - 65歳女性の症例
   理由: 本剤開始2週間後に間質性肺炎を発現し、入院治療後回復という経過が現在の症例と酷似

2. C004 - 68歳女性の症例
   理由: 本剤開始後の間質性肺障害でステロイド治療により回復。現在の症例と病態・治療経過が類似

この検索結果を参考に、担当者は過去症例の詳細を確認し、因果関係評価や報告書記載の参考にできます。症例数が数千件に及ぶ場合でも、自然言語での検索により効率的に類似症例を特定できる可能性があります。

ただし、検索結果の妥当性は必ず担当者が検証する必要があります。Claude は文脈の類似性を判断しますが、医学的な重要性(例:発現時期のタイミング、併用薬の影響など)を必ずしも正確に評価できるわけではありません。

製薬企業における AI 活用全般については Claude Code で製薬企業の研究開発を効率化|創薬・臨床試験・申請業務への活用 でも解説しています。

報告書テンプレートの自動記入支援

有害事象報告書の作成では、CIOMS フォームや E2B 形式など、規制当局が定めた様式に情報を転記する必要があります。これらの様式は項目数が多く(CIOMS I フォームで30項目以上)、手作業での記入には時間を要します。Claude Code を用いると、抽出済みの構造化情報を基に報告書の下書きを生成できます。

以下は CIOMS フォーム形式の下書き生成例です。

structured_data = {
    "patient": {"age": "70歳", "gender": "男性", "medical_history": ["高血圧", "糖尿病"]},
    "drug": {"product_name": "製品A", "dose": "10mg", "start_date": "2023-04-01", "stop_date": "2023-04-16"},
    "event": {"onset_date": "2023-04-15", "description": "間質性肺炎", "seriousness": "重篤(入院)", "outcome": "回復"}
}

response = client.messages.create(
    model="claude-3-7-sonnet-20250219",
    max_tokens=2500,
    messages=[{
        "role": "user",
        "content": f"""以下の症例情報を基に、CIOMS I フォーム形式の報告書下書きを作成してください。
項目は以下を含めてください:
- Patient information (age, sex, medical history)
- Suspect drug (name, dose, dates)
- Adverse event (description, onset, outcome, seriousness)
- Reporter assessment (causality assessment は空欄で構いません)

症例情報:
{structured_data}"""
    }]
)

print(response.content[0].text)

出力例:

CIOMS I FORM - DRAFT

PATIENT INFORMATION
Age: 70 years
Sex: Male
Medical History: Hypertension, Diabetes mellitus

SUSPECT DRUG
Product Name: 製品A
Dose: 10mg
Start Date: 2023-04-01
Stop Date: 2023-04-16

ADVERSE EVENT
Description: Interstitial pneumonia
Onset Date: 2023-04-15
Outcome: Recovered
Seriousness: Yes (Hospitalization required)

REPORTER ASSESSMENT
Causality: [To be completed by medical reviewer]

この下書きを基に、担当者が詳細情報を追記し、因果関係評価を記入することで、報告書作成時間を短縮できます。ただし、下書きはあくまで「たたき台」であり、規制要件への適合性や記載の正確性は必ず専門家が最終確認する必要があります。

また、報告書には個人情報(患者イニシャル・医師名・医療機関名など)が含まれるため、Claude Code への入力前に匿名化処理を行う必要があります。デジライズ の導入支援では、個人情報保護に配慮したワークフロー設計も含めて提案しています。

導入時の注意点と運用設計

有害事象報告業務で Claude Code を活用する際は、以下の点に注意が必要です。

⚠

医学的判断は必ず専門家が行う: Claude Code は情報整理や候補提示を支援するツールであり、因果関係評価・重篤性判定・報告要否判断などの医学的判断を代行するものではありません。最終判断は必ず医師・薬剤師などの有資格者が行う運用設計が必須です。

また、Claude Code の出力は確率的であり、同じ入力でも異なる出力が生成される場合があります。症例評価の一貫性を保つため、プロンプトの標準化と出力結果の検証プロセスを社内 SOP に組み込む必要があります。

i

データ保護とコンプライアンス: 有害事象報告には個人情報・企業機密情報が含まれるため、Claude API へのデータ送信前に匿名化処理を行う必要があります。Anthropic は API 経由で送信されたデータを学習に使用しない方針を公表していますが、社内のデータガバナンス方針に従って利用可否を判断してください。

コンプライアンス対応については Claude Code で法務・コンプライアンス業務を効率化|契約審査から監査対応まで でも詳述しています。

段階的な導入アプローチ

有害事象報告業務への Claude Code 導入は、一度に全工程を自動化するのではなく、段階的に進めることが推奨されます。以下は典型的な導入ステップです。

Phase 1: パイロット運用(1-2ヶ月) — 非重篤症例の一部で情報抽出を試行。出力精度と作業時間への影響を測定

Phase 2: 範囲拡大(2-3ヶ月) — MedDRA 符号化候補提示・類似症例検索を追加。社内 SOP への組み込み

Phase 3: 本格運用(3ヶ月以降) — 報告書下書き生成を含む全工程で活用。定期的な精度検証と改善

パイロット運用では、Claude Code 利用前後での作業時間を記録し、効果を定量的に評価することが重要です。デジライズ が支援した複数のプロジェクトでは、情報抽出作業で条件により一定の時間短縮が確認されていますが、症例の複雑さや記述の質によって効果は異なります。

ヘルスケア分野での Claude Code 活用全般については Claude Code で医療・ヘルスケア業務を効率化|診療支援から医療 DX まで も参考にしてください。

まとめ

有害事象報告業務における Claude Code の活用により、症例ナラティブの構造化・MedDRA 符号化候補提示・類似症例検索・報告書下書き生成などで作業時間の短縮が期待できます。ただし、因果関係評価や報告要否判断などの医学的判断は必ず専門家が行う前提で運用設計を行う必要があります。

6ステップ
報告フロー工程
4フェーズ
主要活用領域
段階的
推奨導入方式

有害事象報告業務の効率化には、AI ツールの導入だけでなく、既存の症例管理システムとの連携設計・社内 SOP の整備・担当者トレーニングが不可欠です。デジライズ では、PV 部門の実務経験を持つコンサルタントが、御社の報告フローに合わせた Claude Code 導入を研修とコンサルティングの両面から支援します。

デジライズ の Claude Code 法人導入支援 では、有害事象報告業務の現状分析から、プロンプト設計・匿名化ワークフロー構築・社内 SOP への組み込みまで、一貫してサポートします。PV 部門向けの実践研修では、実際の症例(匿名化済み)を用いたハンズオン形式で、Claude Code の効果的な活用方法を習得いただけます。まずは無料相談で、御社の業務課題をお聞かせください。

関連記事