病院の薬剤部で、医薬品の出荷調整・供給停止の情報をエージェントが毎日見回り、院内の採用薬と在庫と照らして、代替薬の検討が要る品目を一覧にする
厚生労働省が公表する医療用医薬品の供給状況の一覧を、エージェントが毎日見回ります。限定出荷や供給停止に変わった品目を院内の採用薬と在庫に照らし、代替薬の検討が要る品目を、在庫の持つ日数の短い順に一覧にします。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- 医療/小売
- 対象部門
- 購買
- 対象業務
- 情報検索/比較検討
- 主な課題
- 人手が足りない/情報が見つからない/期限・対応漏れが起きる
- AIで行う処理
- エージェント
- 主な効果
- 判断支援/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 担当の薬剤師が厚生労働省のページを開き、新しい版のExcelを取る
- 「今回掲載時の更新有無」の列が「New」の行を絞り込み、採用薬のマスタとYJコードで突き合わせる
- 卸からのメールとFAXで届く出荷調整の連絡と照らし、漏れが無いかを見る
- 該当した採用薬について、物品管理の仕組みで在庫と1日の払い出しの量を調べ、何日持つかを出す
- 同じ成分・規格の他社品と、院内で採用している同効薬の供給状況を、一覧で調べ直す
- 検討表を作り、薬剤部長と関係する診療科に回す
- 自動毎日朝7時にワークフローが動き、厚生労働省のページからExcelのリンクを取り出す
- 自動リンクが前回と同じなら何もせず終わる。新しければExcelを取り、表として読む
- 自動前回の一覧とYJコードで比べ、出荷対応・解除の見込み・出荷量のどれかが変わった行を出す
- 自動変わった行を採用薬のマスタとYJコードで突き合わせ、採用薬だけに絞る
- 【AI】 エージェントが採用薬1品目ごとに、在庫の持つ日数、同じ成分・規格の他社品と院内の同効薬の供給状況、前回の検討の記録を引き、検討表の下書きを作る
- 自動在庫の持つ日数の短い順に一覧へ書き、薬剤部のチャットへ知らせる
- 人担当の薬剤師が下書きを確かめ、検討の要否を決める
- 人代替薬の検討が要るものは、薬剤部長と診療科に回し、院内の手続きに進める
各工程の詳しい説明を読む
- 担当の薬剤師が厚生労働省のページを開き、新しい版のExcelを取る
- 「今回掲載時の更新有無」の列が「New」の行を絞り込み、採用薬のマスタとYJコードで突き合わせる
- 卸からのメールとFAXで届く出荷調整の連絡と照らし、漏れが無いかを見る
- 該当した採用薬について、物品管理の仕組みで在庫と1日の払い出しの量を調べ、何日持つかを出す
- 同じ成分・規格の他社品と、院内で採用している同効薬の供給状況を、一覧で調べ直す
- 検討表を作り、薬剤部長と関係する診療科に回す
(a)新しい版に気づくのが遅れる。 一覧は掲載のたびにファイル名が変わります。病棟の業務や調剤の応援に入った日は、ページを開けません。 翌週に開いて、先週の限定出荷に気づくことがあります。
(b)「New」だけでは追い切れない。 「New」は前回の掲載からの更新を示すので、間の版を1つ見落とすと、その版で変わった品目は次の版では「New」が付きません。 自分で前回見た版と比べないと、漏れが出ます。
(c)代わりの候補を調べるのに時間がかかる。 同じ成分・規格の他社品が出荷できているか、院内の同効薬に余裕があるかを、成分名で一覧を引き直し、物品管理の仕組みで在庫を見る作業を、1品目ずつくり返します。他社品も同時に限定出荷になっていることが多く、候補を挙げても使えないことがあります。
(d)急ぎの順が見えない。 一覧の状況の重さと、院内の在庫の持つ日数が、別々の画面にあります。供給停止の品目から先に調べていると、限定出荷で在庫が少ない品目が後回しになります。
- 【自動】 毎日朝7時にワークフローが動き、厚生労働省のページからExcelのリンクを取り出す
- 【自動】 リンクが前回と同じなら何もせず終わる。新しければExcelを取り、表として読む
- 【自動】 前回の一覧とYJコードで比べ、出荷対応・解除の見込み・出荷量のどれかが変わった行を出す
- 【自動】 変わった行を採用薬のマスタとYJコードで突き合わせ、採用薬だけに絞る
- 【AI】 エージェントが採用薬1品目ごとに、在庫の持つ日数、同じ成分・規格の他社品と院内の同効薬の供給状況、前回の検討の記録を引き、検討表の下書きを作る
- 【自動】 在庫の持つ日数の短い順に一覧へ書き、薬剤部のチャットへ知らせる
- 【人】 担当の薬剤師が下書きを確かめ、検討の要否を決める
- 【人】 代替薬の検討が要るものは、薬剤部長と診療科に回し、院内の手続きに進める
3番目と4番目をAIにさせないのは、意図してのことです。 YJコードで比べれば、変わった品目は確実に出ます。1万6千行をAIに読ませると、取りこぼしの有無を確かめる手段がなくなります。 第3章の(b)は、自分で前回の一覧と比べることで解けます。
7番目の判断は、すべて人が行います。 エージェントが出すのは、在庫の数字と、候補の供給状況と、確かめるべき点です。
02今回想定するシステム構成
厚生労働省「医療用医薬品供給状況」のページ │ ▼【トリガー】Schedule Trigger(毎日 7時、Asia/Tokyo) n8n のワークフロー ├──▶ HTTP Request + HTML でExcelのリンクを取り出し、前回と比べる ├──▶ 新しければ HTTP Request でファイルとして取り、Extract From XLSX で読む ├──▶ Compare Datasets で前回の一覧とYJコードで比べる(違うもの・新しいもの) ├──▶ 採用薬のマスタとYJコードで突き合わせ、採用薬に絞る ▼ AI Agent ノード(Tools Agent)+ Claude │ 採用薬1品目ごとに、道具を選んで引く │ ・在庫と払い出しの量を引く ・同じ成分・規格の品目の供給状況を引く │ ・院内の同効薬を引く ・前回の検討の記録を引く │ Structured Output Parser で決まった形のJSONを返す ▼ 検討の一覧(PostgreSQL の別の表)→ 薬剤部のチャットへ通知 ▼【人】検討の要否・代替薬の院内の手続き・診療科への周知
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n | Make、Power Automate、Zapier |
| 生成AI | Claude API(n8n の Anthropic Chat Model ノード) | OpenAI API、Gemini API |
| 連携 | PostgreSQL(供給状況の一覧の写し、採用薬のマスタ・在庫の写し、検討の一覧) | MySQL |
| 通知 | 院内のチャット | メール |
新しく足すのは、n8n のワークフローと、写しのデータベースだけです。 物品管理の仕組みと電子カルテには書き込みません。毎晩、採用薬のマスタと在庫・払い出しの量を書き出して写しを作り、エージェントはその写しを引きます。 患者の情報は使いません。
一覧のExcelは、ページのリンクから取ります。 厚生労働省のページには「医療用医薬品供給状況(令和8年10月6日現在)」のようなリンクで最新のファイルが置かれ、ファイル名に日付が入っています。 n8n の HTML ノードの Extract HTML Content で、CSS セレクターでリンクの文字と href 属性を取り出し、前回のリンクと比べます。
読むのは、Extract From File ノードの Extract From XLSX です。 Excelの1行目は「①薬剤区分」「⑤YJコード」「⑫製造販売業者の「出荷対応」の状況」のような長い見出しで、改行も含みます。見出しの文字では列を指さず、列の位置で読み、読んだ後に列名を付け直します。
差分は Compare Datasets で取ります。 2つの入力を比べ、Aにだけあるもの、同じもの、違うもの、Bにだけあるものの4つに分けて出すノードで、比べる項目を指定できます。YJコードで突き合わせ、「違うもの」が状況の変わった品目、今回にだけあるものが新しく載った品目です。
n8n のエージェントを選ぶ理由は、品目ごとに調べる先が変わるからです。 同じ成分・規格の他社品が多い後発品は一覧を引けば済み、他社品の無い先発品は院内の同効薬まで引き、注射薬は病棟の払い出しまで見ます。Tools Agent は、道具の機能を理解し、タスクに応じてどの道具を使うかを決めるとされています。
03どうやって実装するのか
処理の起点を決める
毎日朝7時に、Schedule Trigger で動かします。 一覧は掲載のたびにファイルが替わり、いつ載るかは決まっていません。毎日見に行き、リンクが前回と同じなら何もせずに終えます。 担当の薬剤師が病棟に出ている日も、見回りは止まりません。第3章の(a)は、ここで解きます。
Schedule Trigger は、ワークフローのタイムゾーンが無ければ n8n のインスタンスのタイムゾーンを使い、セルフホストの既定は America/New York とされています。ワークフローのタイムゾーンを Asia/Tokyo にし、保存して公開します。公開しないと Schedule Trigger は動かないとされています。
朝7時にするのは、薬剤部の朝の打ち合わせの前に一覧を出すためです。 その日の発注と、病棟への連絡の段取りに、そのまま使えます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 供給状況の一覧 | YJコード、成分名、規格単位、品名、製造販売業者、出荷対応の状況、理由、解除の見込み、出荷量の状況、更新日、「New」 | 厚生労働省のページのExcel |
| 前回の一覧 | 前回読んだExcelの全行 | 前回の実行の記録 |
| 採用薬のマスタの写し | YJコード、品名、成分名、規格、薬効分類、採用の区分、主に使う診療科 | 毎晩写す |
| 在庫と払い出しの写し | 品目ごとの在庫数、直近28日の払い出しの量、発注残 | 物品管理の仕組みから毎晩写す |
| 院内の同効薬の対応表 | 品目ごとに、院内で代わりになりうる採用薬(薬剤部が登録) | 薬剤部で作る表 |
| 前回の検討の記録 | 同じ品目の前回の検討の結論、代替に使った品目、日付 | 検討の一覧 |
質を決めるのは、院内の同効薬の対応表です。 同じ成分・規格の他社品は一覧から機械的に引けますが、成分が違う同効薬は、薬効分類が同じというだけでは代わりになりません。 用量の換算、適応の違い、院内の採用の経緯は、薬剤部が持っている知識です。対応表に無い同効薬を、エージェントに挙げさせません。
払い出しの量は直近28日で取ります。 曜日の偏りをならし、季節で使用量が変わる薬でも直近の傾向を見られるからです。
一覧の「限定出荷/供給停止の理由」の列も、そのまま渡します。 製造の問題なのか、他社品の影響で注文が集中しているのかで、同じ成分の他社品に頼れるかの見通しが変わるからです。理由の言葉は一覧の区分のまま写させ、AIに理由を推し量らせません。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| Excelのリンク | 厚生労働省のページ | HTTP Request(GET)+ HTML ノード(リンクの文字と href) |
| 一覧のExcel | リンク先 | HTTP Request でファイルとして取り、Extract From XLSX で読む |
| 変わった行 | 前回と今回の一覧 | Compare Datasets(YJコードで突き合わせる) |
| 採用薬への絞り込み | 採用薬のマスタの写し | Postgres ノードで YJコードを引く |
| 在庫・同成分・同効薬 | 写しのデータベース | エージェントの道具(Postgres の Select、パラメーター付きの Execute Query) |
比べる列は、出荷対応の状況、限定出荷の解除見込み・供給停止の解消見込み、出荷量の状況、その改善の見込み時期の4つです。 それ以外の列(薬効分類の書き方など)の変化は、検討の対象にしません。Compare Datasets には比べない項目を指定する設定があり、そこに他の列を入れます。
「今回掲載時の更新有無」の「New」は、照らし合わせに使います。 自分の比較で出た品目と、「New」の付いた採用薬が食い違えば、前回の版を取り損ねていないかを人が確かめます。
AIへ渡す前に整形する
- 見出しの行を外し、列の位置で名前を付け直す … 1行目の見出しは長く改行を含むので、列Eを
yj_code、列Lをship_statusのように付け直します - 日付の値を直す … 更新日などの列は、Excelの日付の通し番号(46260 のような数)で入っていることがあります。日付に直してから比べます
- 全角をそろえる … 規格単位や成分名は全角で書かれています。採用薬のマスタの側と同じ規則でそろえます
- 行数を確かめる … 前回より極端に少なければ、ファイルの取り損ねか列のずれを疑い、比較を止めます
- 写しの日付を確かめる … 前夜の採用薬のマスタと在庫の写しが作られていなければ、照合を止めます
- 在庫の持つ日数を計算する … 在庫数を、直近28日の1日あたりの払い出しの量で割ります。計算はワークフローで行い、エージェントには結果を渡します
4番目と5番目は、止めることを選んでいます。 列がずれた一覧で比べると、全品目が「変わった」に見えます。誤った大量の候補を出すより、止めて人に知らせるほうが安全です。
6番目をAIにさせないのは、数字を作らせないためです。 在庫の持つ日数は並べ順を決める数字で、誤れば急ぎの品目が後ろに回ります。
AIに処理させる
させるのは、状況が変わった採用薬1品目ごとに、検討の材料を道具で集め、検討表の下書きに並べることです。
| させること | 使う道具 | 返すもの |
|---|---|---|
| 変化の中身を書く | - | 前回と今回の出荷対応・出荷量・解除の見込みの違い |
| 在庫を添える | 在庫と払い出しを引く | 在庫数、1日の払い出し、在庫の持つ日数、発注残 |
| 同じ成分・規格の他社品を引く | 一覧の写しを成分名・規格で引く | 他社品ごとの出荷対応の状況と、採用の有無 |
| 院内の同効薬を引く | 同効薬の対応表と一覧を引く | 対応表にある品目と、その供給状況・在庫 |
| 前回の検討を添える | 前回の検討の記録を引く | 前回の結論と、代替に使った品目 |
| 確かめるべき点を挙げる | - | 規格の違い、剤形の違い、他社品も限定出荷である等 |
同じ成分・規格の他社品は、状況まで並べさせます。 限定出荷が他社品の影響で起きていることも多く、一覧の出荷対応には「限定出荷(他社品の影響)」という区分があります。候補の他社品が「通常出荷」かどうかを並べないと、候補を挙げても使えません。 第3章の(c)は、ここで解けます。
| させないこと | 理由 |
|---|---|
| 代替薬の推奨・切り替えの結論 | 用量・適応・患者の状態の判断は薬剤師と医師が行う |
| 対応表に無い同効薬の提示 | 成分の違う薬の代替は、薬剤部の知識と院内の手続きで決まる |
| 用量の換算 | 換算を誤ると処方の誤りに直結する |
| 解除の見込みの推測 | 一覧に書かれたまま写す。「未定」は「未定」 |
| 在庫の数字の計算 | ワークフローで計算した値をそのまま使う |
1行目と3行目は、この構成の線引きの中心です。 生成AIは、同効薬の一般的な換算を知っていて、聞かれなくても書き添えることがあります。検討表に換算が書かれていると、確かめずに使われるおそれがあります。 指示で禁じ、出力の形にも換算の欄を設けません。
指示内容を固定する
AI Agent ノードの System Message に、次のように書きます。
あなたは病院の薬剤部で、医療用医薬品の供給状況の変化を、院内の採用薬と
在庫に照らして、検討表の下書きを作る担当です。入力は、供給状況が変わった
採用薬1品目の前回と今回の行(YJコード、品名、成分名、規格単位、
出荷対応の状況、理由、解除の見込み、出荷量の状況)と、在庫の持つ日数です。
【やること】
1. 前回と今回の違いを、一覧の言葉のまま書く。
2. 在庫と払い出しの道具で、在庫数、1日の払い出し、発注残を引く。
3. 一覧の写しを、同じ成分名・規格単位で引き、他社品の出荷対応の状況と、
院内の採用の有無を並べる。
4. 院内の同効薬の対応表を引き、載っている品目の供給状況と在庫を並べる。
5. 前回の検討の記録を引き、前回の結論を添える。
【厳守事項】
- 出荷対応、理由、解除の見込みは、一覧に書かれた文言をそのまま写して
ください。「未定」「-」は、そのまま写してください。
- 代わりに使う薬を推奨しないでください。切り替えの可否も書かないでください。
- 同効薬は、対応表に載っている品目だけを挙げてください。
対応表に無い薬を、知識から挙げないでください。
- 用量の換算を書かないでください。
- 在庫の持つ日数は、入力の値をそのまま使ってください。計算し直さないでください。
- 他社品が同時に限定出荷・供給停止のときは、check_points にそう書いてください。
- 規格や剤形が違う候補は、check_points に違いを書いてください。
【出力】指定のJSONの形で返してください。
「対応表に無い薬を知識から挙げない」が、この指示の要です。 指示しないと、一般的な同効薬を挙げます。院内で採用していない薬が候補に並ぶと、採用の手続きのない薬を検討することになり、確認の時間が増えます。
「未定」をそのまま写させるのは、一覧の「解除見込み」の欄に「未定」が多いからです。 生成AIは「数か月で解除の見込み」のように言い換えることがあります。言い換えは、在庫の持たせ方の判断を誤らせます。
出力形式を固定する
Structured Output Parser で、次の形のJSONを返させます。
{
"yj_code": "", "product": "", "ingredient": "", "strength": "",
"change": { "ship_before": "", "ship_after": "", "reason": "",
"outlook": "", "volume_before": "", "volume_after": "" },
"stock": { "on_hand": "", "daily_use": "", "days_left": "", "open_order": "" },
"same_ingredient": [
{ "yj_code": "", "product": "", "maker": "", "ship_status": "", "adopted": false }
],
"alternatives_in_table": [
{ "product": "", "ship_status": "", "on_hand": "", "days_left": "" }
],
"previous_review": "",
"check_points": [""],
"priority": "today | this_week | monitor"
}
1つ目の理由は、days_left で並べられることです。 第3章の(d)は、ここで解けます。priority は、ワークフローが規則で上書きします。
priority | 条件 |
|---|---|
today | 在庫の持つ日数が14日以内で、出荷対応が限定出荷か供給停止 |
this_week | 在庫の持つ日数が15〜60日、または同じ成分の他社品がすべて限定出荷・供給停止 |
monitor | 上のどれにも当たらない。通常出荷に戻ったものもここ |
2つ目は、same_ingredient の ship_status で、使える候補と使えない候補を分けられることです。 通知では、通常出荷の候補があるかどうかを1行目に出します。
3つ目は、check_points を検討表の「確認すること」の欄にそのまま流せることです。
チャットへの通知は、JSONから次の形に組み立てます。1品目を3行に収め、詳しくは検討の一覧で見る作りにします。
【今日中】◯◯錠5mg(院内在庫 9日分)
通常出荷 → 限定出荷(他社品の影響)/解除見込み:未定
同成分の他社品 4品目:通常出荷 1/限定出荷 3 同効薬(対応表)2品目:在庫あり
【今週中】△△注射液(院内在庫 41日分)
出荷量 A → B/同成分の他社品なし 同効薬(対応表):未登録
【様子見】□□軟膏 限定出荷 → 通常出荷(代替に使った品目の戻し方を確認)
通常出荷に戻った品目も通知に残します。 代替薬に切り替えていた品目は、元に戻すかどうかを決める必要があり、戻ったことに気づかないと、臨時採用の代替薬を使い続けることになります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 厚生労働省のページ | HTTP Request(GET) | リンクとExcelを取る |
| 写しのデータベース | Postgres ノード(Select、パラメーター付きの Execute Query) | 一覧・採用薬・在庫・対応表を引く |
| Claude API | Anthropic Chat Model ノード | 検討の材料の整理 |
| 検討の一覧 | Postgres ノード(Insert) | エージェントの出力と薬剤師の判断 |
| 院内のチャット | 通知 | priority の順に一覧を出す |
検討の一覧への書き込みは、ワークフローの側で行います。 エージェントの道具には Insert を含めず、写しを引く Select と Execute Query だけを渡します。Execute Query では $1 のようなパラメーターに値を渡す形を使い、公式の説明では、クエリパラメーターのデータは n8n が無害化し、SQL インジェクションを防ぐとされています。
物品管理の仕組みと電子カルテには、何も返しません。 発注の数や採用の変更は、薬剤師が既存の手順で入力します。
人が確認する
todayから見る … その日のうちに、発注の調整と代替薬の検討の要否を決めます- 在庫の数字を確かめる … 病棟の定数配置の分が在庫に入っているかなど、写しの数字と実際の差を見ます
- 同じ成分の他社品の状況を確かめる … 卸に出荷の可否を問い合わせ、一覧の状況と実際の入手の可否を照らします
- 同効薬の候補を検討する … 用量・適応・剤形の違いを、薬剤師が確かめます。ここが薬剤師の仕事の中心です
- 判断を記録する … 検討の要否、対応(発注の調整、他社品への切り替え、同効薬の検討)、診療科への連絡を一覧に残します
3番目を省かないでください。 一覧の状況は製造販売業者の届出に基づくもので、卸の手元の在庫や配分の状況とは一致しないことがあります。
目標は、1件をならして8分です。 下書きの確認と在庫の確かめに4分、候補の状況の確認に3分、記録に1分という見込みです。
例外に対処する
| 起きること | 対応 |
|---|---|
| ページが取れない | 「本日取得なし」を通知。前回の一覧を今回とみなさない |
| リンクが見つからない | ページの作りが変わったとみなし、人に回す |
| 行数が前回より極端に少ない | 比較を止め、人に回す |
| 列の並びが変わっている | YJコードの列に12文字の英数字のコードが並んでいなければ止める |
| 採用薬のマスタにYJコードが無い品目 | 照合できない品目として毎月一覧に出し、マスタの整備に回す |
| 写しが古い | 照合を止める |
| 同じ品目が短い間に何度も変わる | 前回の検討を添え、変化の履歴を check_points に書く |
| エージェントの出力がスキーマに合わない | 品目名と変化だけを一覧に載せ、人に回す |
| 一覧から採用薬の行が消えた | 販売中止や薬価削除の可能性がある。「消えた」として人に回す |
上から4行目までは、一覧の作りが変わったときに起きます。 令和8年3月31日に新しいシステムの稼働が始まったように、公表の仕方は変わりえます。 止めて知らせる仕組みを先に作ってください。
記録を残す
- 実行ごとの、取得したリンクとファイル、取得の成否
- 前回との差分(変わった品目、新しく載った品目)
- エージェントのJSON出力と、呼んだ道具の順番
- 薬剤師の判断 … 検討の要否、対応、診療科への連絡、判断した日
- 状況が変わった日、一覧に載った日、拾った日、対応を決めた日、在庫が切れた日(切れた場合)
最後の行が、この構成の物差しです。 在庫の持つ日数のうちに対応を決められたかを並べると、見回りの遅れと、院内の手続きの遅れが分かれて見えます。
04実装レベルの3段階
半自動化だけでも、①と②の時間はほぼ無くなります。 一覧の比較と在庫の持つ日数は、AIを使わずに組めます。残るのは、代わりの候補の状況を調べる③と、検討表を作る④です。 本格構成で減るのは、その③と④です。 段階を飛ばさず、半自動化を1〜2か月回して、拾った採用薬に漏れが無いかを「New」と卸の連絡で確かめてから、エージェントを足してください。
05工数削減シミュレーション
導入後 90件 × 8分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 採用薬が1,000品目を超え、限定出荷や供給停止のたびに薬剤部の医薬品の管理担当が厚生労働省の一覧と卸からの連絡を見て、在庫と代替薬を調べている急性期の病院。採用薬のマスタにYJコードが入っていて、在庫と払い出しの量を物品管理の仕組みから取り出せる場合。限定出荷に気づくのが遅れ、在庫が切れる直前に代替薬の検討を始めることがある場合。在庫を持つ調剤薬局のチェーンの本部にも当てはまります。
- 採用薬が数百品目で、担当の薬剤師が一覧の更新のたびに全部を目で確かめても負担にならない場合。採用薬のマスタにYJコードが無く、品名でしか引けない場合(先にマスタの整備が要ります)。在庫と払い出しの量をデータで取り出せない場合。なお、代替薬への切り替えの可否、処方の変更、患者ごとの対応の判断は、この構成では代替できません。
07最小構成で試す方法
- 過去3か月に限定出荷・供給停止になった採用薬から、5品目を選ぶ(後発品で他社品が多いものと、他社品の無い先発品を1つずつ入れる)
- その品目の一覧の行、在庫と払い出しの量、同効薬の対応表の行を書き出す
- 生成AIの画面に貼り、「一覧の文言をそのまま写し、在庫と同じ成分の他社品と対応表の同効薬の状況を並べた検討表を作ってください。代替薬を推奨せず、用量の換算を書かず、対応表に無い薬を挙げないでください」と指示する
- 出てきた検討表を、当時の薬剤師の検討と比べる
| 出てきた内容 | 判断 |
|---|---|
| 当時の検討と同じ材料がそろった | ワークフローを組む段階に進む |
| 対応表に無い薬を挙げた・換算を書いた | 指示の書き方で直る。出力の形に欄を作らない |
| 同効薬の候補がほとんど出ない | 対応表が足りない。 使用量の多い品目から整備する |
3行目が出ることは珍しくありません。 その場合は、過去に限定出荷になった品目から、同効薬の対応表を埋めてください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 対応表に無い同効薬を挙げる | 指示で禁じ、対応表の品目だけを道具で引かせる |
| 用量の換算を書き添える | 指示で禁じ、出力の形に欄を作らない |
| 「未定」を言い換える | 一覧の文言をそのまま写させる |
| 「New」だけで追って漏れる | 前回の一覧と自分で比べる。「New」は照らし合わせに使う |
| 見出しが長く列を指せない | 列の位置で読み、名前を付け直す |
| 日付が数で入っている | 前処理で日付に直してから比べる |
| 列のずれで全品目が変わって見える | 行数と YJコードの列を確かめ、合わなければ止める |
| 古い在庫で日数を出す | 写しが作られていなければ止める |
| 一覧と卸の実際が違う | 通常出荷の候補も、卸に問い合わせてから使う |
上の3行が、この構成の失敗のほとんどです。 どれも「材料を並べる」と「判断する」の境目の問題です。エージェントは材料を集め、薬剤師が決める、の線を出力の形で守ってください。
列のずれの行と最後の行は、運用を始めてから効いてきます。 一覧の公表の仕方は、新しいシステムの稼働のように変わりえます。止まった日に人が気づける通知を、最初から作っておいてください。 また、一覧の状況はあくまで製造販売業者の届出です。院内の在庫を守るのは、卸との日々のやり取りで、この構成はその前に気づくための仕組みです。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 公表されている供給状況の一覧、院内の採用薬、在庫と払い出しの量、検討の記録です。患者の情報は扱いません。
- 患者の情報を入れない … 在庫と払い出しは品目ごとの合計だけを写します。処方の明細や患者ごとの払い出しを写しに含めないでください
- 代替薬の判断と処方の変更は人が行う … この構成が出すのは材料と確認すべき点です。切り替えの可否は、薬剤師と医師が院内の手続きで決めてください
- 生成AIのAPIの利用条件と、院内の情報管理の規程を確かめる … 採用薬と在庫の情報を外部のサービスに渡してよいかを、先に決めます
- 物品管理の仕組みに書き込ませない … エージェントの道具は読み取りだけにし、判断の記録はワークフローの側で書きます
- 厚生労働省のページへの負荷を抑える … 1日1回、決まったページとファイルだけを取ります
誤りが起きた場合のリスクは、検討が要る品目を見落とすことと、使えない候補で検討を進めることの2つです。 前者は一覧の比較と「New」の照らし合わせで止め、後者は他社品の状況を並べることと、卸への問い合わせで止めます。
10まず何から始めるか
1週目:採用薬のマスタのYJコードを確かめる
採用薬のマスタにYJコードが入っているかを確かめ、無い品目を書き出します。ここが埋まらないと、一覧と突き合わせられません。
2週目:5品目で試す
第8章の手順で、過去の限定出荷の5品目の検討表を作らせます。対応表に無い薬を挙げていないかと、換算を書いていないかを見ます。
3週目:写しと対応表を用意する
採用薬のマスタと在庫・払い出しの写しを毎晩作る仕組みを用意し、過去に限定出荷になった品目から同効薬の対応表を作ります。
4週目:一覧の取得と比較を n8n で動かす
一覧の取得、前回との比較、採用薬への絞り込み、在庫の持つ日数までを組みます。エージェントはまだ入れず、拾った品目を「New」と卸の連絡で1〜2か月確かめます。
それ以降: エージェントを足し、状況が変わった日・拾った日・対応を決めた日を毎月並べます。在庫の持つ日数のうちに対応を決められなかった品目が無くなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 医薬品医療機器等法第18条の4に基づき、製造販売業者から限定出荷・供給停止の届出を受け、Excelの一覧表として公開していること。令和8年3月31日から「医薬品安定供給・流通確認システム」が稼働したこと。更新があった品目は右端の「今回掲載時の更新有無」に「New」と記載されること。出荷対応の区分(通常出荷、限定出荷(自社の事情/他社品の影響/その他)、供給停止)と出荷量の区分(Aプラス〜D)。最新の版が「令和8年10月6日現在」であったこと(原文を取得して確認) | 厚生労働省: 医療用医薬品供給状況 | 2026-10-07 |
| 一覧のExcelが1シート約1万6千行で、YJコード、成分名、規格単位、品名、製造販売業者名、出荷対応の状況、限定出荷・供給停止の理由、解除・解消の見込み、出荷量の状況、更新日、「今回掲載時の更新有無」の列を持つこと。日付の列が通し番号で入っていること(ファイルを取得して確認) | 厚生労働省: 医療用医薬品供給状況(令和8年10月6日現在) | 2026-10-07 |
| Schedule Trigger が、ワークフローのタイムゾーンかインスタンスのタイムゾーン(セルフホストの既定は America/New York)を使うこと。保存して公開しないと動かないこと | n8n Docs: Schedule Trigger | 2026-10-07 |
| HTML ノードの Extract HTML Content が、CSS セレクターでテキスト・属性などを取り出せること | n8n Docs: HTML | 2026-10-07 |
| Extract From File ノードに Extract From XLSX の操作があること | n8n Docs: Extract From File | 2026-10-07 |
| Compare Datasets ノードが2つの入力を比べ、Aにだけあるもの・同じもの・違うもの・Bにだけあるものに分けて出すこと。比べない項目を指定できること | n8n Docs: Compare Datasets | 2026-10-07 |
| Postgres ノードの操作(Execute Query、Insert、Select など)。AIエージェントの道具として使えること。クエリパラメーターのデータが無害化され SQL インジェクションを防ぐこと | n8n Docs: Postgres | 2026-10-07 |
| Tools Agent が道具の機能を理解して使う道具を決めること。出力パーサーをつないで出力の形を決められること | n8n Docs: Tools Agent | 2026-10-07 |
代替薬の選択と処方の変更は、添付文書などの情報に基づき、薬剤師と医師が院内の手続きで判断してください。 本記事は確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0772)についてのご相談はこちらから。
