製薬業界のMR(医薬情報担当者)向けAIプラットフォームは、2026年現在、リアルとデジタルのオムニチャネル統合が主流となっている。AIが医師の論文や処方傾向を分析し「どの医師に、いつ、どの情報を、どのチャネルで届けるべきか」を自動推奨することで、MRは医師との対話や深いニーズのヒアリングといった人間にしかできない業務に集中できる。本記事では、renueが自社プロダクトとして実装している製薬業界MR向けAIプラットフォームの知見をもとに、本格実装のパターンを4画面構成で解説する。
製薬MR向けAIプラットフォームに必要な4画面
本番品質のMR支援プラットフォームは以下の4画面で構成する。各画面は独立したAPIエンドポイントで提供し、SPAから呼び出す設計が望ましい。
| 画面 | 目的 | 主要API |
|---|---|---|
| 1. 医師プロフィール | MR訪問前の事前準備 | GET /doctor/{dr_cd} |
| 2. チャネル別インパクト分析 | MR活動・チャネル・売上の相関分析 | GET /channel-impact |
| 3. パーソナライズ推薦 | 医師ごとの最適アクション | GET /recommend/{dr_cd} |
| 4. KPIダッシュボード | 全体サマリー | GET /kpi |
画面1: 医師プロフィール表示
MRが訪問前に医師の事前情報を確認する画面。医師コード(例: `A1006085`)を入力すると、属性情報・過去の接触履歴・処方傾向が表示される。
必要なデータ項目
- 基本属性: 医師コード / 氏名 / 診療科 / 勤務先 / 役職
- ランク情報: 重要度ランク(S/A/B/C/G等)
- 接触履歴: MR訪問回数 / メルマガ開封率 / ウェビナー参加回数
- 処方傾向: 主要疾患領域 / 処方量トレンド
- 閲覧テーマ: 過去にデジタルコンテンツで閲覧した主要テーマ
実装パターン
医師情報はCSV/DBで管理し、FastAPIから返す。renueの実装では`doctor_profile`テーブル(またはCSV)をPandasで読み込み、医師コードで絞り込んで返している。
from fastapi import FastAPI, HTTPException
import pandas as pd
app = FastAPI()
doctor_profile = pd.read_csv("doctor_profile.csv")
@app.get("/doctor/{dr_cd}")
def get_doctor(dr_cd: str):
row = doctor_profile[doctor_profile["dr_cd"] == dr_cd]
if row.empty:
raise HTTPException(status_code=404, detail="医師が見つかりません")
return row.fillna("").iloc[0].to_dict()
画面2: チャネル別インパクト分析
MR活動・デジタルチャネル接触・売上の相関を月別に可視化する画面。「この医師にはメルマガが効いているのか」「MR訪問後の処方量は増えているか」などを判断できる。
分析対象の3指標
- MR活動回数: 月別の訪問・Web面談回数
- チャネル別接触回数: メルマガ / ウェビナー / オウンドメディア / MR / 論文
- 売上数量: 月別の処方量推移
チャネルのカテゴリ設計
一般的な製薬業界のチャネル分類は以下の通り。
- リアルチャネル: MR訪問、講演会、説明会、地域医療機関イベント
- デジタルチャネル: メルマガ、ウェビナー、e-Detail、医師向けポータル、SNS
- 出版系: 医学論文、専門誌、ニュースリリース
- 問い合わせ系: 製品情報センター(DI)、コールセンター
月別集計の実装
@app.get("/channel-impact")
def get_channel_impact(dr_cd: str = None):
mr = mr_activity.copy()
ch = channel_data.copy()
sl = sales_data.copy()
if dr_cd:
mr = mr[mr["dr_cd"] == dr_cd]
ch = ch[ch["dr_cd"] == dr_cd]
mr_monthly = mr.groupby("年月")["MR活動回数"].sum().reset_index()
ch_monthly = ch.groupby(["年月", "チャネル名"])["接触回数"].sum().reset_index()
sl_monthly = sl.groupby("年月")["売上数量"].sum().reset_index()
return {
"mr_activity": mr_monthly.to_dict(orient="records"),
"channel": ch_monthly.to_dict(orient="records"),
"sales": sl_monthly.to_dict(orient="records"),
}
医師コード(`dr_cd`)で絞り込むことで、個別医師のデータと全体サマリーの両方を同じAPIで提供できる。
画面3: パーソナライズ推薦
医師ごとに最適なアクションを推薦する画面。4画面の中で最もAIの価値が出る機能である。
推薦内容の構成
- 推奨チャネル (TOP3): 過去の接触回数が多い順に表示
- 推奨コンテンツ: 閲覧テーマから関連コンテンツを提示
- 推奨アクション: 「次回はMR訪問が有効」「ウェビナー招待が最適」など
- 最終接触状況: 最後の接触日時からの経過日数
推薦ロジックの設計
シンプルな推薦は以下の手順で実装できる。
- 対象医師のプロフィール取得
- 過去のチャネル別接触回数を集計
- 接触回数TOP3のチャネルを「推奨チャネル」として提示
- 閲覧テーマ一覧から直近の関心テーマを抽出
- テーマに紐づくコンテンツをコンテンツDBから検索
- 最終接触日からの経過日数でアクション緊急度を判定
LLMを使った高度な推薦
シンプルな集計を超えた推薦を実現するには、LLMを使う。以下をプロンプトに含めてLLMに推薦させる。
- 医師プロフィール(診療科・ランク・年齢層)
- 過去のチャネル別反応率
- 類似医師の成功パターン(協調フィルタリング)
- 最新の疾患領域トレンド
- 自社製品のキーセリングポイント
LLM出力は「具体的なアクション提案+理由」の形式で返すことで、MRが納得感を持って行動できる。
画面4: KPIダッシュボード
製品マネージャーや営業管理層向けの全体サマリー画面。以下の指標を一覧表示する。
全体サマリー指標
- 全体KPI: 総売上 / 総MR活動 / 総チャネル接触
- セグメント別: 診療科別 / ランク別 / 地域別の売上分布
- トレンド: 前月比 / 前年同期比
- アラート: 売上急落している医師 / 接触が途絶えている重要医師
- MRパフォーマンス: MR個人別の活動量と成果
ダッシュボードの更新頻度
リアルタイム更新は不要。日次バッチで前日までのデータを集計・表示すれば十分。バッチ処理はCloud Run JobやCeleryで実装する。
オムニチャネル戦略の3階層
2026年現在、製薬業界のオムニチャネル戦略は3階層で設計するのが主流である。
階層1: リアル (MR訪問)
- 重要度の高い医師(S/Aランク)に集中
- Web面談と対面訪問を組み合わせ
- 訪問前にAIが事前情報を提供
- 訪問後のレポートをAIが自動生成
階層2: デジタル (メルマガ・ウェビナー・e-Detail)
- 中位ランク(B/C)の医師にリーチ
- 配信タイミング・内容をAIで個別最適化
- 開封率・クリック率をリアルタイム追跡
- 反応が良い医師をMR訪問候補にリフトアップ
階層3: オンデマンド (医師向けポータル)
- 全医師に平等にアクセス可能
- 医師が必要な時に自分で情報を取得
- 問い合わせはチャットボットが一次対応
- 高度な質問はDI(Drug Information)部門にエスカレーション
3階層をAIで統合する
単に3階層を並列で運用するだけでは効果が限定的。AIで統合すると以下が可能になる。
- メルマガを開封した医師を自動的にMR訪問候補に追加
- ウェビナー参加後の質問内容をMRに事前共有
- ポータルでの閲覧履歴を次回MR訪問の話題にする
- どのチャネルが最も処方に結びついたかを可視化
データ基盤の設計
必要なテーブル構成
- doctor_profile: 医師属性(基本情報・ランク・閲覧テーマ)
- doctor_base: 医師のベースデータ(氏名・所属・連絡先)
- doctor_actions: 医師のアクション履歴(クリック・閲覧等)
- doctor_mail: メルマガ配信履歴
- mr_activity: MR活動ログ(訪問・面談)
- channel_data: チャネル別接触データ
- sales_data: 売上データ(月別・医師別)
- member_dr_mapping: MRと担当医師のマッピング
これらをPostgreSQL/MySQL等のリレーショナルDBで管理し、分析処理にはPandasまたはBigQuery等のデータウェアハウスを使う。
個人情報保護の徹底
医師データは個人情報に該当するため、以下の対策が必須である。
- 医師コードと実名テーブルを分離(必要時のみJOIN)
- データベースレベルでの暗号化
- アクセスログの完全記録
- MRは自分の担当医師のみ参照可能
- 退職時は即座にアクセス権削除
技術スタック
バックエンド
- 言語: Python 3.x
- フレームワーク: FastAPI(高速・型安全・自動ドキュメント)
- データ処理: Pandas(CSV/DB読み込み・集計)
- DB: PostgreSQL(本番) / CSV(PoC・デモ)
- AI/ML: OpenAI / Claude / Gemini(推薦用)
フロントエンド
- フレームワーク: Next.js 16.x
- グラフ描画: Recharts / Chart.js
- UI: Chakra UI / Tailwind CSS
renueの実装特徴
renueは「Self-DX First」の方針のもと、製薬業界向けMR支援AIプラットフォームを実装・デモ運用している。社内12業務を553のAIツールで自動化済み(2026年1月時点)であり、MR支援プラットフォームはその中の業界特化プロダクトの一つである(全て公開情報)。
実装の特徴
- CSVベースの軽量構成でデモ環境を即座に構築可能
- PoC→本番移行時はCSV→DBに差し替えるだけの設計
- FastAPI + Next.jsのモダン構成
- 医師コード・チャネル・売上を3軸で分析
- 4画面構成でMRの業務フローに即した設計
導入時のよくある失敗パターン
- データ基盤を整備せずにAIを導入: 医師マスタが不揃いで推薦精度が出ない
- 3階層を個別最適化: チャネル間のデータ連携がなく効果が出ない
- MRの使い方を想定しない: 画面が多すぎて現場が使わない
- 個人情報保護を後回し: 規制対応で稼働停止
- AI推薦の理由を説明しない: MRが納得せず使わない
- リアルタイム更新にこだわる: 過剰設計でコスト増
- ベストプラクティスの押し付け: 現場の知見を無視して形骸化
2026年の展望
2026年は、生成AIの議論と実装の間の大きなギャップを埋める重要な転換点と言われている。先行企業と追随企業の差が開き、AI活用の成熟度が将来の競争優位性を左右する。製薬業界では、以下のトレンドが加速する。
- 医師の論文データ連携によるより高度な推薦
- 音声認識によるMR訪問内容の自動ログ化
- 生成AIによるMR報告書の自動要約
- 処方傾向予測AIによる営業ターゲティング
- 医療従事者のAI利用履歴分析
よくある質問
医師データの取得元は?
主に以下の3つ。①製薬会社が自社で管理する担当医師DB、②外部データベンダー(医師情報DB)、③自社のCRM/CFM。これらを統合して医師マスタを構築する。
CSVで実装する理由は?
PoCやデモ段階ではCSVで十分な実装ができる。Pandasで読み込めば十分なパフォーマンスが出る。本番移行時にはPostgreSQLやMySQL等のDBに切り替える。設計を疎結合にしておけば移行は容易。
オムニチャネルのKPIは何を見るべき?
「接触回数」だけでなく「処方への寄与度」を測る。具体的にはチャネル別の売上貢献度、チャネルMIXの最適化率、医師別のエンゲージメントスコアなど。単純な接触回数だけでは効果が測れない。
個人情報保護の具体対策は?
医師データはGDPR/APPI(個人情報保護法)の対象。①データ最小化原則、②アクセスログ完全記録、③暗号化保存、④退職者の即時権限剥奪、⑤定期監査が必須。医療機関側の同意取得も重要。
導入後に最も改善するKPIは?
「MR1人あたりの重要医師カバレッジ」と「デジタルチャネルのエンゲージメント率」が最も改善する。次いで「処方意向の高い医師の検出精度」「MR訪問の成約率」が改善する。これらを導入前のベースラインと比較することでROIを定量化できる。
